| Автор |
Съобщение |
|
slavi
Ранг: Минаващ
Регистриран на: Пет Дек 01, 2006 7:38 pm Мнения: 6
|
 Въпрос за проектиране на терморегулатор.
Здравейте приятели.Опитвам се да проектирам терморегулатор и горе-долу мисля ,че го направих но имам един
проблем.За сензор използвам термодвойка тип 'J',сигнала от нея подавам на АD594,която го усилва,линеазира и компенсира характеристиката.Напрежението от АD594 подавам на АЦП-то на PIC18F242,измервам го/512 замервания/,обработвам резултата и го визуализирам на три разреден светодиоден индикатор с динамично управление през порт Б.Температурата,която искам да поддържам задавам чрез ротационен енкодер и визуализирам на друг три разреден светодиоден индикатор с динамично управление през SPI интерфейса чрез
74НС595.Изхода е релеен .Проблема е ,че релето се включва,съответно изключва с няколко прещраквания при
достигане на зададената температура.Увеличих замерванията до 4096 но прещракванията пак ги има.Сложил съм
кондезатор 100нф на входа на АЦП-то.Кода от програмата за управление на релето е следния:
bsf PORTA,1 ;включвам релето през транзистор
movf RPG_counter,w ;това е младшия регистър на зададената температура
cpfsgt RES_0 ;сравнявам младшия регистър на текущата темп. със младшия на зададената
bra adres_0 ;връщане в началото на цикъл
movf RPG_counter+1,w ;старшия регистър на зададената температура в работния регт.
cpfseq RES_1 ;сравнение на старш. рег на текущата със старшия на зададената
bra adres_0
bcf PORTA,1 ;текущата е по-голяма от зададената-изключвам релето
bra adres_0
END
|
| Съб Дек 16, 2006 10:34 pm |
|
 |
|
sthx
Ранг: Форумен бог
Регистриран на: Съб Юни 24, 2006 8:25 pm Мнения: 2292
|
 Re: Въпрос за проектиране на терморегулатор.
1.Задай някакъв хистерезис (2-3 градуса) и вероятно ще си решиш проблема.
2.Възможно е масата по която върви сигналът от термодвойката да съвпада в някакъв учатък с масата през която тече токът от бобината на релето. Падът на напрежение върху този учатък се възприема като сигнал и започва едно заиграване на логиката, което наблюдаваш. Проводникът на масата за термодвойката не трябва да се използва от други вериги.
_________________ Две плюс две е приблизително равно на четири. Факт!
|
| Съб Дек 16, 2006 11:11 pm |
|
 |
|
slavi
Ранг: Минаващ
Регистриран на: Пет Дек 01, 2006 7:38 pm Мнения: 6
|
АД594 я купувам от една пловдивска фирма -казва се "Кузмов електроникс" доколкото разбрах те я поръчват от Германия,между другого не е евтина -цената е около 20 лв.Сигурно има и
други начини за да се линеазира термодвойката но аз съм така да се каже "новобранец" в
програмирането на МК и електрониката въобще , занимавам се от месец и половина с тези неща.
По професия съм електроинженер-специалност-"Ел. машини и апарати" и се занимавам с производство на фурни и така да се каже на този етап до тук ми стига ума, но все трябва от
някъде да се започне.Използвам този процесор , защото уча по книгата на "Млад конструктор"
и за сега познавам само тази серия ,вероятно за в бъдеще ще видя , че има и по-оптимални
варианти ,но всичко с времето си.
|
| Нед Дек 17, 2006 11:34 am |
|
 |
|
slavi
Ранг: Минаващ
Регистриран на: Пет Дек 01, 2006 7:38 pm Мнения: 6
|
Благодаря ти "sthx" за отговора ,сега според мен проблема идва от там ,че не става изведнъж
преминаване от едната стойност към друга ,аз наблюдавам индикатора,примерно съм задал
300 градуса ,текущата ги достига и не преминава веднага на 301 ами " чука" два -три пъти
300-301 и тогава се установява в 301,същото се получава и при обратния процес -при намаляване на температурата.Колкото процеса е по-бавен /по-бавно увеличаване/намаляване на
температурата/,"почукванията" са повече.Ще помисля за хистерезис, но си мисля дали в момента
на влизане в хистерезиса нещата ще си останат същите и пак ще "прещраква".
|
| Нед Дек 17, 2006 12:10 pm |
|
 |
