|
|
  |
терморегулятор, помогите |
|
|
|
Jul 31 2008, 17:17
|
    
Группа: Свой
Сообщений: 1 928
Регистрация: 11-07-06
Пользователь №: 18 731

|
Цитата(Lost_Viking @ Jul 31 2008, 19:29)  можешь хотя бы примерно рассказать про данный метод? или, хотя бы, алгоритм если есть. Метод - просто какой-либо НЧ фильтр в цифре. Простейший НЧ фильтр 1-го порядка: Yi = a * Yi-1 + b * Xi, a+b = 1 Т.е. Код Y = a * Y + b * X; Для целочисленной арифметики удобно делать a=c/2^N, b=(2^N-c)/2^N. Чтобы не набегала погрешность при обработке, разрядность Y должна быть не менее (разрядность X) + N. Найдите что-нибудь вроде "Цифровые фильтры" Р. Хемминга - там все доступно.
|
|
|
|
|
Jul 31 2008, 17:38
|
Частый гость
 
Группа: Участник
Сообщений: 168
Регистрация: 25-04-08
Пользователь №: 37 091

|
Цитата(sKWO @ Jul 31 2008, 21:05)  как я понял - это просто среднее какое-то значение. блин, и там погрешность, и тут ... Цитата(xemul @ Jul 31 2008, 21:17)  Найдите что-нибудь вроде "Цифровые фильтры" Р. Хемминга - там все доступно.  я умер от этой книги. ничего не понял. мне проще стабилизировать опорное напряжение и питание, чем разобраться в этих греческих символах Нашел вот что.Я смотрю там через операционник подают измеряемое напряжение. Только я не понял зачем там обратная связь в операционнике?
Сообщение отредактировал Lost_Viking - Jul 31 2008, 17:47
|
|
|
|
|
Jul 31 2008, 18:10
|
    
Группа: Свой
Сообщений: 1 928
Регистрация: 11-07-06
Пользователь №: 18 731

|
Цитата(Lost_Viking @ Jul 31 2008, 21:38)  как я понял - это просто среднее какое-то значение. блин, и там погрешность, и тут ... Вряд ли погрешность обработки превысит погрешность АЦП АВР  . Цитата  я умер от этой книги. ничего не понял. мне проще стабилизировать опорное напряжение и питание, чем разобраться в этих греческих символах Код u16_t Yavg;
for(;;) { Yavg -= Yavg/256; Yavg += ADCH; } Запуск и готовность АЦП за Вами. Утверждается, что в старшем байте Yavg получим фильтр НЧ с частотой среза = частоте запуска АЦП/256 с погрешностью обработки <0.5 LSB, по АФЧХ эквивалентный RC цепочке с такой же частотой среза. Почему? Хемминг уже рассказал, у меня лучше не получится  . Цитата Нашел вот что.Я смотрю там через операционник подают измеряемое напряжение. Только я не понял зачем там обратная связь в операционнике? Операционник включен повторителем и согласует входной делитель со входом АЦП. Использование в нем LM358 и заявление "3. Входное напряжение – 0..100В" оставим на совести автора.
|
|
|
|
|
Jul 31 2008, 18:50
|
Частый гость
 
Группа: Участник
Сообщений: 168
Регистрация: 25-04-08
Пользователь №: 37 091

|
Цитата(xemul @ Jul 31 2008, 22:10)  Операционник включен повторителем и согласует входной делитель со входом АЦП. Использование в нем LM358 и заявление "3. Входное напряжение – 0..100В" оставим на совести автора.  там и на 1000 вольт есть, если поищешь. Короче, вот мои соображения: - на вход АЦП повесить ФНЧ из RC цепочки с частотой среза примерно 50Гц.
- использовать внешний ИОН на каком-либо стабилизаторе
- использовать КР514ИД2 по совету kipmaster'а
- наконец перенести все с макетной платы на печатку, предварительно подумав о развязке земли
- если все это не поможет, то использовать опцию "подавитель шумов"
- если и это не поможет, то использовать цифровой фильтр
подскажите пожалуйста как грамотно отделить питание аналоговой части от цифровой?
Сообщение отредактировал Lost_Viking - Jul 31 2008, 19:28
|
|
|
|
|
Jul 31 2008, 20:24
|

извечный пессимист
    
Группа: Свой
Сообщений: 1 113
Регистрация: 9-10-06
Из: Днепропетровск
Пользователь №: 21 125

