PID (आनुपातिक-अभिन्न-व्युत्पन्न) नियंत्रण एक संदर्भ की माप से तुलना करने के बाद इनपुट को परिवर्तित करता है। इसका उपयोग हीटर, ड्राइव, प्रवाह लूप, रोबोट जोड़ों और विमानों में किया जाता है क्योंकि यह एक सटीक प्लांट मॉडल के बिना भी अच्छी तरह से काम कर सकता है। इसकी स्पष्ट सरलता भ्रामक है: एक नियंत्रक जिसमें कोई निर्दिष्ट इकाइयाँ, आउटपुट सीमा, समय नीति, सेंसर सत्यापन या सुरक्षित-स्टॉप पथ नहीं है, वह उपयोग करने योग्य नियंत्रक नहीं है। यह एक ऐसा समीकरण है जो विफल होने की प्रतीक्षा कर रहा है।

यह लेख व्यावहारिक निष्कर्ष से शुरू होता है, फिर अंतर्ज्ञान, सिग्नल प्रवाह और समीकरण, ज़िग्लर-निकोलस ट्यूनिंग, बाधाएँ और सुरक्षा, और वर्तमान सॉफ़्टवेयर उदाहरणों को शामिल करता है। रोबोट नियंत्रक के आसपास नोड, समय और हार्डवेयर सीमाओं के लिए, ROS 2 प्राइमर देखें। स्थानीयकरण विलंब और जंप भी नियंत्रण समस्याएँ क्यों हैं, इसके लिए विज़ुअल SLAM प्राइमर देखें।

PID इनपुट त्रुटि e=r-y है, और इसका आउटपुट कमांड u है। P वर्तमान त्रुटि पर प्रतिक्रिया करता है, I स्थायी ऑफसेट को हटाता है, और D परिवर्तन की दर से अवमंदन जोड़ता है।

संक्षिप्त निष्कर्ष

  • P वर्तमान त्रुटि पर प्रतिक्रिया करता है; I स्थायी त्रुटि को हटाता है; D परिवर्तन की दर से अवमंदन प्रदान करता है। P से शुरू करें, सीमाओं को निर्धारित करें, I को तभी जोड़ें जब एक स्थिर ऑफसेट बना रहे, और फ़िल्टर किए गए D को तभी जोड़ें जब इसका स्पष्ट उद्देश्य हो।

  • कार्यान्वयन को कमांड और कमांड दर दोनों को सीमित करना होगा। एंटी-विंडअप के बिना संतृप्ति एक इंटीग्रेटर को ऐसी मांग संग्रहीत करने के लिए मजबूर करती है जिसे एक्चुएटर पूरा नहीं कर सकता।

  • अधिकांश भौतिक प्रणालियों में, चरण-समान संदर्भ त्रुटि को विभेदित करने के बजाय, फ़िल्टर किए गए माप को विभेदित करें। यह व्युत्पन्न किक से बचाता है और संदर्भ परिवर्तनों के प्रति संवेदनशीलता को कम करता है।

  • मामूली विलंब के साथ एकल तीव्र लूप के लिए PID अक्सर सबसे अच्छा समाधान होता है। अधिक उन्नत अनुकूलन तीव्र, अवलोकन योग्य, सुरक्षित आंतरिक लूप की आवश्यकता को समाप्त नहीं करता है।

सहज ज्ञान: तीन ऑपरेटर एक त्रुटि पर नज़र रख रहे हैं

मान लीजिए कमरे का तापमान उसके संदर्भ मान से कम है। P ऑपरेटर कहता है, "यह अभी पाँच डिग्री कम है, इसलिए अभी ऊष्मा दें।" I ऑपरेटर कहता है, "यह लंबे समय से कम बना हुआ है, इसलिए आधारभूत ऊष्मा अपर्याप्त है।" D ऑपरेटर कहता है, "तापमान पहले से ही तेज़ी से बढ़ रहा है; इसके बहुत अधिक बढ़ने से पहले ऊष्मा कम कर दें।" इन सभी के संयोजन से त्वरित प्रतिक्रिया, निरंतर ऊष्मा हानि की रोकथाम और बहुत अधिक बढ़ने की संभावना कम हो जाती है।

यह सादृश्य उन तथ्यों को नज़रअंदाज़ करता है जो यह निर्धारित करते हैं कि लूप सुरक्षित है या नहीं: हीटर की शक्ति सीमित होती है, थर्मामीटर में त्रुटि होती है, और ऊष्मा को प्रवाहित होने में समय लगता है। एक व्युत्पन्न त्रुटि को गति समझ सकता है; एक समाकलक तब भी संचय करता रह सकता है जब हीटर पहले से ही संतृप्त हो चुका हो। इसलिए PID डिज़ाइन की शुरुआत मापी गई और सुरक्षित रूप से नियंत्रित की जा सकने वाली चीज़ों से होती है—लाभ मानों से नहीं।

सिग्नल प्रवाह: नियंत्रक केवल एक ब्लॉक है

Diagram 1 · Use the button to switch views
PID closed-loop signal flowReference, summing junction, PID, saturation, plant, sensor feedback and disturbance are connected in a closed loop.reference rΣPIDP + I + Dlimitssaturationplant Gmotor / thermal / robotsensor H, sampling, delay and noise are part of feedbackdisturbance d

आरेख: डस्ककॉइल, एक मापित वायरिंग आरेख के बजाय एक वैचारिक आरेख। अंशांकन, परिवहन विलंब, संचार और एक्चुएटर आंतरिक लूप वास्तविक सिग्नल का हिस्सा हैं। पथ।

यदि प्लांट G है और सेंसर या एस्टीमेटर H है, तो केवल कंट्रोलर C की क्षमता बढ़ाने से G और H में विलंब, संतृप्ति या त्रुटियाँ दूर नहीं होती हैं। उदाहरण के लिए, जब एक मोबाइल रोबोट ट्रैकिंग के लिए SLAM लोकलाइज़ेशन का उपयोग करता है, तो अनुमान में उछाल और विलंब PID को माप शोर और गड़बड़ी के रूप में दिखाई देते हैं। [विज़ुअल SLAM प्राइमर](/hi/blog/posts/robotics-visual-slam.html) में चर्चा किए गए कोऑर्डिनेट फ्रेम, समय सिंक्रोनाइज़ेशन और रिलोकेलाइज़ेशन कंट्रोलर के आसपास की नियंत्रण समस्या का हिस्सा हैं। ## मूल समीकरण और इकाइयाँ मान लीजिए r संदर्भ है, y माप है, e=r-y और u_{ff} फीडफॉरवर्ड कमांड है। समानांतर सतत पीआईडी इस प्रकार है:
u(t)=u_{ff}(t)+K_Pe(t)+K_I\int_0^t e(\tau)d\tau+K_D\frac{d e(t)}{dt}
K_P की इकाइयाँ u/e हैं, K_I की इकाइयाँ u/(e\cdot s) हैं, और K_D की इकाइयाँ u\cdot s/e हैं। ये स्वाभाविक रूप से आयामहीन नहीं हैं। डिग्री को रेडियन में बदलने, एनकोडर को उलटने, या मिलीसेकंड टाइमस्टैम्प को सेकंड-आधारित गेन के साथ मिलाने से लूप बदल जाता है। ट्यूनिंग से पहले इकाइयों, चिह्नों, फ़्रेमों और संदर्भ अद्यतन नीति को रिकॉर्ड करें। सैंपल अवधि T_s के साथ, एक बुनियादी असतत कार्यान्वयन इंटीग्रल स्थिति I_k और अंतर व्युत्पन्न D_k को बनाए रखता है:
I_k=I_{k-1}+T_s e_k,\qquad D_k=\frac{e_k-e_{k-1}}{T_s}
नियंत्रक तब u_k=K_Pe_k+K_II_k+K_DD_k की गणना करता है। यह रूप पहले से ही महत्वपूर्ण इंजीनियरिंग कमियों को उजागर करता है। प्रश्न: क्या T_s का मापन किया जाता है या यह अनुमानित है; संदेश देर से आने पर क्या होता है; पुराने नमूने का क्या किया जाता है; और क्या नियंत्रक एक निश्चित दर पर चलता है? मापन पर एक सामान्य फ़िल्टर्ड डेरिवेटिव का उपयोग गुणांक \alpha=\tau_f/(\tau_f+T_s) और
D_k=\alpha D_{k-1}+(1-\alpha)\frac{y_{k-1}-y_k}{T_s}
का किया जाता है। यह संदर्भ चरण के कारण होने वाले डेरिवेटिव किक से बचाता है। इसका फ़िल्टर चरण विलंब भी जोड़ता है, इसलिए फ़िल्टरिंग खराब तरीके से नमूना लिए गए या यांत्रिक रूप से ढीले सिस्टम की भरपाई नहीं कर सकती। ## P, I, और D को एक-एक करके समझना P बढ़ाने से आमतौर पर तत्काल प्रतिक्रिया और विक्षोभ अस्वीकृति में सुधार होता है, जब तक कि विलंब और प्लांट की गतिशीलता इसे ओवरशूट या दोलन में परिवर्तित न कर दे। I गुरुत्वाकर्षण, घर्षण या ऊष्मा हानि जैसे स्थिर ऑफसेट को हटाता है, लेकिन बहुत अधिक I प्लांट की प्रतिक्रिया से पहले ही मांग को एकीकृत कर देता है। D अवमंदन प्रदान कर सकता है लेकिन एनकोडर क्वांटिज़ेशन, कंपन और अनुमानक जिटर को बढ़ाता है। स्थिति-वेग कैस्केड में, पहले तेज़, स्थिर वेग लूप को ट्यून करें, फिर स्थिति लूप को। सभी त्रुटियों को एक धीमे PID में न डालें। ## संतृप्ति और एंटी-विंडअप भौतिक कमांड u_{min}\leq u\leq u_{max} का पालन करते हैं। मान लीजिए u^* परिकलित असंतृप्त कमांड है और u=\operatorname{sat}(u^*) भेजा गया कमांड है। यदि एक एक्चुएटर सीमा पर स्थिर होने पर भी I संचय करता रहता है, तो त्रुटि के उलट होने के बाद भी लूप स्थिर रह सकता है। यह इंटीग्रेटर विंडअप है: इंटीग्रेटर e का संचय करता रहता है, भले ही u इसका अनुसरण न कर सके, और बाद में इंटीग्रल स्थिति I_k रिकवरी में देरी करती है। आउटपुट के संतृप्त होने पर सशर्त एकीकरण इंटीग्रेटर को स्थिर कर देता है और इंटीग्रल संतृप्ति की ओर और आगे बढ़ जाएगा। बैक-कैलकुलेशन एक सुगम विकल्प है:
I_k=I_{k-1}+T_se_k+K_{aw}(u_k-u_k^*)
यहाँ I_k एकीकृत त्रुटि स्थिति है, इसलिए K_{aw} में प्रति कमांड त्रुटि की इकाइयाँ हैं। कुछ कार्यान्वयन K_I I_k को इंटीग्रल आउटपुट के रूप में संग्रहीत करते हैं और इसके बजाय 1/T_t (इनवर्स ट्रैकिंग समय) का उपयोग करते हैं; चयनित इकाइयों और समीकरण को दस्तावेज़ में दर्ज करें। संतृप्ति बेमेल को इंटीग्रेटर में वापस फीड किया जाता है। K_{aw} उस सुधार की गति निर्धारित करता है। इंटीग्रेटर क्लैम्प, संदर्भ रैंप और बम्पलेस मैनुअल/ऑटोमैटिक ट्रांसफर पूरक उपाय हैं। एंटी-विंडअप प्रदर्शन में कोई सुधार नहीं है; यह अपरिहार्य सीमा के बाद रिकवरी को पूर्वानुमानित बनाता है। | लक्षण | संभावित तंत्र | पहले जांच करें | विशिष्ट प्रतिक्रिया | | --- | --- | --- | --- | | धीमी प्रतिक्रिया या ऑफसेट | P बहुत कम, निरंतर गड़बड़ी | संकेत, इकाइयाँ, आउटपुट सीमा | P को धीरे-धीरे बढ़ाएँ; यदि आवश्यक हो तो हल्का I जोड़ें | | दोलन या ओवरशूट | P/I बहुत अधिक, विलंब | लूप अवधि, विलंब, सेंसर ट्रेस | P/I कम करें; संदर्भ रैंप का उपयोग करें | | रिकवर नहीं होता सीमा से | इंटीग्रेटर वाइंडअप | कमांड और इंटीग्रल लॉग | सशर्त I, क्लैम्प, बैक-कैलकुलेशन | सेटपॉइंट स्टेप पर किक | त्रुटि का व्युत्पन्न | D इनपुट पथ | माप पर व्युत्पन्न | कम गति पर चैटर | घर्षण, क्वांटाइजेशन, बैकलैश | एनकोडर और यांत्रिकी | आंतरिक वेग लूप, क्षतिपूर्ति, फ़िल्टर | ## ट्यूनिंग, जिसमें ज़िग्लर-निकोलस शामिल है क्लोज्ड-लूप ज़िग्लर-निकोलस प्रक्रिया I और D को शून्य पर सेट करती है, P को निरंतर दोलन लाभ K_u तक बढ़ाती है, अवधि T_u को मापती है, फिर एक क्लासिकल PID प्रारंभिक बिंदु का उपयोग करती है।
K_P=0.6K_u,\quad T_i=0.5T_u,\quad T_d=0.125T_u,
जहां K_I=K_P/T_i और K_D=K_PT_d हैं। जानबूझकर निरंतर दोलन के करीब पहुंचना थर्मल प्रक्रिया, वाहन, दबाव प्रणाली या लोगों के पास रोबोट पर अस्वीकार्य हो सकता है। यह एक ऐतिहासिक अनुमानी विधि है, न कि परीक्षण करने की अनुमति। स्थिरता सीमा। एक सुरक्षित कार्यप्रवाह में स्टैटिक गेन, विलंब और समय स्थिरांक का अनुमान लगाने के लिए सिमुलेशन या निम्न-आयाम चरण परीक्षणों का उपयोग किया जाता है; पहले सीमाएँ और स्टॉप लॉजिक सक्षम किए जाते हैं; P को ट्यून किया जाता है; केवल प्रेक्षित ऑफसेट को संबोधित करने के लिए I जोड़ा जाता है; फिर केवल मापी गई डैम्पिंग आवश्यकता को संबोधित करने के लिए फ़िल्टर किया हुआ D जोड़ा जाता है। संदर्भ ट्रैकिंग और विक्षोभ अस्वीकरण का अलग-अलग परीक्षण करें। प्रत्येक परिवर्तन के लिए पीक करंट, तापमान, गति, स्टॉपिंग दूरी, संतृप्ति समय और इंटीग्रल स्थिति को लॉग करें। ## बाधाएँ और सुरक्षा PID समीकरण से बाहर हैं PID आउटपुट को सुरक्षा फ़ंक्शन न बनाएँ। डेटा या संचार गायब होने पर स्वतंत्र आपातकालीन स्टॉप, ओवरकरंट/ओवरटेम्परेचर/ओवरप्रेशर सुरक्षा, यात्रा सीमाएँ, वॉचडॉग और एक परिभाषित सुरक्षित कमांड का उपयोग करें। एक नियंत्रक एक संदर्भ तक पहुँचने का प्रयास करता है; एक सुरक्षा फ़ंक्शन दोष धारणाओं के तहत असुरक्षित स्थिति में प्रवेश को रोकता है जिसमें नियंत्रक विफलता शामिल हो सकती है। कम से कम नमूना श्रेणियों, टाइमस्टैम्प और नवीनता को मान्य करें; संदर्भों, त्वरण, आउटपुट और आउटपुट स्लीव को सीमित करें; इंटीग्रेटर के रीसेट/होल्ड व्यवहार को निर्दिष्ट करें; बिना किसी रुकावट के मैन्युअल टेकओवर का परीक्षण करें; और सेंसर हानि, विलंबित को इंजेक्ट करें। सैंपल, प्रोसेसर रीस्टार्ट और लोड में बदलाव। ROS 2 का चालू रहना नियतात्मक समय निर्धारण या कार्यात्मक सुरक्षा का प्रमाण नहीं है। ## वर्तमान कार्यान्वयन और अनुसंधान उदाहरण `ros2_control` फ्रेमवर्क हार्डवेयर इंटरफेस, कंट्रोलर प्रबंधन और कंट्रोलर को अलग करता है, और कंट्रोलर चेनिंग और PID कंट्रोलर का दस्तावेजीकरण करता है। [इसका आधिकारिक दस्तावेज](https://control.ros.org/master/doc/ros2_control/doc/index.html) और [PID कंट्रोलर पेज](https://control.ros.org/jazzy/doc/ros2_controllers/pid_controller/doc/userdoc.html) गेन, क्लैम्प, एंटी-विंडअप विकल्प, संदर्भ, मापी गई अवस्थाएँ और प्रकाशित कंट्रोलर अवस्था को प्रदर्शित करते हैं। इससे इंटरफेस और अवस्था अवलोकन योग्य हो जाते हैं; यह किसी भौतिक रोबोट को स्वचालित रूप से ट्यून नहीं करता है। औद्योगिक कंट्रोलर भी इन्हीं चिंताओं को ध्यान में रखते हैं। सीमेंस अपने [S7-1200 सिस्टम मैनुअल](https://cache.industry.siemens.com/dl/files/829/109814829/att_1120874/v1/s71200_system_manual_en-US_en-US.pdf) में SIMATIC S7-1200/S7-1500 PLC के लिए PID कार्यक्षमता का दस्तावेजीकरण करता है। अनुसंधान घर्षण और विलंब अनुकूलन, डेटा-संचालित ट्यूनिंग और सीखे गए उच्च-स्तरीय संदर्भ के साथ PID का विस्तार करता है। जनरेशन को बेहतर बनाते हुए, जहां सुरक्षित आर्किटेक्चर हो, वहां एक छोटा, निरीक्षण योग्य निम्न-स्तरीय लूप बनाए रखें। ## कार्यान्वयन चेकलिस्ट 1. नियंत्रित चर, कमांड, इकाइयाँ, सकारात्मक दिशाएँ, मान्य सीमाएँ और लूप दर परिभाषित करें। 2. नियंत्रण गणना से पहले अंशांकन, टाइमस्टैम्प, बासीपन और आउटलायर्स को मान्य करें। 3. u और इसकी स्ल्यू दर को सीमित करें; स्वतंत्र ई-स्टॉप, वॉचडॉग और संचार-हानि व्यवहार का परीक्षण करें। 4. केवल पी, पीआई, फिर पीआईडी को ट्यून करें और लॉग करें; कमांड और गड़बड़ी का अलग-अलग परीक्षण करें। 5. संदर्भ, माप, वास्तविक कमांड, संतृप्त कमांड, इंटीग्रल स्थिति और दोष ध्वजों को एक ही क्लॉक पर लॉग करें। 6. जिटर, लोड परिवर्तन, रीस्टार्ट, सेंसर हानि और एक्चुएटर संतृप्ति का जानबूझकर परीक्षण करें। 7. [ROS 2 प्राइमर](/hi/blog/posts/robotics-ros2.html) के साथ ROS 2 टोपोलॉजी और एस्टीमेटर टाइमिंग की क्रॉस-जांच करें। [विज़ुअल SLAM प्राइमर](/hi/blog/posts/robotics-visual-slam.html)
अपनी समझ की जाँच करें
यदि आउटपुट संतृप्त होने पर भी एकीकरण जारी रहता है तो क्या होगा?

संग्रहित इंटीग्रल क्रिया बाद में ओवरशूट का कारण बन सकती है। केवल इंटीग्रल गेन को समायोजित करने के बजाय एंटी-विंडअप व्यवहार की जाँच करें।

## संदर्भ - [ROS 2 कंट्रोल दस्तावेज़](https://control.ros.org/master/doc/ros2_control/doc/index.html) - [ROS 2 PID कंट्रोलर दस्तावेज़](https://control.ros.org/jazzy/doc/ros2_controllers/pid_controller/doc/userdoc.html) - [control_toolbox PID समीकरण](https://docs.ros.org/en/ros2_packages/rolling/api/control_toolbox/generated/classcontrol__toolbox_1_1Pid.html) - [Siemens SIMATIC S7-1200 सिस्टम मैनुअल](https://cache.industry.siemens.com/dl/files/829/109814829/att_1120874/v1/s71200_system_manual_en-US_en-US.pdf)

Related reading

Explore another aspect of this fieldMPC Lab — क्षितिज और स्टीयरिंग सीमाओं के भीतर वक्रता अनुक्रम को पुनः हल करनाExplore another aspect of this fieldPath-tracking comparison Lab — समान परिस्थितियों में PP, APP, RPP, Stanley और MPC चलाएँExplore another aspect of this fieldPure Pursuit Lab — स्थिर-लुकअहेड पथ ट्रैकिंग की तुलना करें