Vad är bra strategier för att ställa in PID-slingor?

Jag ska försöka utveckla lite från min erfarenhet för dem som kan vara intresserade. Jag tror att problemet är att vi har en hel del reglerteori som är något otillgänglig (och ibland inte användbar) och sedan har vi tumregler som gör antaganden om system som ofta är felaktiga.

Stabilitet

Låt oss först prata om varför reglerslingor blir instabila. I den här diskussionen utgår jag från ett linjärt system. Informellt innebär detta att om din styrsignal är en sinusvåg med en given frekvens så är din observerade utgång vid samma frekvens och om du ändrar amplituden i ditt styrsystem så reagerar din utgång i samma förhållande. Detta antagande är en bra approximation för många verkliga system och gör att vi kan titta på olika frekvenser isolerat.

Om du tittar på kontrollvägen har du ett börvärde, din PID-regulator, ditt system (även kallat ”anläggning”) och sedan din sensor. Föreställ dig ett fast börvärde och en sinusvåg från sensorn (detta är lika med en verklig störning vid sensorn som återkopplas). I ett instabilt system får din återkoppling styrslingan att förstärka felet i stället för att minska det, vilket innebär att amplituden ökar när tiden ökar. Orsaken till att detta sker är en fördröjning, eller för den här frekvensen en fasförskjutning mellan inmatning och utmatning. För en given frekvens kan vi titta på den öppna slingan (dvs. ingen återkoppling) och utgångens amplitud och när vi ritar upp alla dessa på en graf får vi något som liknar en Bode-plot. Om vi har en situation i denna öppna kretsgraf där felet hela tiden förstärks har vi ett instabilt system. Om fördröjningen är mindre än 1/2 våglängd eller om förstärkningen är mindre än x1 är systemet stabilt. I praktiken vill vi ha en viss marginal från den punkten (förstärkningsmarginal och fasmarginal), vilket är anledningen till att du ser denna ”backing off” i många av de manuella/heuristiska metoderna.

Det största problemet med dessa manuella metoder är att du flyger i blindo och att du är så gott som garanterad att få ett dåligt styrsystem.

Håll också i minnet att innebörden av P, I och D är relaterad till vad din givare mäter och vilken styrning du tillämpar. Ett vanligt misstag i hemmabyggda styrenheter är att folk tror att de tillämpar P när de i själva verket inte gör det. Motorregulatorer har ofta en positionsslinga som löper över en hastighetsslinga som löper över en vridmomentsslinga. (En kaskad)

OK men hur hjälper detta oss?

Den första punkten jag vill ta upp är att om du bygger din egen PID-regulator bör du också bygga ett sätt att mäta svaret i den öppna slingan. Gör ett frekvenssvep vid ingången till din regulator och mät sensorns utgång med återkopplingen bortkopplad. Då kan du rita Bode-plotet för den öppna slingan och se varför ditt system är stabilt och kunna byta ut de olika kontrollerna. Det är också användbart att mäta responsen i den slutna slingan och det kan du göra med vilket system som helst genom att göra ett frekvenssvep av ditt börvärde medan slingan är sluten. Båda dessa är inte så svåra och kräver inte mycket teoretisk kunskap.

Om du bara justerar kontrollerna utan någon förståelse för vad som händer under huven kommer du inte att kunna optimera ditt system. Att bygga upp en viss intuition om dessa system är inte så svårt. T.ex. har den proportionella förstärkningen ingen effekt på fasen utan ökar helt enkelt förstärkningen i den öppna slingan över alla frekvenser. Så vad du gör när du ökar den proportionella förstärkningen i alla dessa manuella inställningsmetoder är att hitta den frekvens där fasen går till -180. Se det här för att få en bättre uppfattning om de olika reglernas inverkan på frekvensresponsen.

För att få bästa prestanda i sluten slinga måste man ofta justera systemet och inte bara reglarnas förstärkningar. Vad du vill är att göra systemet så ”styvt” som möjligt. Då kan du öka styrparametrarna och få den bästa bandbredden i öppen och sluten slinga. Enligt min erfarenhet av motorstyrningstillämpningar är det proportionalförstärkningen som bör göra det mesta av ”arbetet” och integratorn som gör ”resten”. Jag tror inte att du behöver någon D-term alls. Att ha ett lågpassfilter och ett notch-filter är till stor hjälp i situationer där du kan ha mekanisk resonans, men det är mycket svårt att ställa in dem utan en Bode-plot (svängningsfrekvensen som du observerar i sluten slinga kan skilja sig från den i öppen slinga).

Om säkerheten är ett bekymmer (mycket kraftfulla motorer eller ett system som skulle kunna förstöras av att motorn tappar kontrollen) måste du sätta in vissa gränser innan du börjar trimma (t.ex. strömbegränsning, maximalt lägesfel) för att skydda systemet. Sedan måste du få någon slags känsla för parametrarnas räckvidd. Om din återkoppling har 40 räkningar per rotation eller 4000 räkningar per rotation kommer dina parametrar att vara en faktor 100 för ett visst system. Mitt tillvägagångssätt skulle vara att först hitta ett område där du har en viss dålig kontrollerbarhet och sedan öka därifrån genom att börja med P och sedan I (även om du återigen flyger i blindo). Att backa tillbaka skapar denna stabilitetsmarginal.

Bortom den slutna slingan

Den slutna slingan försöker ta bort felet från systemet. Det kommer alltid att ha en något begränsad prestanda. Vad du vill göra är att minimera det fel som din slutna loop-regulator ser och ett sätt att göra det är genom en teknik som kallas feed forward. Med feed-forward går du runt styrenheten och kör ett kommando direkt till systemet. Ett exempel på detta är accelerationsfeed-forward. Om du känner till motorns vridmomentkonstant och belastningen kan du i stort sett avgöra hur mycket ström du behöver köra för att få en viss acceleration av belastningen. Du tar helt enkelt accelerationen från kommandoinmatningen, multiplicerar den med en konstant och adderar den till styrenhetens drivningskommando. Du gör i princip vad som skulle krävas för att driva systemet om det inte fanns någon styrenhet och ju närmare du kan komma desto mindre fel måste din slinga ta bort och desto bättre kommer ditt system att fungera. Det gör en enorm skillnad i praktiken.

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *