Sisällysluettelo:

PID -lämpötilansäädin: 7 vaihetta
PID -lämpötilansäädin: 7 vaihetta

Video: PID -lämpötilansäädin: 7 vaihetta

Video: PID -lämpötilansäädin: 7 vaihetta
Video: ДОКУМЕНТАЛЬНЫЙ ФИЛЬМ О СОБЫТИЯХ ВОВ "Великая война Сталинград" 7 СЕРИЯ, РУССКИЕ ФИЛЬМЫ, ВОЕННОЕ КИНО 2024, Marraskuu
Anonim
PID -lämpötilansäädin
PID -lämpötilansäädin

Ystäväni rakentaa muoviekstruuderia muovin kierrätystä varten (https://preciousplastic.com). Hänen täytyy hallita suulakepuristuslämpötilaa. Tätä tarkoitusta varten hän käyttää suuttimen lämmitysnauhaa. Tässä suuttimessa on lämpöpari ja lämmitysyksikkö, joiden avulla voimme mitata lämpötilan ja saavuttaa lopulta halutun lämpötilan (tehdä takaisinkytkentäsilmukka).

Kun kuulin hänen tarvitsevan useiden PID -säätimien hallita kaikkia näitä suutinlämmittimen nauhoja, se herätti heti halun yrittää tehdä omamme.

Vaihe 1: Työkalut ja materiaalit

Työkalut

  • juotin, juotoslanka ja virtaus
  • pinsetti
  • jyrsinkone (kemiallinen syövytys on mahdollista myös PCB -prototyyppien valmistukseen) (voit myös tilata piirilevyn kotkatiedostoni kanssa)
  • lämpömittari (kalibrointia varten)
  • arduino (mikä tahansa) tai AVR -ohjelmoija
  • FTDI-sarjan TTL-232-USB-kaapeli
  • laserleikkuri (valinnainen)
  • yleismittari (ohmimittari ja voltimetri)

Materiaali

  • Bakeliitti yksipuolinen kuparilevy (vähintään 60*35 mm) (pilasin sahani ostaessani lasikuitua, joten ole varovainen: bakeliitti)
  • Attiny45 -mikrokontrolleri
  • LM2940IMP-5 jännitesäädin
  • AD8605 -operaatiovahvistin
  • NDS356AP -transistori
  • nippu vastuksia ja kondensaattoreita (minulla on SMT 0603 adafruit -kirja)
  • 230V-9V AC-DC-muuntaja
  • 1N4004 diodit
  • puolijohderele
  • kynsilakka (valinnainen)

Vaihe 2: Syötä PCB

Syötä PCB
Syötä PCB
Syötä PCB
Syötä PCB
Syötä PCB
Syötä PCB

Käytin Proxxon MF70 CNC -muunnettua ja kartiomaista päätybittiä piirilevyn jyrsintään. Luulen, että mikä tahansa kaiverruspääty toimii. Ecle ja pcb-gcode-laajennus loivat Gcode-tiedoston suoraan. Vain kolme kulkua tehtiin reitin hyvän erottelun varmistamiseksi, mutta ilman kuparin jyrsintää. Kun piirilevy poistui CNC -koneesta, puhdistin reitit leikkurilla ja testasin niitä yleismittarilla.

Parametrit: syöttönopeus 150 mm/min, syvyys 0,2 mm, pyörimisnopeus 20 000 t/min

Vaihe 3: Juottaa komponentit

Juottaa komponentit
Juottaa komponentit

Aseta pinsetin ja juotosraudan avulla komponentit oikeisiin paikkoihin ja juota se virtauksen avulla (se auttaa) ja aloita pienimmistä komponenteista. Tarkista jälleen yleismittarilla, ettei sinulla ole oikosulkuja tai kytkemättömiä elementtejä.

Voit valita vahvistimen vahvistuksen valitsemalla haluamasi vastuksen (vahvistus = (R3+R4)/R4). Otin 1M ja 2,7k, joten minun tapauksessani voitto on noin 371. En voi tietää tarkkaa arvoa, koska käytän 5% toleranssivastusta.

Termoparini on J -tyyppinen. Se tarkoittaa, että se antaa 0,05 mV kutakin astetta kohden. Vahvistuksella 371 saan 18,5 mV / asteen vahvistimen lähdöstä (0,05*371). Haluan mitata noin 200 ° C, joten vahvistimen lähdön tulisi olla noin 3,7 V (0,0185*200). Tuloksen ei pitäisi ylittää 5 V, koska käytän 5 V: n vertailujännitettä (ulkoinen).

Kuva vastaa ensimmäistä (ei toimivaa) versiota, jonka tein, mutta periaate on sama. Tässä ensimmäisessä versiossa käytin relettä ja laitoin sen levyn keskelle. Heti kun vaihdoin suurjännitteellä, minulla oli piikkejä, jotka saivat ohjaimen käynnistymään uudelleen.

Vaihe 4: Ohjelmoi mikrokontrolleri

Ohjelmoi mikrokontrolleri
Ohjelmoi mikrokontrolleri

Käyttämällä arduinoa kuten tässä ohjeessa: https://www.instructables.com/id/How-to-Program-a… voit ladata koodin.

Ohjelmoin Attiny 45: n pro-rihkamaa FTDI-USB-kaapelilla, mutta tämä menetelmä on vastaava. Liitin sitten nastat PB1 ja GDN suoraan FTDI-USB-kaapelin RX- ja GND-liittimiin vastaanottamaan sarjatiedot ja voidakseni korjata virheen.

Sinun pitäisi asettaa kaikki parametrit nollaan (P = 0, I = 0, D = 0, K = 0) arduino -luonnoksessa. Ne asetetaan viritysvaiheen aikana.

Jos et näe savua tai hajua palaneelta, voit siirtyä seuraavaan vaiheeseen!

Vaihe 5: Kokoaminen ja kalibrointi

Kokoaminen ja kalibrointi
Kokoaminen ja kalibrointi
Kokoaminen ja kalibrointi
Kokoaminen ja kalibrointi

Varoitus: Älä koskaan kytke virtalähdettä ja 5 V: n ohjelmoijaa samanaikaisesti! Muussa tapauksessa näet savun, jota käytin edellisessä vaiheessa. Jos et ole varma, pystytkö noudattamaan sitä, voit yksinkertaisesti poistaa ohjelmoijan 5v -nastan. Annoin sen, koska minulle oli helpompaa ohjelmoida ohjain ilman virtalähdettä ja testata ohjainta ilman, että lämmitin lämmitti kuin hullu kasvojeni edessä.

Nyt voit haarauttaa vahvistimen termoelementin ja katsoa, mittaatko jotain (noudata napaisuutta). Jos lämmitysjärjestelmäsi on huoneenlämpöinen, mittaa nolla. Käsin lämmittämisen pitäisi jo johtaa pieniin arvoihin.

Kuinka lukea nämä arvot? Liitä nastat PB1 ja GDN suoraan FTDI-USB-kaapelin RX- ja GND-liittimiin ja avaa arduino-sarjamonitori.

Kun ohjain käynnistyy, se lähettää punaisen arvon sirun sisäisellä lämpömittarilla. Näin kompensoin lämpötilan (ilman erillistä sirua). Se tarkoittaa, että jos lämpötila muuttuu käytön aikana, sitä ei oteta huomioon. Tämä arvo on hyvin erilainen sirusta toiseen, joten se on syötettävä manuaalisesti REFTEMPERATURE -määritelmään luonnoksen alussa.

Ennen kuin liität SSD -releen, tarkista, että ulostulojännite on releesi tukemalla alueella (3–25 V tapauksessani piiri tuottaa noin 11 V). (napaisuutta kunnioittaen)

Nämä arvot eivät ole lämpötiloja asteina tai Fahrenheitina, vaan tulokset analogisesta digitaaliseen muunnokseen, joten ne vaihtelevat välillä 0 ja 1024. Käytän 5 V: n vertailujännitettä, jolloin vahvistimen lähtö on lähellä 5 V: a, muuntotulos on lähellä 1024.

Vaihe 6: PID -viritys

PID -viritys
PID -viritys

Minun on mainittava, että en ole valvonta -asiantuntija, joten löysin joitain parametreja, jotka toimivat minulle, mutta en takaa, että se toimii kaikille.

Ensinnäkin minun on selitettävä, mitä ohjelma tekee. Toteutin eräänlaisen ohjelmisto -PWM: laskuria lisätään jokaisella iteroinnilla, kunnes se saavuttaa 20'000 (jolloin nollataan). Viive hidastaa silmukan alas millisekuntiin. Vaativimmat meistä huomaavat, että valvonta -aika on noin 20 sekuntia. Jokainen silmukka alkaa laskurin ja kynnyksen vertailulla. Jos laskuri on alempi kuin kynnys, sammutan releen. Jos se on isompi, kytken sen päälle. Joten säädän tehoa asettamalla kynnyksen. Kynnyslaskenta tapahtuu joka sekunti.

Mikä on PID -säädin?

Kun haluat hallita prosessia, sinulla on mittaamasi arvo (analogData), arvo, jonka haluat saavuttaa (tempCommand), ja tapa muuttaa prosessin tilaa (seuil). Minun tapauksessani se tehdään kynnyksellä ("seuil" ranskaksi, mutta paljon helpompi kirjoittaa ja lausua (lausua "sey")), joka määrittää kuinka kauan kytkin on päällä ja pois (käyttöjakso) eli energian määrä laita järjestelmään.

Kaikki ovat samaa mieltä siitä, että jos olet kaukana tavoitettavasta pisteestä, voit tehdä suuren korjauksen ja jos olet lähellä, tarvitaan pieni korjaus. Se tarkoittaa, että korjaus on virheen funktio (error = analogData-tempComand). Kyllä, mutta kuinka paljon? Sanotaan, että kerrotaan virhe kertoimella (P). Tämä on suhteellinen ohjain. Mekaanisesti jousi tekee suhteellisen korjauksen, koska jousivoima on verrannollinen jousen puristukseen.

Tiedät todennäköisesti, että autosi jousitus koostuu jousesta ja vaimennuksesta (iskunvaimennin). Tämän pellin tehtävänä on välttää autosi rebound kuin trampoliini. Juuri tämä johdannaistermi tekee. Pellinä se tuottaa reaktion, joka on verrannollinen virheen vaihteluun. Jos virhe muuttuu nopeasti, korjaus laskee. Se vähentää värähtelyjä ja ylityksiä.

Integraattorin termi on täällä pysyvien virheiden välttämiseksi (se yhdistää virheen). Konkreettisesti se on laskuri, jota lisätään tai pienennetään, jos virhe on positiivinen tai negatiivinen. Sitten korjausta lisätään tai lasketaan tämän laskurin mukaan. Sillä ei ole mekaanista vastaavuutta (tai onko sinulla idea?). Ehkä vaikutus on samanlainen, kun tuot auton huoltoon ja mekaanikko huomaa, että iskut ovat järjestelmällisesti liian alhaiset, ja päättävät lisätä lisää esijännitystä.

Kaikki tämä tiivistetään kaavassa: korjaus = P*e (t)+I*(de (t)/dt)+D*integraali (e (t) dt), P, I ja D ovat kolme parametria, joilla on viritettäväksi.

Versioon lisäsin neljännen termin, joka on "a priori" (syöttö eteenpäin) -komento, jota tarvitaan tietyn lämpötilan ylläpitämiseen. Valitsin suhteellisen komennon lämpötilaan (se on hyvä arvio lämmityshäviöistä. On totta, jos jätetään huomiotta säteilyhäviöt (T^4)). Tällä termillä integraattori kevenee.

Kuinka löytää nämä parametrit?

Kokeilin tavanomaista menetelmää, jonka löydät googlaamalla "pid tuning lämpötilansäädin", mutta minun oli vaikea soveltaa sitä ja päädyin omaan menetelmään.

Mun menetelmä

Aseta ensin P, I, D nollaan ja aseta "K" ja "tempCommand" pieniin arvoihin (esimerkiksi K = 1 ja tempCommand = 100). Käynnistä järjestelmä ja odota, odota, odota… kunnes lämpötila on vakiintunut. Tässä vaiheessa tiedät, että kun "seuil" on 1*100 = 100, lämpötila on yleensä X. Joten tiedät, että komennolla 100/20000 = 5% voit saavuttaa X. Mutta tavoite on saavuttaa 100 koska se on "tempCommand". Käyttämällä osuutta voit laskea K saavuttaaksesi 100 (tempCommand). Varotoimena käytin pienempää arvoa kuin laskettu. Itse asiassa on helpompi lämmittää enemmän kuin jäähdyttää. Joten lopulta

Kfinaali = K*tempCommand*0.9/X

Kun käynnistät ohjaimen, sen pitäisi luonnollisesti pyrkiä haluamaasi lämpötilaan, mutta se on todella hidas prosessi, koska kompensoit vain lämmityshäviöt. Jos haluat siirtyä lämpötilasta toiseen, järjestelmään on lisättävä tietty määrä lämpöenergiaa. P määrittää, millä nopeudella käytät energiaa järjestelmään. Aseta P pieneen arvoon (esimerkki P = 10). Kokeile (melkein) kylmäkäynnistystä. Jos sinulla ei ole suurta ylitystä, kokeile kaksinkertaista (P = 20), jos nyt sinulla on yksi yrittää jotain siltä väliltä. Jos ylitys on 5%, se on hyvä.

Lisää nyt D, kunnes sinulla ei ole ylitystä. (aina kokeita, tiedän, että tämä ei ole tiedettä) (otin D = 100)

Lisää sitten I = P^2/(4*D) (Se perustuu Ziegler-Nicholts-menetelmään, sen pitäisi taata vakaus) (minulle I = 1)

Miksi kaikki nämä koettelemukset, miksi ei tiede?

Tiedän tiedän! On valtava teoria ja voit laskea siirtofunktion ja Z -muunnoksen ja blablablan. Halusin luoda yhtenäisen hyppyn ja tallentaa sitten reaktion 10 minuutin ajan ja kirjoittaa siirtofunktion ja mitä sitten? En halua tehdä aritmetiikkaa 200 termillä. Joten jos jollain on idea, otan mielelläni oppia tekemään sen oikein.

Ajattelin myös parhaille ystävilleni Zieglerille ja Nicholsille. He kertoivat minulle, että löydän P: n, joka tuottaa värähtelyjä, ja käytä sitten menetelmää. En ole koskaan löytänyt näitä värähtelyjä. Ainoa asia, jonka löysin, oli oooooooovershoot taivaalle.

Ja miten mallinnetaan se tosiasia, että lämmitys ei ole sama prosessi kuin jäähdytys?

Jatkan tutkimustani, mutta pakataan nyt ohjain, jos olet tyytyväinen saamaasi suorituskykyyn.

Vaihe 7: Pakkaa se

Pakkaa se
Pakkaa se
Pakkaa se
Pakkaa se
Pakkaa se
Pakkaa se
Pakkaa se
Pakkaa se

Minulla oli pääsy Moskovan fablabiin (fablab77.ru) ja niiden laserleikkuriin, ja olen kiitollinen. Tämä tilaisuus antoi minulle mahdollisuuden tehdä mukava paketti yhdellä napsautuksella, jonka on tuottanut laajennus, joka valmistaa halutun kokoisia laatikoita (h = 69 l = 66 d = 42 mm). Yläosassa on kaksi reikää (halkaisija = 5 mm) lediä ja kytkintä varten ja yksi rako sivussa ohjelmointitappeja varten. Kiinnitin muuntajan kahdella puukappaleella ja piirilevyn kahdella ruuvilla. Juotin riviliittimen johtoihin ja piirilevyyn, lisäsin kytkimen muuntajan ja PCB -virtatulon välillä, liitin johtimen PBO: hon vastuksella (300 ohmia) sarjassa. Käytin myös kynsilakkaa sähköeristyksessä. Viimeisen testin jälkeen liimasin laatikon. Se siitä.

Suositeltava: