Страница 1 из 2

Аналоговый датчик с нелинейной зависимостью

Добавлено: Вс фев 26, 2017 14:38:54
gorlanovmax
Доброго времени суток,

Не могу побороть задачу:
Необходимо подключить к AtMega аналоговые автомобильные датчики температуры воды и давления масла.
Беда в том, что датчики имеют нелинейную зависимость сопротивления.

Получается кривая.
Не могу понять по какой формуле рассчитывать значения на АЦП

Буду благодарен за советы

Изображение
Изображение

Re: Аналоговый датчик с нелинейной зависимостью

Добавлено: Вс фев 26, 2017 14:59:36
Z_h_e
Проще всего - это разбить кривую на несколько линейных функций (кусочно-линейная аппроксимация).

В идеале Вам нужен полином. Чем большей степени он будет, тем точнее расчет. Но и расчет сложнее и коэффициенты еще получить надо (хотя excel умеет получать их).

Re: Аналоговый датчик с нелинейной зависимостью

Добавлено: Вс фев 26, 2017 15:58:56
gorlanovmax
Z_h_e писал(а):В идеале Вам нужен полином. Чем большей степени он будет, тем точнее расчет. Но и расчет сложнее и коэффициенты еще получить надо (хотя excel умеет получать их).
Спасибо.
У меня-то задача не в Экселе посчитать.
Мне надо вывести формулу, чтобы прописать ее в CodeVisonAVR, а не использовать массив с данными датчика

Re: Аналоговый датчик с нелинейной зависимостью

Добавлено: Вс фев 26, 2017 16:02:04
Z_h_e
gorlanovmax писал(а):У меня-то задаче не в Экселе посчитать.
Посчитайте коэффициенты полинома ручками, если excel не нравится.

Re: Аналоговый датчик с нелинейной зависимостью

Добавлено: Вс фев 26, 2017 16:23:07
gorlanovmax
Z_h_e писал(а):Посчитайте коэффициенты полинома ручками, если excel не нравится.
Спасибо, виноват, неправильно вас понял.

Действительно эксель строит формулу для подсчета на графике.
Ссылка на статью https://4analytics.ru/trendi/3-sposoba- ... excel.html

Re: Аналоговый датчик с нелинейной зависимостью

Добавлено: Вс фев 26, 2017 16:58:01
ARV
gorlanovmax писал(а):Мне надо вывести формулу, чтобы прописать ее в CodeVisonAVR
специально для задач, подобным вашей, я написал статью "кусочно-линейная аппроксимация на Си"- почитайте.

Re: Аналоговый датчик с нелинейной зависимостью

Добавлено: Вс фев 26, 2017 17:09:57
AndTer
ARV писал(а):почитайте.
Ни одна картинка не открывается...

Re: Аналоговый датчик с нелинейной зависимостью

Добавлено: Вс фев 26, 2017 17:11:26
gorlanovmax
AndTer писал(а):Ни одна картинка не открывается...
Так точно.
А статья толковая, спасибо

Re: Аналоговый датчик с нелинейной зависимостью

Добавлено: Вс фев 26, 2017 18:15:36
ARV
проверьте сейчас - обновите страничку. должны открыться и картинки. джумла чудит...

Re: Аналоговый датчик с нелинейной зависимостью

Добавлено: Вс фев 26, 2017 18:19:33
AndTer
Открывается главная страница)

Re: Аналоговый датчик с нелинейной зависимостью

Добавлено: Вс фев 26, 2017 19:23:23
ARV
Виноват, вот правильная ссылка на статью: http://www.simple-devices.ru/index.php? ... &Itemid=10

Re: Аналоговый датчик с нелинейной зависимостью

Добавлено: Вс фев 26, 2017 20:29:12
gorlanovmax
Так намного лучше.
Спасибо.

А все-таки теперь вопрос:

Что будет проще для AVR:

Рассчитать значение формулы вида y=-6,3433*x*x*x*x*x + 51,786*x*x*x*x - 168,52x*x*x + 277,47x*x - 261,12x + 181,59

Или обработать процедуру вычисления кусочно-линейной аппроксимации?

Re: Аналоговый датчик с нелинейной зависимостью

