Բովանդակություն:

PID ջերմաստիճանի վերահսկիչ `7 քայլ
PID ջերմաստիճանի վերահսկիչ `7 քայլ

Video: PID ջերմաստիճանի վերահսկիչ `7 քայլ

Video: PID ջերմաստիճանի վերահսկիչ `7 քայլ
Video: Թե ինչպես կարելի է կատարել մի հպում switch դուրս սովորական, օգտագործելով պարզ ttp223 վերահսկիչ 2024, Հուլիսի
Anonim
PID ջերմաստիճանի վերահսկիչ
PID ջերմաստիճանի վերահսկիչ

Իմ ընկերը պլաստմասե էքստրուդեր է կառուցում պլաստիկի վերամշակման համար (https://preciousplastic.com): Նա պետք է վերահսկի արտամղման ջերմաստիճանը: Այդ նպատակով նա օգտագործում է վարդակ տաքացուցիչի ժապավենը: Այս վարդակում կա ջերմատիպ և ջեռուցման միավոր, որոնք թույլ են տալիս մեզ չափել ջերմաստիճանը և վերջապես հասնել ցանկալի ջերմաստիճանին (հետադարձ կապ կատարել):

Երբ ես լսեցի, որ նրան անհրաժեշտ է մի քանի PID կարգավարներ, որոնք պետք է վերահսկեն վարդակների տաքացուցիչի այս բոլոր ժապավենները, դա ինձ անմիջապես ցանկություն տվեց `փորձել ինքներս պատրաստել:

Քայլ 1: Գործիքներ և նյութեր

Գործիքներ

  • soldոդման երկաթ, զոդման մետաղալարեր և հոսք
  • պինցետ
  • ֆրեզերային հաստոց (քիմիական փորագրումը հնարավոր է նաև PCB- ի նախատիպավորման համար) (կարող եք նաև պատվիրել PCB- ն իմ արծվի ֆայլով)
  • ջերմաչափ (չափման համար)
  • arduino (ցանկացած տեսակի) կամ AVR ծրագրավորող
  • FTDI սերիական TTL-232 USB մալուխ
  • լազերային կտրիչ (ըստ ցանկության)
  • բազմաչափ (օմմետր և վոլտմետր)

Նյութական

  • Bakelite- ի միակողմանի պղնձե ափսե (նվազագույնը 60*35 մմ) (ես քայքայեցի իմ սղոցը `ապակեպլաստե ապրանքը գնելուց, այնպես որ զգույշ եղեք. Bakelite)
  • Attiny45 միկրոկոնտրոլեր
  • LM2940IMP-5 լարման կարգավորիչ
  • AD8605 գործառնական ուժեղացուցիչ
  • NDS356AP տրանզիստոր
  • մի փունջ դիմադրիչներ և կոնդենսատորներ (ես ունեմ SMT 0603 adafruit գիրքը)
  • 230V-9V AC-DC տրանսֆորմատոր
  • 1N4004 դիոդներ
  • պինդ վիճակի ռելե
  • եղունգների լաք (ըստ ցանկության)

Քայլ 2. Կպցրեք PCB- ն

Կտտացրեք PCB- ն
Կտտացրեք PCB- ն
Կտտացրեք PCB- ն
Կտտացրեք PCB- ն
Կտտացրեք PCB- ն
Կտտացրեք PCB- ն

Ես օգտագործեցի իմ Proxxon MF70 CNC- ն փոխակերպված և կոնաձև վերջնական բիթը ՝ PCB- ն աղալու համար: Կարծում եմ, որ ցանկացած փորագրման վերջնական բիտ կաշխատի: Gcode ֆայլը ուղղակիորեն ստեղծվել է արծվի և pcb-gcode հավելվածի կողմից: Ընդամենը երեք անցում է կատարվել `երթուղու լավ տարանջատում ապահովելու համար, բայց առանց ժամեր անցկացնելու ամբողջ պղնձի ֆրեզերումը: Երբ PCB- ն դուրս եկավ CNC մեքենայից, ես երթուղիները մաքրեցի դանակով և փորձարկեցի դրանք բազմիմետրով:

Պարամետրեր `սնուցման արագություն 150 մմ/րոպե, խորություն 0.2 մմ, պտտման արագություն 20'000 տ/րոպե

Քայլ 3: erոդեք բաղադրիչները

Sոդել բաղադրիչները
Sոդել բաղադրիչները

Պինցետով և եռակցման երկաթով տեղադրեք բաղադրիչները ճիշտ վայրերում և կպցրեք այն հոսքի միջոցով (դա օգնում է) և սկսած ամենափոքր բաղադրիչներից: Կրկին, ստուգեք բազմիմետրով, որ դուք չունեք կարճ միացում կամ չկապված տարրեր:

Դուք կարող եք ընտրել ուժեղացուցիչի շահույթը `ընտրելով ձեր ուզած դիմադրությունը (շահույթ = (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: Programրագրավորեք միկրոկառավարիչը

Programրագրավորեք միկրոկառավարիչը
Programրագրավորեք միկրոկառավարիչը

Օգտագործելով arduino- ն, ինչպես այս հրահանգներում ՝ https://www.instructables.com/id/How-to-Program-a… կարող եք բեռնել ծածկագիրը:

Ես օգտագործել եմ FTDI-USB մալուխով պրոֆիլային մանրուք ՝ Attiny 45-ը ծրագրավորելու համար, բայց այս մեթոդը համարժեք է: Այնուհետև ես միացրեցի PB1 և GDN կապը ուղղակիորեն FTDI-USB մալուխի RX և GND- ի մեջ ՝ սերիական տվյալները ստանալու և կարգաբերելու համար:

Արդուինոյի ուրվագծում դուք պետք է զրոյի հասցնեք բոլոր պարամետրերը (P = 0, I = 0, D = 0, K = 0): Դրանք կկարգավորվեն թյունինգի քայլի ընթացքում:

Եթե այրված ծուխ կամ հոտ չեք տեսնում, կարող եք անցնել հաջորդ քայլին:

Քայլ 5: Հավաքում և չափաբերում

Հավաքում և չափաբերում
Հավաքում և չափաբերում
Հավաքում և չափաբերում
Հավաքում և չափաբերում

Neverգուշացում. Երբեք միացրեք էլեկտրասնուցումը և 5V- ը ծրագրավորողից միաժամանակ: Հակառակ դեպքում դուք կտեսնեք այն ծուխը, որը ես ընդունում էի նախորդ քայլին: Եթե վստահ չեք, որ կկարողանաք հարգել դա, կարող եք պարզապես հեռացնել ծրագրավորողի համար նախատեսված 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»)), որը որոշում է, թե որքան ժամանակ անջատիչը միացված և անջատված կլինի (աշխատանքային ցիկլ), հետևաբար էներգիայի քանակը դրեց համակարգում:

Բոլորը համաձայն են, որ եթե դուք հեռու եք այն կետից, որին ցանկանում եք հասնել, կարող եք մեծ ուղղում կատարել, իսկ եթե մոտ եք, ապա անհրաժեշտ է փոքր ուղղում: Նշանակում է, որ ուղղումը սխալի ֆունկցիա է (սխալ = analogData-tempComand): Այո, բայց որքան: Ասենք, որ սխալը բազմապատկում ենք գործոնով (P): Սա համաչափ վերահսկիչ է: Մեխանիկականորեն զսպանակը կատարում է համաչափ ուղղում, քանի որ զսպանակի ուժը համաչափ է գարնանային սեղմմանը:

Դուք հավանաբար գիտեք, որ ձեր մեքենայի կախոցները բաղկացած են զսպանակից և կափույրից (հարվածային կլանիչ): Այս կափույրի դերն է ՝ խուսափել ձեր մեքենայի բատուտի պես թռիչքից: Սա հենց այն է, ինչ անում է ածանցյալ տերմինը: Որպես կափույր, այն առաջացնում է ռեակցիա, որը համաչափ է սխալի տատանումին: Եթե սխալը արագ փոխվում է, ուղղումն իջեցվում է: Այն նվազեցնում է տատանումներն ու գերազանցումները:

Ինտեգրատորի տերմինը այստեղ է ՝ մշտական սխալից խուսափելու համար (այն ինտեգրում է սխալը): Մասնավորապես, դա հաշվիչ է, որը ավելանում կամ նվազում է, եթե սխալը դրական է կամ բացասական: Այնուհետեւ ուղղումը մեծանում կամ իջեցվում է ըստ այս հաշվիչի: Այն չունի մեխանիկական համարժեքություն (կամ գաղափար ունեք): Հնարավոր է, որ նման ազդեցություն լինի, երբ ձեր մեքենան բերում եք ծառայության և մեխանիկը նկատում է, որ ցնցումները համակարգված կերպով չափազանց ցածր են և որոշում եք ավելացնել ևս մի քանի նախաբեռնում:

Այս ամենը ամփոփված է բանաձևում. Ուղղում = P*e (t)+I*(de (t)/dt)+D*ինտեգրալ (e (t) dt), P, I և D- ը երեք պարամետր են կարգավորվել:

Իմ տարբերակում ես ավելացրեցի չորրորդ տերմինը, որը «a priori» (feed forward) հրամանն է, որն անհրաժեշտ է որոշակի ջերմաստիճան պահպանելու համար: Ես ընտրեցի ջերմաստիճանի համաչափ հրաման (դա ջեռուցման կորուստների լավ մոտարկում է: isիշտ է, եթե անտեսենք ճառագայթման կորուստները (T^4)): Այս տերմինով ինտեգրատորը թեթևանում է:

Ինչպե՞ս գտնել այս պարամետրերը:

Ես փորձեցի սովորական մեթոդ, որը դուք կարող եք գտնել ՝ googling «pid tuning temperature controller» - ով գուգլացնելով, բայց ես դժվարությամբ կիրառեցի և ավարտեցի իմ սեփական մեթոդը:

Իմ մեթոդը

Սկզբում P, I, D- ը զրոյի հասցրեք և «K» - ն և «tempCommand» - ը դրեք փոքր արժեքների վրա (օրինակ ՝ K = 1 և tempCommand = 100): Միացրեք համակարգը և սպասեք, սպասեք, սպասեք … մինչև ջերմաստիճանը կայունանա: Այս պահին դուք գիտեք, որ 1*100 = 100 «seuil» - ով ջերմաստիճանը հակված է X- ի: Այսպիսով, դուք գիտեք, որ 100/20000 = 5% հրամանով կարող եք հասնել X- ին: Բայց նպատակը 100 -ին հասնելն է: քանի որ դա «tempCommand» է: Օգտագործելով համամասնություն ՝ կարող եք հաշվարկել K- ն ՝ 100 -ին հասնելու համար (tempCommand): Նախախնամությամբ ես օգտագործել եմ ավելի փոքր արժեք, քան հաշվարկվածը: Իրոք, ավելի հեշտ է ավելի շատ տաքացնել, քան սառչել: Այսպիսով, վերջապես

Kfinal = K*tempCommand*0.9/X

Այժմ, երբ միացնում եք վերահսկիչը, այն բնականաբար պետք է հակվի ձեր ուզած ջերմաստիճանին, բայց դա իսկապես դանդաղ գործընթաց է, քանի որ դուք փոխհատուցում եք միայն ջեռուցման կորուստները: Եթե ցանկանում եք մի ջերմաստիճանից անցնել մյուսին, համակարգում պետք է ավելացվի ջերմային էներգիայի քանակ: P- ն որոշում է, թե որ արագությամբ եք էներգիա ներդնում համակարգի մեջ: P- ն սահմանեք փոքր արժեքի համար (օրինակ ՝ P = 10): Փորձեք (գրեթե) սառը մեկնարկ: Եթե մեծ գերազանցում չունեք, փորձեք կրկնակի օգնությամբ (P = 20), եթե այժմ ունեք մեկը, ինչ -որ բան փորձեք միջակայքում: Եթե ունեք 5% գերազանցում, դա լավ է:

Այժմ ավելացրեք D- ն, մինչև որ գերազանցում չունենաք: (միշտ փորձություններ, ես գիտեմ, որ սա գիտություն չէ) (ես վերցրեցի D = 100)

Այնուհետեւ ավելացրեք I = P^2/(4*D) (Այն հիմնված է ieիգլեր-Նիկոլց մեթոդի վրա, այն պետք է երաշխավորի կայունություն) (ինձ համար I = 1)

Ինչու՞ այս բոլոր փորձությունները, ինչու՞ ոչ գիտությունը:

Ես գիտեմ… Ես գիտեմ! Կա հսկայական տեսություն, և դուք կարող եք հաշվարկել փոխանցման գործառույթը և Z փոխակերպումը և բլաբլաբլան: Ես ուզում էի առաջացնել ունիտար ցատկեր, այնուհետև 10 րոպե արձանագրել արձագանքը և գրել փոխանցման գործառույթը, իսկ հետո՞: Չեմ ուզում թվաբանություն անել 200 տերմիններով: Այսպիսով, եթե որևէ մեկը գաղափար ունի, ես ուրախ կլինեի սովորել, թե ինչպես դա անել ճիշտ:

Ես մտածեցի նաև իմ լավագույն ընկերների ՝ ieիգլերի և Նիկոլսի մասին: Նրանք ինձ ասացին, որ գտնեմ տատանումներ առաջացնող P, այնուհետև կիրառեմ դրանց մեթոդը: Ես երբեք չեմ գտել այս տատանումները: Միակ բանը, որ գտա, երկինք դեպի երկինք էր:

Իսկ ինչպե՞ս մոդելավորել այն փաստը, որ ջեռուցումը նույն գործընթացը չէ, ինչ հովացումը:

Ես կշարունակեմ իմ հետազոտությունը, բայց հիմա եկեք փաթեթավորենք ձեր վերահսկիչը, եթե գոհ եք ձեր ստացած կատարումից:

Քայլ 7: Փաթեթավորեք այն

Փաթեթավորեք այն
Փաթեթավորեք այն
Փաթեթավորեք այն
Փաթեթավորեք այն
Փաթեթավորեք այն
Փաթեթավորեք այն
Փաթեթավորեք այն
Փաթեթավորեք այն

Ես մուտք ունեի Մոսկվայի գործարան (fablab77.ru) և նրանց լազերային դանակ, և ես շնորհակալ եմ: Այս հնարավորությունը թույլ տվեց ինձ կատարել մի գեղեցիկ փաթեթ, որը ստեղծվում է մեկ կտտոցով մի հավելումով, որը պատրաստում է ցանկալի չափերի տուփեր (h = 69 l = 66 d = 42 մմ): Գլխի և անջատիչի համար վերևում կա երկու անցք (տրամագիծ = 5 մմ) և մեկ ճեղք ՝ կողքի վրա ՝ ծրագրավորման կապում: Ես տրանսֆորմատորը ամրացրեցի երկու փայտով և PCB- ն `երկու պտուտակով: Ես տերմինալային բլոկը միացրեցի լարերին և PCB- ին, ավելացրեցի տրանսֆորմատորի և PCB- ի հոսանքի միջև անջատիչը, միացրած PBO- ին միացնող (300 Օմ) շարքով: Եղունգների լաք եմ օգտագործել նաև էլեկտրական մեկուսացման համար: Վերջին փորձարկումից հետո ես սոսնձեցի տուփը: Վերջ:

Խորհուրդ ենք տալիս: