Üksus 5 / 9

Juhtimisalgoritmid: PID ja AI toetatud häälestamine

Kasu:

  • Oskus selgitada ja rakendada PID-kontrolleri P, I, D termineid ja efekte tehisintellektile õiges kontekstis
  • Võimalus AI abil samm-sammult läbi viia Ziegler-Nicholsi ja eksperimentaalseid häälestusmeetodeid
  • Võimalus tuvastada ja kõrvaldada PID-lõksud, nagu integreeritud mähis, tuletatud müra AI soovitustes

Ahju temperatuuri konstantsena hoidmine, mootori kiiruse juhtimine soovitud väärtusel, drooni nurga tasakaalustamine; Nende kõigi keskmes on juhtimisalgoritm. Kõige tavalisem neist on PID-kontroller, mis on tööstuse selgroog. PID; See on lihtne, vastupidav ja töötab paljude probleemidega. Kuid "lihtne" ei tähenda "lihtne häälestada": valesti seatud PID võngub, ületab, jääb hiljaks või muutub täiesti ebastabiilseks. Tehisintellekt on siin väärtuslik abimees: see selgitab PID termineid, juhendab häälestusmeetodeid, diagnoosib tüüpilisi lõkse ja kirjutab häälestuskoodi. Lõplik korrigeerimine tehakse aga teie süsteemi füüsilist käitumist vaadates ja stabiilsusotsus kuulub insenerile. Selles üksuses käsitleme PID-lõksude installimist, häälestamist ja kontrollimist tehisintellektiga.

Kolm PID tingimust

PID reageerib veasignaalile (e = sihtmärk – mõõdetud) kolmel viisil:

tähtaeg

Mida ta vaatab?

Mõju

äärmisel juhul

P (proportsionaalne)

praegune viga

kiire reageerimine

Võnkumine, püsiv viga

I (integraalne)

Kogunenud minevikuviga

Lähtestab püsiva vea

ülelöök, kerimine, võnkumine

D (tuletis)

Vea muutumise määr

Summutamine vähendab ülevõtmist

Võimendage müra

Sõnaline kokkuvõte: P vastab küsimustele "kui kaugel ma praegu olen", ma "kaua olen eemal olnud", D "kui kiiresti ma lähenen". Hea kontroller tasakaalustab kõik kolm.

klassi PID: def __init__(self, Kp, Ki, Kd, output_min=-100, output_max=100): self.Kp, self.Ki, self.Kd = Kp, Ki, Kd ise.out_min, self.out_max = output_min, output_max self.integral = 0.0 erfrfpre. sihtmärk, mõõdetud, dt): viga = sihtmärk - mõõdetud # P p = ise.Kp * viga # I -- ise.integraal koos kerimiskaitsega += viga * dt i = ise.Ki * ise.integraal # D -- tuletismüra tundlik d = ise.Kd * (viga - ise.eelmine_viga) / dt = ise.eelmine_ viga windup if output > self.output_max: output = self.out_max self.integral -= error * dt # anti-windup: undo integral elif output < self.output_min: output = self.output_min self.integral -= error * dt tagastab väljund

See kood ei ole "koolitus-PID", vaid tootmisloogikale lähedane luustik: see sisaldab väljundi küllastust ja likvideerimisvastast funktsiooni. Paljud tehisintellekti antud lihtsad PID-d lähevad neist kahest kaitsest mööda; Ilma nendeta, kui täiturmehhanism jõuab oma piirini, paisub integraal ja süsteem lööb ootamatult üle.

Näpunäide. Kui küsite AI-lt PID-d, öelge "lisage väljundi küllastus ja anti-windup, rakendage tuletisterminile mõõtmisel tuletis". Need kolm täiendust muudavad õpiku PID väljaks PID.

Integraalne lõpetamine ja tuletismüra

Kaks klassikalist lõksu on PID-i tõrke kõige levinumad põhjused:

Integreeritud mähis: kui täiturmehhanism küllastub (nt mootor on juba täisvõimsusel), tõrge püsib ja integraaltähtaeg kasvab. See täispuhutud integraal põhjustab suure ületamise, kui süsteem jõuab sihtmärgini. Lahendus: integraali peatamine või tagasipööramine, kui väljund on küllastunud (üleminekuvastane, näidatud ülaltoodud koodis).

Tuletismüra: D-termin võtab vea tuletise; Mürarikka mõõtmise tuletis on palju mürarikkam ja vibreerib täiturmehhanismi. Lahendused: tuletise võtmine mõõtmisest (vea asemel mõõtmise tuletis), tuletisliikmele madalpääsfiltri lisamine.

# Tuletismüra vähendamine: mõõtmise tuletis + filterd_raw = -(mõõdetud - ise.eelmine_mõõdetud) / dt vea asemel

AI suudab neid lõkse hästi tuvastada; Kui ütlete "Minu PID ületab sihtmärgini jõudmisel oluliselt", soovitab see lõpetada. Kuid saate kontrollida, mõõtes, kas parandus teie süsteemis töötab.

Seadistamine Ziegler-Nicholsiga

Klassikaline meetod kasumite (Kp, Ki, Kd) nullist leidmiseks on Ziegler-Nichols. Selle olemus: alustades ainult P-st ja suurendades Kp-d, kuni süsteem läheb püsivasse võnkumisse; Arvutage tabelist Kp, Ki, Kd kriitilise võimenduse Ku ja võnkeperioodiga Tu selles punktis.

kontroller

kp

Ti

Td

P.

0,5·Ku

P.I.

0,45·Ku

Tu/1,2

PID

0,6·Ku

Tu/2

Tu/8

