Nkeji 5 / 9

Algorithms njikwa: PID na AI akwadoro ntugharị

Uru:

  • Ikike ịkọwa na itinye usoro P, I, D na mmetụta nke onye na-ahụ maka PID na AI nwere ọnọdụ ziri ezi.
  • Ikike ime Ziegler-Nichols na usoro nyocha nnwale site na nzọụkwụ site na enyemaka nke AI
  • Ikike ịmata na kpochapụ ọnyà PID dị ka ikuku ikuku, mkpọtụ mmepụta na ndụmọdụ AI.

Idobe okpomọkụ nke oven mgbe niile, na-anya ụgbọ ala ọsọ ọsọ na uru a chọrọ, na-edozi akụkụ nke drone; N'ime obi ha niile bụ algọridim njikwa. Nke kachasị n'ime ndị a bụ onye na-ahụ maka PID, nke bụ ọkpụkpụ azụ nke ụlọ ọrụ ahụ. PID; Ọ dị mfe, siri ike ma na-arụ ọrụ na nsogbu dịgasị iche iche. Mana "dị mfe" apụtaghị "dị mfe ịme ụda": PID nke edobere na-ezighi ezi ga-emegharị emegharị, gafechaa, nọdụ ọdụ n'oge, ma ọ bụ ghọọ onye na-adịghị akwụ ụgwọ kpamkpam. Ọgụgụ isi bụ ihe enyemaka bara uru ebe a: ọ na-akọwa okwu PID, na-eduzi usoro nlegharị anya, na-achọpụta ọnyà ndị na-ahụkarị ma na-ede koodu nlegharị anya. Agbanyeghị, a na-eme mgbanwe ikpeazụ site na ilele omume anụ ahụ nke sistemu gị na mkpebi nkwụsi ike bụ nke injinia. Na ngalaba a anyị na-ekpuchi otu esi etinye, na-akụ, na nyochaa ọnyà PID na AI.

Usoro atọ nke PID

PID na-aza mgbama njehie (e = target - tụrụ) n'ụzọ atọ:

okwu

Gịnị ka ọ na-ele?

Mmetụta

na oke

P (nke nhata)

njehie dị ugbu a

ngwa ngwa nzaghachi

Oscillation, njehie na-adịgide adịgide

M (nke bụ isi)

Achịkọbara mperi gara aga

Tọgharịa njehie na-adịgide adịgide

overshoot, windup, oscillation

D (mmepụta)

Ọnụego mgbanwe nke njehie

Damping na-ebelata oke iwe

Mee ka mkpọtụ ahụ dịkwuo elu

Nchịkọta ọnụ: P zara ajụjụ ndị a "kedu ka m dị ugbu a", m "ogologo oge ka m na-apụ", D "ole ka m na-abịarute ngwa ngwa". Ezigbo onye njikwa na-edozi ihe atọ ahụ.

klas PID: def __init__ (onwe, Kp, Ki, Kd, mmepụta_min = -100, mmepụta_max = 100): self.Kp, self.Ki, self.Kd = Kp, Ki, Kd self.out_min, self.out_max = mmepụta_min, mmepụta_max onwe.integral = 0.0 onwe atụle (0.0) onwe. njehie = target - tụrụ # P p = self.Kp * njehie # I --self.integral na windup nchedo += njehie * dt i = self.Ki * self.integral # D --derivative noise sensitive d = self.Kd * (njehie - self.previous_error) / dt self.previous_error = njehie pụta = p + i + d # mmepụta nke onwe> mmepụta ma ọ bụrụ na mmepụta ya. self.out_max self.integral -= njehie * dt # mgbochi-windup: megharia integral elif mmepụta <self.output_min: mmepụta = self.output_min self.integral -= njehie * dt nloghachi mmepụta

Koodu a abụghị “PID ọzụzụ” kama ọ bụ ọkpụkpụ dị nso na mgbagha mmepụta: ọ gụnyere saturation mmepụta na mgbochi ikuku. Ọtụtụ PID dị mfe nke AI nyere na-agafe nchebe abụọ a; Na-enweghị ha, mgbe actuator rutere njedebe ya, ihe ahụ ga-aza ma usoro ahụ ga-agafe na-atụghị anya ya.

NDỤMỌDỤ: Mgbe ị na-arịọ AI maka PID, kwuo "gbakwunye saturation mmepụta na mgbochi windo, tinye usoro na nha na okwu mmepụta". Ihe mgbakwunye atọ a tụgharịrị PID akwụkwọ ọgụgụ gaa na PID ubi.

