Faida:
- Uwezo wa kuelezea na kutumia masharti ya P, I, D na athari za kidhibiti cha PID kwa AI na muktadha sahihi.
- Uwezo wa kutekeleza Ziegler-Nichols na njia za kurekebisha majaribio hatua kwa hatua kwa msaada wa AI.
- Uwezo wa kutambua na kuondoa mitego ya PID kama vile upepo muhimu, kelele inayotokana na mapendekezo ya AI
Kuweka joto la tanuri mara kwa mara, kuendesha kasi ya motor kwa thamani inayotakiwa, kusawazisha angle ya drone; Katika moyo wa wote ni algorithm ya kudhibiti. Ya kawaida zaidi ya haya ni kidhibiti cha PID, ambacho ni uti wa mgongo wa tasnia. PID; Ni rahisi, imara na inafanya kazi kwa matatizo mbalimbali. Lakini "rahisi" haimaanishi "rahisi kusanikisha": PID iliyowekwa vibaya itazunguka, kuzidisha, kukaa kwa kuchelewa, au kutokuwa thabiti kabisa. Akili Bandia ni msaidizi muhimu hapa: inafafanua masharti ya PID, miongozo kupitia njia za kurekebisha, inatambua mitego ya kawaida na inaandika msimbo wa kurekebisha. Hata hivyo, marekebisho ya mwisho hufanywa kwa kuangalia tabia ya kimwili ya mfumo wako na uamuzi wa utulivu ni wa mhandisi. Katika kitengo hiki tunashughulikia jinsi ya kusakinisha, kurekebisha, na kuthibitisha mitego ya PID kwa kutumia AI.
Masharti matatu ya PID
PID hujibu ishara ya makosa (e = lengo - kipimo) kwa njia tatu:
muda
Anaangalia nini?
Athari
katika uliokithiri
P ( sawia)
kosa la sasa
majibu ya haraka
Oscillation, kosa la kudumu
Mimi (muhimu)
Hitilafu iliyokusanywa hapo awali
Huweka upya hitilafu ya kudumu
overshoot, windup, oscillation
D (derivative)
Kiwango cha mabadiliko ya hitilafu
Damping hupunguza overshoot
Kuongeza kelele
Muhtasari wa maneno: P anajibu maswali "niko umbali gani sasa", "nimekuwa mbali kwa muda gani", D "ninakaribia kasi gani". Mdhibiti mzuri husawazisha zote tatu.
darasa 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.integral = 0.0 self. kipimo, dt): kosa = lengo - kipimo # P p = self.Kp * kosa # I -- self.integral with windup protection += error * dt i = self.Ki * self.integral # D -- derivative kelele nyeti d = self.Kd * (hitilafu - self.previous_error) / dt kikomo + itilafu iliyotangulia = kosa = kosa = kosa = kosa = kosa windup ikiwa pato > self.output_max: output = self.out_max self.integral -= error * dt # anti-windup: tengua pato muhimu la elif < self.output_min: output = self.output_min self.integral -= error * dt return output
Msimbo huu sio "PID ya mafunzo", lakini kiunzi kilicho karibu na mantiki ya uzalishaji: inajumuisha kueneza kwa matokeo na kuzuia upepo. PID nyingi rahisi zinazotolewa na AI hupita ulinzi huu mbili; Bila yao, wakati actuator kufikia kikomo chake, muhimu itakuwa kuvimba na mfumo itakuwa overshoot bila kutarajia.
Kidokezo: Unapouliza AI ya PID sema "ongeza uenezaji wa pato na kizuia upepo, tumia derivative kwenye kipimo kwa neno derivative". Nyongeza hizi tatu hubadilisha PID ya kiada kuwa PID ya shamba.
Upepo Muhimu na Kelele Inayotoka
Mitego miwili ya kawaida ni sababu za kawaida za kushindwa kwa PID:
Ufungaji Muhimu: Wakati kianzishaji kinapoenea (k.m. injini tayari iko katika nguvu kamili) hitilafu inaendelea na neno muhimu linaendelea kukua. Muunganisho huu uliochangiwa husababisha msongamano mkubwa wakati mfumo unafikia lengo. Suluhisho: kusimamisha au kurudisha kiunga mkono wakati pato limejaa (kinga-windup, iliyoonyeshwa kwenye nambari iliyo hapo juu).
Kelele derivative: Neno D huchukua derivative ya kosa; Derivative ya kipimo cha kelele ni kelele zaidi na itatetemesha kianzishaji. Suluhisho: kuchukua derivative kutoka kwa kipimo (derivative ya kipimo badala ya kosa), na kuongeza kichujio cha chini cha kupita kwa neno derivative.
# Kupunguza kelele inayotokana na kipimo: derivative ya kipimo + iliyochujwa_mbichi = -(kipimo - self.previous_measured) / dt badala ya makosa
AI ni nzuri katika kutambua mitego hii; Ukisema "PID yangu hupanda sana inapofikia lengo", inapendekeza kumalizia. Lakini unathibitisha kwa kupima ikiwa urekebishaji unafanya kazi kwenye mfumo wako.
Kuweka na Ziegler-Nichols
Mbinu ya kawaida ya kutafuta faida (Kp, Ki, Kd) kutoka mwanzo ni Ziegler-Nichols. Kiini chake: kuanzia P pekee na kuongeza Kp hadi mfumo unapoingia kwenye oscillation endelevu; Piga hesabu Kp, Ki, Kd kutoka kwa jedwali ukitumia faida muhimu Ku na kipindi cha oscillation Tu katika hatua hii.
mtawala
kp
Ti
Td
P.
0.5 · Ku
-
-
P.I.
0.45 · Ku
Tu/1.2
-
PID
0.6 · Ku
Tu/2
Tu/8
Hatua za Ziegler-Nichols (mpango utafanywa na AI):1. Chukua Ki=0, Kd=0. Endesha tu P.2. ongeza Kp polepole hadi msisimko thabiti na endelevu uanze.3. Kp hii = Ku (faida muhimu), kipindi cha oscillation = Tu.4. Kuhesabu Kp, Ti, Td kutoka kwa meza; Ki = Kp/Ti, Kd = Kp*Td.5. Anza na maadili haya, kisha ufanye mabadiliko ya majaribio.
Tahadhari: Ziegler-Nichols kwa makusudi huleta mfumo kwa kikomo chake cha utulivu (oscillation endelevu). Kuna hatari ya matatizo ya mitambo, overcurrent na hatari wakati wa kufanya hivyo kwenye vifaa halisi; Ikiwezekana, fanya kwa kuiga kwanza, kisha ufanyie kazi na kikomo cha chini cha nguvu na E-stop katika vifaa. Ku iliyopendekezwa na AI ni mahali pa kuanzia, inapimwa na kuthibitishwa katika mfumo wako.
Uchunguzi unaosaidiwa na AI
Unaweza kugundua tabia ya PID kwa kuielezea kwa AI. Dalili → sababu inayowezekana ya kuchora ramani:
dalili
sababu inayowezekana
Mwelekeo wa AI utapendekeza
kukaa polepole
Kp/Ki chini
kuongeza kp
Hitilafu ya kudumu
Sipo au niko chini sana
Ki kuongeza/ongeza
Overshoot + oscillation
Kp/Ki juu, hakuna D
Ongeza Kd, Punguza Ki
Kitendaji kinatetemeka
kelele ya derivative
Chuja/punguza D
Unapofikia kuzidi kubwa
mwisho muhimu
Ongeza anti-windip
Uhamasishaji dhaifu / Uhamasishaji Wenye Nguvu
DHAIFU:"Nipe faida za PID."(Mfumo upi? Tabia ikoje? Je, kuna vipimo vyovyote? Nambari za nasibu huja.)STRONG:"Ninarekebisha PID kwa udhibiti wa kasi wa motor ya DC. Hivi sasa, Kp=2, Ki=0.5, Kd=0. Inazidi 35% kwenye pembejeo ya hatua na inapofikia lengo, kuna muda mrefu wa kusuluhisha 0 kwa sekunde 0. Hz. Orodhesha sababu zinazowezekana kutokana na dalili hizi, ambazo hupata "Pendekeza ni mwelekeo gani ninaopaswa kuubadilisha na uniambie jinsi ya kupima ikiwa risasi iliyozidi ni hatua muhimu."
Kesi Ndogo
Mhandisi wa udhibiti Kerem hurekebisha udhibiti wa halijoto wa kitoa nje. Kwa mafanikio yaliyopendekezwa na AI, mfumo hufikia lengo haraka, lakini katika kila mabadiliko ya seti hufanya overshoot kubwa na polepole hukaa chini. Kerem anaelezea dalili kwa AI; AI inatilia shaka uvujaji wa ziada kwa sababu hita hubakia kwa nguvu kamili (iliyojaa) kwa muda. Kerem huongeza kinga dhidi ya msimbo wa PID na msimbo wa kupindukia hupungua sana. Lakini sasa kuna flicker kidogo kwenye plagi ya heater; Anahusisha hili na neno la D linalokuza kelele ya kihisi joto na kuongeza kichujio cha kupitisha chini kwa derivative. Hatimaye, takribani inathibitisha mafanikio na Ziegler-Nichols na hufanya urekebishaji mzuri wa majaribio. AI ina utambuzi wa haraka; Lakini Kerem alithibitisha kila masahihisho kwa kupima jibu halisi la hatua—ikiwa mwisho ulirekebishwa au kuteleza kumetoweka, inaweza kuonekana tu kwa mchoro.
Makosa ya Kawaida
- Imeshindwa kuongeza uenezaji wa pato na kizuia-windup kwenye PID na kukumbana na mlipuko mkubwa katika kikomo cha kianzishaji.
- Kuchukua derivative kutoka kwa derivative ya kipimo cha kelele na vibrating actuator.
- Kwa kudhani dt ni mara kwa mara, ilhali muda wa sampuli hutofautiana.
- Kufanya jaribio la oscillation la Ziegler-Nichols kwenye maunzi bila tahadhari za usalama.
- Kukubali mapato yanayotokana na AI kama "mwisho" bila uthibitishaji wa mfumo mahususi.
- Kubadilisha faida moja kwa hatua kubwa sana na kusukuma mfumo katika kutokuwa na utulivu.
Kwa muhtasari
- PID; Humenyuka na P (kosa la sasa), I (kosa lililokusanywa), D (kiwango cha mabadiliko ya makosa).
- Sehemu ya PID inapaswa kujumuisha uenezaji wa pato, kichujio cha kuzuia upepo na derivative.
- Integral windup kubwa overshoot, kelele derivative husababisha actuator vibration.
- Ziegler-Nichols anatoa kuanza kupata; Inatekelezwa na hatua za usalama katika vifaa.
- AI ni haraka katika utambuzi kutoka kwa dalili hadi sababu; Marekebisho yanathibitishwa na kipimo.
- dt kipimo halisi; Mabadiliko ya mapato yanafanywa kwa hatua ndogo na uchunguzi.
Jukumu la maombi
Chagua mfumo (motor/heater halisi au muundo rahisi wa kuagiza wa kwanza/pili katika Python) na ufanye AI itoe darasa la PID na kueneza + anti-windup. Kisha: (1) chunguza tabia ya oscillation kwa kuanza na P pekee na kuongeza Kp, (2) ongeza Ki ili kuondoa hitilafu ya kudumu na uone jinsi overshoot inavyoongezeka, (3) kulinganisha athari kwenye overshoot kubwa kwa kuwasha na kuzima anti-windip. Panga jibu la hatua katika kila hatua na kumbuka ni faida gani inabadilisha tabia gani. Linganisha mafanikio kutoka kwa Ziegler-Nichols na mafanikio uliyopata.