मुझे PID नियंत्रक का अभिन्न अंग समझ में नहीं आता है


12

मैं पीआईडी ​​नियंत्रक का अभिन्न अंग नहीं समझता। आइए विकिपीडिया के इस छद्मकोश को मानें:

previous_error = 0
integral = 0 
start:
  error = setpoint - measured_value
  integral = integral + error*dt
  derivative = (error - previous_error)/dt
  output = Kp*error + Ki*integral + Kd*derivative
  previous_error = error
  wait(dt)
  goto start

इंटीग्रल को शुरुआत में शून्य पर सेट किया गया है। और फिर लूप में यह समय के साथ त्रुटि को एकीकृत कर रहा है। जब मैं सेटपॉइंट में (सकारात्मक) परिवर्तन करता हूं, तो त्रुटि सकारात्मक हो जाएगी और समय के साथ (शुरुआत से) मूल्यों को "अभिन्न" खा जाएगा। लेकिन जो मुझे समझ में नहीं आता है, जब त्रुटि वापस शून्य पर स्थिर हो जाती है, तो अभिन्न भाग में अभी भी कुछ मूल्य (समय के साथ एकीकृत त्रुटियां) होंगे और फिर भी नियंत्रक के आउटपुट मूल्य में योगदान देगा, लेकिन यह नहीं होना चाहिए, क्योंकि यदि त्रुटि शून्य है, PID का आउटपुट शून्य होना चाहिए, है ना?

क्या कोई मुझे समझा सकता है कि कृपया?

जवाबों:


16

अभिन्न शब्द का मुख्य उद्देश्य स्थिर राज्य त्रुटि को समाप्त करना है। सामान्य स्थिति में एक छोटी स्थिर स्थिति त्रुटि होने वाली है और इस त्रुटि को खत्म करने के लिए मुख्य रूप से अभिन्न का उपयोग किया जाता है। हालांकि यह सच है कि जब त्रुटि 0 पर हो जाती है तो इंटीग्रल अभी भी सकारात्मक होगा और आपको ओवरशूट कर देगा। फिर ओवरशूट के बाद इंटीग्रल फिर से नीचे जाना शुरू कर देगा। यह अभिन्न शब्द का नकारात्मक प्रभाव है। इसलिए हमेशा व्यापार बंद है और आपको यह सुनिश्चित करने के लिए पीआईडी ​​नियंत्रक को ट्यून करना होगा कि ओवरशूट जितना संभव हो उतना छोटा हो और स्थिर राज्य त्रुटि कम से कम हो। यहाँ वह जगह है जहाँ व्युत्पन्न शब्द चलन में है। व्युत्पन्न शब्द सिस्टम में ओवरशूट को कम करने में मदद करता है।


8
और स्थिर राज्य त्रुटि का एक अच्छा उदाहरण एक संयुक्त में घर्षण है। कहते हैं कि आपका पीडी कंट्रोलर आपके टारगेट ज्वाइंट एंगल के करीब आ जाता है, लेकिन घर्षण के कारण वहां नहीं जा सकता। "I" शब्द धीरे-धीरे निर्माण करेगा और अंततः घर्षण को दूर करने के लिए एक बड़ा पर्याप्त इनपुट उत्पन्न करेगा।
बेन

2
एक और उदाहरण स्टीयरिंग में पूर्वाग्रह है। यदि यह पता चलता है कि स्टीयरिंग कंट्रोल में थोड़ा सा पूर्वाग्रह है, या, ट्रेड-स्टाइल रोबोटों के लिए, एक ट्रेडर दूसरे की तुलना में थोड़ा धीमा हो जाता है, क्योंकि नियंत्रक उन्हें उसी मूल्य पर सेट करते हैं, तो एक पूर्वाग्रह होगा। अभिन्न शब्द, ठीक से सेट, उसके लिए सही है।
वियनामीके

8

कल्पना करें कि आपने अपनी बांह पर एक पीआईडी ​​नियंत्रक स्थापित किया है, ताकि आप सीधे सामने एक कप कॉफी पकड़ सकें।

  • आनुपातिक तत्व आपके हाथ की स्थिति के सापेक्ष आपके हाथ की ताकत को बहुत अधिक या बहुत कम होने पर नियंत्रित करेगा।
  • व्युत्पन्न तत्व उस ताकत को इस आधार पर समायोजित करेगा कि आप कितनी जल्दी पहले से ही आगे बढ़ रहे थे, ताकि आप अपने लक्ष्य को पूरा न करें।
  • अभिन्न तत्व गुरुत्वाकर्षण के प्रभावों की भरपाई करेगा; इसके बिना, कप आराम करने के लिए आएगा जहां आनुपातिक बल गुरुत्वाकर्षण बल के बराबर होता है।

ऐसा लगता है कि आप जिस कोड पर अटके हुए हैं, वह यह है कि सिस्टम को किसी तरह कॉफी के वजन को मापना चाहिए, और ऐसा करने का एक तरीका यह है कि समय के साथ स्थिति में त्रुटि हो। अधिकांश पीआईडी ​​नियंत्रकों के पास एक अतिरिक्त अवधि है जो उस आकार पर एक उचित सीमा निर्दिष्ट करता है जो अभिन्न तत्व हो सकता है।


2
+1। "यदि त्रुटि शून्य है, तो पीआईडी ​​का उत्पादन शून्य होना चाहिए, ठीक है?" जैसा कि इयान बताते हैं, यहां तक ​​कि जब कॉफी कप सही स्थिति में होता है और त्रुटि शून्य होती है, तो उस कप को स्थिति में रखने के लिए पीआईडी ​​के आउटपुट के लिए कुछ ऊपर की ओर बल होना चाहिए।
डेविड कैरी

0

यहां एक वीडियो है जो पीआईडी ​​लूप की "सहज" समझ देता है। इसमें अभिन्न शब्द की व्याख्या है, साथ ही आनुपातिक और व्युत्पन्न शब्द भी हैं।

https://www.youtube.com/watch?v=l03SioQ9ySg

एक अनुवर्ती वीडियो है जो गणित की व्याख्या करता है और दिखाता है कि कोड को सामान्य सूत्र से कैसे प्राप्त किया जाए।

https://www.youtube.com/watch?v=sDd4VOpOnnA

यहाँ छवि विवरण दर्ज करें

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.