Integral Windup na Mkpọtụ Mwepụta

Ọnyà abụọ kpochapụwo bụ ihe na-ebutekarị ọdịda PID:

Integral windup: Mgbe actuator saturates (dịka moto adịlarị ike zuru oke) njehie ahụ na-aga n'ihu na okwu mkpakọ na-aga n'ihu na-eto eto. Ngwakọta a na-ebuwanye ibu na-eduga n'ọtụtụ buru ibu mgbe usoro ahụ ruru ebumnuche. Ngwọta: Nkwụsị ma ọ bụ tụgharịa azụ ihe mejupụtara mgbe mmepụta juputara (mgbochi windo, egosiri na koodu dị n'elu).

Mkpọtụ ihe: Okwu D na-ewe mpụta nke njehie ahụ; Mwepụta nke nha mkpọtụ na-eme mkpọtụ karịa ma ọ ga-amanye onye na-eme mkpọtụ. Ngwọta: na-ewere mwepụta site na nha (mwepụta nke nha kama njehie), na-agbakwunye nzacha ngafe dị ala na okwu mpụta.

# Mbelata ụda mgbapụta: ihe nrụpụta + filterd_raw = -(atụpụtara - self.previous_measured) / dt kama njehie

AI dị mma n'ịchọpụta ọnyà ndị a; Ọ bụrụ na ịsị "PID m na-agbapụ nke ukwuu mgbe ọ ruru ebumnuche", ọ na-akwado ikuku. Mana ị na-enyocha site na ịlele ma ndozi ahụ na-arụ ọrụ na sistemụ gị.

Ntọala na Ziegler-Nichols

Usoro kpochapụrụ maka ịchọta uru (Kp, Ki, Kd) site na ọkọ bụ Ziegler-Nichols. Ihe kachasị mkpa ya: malite naanị na P na ịba ụba Kp ruo mgbe usoro ahụ na-abanye n'ime oscillation na-adịgide adịgide; Gbakọọ Kp, Ki, Kd site na tebụl na uru dị oke egwu Ku na oge oscillation Tu n'oge a.

njikwa

kp

Ti

Td

P.

0,5·Ku

-

-

P.I.

0,45·Ku

Tu/1.2

-

PID

0,6·Ku

Tu/2

Tu/8

Nzọụkwụ Ziegler-Nichols (atụmatụ AI ga-eme):1. Were Ki=0, Kd=0. Naanị gbaa P.2. JI nwayọọ na-amụba Kp ruo mgbe mwụgharị na-adịgide adịgide malite.3. Nke a Kp = Ku (uru dị mkpa), oge oscillation = Tu.4. Gbakọọ Kp, Ti, Td site na tebụl; Ki = Kp/Ti, Kd = Kp * Td.5. Malite na ụkpụrụ ndị a, wee mee tweaks nnwale.

Kpachara anya: Ziegler-Nichols kpachaara anya weta sistemu ahụ na oke nkwụsi ike ya (mgbatị na-adịgide adịgide). Enwere ihe ize ndụ nke nsogbu n'ibu, oke na ihe egwu mgbe ị na-eme nke a na ngwaike n'ezie; Ọ bụrụ na ọ ga-ekwe omume, buru ụzọ mee ya na simulation, wee rụọ ọrụ na oke ike dị ala na E-kwụsị na ngwaike. Ku nke AI na-atụ aro bụ mmalite, a na-atụ ya ma nyochaa ya na sistemụ gị.

Nyocha AI-enyere aka

Ị nwere ike ịchọpụta omume PID site n'ịkọwa ya na AI. Symptom → nwere ike ịkpata eserese:

akara

ihe nwere ike ime

Ntuziaka AI ga-atụ aro

nwayo nọdụ ala

Kp/Ki dị ala

mụbaa kp

Njehie na-adịgide adịgide

Anọghị m ma ọ bụ dị ala

Tinye/bawanye

Overshoot + oscillation

Kp/Ki dị elu, enweghị D

Tinye Kd, Wedata Ki

Onye na-eme ihe na-ama jijiji

ụzụ mkpọtụ

Nzacha/belata D

Mgbe ị ruru nnukwu gafere

integral windup

Tinye mgbochi-windup

Ngwa ngwa adịghị ike / Ike ngwa ngwa

NA-adịghị ike: "Nye uru PID. "(Kedu usoro? Olee otú omume si dị? Enwere nha ọ bụla? Ọnụ ọgụgụ ndị na-abịaghị.) IKE: "M na-edozi PID maka njikwa ọsọ ọsọ DC. Ugbu a, Kp = 2, Ki = 0.5, Kd = 0. Ọ na-ebufe 35% na ntinye nzọụkwụ na mgbe ọ ruru ihe mgbaru ọsọ, ọ na-ewe oge buru ibu nke abụọ. Sam na-ewe ogologo oge 0. Hz. Depụta ihe ndị nwere ike ime site na mgbaàmà ndị a, nke na-enweta "Tụnye ntụziaka m kwesịrị ịgbanwe ya ma gwa m ka m ga-esi nwalee ma overshoot bụ windup dị mkpa."

Obere Case

Onye njikwa njikwa Kerem na-edozi njikwa okpomọkụ nke onye na-apụ apụ. Site na uru ndị AI na-atụ aro, usoro ahụ na-erute ihe mgbaru ọsọ ngwa ngwa, ma na mgbanwe ọ bụla ọ na-eme ka ọ dị ukwuu ma jiri nwayọọ nwayọọ na-edozi. Kerem na-akọwa ihe mgbaàmà ahụ na AI; AI na-enyo enyo integral windup n'ihi na kpo oku na-anọgide na zuru ike (juputara) nwa oge. Kerem na-agbakwunye mgbochi-windup na koodu PID na nfefe na-ebelata nke ukwuu. Ma ugbu a enwere ntakịrị flicker na ebe a na-ekpo ọkụ; Ọ na-ekwu na nke a bụ okwu D na-eme ka mkpọtụ ihe mmetụta okpomọkụ na-agbakwụnye ma na-agbakwụnye ihe nzacha dị ala na mmepụta. N'ikpeazụ, ọ na-akwado nke ọma uru na Ziegler-Nichols ma na-eme nlegharị anya nnwale. AI nwere nyocha ngwa ngwa; Mana Kerem kwadoro mgbazi nke ọ bụla site n'ịtụ nzaghachi nzọụkwụ n'ezie-ma ọ bụrụ na agbaziri windup ma ọ bụ na ọ na-apụ apụ, a pụrụ ịhụ ya na eserese.

Mmejọ a na-emekarị

  • Enweghi ike ịgbakwunye saturation mmepụta na mgbochi-windup na PID yana inwe nnukwu ihe nfefe na oke actuator.
  • Na-ewere ihe mwepụta site na mwepụta nke nha mkpọtụ na ịma jijiji onye na-eme ihe.
  • Na-eche na dt na-adịgide adịgide, ebe oge nlele na-adịgasị iche.
  • Na-eme ule oscillation Ziegler-Nichols na ngwaike na-enweghị mkpachapụ anya nchekwa.
  • Ịnabata ego ndị AI na-enweta dị ka "ikpeazụ" na-enweghị nkwenye nke usoro.
  • Ịgbanwe otu uru na nnukwu nzọụkwụ na ịkwanye usoro n'ime enweghị ntụkwasị obi.

Na nchịkọta

  • PID; Ọ na-emeghachi omume na P (njehie dị ugbu a), M (njehie gbakọtara), D (ọnụego mgbanwe mgbanwe).
  • Ubi PID kwesịrị ịgụnye saturation mmepụta, mgbochi-windup na nzacha mmepụta.
  • Mkpịsị ọnụ nke ukwuu, mkpọtụ na-ebute ụzọ na-ebute ịma jijiji actuator.
  • Ziegler-Nichols na-amalite inweta; A na-emejuputa ya na usoro nchekwa na ngwaike.
  • AI ngwa ngwa na nchoputa site na mgbaàmà na-akpata; A na-enyocha mmezi ahụ site na nha.
  • dt n'ezie tụrụ; A na-eme mgbanwe ego na obere nzọụkwụ na nleba anya.

Ọrụ ngwa

Họrọ sistemu (ezigbo moto/ọkụ ọkụ ma ọ bụ ihe nfe nke mbụ/nke abụọ na Python) wee nwee AI wepụta klas PID nwere saturation + mgbochi-windup. Mgbe ahụ: (1) lelee omume oscillation site na ịmalite na P naanị na ịba ụba Kp, (2) gbakwunye Ki iji kpochapụ njehie na-adịgide adịgide wee hụ ka overshoot na-abawanye, (3) tụnyere mmetụta na nnukwu overshoot site na ịgbanye mgbochi-windup na gbanyụọ. Chepụta nzaghachi nzọụkwụ na nzọụkwụ ọ bụla wee mara nke uru na-agbanwe àgwà. Tụlee uru ndị Ziegler-Nichols nwetara na uru ị chọtara onwe gị.