|
Цитата(Lost_Viking @ Jul 31 2008, 23:50)   там и на 1000 вольт есть, если поищешь. Короче, вот мои соображения: - на вход АЦП повесить ФНЧ из RC цепочки с частотой среза примерно 50Гц.
- использовать внешний ИОН на каком-либо стабилизаторе
- использовать КР514ИД2 по совету kipmaster'а
- наконец перенести все с макетной платы на печатку, предварительно подумав о развязке земли
- если все это не поможет, то использовать опцию "подавитель шумов"
- если и это не поможет, то использовать цифровой фильтр
подскажите пожалуйста как грамотно отделить питание аналоговой части от цифровой? Через LC фильтр, землю цифровую и аналоговую соединить в одной точке, допустим на конденсаторе фильтра после выпрямителя.
--------------------
Slaves are those of this world Given freedom to lay chains upon The Master The wolf is no longer free Release the chains and come for me
|
|
|
|
|
Jul 31 2008, 20:48
|
    
Группа: Свой
Сообщений: 1 928
Регистрация: 11-07-06
Пользователь №: 18 731

|
Цитата(Lost_Viking @ Jul 31 2008, 22:50)   там и на 1000 вольт есть, если поищешь. Проблема не верхнем пределе, а в нижнем. LM358 не является ОУ с диапазоном rail-to-rail ни по входу, ни по выходу. Цитата [*]использовать КР514ИД2 по совету kipmaster'а имхо, при разумной смехотехнике и трассировке достаточно отключать индикаторы на время преобразования АЦП. Цитата [*]если все это не поможет, то использовать опцию "подавитель шумов" Вы собираетесь биться за 9 честный бит? А "внешний ИОН на каком-либо стабилизаторе" у Вас какую точность опоры обеспечит? А где брать в розницу резисторы 0.25% Вы уже знаете? Или это задача для души? Тогда все-таки начните с теории. Цитата [*]если и это не поможет, то использовать цифровой фильтр Не поможет от чего? От мельтешения младшего разряда на индикаторе? Да тупо пропустите сигнал с АЦП через цифровой ФНЧ с частотой среза в 0.5 Гц - будет мельтешить не чаще раза в секунду. Только точности это не добавит, хотя и не убавит.
|
|
|
|
|
Jul 31 2008, 21:10
|
Частый гость
 
Группа: Участник
Сообщений: 168
Регистрация: 25-04-08
Пользователь №: 37 091

|
Цитата(xemul @ Jul 31 2008, 21:17)  Метод - просто какой-либо НЧ фильтр в цифре. Простейший НЧ фильтр 1-го порядка: Yi = a * Yi-1 + b * Xi, a+b = 1 Т.е. Код Y = a * Y + b * X; Для целочисленной арифметики удобно делать a=c/2^N, b=(2^N-c)/2^N. что такое a и b? для чего они нужны? как я понял - это Взвешенное скользящее среднее (WMA), взято от сюда
|
|
|
|
|
Jul 31 2008, 21:29
|
    
Группа: Свой
Сообщений: 1 928
Регистрация: 11-07-06
Пользователь №: 18 731

|
Цитата(Lost_Viking @ Aug 1 2008, 01:10)  что такое a и b? для чего они нужны? как я понял - это Взвешенное скользящее среднее (WMA), взято от сюдаНет, это Экспоненциальное скользящее среднее (EMA) Yi = Yi-1 + A*(Xi - Yi-1). С помощью несложных преобразований можно показать, что a = 1 - A, b = A. оттуда жеЦитата В случае EMA, коэффициент A - параметр фильтра, определяющий степень сглаживания. Чем он меньше, тем сильнее будет сглаживаться входной временной ряд. При A=0 фильтр перестает реагировать на изменения входного ряда, а при A=1 он будет повторять входной временной ряд. Попробуйте смоделировать (хоть в ёкселе) реакцию фильтра на единичный скачок (x=0 при i<0, x=1 при i>=0), поиграйтесь с A, и все станет просто и понятно.
|
|
|
|
|
Aug 1 2008, 13:46
|
Частый гость
 
Группа: Участник
Сообщений: 168
Регистрация: 25-04-08
Пользователь №: 37 091

|
Цитата(MrYuran @ Aug 1 2008, 14:50)  А может даласовские датчики поставить и не мучиться? +/-1оС точность - лечится калибровкой, дискретность - где-то полградуса... Хотя, если хочется повозиться с АЦП, то флаг в руки... ДАЛАСОВСКИЕ? DS которые? Они у них диапозон до 120градусов. Мне нужно 160 градусов. У меня такой даласовский лежит уже, купил не прочитав даташит. Цитата(MrYuran @ Aug 1 2008, 14:50)   Опора не оказывает влияния на результат (только нестабильность резисторов) Как это опора не оказывает влияние на результат?  Ведь если Uоп = 5В, а Uвх = 2.5В, то 10битный ADC выдаст 512. А если опора 10В, то выдаст 256. Заметил вот что: записал в ADMUX: Код REFS1 REFS0 ADLAR MUX4 MUX3 MUX2 MUX1 MUX0 0 0 1 0 0 0 0 0 Циферки перестали бегать, а АЦП все еще мерял что-то. Короче, получилось тоже самое, что и с внутренним ИОН, но только стабильнее. На AREF у меня всего лишь кондер висит, и никакого опорного напряжения не подводится. Объясните мне в чем секрет? Я в чудеса не верю
|
|
|
|
|
Aug 1 2008, 14:54
|
    
Группа: Свой
Сообщений: 1 928
Регистрация: 11-07-06
Пользователь №: 18 731

|
Цитата(Lost_Viking @ Aug 1 2008, 17:46)  Как это опора не оказывает влияние на результат?  Ведь если Uоп = 5В, а Uвх = 2.5В, то 10битный ADC выдаст 512. А если опора 10В, то выдаст 256. При таком включении Rt = Nadc * Rоп / (Nadc_max - Nadc), где Nadc - результат преобразования АЦП Nadc_max - максимальное значение АЦП (0x3ff для однополярного 10-битного АЦП) Цитата Заметил вот что: записал в ADMUX: Код REFS1 REFS0 ADLAR MUX4 MUX3 MUX2 MUX1 MUX0 0 0 1 0 0 0 0 0 Циферки перестали бегать, а АЦП все еще мерял что-то. Короче, получилось тоже самое, что и с внутренним ИОН, но только стабильнее. На AREF у меня всего лишь кондер висит, и никакого опорного напряжения не подводится. Объясните мне в чем секрет? Я в чудеса не верю Вы забыли еще помолиться и свечку затеплить - без этого цифирки все равно иногда будут бегать.
|
|
|
|
|
Aug 1 2008, 15:52
|
Гуру
     
Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882

|
Цитата(Lost_Viking @ Aug 1 2008, 19:46)  Как это опора не оказывает влияние на результат?  Ведь если Uоп = 5В, а Uвх = 2.5В, то 10битный ADC выдаст 512. А если опора 10В, то выдаст 256. Это называется ратиометрическим способом измерения, от слова ratio - отношение. На вход опоры можно подавать Vcc напрямую, если конечно это допустимо. Либо можно поставить буфер и вход опоры и делитель запитывать от него (т.к. ток по входу опоры в несколько раз выше, чем по входу АЦП). Либо использовать внутреннюю опору и выход опоры использовать для запитки делителя Rоп-Rt. В общем когда резистивный делитель запитывается от того же напряжения что и опора, то через оба резистора протекает один и тот же ток (соединение-то последовательное). Поэтому результат преобразования уже не зависит от величины напряжения, а только от отношения величин резисторов, ну и соответственно от временнОй и температурной стабильности опорного резистора. Результат преобразования АЦП является функцией отношения этих резисторов. Следует это отсюда Ut=Rt/(Rt+Rоп)*Uref Поскольку Ut мы получаем в виде результата преобразования АЦП (кодАЦП), а Uref соответствует максимальному коду АЦП = 1023, то получаем что кодАЦП=Rt/(Rt+Rоп)*1023. После простейших метематических преобразования получаем формулу Rt=Rоп*кодАЦП/(1023-кодАЦП). Где величина опоры никак не участвует, а играет роль только сопротивление опорного резистора Rоп. Конечно же превышать максимально допустимое для АЦП и опоры напряжение нельзя. Так что про "если опора 10В" это вы погорячились  Update. Кстати при вычислениях в последней формуле существует вероятная ситуация исключения - деление на нуль, когда кодАЦП=1023. На практике это означает, что Rt>>Rоп (Rt много больше, на несколько порядков больше Rоп) или просто обрыв в цепи измеряемого сопротивления.
Сообщение отредактировал rezident - Aug 1 2008, 17:39
|
|
|
|
|
  |
3 чел. читают эту тему (гостей: 3, скрытых пользователей: 0)
Пользователей: 0
|
|
|