Vahid 5 / 9

Nəzarət Alqoritmləri: PID və AI Dəstəklənən Tuning

Qazanclar:

  • PID nəzarətçisinin P, I, D şərtlərini və təsirlərini düzgün kontekstlə AI-yə izah etmək və tətbiq etmək bacarığı
  • AI köməyi ilə Ziegler-Nichols və eksperimental tənzimləmə üsullarını addım-addım həyata keçirmək bacarığı
  • Süni intellekt tövsiyələrində inteqral bağlama, törəmə səs-küy kimi PID tələlərini tanımaq və aradan qaldırmaq bacarığı

Sobanın temperaturunu sabit saxlamaq, motorun sürətini istənilən dəyərdə sürmək, dronun bucağını tarazlaşdırmaq; Onların hamısının mərkəzində nəzarət alqoritmi dayanır. Bunlardan ən çox yayılmışı sənayenin əsasını təşkil edən PID nəzarətçisidir. PID; O, sadədir, möhkəmdir və çoxlu problemlər üzərində işləyir. Ancaq "sadə" "asan tənzimləmək" demək deyil: yanlış təyin edilmiş PID yellənəcək, aşıb, gec oturacaq və ya tamamilə qeyri-sabit olacaq. Süni intellekt burada dəyərli köməkçidir: o, PID şərtlərini izah edir, tənzimləmə metodları ilə bələdçilik edir, tipik tələlərin diaqnozunu qoyur və tənzimləmə kodunu yazır. Bununla belə, son tənzimləmə sisteminizin fiziki davranışına baxılaraq edilir və sabitlik qərarı mühəndisə aiddir. Bu bölmədə biz AI ilə PID tələlərini necə quraşdırmaq, sazlamaq və yoxlamaq barədə danışırıq.

PID-in üç şərti

PID səhv siqnalına (e = hədəf - ölçülür) üç şəkildə cavab verir:

müddət

Nəyə baxır?

Effekt

həddindən artıq

P (mütənasib)

cari səhv

sürətli cavab

Salınma, daimi xəta

I (inteqral)

Yığılmış keçmiş səhv

Daimi xətanı sıfırlayır

həddi aşmaq, sarsıdılma, salınma

D (törəmə)

Səhvlərin dəyişmə dərəcəsi

Söndürmə həddindən artıqlığı azaldır

Səs-küyü gücləndirin

Şifahi xülasə: P "indi nə qədər uzağam", mən "nə qədər uzaqdayam", D "nə qədər sürətlə yaxınlaşıram" suallarına cavab verir. Yaxşı bir nəzarətçi hər üçünü balanslaşdırır.

sinif 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 selfrorer, özünü hesablamaq.0, Self. ölçülür, dt): səhv = hədəf - ölçülür # P p = öz-özünə.Kp * səhv # I -- qurma mühafizəsi ilə self.integral += səhv * dt i = self.Ki * self.integral # D - törəmə səs-küyə həssas d = self.Kd * (səhv - self.previous_error) / dt self.previous_error) / dt self.previous_error = özünün.previous_səhv = dt +çıxış limiti windup if output > self.output_max: output = self.out_max self.integral -= error * dt # anti-windup: inteqralı ləğv elif çıxışı < self.output_min: output = self.output_min self.integral -= xəta * dt çıxışı qaytarın

Bu kod "təlim PID" deyil, istehsal məntiqinə yaxın bir skeletdir: o, çıxış doyma və anti-windup daxildir. Süni intellekt tərəfindən verilən bir çox sadə PID-lər bu iki mühafizədən yan keçir; Bunlar olmadan, aktuator həddi çatdıqda, inteqral şişəcək və sistem gözlənilmədən aşıb.

İpucu: AI-dan PID üçün soruşduqda "çıxış doyma və anti-windup əlavə edin, törəmə termininə ölçüdə törəmə tətbiq edin" deyin. Bu üç əlavə dərslik PID-ni sahə PID-ə çevirir.

İnteqral Windup və Törəmə Səs-küyü

İki klassik tələ PID uğursuzluğunun ən çox yayılmış səbəbləridir:

