реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Аппроксимация характеристики нелинейного датчика
Vlad_Zh
сообщение Dec 7 2007, 08:09
Сообщение #1





Группа: Участник
Сообщений: 9
Регистрация: 6-12-07
Пользователь №: 33 033



Прошу помочь советом в выборе метода и алгоритмов интерполяции характеристики нелинейных сенсоров.
До настоящего времени для получения наибольшего быстродействия выполнял задачу кусочно-линейной аппроксимацией.
Хочется попробовать выполнить ее в новом проекте с помощью интерполяционного многочлена.
Задачи две:
- рассчитать коэффициенты многочлена и полученную ошибку аппроксимации (калибровка прибора по эталонам сравнения);
- по измеренным значениям с датчиков рассчитать значения измеренных параметров.

За ранее признателен за помощь.

Сообщение отредактировал Vlad_Zh - Dec 7 2007, 08:10
Go to the top of the page
 
+Quote Post
Tanya
сообщение Dec 7 2007, 08:24
Сообщение #2


Гуру
******

Группа: Модераторы
Сообщений: 8 752
Регистрация: 6-01-06
Пользователь №: 12 883



Цитата(Vlad_Zh @ Dec 7 2007, 11:09) *
Прошу помочь советом в выборе метода и алгоритмов интерполяции характеристики нелинейных сенсоров.
До настоящего времени для получения наибольшего быстродействия выполнял задачу кусочно-линейной аппроксимацией.
Хочется попробовать выполнить ее в новом проекте с помощью интерполяционного многочлена.
Задачи две:
- рассчитать коэффициенты многочлена и полученную ошибку аппроксимации (калибровка прибора по эталонам сравнения);
- по измеренным значениям с датчиков рассчитать значения измеренных параметров.

За ранее признателен за помощь.

Вам поможет ORIGIN.
Go to the top of the page
 
+Quote Post
Designer56
сообщение Dec 7 2007, 08:26
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 2 932
Регистрация: 13-10-06
Из: Уфа
Пользователь №: 21 290



Я Матлабом пользовался.


--------------------
"...Дьяволу ведомо многое не потому, что он- Дьявол, а потому, что он стар..."
Go to the top of the page
 
+Quote Post
Vlad_Zh
сообщение Dec 7 2007, 08:44
Сообщение #4





Группа: Участник
Сообщений: 9
Регистрация: 6-12-07
Пользователь №: 33 033



Цитата(Designer56 @ Dec 7 2007, 11:26) *
Я Матлабом пользовался.


Прибор серийный. Необходимо написать
побочее ПО для прибора и законченную универсальную
программу для его калибровки о обслуживания
в расчете на "квалифицированных" специалистов.

В моем понимании Матлаб не годится.

Сообщение отредактировал Vlad_Zh - Dec 7 2007, 08:45
Go to the top of the page
 
+Quote Post
Designer56
сообщение Dec 7 2007, 08:55
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 2 932
Регистрация: 13-10-06
Из: Уфа
Пользователь №: 21 290



Почему? Рассчитали аппроксимацию, в подавляющем большинстве случаев полином 3-го порядка за глаза, получили коэффициенты. Можно их использовать.


--------------------
"...Дьяволу ведомо многое не потому, что он- Дьявол, а потому, что он стар..."
Go to the top of the page
 
+Quote Post
Vlad_Zh
сообщение Dec 7 2007, 10:03
Сообщение #6





Группа: Участник
Сообщений: 9
Регистрация: 6-12-07
Пользователь №: 33 033



Цитата(Designer56 @ Dec 7 2007, 11:55) *
Почему? Рассчитали аппроксимацию, в подавляющем большинстве случаев полином 3-го порядка за глаза, получили коэффициенты. Можно их использовать.


К сожалению, такой подход годиться для датчиков постоянной характеристикой (н. р. термопары).
Но в данном случае коэффициенты будут индивидуальные для каждого канала измерения и определяются на этапе калибровки прибора (регулировщиком).
Затем они должны быть занесены в прибор для обсчета данного датчика.
Хочется, все сделать в расчете на "грамотных специалистов" - максимально автоматизированно.

Сообщение отредактировал Vlad_Zh - Dec 7 2007, 10:07
Go to the top of the page
 
+Quote Post
shasik
сообщение Dec 10 2007, 19:00
Сообщение #7


Местный
***

Группа: Свой
Сообщений: 319
Регистрация: 3-09-05
Из: Беларусь, Новополоцк
Пользователь №: 8 188



