http://forum.getchip.net/

Линейная апроксимация
http://forum.getchip.net/viewtopic.php?f=20&t=234
Страница 2 из 3

Автор:  aui2002 [ 22 июн 2012, 01:49 ]
Заголовок сообщения:  Re: Линейная апроксимация

На всякий случай, еще раз пробежимся по алгоритму (тупо, чтобы разночтений не было).

1) Получаем значение АЦП.
2) Если АЦП = 220, выводим на экран 8,0. // Здесь R2 считать смысла нет, только лишние такты тратить...
3) Если АЦП = 920, выводим 0,0. // Здесь тоже работаем только с АЦП.
4) Если 220< АЦП<920:
4.1) Считаем R2 по формуле: R2= -(ADC*R1*Vref)/(ADC*Vref-Vin*1024).
4.2) Считаем P, подставив полученное в п.4.1 значение R2 в уравнение регрессии: P = -0,0272*R2 + 8,8315.
5) Округляем P до 10-х долей и выводим.

P.S.
Значения переменных R1, Vref, Vin, а =-0,0272 и b= 8,8315 предварительно должны быть запиханы в EEPROM.

Автор:  avrmastak [ 23 июн 2012, 18:30 ]
Заголовок сообщения:  Re: Линейная апроксимация

Все пересчитал и перепроверил для 3-х вариантов. Результат ...

Вложения:
Example.rar [3.82 КБ]
Скачиваний: 567

Автор:  avrmastak [ 23 июн 2012, 18:37 ]
Заголовок сообщения:  Re: Линейная апроксимация

Вариант P=f(ADC) мне кажется самый достоверный. Только как быть с точками 0 и 1? Или написать if(adc>857){buf[1]=buf[2]=0;}. Если меньше 2 атм выводить нули?

Автор:  avrmastak [ 23 июн 2012, 18:40 ]
Заголовок сообщения:  Re: Линейная апроксимация

Кстати ...
Контроллер - tiny26.
Для варианта P=f(R) жрет 98% памяти. Для варианта P=f(ADC) - 81%.

Автор:  aui2002 [ 23 июн 2012, 20:25 ]
Заголовок сообщения:  Re: Линейная апроксимация



Вложения:
Exel.xls [28.5 КБ]
Скачиваний: 694

Автор:  avrmastak [ 23 июн 2012, 21:27 ]
Заголовок сообщения:  Re: Линейная апроксимация

По датчику ...
Нашел только это: "Датчик ММ393А при отсутствии давления должен иметь сопротивление 310...320 Ом, при давлении в 4 кг/см2 — 115...130 Ом, при давлении в 6 кг/см2 — 55...65 Ом, при давлении в 8 кг/см2 — 0...15 Ом." Значения сопротивления в остальных точках мерял сам,подавая воздух с компрессора и меряя тестером. Мои значения почему-то отличаются от заявленных.

По контроллеру ...
Завтра переделаю под mega8 и попробую вариант №2.

Вложения:
393.rar [221.15 КБ]
Скачиваний: 675

Автор:  avrmastak [ 23 июн 2012, 21:46 ]
Заголовок сообщения:  Re: Линейная апроксимация

Можно еще вопрос...
Не очень силен в математике. В формуле y = -6E-07x3 + 0,0003x2 - 0,0787x + 11,045 Е - это экспонента, т.е. подставлять 2,71828? И как понять выражение -6E-07x3?

Автор:  aui2002 [ 23 июн 2012, 23:02 ]
Заголовок сообщения:  Re: Линейная апроксимация


Автор:  avrmastak [ 28 июн 2012, 23:56 ]
Заголовок сообщения:  Re: Линейная апроксимация

Все,как всегда,оказалось гораздо проще! Взял 8 участков,каждый участок разделил на 10.Получил точность 0,1.Затем с помощью ифов определяю участок,и от верхнего значения отнимаю результат АЦП. Все отлично работает! Плюс есть возможность корректировки каждого участка. И не надо никаких ужасных формул.

Автор:  avrmastak [ 28 июн 2012, 23:58 ]
Заголовок сообщения:  Re: Линейная апроксимация

Но, все-равно, СПАСИБО за консультации, узнал для себя много нового, надеюсь в будущем пригодится.

Страница 2 из 3 Часовой пояс: UTC + 3 часа [ Летнее время ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/