ट्यूनिंग नियंत्रक लाभ कठिन हो सकता है, एक सामान्य प्रणाली जो एक स्थिर प्रणाली को सही समाधान में परिवर्तित करने के लिए अच्छी तरह से काम करती है?
ट्यूनिंग नियंत्रक लाभ कठिन हो सकता है, एक सामान्य प्रणाली जो एक स्थिर प्रणाली को सही समाधान में परिवर्तित करने के लिए अच्छी तरह से काम करती है?
जवाबों:
छोटी या कम गियरिंग वाली छोटी टॉर्क मोटरों के लिए, एक अच्छी बेसलाइन ट्यून प्राप्त करने के लिए आप जिस प्रक्रिया का उपयोग कर सकते हैं, वह यह है कि यह गड़बड़ी की प्रतिक्रिया है।
पीआईडी ट्यून करने के लिए निम्नलिखित चरणों का उपयोग करें:
नियंत्रक का उपयोग किस तंत्र से जुड़ा है, यह किस गड़बड़ी पर निर्भर करता है। सामान्य रूप से सेटपॉइंट से दूर हाथ से तंत्र को स्थानांतरित करना और जाने देना पर्याप्त है। यदि दोलन बड़े और बड़े होते हैं तो आपको पी लाभ कम करने की आवश्यकता है।
यदि आप डी गेन को बहुत अधिक सेट करते हैं, तो सिस्टम चटकारना शुरू कर देगा (पी लाभ दोलन की तुलना में अधिक आवृत्ति पर कंपन)। यदि ऐसा होता है, तो रुकने तक डी लाभ कम करें।
मेरा मानना है कि इस तकनीक का एक नाम है। मैं इसे यहाँ रखूँगा जब मैं इसे पाऊँगा।
कॉलेज में पढ़ाया जाने वाला हंफमेक के उत्तर के लिए एक समान प्रयोगात्मक विधि:
ज़ेग्लर-निकोल्स विधि और अधिक सटीक अगर आप दोलन की अवधि के लिए एक सटीक संख्या प्राप्त कर सकते है। यह आम तौर पर दिए गए "क्लासिक पीआईडी" संख्याओं का उपयोग करके दोलनों का कारण बनता है, इसलिए यह हमेशा इष्टतम नहीं होता है।
वृद्धि समय पर प्रत्येक पद के प्रभाव पर सामान्य नियमों के लिए, निरीक्षण, स्थिर-राज्य त्रुटि, और स्थिरता, IEEE नियंत्रण प्रणाली में ली, आंग और चोंग द्वारा "पीआईडी नियंत्रण प्रणाली विश्लेषण और डिजाइन" की तालिका 1 देखें। पत्रिका।
एंबेडेड.कॉम ने मेरे लेख को फिर से स्थानांतरित कर दिया है, लेकिन यहां वह है जहां यह अब है। यह आपको दिखाता है कि पीआईडी लूप कैसे लिखना है (यह पता लगाना है कि फ्लोटिंग पॉइंट के अलावा किसी अन्य चीज़ में इसे कैसे किया जाए) पाठक को एक अभ्यास के रूप में छोड़ दिया जाता है और इसे कैसे ट्यून किया जाता है।
सबसे अच्छा तरीका आपकी क्षमताओं पर बहुत कुछ निर्भर करता है। सबसे अच्छा ट्यूनिंग पाने का तरीका , यह मानकर कि आप एक अनुभवी नियंत्रण प्रणाली हाथ हैं, यह पौधे की प्रतिक्रिया ("संयंत्र" == "आप जिस चीज़ को नियंत्रित कर रहे हैं") की प्रतिक्रिया को मापने के लिए है, फिर आप कैसे करते हैं इसके आधार पर माप संयंत्र के एक मॉडल को निकालता है और उस पर डिजाइन करता है, या माप को सीधे डिजाइन करता है।
कुछ कठिन पौधों के लिए, आप पाएंगे कि आप कभी भी संतोषजनक माप नहीं कर सकते हैं, इस स्थिति में आपको अकेले मॉडल द्वारा जाना होगा। वे दुर्लभ हैं, लेकिन संतोषजनक जब आप उन्हें काम कर रहे हैं।
सेबेस्टियन थ्रुन ने अपने "हाउ टू प्रोग्राम टू रोबोट कार" क्लास में पीआईडी ट्यूनिंग के लिए एक सरल एल्गोरिथ्म प्रस्तुत किया। इसे "ट्वीडल" कहा जाता है, वह यहां इसका वर्णन करता है ।
स्थानीय मिदिमा को खोजने के लिए ट्वीडल बहुत प्रवण है - इसका मतलब है कि आप तीन स्थिरांक के एक सेट के साथ आ सकते हैं जो ठीक है, लेकिन स्थिति के लिए इष्टतम नहीं है। PID स्थिरांक को ट्यून करने की समस्या उपयोगिता को अधिकतम करने के लिए कुछ सामान्य खोज समस्या का एक सबसेट है (इस मामले में, PID एल्गोरिथम की त्रुटि को कम करते हुए)। आप इस समस्या के अन्य सामान्य समाधानों पर गौर कर सकते हैं, जैसे पहाड़ी-चढ़ाई, नकली annealing, आनुवांशिक एल्गोरिदम, आदि जो अधिक इष्टतम समाधान खोजने के लिए समाप्त हो सकते हैं।
अन्य दो उत्तरों के विपरीत, मैं कहूंगा कि पीआईडी ट्यूनिंग का एक अच्छा मैनुअल तरीका केडी को अनदेखा कर रहा है। इसलिए 0 पर शुरू करें और जब तक आप लक्ष्य तक नहीं पहुंचते हैं, तब तक केपी बढ़ाएं, फिर स्थिर राज्य त्रुटि से छुटकारा पाने के लिए की बढ़ाएं।
केडी इस मुद्दे को भ्रमित कर सकता है क्योंकि यह शोर के लिए खराब प्रतिक्रिया करता है, फिर आप अपने एनालॉग इनपुट पर फिल्टर जोड़ना शुरू करते हैं और फिर सवाल करते हैं कि आपके नियंत्रण को धीमा करने के अलावा क्या करता है और पूरे काम को कठिन बना देता है ...
मुझे भ्रमित करने के लिए बाध्य एक और बात यह है कि यदि पीआईडी समीकरण मानक रूप में या स्वतंत्र (विकिपीडिया में समानांतर) रूप में है। की का प्रभाव उलटा लगता है जब आप जो सोचते हैं वह गलत तरीका है। दोनों प्रकार का उपयोग स्वचालन में किया जाता है, कभी-कभी उनके बीच स्विच करने के विकल्प के साथ।
सिस्टम मॉडलिंग
बेशक प्रायोगिक ट्यूनिंग को अन्य उत्तरों में उल्लिखित किया जा सकता है, लेकिन यदि आप जो भी नियंत्रित करना चाहते हैं उसके लिए एक उचित गतिशील मॉडल को परिभाषित करने में सक्षम हैं और इसके मापदंडों की पहचान करने में सक्षम हैं , तो आपको अपने नियंत्रक को अच्छी तरह से डिजाइन करने में सक्षम होना चाहिए -निर्धारित मापदंड जैसे कि ओवरशूट , उदय समय , बसने का समय , स्थिर-राज्य त्रुटि और इतने पर।
MATLAB में और भी उपकरण हैं जो इन मानदंडों के संयोजन के लिए अनुकूलन करने के लिए आपके नियंत्रक को ट्यून करने में सक्षम हैं, जो इसे उपयोग करने के लिए और भी बेहतर बनाता है।
अपने नियंत्रक को जानें
पीआईडी नियंत्रक में प्रत्येक पैरामीटर क्या करता है यह सीखना काफी उपयोगी है। सभी प्रयोगात्मक एल्गोरिदम इस तरह के ज्ञान पर आधारित हैं। यदि आप न केवल निर्देशों का पालन करते हैं, बल्कि खुद को महसूस करने में सक्षम हैं, तो आपको अपने नियंत्रक को मैन्युअल रूप से ट्यून करना आसान हो सकता है।
वास्तविक दुनिया की समस्याएं
इन चीजों में से एक मौका है, दूसरों के बीच में, अपने नियंत्रक को ट्यून करते समय अपने रास्ते पर मिलेगा: विंडअप , अपर्याप्त नमूनाकरण दर , संतृप्ति ।
निष्कर्ष
अंत में, यह सब इस बात पर निर्भर करता है कि आप वास्तव में अपने सिस्टम के साथ क्या कर सकते हैं कि यह कैसे काम करता है और किस तरह का प्रयोग किया जा सकता है। सबसे अच्छी बात यह है कि वास्तव में पीआईडी नियंत्रकों और नियंत्रण सिद्धांत के बारे में अधिक जानने के लिए सामान्य, आईएमओ, लेकिन मैं पक्षपाती हूं :)
मैं उन लोगों के लिए अपने अनुभव से थोड़ा विस्तार करने की कोशिश करूँगा जो दिलचस्पी ले सकते हैं। मुझे लगता है कि समस्या यह है कि हमारे पास बहुत सारे नियंत्रण सिद्धांत हैं जो कुछ हद तक दुर्गम हैं (और कभी-कभी उपयोगी नहीं हैं) और फिर हमारे पास अंगूठे के नियम हैं जो उन प्रणालियों के बारे में धारणा बनाते हैं जो अक्सर गलत होते हैं।
स्थिरता
आइए सबसे पहले बात करते हैं कि नियंत्रण छोर अस्थिर क्यों हो जाते हैं। इस चर्चा के लिए मैं एक लीनियर प्रणाली मानूंगा। अनौपचारिक रूप से इसका मतलब है कि यदि आपका नियंत्रण संकेत किसी दी गई आवृत्ति पर साइन की लहर है तो आपका मनाया गया आउटपुट समान आवृत्ति पर है और यदि आप अपने नियंत्रण प्रणाली के आयाम को बदलते हैं तो आपका आउटपुट उसी अनुपात में प्रतिक्रिया करता है। यह धारणा कई वास्तविक दुनिया प्रणालियों के लिए एक अच्छा सन्निकटन है और हमें अलगाव में अलग-अलग आवृत्तियों को देखने देती है।
यदि आप नियंत्रण पथ को देखते हैं तो आपके पास एक सेट-पॉइंट, आपका पीआईडी नियंत्रक, आपका सिस्टम (उर्फ "प्लांट") है, और फिर आपका सेंसर है। अपने सेंसर से एक निश्चित सेट-पॉइंट और एक साइन लहर की कल्पना करें (यह सेंसर में एक वास्तविक दुनिया की गड़बड़ी के बराबर है, वापस खिलाया गया)। एक अस्थिर प्रणाली में आपकी प्रतिक्रिया नियंत्रण लूप को त्रुटि को बढ़ाने के बजाय इसे कम करने का कारण बनती है, जैसे ही समय बढ़ता है आपका आयाम बढ़ता है। ऐसा होने का कारण देरी है, या इस आवृत्ति के लिए इनपुट और आउटपुट के बीच एक चरण बदलाव है। किसी दी गई आवृत्ति के लिए हम उस खुले लूप (यानी कोई प्रतिक्रिया नहीं) शिफ्ट और आउटपुट के आयाम को देख सकते हैं और जब हम उन सभी को एक ग्राफ पर खींचते हैं तो हमें एक बोड प्लॉट जैसा कुछ मिलता है। यदि हमारे पास इस खुले लूप ग्राफ में एक स्थिति है जहां त्रुटि बढ़ रही है तो हमारे पास एक अस्थिर प्रणाली है। यदि विलंब 1/2 से कम है तो तरंग दैर्ध्य या लाभ X1 से कम है तो सिस्टम स्थिर होगा । व्यवहार में हम उस बिंदु (लाभ मार्जिन और चरण मार्जिन) से कुछ मार्जिन चाहते हैं यही कारण है कि आप मैनुअल / हेयूरिस्टिक विधियों में से कई में "बैकिंग ऑफ" देखेंगे।
उन मैनुअल तरीकों के साथ मुख्य समस्या यह है कि आप अंधे उड़ रहे हैं और आपको खराब नियंत्रण प्रणाली प्राप्त करने की बहुत गारंटी है।
यह भी ध्यान रखें कि पी, आई और डी का अर्थ आपके सेंसर को मापने और आपके द्वारा लागू किए जाने वाले नियंत्रण से संबंधित है। घर में निर्मित नियंत्रकों में एक आम गलती लोगों को यह सोचने के लिए है कि वे पी लागू कर रहे हैं जब वे वास्तव में नहीं होते हैं। मोटर नियंत्रकों में अक्सर एक पोजिशन लूप होता है, जो टॉर्क लूप पर चलने वाले वेग लूप से अधिक होता है। (एक झरना )
ठीक है, लेकिन यह हमारी मदद कैसे करता है?
पहला बिंदु मैं यह बताना चाहूंगा कि यदि आप अपना स्वयं का पीआईडी नियंत्रक बना रहे हैं तो आपको ओपन लूप प्रतिक्रिया को मापने का एक तरीका भी बनाना चाहिए। अपने नियंत्रक के इनपुट पर एक आवृत्ति स्वीप करें और फीडबैक के साथ सेंसर के आउटपुट को मापें। फिर आप खुले लूप बोडे प्लॉट को आकर्षित कर सकते हैं और देख सकते हैं कि आपका सिस्टम स्थिर क्यों है और विभिन्न नियंत्रणों को बंद करने में सक्षम है। बंद लूप प्रतिक्रिया को मापने के लिए भी उपयोगी है और लूप बंद होने के दौरान आप अपने सेट-पॉइंट की आवृत्ति स्वीप करके किसी भी सिस्टम के साथ कर सकते हैं। ये दोनों उस कठिन नहीं हैं और सैद्धांतिक ज्ञान की बहुत आवश्यकता नहीं है।
यदि आप किसी भी समझ के बिना नियंत्रण को घुमा रहे हैं तो हुड के नीचे क्या चल रहा है, आप अपने सिस्टम को ऑप्टिमाइज़ नहीं कर पाएंगे। इन प्रणालियों के बारे में कुछ अंतर्ज्ञान का निर्माण करना उतना कठिन नहीं है। उदा। आनुपातिक लाभ का चरण पर कोई प्रभाव नहीं पड़ता है, लेकिन सभी आवृत्तियों पर खुले लूप का लाभ बढ़ जाता है। तो आप क्या कर रहे हैं जब आप उन सभी मैनुअल ट्यूनिंग विधियों में आनुपातिक लाभ में वृद्धि कर रहे हैं, जहां चरण -180 पर जाता है, आवृत्ति की खोज कर रहे हैं। अपनी आवृत्ति प्रतिक्रिया पर विभिन्न नियंत्रणों के प्रभाव के बारे में कुछ और विचार प्राप्त करने के लिए इसे देखें ।
काफी बार सबसे अच्छा बंद लूप प्रदर्शन हो रहा है जिसमें सिस्टम को जोड़ना और न केवल नियंत्रक लाभ शामिल हैं। आप जो चाहते हैं वह सिस्टम को "कठोर" बनाना है। यह आपको नियंत्रण मापदंडों को रैंप करने देगा और सबसे अच्छा खुला और बंद लूप बैंडविड्थ प्राप्त करेगा। मोटर नियंत्रण अनुप्रयोगों में मेरे अनुभव में आनुपातिक लाभ वह है जो "काम" और इंटीग्रेटर "आराम" में से अधिकांश करना चाहिए। मुझे नहीं लगता कि आपको एक डी शब्द की आवश्यकता है। कम पास फिल्टर और एक पायदान फिल्टर होने से उन स्थितियों में बहुत मदद मिलती है, जहां आपके पास कुछ यांत्रिक अनुनाद हो सकते हैं, लेकिन बिना बोड प्लॉट के उन्हें स्थापित करना बहुत मुश्किल है (बंद लूप के तहत आपके द्वारा देखे जाने वाले दोलन आवृत्ति खुले लूप एक से भिन्न हो सकती है)।
यदि सुरक्षा एक चिंता है (बहुत शक्तिशाली मोटर्स या एक प्रणाली जो नियंत्रण से बाहर जाने वाली मोटर द्वारा नष्ट हो सकती है) तो आपको सिस्टम की सुरक्षा के लिए ट्यूनिंग (जैसे वर्तमान सीमा, अधिकतम स्थिति त्रुटि) शुरू करने से पहले कुछ सीमाएं डालनी होंगी। फिर आपको मापदंडों की सीमा के लिए किसी प्रकार का अनुभव प्राप्त करने की आवश्यकता है। यदि आपकी प्रतिक्रिया में प्रति चक्कर 40 गिनती या रोटेशन की 4000 गणना है, तो आपके पैरामीटर किसी दिए गए सिस्टम के लिए 100 का कारक होगा। मेरा दृष्टिकोण सबसे पहले एक ऐसी सीमा को खोजना होगा, जहां आपके पास कुछ खराब नियंत्रणीयता है और फिर पी के साथ शुरू होने से रैंप पर है और फिर मैं (हालांकि फिर से आप अंधा हो रहे हैं)। बैकिंग इस स्थिरता मार्जिन बनाता है।
बंद लूप से परे
बंद लूप सिस्टम से त्रुटि को बाहर निकालने का प्रयास करता है। यह हमेशा कुछ हद तक सीमित प्रदर्शन करने वाला है। आप जो करना चाहते हैं वह त्रुटि आपके बंद लूप नियंत्रक को देखता है और ऐसा करने का एक तरीका है जो फ़ीड फॉरवर्ड नामक तकनीक के माध्यम से होता है। फीड-फ़ॉरवर्ड में आप कंट्रोलर के चारों ओर जाते हैं और सिस्टम पर सीधे कमांड चलाते हैं। इसका एक उदाहरण त्वरण फ़ीड-फारवर्ड होगा। यदि आप जानते हैं कि आप मोटर के टॉर्क स्थिर हैं और आप लोड को जानते हैं तो आप बहुत कुछ बता सकते हैं कि लोड के एक निश्चित त्वरण को प्राप्त करने के लिए आपको कितने करंट की आवश्यकता होती है। आप बस कमांड इनपुट त्वरण लेते हैं, इसे एक स्थिर से गुणा करते हैं और नियंत्रक ड्राइव कमांड में जोड़ते हैं। आप मूल रूप से वही कर रहे हैं जो सिस्टम को चलाने के लिए होगा यदि कोई नियंत्रक नहीं था और करीब आप कम त्रुटि प्राप्त कर सकते हैं जो आपके लूप को बाहर निकालना है और आपका सिस्टम बेहतर प्रदर्शन करेगा। यह अभ्यास में एक बड़ा अंतर बनाता है।
ज़िगलर-निकोल्स एक आसान मैनुअल विधि है। अधिक मजबूत तरीके भी मौजूद हैं - ये आमतौर पर गणितीय समाधान (विश्लेषणात्मक, पुनरावृत्ति अनुकूलन, आदि) पर निर्भर करते हैं
इसके अलावा, कुछ स्वचालित तकनीकों के लिए Google "स्व-ट्यूनिंग पीआईडी"। मेरा पसंदीदा पीआईडी ट्यूनिंग के लिए तंत्रिका नेटवर्क का अनुप्रयोग है।
0.01sec
) के लिए समय 20secs
एक के रूप में 3
एक्स 2000
मैट्रिक्स)ज़िग्लर-निकोल्स नामक एक त्वरित दृष्टिकोण है :