Мазмұны:

PID температура реттегіші: 7 қадам
PID температура реттегіші: 7 қадам

Бейне: PID температура реттегіші: 7 қадам

Бейне: PID температура реттегіші: 7 қадам
Бейне: Review of DPS5020 50V 20A DC Buck converter with PC USB and Mobile app software | WattHour 2024, Шілде
Anonim
PID температура реттегіші
PID температура реттегіші

Менің досым пластикалық қайта өңдеуге арналған пластикалық экструдер жасап жатыр (https://preciousplastic.com). Ол экструзия температурасын бақылауы керек. Ол үшін ол жылытқыш саптаманы қолданады. Бұл саптамада термопара мен жылыту қондырғысы бар, ол бізге температураны өлшеуге және ақырында қажетті температураға жетуге мүмкіндік береді (ретроакциялық ілмек жасаңыз).

Мен оған бірнеше PID контроллерлерінің осы саптамалық жылытқыштардың барлық жолақтарын басқаруы қажет екенін естігенде, бұл бірден өз қолымызбен жасауға талпыныс берді.

1 -қадам: құралдар мен материалдар

Құралдар

  • дәнекерленген темір, дәнекерлеу сымы мен ағын
  • пинцет
  • фрезерлік станок (ПХД прототиптеу үшін химиялық өңдеу де мүмкін) (сіз ПХД -ге менің бүркіт файлыммен тапсырыс бере аласыз)
  • термометр (калибрлеу үшін)
  • arduino (кез келген түрі) немесе AVR бағдарламашысы
  • FTDI сериялы TTL-232 USB кабелі
  • лазерлік кескіш (міндетті емес)
  • мультиметр (омметр мен вольтметр)

Материал

  • Бакелит бір жақты мыс пластина (минимум 60*35 мм) (мен шыны талшықты сатып алатын арамды бұздым, абай болыңыз: бакелит)
  • Attiny45 микроконтроллері
  • LM2940IMP-5 кернеу реттегіші
  • AD8605 жұмыс күшейткіші
  • NDS356AP транзисторы
  • резисторлар мен конденсаторлар (менде SMT 0603 adafruit кітабы бар)
  • 230В-9В ауыспалы ток кернеуі
  • 1N4004 диодтары
  • қатты күй релесі
  • лак (міндетті емес)

2 -қадам: ПХД -ны кесіңіз

ПХД шығарыңыз
ПХД шығарыңыз
ПХД шығарыңыз
ПХД шығарыңыз
ПХД шығарыңыз
ПХД шығарыңыз

Мен ПХД өңдеу үшін Proxxon MF70 CNC түрлендірілген конустық ұшын қолдандым. Менің ойымша, кез келген гравюралық ұш жұмыс істейді. Gcode файлы бүркіт пен pcb-gcode плагинімен тікелей жасалған. Маршруттың жақсы бөлінуін қамтамасыз ету үшін бар болғаны үш өту қажет, бірақ барлық мысты сөндіруге сағат жұмсамай. ПХД CNC станогынан шыққан кезде мен маршруттарды кескішпен тазалап, мультиметрмен тексердім.

Параметрлер: беру жылдамдығы 150 мм/мин, тереңдігі 0,2 мм, айналу жылдамдығы 20'000 т/мин

3 -қадам: компоненттерді дәнекерлеу

Компоненттерді дәнекерлеу
Компоненттерді дәнекерлеу

Пинцет пен дәнекерлеуші үтіктің көмегімен компоненттерді дұрыс орынға қойыңыз және оны флюсті қолданып дәнекерлеңіз (бұл көмектеседі) және ең кіші компоненттерден басталады. Тағы да мультиметрмен тексеріңіз, сізде қысқа тұйықталу немесе қосылмаған элементтер жоқ.

Қажетті резисторды таңдау арқылы күшейткіштің пайдасын таңдауға болады (күшейту = (R3+R4)/R4). Мен 1M және 2,7k алдым, сондықтан менің жағдайда пайда шамамен 371 тең. Мен нақты мәнді біле алмаймын, себебі мен 5% төзімділік резисторын қолданамын.

Менің термопара J түріне жатады. Бұл әр дәрежеге 0,05 мВ береді дегенді білдіреді. 371 -дің күшеюімен мен күшейткіштің шығуынан бір градусқа 18,5мВ аламын (0,05*371). Мен шамамен 200 ° C өлшегім келеді, сондықтан күшейткіштің шығысы шамамен 3,7 В (0,0185*200) болуы керек. Нәтиже 5В аспауы керек, себебі мен 5В тірек кернеуін қолданамын (сыртқы).

Сурет мен жасаған бірінші (жұмыс істемейтін) нұсқаға сәйкес келеді, бірақ принцип бірдей. Бұл бірінші нұсқада мен эстафетаны қолдандым және оны тақтаның дәл ортасына қойдым. Мен жоғары кернеумен ауысқан кезде, менде контроллерді қайта жүктеуге мүмкіндік беретін ұштар болды.

4 -қадам: Микроконтроллерді бағдарламалау

Микроконтроллерді бағдарламалаңыз
Микроконтроллерді бағдарламалаңыз

Осы нұсқаулардағыдай arduino көмегімен: https://www.instructables.com/id/How-to-Program-a… сіз кодты жүктей аласыз.

Мен Attiny 45 бағдарламалау үшін FTDI-USB кабелі бар кәсіпқойлықты қолдандым, бірақ бұл әдіс эквивалентті. Содан кейін мен PB1 мен GDN түйреуішін FTDI-USB кабелінің RX және GND-ге тікелей қосып, сериялық деректерді алу және күйін келтіру мүмкіндігіне ие болдым.

Arduino эскизінде барлық параметрлерді нөлге қою керек (P = 0, I = 0, D = 0, K = 0). Олар баптау кезеңінде орнатылады.

Егер сіз түтінді немесе күйдірілген иісті көрмесеңіз, келесі қадамға өтуіңізге болады!

5 -қадам: құрастыру және калибрлеу

Жинау және калибрлеу
Жинау және калибрлеу
Жинау және калибрлеу
Жинау және калибрлеу

Ескерту: Ешқашан бағдарламашыдан қуат көзі мен 5В қосылмаңыз! Әйтпесе, алдыңғы қадамда мен шығарған түтінді көресіз. Егер сіз оны құрметтей алмайтыныңызға сенімді болмасаңыз, бағдарламашыға арналған 5В істікшені алып тастауға болады. Мен бұған рұқсат бердім, себебі менде контроллерді электрмен жабдықтамай бағдарламалау және жылытқышты қыздырмастан, менің көз алдымда сынау ыңғайлы болды.

Енді сіз термопараны күшейткішке тарата аласыз және сіз бір нәрсені өлшеп жатқаныңызды көре аласыз (полярлықты құрметтеңіз). Егер сіздің жылу жүйеңіз бөлме температурасында болса, онда сіз нөлді өлшеуіңіз керек. Оны қолмен жылыту кейбір шамалы мәндерге әкелуі керек.

Бұл мәндерді қалай оқу керек? PB1 және GDN түйреуіштерін FTDI-USB кабелінің RX және GND-ге тікелей қосыңыз және arduino сериялық мониторын ашыңыз.

Контроллер іске қосылған кезде чиптің ішкі термометрі арқылы қызыл мәнді жібереді. Мен температураны осылай өтеймін (арнайы чипті пайдаланбай). Бұл жұмыс кезінде температура өзгерсе, ол ескерілмейтінін білдіреді. Бұл мән бір чиптен басқасына өте ерекшеленеді, сондықтан оны эскиздің басында REFTEMPERATURE анықтамасына қолмен енгізу керек.

Қатты күй релесін қоспас бұрын, кернеудің шығысы сіздің реле қолдайтын диапазонда екенін тексеріңіз (менің жағдайда 3 В -тан 25 В -қа дейін, тізбек шамамен 11 В құрайды). (полярлықты құрметтеу)

Бұл мәндер температура немесе Фаренгейт емес, бірақ аналогты цифрлық түрлендірудің нәтижесі болып табылады, сондықтан олар 0 -ден 1024 -ке дейін өзгереді. Мен 5В тірек кернеуін қолданамын, сондықтан күшейткіштің шығысы 5В -қа жақын болғанда, түрлендіру нәтижесі 1024 -ке жақын.

6 -қадам: PID реттеу

PID тюнинг
PID тюнинг

Мен бақылау бойынша сарапшы емес екенімді айтуым керек, сондықтан мен жұмыс істейтін кейбір параметрлерді таптым, бірақ мен оның барлық адамдар үшін жұмыс істейтініне кепілдік бермеймін.

Алдымен мен бағдарламаның не істейтінін түсіндіруім керек. Мен PWM бағдарламалық жасақтамасын енгіздім: есептегіш әр итерацияда 20'000 -ға жеткенше ұлғаяды (бұл жағдайда 0 қалпына келтіріледі). Кідіріс циклды миллисекундқа дейін баяулатады. Бізге ең ұқыптысы бақылау кезеңінің шамамен 20 секунд екенін байқайды. Әрбір цикл есептегіш пен табалдырықты салыстырудан басталады. Егер есептегіш табалдырықтан төмен болса, онда мен релені өшіремін. Егер ол үлкенірек болса, мен оны қосамын. Сондықтан мен шекті орнату арқылы қуатты реттеймін. Шекті есептеу әр секунд сайын жүреді.

PID контроллері дегеніміз не?

Егер сіз процесті басқарғыңыз келсе, сізде өлшейтін мән (analogData), қол жеткізгіңіз келетін мән (tempCommand) және сол процестің күйін өзгерту әдісі (seuil) болады. Менің жағдайда бұл шекті мәнмен (француз тіліндегі «seuil», бірақ жазу мен айтуды жеңілдету («sey» деп айту)), бұл қосқыштың қанша уақыт қосылатынын және өшетінін (жұмыс циклы), осылайша энергия мөлшерін анықтайды. жүйеге енгізіңіз.

Барлығы келіседі, егер сіз қол жеткізгіңіз келетін жерден алыс болсаңыз, сіз үлкен түзету жасай аласыз, ал егер жақын болсаңыз, шағын түзету қажет. Бұл түзету қатенің функциясы екенін білдіреді (error = analogData-tempComand). Иә, бірақ қанша? Айталық, қатені факторға көбейтеміз (P). Бұл пропорционалды контроллер. Механикалық серіппе пропорционалды түзетеді, себебі серіппе күші серіппелі қысуға пропорционалды.

Сіз білетін шығарсыз, сіздің автокөлік суспензиялары серіппе мен демпферден (амортизатордан) тұрады. Бұл демпфердің рөлі - бұл сіздің машинаңыздың батут тәрізді қайтып келуіне жол бермеу. Туынды термин дәл осылай жасайды. Демпфер ретінде ол қатенің өзгеруіне пропорционалды реакция тудырады. Егер қате тез өзгерсе, түзету төмендейді. Ол тербелістер мен асып кетулерді азайтады.

Интегратор термині тұрақты қатені болдырмау үшін осында (ол қатені біріктіреді). Нақтырақ айтқанда, бұл қате оң немесе теріс болса, көбейтілетін немесе азайтылатын есептегіш. Содан кейін түзету осы есептегішке сәйкес жоғарылайды немесе төмендейді. Оның механикалық баламасы жоқ (немесе сізде идея бар ма?). Мүмкін, сіз автокөлікті қызмет көрсетуге әкелгенде және механизатор соққылардың жүйелі түрде тым төмен екенін байқап, қосымша жүктемені қосуды шешкенде осындай әсер болуы мүмкін.

Мұның бәрі формулада жинақталған: түзету = P*e (t)+I*(de (t)/dt)+D*интеграл (e (t) dt), P, I және D үш параметрі бар реттелуі керек.

Менің нұсқада мен төртінші терминді қостым, ол белгілі бір температураны ұстап тұру үшін қажет «априори» (алға жіберу) командасы. Мен температураға пропорционалды команданы таңдадым (бұл жылудың жоғалуына жақсы жақындау. Егер радиациялық шығындарды елемейтін болсақ, бұл дұрыс (T^4)). Бұл терминмен интегратор жеңілдейді.

Бұл параметрлерді қалай табуға болады?

Мен «pid tuning температура реттегішін» гуглинг арқылы табуға болатын әдеттегі әдісті қолданып көрдім, бірақ оны қолдану қиынға соқты және мен өз әдісіммен аяқтадым.

Менің әдісім

Алдымен P, I, D нөлге қойып, «K» және «tempCommand» мәндерін кіші мәндерге қойыңыз (мысалы, K = 1 және tempCommand = 100). Жүйені қосыңыз және күтіңіз, күтіңіз, күтіңіз … температура тұрақтанғанша. Осы кезде сіз 1*100 = 100 болатын «seuil» кезінде температура X -ке ұмтылатынын білесіз, сондықтан сіз 100/20000 = 5% пәрменімен X -ке жетуге болатынын білесіз. Бірақ мақсат - 100 -ге жету. себебі бұл «tempCommand». Пропорцияны қолдана отырып, 100 -ге жету үшін K есептеуге болады (tempCommand). Сақтықпен мен есептелгеннен кіші мәнді қолдандым. Шынында да, салқындағаннан гөрі қыздыру оңай. Сонымен, ақырында

Kfinal = K*tempCommand*0.9/X

Енді сіз контроллерді қосқанда, ол табиғи түрде қалаған температураға бейімделуі керек, бірақ бұл өте баяу процесс, себебі сіз тек жылу шығынын өтейсіз. Егер сіз бір температурадан екіншісіне ауысқыңыз келсе, жүйеге жылу энергиясын қосу қажет. P энергияны жүйеге қандай жылдамдықпен салатынын анықтайды. P мәнін шағын мәнге қойыңыз (мысалы, P = 10). Суық бастауға тырысыңыз. Егер сізде үлкен асып түсу болмаса, қосарланып көріңіз (P = 20), егер қазір сізде бірдеңе бар болса. Егер сізде 5% артық болса, бұл жақсы.

Енді D асып кетпейінше арттырыңыз. (әрқашан сынақтар, мен бұл ғылым емес екенін білемін) (мен D = 100 алдым)

Содан кейін I = P^2/(4*D) қосыңыз (ол Ziegler-Nicholts әдісіне негізделген, ол тұрақтылыққа кепілдік беруі керек) (мен үшін I = 1)

Неге бұл сынақтардың бәрі, неге ғылым емес?

Мен білемін мен білемін! Үлкен теория бар және сіз трансферлік функцияны және Z түрлендіруді есептей аласыз. Мен біртұтас секіріс жасағым келді, содан кейін 10 минут ішінде реакцияны жазып, тасымалдау функциясын жазғым келді, содан кейін не? Мен 200 терминмен арифметика жасағым келмейді. Сондықтан егер біреуде идея болса, мен оны қалай дұрыс жасау керектігін білуге қуанышты болар едім.

Мен сондай -ақ ең жақын достарым Зиглер мен Николспен ойладым. Олар маған тербелістер тудыратын Р табуды, содан кейін олардың әдісін қолдануды айтты. Мен бұл тербелістерді ешқашан таппадым. Мен тапқан жалғыз нәрсе - бұл аспанға ұшу.

Ал жылытудың салқындатуға ұқсамайтынын қалай модельдеуге болады?

Мен зерттеуімді жалғастырамын, бірақ егер сіз алған өнімділікке қанағаттансаңыз, контроллеріңізді жинайық.

7 -қадам: Оны жинаңыз

Оны орау
Оны орау
Оны орау
Оны орау
Оны орау
Оны орау
Оны орау
Оны орау

Мен Мәскеудің фаблабына (fablab77.ru) және олардың лазерлік кескішіне қол жеткізе алдым, мен ризамын. Бұл мүмкіндік маған қажетті өлшемді (h = 69 l = 66 d = 42 мм) қораптар жасайтын плагинмен бір рет басу арқылы жасалған жақсы пакетті жасауға мүмкіндік берді. Жоғарғы жағында сым мен қосқыш үшін екі тесік (диаметрі = 5мм) және бағдарламалау түйреуіштері үшін бір тесік бар. Мен трансформаторды екі ағаштан және ПХД екі бұрандамен бекіттім. Мен терминалды блокты сымдарға және ПХД -ге дәнекерледім, трансформатор мен ПХД қуат кірісі арасындағы қосқышты қостым, РБО -ға резистормен (300 Ом) тізбектей жалғадым. Мен сонымен қатар электр оқшаулау үшін лак қолдандым. Соңғы сынақтан кейін мен қорапты жапсырдым. Міне бітті.

Ұсынылған: