Hoe kunnen we helpen?
PID
PID is proportionele– integrale– afgeleideregeling. Het wordt vaak gebruikt in procesregeling, verwarmingsregeling en bewegingsregeling. De PID-functie berekent de “foutwaarde” tussen een gemeten procesvariabele en het gewenste instelpunt. Het past een uitgang aan in een poging om de fout te minimaliseren. Deze aanpassing vindt regelmatig plaats. Bij elke aanpassing wordt rekening gehouden met de grootte van de fout (Proportioneel), het geaccumuleerde totaal van de fout in de loop van de tijd (Integraal) en de mate van verandering van de fout (Derivatief).
In vBuilder is PID-regeling een achtergrondtaak. Dat betekent dat je het start en dat het op de achtergrond blijft draaien, constant de fout berekent, integreert en de mate van verandering bepaalt en de uitvoer bijwerkt op basis van deze factoren in combinatie met de constanten die je hebt ingesteld. Je moet de PID-tool daarom niet voor elke PLC-cyclus oproepen. Roep het alleen op om parameters te wijzigen.
Als PID nieuw is, staat er een goede beschrijving van PID op Wikipedia.
De basis PID vergelijking die gebruikt wordt in de PID functie van vBuilder is : O = P*E I * ∫ E dt D * ΔE/dt waarbij:
- O: Uitgang
- P: Proportionele constante (soms Gain genoemd)
- I: Integrale constante (soms Reset genoemd)
- D: Afgeleide constante (soms Rate genoemd)
- E: Fout
- dt: verandering in tijd

Starten/doorgaan
De PID hoeft maar één keer gestart te worden. Het blijft werken totdat het wordt gepauzeerd. Start/Continue gebruikt de volgende parameters:
- Output: Dit is wat de PID daadwerkelijk aanpast. De output moet een directe invloed hebben op de waarde van de procesvariabele. Bijvoorbeeld, een vlinderklep die de gastoevoer naar de branders van een boiler regelt, heeft een direct effect op de temperatuur van de boiler.
- Output Max: De maximaal toegestane waarde voor de output. Ongeacht het resultaat van de PID-berekening wordt de uitgang beperkt tot niet meer dan deze waarde. [Elk type variabele behalve Bit en ui8]
- Uitgang Min: De minimaal toegestane waarde voor de uitgang. Ongeacht het resultaat van de PID-berekening mag de uitgang niet kleiner zijn dan deze waarde. [elk type variabele behalve Bit en ui8]
- Procesvariabele: Dit is de meting van de parameter die je probeert te regelen.
- Instelpunt: Dit is de gewenste waarde van de Procesvariabele op dit moment
- Ingang Max: De maximale waarde van de meting van de procesvariabele die wordt gebruikt voor de PID-berekening. Als de werkelijke meting boven deze waarde komt, wordt deze waarde gebruikt.
- Ingang Min: De minimale waarde van de Procesvariabele meting die gebruikt zal worden voor de PID berekening. Als de werkelijke meting onder deze waarde komt, wordt deze waarde gebruikt.
- Proportioneel: De constante vermenigvuldiger van de fout.
- Integraal: De constante vermenigvuldiger van de integraal van de fout.
- Afgeleide: De constante vermenigvuldiger met de afgeleide van de fout.
- Sample rate: De hoeveelheid tijd tussen elke PID-berekening/aanpassing, in milliseconden.
- Bevries bias: Dit is een selecteerbare optie. Als deze optie is geselecteerd, wordt de invloed van het integrale gedeelte van de vergelijking beperkt tot niet meer dan het volledige uitgangsbereik. Dit is handig om overreactie te voorkomen na een periode waarin een of andere factor de werkelijke regeling van de procesvariabele verhinderde [wat mogelijk zou kunnen resulteren in een enorme integrale waarde].
Als je een PID start, blijft deze achter de schermen werken met de gedefinieerde samplefrequentie. Met andere woorden, als je hem eenmaal start, hoef je niet door te gaan met het uitvoeren van PID Start/Continue blokken voor de werking. Het kan geen kwaad als je dat wel doet. Het is gewoon niet nodig.
Pauze
Een PID Pauzeblok stopt de werking van de PID. Selecteer de uitgangsvariabele van de PID die je wilt pauzeren, zoals hiernaast.
Reset
Een PID Reset zet de integrale waarde op de waarde die nodig is om een uitgang te krijgen die gelijk is aan de Resetwaarde. Dit moet je doen als je een PID start. De Start/Continue initialiseert de Integrale waarde niet, omdat hij niet weet of dit de eigenlijke Start is of dat het een Continue is. Als je een PID-reset in een stroomdiagram plaatst, selecteer dan de uitgangsvariabele van de PID die je wilt resetten, zoals hier getoond. Selecteer de waarde van de PID-uitgang waarmee je de PID wilt starten.
PID met digitale uitgang?
Het is niet handig om een PID op een digitale uitgang aan te sluiten, omdat de PID een continu (in plaats van een discreet) signaal produceert. Je hebt een manier nodig om die continue uitgang relevant te maken voor de hardwarecomponenten. Dit wordt meestal gedaan met PWM – pulsbreedtemodulatie – waarbij de uitgang wordt ingeschakeld voor een variërende tijdsduur afhankelijk van de PID uitgang. Sommige hardwarecomponenten houden er echter niet van om snel aan en uit gezet te worden, dus het kan nodig zijn om de snelheid waarmee de klep schakelt te beperken (door de regelkring op een lage frequentie te laten lopen). https://www. support.aceautomation.eu/knowledge-base/subroutines-to-download-for-vbuilder/ Zie “PID naar PWM conversie” Met de digitale uitgang verlies je een deel van het voordeel van de PID. Je moet de uitgang voor aan/uit vergelijken met het setpoint. In wezen is er vaak een lange aan/uit-cyclustijd nodig om de hardwarecomponenten te beschermen.
Een korte geschiedenis om het principe van regeling te begrijpen
| Stel je voor dat je met je auto op de snelweg rijdt en je wilt je snelheid stabiliseren op 130 km/u. In de praktijk kun je dit zonder al te veel problemen doen. In dit voorbeeld is het belangrijk om te begrijpen hoe je geest intuïtief je snelheid reguleert. | ![]() |
Proportionele actie
Allereerst is het meest intuïtieve wat je doet wanneer je met een bepaalde snelheid op de snelweg wilt rijden, tegen jezelf zeggen: “hoe langzamer ik rijd in vergelijking met de snelheid die ik wil rijden, hoe meer ik het gaspedaal indruk”. De druk op het gaspedaal is dus evenredig met de fout die je maakt. Dat wil zeggen, evenredig met het verschil tussen de gewenste snelheid en de werkelijke snelheid. Met deze methode, als je 50 km/u rijdt, druk je het gaspedaal helemaal in. Je snelheid neemt snel toe en nadert de snelheidslimiet. Zodra de snelheid 130 km/u bereikt, wordt de fout nul en laat je het gaspedaal los. Door het traagheidseffect van de auto heb je dan de ingestelde snelheid overschreden. Wanneer je het gaspedaal loslaat, begint de auto af te remmen tot hij weer onder de ingestelde snelheid komt. Dus begin je het gaspedaal weer in te drukken, en dan steeds meer om te proberen 130 km/u te halen. Uiteindelijk lukt het je om je snelheid te stabiliseren op een lagere snelheid dan de snelheid die je hebt gekozen, bijvoorbeeld 120 km/u.
|
Met proportionele actie kan de reactiesnelheid van het proces worden beïnvloed. Hoe hoger de versterking, hoe sneller de respons, hoe lager de statische fout (bij puur proportioneel), maar hoe meer de stabiliteit verslechtert. Er moet dus een goed compromis gevonden worden tussen snelheid en stabiliteit.
|
![]() |
Integrale werking
Op dat moment denk je: “Verdomme! Ik krijg niet de snelheid die ik wil. Ik moet nog een regel toevoegen aan mijn redenering! ” . Dus besluit je dat als je snelheid lange tijd onder het doel blijft, je steeds meer gaat versnellen. Dus besluit je dat je niet alleen moet versnellen in verhouding tot de gemaakte fout, maar dat je deze fout ook moet onthouden in de tijd. Hoe groter de totale fout, hoe sneller je versnelt. Dus wanneer je je snelheid stabiliseert op 120 km/u, neemt de totale fout toe en begin je steeds harder op het gaspedaal te drukken totdat je 130 km/u bereikt en overschrijdt! Inderdaad, bij 130 km/h is de totale fout positief, dus blijf je het gaspedaal intrappen. Zodra je 130 km/h bereikt, is de fout negatief en neemt de totale fout dus af. Je haalt dus je voet van het gaspedaal. Je haalt je voet dus steeds sterker van het gaspedaal totdat je weer bij 130 km/u bent. Bij 130 km/u is de fout weer negatief en blijf je vertragen. Dus je versnelt opnieuw en opnieuw totdat je uiteindelijk na meerdere schommelingen stabiliseert op 130 km/u.
|
De integrale actie heft de statische fout (het verschil tussen de meting en het setpoint) op. Hoe hoger de integraal (TI klein), hoe sneller de respons en hoe slechter de stabiliteit. Ook hier moet een goed compromis tussen snelheid en stabiliteit worden gevonden.
|
![]() |
Derivatieve actie
|
De afgeleide actie is anticiperend. Het voegt een term toe die rekening houdt met de mate van verandering van de afwijking. Dit maakt het mogelijk om te anticiperen door de reactie van het proces te versnellen wanneer de afwijking toeneemt. Integendeel, het vertraagt het proces als de afwijking afneemt. Hoe hoger de afgeleide actie (Td), hoe sneller de respons. Ook hier moet een goed compromis worden gevonden tussen snelheid en stabiliteit.
|
![]() |
Hoe stem je een PID af? (Proportioneel, Integraal, Derivatief)
Handmatige methode voor het instellen van PID-parameters
- Stel de waarden voor Integral (I) en Derivative (D) in op nul.
- Verhoog dan de proportionele versterking (P) tot de uitgang oscilleert.
- Verhoog dan de Integrale versterking tot de oscillatie stopt.
Andere manier n°1
- Zet de integrale (I) en afgeleide (D) waarden op nul.
- Verhoog de proportionele waarde tot 100,0
- Verhoog de integraalwaarde tot 100
- Verlaag de integraalwaarde langzaam en observeer de reactie van het systeem
- Aangezien het systeem rond het instelpunt wordt gehouden, wijzigt u het instelpunt en controleert u of het systeem binnen een aanvaardbare tijd corrigeert. Als dit niet aanvaardbaar is of als u een snelle reactie wilt, gaat u door met het verlagen van de integraalwaarde.
- Als het systeem weer begint te oscilleren, registreer dan de integrale waarde en verhoog de waarde naar 100. Net als ik ben je een beetje hebberig geworden om de snelste respons te krijgen.
Een andere manier n°2
Een eenvoudigere methode om handmatig de P, I en D waarden te bepalen is door de Integrale en Derivatieve termen uit te schakelen en de Proportionele band op het minimum in te stellen. De resulterende oscillatiebreedte Xosc en oscillatieperiode tosc kunnen worden gebruikt om de hieronder getoonde PID-parameters te bepalen. P = 2.0 * Xosc I = 1.5 * tosc D = I / 5 Deze waarden resulteren in een licht overgedempte respons en daarom kunnen alle waarden iets verlaagd worden om een beter reagerende lus te krijgen.



