бирдиги 5 / 9

Башкаруу алгоритмдери: PID жана AI колдоого алынган тюнинг

Пайдалар:

  • PID контролерунун P, I, D терминдерин жана эффекттерин туура контекст менен AIга түшүндүрүү жана колдонуу мүмкүнчүлүгү
  • Ziegler-Nichols жана эксперименталдык тюнинг ыкмаларын AI жардамы менен этап-этабы менен ишке ашыруу мүмкүнчүлүгү
  • AI сунуштарындагы интегралдык кыйроо, туунду ызы-чуу сыяктуу PID тузактарын таануу жана жок кылуу мүмкүнчүлүгү

Мештин температурасын туруктуу кармап туруу, мотордун ылдамдыгын каалаган мааниде айдоо, дрондун бурчун тең салмактоо; Алардын баарынын өзөгүндө башкаруу алгоритми турат. Алардын ичинен эң кеңири таралганы бул тармактын негизи болгон PID контроллери. PID; Бул жөнөкөй, бышык жана көйгөйлөрдүн кеңири спектринде иштейт. Бирок "жөнөкөй" "жөнөкөйлөө" дегенди билдирбейт: туура эмес орнотулган PID термелет, ашып кетет, кеч отурат же таптакыр туруксуз болуп калат. Жасалма интеллект бул жерде баалуу жардамчы болуп саналат: ал PID терминдерин түшүндүрөт, тюнинг ыкмалары боюнча жетектейт, типтүү тузактарга диагноз коёт жана тюнинг кодун жазат. Бирок, акыркы тууралоо тутумуңуздун физикалык жүрүм-турумуна карап жасалат жана туруктуулук чечими инженерге таандык. Бул бөлүмдө биз AI менен PID тузактарды кантип орнотууну, тууралоону жана текшерүүнү карайбыз.

PIDдин үч шарты

PID ката сигналына (e = максат - өлчөнгөн) үч жол менен жооп берет:

мөөнөт

Ал эмнени карайт?

Эффект

экстремалдуу

P (пропорционалдуу)

учурдагы ката

тез жооп

Термелүү, туруктуу ката

I (интегралдык)

Топтолгон мурунку ката

Туруктуу катаны баштапкы абалга келтирет

аша чаап кетүү, айнуу, термелүү

D (туунду)

Катанын өзгөрүү ылдамдыгы

Демпинг ашыкча соккуну азайтат

ызы-чууну күчөтүү

Оозеки корутунду: П "мен азыр канчалык алысмын", мен "канча убакыт жокмун", D "канчалык тез жакындап жатам" деген суроолорго жооп берет. Жакшы контролер үчөөнү тең тең салмактайт.

класс 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. өлчөнгөн, dt): ката = максаттуу - өлчөнгөн # P p = self.Kp * ката # I -- windup коргоо менен self.integral += ката * dt i = self.Ki * self.integral # D -- туунду ызы-чуу сезгич d = self.Kd * (ката - self.previous_error) / dt self.previous_error) / dt self.previous_error = dt +previous out # ката windup if output > self.output_max: output = self.out_max self.integral -= ката * dt # анти-windup: интегралды жокко чыгаруу elif чыгаруу < self.output_min: output = self.output_min self.integral -= ката * dt кайтаруу чыгаруу

Бул код "окутуу PID" эмес, өндүрүш логикасына жакын скелет: ал өндүрүштүн каныккандыгын жана анти-виндупты камтыйт. AI тарабынан берилген көптөгөн жөнөкөй PIDлер бул эки коргоону айланып өтүшөт; Аларсыз, кыймылдаткыч өзүнүн чегине жеткенде, интеграл шишип, система күтүлбөгөн жерден ашып кетет.

Кеңеш: AIдан PIDди сураганда "чыгаруунун каныккандыгын жана анти-windup кошуңуз, туунду терминге өлчөө боюнча туунду колдонуңуз" деп айтыңыз. Бул үч кошумча окуу китебинин PIDди талаа PIDине айлантат.

Интегралдык Windup жана Туунду ызы-чуу

Эки классикалык тузактар PID иштебей калышынын эң көп таралган себептери болуп саналат:

Интегралдык өчүрүү: кыймылдаткыч каныкканда (мисалы, мотор толук кубаттуулукта болсо) ката кайталанат жана интегралдык термин өсө берет. Бул толтурулган интегралдык система максатка жеткенде чоң ашып кетүүгө алып келет. Чечим: чыгаруу каныккан кезде интегралды токтотуу же артка жылдыруу (жогорудагы коддо көрсөтүлгөн антивиндуп).

Туунду ызы-чуу: D термини катанын туундусун алат; Ызы-чуу өлчөөнүн туундусу бир топ ызы-чуу болуп, кыймылдаткычты титиретет. Чечимдер: өлчөөдөн туунду алуу (катанын ордуна өлчөөнүн туундусу), туунду терминге төмөн өтүүчү чыпка кошуу.

# Туунду ызы-чууну азайтуу: өлчөө туунду + чыпкаланган_raw = -(өлчөнгөн - self.previous_measured) / dt ката ордуна

AI бул тузактарды аныктоодо жакшы; "Менин PID максатка жеткенде өтө ашып кетет" десеңиз, ал өчүрүүнү сунуштайт. Бирок сиз оңдоо тутумуңузда иштээрин өлчөө менен текшересиз.

Ziegler-Nichols менен орнотуу

Нөлдөн баштап пайда табуу үчүн классикалык ыкма (Kp, Ki, Kd) Зиглер-Никольс болуп саналат. Анын маңызы: P менен гана башталып, система туруктуу термелүүгө өткөнгө чейин Kp жогорулатуу; Таблицадан Kp, Ki, Kd критикалык пайда Ku жана бул чекиттеги термелүү мезгили Tu менен эсептегиле.

контролер

кп

Ти

Td

П.

0,5·Ku

П.И.

0.45·Ku

Tu/1.2

PID

0,6·Ku

Ту/2

Tu/8

Зиглер-Никольс кадамдары (план AI тарабынан түзүлөт):1. Ки=0, Кд=0 алгыла. Жөн эле P.2 иштетиңиз. Туруктуу, үзгүлтүксүз термелүү башталганга чейин Кпны АКЫРЫН жогорулатыңыз.3. Бул Кп = Ку (критикалык пайда), термелүү мезгили = Ту.4. Таблицадан Kp, Ti, Td эсептегиле; Ki = Kp/Ti, Kd = Kp*Td.5. Бул баалуулуктардан баштаңыз, андан кийин эксперименталдык өзгөртүүлөрдү жасаңыз.

Абайлаңыз: Ziegler-Nichols атайылап системаны туруктуулук чегине (туруктуу термелүү) алып келет. Чыныгы аппаратурада муну жасаганда механикалык чыңалуу, ашыкча ток жана коркунуч пайда болот; Мүмкүн болсо, адегенде симуляцияда жасаңыз, андан кийин кубаттын аз чеги менен иштеңиз жана аппараттык камсыздоодо E-stop. AI тарабынан сунушталган Ku - баштапкы чекит, ал системаңызда өлчөнөт жана текшерилет.

AI-жардам диагностикасы

PID жүрүм-турумун AIга сүрөттөп диагноз коюуга болот. Симптом → мүмкүн болгон себептерди аныктоо:

симптом

мүмкүн болгон себеп

багыт AI сунуш кылат

жай отуруу

Kp/Ki төмөн

кп жогорулатуу

Туруктуу ката

Мен жокмун же өтө төмөн

Ки кошуу/көбөйтүү

Ашып кетүү + термелүү

Kp/Ki жогорку, жок D

Kd кошуңуз, Ki азайтыңыз

Актуатор титиреп жатат

туунду ызы-чуу

Чыпкалоо/кичирейтүү D

Чоң чекке жеткенде

интегралдык айлануу

Анти-windup кошуу

Алсыз тездик / Күчтүү эскертүү

АЛСЫЗ:"PID утуштарын бериңиз."(Кайсы система? Жүрүм-туруму кандай? Кандайдыр бир өлчөөлөр барбы? Кокус сандар келип жатат.)КҮЧТҮҮ:"Мен DC кыймылдаткычтын ылдамдыгын көзөмөлдөө үчүн PIDди тууралап жатам. Учурда, Kp=2, Ki=0,5, Kd=0. Ал кадам киргизүүдө 35% ашып кетет жана ал экинчи максатка жеткенде, ал көп убакыт талап кылынат. 100 Гц болуп саналат. Бул симптомдордон пайда болгон мүмкүн болгон себептерди тизмектеп бериңиз: "Мен аны кайсы багытка өзгөртүү керектигин сунуштаңыз жана ашып кетүү интегралдык кыйроо экендигин кантип текшерүү керектигин айтыңыз."

