యూనిట్ 5 / 9

నియంత్రణ అల్గోరిథంలు: PID మరియు AI మద్దతు గల ట్యూనింగ్

లాభాలు:

  • సరైన సందర్భంతో AIకి PID కంట్రోలర్ యొక్క P, I, D నిబంధనలు మరియు ప్రభావాలను వివరించే మరియు వర్తింపజేయగల సామర్థ్యం
  • AI సహాయంతో దశలవారీగా Ziegler-Nichols మరియు ప్రయోగాత్మక ట్యూనింగ్ పద్ధతులను నిర్వహించగల సామర్థ్యం
  • AI సిఫార్సులలో ఇంటిగ్రల్ విండప్, డెరివేటివ్ నాయిస్ వంటి PID ట్రాప్‌లను గుర్తించి తొలగించగల సామర్థ్యం

ఓవెన్ యొక్క ఉష్ణోగ్రతను స్థిరంగా ఉంచడం, కావలసిన విలువ వద్ద మోటారు వేగాన్ని నడపడం, డ్రోన్ కోణాన్ని సమతుల్యం చేయడం; వాటన్నింటి గుండె వద్ద నియంత్రణ అల్గోరిథం ఉంది. వీటిలో అత్యంత సాధారణమైనది PID కంట్రోలర్, ఇది పరిశ్రమకు వెన్నెముక. PID; ఇది సరళమైనది, దృఢమైనది మరియు అనేక రకాల సమస్యలపై పనిచేస్తుంది. కానీ "సింపుల్" అంటే "ట్యూన్ చేయడం సులభం" అని కాదు: తప్పుగా సెట్ చేయబడిన PID డోలనం చేస్తుంది, ఓవర్‌షూట్ చేస్తుంది, ఆలస్యంగా కూర్చుంటుంది లేదా పూర్తిగా అస్థిరంగా మారుతుంది. కృత్రిమ మేధస్సు ఇక్కడ విలువైన సహాయకుడు: ఇది PID నిబంధనలను వివరిస్తుంది, ట్యూనింగ్ పద్ధతుల ద్వారా మార్గనిర్దేశం చేస్తుంది, సాధారణ ఆపదలను నిర్ధారిస్తుంది మరియు ట్యూనింగ్ కోడ్‌ను వ్రాస్తుంది. అయినప్పటికీ, మీ సిస్టమ్ యొక్క భౌతిక ప్రవర్తనను చూడటం ద్వారా తుది సర్దుబాటు చేయబడుతుంది మరియు స్థిరత్వ నిర్ణయం ఇంజనీర్‌కు చెందినది. ఈ యూనిట్‌లో AIతో PID ట్రాప్‌లను ఎలా ఇన్‌స్టాల్ చేయాలి, ట్యూన్ చేయాలి మరియు వెరిఫై చేయాలి.

PID యొక్క మూడు నిబంధనలు

PID ఎర్రర్ సిగ్నల్‌కు (e = లక్ష్యం - కొలుస్తారు) మూడు విధాలుగా ప్రతిస్పందిస్తుంది:

పదం

అతను ఏమి చూస్తున్నాడు?

ప్రభావం

విపరీతంగా

పి (అనుపాతంలో)

ప్రస్తుత లోపం

వేగవంతమైన ప్రతిస్పందన

డోలనం, శాశ్వత లోపం

నేను (సమగ్రం)

పేరుకుపోయిన గత లోపం

శాశ్వత లోపాన్ని రీసెట్ చేస్తుంది

ఓవర్ షూట్, విండ్అప్, డోలనం

D (ఉత్పన్నం)

లోపం మార్పు రేటు

డంపింగ్ ఓవర్‌షూట్‌ను తగ్గిస్తుంది

శబ్దాన్ని విస్తరించండి