|
sthx
Ранг: Форумен бог
Регистриран на: Съб Юни 24, 2006 8:25 pm Мнения: 2292
|
Имаш пари - даваш.  Линеаризацията можеш да я направиш , чрез таблица в паметта на професора, а компенсация на студения край - чрез друг датчик на температура - може и с едно диодче за 2 стотинки. 
_________________ Две плюс две е приблизително равно на четири. Факт!
Последна промяна sthx на Нед Дек 17, 2006 12:50 pm, променена общо 1 път
|
| Нед Дек 17, 2006 12:47 pm |
|
 |
|
Syrius-B
Ранг: Форумен бог
Регистриран на: Пон Яну 30, 2006 2:48 am Мнения: 1248 Местоположение: София
|
Хистерезиса решава въпроса.
Задание нпр. 300 - изключваш при 301, включваш при 299.
Това е хистерезис +/-1
Хистерезиса задължително се избира не по-малък от разлюляването на показанието на датчика, независимо поради каква причина
|
| Нед Дек 17, 2006 12:49 pm |
|
 |
|
¶
Ранг: Форумен бог
Регистриран на: Пет Фев 25, 2005 1:58 pm Мнения: 4585 Местоположение: US
|
Може и времеви хистерезис да направиш, защото температурата е бавно променяща се величина. След като ти включи релето пускаш таймер за няколко секунди, чак след изтичане на това време пак можеш да го включваш/изключваш.
_________________ Ето аз дишам, работя, живея и програми пиша тъй както умея, с проца под вежди се гледаме строго и боря се с него доколкото мога....
|
| Нед Дек 17, 2006 2:33 pm |
|
 |
|
Syrius-B
Ранг: Форумен бог
Регистриран на: Пон Яну 30, 2006 2:48 am Мнения: 1248 Местоположение: София
|
Може, но това само намалява динамиката на регулиране.
Хистерезиса по стойност е задължителен, при нестабилност на обратната връзка - в случая показанието от датчика.
Всеки датчик е нестабилен в рамките на минимум +/- един дискрет
|
| Нед Дек 17, 2006 4:00 pm |
|
 |
|
slavi
Ранг: Минаващ
Регистриран на: Пет Дек 01, 2006 7:38 pm Мнения: 6
|
STHX ,благодаря за идеята ,предполагам че компенсацията трябва да стане с някакъв операционен усилвател, но откровенно казано не ми е ясно,може ли да ме насочите към материал,който да прочета.
|
| Вто Дек 19, 2006 7:21 pm |
|
 |
|
Nikola Kirov
Ранг: Форумен бог
Регистриран на: Нед Окт 31, 2004 9:19 pm Мнения: 4464 Местоположение: Stara Zagora
|
Просто коригираш с напрежението което генерира термодвоитака която се образува на студения край.
И аз доста си блъсках главата какво напрежение дава термодвойката в студения край.
От същата таблица като за топлия го вземаш
Просто мериш с един диод температурата на конектора и по тази температура смяташ с колко трябва да коригираш.
|
| Вто Дек 19, 2006 7:42 pm |
|
 |
|
plameniv
Ранг: Форумен бог
Регистриран на: Нед Окт 10, 2004 9:55 am Мнения: 1718
|
 Mda
Едно време като бях студент го правехме като другата термодвойка се слагаше във вода с кубчета лед , иначе не знам какво ще коригираш ако я оставиш така другата термодвоика трябва да отчиташ и температурата на помещението където е
Абе ако ползваш таблица с готови стоиности , просто го тарираш с такъв дето е точен и няма нужда да се занимаваш да смяташ толкова, таблицата ще ти е такава че всичко да е съобразено в нея .
Със стоиностите на ADC-то просто адресираш таблицата и вадиш готово число дори числото може да е направо готово като за индикацията със добавен предварително ASCI код 
|
| Вто Дек 19, 2006 7:54 pm |
|
 |
|
mitko_el
Ранг: Форумен бог
Регистриран на: Вто Яну 24, 2006 6:34 pm Мнения: 1753 Местоположение: Варна
|
|
| Вто Дек 19, 2006 8:27 pm |
|
|