PID

PID-FORMULE

Dit artikel legt uit hoe je PID-regeling met een PLC uitvoert en beschrijft het PID-algoritme. PID wordt gebruikt in 80% van de automatiseringsprojecten. PID is een formule die met specifieke tijdsintervallen wordt uitgevoerd, waarna het berekende resultaat naar de uitgang wordt gestuurd. Voor meer informatie over de formule kun je Wikipedia raadplegen .

Bij een PID-regelaar (Proportioneel Regelen) wordt de uitvoerwaarde verkregen door de proceswaarden van de door de gebruiker gedefinieerde parameters P (proportioneel), I (integraal) en D (afgeleid) te verwerken. De volgende tabel toont de stappen die betrokken zijn bij de toepassing van een PID-regelaar.

Laten we proberen deze tabel te begrijpen. De PID-formule werd elke seconde uitgevoerd en berekende de uitvoerwaarde in de kolom 'Uitvoer'.

  • fout: Het is het verschil tussen de ingestelde waarde en de werkelijke waarde. Als de werkelijke waarde groter is dan de ingestelde waarde, levert dat een negatief resultaat op. Tussen 9 en 12 seconden leverde het een negatief resultaat op.
  • Laatste fout: Dit is de foutwaarde van één seconde geleden. Zoals je in de tabel kunt zien, is deze gelijk aan de foutwaarde in de rij erboven.
  • Kp: Deze waarde wordt verkregen door P te vermenigvuldigen met de fout. Een positieve fout verhoogt de output, terwijl een negatieve fout de output verlaagt. De output werd met 9-12 seconden verminderd.
  • ki: De Ki-waarde is de som van de fouten die tijdens de werking van de PID-regelaar worden gegenereerd, vermenigvuldigd met I. Deze waarde neemt toe door de accumulatie van de fout tussen 0 en 5 seconden. Tussen 6 en 8 seconden is de fout nul, waardoor de waarde op zijn eindwaarde blijft. Bij PID-regeling wordt de gewenste waarde gehandhaafd zodra deze is bereikt. De werkelijke waarde blijft dus op het gewenste niveau. Tussen 9 en 12 seconden is de fout negatief geworden, maar Ki is nog steeds positief. De waarde neemt af afhankelijk van de tijd en de omvang van de fout. Als de fout negatief blijft, wordt Ki ook negatief en blijft deze accumuleren.
  • Kd: Kd wordt slechts in 1/4 van de PID-toepassingen gebruikt. Het is niet geschikt voor systemen met een lage intensiteit of veel ruis. De waarde van Kd wordt berekend door de eerder berekende fout te vermenigvuldigen met de afgeleide daarvan en vervolgens de laatst berekende fout te berekenen.
  • Output: Het is de som van de berekende Kp-, Ki- en Kd-waarden. Meestal wordt een schaal van 0-100 gebruikt.

PLC-PROGRAMMA

Laten we nu het hierboven beschreven PID-algoritme in een PLC uitvoeren . De PLC-code voor PID is te zien in de afbeelding hieronder. U kunt deze PLC-code hier downloaden.

Dit voorbeeld maakt gebruik van een PLC met relaisuitgang . Q0.1 stuurt de verwarming aan. ID1 leest de temperatuur van de PT100. De gewenste ingestelde waarde moet constant worden gehouden op basis van de temperatuurmeting van de PT100.

In de Fulmatic 7 PLC wordt de PT100-waarde gelezen als een 32-bits geheel getal. In dit deel van de PLC -code converteren we eerst de PT100-waarde, die we met ID 1 hebben uitgelezen, naar een reëel getal. Vervolgens delen we deze door 100. Nu kunnen we de temperatuurwaarde van onze testopstelling als een decimaal getal op het MD4-adres zien.

We definiëren de parameters die in het PID-regelblok worden gebruikt. Deze parameters zijn in alle PLC-programma's hetzelfde . Meer informatie vindt u op de help-pagina's van Fulmatic SOFT . Ik wil hier enkele van deze parameters toelichten. Veel mensen denken dat ze een proces prima kunnen regelen met slechts één PID-blok. Dit is niet waar; ik zal dit aan het einde van dit artikel uitgebreider toelichten.

  • PID: De parameters P (proportioneel), I (integraal) en D (differentieel) kunnen worden ingevoerd als constante waarden of variabele adressen. Door variabele adressen in te voeren in plaats van constanten, kunnen we het proces aanpassen aan veranderende omstandigheden. Stel bijvoorbeeld dat we een ketel verwarmen. We hebben andere PID-waarden nodig wanneer er 100 kg product in de ketel zit dan wanneer er 1000 kg product in zit.
  • PERIODE: Aan het begin van deze pagina zagen we dat de PID-formule elke keer dat deze wordt uitgevoerd, andere waarden berekent. De frequentie waarmee de PID-formule wordt uitgevoerd en of deze steeds dezelfde tijdsduur heeft, beïnvloeden het resultaat. We kunnen deze tijd constant houden met de parameter 'periode'. Het invoeren van 100 voor snelle processen en 1000 voor langzame processen is bijvoorbeeld geschikt.
  • TEMP 1: Dit is de Ki-waarde die wordt uitgelegd in het gedeelte over de PID-formule aan het begin van de pagina. Het is een van de meest kritische waarden in het PID-blok. Mogelijk willen we wijzigingen aanbrengen in de PLC-code. Ik zal dit aan het einde van het artikel uitgebreider toelichten.