Цитата(Vlad_Zh @ Dec 7 2007, 12:03) *
К сожалению, такой подход годиться для датчиков постоянной характеристикой (н. р. термопары).
Но в данном случае коэффициенты будут индивидуальные для каждого канала измерения и определяются на этапе калибровки прибора (регулировщиком).
Затем они должны быть занесены в прибор для обсчета данного датчика.
Хочется, все сделать в расчете на "грамотных специалистов" - максимально автоматизированно.


Так в чем проблема то?
Есть:
1. устройство
2. РС
3. программа на PC для связи с устройством.

Запихиваем в устройство полином N-й (например, 3-й ) степени, т.е
Yизм = ((A[0]*x + A[1])*x + A[3])*x+A[4] и т.д.
Сам же массив располагаем во FLASH. Исходно там хранаятся константы по-умолчанию (общие для всех устройств)
Х - результат на выходе АЦП
Yизм - измеряемая величина (давление, температура и т.д.)
Затем регулировщик снимает характеристику Yзад(Х) в нескольких точках (в этом примере в 4-х), где Yзад - давление, температура, задаваемая калибратором, т.е. реальное значение измеряемой величины. Думаю понятно, что в идеале зависимость Yизм(Х) должна совпадать c Yзад(Х). Вводит данные в программу для связи с device'ом. Эта программа рассичитывает коэффициенты аппроксимирующего полинома и пихает их во FLASH устройства. И о чудо! Оно работает. Думаю, что "квалифицированный" регулировщик сможет снять 4 точки и набрать их на клавиатуре.

Вопрос: как рассчитать коэффициенты полинома?
Ответ: почитать книги по численным методам.Книг этих тьма, да и исходников к ним тоже тьма. Было бы желание искать. Часто вполне хватает понимания метода наименьших квадратов. В конечном счете необходимо будет решить систему линейных уравнений или поделить определитель одной матрицы на определитель другой, что равносильно. Я думаю, что Ваш PC c этой сложной арифметикой справиться.
Go to the top of the page
 
+Quote Post
EvgenyNik
сообщение Dec 11 2007, 07:21
Сообщение #8


Знающий
****

Группа: Свой
Сообщений: 597
Регистрация: 24-05-06
Из: г. Чебоксары
Пользователь №: 17 402



Нужен "эталон" и цифровая связь с ним по какому-нибудь простейшему интерфейсу (SPI, например). Ставите калибруемый прибор и эталонный в термо или барокамеру и запускаете. В процессе роста температуры/давления эталон послыет данные "чему равно измеряемое значение сейчас", а калибруемый прибор пишет их в ППЗУ. Никаких внешних коэффициентов, шибко умных настройщиков и четырёх точек.
При таком подходе можно сделать порядка сотни точек, а промежуточные вычислять кусочно-линейным способом и точность будет очень неплохая и повторяемость характеристик от прибора к прибору.


--------------------
Почему разработчики систем повышенной надёжности плохо справляются с простыми проектами? :)
Go to the top of the page
 
+Quote Post
Vlad_Zh
сообщение Dec 11 2007, 08:49
Сообщение #9





Группа: Участник
Сообщений: 9
Регистрация: 6-12-07
Пользователь №: 33 033



Цитата(shasik @ Dec 10 2007, 22:00) *
Так в чем проблема то?
Есть:
1. устройство
2. РС
3. программа на PC для связи с устройством.

Запихиваем в устройство полином N-й (например, 3-й ) степени, т.е
Yизм = ((A[0]*x + A[1])*x + A[3])*x+A[4] и т.д.
Сам же массив располагаем во FLASH. Исходно там хранаятся константы по-умолчанию (общие для всех устройств)
Х - результат на выходе АЦП
Yизм - измеряемая величина (давление, температура и т.д.)
Затем регулировщик снимает характеристику Yзад(Х) в нескольких точках (в этом примере в 4-х), где Yзад - давление, температура, задаваемая калибратором, т.е. реальное значение измеряемой величины. Думаю понятно, что в идеале зависимость Yизм(Х) должна совпадать c Yзад(Х). Вводит данные в программу для связи с device'ом. Эта программа рассичитывает коэффициенты аппроксимирующего полинома и пихает их во FLASH устройства. И о чудо! Оно работает. Думаю, что "квалифицированный" регулировщик сможет снять 4 точки и набрать их на клавиатуре.

Вопрос: как рассчитать коэффициенты полинома?
Ответ: почитать книги по численным методам.Книг этих тьма, да и исходников к ним тоже тьма. Было бы желание искать. Часто вполне хватает понимания метода наименьших квадратов. В конечном счете необходимо будет решить систему линейных уравнений или поделить определитель одной матрицы на определитель другой, что равносильно. Я думаю, что Ваш PC c этой сложной арифметикой справиться.


