Përmbajtje:

Kontrolluesi i temperaturës PID: 7 hapa
Kontrolluesi i temperaturës PID: 7 hapa

Video: Kontrolluesi i temperaturës PID: 7 hapa

Video: Kontrolluesi i temperaturës PID: 7 hapa
Video: Замена термостата водонагревателя 2024, Korrik
Anonim
Kontrolluesi i temperaturës PID
Kontrolluesi i temperaturës PID

Miku im po ndërton një ekstruder plastik për riciklimin e plastikës (https://preciousplastic.com). Ai duhet të kontrollojë temperaturën e nxjerrjes. Për këtë qëllim ai po përdor një brez ngrohës hundësh. Në këtë hundë, ekziston një termoelement dhe një njësi ngrohjeje të cilat na lejojnë të matim temperaturën dhe më në fund të arrijmë temperaturën e dëshiruar (bëni një lak retroaksioni).

Kur dëgjova se atij i duheshin disa kontrollorë PID për të kontrolluar të gjitha këto breza të ngrohësve të hundës, kjo menjëherë më dha dëshirën të përpiqesha të krijonim tonën.

Hapi 1: Mjetet dhe materiali

Mjetet

  • hekur bashkues, tela lidhës dhe fluks
  • piskatore
  • mulliri (gdhendja kimike është gjithashtu e mundur për prototipimin e PCB) (gjithashtu mund të porosisni PCB me skedarin tim shqiponje)
  • termometër (për kalibrim)
  • arduino (çdo lloj) ose një programues AVR
  • FTDI serial TTL-232 kabllo USB
  • prestar lazer (opsional)
  • multimetër (ohmmetër dhe voltmetër)

Materiale

  • Pllakë bakri e vetme bakelite (minimumi 60*35 mm) (Unë prisha sharrën duke blerë një tekstil me fije qelqi, prandaj kini kujdes: Bakelite)
  • Mikrokontrolluesi Attiny45
  • Rregullatori i tensionit LM2940IMP-5
  • Përforcuesi operacional AD8605
  • Transistor NDS356AP
  • një bandë rezistencash dhe kondensatorësh (kam librin adafruit SMT 0603)
  • 230V-9V transformator ac-dc
  • Diodat 1N4004
  • stafetë e gjendjes së ngurtë
  • manikyrin e thonjve (sipas dëshirës)

Hapi 2: Gdhend PCB

Gdhend PCB
Gdhend PCB
Gdhend PCB
Gdhend PCB
Gdhend PCB
Gdhend PCB

Kam përdorur Proxxon MF70 CNC tim të transformuar dhe një fund konik për të bluar PCB. Unë mendoj se çdo copë gdhendëse në fund do të funksiononte. Skedari Gcode u krijua drejtpërdrejt nga shqiponja dhe shtojca pcb-gcode. Vetëm tre kalime janë bërë për të siguruar një ndarje të mirë të rrugës, por pa shpenzuar orë të tëra duke bluar të gjithë bakrin. Kur PCB doli nga makina CNC, unë pastrova rrugët me një prestar dhe i testova me një multimetër.

Parametrat: shpejtësia e ushqimit 150mm/min, thellësia 0.2mm, shpejtësia e rrotullimit 20'000 t/min

Hapi 3: Saldoni Komponentët

Saldoni Komponentët
Saldoni Komponentët

Me piskatoren dhe hekurin bashkues, vendosni përbërësit në vendet e duhura dhe ngjiteni duke përdorur fluksin (ndihmon) dhe duke filluar me përbërësit më të vegjël. Përsëri, kontrolloni me një multimetër që të mos keni ndonjë qark të shkurtër ose elementë të palidhur.

Mund të zgjidhni fitimin e amplifikatorit duke zgjedhur rezistencën që dëshironi (fitimi = (R3+R4)/R4). Mora 1M dhe 2.7k kështu që në rastin tim fitimi është i barabartë me 371. Nuk mund ta di vlerën e saktë sepse po përdor rezistencë tolerancë 5%.

Termoelementi im është i tipit J. Do të thotë që jep 0.05mV për secilën shkallë. Me fitimin prej 371, marr 18.5mV për shkallë nga dalja e amplifikatorit (0.05*371). Unë dua të mat rreth 200 ° C kështu që dalja e amplifikatorit duhet të jetë rreth 3.7V (0.0185*200). Rezultati nuk duhet të kalojë 5V sepse unë përdor tensionin referues 5V (i jashtëm).

Imazhi korrespondon me versionin e parë (që nuk punon) që kam bërë, por parimi është i njëjtë. Në këtë version të parë, kam përdorur një stafetë dhe e kam vendosur pikërisht në mes të tabelës. Sapo po kaloja me tension të lartë, kisha thumba që bënë që kontrolluesi të rindizet.

Hapi 4: Programoni Mikrokontrolluesin

Programoni Mikrokontrolluesin
Programoni Mikrokontrolluesin

Duke përdorur një arduino si në këtë udhëzues: https://www.instructables.com/id/How-to-Program-a… mund të ngarkoni kodin.

Kam përdorur një xhingël pro me një kabllo FTDI-USB për të programuar Attiny 45 por kjo metodë është ekuivalente. Pastaj e futa pinin PB1 dhe GDN direkt në RX dhe GND të kabllit FTDI-USB për të marrë të dhënat serike dhe për të qenë në gjendje të korrigjoj.

Ju duhet t'i vendosni të gjithë parametrat në zero (P = 0, I = 0, D = 0, K = 0) në skicën arduino. Ato do të vendosen gjatë hapit të akordimit.

Nëse nuk shihni tym ose erë të djegur, mund të hidheni në hapin tjetër!

Hapi 5: Montimi dhe Kalibrimi

Montimi dhe Kalibrimi
Montimi dhe Kalibrimi
Montimi dhe Kalibrimi
Montimi dhe Kalibrimi

Kujdes: Asnjëherë mos e lidhni furnizuesin me energji elektrike dhe 5V nga programuesi në të njëjtën kohë! Përndryshe ju do të shihni tymin që po merrja në hapin e mëparshëm. Nëse nuk jeni të sigurt se do të jeni në gjendje ta respektoni atë, thjesht mund të hiqni pinin 5v për programuesin. E lashë sepse ishte më i përshtatshëm për mua të programoja kontrolluesin pa furnizim me energji elektrike dhe të provoja kontrolluesin pa e ngrohur ngrohësin si të çmendur para fytyrës sime.

Tani mund të degëzoni termoelementin në përforcues dhe të shihni nëse jeni duke matur diçka (respektoni polaritetin). Nëse sistemi juaj i ngrohjes është në temperaturën e dhomës, duhet të matni zero. Ngrohja me dorë duhet të çojë tashmë në disa vlera të vogla.

Si t'i lexoni këto vlera? Thjesht lidhni kunjat PB1 dhe GDN direkt në RX dhe GND të kabllit FTDI-USB dhe hapni monitorin serial arduino.

Kur fillon kontrolluesi, ai dërgon vlerën e kuqe nga termometri i brendshëm i çipit. Kështu e kompensoj temperaturën (pa përdorur një çip të dedikuar). Do të thotë që nëse temperatura ndryshon gjatë operacionit, ajo nuk do të merret parasysh. Kjo vlerë është shumë e ndryshme nga një çip në tjetrin kështu që duhet të futet manualisht në përkufizimin REFTEMPERATURE në fillim të skicës.

Para se të lidhni stafetën e gjendjes së ngurtë, verifikoni që dalja e tensionit është në intervalin e mbështetur nga stafeta juaj (3V në 25V në rastin tim, qarku gjeneron rreth 11V). (respektoni polaritetin)

Këto vlera nuk janë temperatura në shkallë ose Fahrenheit por rezultati i konvertimit analog në dixhital kështu që ato ndryshojnë midis 0 dhe 1024. Unë përdor tensionin e referencës 5V kështu kur dalja e amplifikatorit është afër 5V, rezultati i konvertimit është afër 1024.

Hapi 6: Akordimi i PID -it

Akordimi i PID -it
Akordimi i PID -it

Më duhet të përmend se nuk jam ekspert kontrolli, kështu që gjeta disa parametra që funksionojnë për mua, por nuk garantoj që funksionon për të gjithë.

Para së gjithash, më duhet të shpjegoj se çfarë bën programi. Kam zbatuar një lloj softueri PWM: një numërues rritet në çdo përsëritje derisa të arrijë 20'000 (në të cilin rast rivendoset në 0). Një vonesë ngadalëson lakun në një milisekond. Më i dalluari prej nesh do të vërejë se periudha e kontrollit është rreth 20 sekonda. Çdo lak fillon me një krahasim midis numëruesit dhe një pragu. Nëse numëruesi është më i ulët se pragu, atëherë e fik stafetën. Nëse është më e madhe, e ndez. Kështu që unë rregulloj fuqinë duke vendosur pragun. Llogaritja e pragut ndodh çdo sekondë.

Çfarë është një kontrollues PID?

Kur doni të kontrolloni një proces, ju keni vlerën që matni (analogData), vlerën që dëshironi të arrini (tempCommand) dhe një mënyrë për të modifikuar gjendjen e atij procesi (seuil). Në rastin tim, kjo bëhet me pragun ("seuil" në frëngjisht, por shumë më e lehtë për të shkruar dhe shqiptuar (shqiptoni "sey")) të cilat përcaktojnë sa kohë do të jetë ndezja dhe fikja e ciklit (cikli i punës) kështu sasia e energjisë vënë në sistem.

Të gjithë pajtohen që nëse jeni larg nga pika që dëshironi të arrini, mund të bëni një korrigjim të madh dhe nëse jeni afër, nevojitet një korrigjim i vogël. Do të thotë që korrigjimi është një funksion i gabimit (gabimi = analogData-tempComand). Po por sa? Le të themi se e shumëzojmë gabimin me një faktor (P). Ky është një kontrollues proporcional. Mekanikisht një sustë bën një korrigjim proporcional sepse forca e sustës është proporcionale me ngjeshjen e pranverës.

Me siguri e dini se pezullimet e makinës suaj përbëhen nga një sustë dhe një amortizues (amortizues). Roli i këtij amortizuesi është të shmangë kthimin e makinës suaj si një trampoline. Kjo është pikërisht ajo që bën termi derivativ. Si prishës, ai gjeneron një reagim i cili është proporcional me ndryshimin e gabimit. Nëse gabimi ndryshon shpejt, korrigjimi ulet. Zvogëlon lëkundjet dhe tejkalimet.

Termi integrues është këtu për të shmangur gabimin e përhershëm (ai integron gabimin). Konkretisht, është një numërues që shtohet ose zvogëlohet nëse gabimi është pozitiv ose negativ. Pastaj korrigjimi rritet ose ulet sipas këtij numëruesi. Nuk ka ekuivalencë mekanike (ose keni ndonjë ide?). Ndoshta ka një efekt të ngjashëm kur e sillni makinën tuaj në shërbim dhe mekaniku vëren se goditjet janë sistematikisht shumë të ulëta dhe vendosni të shtoni një ngarkesë më shumë.

E gjithë kjo përmblidhet në formulën: korrigjimi = P*e (t)+I*(de (t)/dt)+D*integral (e (t) dt), P, I dhe D janë tre parametra që kanë per tu akorduar.

Në versionin tim shtova një term të katërt i cili është komanda "a priori" (feed forward) e nevojshme për të ruajtur një temperaturë të caktuar. Zgjodha një komandë proporcionale me temperaturën (është një përafrim i mirë i humbjeve të ngrohjes. Shtë e vërtetë nëse neglizhojmë humbjet e rrezatimit (T^4)). Me këtë term, integruesi ndriçohet.

Si t'i gjeni këto parametra?

Provova një metodë konvencionale që mund ta gjeni duke kërkuar në googling "kontrolluesin e temperaturës së akordimit të pid", por e pata të vështirë të aplikoj dhe përfundova me metodën time.

Metoda ime

Së pari vendosni P, I, D në zero dhe vendosni "K" dhe "tempCommand" në vlera të vogla (për shembull K = 1 dhe tempCommand = 100). Ndizni sistemin dhe prisni, prisni, prisni … derisa temperatura të stabilizohet. Në këtë pikë ju e dini që me një "seuil" prej 1*100 = 100, temperatura tenton në X. Pra ju e dini që me një komandë 100/20000 = 5% mund të arrini X. Por qëllimi është të arrini 100 sepse është "tempCommand". Duke përdorur një proporcion ju mund të llogaritni K në mënyrë që të arrini 100 (tempCommand). Me masë paraprake kam përdorur një vlerë më të vogël se ajo e llogaritur. Në të vërtetë është më e lehtë të nxehet më shumë sesa të ftohet. Kështu më në fund

Kfinal = K*tempCommand*0.9/X

Tani kur filloni kontrolluesin, ai duhet të priret natyrshëm në temperaturën që dëshironi, por është një proces vërtet i ngadalshëm sepse kompensoni vetëm humbjet e ngrohjes. Nëse dëshironi të kaloni nga njëra temperaturë në tjetrën, një sasi e energjisë termike duhet të shtohet në sistem. P përcakton me çfarë shpejtësie e vendosni energjinë në sistem. Vendosni P në një vlerë të vogël (për shembull P = 10). Provoni një fillim (pothuajse) të ftohtë. Nëse nuk keni një tejkalim të madh, provoni me dyshen (P = 20) nëse tani keni një provoni diçka në mes. Nëse keni tejkalim 5%, është mirë.

Tani rrisni D derisa të mos keni tejkalim. (gjithmonë sprova, e di që kjo nuk është shkencë) (mora D = 100)

Pastaj shtoni I = P^2/(4*D) (Bazohet në metodën Ziegler-Nicholts, duhet të garantojë stabilitet) (për mua I = 1)

Pse të gjitha këto sprova, pse jo shkencë?

Unë e di unë e di! Ekziston një teori e madhe dhe ju mund të llogaritni funksionin e transferimit dhe transformimin Z dhe blablabla. Doja të gjeneroja një kërcim unitar dhe pastaj të regjistroja për 10 minuta reagimin dhe të shkruaja funksionin e transferimit dhe pastaj çfarë? Nuk dua të bëj aritmetikë me 200 terma. Pra, nëse dikush ka një ide, do të isha i lumtur të mësoja se si ta bëja atë siç duhet.

Unë gjithashtu mendova për miqtë e mi më të mirë Ziegler dhe Nichols. Ata më thanë të gjeja një P që gjeneronte lëkundje dhe më pas të aplikoja metodën e tyre. Unë kurrë nuk i gjeta këto lëkundje. E vetmja gjë që gjeta ishte një oooooooovershitje drejt qiellit.

Dhe si të modelohet fakti që ngrohja nuk është i njëjti proces si ftohja?

Unë do të vazhdoj kërkimin tim, por tani le të paketojmë kontrolluesin tuaj nëse jeni të kënaqur me performancën që merrni.

Hapi 7: Paketojeni atë

Paketojeni atë
Paketojeni atë
Paketojeni atë
Paketojeni atë
Paketojeni atë
Paketojeni atë
Paketojeni atë
Paketojeni atë

Kam pasur qasje në fablab të Moskës (fablab77.ru) dhe prerësin e tyre me lazer dhe jam mirënjohës. Kjo mundësi më lejoi të bëj një paketë të bukur të krijuar me një klikim nga një shtojcë që bën kuti me dimensionet e kërkuara (h = 69 l = 66 d = 42 mm). Ka dy vrima (diam = 5mm) në pjesën e sipërme për led dhe switch, dhe një të çarë në anën për kunjat e programimit. E sigurova transformatorin me dy copa druri dhe PCB me dy vida. Unë bashkova bllokun e terminalit në tela dhe në PCB, shtova ndërprerësin midis transformatorit dhe fuqisë së PCB, lidha led në PBO me një rezistencë (300 Ohms) në seri. Kam përdorur edhe manikyrin e thonjve për izolimin elektrik. Pas provës së fundit, e ngjita kutinë. Kjo eshte.

Recommended: