लाभ:
- सही संदर्भ के साथ पीआईडी नियंत्रक के पी, आई, डी नियमों और प्रभावों को एआई पर समझाने और लागू करने की क्षमता
- एआई की मदद से ज़िग्लर-निकोल्स और प्रायोगिक ट्यूनिंग विधियों को चरण दर चरण क्रियान्वित करने की क्षमता
- एआई अनुशंसाओं में इंटीग्रल विंडअप, व्युत्पन्न शोर जैसे पीआईडी जाल को पहचानने और खत्म करने की क्षमता
ओवन का तापमान स्थिर रखना, मोटर की गति को वांछित मूल्य पर चलाना, ड्रोन के कोण को संतुलित करना; उन सभी के केंद्र में एक नियंत्रण एल्गोरिदम है। इनमें से सबसे आम है पीआईडी नियंत्रक, जो उद्योग की रीढ़ है। पीआईडी; यह सरल, मजबूत है और कई प्रकार की समस्याओं पर काम करता है। लेकिन "सरल" का मतलब "ट्यून करना आसान" नहीं है: गलत तरीके से सेट किया गया पीआईडी दोलन करेगा, ओवरशूट करेगा, देर से बैठेगा, या पूरी तरह से अस्थिर हो जाएगा। आर्टिफिशियल इंटेलिजेंस यहां एक मूल्यवान सहायक है: यह पीआईडी शर्तों की व्याख्या करता है, ट्यूनिंग विधियों के माध्यम से मार्गदर्शन करता है, विशिष्ट नुकसान का निदान करता है और ट्यूनिंग कोड लिखता है। हालाँकि, अंतिम समायोजन आपके सिस्टम के भौतिक व्यवहार को देखकर किया जाता है और स्थिरता का निर्णय इंजीनियर का होता है। इस इकाई में हम एआई के साथ पीआईडी ट्रैप को कैसे स्थापित करें, ट्यून करें और सत्यापित करें, इसके बारे में बताएंगे।
पीआईडी की तीन शर्तें
पीआईडी तीन तरीकों से त्रुटि संकेत (ई = लक्ष्य - मापा) पर प्रतिक्रिया करता है:
अवधि
वह क्या देखता है?
प्रभाव
चरम में
पी (आनुपातिक)
वर्तमान त्रुटि
त्वरित प्रतिक्रिया
दोलन, स्थायी त्रुटि
मैं (अभिन्न)
संचित पिछली त्रुटि
स्थायी त्रुटि रीसेट करता है
ओवरशूट, विंडअप, दोलन
डी (व्युत्पन्न)
त्रुटि परिवर्तन की दर
भिगोने से ओवरशूट कम हो जाता है
शोर बढ़ाओ
मौखिक सारांश: पी सवालों का जवाब देता है "मैं अब कितनी दूर हूं", मैं "मैं कितने समय से दूर हूं", डी "मैं कितनी तेजी से आ रहा हूं"। एक अच्छा नियंत्रक इन तीनों को संतुलित करता है।
वर्ग पीआईडी: def __init__(स्वयं, Kp, Ki, Kd, आउटपुट_मिनट=-100, आउटपुट_मैक्स=100): self.Kp, self.Ki, self.Kd = Kp, Ki, Kd self.out_min, self.out_max = आउटपुट_मिनट, आउटपुट_मैक्स self.integral = 0.0 self.previous_error = 0.0 def गणना(स्वयं, लक्ष्य, मापा, dt): त्रुटि = लक्ष्य - मापा गया # P p = self.Kp * त्रुटि # I - विंडअप सुरक्षा के साथ self.integral += त्रुटि * dt i = self.Ki * self.integral # D - व्युत्पन्न शोर संवेदनशील d = self.Kd * (त्रुटि - self.previous_error) / dt self.previous_error = त्रुटि आउट = p + i + d # आउटपुट को संतृप्त करें और विंडअप को सीमित करें यदि आउटपुट > self.output_max: आउटपुट = self.out_max self.integral -= त्रुटि * डीटी # एंटी-विंडअप: इंटीग्रल एलिफ़ आउटपुट को पूर्ववत करें < self.output_min: आउटपुट = self.output_min self.integral - = त्रुटि * dt रिटर्न आउटपुट
यह कोड "प्रशिक्षण पीआईडी" नहीं है, बल्कि उत्पादन तर्क के करीब एक कंकाल है: इसमें आउटपुट संतृप्ति और एंटी-विंडअप शामिल है। एआई द्वारा दिए गए कई सरल पीआईडी इन दो सुरक्षाओं को बायपास करते हैं; उनके बिना, जब एक्चुएटर अपनी सीमा तक पहुंचता है, तो इंटीग्रल फूल जाएगा और सिस्टम अप्रत्याशित रूप से ओवरशूट हो जाएगा।
युक्ति: पीआईडी के लिए एआई से पूछते समय कहें "आउटपुट संतृप्ति और एंटी-विंडअप जोड़ें, व्युत्पन्न शब्द पर माप पर व्युत्पन्न लागू करें"। ये तीन जोड़ पाठ्यपुस्तक PID को फ़ील्ड PID में बदल देते हैं।
इंटीग्रल विंडअप और डेरिवेटिव शोर
दो क्लासिक नुकसान पीआईडी विफलता के सबसे आम कारण हैं:
इंटीग्रल विंडअप: जब एक्चुएटर संतृप्त हो जाता है (उदाहरण के लिए मोटर पहले से ही पूरी शक्ति पर है) तो त्रुटि बनी रहती है और इंटीग्रल टर्म बढ़ता रहता है। जब सिस्टम लक्ष्य तक पहुंचता है तो यह फुलाया हुआ इंटीग्रल एक बड़े ओवरशूट की ओर ले जाता है। समाधान: आउटपुट संतृप्त होने पर इंटीग्रल को रोकना या वापस रोल करना (एंटी-विंडअप, ऊपर दिए गए कोड में दिखाया गया है)।
व्युत्पन्न शोर: डी शब्द त्रुटि का व्युत्पन्न लेता है; शोर माप का व्युत्पन्न अधिक शोर वाला होता है और एक्चुएटर को कंपन करेगा। समाधान: माप से व्युत्पन्न लेना (त्रुटि के बजाय माप का व्युत्पन्न), व्युत्पन्न शब्द में एक कम पास फ़िल्टर जोड़ना।
# व्युत्पन्न शोर को कम करना: माप व्युत्पन्न + फ़िल्टरड_रॉ = - (मापा - स्व.पिछला_मापा) / त्रुटि के बजाय डीटी
एआई इन नुकसानों की पहचान करने में अच्छा है; यदि आप कहते हैं, "लक्ष्य तक पहुँचने पर मेरा पीआईडी बहुत अधिक बढ़ जाता है", तो यह विंडअप की अनुशंसा करता है। लेकिन आप यह मापकर सत्यापित करते हैं कि फिक्स आपके सिस्टम पर काम करता है या नहीं।
ज़िग्लर-निकोल्स के साथ सेटिंग
स्क्रैच से लाभ (केपी, की, केडी) खोजने की एक क्लासिक विधि ज़िग्लर-निकोल्स है। इसका सार: केवल पी से शुरू करना और केपी को तब तक बढ़ाना जब तक कि सिस्टम निरंतर दोलन में न चला जाए; इस बिंदु पर महत्वपूर्ण लाभ कू और दोलन अवधि Tu के साथ तालिका से Kp, Ki, Kd की गणना करें।
नियंत्रक
के.पी
ति
टी.डी
पी.
0.5·कु
–
–
पी.आई.
0.45·कु
तू/1.2
–
पीआईडी
0.6·कु
तु/2
तु/8
ज़िग्लर-निकोल्स चरण (एआई द्वारा बनाई जाने वाली योजना):1. Ki=0, Kd=0 लीजिए। बस पी.2 चलाएँ। स्थिर, निरंतर दोलन शुरू होने तक Kp को धीरे-धीरे बढ़ाएं।3. यह Kp = Ku (महत्वपूर्ण लाभ), दोलन की अवधि = Tu.4. तालिका से Kp, Ti, Td की गणना करें; की = केपी/टीआई, केडी = केपी*टीडी.5. इन मानों से प्रारंभ करें, फिर प्रयोगात्मक बदलाव करें।
सावधानी: ज़िग्लर-निकोलस जानबूझकर सिस्टम को उसकी स्थिरता सीमा (निरंतर दोलन) पर लाता है। वास्तविक हार्डवेयर पर ऐसा करते समय यांत्रिक तनाव, ओवरकरंट और खतरे का जोखिम होता है; यदि संभव हो, तो इसे पहले सिमुलेशन में करें, फिर कम पावर सीमा और हार्डवेयर में ई-स्टॉप के साथ काम करें। एआई द्वारा सुझाया गया कू एक शुरुआती बिंदु है, इसे आपके सिस्टम में मापा और सत्यापित किया जाता है।
एआई-असिस्टेड डायग्नोस्टिक्स
आप एआई को इसका वर्णन करके पीआईडी व्यवहार का निदान कर सकते हैं। लक्षण → संभावित कारण मानचित्रण:
लक्षण
संभावित कारण
एआई जो दिशा सुझाएगा
धीमी गति से बैठना
केपी/की कम
केपी बढ़ाएँ
स्थायी त्रुटि
मैं अनुपस्थित या बहुत कम हूँ
की जोड़/बढ़ोतरी
ओवरशूट + दोलन
केपी/की हाई, नो डी
Kd जोड़ें, Ki घटाएँ
एक्चुएटर हिल रहा है
व्युत्पन्न शोर
डी को फ़िल्टर/कम करें
जब आप बड़े स्तर पर पहुंच जाते हैं
इंटीग्रल विंडअप
एंटी-विंडअप जोड़ें
कमजोर संकेत/मजबूत संकेत
कमजोर: "पीआईडी लाभ दें।" (कौन सा सिस्टम? व्यवहार कैसा है? क्या कोई माप है? यादृच्छिक संख्याएं आती हैं।) मजबूत: "मैं डीसी मोटर गति नियंत्रण के लिए पीआईडी को समायोजित कर रहा हूं। वर्तमान में, केपी = 2, की = 0.5, केडी = 0। यह चरण इनपुट पर 35% ओवरशूट करता है और जब यह लक्ष्य तक पहुंचता है, तो एक बड़ा दूसरा ओवरशूट होता है; इसे व्यवस्थित करने में लंबा समय लगता है। नमूनाकरण 100 हर्ट्ज है। इन लक्षणों में से संभावित कारणों की सूची बनाएं, जिससे "सुझाव दें कि मुझे इसे किस दिशा में बदलना चाहिए और मुझे बताएं कि कैसे परीक्षण किया जाए कि ओवरशूट एक अभिन्न विंडअप है।"
मिनी केस
नियंत्रण इंजीनियर केरेम एक एक्सट्रूडर के तापमान नियंत्रण को समायोजित करता है। एआई द्वारा सुझाए गए लाभ के साथ, सिस्टम जल्दी से लक्ष्य तक पहुंच जाता है, लेकिन प्रत्येक सेट परिवर्तन पर यह एक बड़ा ओवरशूट करता है और धीरे-धीरे स्थिर हो जाता है। केरेम ने एआई को लक्षण समझाया; एआई को इंटीग्रल विंडअप का संदेह है क्योंकि हीटर कुछ समय के लिए पूरी शक्ति (संतृप्त) पर रहता है। केरेम पीआईडी कोड में एंटी-विंडअप जोड़ता है और ओवरशूट काफी कम हो जाता है। लेकिन अब हीटर आउटलेट पर हल्की सी झिलमिलाहट है; वह इसका श्रेय तापमान सेंसर शोर को बढ़ाने वाले डी शब्द को देता है और व्युत्पन्न में एक कम-पास फिल्टर जोड़ता है। अंत में, यह ज़िग्लर-निकोल्स के साथ लाभ को मोटे तौर पर मान्य करता है और प्रयोगात्मक फाइन-ट्यूनिंग करता है। एआई ने तेजी से निदान किया है; लेकिन केरेम ने वास्तविक चरण प्रतिक्रिया को मापकर प्रत्येक सुधार की पुष्टि की - चाहे विंडअप को ठीक किया गया हो या फ़्लिकरिंग चली गई हो, इसे केवल ग्राफ़िक रूप से देखा जा सकता है।
सामान्य गलतियाँ
- पीआईडी में आउटपुट संतृप्ति और एंटी-विंडअप जोड़ने में विफल होना और एक्चुएटर सीमा में बड़े ओवरशूट का अनुभव करना।
- शोर माप के व्युत्पन्न से व्युत्पन्न लेना और एक्चुएटर को कंपन करना।
- यह मानते हुए कि dt स्थिर है, जबकि नमूनाकरण अवधि भिन्न होती है।
- सुरक्षा सावधानियों के बिना हार्डवेयर पर ज़िग्लर-निकोल्स दोलन परीक्षण करना।
- सिस्टम-विशिष्ट सत्यापन के बिना AI-जनित आय को "अंतिम" के रूप में स्वीकार करना।
- बहुत बड़े कदमों से एक ही लाभ को बदलना और सिस्टम को अस्थिरता की ओर धकेलना।
संक्षेप में
- पीआईडी; यह P (वर्तमान त्रुटि), I (संचित त्रुटि), D (त्रुटि परिवर्तन की दर) के साथ प्रतिक्रिया करता है।
- फ़ील्ड पीआईडी में आउटपुट संतृप्ति, एंटी-विंडअप और डेरिवेटिव फ़िल्टर शामिल होना चाहिए।
- इंटीग्रल विंडअप बड़े ओवरशूट, व्युत्पन्न शोर एक्चुएटर कंपन का कारण बनता है।
- ज़िग्लर-निकोल्स ने बढ़त की शुरुआत दी; इसे हार्डवेयर में सुरक्षा उपायों के साथ लागू किया जाता है।
- एआई लक्षण से कारण तक निदान में तेजी से काम करता है; सुधार को माप द्वारा सत्यापित किया जाता है।
- डीटी वास्तविक मापा गया; कमाई में बदलाव छोटे-छोटे कदमों और अवलोकन में किए जाते हैं।
आवेदन कार्य
एक सिस्टम चुनें (वास्तविक मोटर/हीटर या पायथन में एक साधारण प्रथम/द्वितीय क्रम मॉडल) और एआई को संतृप्ति + एंटी-विंडअप के साथ एक पीआईडी वर्ग उत्पन्न करने दें। फिर: (1) केवल पी से शुरू करके और केपी बढ़ाकर दोलन व्यवहार का निरीक्षण करें, (2) स्थायी त्रुटि को खत्म करने के लिए की जोड़ें और देखें कि ओवरशूट कैसे बढ़ता है, (3) एंटी-विंडअप को चालू और बंद करके बड़े ओवरशूट पर प्रभाव की तुलना करें। प्रत्येक चरण पर चरण प्रतिक्रिया को प्लॉट करें और ध्यान दें कि कौन सा लाभ किस व्यवहार को बदलता है। ज़िग्लर-निकोल्स से प्राप्त लाभ की तुलना स्वयं द्वारा प्राप्त लाभ से करें।