Het PID-blok levert de berekende uitgangswaarde als instelwaarde aan het PWM-commando via MD24. MD24 wordt in het PID-blok geselecteerd met de parameters Q.MIN en Q.MAX, die variëren van 0.0 tot 100.0. De periode van het PWM-blok is 2000 milliseconden. MD24 specificeert het percentage van de tijd dat de uitgang actief is. Wanneer ingesteld op 1, is de actieve tijd 20 milliseconden en de passieve tijd 1980 milliseconden. De aan/uit-tijd van het relais is ongeveer 20 milliseconden, waardoor het moeilijk is om te reageren op 1%. Daarom heb ik de werking van het relais beperkt tot onder de 2% en boven de 98%. Dit verlengt de levensduur van het relais. U dient hetzelfde te doen wanneer u een contactor met een PLC met transistoruitgang in uw toepassing gebruikt. Als u een solid-state relais gebruikt, zijn deze beperkingen niet nodig.

PID-PARAMETERS AANPASSEN

Nu komen we bij het belangrijkste punt. Veel PLC's hebben een automatische afstemmingsfunctie. De waarden die door deze functie worden bepaald, zijn echter niet voldoende. De foutmarge is erg groot. Bovendien werken de meest nauwkeurige PID-waarden vaak niet precies zoals we ze vinden, vanwege andere factoren die het proces beïnvloeden. We kunnen PID-gestuurde procesbesturingsapparaten gemakkelijk in verschillende processen gebruiken. En meestal bereiken we ideale waarden. Dit komt omdat ze niet uitsluitend volgens de PID-formule werken; er worden aanvullende regelingen toegevoegd. Vooral in langzame processen is een nauwkeurige PID-regeling alleen niet mogelijk. Laten we dit toelichten met een voorbeeld van een langzaam draaiende PID-regelaar. In dit voorbeeld gebruiken we de D-afgeleide niet. Deze wordt in 3/4 van de PID-toepassingen niet gebruikt.

Eerst moeten we de optimale P-waarde vinden. We stellen I in op 0.0 en D op 0.0 en voeren verschillende proeven uit om de juiste P-waarde te vinden. In de bovenstaande grafieken is P ingesteld op respectievelijk 0.3, 0.6 en 1.0. Op het eerste gezicht lijkt grafiek 2 met P = 0.6 het beste resultaat te geven. Houd de Excel-tabel bovenaan de pagina in gedachten. I zal de fout accumuleren en de uitvoer verhogen totdat de ingestelde waarde is bereikt. Wanneer P = 0.6 en I geactiveerd zijn, zal de uitvoer de ingestelde waarde overschrijden. Als het overschrijden van de ingestelde waarde geen probleem is, is P = 0.6 geschikt. Als u wilt dat de ingestelde waarde helemaal niet wordt overschreden, is grafiek 1 geschikter. De resterende afstand tot de ingestelde waarde kan worden overbrugd met het integrale effect. Idealiter wordt P = 0.3 gebruikt totdat de ingestelde waarde is bereikt, en vervolgens P = 0.6. Op deze manier zal de ingestelde waarde in de beginfase niet worden overschreden en zullen de schommelingen daarna veel minder zijn. Omdat een hoge P-waarde weinig oscillatie toelaat.

We kunnen de integrale waarde van I vinden door een paar proeven. Het gebruik van 1% van P voor I is een goed uitgangspunt. Als de waarde van I groot is, is het effect ervan op de PID-formule sneller en zorgt het ervoor dat de oscillatiefrequentie toeneemt. Als de waarde van I klein is, is de oscillatiefrequentie klein maar de amplitude groot. Zelfs als we de ideale waarde vinden, werkt het mogelijk nog steeds niet zoals gewenst vanwege andere factoren die het proces beïnvloeden. Nu komen we bij het kritieke punt dat ik hierboven noemde.