మౌఖిక సారాంశం: "నేను ఇప్పుడు ఎంత దూరంలో ఉన్నాను", నేను "నేను ఎంతకాలం దూరంగా ఉన్నాను", D "నేను ఎంత వేగంగా చేరుకుంటున్నాను" అనే ప్రశ్నలకు P ప్రతిస్పందిస్తుంది. మంచి నియంత్రిక మూడింటినీ బ్యాలెన్స్ చేస్తుంది.

తరగతి 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 prev.0 prev.0 లెక్కించు(స్వీయ, లక్ష్యం, కొలవబడిన, dt): లోపం = లక్ష్యం - కొలవబడిన # P p = self.Kp * లోపం # I -- self.integral with windup protection += error * dt i = self.Ki * self.integral # D -- ఉత్పన్న శబ్దం సెన్సిటివ్ d = self.Kd * (ఎర్రర్ ఔట్ - సెల్ఫ్. గతం) p + i + d # అవుట్‌పుట్‌ను సంతృప్తపరచండి మరియు అవుట్‌పుట్ > self.output_max అయితే విండప్‌ను పరిమితం చేయండి: output = self.out_max self.integral -= లోపం * dt # యాంటీ-విండ్‌అప్: సమగ్ర ఎలిఫ్ అవుట్‌పుట్‌ను అన్డు చేయండి < self.output_min: output = self.output_min self.integral -= అవుట్‌పుట్ లోపం *dt return *

ఈ కోడ్ "శిక్షణ PID" కాదు, ఉత్పత్తి తర్కానికి దగ్గరగా ఉండే అస్థిపంజరం: ఇది అవుట్‌పుట్ సంతృప్తతను మరియు యాంటీ-విండప్‌ను కలిగి ఉంటుంది. AI అందించిన అనేక సాధారణ PIDలు ఈ రెండు రక్షణలను దాటవేస్తాయి; అవి లేకుండా, యాక్యుయేటర్ దాని పరిమితిని చేరుకున్నప్పుడు, సమగ్రత ఉబ్బుతుంది మరియు సిస్టమ్ ఊహించని విధంగా ఓవర్‌షూట్ అవుతుంది.

చిట్కా: PID కోసం AIని అడిగినప్పుడు "అవుట్‌పుట్ సంతృప్తతను మరియు యాంటీ-విండప్‌ని జోడించు, డెరివేటివ్ పదానికి కొలతపై ఉత్పన్నాన్ని వర్తింపజేయండి" అని చెప్పండి. ఈ మూడు చేర్పులు పాఠ్యపుస్తకం PIDని ఫీల్డ్ PIDకి మారుస్తాయి.

ఇంటిగ్రల్ విండప్ మరియు డెరివేటివ్ నాయిస్

PID వైఫల్యానికి రెండు క్లాసిక్ ఆపదలు అత్యంత సాధారణ కారణాలు:

సమగ్ర విండప్: యాక్యుయేటర్ సంతృప్తమైనప్పుడు (ఉదా. మోటారు ఇప్పటికే పూర్తి శక్తితో ఉంది) లోపం కొనసాగుతుంది మరియు సమగ్ర పదం పెరుగుతూనే ఉంటుంది. సిస్టమ్ లక్ష్యాన్ని చేరుకున్నప్పుడు ఈ పెంచిన సమగ్రత పెద్ద ఓవర్‌షూట్‌కు దారితీస్తుంది. పరిష్కారం: అవుట్‌పుట్ సంతృప్తమైనప్పుడు ఇంటిగ్రల్‌ను ఆపడం లేదా వెనక్కి తిప్పడం (యాంటీ-విండప్, పై కోడ్‌లో ప్రదర్శించబడింది).

ఉత్పన్న శబ్దం: D పదం లోపం యొక్క ఉత్పన్నాన్ని తీసుకుంటుంది; ధ్వనించే కొలత యొక్క ఉత్పన్నం చాలా ఎక్కువ శబ్దాన్ని కలిగి ఉంటుంది మరియు యాక్యుయేటర్‌ను వైబ్రేట్ చేస్తుంది. పరిష్కారాలు: కొలత నుండి ఉత్పన్నాన్ని తీసుకోవడం (లోపానికి బదులుగా కొలత యొక్క ఉత్పన్నం), ఉత్పన్న పదానికి తక్కువ పాస్ ఫిల్టర్‌ని జోడించడం.

