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-х вариантов. Результат ...
|
Автор: | 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: Линейная апроксимация | ||
|
Автор: | avrmastak [ 23 июн 2012, 21:27 ] | ||
Заголовок сообщения: | Re: Линейная апроксимация | ||
По датчику ... Нашел только это: "Датчик ММ393А при отсутствии давления должен иметь сопротивление 310...320 Ом, при давлении в 4 кг/см2 — 115...130 Ом, при давлении в 6 кг/см2 — 55...65 Ом, при давлении в 8 кг/см2 — 0...15 Ом." Значения сопротивления в остальных точках мерял сам,подавая воздух с компрессора и меряя тестером. Мои значения почему-то отличаются от заявленных. По контроллеру ... Завтра переделаю под mega8 и попробую вариант №2.
|
Автор: | 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/ |