zisky:
- Schopnosť vysvetliť a aplikovať pojmy P, I, D a účinky PID regulátora na AI so správnym kontextom
- Schopnosť vykonávať Ziegler-Nichols a experimentálne metódy ladenia krok za krokom pomocou AI
- Schopnosť rozpoznať a eliminovať PID pasce, ako je integrálny windup, derivačný šum v odporúčaniach AI
Udržiavanie konštantnej teploty pece, riadenie rýchlosti motora na požadovanú hodnotu, vyrovnávanie uhla dronu; Srdcom všetkých z nich je riadiaci algoritmus. Najbežnejším z nich je PID regulátor, ktorý je chrbtovou kosťou priemyslu. PID; Je jednoduchý, robustný a funguje na širokej škále problémov. Ale „jednoduché“ neznamená „ľahko laditeľné“: nesprávne nastavený PID bude oscilovať, prekmitá, bude sedieť neskoro alebo sa stane úplne nestabilným. Umelá inteligencia je tu cenným pomocníkom: vysvetľuje PID pojmy, prevádza metódy ladenia, diagnostikuje typické úskalia a píše ladiaci kód. Konečná úprava sa však vykoná pri pohľade na fyzické správanie vášho systému a rozhodnutie o stabilite patrí inžinierovi. V tejto časti popisujeme, ako nainštalovať, vyladiť a overiť PID pasce pomocou AI.
Tri podmienky PID
PID reaguje na chybový signál (e = cieľ – meraný) tromi spôsobmi:
termín
Na čo sa pozerá?
Effect
v extréme
P (proporcionálne)
aktuálna chyba
rýchla odozva
Oscilácia, trvalá chyba
ja (integrál)
Nahromadená chyba z minulosti
Resetuje trvalú chybu
prekmit, navíjanie, kmitanie
D (derivát)
Miera zmeny chyby
Tlmenie znižuje prekmity
Zosilnite hluk
Slovné zhrnutie: P odpovedá na otázky „ako som teraz ďaleko“, ja „ako dlho som preč“, D „ako rýchlo sa blížim“. Dobrý ovládač vyvažuje všetky tri.
trieda 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, m.c. chyba = cieľ - merané # P p = samo.Kp * chyba # I -- samo.integrál s ochranou proti naťahovaniu += chyba * dt i = samočinný.Ki * samočinný integrál # D -- derivačný šum citlivý d = samo.Kd * (chyba - vlastná.predchádzajúca_chyba) / dt vlastná.predchádzajúca_chyba = chyba výstup = p + i + d_max. výstup. self.integral -= error * dt # anti-windup: zrušiť integrálny elif výstup < self.output_min: output = self.output_min self.integral -= error * dt return output
Tento kód nie je „tréningový PID“, ale kostra blízka produkčnej logike: zahŕňa výstupnú saturáciu a anti-windup. Mnohé jednoduché PID dané AI tieto dve ochrany obchádzajú; Bez nich, keď pohon dosiahne svoj limit, integrál sa nafúkne a systém nečakane prekmitne.
Tip: Keď sa pýtate AI na PID, povedzte „pridajte saturáciu výstupu a proti navíjaniu, použite deriváciu na meranie na derivačný člen“. Tieto tri dodatky konvertujú PID učebnice na pole PID.
Integrálny navíjací a derivačný šum
Najčastejšími príčinami zlyhania PID sú dve klasické úskalia:
Integrálne navíjanie: Keď sa pohon nasýti (napr. motor je už na plný výkon), chyba pretrváva a integrálny člen naďalej rastie. Tento nafúknutý integrál vedie k veľkému prekročeniu, keď systém dosiahne cieľ. Riešenie: zastavenie alebo vrátenie integrálu, keď je výstup nasýtený (anti-windup, znázornené v kóde vyššie).
Derivačný šum: D člen berie deriváciu chyby; Derivát hlučného merania je oveľa hlučnejší a rozvibruje ovládač. Riešenia: prevzatie derivácie z merania (derivácia merania namiesto chyby), pridanie dolnopriepustného filtra k derivačnému členu.
# Zníženie derivačného šumu: derivácia merania + filterd_raw = -(namerané - self.previous_measured) / dt namiesto chyby
AI je dobrá pri identifikácii týchto úskalí; Ak poviete „Môj PID pri dosiahnutí cieľa výrazne prekročí“, odporúča sa ukončiť. Overíte si však meraním, či oprava funguje vo vašom systéme.
Nastavenie so Ziegler-Nichols
Klasickou metódou na zistenie ziskov (Kp, Ki, Kd) od začiatku je Ziegler-Nichols. Jeho podstata: začína sa iba s P a zvyšuje sa Kp, kým systém neprejde do trvalej oscilácie; Z tabuľky vypočítajte Kp, Ki, Kd s kritickým zosilnením Ku a periódou oscilácie Tu v tomto bode.
ovládač
kp
Ti
Td
P.
0,5 · Ku
–
–
P.I.
0,45 Ku
Ut/1.2
–
PID
0,6 · Ku
Ut/2
Ut/8
Kroky Ziegler-Nichols (plán vypracuje AI):1. Vezmite Ki=0, Kd=0. Stačí spustiť P.2. POMALY zvyšujte Kp, kým nezačne stabilná, trvalá oscilácia.3. Toto Kp = Ku (kritické zosilnenie), perióda oscilácie = Tu.4. Vypočítajte Kp, Ti, Td z tabuľky; Ki = Kp/Ti, Kd = Kp*Td.5. Začnite s týmito hodnotami a potom vykonajte experimentálne vylepšenia.
Pozor: Ziegler-Nichols úmyselne privádza systém na hranicu stability (trvalé kmitanie). Pri vykonávaní tohto postupu na skutočnom hardvéri existuje riziko mechanického namáhania, nadprúdu a nebezpečenstva; Ak je to možné, urobte to najskôr v simulácii, potom pracujte s limitom nízkeho výkonu a núdzovým zastavením v hardvéri. Ku navrhovaný AI je východiskovým bodom, meria sa a overuje vo vašom systéme.
Diagnostika za pomoci AI
Správanie PID môžete diagnostikovať tak, že ho opíšete AI. Symptóm → mapovanie možných príčin:
symptóm
možná príčina
Smer navrhne AI
pomalé sedenie
Nízka Kp/Ki
zvýšiť kp
Trvalá chyba
Som neprítomný alebo veľmi nízky
Ki pridať/zvýšiť
Prekmit + oscilácia
Kp/Ki vysoké, žiadne D
Pridajte Kd, znížte Ki
Pohon sa trasie
odvodený šum
Filtrovať/znížiť D
Keď dosiahnete veľký presah
integrálne navíjanie
Pridajte anti-windup
Slabá výzva / silná výzva
SLABÝ: "Dajte PID zisky." (Ktorý systém? Aké je správanie? Existujú nejaké merania? Prichádzajú náhodné čísla.) SILNÝ: "Upravujem PID pre riadenie otáčok jednosmerného motora. Momentálne Kp=2, Ki=0,5, Kd=0. Na skokovom vstupe presahuje 35% a keď dosiahne sekundový cieľ, trvá to veľké zosilnenie; 100 Hz Uveďte možné dôvody z týchto príznakov, ktoré získavajú "Navrhnite, ktorým smerom by som to mal zmeniť, a povedzte mi, ako otestovať, či je prekmit integrálny."
Mini puzdro
Riadiaci technik Kerem nastavuje riadenie teploty extrudéra. So ziskami, ktoré navrhuje AI, systém dosiahne cieľ rýchlo, ale pri každej zmene nastavenia urobí veľké prekročenie a pomaly sa usadí. Kerem vysvetľuje symptóm AI; Umelá inteligencia má podozrenie na integrálnu likvidáciu, pretože ohrievač zostáva chvíľu na plný výkon (nasýtený). Kerem pridáva do PID kódu anti-windup a prekročenie výrazne klesá. Ale teraz je na výstupe ohrievača mierne blikanie; Pripisuje to výrazu D zosilňujúcemu šum snímača teploty a k odvodeniu pridáva dolnopriepustný filter. Nakoniec zhruba overí zisky so Ziegler-Nicholsom a vykoná experimentálne jemné doladenie. AI má rýchlu diagnostiku; Kerem však potvrdil každú korekciu meraním skutočnej odozvy na krok – či už bolo navíjanie opravené, alebo blikanie zmizlo, bolo možné vidieť len graficky.
Časté chyby
- Nepridanie výstupnej saturácie a anti-windup k PID a veľké prekročenie limitu akčného člena.
- Prevzatie derivácie z derivácie hlučného merania a vibrovania aktuátora.
- Za predpokladu, že dt je konštantná, zatiaľ čo perióda vzorkovania sa mení.
- Vykonanie testu oscilácie Ziegler-Nichols na hardvéri bez bezpečnostných opatrení.
- Prijímanie zárobkov generovaných AI ako „konečných“ bez overenia špecifického pre systém.
- Zmena jediného zisku s veľmi veľkými krokmi a zatlačenie systému do nestability.
V súhrne
- PID; Reaguje s P (aktuálna chyba), I (kumulovaná chyba), D (miera zmeny chyby).
- Pole PID by malo zahŕňať výstupnú saturáciu, anti-windup a derivačný filter.
- Veľký prekmit integrálneho navíjania, odvodený hluk spôsobuje vibrácie pohonu.
- Ziegler-Nichols začína získavať; Je implementovaný s bezpečnostnými opatreniami v hardvéri.
- AI je rýchla v diagnostike od symptómu po príčinu; Korekcia sa overuje meraním.
- dt skutočné namerané; Zmeny v zárobkoch sa uskutočňujú po malých krokoch a pozorovaní.
Aplikačná úloha
Vyberte si systém (skutočný motor/ohrievač alebo jednoduchý model prvého/druhého rádu v Pythone) a nechajte AI vygenerovať triedu PID so saturáciou + anti-windup. Potom: (1) pozorujte oscilačné správanie tak, že začnete iba s P a zvyšujte Kp, (2) pridajte Ki, aby ste eliminovali trvalú chybu a uvidíte, ako sa prekmit zväčší, (3) porovnajte vplyv na veľký prekmit zapnutím a vypnutím anti-windup. Nakreslite odozvu na krok pri každom kroku a všimnite si, ktorý zisk mení ktoré správanie. Porovnajte zisky od Ziegler-Nicholsa so ziskami, ktoré ste sami našli.