İnteqral sarğı: Ötürücü doyduğu zaman (məsələn, mühərrik artıq tam gücdədir) xəta davam edir və inteqral termini böyüməyə davam edir. Bu şişirdilmiş inteqral, sistem hədəfə çatdıqda böyük bir həddi aşır. Həll yolu: çıxış doymuş olduqda inteqralı dayandırmaq və ya geri çəkmək (yuxarıdakı kodda nümayiş etdirilən anti-windup).

Törəmə səs-küy: D termini xətanın törəməsini alır; Səs-küylü ölçmənin törəməsi daha səs-küylüdür və ötürücüyü titrəyəcək. Həll üsulları: ölçüdən törəmənin alınması (xəta yerinə ölçmə törəməsi), törəmə termininə aşağı keçid filtrinin əlavə edilməsi.

# Törəmə səs-küyün azaldılması: ölçmə törəməsi + filterd_raw = -(ölçülmüş - self.previous_measured) / dt səhv əvəzinə

Süni intellekt bu tələləri müəyyən etməkdə yaxşıdır; "Mənim PID-im hədəfə çatdıqda çox aşır" deyirsinizsə, o, söndürməyi tövsiyə edir. Lakin siz düzəlişin sisteminizdə işlədiyini ölçməklə yoxlayırsınız.

Ziegler-Nichols ilə təyinat

Sıfırdan qazanc tapmaq üçün klassik üsul (Kp, Ki, Kd) Ziegler-Nichols-dur. Onun mahiyyəti: yalnız P-dən başlayaraq sistem davamlı rəqsə keçənə qədər Kp-nin artırılması; Cədvəldən Kp, Ki, Kd-ni kritik qazanc Ku və bu nöqtədə salınma dövrü Tu ilə hesablayın.

nəzarətçi

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 addımları (AI tərəfindən hazırlanacaq plan): 1. Ki=0, Kd=0 götürün. Sadəcə P.2-ni işə salın. Stabil, davamlı rəqs başlayana qədər Kp-ni YAVAŞ-ARTIRIN.3. Bu Kp = Ku (kritik qazanc), rəqs dövrü = Tu.4. Cədvəldən Kp, Ti, Td hesablayın; Ki = Kp/Ti, Kd = Kp*Td.5. Bu dəyərlərlə başlayın, sonra eksperimental düzəlişlər edin.

Diqqət: Ziegler-Nichols sistemi qəsdən sabitlik həddinə (davamlı salınma) gətirir. Bunu real aparatda edərkən mexaniki gərginlik, həddindən artıq cərəyan və təhlükə riski var; Mümkünsə, bunu əvvəlcə simulyasiyada edin, sonra aşağı güc limiti və aparatda E-stop ilə işləyin. AI tərəfindən təklif olunan Ku başlanğıc nöqtəsidir, sisteminizdə ölçülür və yoxlanılır.

AI-Assisted Diaqnostika

PID davranışını AI-yə təsvir etməklə diaqnoz edə bilərsiniz. Simptom → mümkün səbəbin xəritəsi:

simptom

mümkün səbəb

AI təklif edəcək istiqamət

yavaş oturma

Kp/Ki aşağı

kp artırmaq

Daimi səhv

Mən yoxam və ya çox aşağıyam

Əlavə et/artır

Həddini aşmaq + salınım

Kp/Ki yüksək, D yoxdur

Kd əlavə edin, Ki azaldın

Aktuator titrəyir

törəmə səs-küy

Filtrləyin/azaltın D

Böyük aşdığınız zaman

inteqral bağlama

Anti-windup əlavə edin

Zəif Tələb / Güclü Tələb

ZƏFS:"PID qazancını verin."(Hansı sistem? Davranış necədir? Ölçmələr varmı? Təsadüfi rəqəmlər gəlir.)GÜÇLÜ:"Mən DC motor sürətinə nəzarət üçün PID-i tənzimləyirəm. Hazırda Kp=2, Ki=0.5, Kd=0. O, addım girişində 35%-i aşır və böyük bir hədəfə çatdıqda, onu vurmaq çox vaxt alır. 100 Hz-dir. "Hansı istiqaməti dəyişməyi təklif et və həddi aşırma inteqral olub-olmadığını yoxlamaq üçün mənə deyin" qazanan bu simptomlardan mümkün səbəbləri sadalayın.