# డెరివేటివ్ శబ్దాన్ని తగ్గించడం: కొలత ఉత్పన్నం + ఫిల్టర్_రా = -(కొలవబడినది - self.previous_measured) / dt దోషానికి బదులుగా

ఈ ఆపదలను గుర్తించడంలో AI మంచిది; మీరు "లక్ష్యాన్ని చేరుకున్నప్పుడు నా PID బాగా ఓవర్‌షూట్ అవుతుంది" అని చెబితే, అది విండప్‌ని సిఫార్సు చేస్తుంది. కానీ మీ సిస్టమ్‌లో ఫిక్స్ పనిచేస్తుందో లేదో కొలవడం ద్వారా మీరు ధృవీకరిస్తారు.

Ziegler-Nicholsతో సెట్టింగ్

మొదటి నుండి లాభాలను (Kp, Ki, Kd) కనుగొనడానికి ఒక క్లాసిక్ పద్ధతి Ziegler-Nichols. దీని సారాంశం: P తో మాత్రమే ప్రారంభించి, సిస్టమ్ స్థిరమైన డోలనంలోకి వెళ్లే వరకు Kpని పెంచడం; ఈ సమయంలో క్రిటికల్ గెయిన్ Ku మరియు డోలనం కాలం Tuతో పట్టిక నుండి Kp, Ki, Kdని లెక్కించండి.

కంట్రోలర్

kp

టి

Td

పి.

0.5·కు

పి.ఐ.

0.45·కు

Tu/1.2

PID

0.6·కు

Tu/2

Tu/8

Ziegler-Nichols దశలు (AI ద్వారా రూపొందించబడే ప్రణాళిక):1. Ki=0, Kd=0 తీసుకోండి. P.2ని అమలు చేయండి. స్థిరమైన, నిరంతర డోలనం ప్రారంభమయ్యే వరకు Kpని నెమ్మదిగా పెంచండి.3. ఈ Kp = Ku (క్రిటికల్ గెయిన్), డోలనం కాలం = Tu.4. పట్టిక నుండి Kp, Ti, Tdని లెక్కించండి; కి = Kp/Ti, Kd = Kp*Td.5. ఈ విలువలతో ప్రారంభించండి, ఆపై ప్రయోగాత్మక ట్వీక్‌లు చేయండి.

హెచ్చరిక: Ziegler-Nichols ఉద్దేశపూర్వకంగా సిస్టమ్‌ను దాని స్థిరత్వ పరిమితికి (నిరంతర డోలనం) తీసుకువస్తుంది. నిజమైన హార్డ్‌వేర్‌లో దీన్ని చేస్తున్నప్పుడు యాంత్రిక ఒత్తిడి, ఓవర్‌కరెంట్ మరియు ప్రమాదం సంభవించే ప్రమాదం ఉంది; వీలైతే, ముందుగా అనుకరణలో చేయండి, ఆపై తక్కువ పవర్ పరిమితితో మరియు హార్డ్‌వేర్‌లో E-స్టాప్‌తో పని చేయండి. AI సూచించిన Ku అనేది ఒక ప్రారంభ స్థానం, ఇది మీ సిస్టమ్‌లో కొలుస్తారు మరియు ధృవీకరించబడుతుంది.

AI-సహాయక విశ్లేషణలు

మీరు PID ప్రవర్తనను AIకి వివరించడం ద్వారా నిర్ధారించవచ్చు. లక్షణం → సాధ్యమైన కారణం మ్యాపింగ్:

లక్షణం

సాధ్యమయ్యే కారణం

AI సూచించే దిశ

నెమ్మదిగా కూర్చోవడం

Kp/Ki తక్కువ

kp పెంచండి

శాశ్వత లోపం

నేను లేను లేదా చాలా తక్కువగా ఉన్నాను