Ziegler-Nicholsi sammud (plaani teeb AI):1. Võtke Ki=0, Kd=0. Lihtsalt käivitage P.2. Suurendage AEGLASELT Kp-d, kuni algab stabiilne, püsiv võnkumine.3. See Kp = Ku (kriitiline võimendus), võnkeperiood = Tu.4. Arvuta tabelist Kp, Ti, Td; Ki = Kp/Ti, Kd = Kp*Td.5. Alustage nendest väärtustest, seejärel tehke eksperimentaalseid muudatusi.

Ettevaatust: Ziegler-Nichols viib süsteemi teadlikult stabiilsuspiirini (püsiv võnkumine). Seda tehes reaalse riistvaraga kaasneb mehaanilise pinge, ülevoolu ja ohu oht; Võimalusel tehke seda esmalt simulatsioonis, seejärel töötage riistvaraliselt väikese võimsuspiirangu ja E-stopiga. AI pakutud Ku on lähtepunkt, seda mõõdetakse ja kontrollitakse teie süsteemis.

AI-abiga diagnostika

PID käitumist saate diagnoosida, kirjeldades seda tehisintellektile. Sümptom → võimalik põhjuste kaardistamine:

sümptom

võimalik põhjus

Suuna AI soovitab

aeglane istumine

Kp/Ki madal

suurendada kp

Püsiv viga

Ma puudub või on väga madal

Ki lisada/suurendada

Ülesõit + võnkumine

Kp/Ki kõrge, D puudub

Lisa Kd, vähenda Ki

Täiturmehhanism väriseb

tuletatud müra

Filtreeri/vähenda D

Kui jõuad suure ületamiseni

terviklik lõpetamine

Lisa likvideerimisvastane

Nõrk viip / Tugev viip

NÕRK:"Andke PID võimendus." (Milline süsteem? Kuidas käitub? Kas on mingeid mõõtmisi? Tulevad juhuslikud numbrid.) STRONG:"Reguleerin PID-d alalisvoolumootori kiiruse reguleerimiseks. Praegu on Kp=2, Ki=0,5, Kd=0. See ületab astmesisendil 35% ja kui see saavutab sekundi, kulub kaua aega; Proovivõtu sagedus on 100 Hz. Loetlege nendest sümptomitest tulenevad võimalikud põhjused, mille puhul "Sootage, millises suunas peaksin seda muutma, ja öelge mulle, kuidas kontrollida, kas ületamine on lahutamatu katkestus".

Mini korpus

Juhtinsener Kerem reguleerib ekstruuderi temperatuuri regulaatorit. Tehisintellekti soovitatud kasu korral jõuab süsteem kiiresti eesmärgini, kuid iga seatud muudatuse korral teeb see suure ülelöögi ja rahuneb aeglaselt. Kerem selgitab sümptomit tehisintellektile; Tehisintellekt kahtlustab sisseehitamist, kuna kütteseade jääb mõneks ajaks täisvõimsusele (küllastunud). Kerem lisab PID koodile anti-windup ja ületamine väheneb oluliselt. Kuid nüüd on kerise väljalaskeava juures kerge värelus; Ta omistab selle D-terminile, mis võimendab temperatuurianduri müra ja lisab tuletisele madalpääsfiltri. Lõpuks kinnitab see umbkaudselt Ziegler-Nicholsiga saadud kasu ja teostab eksperimentaalset peenhäälestust. AI-l on kiire diagnoos; Kuid Kerem kinnitas iga paranduse, mõõtes tegelikku astmereaktsiooni – olenemata sellest, kas lõpetamine on parandatud või virvendus kadunud, oli seda näha ainult graafiliselt.

Levinud vead

  • Väljundi küllastust ja PID-i katkestustevastast lisamist ei õnnestunud ning täiturmehhanismi piirväärtus on suurel määral ületatud.
  • Tuletise võtmine müramõõtmise tuletisest ja täiturmehhanismi vibreerimine.
  • Eeldusel, et dt on konstantne, samas kui proovivõtuperiood varieerub.
  • Riistvara Ziegler-Nicholsi võnketesti läbiviimine ilma ohutusmeetmeteta.
  • Tehisintellektiga teenitud tulude aktsepteerimine lõplikuna ilma süsteemipõhise kinnitamiseta.
  • Üksiku võimenduse muutmine väga suurte sammudega ja süsteemi ebastabiilsusse lükkamine.

Kokkuvõttes

  • PID; See reageerib P (praegune viga), I (akumuleeritud viga), D (vea muutumise määr).
  • Välja PID peaks sisaldama väljundi küllastust, kerimisvastast ja tuletisfiltrit.
  • Integreeritud mähis suur ületamine, tuletatud müra põhjustab täiturmehhanismi vibratsiooni.
  • Ziegler-Nichols annab alguse võita; Seda rakendatakse riistvara turvameetmetega.
  • AI diagnoosib kiiresti sümptomist põhjuseni; Parandust kontrollitakse mõõtmisega.
  • dt tegelik mõõdetud; Tulude muutused toimuvad väikeste sammude ja jälgimisega.

Rakenduse ülesanne

Valige süsteem (päris mootor/kütteseade või Pythonis lihtne esimest/teise järgu mudel) ja laske tehisintellektil genereerida PID-klass küllastusega + anti-windup. Seejärel: (1) jälgige võnke käitumist, alustades ainult P-st ja suurendades Kp-d, (2) lisage Ki, et kõrvaldada püsiv viga ja vaadata, kuidas ületamine suureneb, (3) võrrelge mõju suurele ülelöögile, lülitades anti-windup sisse ja välja. Joonistage igal etapil sammu vastus ja märkige, milline võimendus millist käitumist muudab. Võrrelge Ziegler-Nicholsi tulusid enda leitud tuludega.