zisky:
- Schopnost vysvětlit a aplikovat termíny P, I, D a účinky PID regulátoru na AI se správným kontextem
- Schopnost provádět Ziegler-Nichols a experimentální metody ladění krok za krokem s pomocí AI
- Schopnost rozpoznat a eliminovat PID pasti, jako je integrální windup, derivační šum v doporučeních AI
Udržování konstantní teploty pece, řízení rychlosti motoru na požadovanou hodnotu, vyrovnávání úhlu dronu; Základem všech je řídicí algoritmus. Nejběžnějším z nich je PID regulátor, který je páteří průmyslu. PID; Je jednoduchý, robustní a funguje na široké škále problémů. Ale „jednoduché“ neznamená „snadno laditelné“: nesprávně nastavený PID bude oscilovat, překmitnout, sedět pozdě nebo se stane zcela nestabilním. Umělá inteligence je zde cenným pomocníkem: vysvětluje pojmy PID, provádí způsoby ladění, diagnostikuje typická úskalí a píše ladicí kód. Konečná úprava se však provádí pohledem na fyzické chování vašeho systému a rozhodnutí o stabilitě náleží inženýrovi. V této jednotce popisujeme, jak nainstalovat, vyladit a ověřit PID pasti pomocí AI.
Tři podmínky PID
PID reaguje na chybový signál (e = cíl – měřený) třemi způsoby:
termín
Na co se dívá?
Efekt
v extrému
P (proporcionální)
aktuální chyba
rychlá odezva
Oscilace, trvalá chyba
já (integrální)
Akumulovaná minulá chyba
Resetuje trvalou chybu
překmit, natahování, kmitání
D (derivát)
Míra změny chyb
Tlumení snižuje překmity
Zesílit hluk
Slovní shrnutí: P odpovídá na otázky „jak jsem teď daleko“, já „jak dlouho jsem pryč“, D „jak rychle se blížím“. Dobrý ovladač vyvažuje všechny tři.
třída 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 = cíl - naměřeno # P p = samo.Kp * chyba # I -- samo.integrální s ochranou proti natahování += chyba * dt i = samo.Ki * samo.integrální # D -- derivační šum citlivá d = samo.Kd * (chyba - self.previous_error) / dt self.previous_error = chyba out = p + i + d_max. výstup. self.integral -= chyba * dt # anti-windup: zruš integrální elif výstup < self.output_min: output = self.output_min self.integral -= error * dt return output
Tento kód není „tréninkový PID“, ale kostra blízká produkční logice: zahrnuje saturaci výstupu a anti-windup. Mnoho jednoduchých PID daných AI tyto dvě ochrany obchází; Bez nich, když akční člen dosáhne svého limitu, integrál nabobtná a systém neočekávaně překmitne.
Tip: Když požádáte AI o PID, řekněte „přidat výstupní saturaci a anti-windup, aplikovat derivaci na měření na derivační člen“. Tyto tři doplňky převádějí PID učebnice na pole PID.
Integrální natahovací a derivační šum
Dvě klasická úskalí jsou nejčastějšími příčinami selhání PID:
Integrální natahování: Když se akční člen saturuje (např. motor je již na plný výkon), chyba přetrvává a integrální člen dále roste. Tento nafouknutý integrál vede k velkému překmitu, když systém dosáhne cíle. Řešení: zastavení nebo vrácení integrálu, když je výstup nasycený (anti-windup, ukázáno v kódu výše).
Derivační šum: D člen bere derivaci chyby; Derivace hlučného měření je mnohem hlučnější a bude vibrovat akční člen. Řešení: převzetí derivace z měření (derivace měření místo chyby), přidání dolní propusti k derivačnímu členu.
# Snížení derivačního šumu: derivace měření + filterd_raw = -(měřeno - self.previous_measured) / dt místo chyby
AI je dobrá v identifikaci těchto úskalí; Pokud řeknete „Můj PID při dosažení cíle výrazně přestřelí“, doporučí to ukončení. Ale ověříte měřením, zda oprava ve vašem systému funguje.
Nastavení se Ziegler-Nicholsem
Klasickou metodou pro zjištění zisků (Kp, Ki, Kd) od nuly je Ziegler-Nichols. Jeho podstata: začíná pouze s P a zvyšuje se Kp, dokud systém nepřejde do trvalé oscilace; Z tabulky vypočítejte Kp, Ki, Kd s kritickým zesílením Ku a dobou oscilace Tu v tomto bodě.
ovladač
kp
Ti
Td
P.
0,5 · Ku
–
–
P.I.
0,45 Ku
Út/1.2
–
PID
0,6 · Ku
Út/2
Út/8
Kroky Ziegler-Nichols (plán vypracuje AI):1. Vezměte Ki=0, Kd=0. Stačí spustit P.2. POMALU zvyšujte Kp, dokud nezačne stabilní, trvalé kmitání.3. Toto Kp = Ku (kritické zesílení), perioda oscilace = Tu.4. Vypočítejte Kp, Ti, Td z tabulky; Ki = Kp/Ti, Kd = Kp*Td.5. Začněte s těmito hodnotami a poté proveďte experimentální vylepšení.
Pozor: Ziegler-Nichols záměrně přivádí systém na mez stability (trvalé oscilace). Na skutečném hardwaru existuje riziko mechanického namáhání, nadproudu a nebezpečí; Pokud je to možné, proveďte to nejprve v simulaci, poté pracujte s limitem nízké spotřeby a E-stop v hardwaru. Ku navrhovaný umělou inteligencí je výchozím bodem, měří se a ověřuje ve vašem systému.
Diagnostika za pomoci umělé inteligence
Chování PID můžete diagnostikovat tak, že jej popíšete AI. Symptom → mapování možných příčin:
symptom
možná příčina
Směr, který AI navrhne
pomalé sezení
Kp/Ki nízké
zvýšit kp
Trvalá chyba
Jsem nepřítomný nebo velmi nízký
Ki přidat/zvýšit
Překmit + oscilace
Kp/Ki vysoké, žádné D
Přidat Kd, snížit Ki
Pohon se třese
derivační šum
Filtr/snížení D
Když dosáhnete velkého převýšení
integrální natahování
Přidejte anti-windup
Slabá výzva / Silná výzva
SLABÝ: "Získejte PID zisky." (Který systém? Jak se chová? Existují nějaká měření? Přicházejí náhodná čísla.) SILNÝ: "Upravuji PID pro řízení otáček stejnosměrného motoru. V současné době Kp=2, Ki=0,5, Kd=0. Přesahuje 35 % na krokovém vstupu a když dosáhne druhého cíle, trvá to velké překročení; 100 Hz Vyjmenujte možné důvody z těchto příznaků, které získávají "Navrhněte, kterým směrem bych to měl změnit, a řekněte mi, jak otestovat, zda je překmit integrální náběh."
Mini pouzdro
Kontrolní technik Kerem nastavuje řízení teploty extrudéru. Se zisky navrženými umělou inteligencí systém dosáhne cíle rychle, ale při každé změně sady udělá velký přestřel a pomalu se usadí. Kerem vysvětluje symptom AI; AI má podezření na integrální natahování, protože ohřívač zůstává chvíli na plný výkon (nasycený). Kerem přidává do PID kódu anti-windup a překmit výrazně klesá. Nyní však na výstupu ohřívače dochází k mírnému blikání; Připisuje to D členu zesilujícímu šum teplotního senzoru a přidává k derivaci dolní propust. Nakonec zhruba ověří zisky pomocí Ziegler-Nichols a provede experimentální jemné doladění. AI má rychlou diagnostiku; Ale Kerem potvrdil každou korekci měřením skutečné odezvy na krok – ať už bylo natahování opraveno, nebo blikání zmizelo, bylo to vidět pouze graficky.
Časté chyby
- Selhání přidání výstupní saturace a anti-windup k PID a došlo k velkému překmitu limitu akčního členu.
- Převzetí derivace z derivace hlučného měření a vibrací aktuátoru.
- Za předpokladu, že dt je konstantní, zatímco perioda vzorkování se mění.
- Provádění Ziegler-Nicholsova oscilačního testu na hardwaru bez bezpečnostních opatření.
- Přijímání výdělků generovaných umělou inteligencí jako „konečných“ bez ověření specifického pro systém.
- Změna jediného zisku s velmi velkými kroky a tlačení systému do nestability.
V souhrnu
- PID; Reaguje s P (aktuální chyba), I (kumulovaná chyba), D (rychlost změny chyb).
- Polní PID by mělo zahrnovat výstupní saturaci, anti-windup a derivační filtr.
- Integrální natahování velký překmit, odvozený hluk způsobuje vibrace pohonu.
- Ziegler-Nichols začíná získávat; Je implementován s bezpečnostními opatřeními v hardwaru.
- AI je rychlá v diagnóze od příznaku k příčině; Korekce se ověřuje měřením.
- dt skutečné naměřené; Změny výdělků se provádějí po malých krocích a pozorováním.
Aplikační úkol
Vyberte si systém (skutečný motor/ohřívač nebo jednoduchý model prvního/druhého řádu v Pythonu) a nechte AI vygenerovat třídu PID se saturací + anti-windup. Poté: (1) pozorujte chování oscilace tak, že začnete pouze s P a zvýšíte Kp, (2) přidáte Ki, abyste odstranili trvalou chybu a uvidíte, jak se překmit zvětšuje, (3) porovnejte účinek na velký překmit zapnutím a vypnutím anti-windup. Zakreslete krokovou odezvu v každém kroku a poznamenejte si, který zisk mění které chování. Porovnejte zisky od Ziegler-Nichols se zisky, které jste sami našli.