కి యాడ్/పెరుగుదల

ఓవర్‌షూట్ + డోలనం

Kp/Ki అధికం, D లేదు

Kdని జోడించండి, Kiని తగ్గించండి

యాక్యుయేటర్ వణుకుతోంది

ఉత్పన్న శబ్దం

D ని ఫిల్టర్/తగ్గించు

మీరు అధిక స్థాయికి చేరుకున్నప్పుడు

సమగ్ర విండ్అప్

యాంటీ-విండప్ జోడించండి

బలహీనమైన ప్రాంప్ట్ / బలమైన ప్రాంప్ట్

బలహీనం:"PID లాభాలు ఇవ్వండి."(ఏ సిస్టమ్? ప్రవర్తన ఎలా ఉంది? ఏవైనా కొలతలు ఉన్నాయా? యాదృచ్ఛిక సంఖ్యలు వస్తాయి.)STRONG:"నేను DC మోటార్ స్పీడ్ కంట్రోల్ కోసం PIDని సర్దుబాటు చేస్తున్నాను. ప్రస్తుతం, Kp=2, Ki=0.5, Kd=0. ఇది స్టెప్ ఇన్‌పుట్‌లో 35% ఓవర్‌షూట్ అవుతుంది మరియు ఇది స్టెప్ ఇన్‌పుట్‌లో 35% ఓవర్‌షూట్ అవుతుంది మరియు ఎక్కువ సమయం పడుతుంది. శామ్‌షూట్ ఎక్కువ సమయం పడుతుంది. 100 Hz ఈ లక్షణాల నుండి సాధ్యమయ్యే కారణాలను జాబితా చేయండి, ఇది "నేను ఏ దిశను మార్చాలో సూచించండి మరియు ఓవర్‌షూట్ సమగ్ర విండప్ కాదా అని నాకు చెప్పండి."

మినీ కేసు

కంట్రోల్ ఇంజనీర్ కెరెమ్ ఎక్స్‌ట్రూడర్ యొక్క ఉష్ణోగ్రత నియంత్రణను సర్దుబాటు చేస్తాడు. AI సూచించిన లాభాలతో, సిస్టమ్ లక్ష్యాన్ని త్వరగా చేరుకుంటుంది, కానీ ప్రతి సెట్ మార్పులో అది పెద్ద ఓవర్‌షూట్‌ను చేస్తుంది మరియు నెమ్మదిగా స్థిరపడుతుంది. Kerem AIకి లక్షణాన్ని వివరిస్తుంది; హీటర్ కొంతకాలం పూర్తి శక్తితో (సంతృప్తంగా) ఉన్నందున AI సమగ్ర విండప్‌ను అనుమానిస్తుంది. కెరెమ్ PID కోడ్‌కు యాంటీ-విండప్‌ని జోడిస్తుంది మరియు ఓవర్‌షూట్ గణనీయంగా తగ్గుతుంది. కానీ ఇప్పుడు హీటర్ అవుట్‌లెట్‌లో కొంచెం ఫ్లికర్ ఉంది; అతను ఉష్ణోగ్రత సెన్సార్ శబ్దాన్ని విస్తరించే D పదానికి ఆపాదించాడు మరియు ఉత్పన్నానికి తక్కువ-పాస్ ఫిల్టర్‌ను జోడిస్తుంది. చివరగా, ఇది జీగ్లర్-నికోల్స్‌తో లాభాలను దాదాపుగా ధృవీకరిస్తుంది మరియు ప్రయోగాత్మక ఫైన్-ట్యూనింగ్‌ను నిర్వహిస్తుంది. AI వేగవంతమైన రోగ నిర్ధారణను కలిగి ఉంది; కానీ కెరెమ్ వాస్తవ దశ ప్రతిస్పందనను కొలవడం ద్వారా ప్రతి దిద్దుబాటును ధృవీకరించారు-విండప్ సరిచేయబడిందా లేదా మినుకుమినుకుమనేది పోయినా, అది గ్రాఫికల్‌గా మాత్రమే చూడబడుతుంది.

