PID regeling

Hallo,

Ik ben met een PID regeling bezig om met een toerengeregelde ventilator een een temperatuur te bereiken.
Bijvoorbeeld Setpoint is 50 graden en huidige temperatuur is 20 graden.
Nu wil ik middels een toerengeregelde ventilator (warme lucht) gaan toevoegen om dat setpoint te halen en te behouden.

Dit werkt nu redelijk alleen heb ik een kleine overshoot van 2 graden. Dit wil ik strakker krijgen maar hoe en met welke setting kan ik dit gaan regelen?

De PID settings zijn nu: P= 30, i=0,1, d=5.

De ventilator gaat nu aftoeren bij een offset van +/- 6 graden.

Groeten DeDraak.

Ik denk dat je de 'D' moet verlagen. Misschien de ('I' moet zijn) 'P' ook.
Het gehele stelsel is een regelkring met de Setpoint als input. Het voorwerp wat je met de ventilator verwarmt maakt ook deel uit van de regelkring en heeft dus ook een 2e orde overdrachtskarakteristiek. Als je die weet te vinden kan je de PID-parameters optimaal invullen.

de i staat al op 0,1.. of kan die ook negatief?

Schrijffoutje van mij. Moet zijn 'P', het proportionele deel. Aan de 'I', integrerende deel hoef je niks te doen. Die is alleen van belang als in de in de eindtoestand het verschil tussen de Istwert (werkelijke waarde) en Sollwert (gewenste waarde) te groot is.

Kan misschien wel negatief maar dat is niet de bedoeling. Dan wordt het systeem instabiel volgens mij.

De waarde is afhankelijk van de traagheid van het systeem. Kan best wel veel kleiner worden. zoals 0.01 of 0.001.

Dus om de ventilator eerder af te laten toeren adviseren jullie de P en de D kleiner te maken?

Ja, maar dat moet je wel uittesten voor optimaal resultaat.
Het mooist is natuurlijk als je de overdrachtskarakteristieken van het te verwarmen voorwerp(en) kent en daarop je PID-parameters afstemt.

Ik heb ooit wel eens een stappenplan gezien om een PID regelaar af te regelen. Je moest eerst een factor op 0 zetten, en voor de andere een vuistregel gebruiken. Zoiets. Zoek er maar eens op. Met gewoon maar wat proberen kom je er niet, daarvoor zijn het aantal mogelijkheden veel te groot.

"We cannot solve our problems with the same thinking we used when we created them" - Albert Einstein

Er zijn geen algemene richtlijnen voor PID waarde. Die zijn sterk afhankelijk van het proces dat geregeld moet worden.

Kan best dat er ergens een proces bestaat dat perfekt geregeld kan worden met P= 30, i=0,1, d=5.

Als je bijvoorbeeld 100 Kuub water met 10 Watt wilt opwarmen naar 100 graden dan krijg je een heel erg traag proces en daar moet je de PID op afregelen. (Duurt ongeveer 6000 jaar en kan alleen met perfecte isolatie)

Naast berekenen kun je ook eens de I en D uitzetten daarna ga je met de P spelen.
P steeds verder ophogen tot de zaak begint te oscilleren.
De P van oscillatie met 0,6 vermenigvuldigen. Daarna kan je aan de I gaan werken.

Andere methode is I en D ook uitzetten en kijken of je met de P een situatie krijgt dat de temperatuur constant gehouden wordt. Testen door SP af en toe te wijzigen. Doordat je alleen P hebt wordt de temperatuur wel constant gehouden maar heb je vaak een offset. Die kan je met de I weg werken.

Soms heb je de D actie niet nodig of werkt zelfs de boel tegen.

Op 8 oktober 2019 20:20:41 schreef deKees:
Er zijn geen algemene richtlijnen voor PID waarde. Die zijn sterk afhankelijk van het proces dat geregeld moet worden.

Kan best dat er ergens een proces bestaat dat perfekt geregeld kan worden met P= 30, i=0,1, d=5.

Als je bijvoorbeeld 100 Kuub water met 10 Watt wilt opwarmen naar 100 graden dan krijg je een heel erg traag proces en daar moet je de PID op afregelen. (Duurt ongeveer 6000 jaar en kan alleen met perfecte isolatie)

Nou doe je de meneren Ziegler–Nichols toch wel onrecht https://en.wikipedia.org/wiki/Ziegler%E2%80%93Nichols_method

Ziegler en Nichols hebben daar wat regels voor bedacht om in ieder geval aardig in de buurt te komen.

edit:iets te laat.

Gr.F_S

Hier staat het nog eens mooi uitgelegd

PID-regelaar

De PID-regelaar is een van de meest voorkomende regelaars in de procesregeling (zie ook meet- en regeltechniek). De letters PID staan hier voor Proportioneel, Integrerend en Differentiërend.

De regeling gaat uit van het verschil tussen de instel(wens)waarde en gemeten waarde, dit wordt "foutsignaal" genoemd. Het bijstuursignaal wordt bepaald door drie aparte berekeningen:

P-actie: Proportioneel betekent dat het verschil in wenswaarde en gemeten waarde met de factor Kr wordt versterkt.
I-actie: De integrerende term zorgt voor een constante sommatie van de fout en blijft meer signaal uitsturen afhankelijk van hoelang er een fout bestaat tussen gemeten en gewenste waarde. Ti noemt men hier wel de nasteltijd, dit wil zeggen de tijd (in seconden) die nodig is om een even grote waarde te krijgen als de P-actie. Een kleine Ti geeft een krachtige I-actie.
D-actie: De differentiërende term reageert op de snelheid van de verandering van de fout. Wanneer de gemeten waarde verandert in de richting van de wenswaarde en dus het risico bestaat dat de gemeten waarde doorschiet, wordt de verandering van het bijstuursignaal afgeremd met de D-actie. Wanneer de gemeten waarde van de wenswaarde vandaan verandert, wordt de verandering van het bijstuursignaal versneld met de D-actie. De D-actie heeft alleen effect wanneer het foutsignaal verandert, met andere woorden wanneer de afgeleide van het foutsignaal niet gelijk is aan nul. Hoe hoger Td, hoe sterker de regelaar reageert op veranderingen in de meetwaarde.
De differentiërende term werkt minder intuïtief dan de proportionele en integrerende term en wordt daarom minder gebruikt dan de twee voorgaande. Er zijn ook regelalgoritmen waarbij de D-actie niet aan de hand van het foutsignaal maar aan de hand van wijzigingen in de meetwaarde bepaald wordt. Op deze manier reageert de regeling rustiger bij verstellen van de wenswaarde.

Op 8 oktober 2019 20:20:41 schreef deKees:
Er zijn geen algemene richtlijnen voor PID waarde. Die zijn sterk afhankelijk van het proces dat geregeld moet worden.

"Algemene richtlijnen" betekent toch niet dat je een vast setje waardes invult voor welk proces dan ook en dat het dan ongeveer wel goed is?! Die richtlijnen zijn meer als: zet D op 0 en P en I op xx. Kijk dan bij een stap wat de eigenfrequentie van de lus is, vul die tijd in voor I. Probeer dan voor P wat verschillende waardes en kijk wat het stabielst is. <-- Dit is dus een volledig uit de duim gezogen instructie, maar zoiets is wat ik bedoelde.

"We cannot solve our problems with the same thinking we used when we created them" - Albert Einstein

@Gij Kieken

Dit gelezende te hebben, vertaal dat maar eens naar mijn praktisch voorbeeld...
schiet mij maar lek..

In feite is de mens zelf ook een PID-regelaar, denk maar aan het bewaren van je evenwicht en het juist sturen wanneer je aan het fietsen bent. Ook voor de regeling van je lichaamsprocessen als lichaamstemperatuur, hartslag en ademhaling worden er PID-regelaars gebruikt, die zitten in je hersenstam.

Zorg dat je er bij komt, bij de Marine. Sympathisant van de Koninklijke Marine. Luistert graag naar militaire muziek.

Nou doe je de meneren Ziegler–Nichols toch wel onrecht

Hoezo? Deze meneren hebben een methode ontwikkeld. En daarmee kom je ook niet altijd op hetzelfde resultaat voor de instellingen.

TS vraagt nu of zijn getallen goed zijn, zonder ook maar iets te vertellen over het te regelen proces. Dat gaat natuurlijk nooit werken.

@DeDraak

Ik zou om te beginnen de D op 0 zetten. Die heb je bijna nooit nodig en kan wel de zaak instabiel maken. En om te testen kun je dan een meetcyclus uitvoeren door te beginnen op 20 graden en dan het tempverloop op te nemen.

Op 8 oktober 2019 21:46:05 schreef deKees:
[...]
TS vraagt nu of zijn getallen goed zijn, zonder ook maar iets te vertellen over het te regelen proces. Dat gaat natuurlijk nooit werken.

Nou, volgens mij vertel ik toch duidelijk wat de bedoeling is...
De D zal ik eens gaan proberen, dank je

Tja, maar er zijn ventilators van 100 milliwatt en ook van 100 MegaWatt. Dat maakt best wel verschil.

En warme lucht kan 40 graden warm zijn of 500 graden.

En het te verwarmen object kan een kleine of een grote warmte capaciteit hebben.

Enz..

reading can seriously damage your ignorance
pamwikkeling

Special Member

Het verhaal van Peter 112 heb ik ook al met goed gevolg geprobeerd in het verleden.

1) integratie tijd en differentiatie tijd op nul zetten.
2) proportionele versterking verhogen tot het systeem oscilleert.
3) proportionele versterking verlagen tot 60-70 %
4) rest fout proberen weg te werken door integratie tijd te verhogen.

Er op letten dat er geen "dode tijd" is, met andere woorden als je verwarmt, dat je temperatuursensor ook die verwarming direct merkt.

D factor heb ik nog nooit gebruikt.

Typisch probleem met verwarmingen : je hebt bijna altijd een dode tijd ! Immers, de warmte moet tot bij de sensor geraken, en afhankelijk van de opstelling heb je bepaalde een dode tijd. De P-factor kijkt naar het heden, de I-factor kijkt naar het verleden, en de D-factor kijkt naar de toekomst. Om overshoot te verminderen is een D-factor dikwijls onvermijdelijk. Een D-factor gaat dus dempend werken (kijkt naar de verandering van de meetwaarde in functie van de tijd). Als de temperatuur (na de dode tijd) dus vlot begint te stijgen, gaat de D-factor al beginnen af te remmen, nog voordat de setpoint bereikt is !
Opgelet, als er veel ruis zit op het meetsignaal, kan een D-factor ook voor oscillatie zorgen. Immers, elke verandering van meetwaarde wordt aanzien als een stijging/daling, dus ook ruis.