Mini Case

Инженер-контролдоочу Керем экструдердин температурасын жөнгө салат. AI тарабынан сунушталган жетишкендиктер менен система максатка тез жетет, бирок ар бир коюлган өзгөртүүдө ал чоң чегинен чыгып, акырындык менен орнойт. Керем AI үчүн симптомду түшүндүрөт; AI интегралдык өчүрүүдөн шектенет, анткени жылыткыч бир аз убакытка чейин толук кубаттуулукта (каныккан) калат. Керем PID кодуна анти-windup кошот жана ашып кетүү кыйла азаят. Бирок азыр жылыткычтын розеткасында бир аз бүлбүлдөгөн; Ал муну температура сенсорунун ызы-чуусун күчөтүүчү D терминине байланыштырат жана туундуга төмөн өткөрүүчү чыпка кошот. Акыр-аягы, ал Ziegler-Nichols менен жетишкендиктерди болжолдуу түрдө ырастайт жана эксперименталдык тактоолорду жүргүзөт. AI тез диагностикага ээ; Бирок Керем ар бир оңдоп-түзөөнү ырастап, иш жүзүндөгү кадамдын жообун өлчөө менен ырастады — кыйроо оңдолдубу, же бүлбүлдөп кеттиби, аны графикалык түрдө гана көрүүгө болот.

Жалпы каталар

  • PIDге чыгуунун каныккандыгын жана анти-желпөөнү кошо албай, кыймылдаткычтын чегинен чоң ашып кетүү.
  • ызы-чуу өлчөө туундусун алуу жана кыймылдаткычты титирөө.
  • dt туруктуу деп кабыл алуу, ал эми тандап алуу мезгили өзгөрүп турат.
  • Зиглер-Никольс термелүү сынагын коопсуздук чараларысыз аппаратурада аткаруу.
  • AI тарабынан түзүлгөн кирешени системага тиешелүү текшерүүсүз "акыркы" катары кабыл алуу.
  • Өтө чоң кадамдар менен бир пайданы өзгөртүү жана системаны туруксуздукка түртүү.

Кыскача айтканда

  • PID; Ал P (учурдагы ката), I (топтолгон ката), D (ката өзгөрүү ылдамдыгы) менен реакция кылат.
  • Талаа PID чыгууну каныктыруу, анти-windup жана туунду чыпкаларды камтышы керек.
  • Интегралдык винт чоң ашып кетүү, туунду ызы-чуу кыймылдаткычтын титирөөсүнө себеп болот.
  • Ziegler-Nichols пайда баштоо үчүн берет; Бул аппараттык коопсуздук чаралары менен ишке ашырылат.
  • AI симптомдон себепке чейин тез диагностикаланат; Түзөтүү өлчөө жолу менен текшерилет.
  • dt реалдуу өлчөнгөн; Киреше өзгөртүүлөр кичинекей кадамдар жана байкоолор менен жүргүзүлөт.

Колдонмо тапшырмасы

Системаны тандаңыз (чыныгы мотор/жылыткыч же Pythonдогу жөнөкөй биринчи/экинчи тартиптеги модель) жана AI каныккандык + анти-виндуп менен PID классын түзсүн. Андан кийин: (1) термелүүнүн жүрүм-турумун P менен баштап жана Kp жогорулатуу аркылуу байкаңыз, (2) туруктуу катаны жоюу үчүн Ki кошуңуз жана ашып кетүү кандайча көбөйөрүн көрүңүз, (3) шамалга каршы күйгүзүү жана өчүрүү аркылуу чоң ашып кетүүнүн таасирин салыштырыңыз. Ар бир кадамдагы жооптун графигин түзүңүз жана кайсы пайда кандай жүрүм-турумду өзгөртөөрүн белгилеңиз. Зиглер-Николстун жетишкендиктерин өзүңүз тапкан жетишкендиктер менен салыштырыңыз.