Мазмуну:
- 1 -кадам: Куралдар жана материалдар
- 2 -кадам: PCB этч
- 3 -кадам: Компоненттерди ширетүү
- 4 -кадам: Микроконтроллерди программалаңыз
- 5 -кадам: чогултуу жана калибрлөө
- 6 -кадам: PID тюнинг
- 7 -кадам: Аны таңгактоо
Video: PID Температура Контролери: 7 кадам
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:42
Менин досум пластикалык кайра иштетүү үчүн пластикалык экструдер куруп жатат (https://preciousplastic.com). Ал экструзиянын температурасын көзөмөлдөшү керек. Ушул максатта ал жылытуучу учту колдонот. Бул насадкада термопара жана жылытуучу блок бар, ал бизге температураны өлчөөгө жана акыры каалаган температурага жетүүгө мүмкүндүк берет (артка тартуу циклын жасаңыз).
Мен анын бир нече PID контроллерлеринин бардык бул жылыткычтарды көзөмөлдөшү керек экенин укканымда, ал дароо эле өзүбүздүкүн жасоого аракет кылууну каалады.
1 -кадам: Куралдар жана материалдар
Куралдар
- ширетүүчү темир, ширетүүчү зым жана флюс
- пинцет
- фрезердик станок (ПХБнын прототиптөөсү үчүн химиялык оюуу да мүмкүн) (сиз дагы ПКБга менин бүркүт файлым менен заказ берсеңиз болот)
- термометр (калибрлөө үчүн)
- arduino (каалаган түрү) же AVR программисти
- FTDI сериялык TTL-232 USB кабели
- лазер кескич (милдеттүү эмес)
- мультиметр (омметр жана вольтметр)
Материал
- Бакелит бир жактуу жез табак (минималдуу 60*35 мм) (стекловолоктон сатып алган арамды бузуп алдым, абайлаңыз: Бакелит)
- Attiny45 микроконтроллери
- LM2940IMP-5 чыңалуу жөндөгүчү
- AD8605 ыкчам күчөткүч
- NDS356AP транзистору
- резисторлордун жана конденсаторлордун туткасы (менде SMT 0603 adafruit китеби бар)
- 230V-9V AC-DC трансформатору
- 1N4004 диоддор
- катуу абал релеси
- лак (милдеттүү эмес)
2 -кадам: PCB этч
Мен ПХБны тегирүү үчүн 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 кирешеси менен, мен күчөткүчтөн (0.05*371) бир даражага 18.5mV алам. Мен 200 ° C айланасында өлчөгүм келет, андыктан күчөткүчтүн чыгымы 3.7V (0.0185*200) тегерегинде болушу керек. Жыйынтык 5В ашпашы керек, анткени мен 5V маалымдама чыңалуусун (тышкы) колдоном.
Сүрөт мен жасаган биринчи (иштебеген) версияга туура келет, бирок принциби бир. Бул биринчи версияда мен эстафетаны колдонуп, тактанын так ортосуна койдум. Мен жогорку чыңалуу менен которулганымда, менде контроллерди өчүрүп -күйгүзгөн учтар пайда болду.
4 -кадам: Микроконтроллерди программалаңыз
Ардуинону колдонуу бул көрсөтмөлөрдөгүдөй: https://www.instructables.com/id/How-to-Program-a… сиз кодду жүктөй аласыз.
Мен Attiny 45ти программалоо үчүн FTDI-USB кабели бар прокладка колдондум, бирок бул ыкма барабар. Мен андан кийин сериялык маалыматтарды алуу жана мүчүлүштүктөрдү оңдоо үчүн PB1 жана GDN pinин FTDI-USB кабелинин RX жана GNDге туташтырдым.
Сиз arduino эскизинде бардык параметрлерди нөлгө (P = 0, I = 0, D = 0, K = 0) коюшуңуз керек. Алар жөндөө баскычында орнотулат.
Эгерде түтүн же күйгөн жытты көрбөсөңүз, кийинки кадамга секире аласыз!
5 -кадам: чогултуу жана калибрлөө
Эскертүү: Эч качан программисттин электр булагын жана 5Вны бир убакта туташтырбаңыз! Болбосо мурунку кадамда мен тарткан түтүндү көрөсүң. Эгер сиз аны сыйлай албасаңыз, анда программист үчүн 5v пинти алып салсаңыз болот. Мен уруксат бердим, анткени контроллерди электр менен камсыздоосуз программалоо жана жылыткычты бетимдин алдында жиндидей жылытпай туруп текшерүү.
Эми сиз термопарды күчөткүчкө бутактап, бир нерсени өлчөп жатканыңызды көрө аласыз (полярдыкты урматтаңыз). Эгерде сиздин жылытуу системаңыз бөлмө температурасында болсо, анда нөлдү өлчөөңүз керек. Аны кол менен жылытуу анча -мынча баалуулуктарга алып келиши керек.
Бул баалуулуктарды кантип окуу керек? Жөн гана PB1 жана GDN төөнөгүчтөрүн FTDI-USB кабелинин RX жана GNDге туташтырыңыз жана arduino сериялык мониторун ачыңыз.
Контроллер иштей баштаганда, чиптин ички термометринин жардамы менен кызыл маанини жөнөтөт. Мен температураны ушундайча компенсациялайм (атайын чипти колдонбостон). Бул операция учурунда температура өзгөрсө, ал эске алынбайт дегенди билдирет. Бул маани бир чиптен экинчисине абдан айырмаланат, андыктан эскиздин башында REFTEMPERATURE аныктамасына кол менен киргизилиши керек.
Катуу абал релесин туташтыруудан мурун, чыңалуу чыгышы сиздин реле колдогон диапазондо экенин текшериңиз (3Vдан 25Vга чейин, чынжыр 11В айланасында пайда болот). (полярдуулукту урматтоо)
Бул баалуулуктар градус же Фаренгейт эмес, бирок аналогдун санарипке которулушунун натыйжасы, андыктан алар 0 менен 1024 ортосунда айырмаланат. Мен 5V маалымдама чыңалуусун колдоном, ошентип күчөткүч 5Вга жакын болгондо, конверсиянын натыйжасы 1024кө жакын.
6 -кадам: PID тюнинг
Мен көзөмөлдөө боюнча эксперт эмес экенимди айтып коюшум керек, андыктан мен үчүн иштей турган кээ бир параметрлерди таптым, бирок анын бардыгы үчүн иштээрине кепилдик бербейм.
Биринчиден, мен программанын эмне экенин түшүндүрүшүм керек. Мен PWM программасынын бир түрүн киргиздим: эсептегич 20'000ге жеткенге чейин ар бир итерацияда көбөйтүлөт (бул учурда 0гө кайтарылат). Кечигүү циклди миллисекундга чейин жайлатат. Эң кыраакыбыз, көзөмөл мезгили 20 секунддун тегерегинде экенин байкайт. Ар бир цикл эсептегич менен босогону салыштыруу менен башталат. Эгерде эсептегич босогодон төмөн болсо, анда мен релени өчүрөм. Эгер чоңураак болсо, мен күйгүзөм. Ошондуктан мен босогону коюу менен бийликти жөнгө салам. Босогону эсептөө ар бир секундда болот.
PID контроллери деген эмне?
Процессти башкаргыңыз келгенде, сиз өлчөгөн мааниге ээ болосуз (analogData), жеткиңиз келген мааниге (tempCommand) жана ошол процесстин абалын өзгөртүү жолуна (seuil) ээ болосуз. Менимче, бул босого менен жасалат (француз тилинде "seuil", бирок жазуу жана айтуу алда канча оңой ("сей" деп айтуу)), бул которгуч канча убакытка чейин өчүрүлөрүн (иштөө цикли) ошону менен энергиянын көлөмүн аныктайт. системага салыңыз.
Баары макул, эгер сиз жеткиңиз келген жерден алыс болсоңуз, анда чоң оңдоону жасай аласыз, эгер сиз жакын болсоңуз, кичине түзөтүү керек. Бул түзөтүү катанын функциясы экенин билдирет (ката = 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 трансформациясын жана blablablaсын эсептей аласыз. Мен унитардык секирүүнү жараткым келди, андан кийин реакцияны 10 мүнөткө жазып, өткөрүп берүү функциясын жазгым келди, анан эмне? Мен 200 термин менен арифметика кылгым келбейт. Андыктан кимдир бирөөнүн ою болсо, мен муну кантип туура жасоону үйрөнүүгө кубанычта болом.
Мен дагы эң жакын досторум Зиглер менен Николс жөнүндө ойлондум. Алар мага термелүүлөрдү пайда кылуучу Р табууну, анан алардын ыкмасын колдонууну айтышты. Мен бул термелүүлөрдү тапкан жокмун. Мен тапкан жалгыз нерсе асманга ооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооууууууууууууууууууууууууууууууууууууууууууууууууууууууууууууууууууууууууууууууууууууууy
Анан кантип жылытуу муздатуу процесси эмес экенин кантип моделдөө керек?
Мен изилдөөмдү уланта берем, бирок азыр, эгерде сиз алган өндүрүмдүүлүккө канааттансаңыз, контроллериңизди таңгактайлы.
7 -кадам: Аны таңгактоо
Мен Москва фаблабына (fablab77.ru) жана алардын лазердик кескичине кире алдым жана ыраазымын. Бул мүмкүнчүлүк мага керектүү өлчөмдөгү кутучаларды жасоочу плагин аркылуу бир чыкылдатуу менен түзүлгөн жакшы пакетти түзүүгө мүмкүндүк берди (h = 69 l = 66 d = 42 mm). Лидер жана которгучтун үстүндө эки тешик (диаметри = 5мм) жана программалоо төөнөгүчтөрүнүн капталында бир тешик бар. Мен трансформаторду эки жыгачтан жана ПХБны эки бурам менен бекиттим. Мен терминал блогун зымдарга жана ПХБга туташтырдым, трансформатор менен ПХБнын күчүнүн ортосундагы которууну коштум, PBOго резистор (300 Ом) менен катар туташтырдым. Мен дагы электр жылуулоо үчүн лак колдондум. Акыркы сыноодон кийин мен кутучаны чаптадым. Дал ушул.
Сунушталууда:
Автоматтык бөлмө жарыгы жана күйөрман контролери эки багыттуу келүүчүнүн эсептегичи менен: 3 кадам
Автоматтык бөлмө жарыгы жана күйөрман контроллери эки тараптуу келүүчүнүн эсептегичи: Көбүнчө биз стадиондо, соода борборунда, кеңселерде, класстык бөлмөлөрдө коноктордун эсептегичтерин көрөбүз. Алар элди санап, эч ким жок болгондо жарыкты кантип күйгүзүп же өчүрүшөт? Бүгүн биз бул жерде автоматтык бөлмө жарык контроллеринин долбоору менен эки тараптуу келүүчүнүн эсептегичи менен
Arduino светофорунун контролери RBG Ledди колдонуп - 4-Way: 3 кадам
Arduino светофорунун контролери RBG Ledди колдонуп | 4-Way: Бул билдирүүдө сиз Arduino светофорун кантип жасоону үйрөнөсүз. Бул светофор контроллери жол кыймылын көзөмөлдөө үчүн колдонулат. Бул трафикти же кырсыктарды болтурбоо үчүн, жол кыймылы көп болгон жерлерде колдонулушу мүмкүн
1 кубдук 3D принтер үчүн Imaginbot контролери: 22 кадам
1 кубдук 3D принтер үчүн Imaginbot контролери: Бул контролер чоң кубаттуу моторлорго буйрук берүү менен 3D куб метр принтерди куруу үчүн иштелип чыккан
Катачылыкка чыдамдуу Температура сенсорунун тармак контролери: 8 кадам
Катачылыкка чыдамдуу Температура Сенсорунун Тармак Көзөмөлчүсү: Бул көрсөтмө Arduino Uno тактасын туура эмес сенсорлорду автоматтык түрдө изоляциялоого жөндөмдүү DS18B20 температура сенсорлорунун топтому үчүн бир максаттуу контроллерге айлантууну көрсөтөт. Uno. (А
YABC - Дагы бир Blynk Controller - IoT Булуттагы Температура жана Нымдуулук Контролери, ESP8266: 4 Steps
YABC - Дагы бир Blynk Controller - IoT Булуттагы Температура жана Нымдуулук Контролору, ESP8266: Саламатсыздарбы, мен жакында эле үйдө козу карындарды өстүрө баштадым, устрицалар, бирок менде бул контроллердин үчтөн бир бөлүгү бар. ал дагы ушул Kombucha нерсени жасап жатат жана жылуулук үчүн термостат катары