Aan het begin van de pagina berekenden we de Kp-waarde door de P-waarde te vermenigvuldigen met de fout, en de Ki-waarde door de totale fout te vermenigvuldigen met I. Wanneer de Kp-fout positief is, verhoogt deze de uitvoerwaarde; wanneer deze negatief is, verlaagt deze de uitvoerwaarde. Ki heeft een vergelijkbaar effect. Ki kan echter continu accumuleren en zeer grote waarden bereiken. Zelfs wanneer de ingestelde waarde en de werkelijke waarde gelijk zijn, kan de Ki-waarde nog steeds erg groot worden. Dit kan ertoe leiden dat de werkelijke waarde ver boven de ingestelde waarde uitkomt. Als de ingestelde waarde aanzienlijk wordt overschreden, zal deze ook aanzienlijk dalen. Om deze oscillatie te beheersen, hebben we een extra regelmechanisme nodig.

We moeten een methode toepassen die ' wind -up' heet . Bij wind-up moeten we de Ki-waarde resetten wanneer deze de ingestelde waarde nadert. Hierdoor worden de geaccumuleerde Ki-waarden gereset, waardoor er ruimte ontstaat voor nauwkeurigere waardeberekeningen voor besturingsdoeleinden.

Met de code die we hebben toegevoegd, berekenen we eerst 60% van de ingestelde waarde. Wanneer de werkelijke waarde groter is dan de gevonden waarde, reset MD32 de Ki-waarde eenmaal. 60% is geen vaste waarde; u moet deze bepalen op basis van uw toepassing. Bovendien is het niet correct om constant onder de 60% te resetten. Als we dit doen, werken we alleen met de proportionele P-waarde. Dit kan ertoe leiden dat we nooit 60% bereiken. Eenmaal resetten is de meest nauwkeurige methode.

Alleen het opwinden van de regelaar kan veel problemen oplossen, maar het is niet altijd voldoende. Afhankelijk van de toepassing moet u verschillende methoden gebruiken. U kunt bijvoorbeeld verschillende PID-waarden gebruiken totdat de werkelijke waarde 80% van de ingestelde waarde bereikt, en daarna weer andere PID-waarden gebruiken. Nadat de ingestelde waarde is bereikt, kunt u met name de P-waarde verhogen; een hoge P-waarde vermindert de afgifte aanzienlijk. Of, wanneer u extra product toevoegt aan een stabiele tank, kunt u handmatig de Temp 1 Ki-waarde verhogen. Zodra de temperatuur een bepaald niveau bereikt, kunt u de Ki-waarde handmatig verlagen.

In de bovenstaande grafiek werd de verwarming gestart met P = 0.3 en I = 0.0035. Temp 1 werd gereset naar nul op het opstartpunt, toen de werkelijke waarde 60% van de ingestelde waarde bereikte. P werd ingesteld op 2.0 toen de werkelijke waarde de ingestelde waarde bereikte. Na de eerste paar oscillaties werd verwarming bereikt met een foutmarge van ±0.5 graden.

PID is een onmisbare regelmethode in uw automatiseringsapplicaties. Hoewel het op zichzelf misschien niet voldoende is, werkt het goed met enkele kleine aanvullingen.

Gerelateerde berichten

  • Wat is een PLC?

    PLC is een afkorting voor "Programmable Logic Controller". In het Turks kan dit vertaald worden als "Programmeerbare Logische Controller". Het is essentieel voor industriële automatiseringssystemen. Er is vrijwel geen automatiseringsproject dat geen PLC gebruikt.

  • Functiebloktimergebruik

    In Fulmatic 7 PLC's kunnen statische commando's zoals Timer en Counter niet binnen functieblokken worden gebruikt. U moet uw eigen timers of tellers voor functieblokken maken. U kunt de voorbeeldcode hier downloaden. Het Speed ​​PLC-programma heeft 256 timers van 1 milliseconde. Dit aantal is onvoldoende voor grote projecten. U kunt het aantal timers verhogen door softwaretimers te maken. Functieblokken voeren dezelfde taak uit voor veel verschillende adressen…

  • SOFT PLC

    Raspberry Pi PLC. Orange Pi PLC. Windows PLC. Computer PLC. Windows PLC. Soft PLC werkt met hoge prestaties op alle moderne besturingssystemen. Hiermee kunt u hardware zoals computers, Raspberry Pi's of Orange Pi's binnen enkele seconden omzetten in een volledig functionele PLC. Bovendien kunt u de GPIO's van het apparaat efficiënt gebruiken als digitale in-/uitgang, PWM, seriële poort en SPI. U kunt ook een USB-seriepoort op uw systeem aansluiten...

Schrijf een reactie