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

Обсуждаем контроллеры компании Atmel.
Ответить
Родился
Сообщения: 15
Зарегистрирован: Вт июл 14, 2015 08:33:59

Сообщение gorlanovmax »

ARV писал(а):вы считаете, разница принципиальна?
Все, опускаю руки. :)))

Был не прав :facepalm:
Реклама
Собутыльник Кота
Аватара пользователя
Сообщения: 2708
Зарегистрирован: Сб май 14, 2011 21:16:04
Откуда: г. Чайковский

Сообщение Z_h_e »

Хотя понятно, что хотел сказать товарищ Jack_A, однако терминологию применил неверную. Нет, не неверную, не точную, что позволило понять его ТСу не так.

Если мой мозг ничего не напутал. То КЛА - это разбиение функции на куски, где каждый кусок интерполируется (это я про термины).
СпойлерТретий закон Чизхолма
Любые предложения люди понимают иначе, чем тот кто их вносит.

Следствия:
1. Даже если ваше объяснение настолько ясно, что исключает всякое ложное толкование, все равно найдется человек, который поймет вас неправильно.
2. Если вы уверены, что ваш поступок встретит всеобщее одобрение, кому-то он обязательно не понравится.
Изображение
Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.
Реклама
Потрогал лапой паяльник
Сообщения: 315
Зарегистрирован: Пт янв 29, 2010 19:42:27

Сообщение 12val12 »

квадратичной апроксимации будет достаточно но я можно и кубическую

дай три точки расчитаю квадратичную или по 4м-5 кубическую
я так подганял ацп меги в вольтметрах .нелинеит значительно
ух ты.... показывает
Родился
Сообщения: 15
Зарегистрирован: Вт июл 14, 2015 08:33:59

Сообщение gorlanovmax »

12val12 писал(а):квадратичной апроксимации будет достаточно но я можно и кубическую

дай три точки расчитаю квадратичную или по 4м-5 кубическую
я так подганял ацп меги в вольтметрах .нелинеит значительно
пожалуйста
https://cloud.mail.ru/public/Mra7/wPzBo1LGV
Реклама
Эиком - электронные компоненты и радиодетали
Потрогал лапой паяльник
Сообщения: 315
Зарегистрирован: Пт янв 29, 2010 19:42:27

Сообщение 12val12 »

неудобно так
у вас датчик между корпусом и входом АЦП и подтяжка к + 5вольт ?
дайте три точки
20градусов- напряжение
80 градусов - напряжение
140 градусов - напряжение

опорное +2.5 вольт?
ух ты.... показывает
Реклама
Родился
Сообщения: 15
Зарегистрирован: Вт июл 14, 2015 08:33:59

Сообщение gorlanovmax »

12val12 писал(а):неудобно так
у вас датчик между корпусом и входом АЦП и подтяжка к + 5вольт ?
дайте три точки
20градусов- напряжение
80 градусов - напряжение
140 градусов - напряжение
У меня сейчас на руках датчика нет.
Даю расчетные данные с кривой

40 - 2,277
80 - 0,8623
140 - 0,1964
Реклама
Потрогал лапой паяльник
Сообщения: 315
Зарегистрирован: Пт янв 29, 2010 19:42:27

Сообщение 12val12 »

V_tmp_ad=(read_adc(0)*(Vref_mV))>>10;// номер канала 0 миливольты Лонг или флоат

Temp= (V_tmp_ad)*(V_tmp_ad)*(0.00002972)+(V_tmp_ad)*(-0.12156)+162.73 // флоат
ух ты.... показывает
Родился
Сообщения: 15
Зарегистрирован: Вт июл 14, 2015 08:33:59

Сообщение gorlanovmax »

12val12 писал(а):V_tmp_ad=(read_adc(0)*(Vref_mV))>>10;// номер канала 0 миливольты Лонг или флоат

Temp= (V_tmp_ad)*(V_tmp_ad)*(0.00002972)+(V_tmp_ad)*(-0.12156)+162.73 // флоат
У меня что-то не выходит. Возможно я неправильно понимаю формулу
Вот табличка градус напряжение
40 2,277052632
50 1,861818182
60 1,481531915
70 1,14688
80 0,862315789
90 0,672099071
100 0,528516129
110 0,427940299
120 0,32152901
130 0,259995838
140 0,196423131


Вот что получается из формулы (на примере первой строчки (2277*2277*0,00002972)+(2277*-0,12156)+162,73)
должно | получается из формулы
40 -113,9144206
50 -63,48959776
60 -17,29978605
70 23,35435892
80 57,92899208
90 81,04306194
100 98,49188102
110 110,71502
120 123,648006
130 131,126915
140 138,8539508
Потрогал лапой паяльник
Сообщения: 315
Зарегистрирован: Пт янв 29, 2010 19:42:27

Сообщение 12val12 »

(2277*2277*0,00002972)+(2277*-0,12156)+162,73) = 40
если на входе ацп 2277 миливольт на выходе получаем температуру 40 градусов

(862 × 862 × 0,00002972) + (862 × – 0,12156) + 162,73 = 80,02854768

если на входе ацп 862 миливольт на выходе получаем температуру 80 градусов

аргумент не температура а миливольты
ух ты.... показывает
Родился
Сообщения: 15
Зарегистрирован: Вт июл 14, 2015 08:33:59

Сообщение gorlanovmax »

Да, не правильно настроил формулу

Вот что получается
40 40,02875148
50 39,42780734
60 47,86850256
70 62,40698579
80 80,00634347
90 94,45467094
100 106,7852461
110 116,1522871
120 126,717414
130 133,1339136
140 139,9994626


но в середине диапазона погрешность до 7 градусов, а это не мало
Потрогал лапой паяльник
Сообщения: 315
Зарегистрирован: Пт янв 29, 2010 19:42:27

Сообщение 12val12 »

можно разделить на 2 куска параболы
можно кубическую парболу



или кусочно линейную

if (V_Temp__ad)>1.8618 Temp = 40+(2,277-V_Temp__ad)*10/(2,277-1,8618)
if (V_Temp__ad)<1.8618 and (V_Temp__ad)>1.4815 Temp = 50+(1.862-V_Temp__ad)*10/(1,862-1,4815)
if (V_Temp__ad)<1.4815 and (V_Temp__ad)>1,14688 Temp = 60+(1,4815-V_Temp__ad)*10/(1,4815-1,14688)

ит д
Последний раз редактировалось 12val12 Чт мар 09, 2017 20:41:38, всего редактировалось 1 раз.
ух ты.... показывает
Родился
Сообщения: 15
Зарегистрирован: Вт июл 14, 2015 08:33:59

Сообщение gorlanovmax »

12val12 писал(а):можно разделить на 2 куска параболы или кусочно линейную
обратите внимание на второе и третье значение
Вымогатель припоя
Сообщения: 522
Зарегистрирован: Чт янв 21, 2016 15:59:10

Сообщение ozonn »

лично я решил аналогичную задачу минимальной кровью. Сделал переводную таблицу и прошил ее в PROGMEM. Поскольку, к примеру, ATmega8 и всякие квадратично-линейно-синусоидально-тангенциальные аппроксимации и прочие быстрые преобразования Фурье находятся в разных галактиках. А таблиза у меня заняла ровно 256 байт PROGMEMа :)
Ответить

Вернуться в «AVR»