[an error occurred while processing this directive]
|
Если я правильно понял вопрос......
Все сильно зависит от характера нелинейности измеряемой величины. Самое простое и надежное - произвести интерполяцию по этим известным точкам. Если характер нелинейности известен, то интерполировать той самой известной функцией. Если неизвестен - то полиномом от 1-й (линейная) до 3-й (кубический сплайн) степеней. Как правило выше степеней не надо. Зная эту интерполированную кривую (ну и естественно идеальную - которую надо получить в результате коррекции) легко вычислить коэффициент коррекции для каждой точки сигнала.
Теперь о реализации. Допустим интерполяцией сплайном. Для этого в МК должны храниться коэффициенты полиномов для известной (идеальной) функции. Далее измеряются те самые калибровочные точки сигнала. Затем строится интерполяционный полином по измеренным точкам. Проблем с ним обычно не возникает, так как конечные условия известны - их можно взять от идеального полинома. Теперь надо еще по результатам тех двух нелинейной интерполяции рассчитать табличку коррекции, состоящую из большего числа интервалов. И содержащую уже по X реальную зависимость, а по Y - идеальную.
Ну вот. Теперь остается после каждого измерения найти интервал n, в который попал результат x (т.е. x>=X(n) && x<=X(n+1)), и вычислить Y=((Y(n+1)-Y(n))*(x-X(n))+Y(n)) что будет являться скорректированным результатом измерения.
E-mail: info@telesys.ru