సాధారణ తప్పులు

  • PIDకి అవుట్‌పుట్ సంతృప్తతను మరియు యాంటీ-విండప్‌ను జోడించడంలో విఫలమైంది మరియు యాక్యుయేటర్ పరిమితిలో పెద్ద ఓవర్‌షూట్‌ను ఎదుర్కొంటోంది.
  • ధ్వనించే కొలత యొక్క ఉత్పన్నం నుండి ఉత్పన్నాన్ని తీసుకోవడం మరియు యాక్యుయేటర్‌ను వైబ్రేట్ చేయడం.
  • dt స్థిరంగా ఉంటుందని ఊహిస్తే, నమూనా వ్యవధి మారుతూ ఉంటుంది.
  • భద్రతా జాగ్రత్తలు లేకుండా హార్డ్‌వేర్‌పై Ziegler-Nichols ఆసిలేషన్ పరీక్షను నిర్వహించడం.
  • సిస్టమ్-నిర్దిష్ట ధృవీకరణ లేకుండా AI- రూపొందించిన ఆదాయాలను "చివరి"గా అంగీకరించడం.
  • చాలా పెద్ద దశలతో ఒకే లాభం మార్చడం మరియు వ్యవస్థను అస్థిరతలోకి నెట్టడం.

సారాంశంలో

  • PID; ఇది P (ప్రస్తుత లోపం), I (సంచిత లోపం), D (లోపం మార్పు రేటు)తో ప్రతిస్పందిస్తుంది.
  • ఫీల్డ్ PIDలో అవుట్‌పుట్ సంతృప్తత, యాంటీ-విండప్ మరియు డెరివేటివ్ ఫిల్టర్ ఉండాలి.
  • ఇంటిగ్రల్ విండప్ లార్జ్ ఓవర్‌షూట్, డెరివేటివ్ నాయిస్ యాక్యుయేటర్ వైబ్రేషన్‌కు కారణమవుతుంది.
  • Ziegler-Nichols లాభాన్ని ప్రారంభిస్తాడు; ఇది హార్డ్‌వేర్‌లో భద్రతా చర్యలతో అమలు చేయబడుతుంది.
  • రోగనిర్ధారణలో AI లక్షణం నుండి కారణం వరకు వేగంగా ఉంటుంది; దిద్దుబాటు కొలత ద్వారా ధృవీకరించబడుతుంది.
  • dt అసలు కొలుస్తారు; సంపాదన మార్పులు చిన్న అడుగులు మరియు పరిశీలనలో చేయబడతాయి.

అప్లికేషన్ టాస్క్

సిస్టమ్‌ను ఎంచుకోండి (నిజమైన మోటారు/హీటర్ లేదా పైథాన్‌లో ఒక సాధారణ మొదటి/సెకండ్ ఆర్డర్ మోడల్) మరియు AI సంతృప్తత + యాంటీ-విండప్‌తో PID తరగతిని రూపొందించేలా చేయండి. అప్పుడు: (1) P మాత్రమే ప్రారంభించి Kpని పెంచడం ద్వారా డోలనం ప్రవర్తనను గమనించండి, (2) శాశ్వత లోపాన్ని తొలగించడానికి Kiని జోడించండి మరియు ఓవర్‌షూట్ ఎలా పెరుగుతుందో చూడండి, (3) యాంటీ-విండప్‌ని ఆన్ మరియు ఆఫ్ చేయడం ద్వారా పెద్ద ఓవర్‌షూట్‌పై ప్రభావాన్ని సరిపోల్చండి. ప్రతి దశలో దశ ప్రతిస్పందనను ప్లాట్ చేయండి మరియు ఏ ప్రవర్తనలో ఏ లాభం మారుతుందో గమనించండి. Ziegler-Nichols నుండి వచ్చిన లాభాలను మీరు కనుగొన్న లాభాలతో సరిపోల్చండి.