Добавлено: Вс фев 26, 2017 20:35:38
Z_h_e
А что есть проще?
Кстати, в любом случае не вздумайте работать с числами с плавающей запятой.
Зачем Вам полином такой степени?

Re: Аналоговый датчик с нелинейной зависимостью

Добавлено: Вс фев 26, 2017 21:17:46
gorlanovmax
Z_h_e писал(а):А что есть проще?
Кстати, в любом случае не вздумайте работать с числами с плавающей запятой.
Зачем Вам полином такой степени?
Эта степень дает кривую более приближенную к кривой датчика

Re: Аналоговый датчик с нелинейной зависимостью

Добавлено: Ср мар 08, 2017 15:42:49
afz
gorlanovmax писал(а):Рассчитать значение формулы вида y=-6,3433*x*x*x*x*x + 51,786*x*x*x*x - 168,52x*x*x + 277,47x*x - 261,12x + 181,59
Вообще-то полиномы, обычно, считают по схеме Горнера. Типа y=(((((-6,3433*x) + 51,786*x) - 168,52*x) + 277,47*x) - 261,12*x) + 181,59. Считать в целых числах, навскидку - 32-разрядных должно хватить. Естественно, вначале все отмасштабировать. Предварительно стоит все промоделировать на писюке, на обычном визуальном Си.

Хотя нет, 32-разрядной арифметики, скорее всего, не хватит. Как бы не 64...

Re: Аналоговый датчик с нелинейной зависимостью

Добавлено: Чт мар 09, 2017 12:16:00
Jack_A
Да, точность вычисления 0,001% просто необходима для связки датчик-АЦП, которая дает погрешность порядка единиц процентов :shock: Где те воробьи, на которых заряжают пушку ? Да обычной линейной интерполяции более чем за глаза хватит, я думаю, если, конечно, не ставить цель: как бы посложнее решить простейшую задачу :( и горестно восклицать : "Быстродействия нехватает! Память кончилась!"
Кусочно-линейную и имел в виду .

Re: Аналоговый датчик с нелинейной зависимостью

Добавлено: Чт мар 09, 2017 12:19:45
gorlanovmax
Jack_A писал(а):Да, точность вычисления 0,001% просто необходима для связки датчик-АЦП, которая дает погрешность порядка единиц процентов :shock: Где те воробьи, на которых заряжают пушку ? Да обычной линейной интерполяции более чем за глаза хватит, я думаю, если, конечно, не ставить цель: как бы посложнее решить простейшую задачу :( и горестно восклицать : "Быстродействия нехватает! Память кончилась!"
Линейная не пойдет.
Как я и указывал в начале, датчик имеет нелинейную зависимость.
Хорошая такая дуга)))

Re: Аналоговый датчик с нелинейной зависимостью

Добавлено: Чт мар 09, 2017 14:13:51
ARV
gorlanovmax писал(а):Линейная не пойдет.
вы мою статью читали? любую кривую без вертикальных участков вы элементарно можете представить в виде набора отрезков прямой и получить желаемое без сложных вычислений.

Re: Аналоговый датчик с нелинейной зависимостью

Добавлено: Чт мар 09, 2017 14:48:16
gorlanovmax
ARV писал(а):
gorlanovmax писал(а):Линейная не пойдет.
вы мою статью читали? любую кривую без вертикальных участков вы элементарно можете представить в виде набора отрезков прямой и получить желаемое без сложных вычислений.
конечно читал, и даже комментировал.
но мне предлагают использовать линейную интерполяцию, а не кусочно-линейную аппроксимацию

Re: Аналоговый датчик с нелинейной зависимостью

Добавлено: Чт мар 09, 2017 14:54:19
ARV
gorlanovmax писал(а):мне предлагают использовать линейную интерполяцию, а не кусочно-линейную аппроксимацию
вы считаете, разница принципиальна?

вот текст из википедии:
Лине́йная интерполя́ция — интерполяция алгебраическим двучленом P1(x) = ax + b функции f, заданной в двух точках x0 и x1 отрезка [a, b]. В случае, если заданы значения в нескольких точках, функция заменяется кусочно-линейной функцией.