Dobički:
- Sposobnost razlage in uporabe izrazov P, I, D in učinkov PID regulatorja na AI s pravim kontekstom
- Sposobnost izvajanja Ziegler-Nicholsovih in eksperimentalnih metod uglaševanja korak za korakom s pomočjo AI
- Sposobnost prepoznavanja in odpravljanja pasti PID, kot je integralno navijanje, izvedeni šum v priporočilih AI
Ohranjanje konstantne temperature pečice, poganjanje hitrosti motorja na želeno vrednost, uravnoteženje kota drona; V središču vseh je nadzorni algoritem. Najpogostejši med njimi je krmilnik PID, ki je hrbtenica industrije. PID; Je preprost, robusten in deluje na širok spekter težav. Vendar "preprost" ne pomeni "lahek za nastavitev": nepravilno nastavljen PID bo nihal, presegel, zamujal ali postal popolnoma nestabilen. Umetna inteligenca je tukaj dragocen pomočnik: razlaga izraze PID, vodi skozi metode uglaševanja, diagnosticira tipične pasti in piše kodo uglaševanja. Vendar pa je končna prilagoditev narejena z opazovanjem fizičnega obnašanja vašega sistema, odločitev o stabilnosti pa pripada inženirju. V tej enoti obravnavamo, kako namestiti, nastaviti in preveriti pasti PID z AI.
Trije pogoji PID
PID se na signal napake (e = cilj − izmerjeno) odzove na tri načine:
termin
Kaj gleda?
Učinek
v skrajnem
P (sorazmerno)
trenutna napaka
hitra odzivnost
Nihanje, stalna napaka
I (integral)
Nakopičena pretekla napaka
Ponastavi trajno napako
overshoot, windup, oscilacija
D (izpeljanka)
Stopnja spremembe napake
Dušenje zmanjša prekoračitev
Ojačajte hrup
Besedni povzetek: P odgovarja na vprašanja "kako daleč sem zdaj", I "kako dolgo me ni bilo", D "kako hitro se približujem". Dober krmilnik uravnoteži vse tri.
class PID: def __init__(self, Kp, Ki, Kd, output_min=-100, output_max=100): self.Kp, self.Ki, self.Kd = Kp, Ki, Kd self.out_min, self.out_max = output_min, output_max self.integral = 0.0 self.previous_error = 0.0 def izračun(self, target, izmerjeno, dt): napaka = cilj - izmerjeno # P p = self.Kp * napaka # I -- self.integral z zaščito pred vetrom += napaka * dt i = self.Ki * self.integral # D -- občutljivost na izpeljani šum d = self.Kd * (napaka - self.previous_error) / dt self.previous_error = error out = p + i + d # Nasiči izhod in omeji navijanje, če je output > self.output_max: output = self.out_max self.integral -= error * dt # anti-windup: razveljavi integral elif output < self.output_min: output = self.output_min self.integral -= error * dt return output
Ta koda ni "vadbeni PID", ampak okostje, ki je blizu produkcijski logiki: vključuje nasičenost izhoda in zaščito pred previjanjem. Številni preprosti PID-ji, ki jih poda AI, obide ti dve zaščiti; Brez njih bo, ko aktuator doseže svojo mejo, integral nabreknil in sistem bo nepričakovano preskočil.
Nasvet: Ko AI vprašate za PID, recite "dodaj izhodno nasičenost in zaščito pred navijanjem, uporabi izpeljanko pri meritvi za izpeljanko". Ti trije dodatki pretvorijo PID učbenika v polje PID.
Integralni vetrni in izpeljani šum
Dve klasični pasti sta najpogostejša vzroka za okvaro PID:
Integralno navijanje: Ko se aktuator nasiči (npr. motor je že pri polni moči), napaka ostaja in integralni člen še naprej raste. Ta napihnjen integral povzroči veliko prekoračitev, ko sistem doseže cilj. Rešitev: zaustavitev ali povrnitev integrala, ko je izhod nasičen (proti previjanju, prikazano v zgornji kodi).
Izpeljan hrup: Izraz D vzame izpeljanko napake; Izpeljanka hrupne meritve je veliko bolj hrupna in bo vibrirala aktuator. Rešitve: vzamemo izpeljanko iz meritve (izpeljanko meritve namesto napake), dodamo nizkopasovni filter k izpeljanki.
# Zmanjšanje izpeljanega hrupa: izpeljanka meritve + filterd_raw = -(izmerjeno - self.previous_measured) / dt namesto napake
AI je dober pri prepoznavanju teh pasti; Če rečete "Moj PID močno preseže, ko doseže cilj", priporoča navijanje. Z merjenjem pa preverite, ali popravek deluje na vašem sistemu.
Postavitev z Ziegler-Nicholsom
Klasična metoda za iskanje dobičkov (Kp, Ki, Kd) iz nič je Ziegler-Nichols. Njegovo bistvo: začeti samo s P in povečevati Kp, dokler sistem ne preide v trajno nihanje; Iz tabele izračunajte Kp, Ki, Kd s kritičnim ojačanjem Ku in nihajno dobo Tu na tej točki.
krmilnik
kp
Ti
Td
p.
0,5·Ku
–
–
P.I.
0,45·Ku
tor/1.2
–
PID
0,6·Ku
tor/2
tor/8
Ziegler-Nicholsovi koraki (načrt bo izdelal AI):1. Vzemite Ki=0, Kd=0. Samo zaženite P.2. POČASI povečujte Kp, dokler se ne začne stabilno, trajno nihanje.3. Ta Kp = Ku (kritično ojačenje), obdobje nihanja = Tu.4. Iz tabele izračunajte Kp, Ti, Td; Ki = Kp/Ti, Kd = Kp*Td.5. Začnite s temi vrednostmi, nato naredite eksperimentalne popravke.
Pozor: Ziegler-Nichols namenoma spravi sistem na njegovo mejo stabilnosti (trajno nihanje). Obstaja nevarnost mehanske obremenitve, prevelikega toka in nevarnost, če to počnete na pravi strojni opremi; Če je mogoče, to najprej naredite v simulaciji, nato pa delajte z nizko omejitvijo moči in E-stop v strojni opremi. Ku, ki ga predlaga umetna inteligenca, je izhodišče, izmerjen in preverjen v vašem sistemu.
Diagnostika s pomočjo AI
Vedenje PID lahko diagnosticirate tako, da ga opišete AI. Simptom → preslikava možnega vzroka:
simptom
možen vzrok
Smer, ki jo bo predlagal AI
počasno sedenje
Kp/Ki nizek
povečanje kp
Trajna napaka
I je odsoten ali zelo nizek
Ki dodajanje/povečanje
Prekoračitev + nihanje
Kp/Ki visoko, brez D
Dodajte Kd, zmanjšajte Ki
Aktuator se trese
izpeljan hrup
Filtriraj/zmanjšaj D
Ko dosežete velik presežek
integralno navijanje
Dodajte zaščito pred navijanjem
Šibek poziv / močan poziv
WEAK:»Daj povečanja PID.«(Kateri sistem? Kakšno je vedenje? Ali obstajajo meritve? Prihajajo naključne številke.)MOČNO:»PID prilagajam za krmiljenje hitrosti motorja na enosmerni tok. Trenutno je Kp=2, Ki=0,5, Kd=0. Prekorači 35 % pri vhodnem koraku in ko doseže cilj, pride do velike sekundne prekoračitve; traja dolgo časa, da se poravna. Vzorčenje je 100 Hz. Naštejte možne razloge za te simptome, ki pridobijo "Predlagajte, v katero smer naj ga spremenim, in mi povejte, kako naj preizkusim, ali je prekoračitev integralno vetrenje."
Mini etui
Nadzorni inženir Kerem prilagodi temperaturni nadzor ekstruderja. Z izboljšavami, ki jih predlaga umetna inteligenca, sistem hitro doseže cilj, vendar pri vsaki spremembi nastavitev naredi veliko prekoračitev in se počasi umiri. Kerem pojasni simptom AI; AI sumi na integrirano navijanje, ker grelnik nekaj časa ostane pri polni moči (nasičen). Kerem kodi PID doda zaščito pred navijanjem in prekoračitev se znatno zmanjša. Toda zdaj je na izhodu grelnika rahlo utripanje; To pripisuje izrazu D, ki ojača hrup temperaturnega senzorja, in derivatu doda nizkopasovni filter. Na koncu grobo potrdi pridobitve z Ziegler-Nicholsom in izvede poskusno fino uravnavanje. AI ima diagnozo po hitrem postopku; Toda Kerem je potrdil vsak popravek z merjenjem dejanskega odziva na korak – ali je bilo navijanje popravljeno ali je utripanje izginilo, je bilo mogoče videti le grafično.
Pogoste napake
- PID-u ni uspelo dodati nasičenosti izhoda in preprečevanja navijanja, kar je povzročilo veliko prekoračitev mejne vrednosti aktuatorja.
- Izvajanje izpeljave hrupne meritve in vibriranje aktuatorja.
- Ob predpostavki, da je dt konstanten, medtem ko se obdobje vzorčenja spreminja.
- Izvajanje Ziegler-Nicholsovega preskusa nihanja na strojni opremi brez upoštevanja varnostnih ukrepov.
- Sprejemanje zaslužka, ustvarjenega z umetno inteligenco, kot »končnega« brez preverjanja, specifičnega za sistem.
- Spreminjanje posameznega ojačanja z zelo velikimi koraki in potiskanje sistema v nestabilnost.
Če povzamem
- PID; Reagira s P (trenutna napaka), I (akumulirana napaka), D (stopnja spremembe napake).
- PID polja mora vključevati izhodno nasičenost, zaščito pred previjanjem in izpeljani filter.
- Veliko prekoračitev integriranega navijanja, izpeljani hrup povzroča vibracije aktuatorja.
- Ziegler-Nichols začne pridobivati; Izvaja se z varnostnimi ukrepi v strojni opremi.
- AI hitro postavi diagnozo od simptoma do vzroka; Popravek se preveri z meritvijo.
- dt dejansko izmerjeno; Spremembe zaslužka potekajo z majhnimi koraki in opazovanjem.
Aplikacijska naloga
Izberite sistem (pravi motor/grelec ali preprost model prvega/drugega reda v Pythonu) in naj AI ustvari razred PID z nasičenostjo + zaščito pred previjanjem. Nato: (1) opazujte obnašanje nihanja tako, da začnete samo s P in povečate Kp, (2) dodajte Ki, da odpravite trajno napako in si oglejte, kako se prekoračitev poveča, (3) primerjajte učinek na veliko prekoračitev z vklopom in izklopom zaščite pred navijanjem. Narišite odziv koraka pri vsakem koraku in zabeležite, kateri dobiček spremeni katero vedenje. Primerjajte pridobitve Ziegler-Nicholsove z dobički, ki ste jih ugotovili sami.