biggrin.gif

Спасибо за совет - почитать книжки.
Так и сделал.
По результатам своих тестов выбрал по соотношению "цена-точность" метод кубического сплайна.
В принципе я и хотел услышать отзывы о методах аппроксимации.

Не согласен только с тем, что может делать "квалифицированный регулировщик".
У нас - нажимать на клавишу ENTER.

Спасибо за помощь.
Go to the top of the page
 
+Quote Post
shasik
сообщение Dec 13 2007, 06:46
Сообщение #10


Местный
***

Группа: Свой
Сообщений: 319
Регистрация: 3-09-05
Из: Беларусь, Новополоцк
Пользователь №: 8 188



Цитата(Vlad_Zh @ Dec 11 2007, 10:49) *
По результатам своих тестов выбрал по соотношению "цена-точность" метод кубического сплайна.
В принципе я и хотел услышать отзывы о методах аппроксимации.


Сплайны сложнее, чем аппроксимация с помощью простого полинома. Сложнее и теория и ее программирование. Здесь за пять минут не разберешься. Оно того стоит?


Цитата(Евгений Николаев @ Dec 11 2007, 09:21) *
Нужен "эталон" и цифровая связь с ним по какому-нибудь простейшему интерфейсу (SPI, например). Ставите калибруемый прибор и эталонный в термо или барокамеру и запускаете. В процессе роста температуры/давления эталон послыет данные "чему равно измеряемое значение сейчас", а калибруемый прибор пишет их в ППЗУ. Никаких внешних коэффициентов, шибко умных настройщиков и четырёх точек.
При таком подходе можно сделать порядка сотни точек, а промежуточные вычислять кусочно-линейным способом и точность будет очень неплохая и повторяемость характеристик от прибора к прибору.

Один из методов...
Я отказался от него: ограничение на объем flash сказались. Процесс описывался двумя переменными. Точность по температуре нужна была не хуже 0,1-0,05 градусов в промышленном диапазоне (за 0,1 градус датчик врет примерно на 0,1-0,2%). Точность по основной переменной - 0,05 % от диапазона. Все ну очень какое-то нелинейное, точки приходилось брать достаточно часто (особенно по температуре). Но потом посмотрев все точки - оказалось все очень красиво ложится на полином 3-й и 2-й степени по двум переменным.

Ну, а персловутые 4 точки - тоже снимаются на автомате. Цикл в термокамере запрограммировал. Затем программа через заданный промежуток времени снимает показания, усредняет по нескольким измерениям. И когда весь цикл пройдет - сама же автоматически пихает в device. Задача регулировщика сводится к простому контролю за происходящим.
Go to the top of the page
 
+Quote Post
Vlad_Zh
сообщение Dec 14 2007, 07:06
Сообщение #11





Группа: Участник
Сообщений: 9
Регистрация: 6-12-07
Пользователь №: 33 033



Цитата(shasik @ Dec 13 2007, 09:46) *
Сплайны сложнее, чем аппроксимация с помощью простого полинома. Сложнее и теория и ее программирование. Здесь за пять минут не разберешься. Оно того стоит?
Один из методов...
Я отказался от него: ограничение на объем flash сказались. Процесс описывался двумя переменными. Точность по температуре нужна была не хуже 0,1-0,05 градусов в промышленном диапазоне (за 0,1 градус датчик врет примерно на 0,1-0,2%). Точность по основной переменной - 0,05 % от диапазона. Все ну очень какое-то нелинейное, точки приходилось брать достаточно часто (особенно по температуре). Но потом посмотрев все точки - оказалось все очень красиво ложится на полином 3-й и 2-й степени по двум переменным.

Ну, а персловутые 4 точки - тоже снимаются на автомате. Цикл в термокамере запрограммировал. Затем программа через заданный промежуток времени снимает показания, усредняет по нескольким измерениям. И когда весь цикл пройдет - сама же автоматически пихает в device. Задача регулировщика сводится к простому контролю за происходящим.


В моем случае ограничений с памятью нет, а метод кубического сплайна мне показался более универсальным для использования с датчиками с любыми выкрутасами характеристик.
Например, характеристика термопары типа К в широком диапазоне температур полиномом плохо аппроксимиреутся, а метод кубического сплайна просто расчудесно.
С другой стороны расчет искомой величины выполняется быстрее, чем при использовании полинома высокой степени. Причем, если скорости расчета критичны, можно опуститься до линейного сплайна используя, тот же алгоритм.

Попробуйте.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 15:20
Рейтинг@Mail.ru


Страница сгенерированна за 0.01466 секунд с 7
ELECTRONIX ©2004-2016