Ieguvumi:
- Spēja izskaidrot un piemērot P, I, D terminus un PID kontrollera efektus AI ar pareizo kontekstu
- Spēja soli pa solim veikt Ziegler-Nichols un eksperimentālās skaņošanas metodes ar AI palīdzību
- Spēja atpazīt un novērst PID slazdus, piemēram, integrēto likvidāciju, atvasinātus trokšņus AI ieteikumos
Cepeškrāsns temperatūras saglabāšana nemainīga, motora ātruma vadīšana vēlamajā vērtībā, drona leņķa līdzsvarošana; To visu pamatā ir vadības algoritms. Visizplatītākais no tiem ir PID kontrolieris, kas ir nozares mugurkauls. PID; Tas ir vienkāršs, izturīgs un darbojas ar plašu problēmu loku. Bet "vienkāršs" nenozīmē "viegli noregulēt": nepareizi iestatīts PID svārstīsies, pārsniegs, kavēsies vai kļūs pilnīgi nestabils. Mākslīgais intelekts šeit ir vērtīgs palīgs: tas izskaidro PID terminus, vada regulēšanas metodes, diagnosticē tipiskas nepilnības un raksta regulēšanas kodu. Tomēr galīgā korekcija tiek veikta, aplūkojot jūsu sistēmas fizisko uzvedību, un lēmums par stabilitāti ir inženierim. Šajā nodaļā ir aprakstīts, kā instalēt, noregulēt un pārbaudīt PID slazdus, izmantojot AI.
Trīs PID noteikumi
PID reaģē uz kļūdas signālu (e = mērķis – mērīts) trīs veidos:
termiņš
Uz ko viņš skatās?
Efekts
galējā gadījumā
P (proporcionāls)
pašreizējā kļūda
ātra atbilde
Svārstības, pastāvīga kļūda
es (neatņemams)
Uzkrāta pagātnes kļūda
Atiestata pastāvīgu kļūdu
pārtēriņš, likvidācija, svārstības
D (atvasinājums)
Kļūdas izmaiņu ātrums
Amortizācija samazina pārtēriņu
Pastipriniet troksni
Verbāls kopsavilkums: P atbild uz jautājumiem "cik tālu es esmu tagad", es "cik ilgi esmu bijis prom", D "cik ātri es tuvojos". Labs kontrolieris līdzsvaro visus trīs.
klases 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.0erfr mērķis, izmērīts, dt): kļūda = mērķis - izmērīts # P p = self.Kp * kļūda # I -- self.integral with windup protection += error * dt i = self.Ki * self.integral # D -- atvasināts trokšņu jutīgums d = self.Kd * (kļūda - self.previous_error) / dt - self.previous_error) / dt = self.previous_error windup if output > self.output_max: output = self.out_max self.integral -= error * dt # anti-windup: atsaukt integrāļa elif izvadi < self.output_min: output = self.output_min self.integral -= error * dt return output
Šis kods nav "apmācības PID", bet gan ražošanas loģikai tuvs skelets: tas ietver izvades piesātinājumu un anti-windup. Daudzi vienkārši PID, ko nodrošina AI, apiet šīs divas aizsardzības; Bez tiem, kad izpildmehānisms sasniedz savu robežu, integrālis uzbriest un sistēma negaidīti pārsniegs.
Padoms: prasot AI PID, sakiet "pievienot izvades piesātinājumu un pretizvadīšanu, atvasinātajam terminam lietot mērījuma atvasinājumu". Šie trīs papildinājumi pārvērš mācību grāmatas PID par lauku PID.
Integral likvidācija un atvasinātais troksnis
Divi klasiskie slazdi ir visizplatītākie PID atteices cēloņi:
Integrēta pārtīšana: kad izpildmehānisms ir piesātināts (piemēram, motors jau darbojas ar pilnu jaudu), kļūda saglabājas un integrālais termiņš turpina pieaugt. Šis uzpūstais integrālis noved pie liela pārsnieguma, kad sistēma sasniedz mērķi. Risinājums: integrāļa apturēšana vai atgriešana, kad izvade ir piesātināta (pret likvidāciju, parādīts iepriekš minētajā kodā).
Atvasinātais troksnis: termins D ņem kļūdas atvasinājumu; Trokšņaina mērījuma atvasinājums ir daudz trokšņaināks un vibrēs izpildmehānismu. Risinājumi: mērījuma atvasinājuma ņemšana (kļūdas vietā mērījuma atvasinājums), atvasinājuma terminam pievienojot zemas caurlaidības filtru.
# Atvasinātā trokšņa samazināšana: mērījumu atvasinājums + filterd_raw = -(mērīts - self.previous_measured) / dt kļūdas vietā
AI labi spēj identificēt šīs nepilnības; Ja sakāt "Mans PID ievērojami pārsniedz, kad tas sasniedz mērķi", tas iesaka likvidāciju. Bet jūs pārbaudāt, izmērot, vai labojums darbojas jūsu sistēmā.
Iestatījums ar Ziegler-Nichols
Klasiskā metode ieguvumu (Kp, Ki, Kd) atrašanai no nulles ir Ziegler-Nichols. Tās būtība: sākot tikai ar P un palielinot Kp, līdz sistēma nonāk noturīgā svārstībā; Aprēķiniet Kp, Ki, Kd no tabulas ar kritisko pastiprinājumu Ku un svārstību periodu Tu šajā punktā.
kontrolieris
kp
Ti
Td
P.
0,5·Ku
–
–
P.I.
0,45·Ku
Tu/1.2
–
PID
0,6·Ku
Tu/2
Tu/8
Ziegler-Nichols soļi (plānu izstrādā AI):1. Ņem Ki=0, Kd=0. Vienkārši palaidiet P.2. LĒNĀM palieliniet Kp, līdz sākas stabilas, noturīgas svārstības.3. Šis Kp = Ku (kritiskais pastiprinājums), svārstību periods = Tu.4. Aprēķināt no tabulas Kp, Ti, Td; Ki = Kp/Ti, Kd = Kp*Td.5. Sāciet ar šīm vērtībām, pēc tam veiciet eksperimentālus pielāgojumus.
Uzmanību: Ziegler-Nichols apzināti noved pie sistēmas stabilitātes robežas (noturīgas svārstības). To darot ar reālu aparatūru, pastāv mehāniskas spriedzes, pārslodzes un briesmu risks; Ja iespējams, vispirms dariet to simulācijā, pēc tam strādājiet ar zemu jaudas ierobežojumu un E-stop aparatūrā. AI ieteiktais Ku ir sākumpunkts, tas tiek mērīts un pārbaudīts jūsu sistēmā.
AI atbalstīta diagnostika
Jūs varat diagnosticēt PID uzvedību, aprakstot to AI. Simptoms → iespējamā cēloņa kartēšana:
simptoms
iespējamais cēlonis
AI ieteiks virzienu
lēna sēdēšana
Kp/Ki zems
palielināt kp
Pastāvīga kļūda
Es neesmu klāt vai esmu ļoti zems
Ki pievienot/palielināt
Pārsniegums + svārstības
Kp/Ki augsts, nav D
Pievienojiet Kd, samaziniet Ki
Izpildmehānisms trīc
atvasinātais troksnis
Filtrēt/samazināt D
Kad jūs sasniedzat lielo pārsniegumu
neatņemama likvidācija
Pievienojiet anti-windup
Vāja uzvedne / spēcīga uzvedne
VĀJS:"Norādiet PID pieaugumu."(Kura sistēma? Kā tā darbojas? Vai ir kādi mērījumi? Nāk nejauši skaitļi.)STRONG:"Pielāgoju PID līdzstrāvas motora ātruma kontrolei. Pašlaik Kp=2, Ki=0,5, Kd=0. Tas pārsniedz 35% no soļa ievades, un, kad tas sasniedz lielu laiku, ir vajadzīgs ilgs laiks, lai sasniegtu mērķi. Iztveršanas frekvence ir 100 Hz. Uzskaitiet iespējamos šo simptomu iemeslus, kas iegūst "Iesakiet, kurā virzienā tas jāmaina, un pastāstiet man, kā pārbaudīt, vai pārsniegums ir neatņemama likvidācija."
Mini futrālis
Vadības inženieris Kerems pielāgo ekstrūdera temperatūras kontroli. Izmantojot AI ieteiktos ieguvumus, sistēma ātri sasniedz mērķi, taču pie katras iestatītās izmaiņas tā veic lielu pārsniegumu un lēnām nosēžas. Kerems izskaidro simptomu AI; AI ir aizdomas, ka tas ir integrēts, jo sildītājs kādu laiku paliek ar pilnu jaudu (piesātināts). Kerem PID kodam pievieno anti-windup, un pārsniegums ievērojami samazinās. Bet tagad pie sildītāja izejas ir neliela mirgošana; Viņš to attiecina uz D terminu, kas pastiprina temperatūras sensora troksni, un atvasinājumam pievieno zemas caurlaidības filtru. Visbeidzot, tas aptuveni apstiprina Ziegler-Nichols ieguvumus un veic eksperimentālu precizēšanu. AI ir ātra diagnoze; Taču Kerems apstiprināja katru labojumu, izmērot faktisko soļa reakciju — neatkarīgi no tā, vai likvidācija tika izlabota vai mirgošana pazuda, to varēja redzēt tikai grafiski.
Biežākās kļūdas
- Neizdevās pievienot izejas piesātinājumu un pretpārtraukumu PID, kā arī tiek novērots liels izpildmehānisma ierobežojuma pārsniegums.
- Atvasinājuma ņemšana no trokšņainā mērījuma atvasinājuma un izpildmehānisma vibrācija.
- Pieņemot, ka dt ir nemainīgs, bet paraugu ņemšanas periods mainās.
- Ziegler-Nichols svārstību testa veikšana aparatūrai bez drošības pasākumiem.
- AI radītie ieņēmumi tiek pieņemti kā “galīgie” bez sistēmai raksturīgas verifikācijas.
- Viena pastiprinājuma maiņa ar ļoti lieliem soļiem un sistēmas virzīšana nestabilā stāvoklī.
Rezumējot
- PID; Tas reaģē ar P (pašreizējā kļūda), I (uzkrātā kļūda), D (kļūdas izmaiņu ātrums).
- Lauka PID jāiekļauj izejas piesātinājums, pretizvadīšanas un atvasinātais filtrs.
- Integrēta uztīšanas liela pārtēriņa, atvasinātais troksnis izraisa izpildmehānisma vibrāciju.
- Ziegler-Nichols dod sākt iegūt; Tas tiek ieviests ar drošības pasākumiem aparatūrā.
- AI ātri diagnosticē no simptoma līdz cēlonim; Korekciju pārbauda ar mērījumu.
- dt faktiski izmērīts; Peļņas izmaiņas tiek veiktas nelielos soļos un novērojumos.
Lietojumprogrammas uzdevums
Izvēlieties sistēmu (īstu motoru/sildītāju vai vienkāršu pirmās/otrās kārtas modeli Python) un palūdziet AI ģenerēt PID klasi ar piesātinājumu + pretpārtraukumu. Pēc tam: (1) novērojiet svārstību uzvedību, sākot tikai ar P un palielinot Kp, (2) pievienojiet Ki, lai novērstu pastāvīgo kļūdu, un redzētu, kā palielinās pārsniegums, (3) salīdziniet ietekmi uz lielo pārsniegumu, ieslēdzot un izslēdzot pretpārtraukumu. Uzzīmējiet soļa reakciju katrā solī un atzīmējiet, kurš ieguvums maina uzvedību. Salīdziniet Ziegler-Nichols ieguvumus ar saviem ieguvumiem.