Mini Çanta

Nəzarət mühəndisi Kerem ekstruderin temperatur nəzarətini tənzimləyir. Süni intellekt tərəfindən təklif edilən qazanclarla sistem hədəfə tez çatır, lakin hər təyin edilmiş dəyişiklikdə böyük həddi aşır və yavaş-yavaş yerləşir. Kerem simptomu AI-ya izah edir; Qızdırıcı bir müddət tam gücdə (doymuş) qaldığı üçün AI inteqral sönmədən şübhələnir. Kerem PID koduna anti-windup əlavə edir və aşırma əhəmiyyətli dərəcədə azalır. Ancaq indi qızdırıcının çıxışında kiçik bir titrəmə var; O, bunu temperatur sensorunun səs-küyünü gücləndirən D termini ilə əlaqələndirir və törəməyə aşağı keçid filtri əlavə edir. Nəhayət, o, təxminən Ziegler-Nichols ilə qazancları təsdiqləyir və eksperimental incə tənzimləməni həyata keçirir. Süni intellektdə sürətli diaqnoz var; Lakin Kerem faktiki addım cavabını ölçməklə hər bir düzəlişi təsdiqlədi - istər korreksiya düzəldilsin, istərsə də titrəmə yox oldu, bunu yalnız qrafik olaraq görmək mümkün idi.

Ümumi Səhvlər

  • PID-ə çıxış doyma və anti-sönmə əlavə edilməməsi və ötürücü limitində böyük həddi aşması.
  • Səs-küylü ölçmənin törəməsindən törəmənin alınması və ötürücünün titrəməsi.
  • Dt-nin sabit olduğunu fərz etsək, seçmə müddəti dəyişir.
  • Təhlükəsizlik tədbirləri olmadan aparat üzərində Ziegler-Nichols rəqs testinin aparılması.
  • Süni intellekt tərəfindən yaradılan qazancları sistemə aid yoxlama olmadan “yekun” kimi qəbul etmək.
  • Çox böyük addımlarla tək qazancın dəyişdirilməsi və sistemi qeyri-sabitliyə itələmək.

Xülasə

  • PID; P (cari xəta), I (yığılmış xəta), D (səhv dəyişmə sürəti) ilə reaksiya verir.
  • Sahə PID çıxış doyma, anti-windup və törəmə filter daxil olmalıdır.
  • İnteqral sarma böyük həddi aşır, törəmə səs-küy aktuator vibrasiyasına səbəb olur.
  • Ziegler-Nichols qazanmağa başlayır; Aparatda təhlükəsizlik tədbirləri ilə həyata keçirilir.
  • AI simptomdan səbəbə doğru diaqnozda sürətlidir; Düzəliş ölçmə ilə təsdiqlənir.
  • dt faktiki ölçülür; Qazanc dəyişiklikləri kiçik addımlarla və müşahidələrlə həyata keçirilir.

Tətbiq tapşırığı

Sistem seçin (əsl mühərrik/qızdırıcı və ya Python-da sadə birinci/ikinci dərəcəli model) və süni intellektə doyma + anti-windup ilə PID sinifini yaratsın. Sonra: (1) yalnız P-dən başlayaraq və Kp-ni artırmaqla salınım davranışını müşahidə edin, (2) daimi xətanı aradan qaldırmaq üçün Ki əlavə edin və həddi aşmanın necə artdığına baxın, (3) külək əleyhinə funksiyanı yandırıb-söndürməklə böyük həddi aşmağa təsiri müqayisə edin. Hər addımda addım cavabını tərtib edin və hansı qazancın hansı davranışı dəyişdiyini qeyd edin. Ziegler-Nichols-dan əldə etdiyiniz qazancları özünüz tapdığınız qazanclarla müqayisə edin.