[an error occurred while processing this directive]
Ответ:
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено ВМФ 01 апреля 2003 г. 12:32
В ответ на: Ответ (+) отправлено SM 01 апреля 2003 г. 10:51

Если я правильно понял вопрос......
+++ В основном правильно
Все сильно зависит от характера нелинейности измеряемой величины. Самое простое и надежное - произвести интерполяцию по этим известным точкам.
+++ Хорошо...
Если характер нелинейности известен, то интерполировать той самой известной функцией.
+++ Может отличаться в разных датчиках
Если неизвестен - то полиномом от 1-й (линейная) до 3-й (кубический сплайн) степеней. Как правило выше степеней не надо.
+++ линейную не хотелось бы, а вот квадратный сплайн для начала нужно попробывать
Зная эту интерполированную кривую (ну и естественно идеальную - которую надо получить в результате коррекции) легко вычислить коэффициент коррекции для каждой точки сигнала.
+++ Надо сначала получить коэффициенты, а по ним идеальную кривую из реально измереной...
Теперь о реализации.
+++Вот здесь поподробнее
Допустим интерполяцией сплайном. Для этого в МК должны храниться коэффициенты полиномов для известной (идеальной) функции.
+++ Их нет. Есть возможность померить в нескольких точках в момент, когда известно, что должно быть в результате измерений.
Далее измеряются те самые калибровочные точки сигнала. Затем строится интерполяционный полином по измеренным точкам. Проблем с ним обычно не возникает,
+++ Вот тут как раз непонятно
так как конечные условия известны - их можно взять от идеального полинома.
+++ и тут
Теперь надо еще по результатам тех двух нелинейной интерполяции рассчитать табличку коррекции, состоящую из большего числа интервалов.
+++ Имея коэффициенты это не сложно вроде...
И содержащую уже по X реальную зависимость, а по Y - идеальную.

Ну вот. Теперь остается после каждого измерения найти интервал n, в который попал результат x (т.е. x>=X(n) && x<=X(n+1)), и вычислить Y=((Y(n+1)-Y(n))*(x-X(n))+Y(n)) что будет являться скорректированным результатом измерения.
++++++
Задача такая: есть режим калибровки, в котором надо вычислить коэффициенты, и есть режим измерения, когда их надо использовать.
Как я понимаю надо вычислить коэффициенты a, b, c по уравнениям полученым в 3х точках:
y1=a(x1*x1)+bx1+c
y2=a(x2*x2)+bx2+c
y3=a(x3*x3)+bx3+c
и по ним вычислять Yn по измеренному Xn?


Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru