जेड ट्रांसफॉर्म किए गए पीआईडी ​​इम्प्लांटेशन से क्या फायदा है?


29

मैं इस तरह के रूप में कई पीआईडी लेख, देखा है यह , एक जेड सामान्य पीआईडी समीकरण के बदलने कुछ पागल अंतर समीकरण जो तब सॉफ्टवेयर में लागू किया जा सकता (या इस मामले में एक FPGA) प्राप्त करने के लिए इस्तेमाल करते हैं। मेरा सवाल यह है कि इस तरह के कार्यान्वयन के लिए क्या फायदा है, पारंपरिक और बहुत अधिक सहज ज्ञान युक्त, पीएचडी बिना पीएचडीकार्यान्वयन? दूसरा समझने और लागू करने में आसान लगता है। पी शब्द सीधा गुणा है, अभिन्न एक चल रहे योग का उपयोग करता है और व्युत्पन्न का अनुमान मौजूदा नमूने से पिछले नमूने को घटाकर किया जाता है। यदि आपको इंटीग्रल विंडअप सुरक्षा जैसे फीचर को जोड़ने की आवश्यकता है, तो यह सीधे आगे बीजगणित है। इंटीग्रल विंडअप सुरक्षा या अन्य सुविधाओं को एक अंतर प्रकार के एल्गोरिथ्म में जोड़ने की कोशिश करना, जैसे कि ऊपर लिंक किया गया है, ऐसा लगता है कि यह बहुत अधिक जटिल होगा। क्या इस तरह के कार्यान्वयन का उपयोग करने का कोई कारण है, "मैं एक बुरा गधा हूं जो जेड को मज़ेदार बनाने के लिए पसंद करता है" प्रकार डींग मारने के अधिकार जो इसके साथ जाते हैं?

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

अंतिम संस्करण: प्रतिक्रियाओं के लिए धन्यवाद। मुझे लगता है कि मैंने प्रत्येक के बारे में थोड़ा सीखा है, लेकिन अंत में, लगता है कि एंगर सही है कि यह केवल वरीयता का मामला है। दो रूप:

e(k-2)=e(k-1),

u(k)=u(k1)+Kp(e(k)e(k1)+KiTie(k)+KTमैं((कश्मीर)-2(कश्मीर-1)+(कश्मीर-2))
u ( k - 1 ) = u ( k )
e(k2)=e(k1),e(k1)=e(k)
u(k1)=u(k)

या

sum=sum+e(k)
e(k-1)=e(k)
u(k)=Kpe(k)+KiTisum+KdTi(e(k)e(k1))
e(k1)=e(k)

अनिवार्य रूप से एक ही चीज का मूल्यांकन करेगा। कुछ का उल्लेख पहले एक डीएसपी या FPGA में तेजी से लागू किया जा सकता है, लेकिन मैं इसे खरीद नहीं है। या तो वेक्टर किया जा सकता है। पहले को दो पोस्ट ऑपरेशन की आवश्यकता होती है, दूसरे को एक पूर्व और एक पोस्ट ऑपरेशन की आवश्यकता होती है, इसलिए यह बाहर भी दिखाई देता है। पहले को वास्तविक गणना में 1 और गुणा की आवश्यकता होती है।


क्या आपका मतलब "अंतर समीकरण" था?
केविन वर्मियर

मुझे आपकी टिप्पणियों को गलत समझना चाहिए, इस प्रतिक्रिया के आधार पर मैंने कम से कम किया। मैं अपनी टिप्पणी हटा दूंगा!
कोर्तुक

1
कृपया dsp.stackexchange.com
जेसन एस

जवाबों:


7

आप सभी को Z- परिवर्तन की काल्पनिकता से रूबरू करवा रहे हैं। दो दृष्टिकोण मौलिक रूप से समान हैं - PHD दृष्टिकोण के बिना PID के पास बस कम सदस्यताएँ हैं। वे एक ही मूल कार्य करते हैं और एक ही मूल गणित का उपयोग करते हैं।

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

यह भी दिखता है कि जेड-ट्रांसफॉर्म अप्रोच को लागू करने वाले केस स्टडी को अत्यधिक नियतात्मक बनाया गया था। यह उनके FPGAs के उपयोग की व्याख्या करता है - गणना हमेशा समान समय लेगी। PHD कार्यान्वयन के बिना PID निश्चित रूप से नियतात्मक नहीं है। फिक्स्ड-पॉइंट कार्यान्वयन के बजाय चर के रूप में डबल्स का उपयोग फ्लोटिंग-पॉइंट यूनिट के बिना किसी भी माइक्रोकंट्रोलर (और शायद एफपीयू के साथ यूसीएस पर भी) के बिना गैर-नियतात्मक व्यवहार का कारण होता है। केस अध्ययन PID w / o PHD दृष्टिकोण की तुलना में जटिलता के एक पूरे अलग स्तर पर काम कर रहा है।

इसलिए मौलिक रूप से गणित और नियंत्रण का दृष्टिकोण समान है, लेकिन केस स्टडी / जेड-ट्रांसफॉर्म दृष्टिकोण अधिक कठोर और सैद्धांतिक रूप से आधारित है। पीआईडी ​​डब्ल्यू / ओ पीएचडी दृष्टिकोण केवल बहुत सरल, गैर-समय-महत्वपूर्ण प्रणाली के लिए काम करेगा जो अपेक्षाकृत स्थिर हैं।


PHD लेख के बिना PID सरल कार्यान्वयन का एक उदाहरण है, जो अभिन्न के लिए एक रनिंग योग और व्युत्पन्न के लिए लगातार नमूनों के बीच अंतर का उपयोग करता है। लेख में कहा गया है कि नमूना समय सुसंगत होना चाहिए। नमूनाकरण समय को आसानी से I और D गणना में जोड़ा जा सकता है, लेकिन ज्यादातर उदाहरणों में वास्तविक गणना में ऐसा नहीं किया जाता है। नियंत्रक का GUI (या अन्य इंटरफ़ेस) लूप समय के आधार पर सेकंड के संदर्भ में उपयोगकर्ता को I और D शब्द प्रस्तुत करेगा।
bt2

@ bt2 ऐसा लगता है कि आपके पास एक बहुत विशिष्ट मामला है जहां PID w / oa PhD सबसे अच्छा तरीका है। अधिकांश प्रणालियों में किसी भी तरह से I और D शब्दों का प्रदर्शन नहीं होता है। यह PID कंट्रोलर का परिणाम है जो सिस्टम पर कुछ बदलाव करता है और फिर वापस उसी पर लूप हो जाता है। यदि आप केवल एक उपयोगकर्ता को प्रदर्शित कर रहे हैं तो वास्तव में स्थिरता के बारे में चिंता करने का कोई कारण नहीं है।
कालेनजब

"पीआईडी ​​डब्ल्यू / ओ पीएचडी दृष्टिकोण केवल बहुत सरल के लिए काम करेगा," - मैं असहमत हूं। जेड-ट्रांसफॉर्म विश्लेषण का उपयोग करके आप निश्चित रूप से डिजिटल नियंत्रण प्रणालियों का अनुकूलन कर सकते हैं, लेकिन फ्लिप पक्ष यह है कि आप अपने सिस्टम को मॉडलिंग में पकड़ सकते हैं ताकि आप पेड़ों के लिए जंगल को याद कर सकें।
जेसन एस

10

पीआईडी ​​नियंत्रक को डिजाइन करने का जेड-ट्रांसफॉर्म विधि अंततः अधिक कुशल कार्यान्वयन प्राप्त करेगा। यदि आप आवेदन के लिए सबसे छोटे FPGA / DSP / Microcontroller के लिए डिजाइन कर रहे हैं तो यह महत्वपूर्ण है।

उल्लेखित "पीआईडी ​​विदाउट पीएचडी" शायद सॉफ्टवेयर में पीआईडी ​​नियंत्रण को लागू करने का सबसे आसान तरीका है, लेकिन यह उच्च नमूनाकरण दर पर बोझिल हो जाता है।

इसके अतिरिक्त, Z- ट्रांसफॉर्म एक असतत (डिजिटल) डोमेन में डिजाइन करने के लिए बेहतर उधार देता है। निरंतर समय के लिए डिजाइन की पारंपरिक (लाप्लास ट्रांसफॉर्म) विधि अधिक है। दो (ज़ीरो-ऑर्डर होल्ड, लीनियर इंटरपोलेशन, पोल प्लेसमेंट, बिलिनियर / टस्टिन) के बीच कनवर्ट करने के कई तरीके हैं, प्रत्येक इसमें सिस्टम की स्थिरता और प्रतिक्रिया के संदर्भ में ताकत और कमियां हैं। आम तौर पर असतत डोमेन में संपूर्ण डिज़ाइन करना आसान होता है।

लंबी कहानी छोटी, यदि आप अपेक्षाकृत "धीमी" प्रणाली का उपयोग कर रहे हैं (सभी प्रमुख व्यवहार 100kHz या तो के तहत महत्वपूर्ण रूप से होते हैं), तो पहला डिज़ाइन शायद ठीक है। आप इसे एक माइक्रोकंट्रोलर या पीसी पर लागू कर सकते हैं और इसके साथ किया जा सकता है। चूंकि सिस्टम तेज हो जाता है, तो आपको अपनी गति की आवश्यकता के लिए जेड-ट्रांसफॉर्म विधि का उपयोग करना पड़ सकता है (लेख में 9.5MHz का उल्लेख है, यह मानते हुए कि आपके पास ए / डी और डीएसी है जो रख सकते हैं)।


1
गणित कार्यों की एक ही संख्या, संख्याओं का अलग-अलग प्रतिनिधित्व। डबल्स केस स्टडी में उपयोग की जाने वाली निश्चित-बिंदु विधि की तुलना में संख्याओं का अधिक जटिल प्रतिनिधित्व है। कम जटिल का मतलब है कम ऑपरेशन (सिलिकॉन पर)।
एंग्रीईईई

2
@ bt2, मैं इस अर्थ में अधिक कुशल कहूंगा कि डीएसपी चिप्स को SIMD (एकल निर्देश, एकाधिक डेटा) निर्देश सेट के लिए सेट किया गया है। जबकि यह गणित के संचालन की समान संख्या है, Z परिवर्तन आपको एक अनुदेश चक्र में सभी गुणा करने की अनुमति देता है, फिर परिणामी वेक्टर के सभी तत्वों को एक चक्र (प्लेटफ़ॉर्म आश्रित) में जोड़ देता है। जबकि गणित समान है, समय जटिलता काफी कम है, उच्च गति की उपज है।
mjcarroll

1
@ bt2 z-form एक अंतर समीकरण के रूप में क्रियान्वयन के लिए उधार देता है, जो केवल पिछले आउटपुट और वर्तमान इनपुट पर निर्भर करता है, बिना किसी रन योग की आवश्यकता के जो कुछ बिंदु पर अतिप्रवाह (या अंडरफ्लो) होगा। डीएसपी को अंतर समीकरण दृष्टिकोण के माध्यम से डिजिटल फिल्टर के कुशल कार्यान्वयन की अनुमति देने के लिए डिज़ाइन किया गया है। En.wikipedia.org/wiki/Digital_filter esp देखें । प्रत्यक्ष रूप - यही डीएसपी के लिए अनुकूलित है।
freespace

1
मुझे लगता है कि आप कुछ याद कर रहे हैं। सामान्य परिस्थितियों में बहने वाली राशि कभी भी ओवरफ्लो नहीं होगी। IIR फ़िल्टर हमेशा संतृप्त नहीं होगा, और PID नियंत्रण के मामले में, कि सामान्य रूप से ऐसा नहीं होगा। यह कहना कि यह एक एल्गोरिथ्म के साथ होगा लेकिन दूसरे के साथ गलत नहीं होगा। पिछली बार के आउटपुट के आधार पर रनिंग योग है। यदि कोई अतिप्रवाह करता है, तो वे दोनों करेंगे। इसे इस तरह से सोचें, दूसरा आरोपण पहले है, कुछ गणित के साथ बाहर ... यू (k-1) - kp (e (k-1) - kd / Ti (e (k-1) - e () k-2) == (चल राशि)
bt2

1
-1: जेड-ट्रांसफॉर्म आपको अधिक कुशल कार्यान्वयन नहीं देते हैं। वास्तव में, यदि आप बिलिनियर ट्रांसफॉर्मेशन का उपयोग करके 1-पोल कम-पास फिल्टर के लिए "भोली" डिजिटल विधि का उपयोग करके 1-पोल कम-पास फिल्टर की तुलना करते हैं, तो आपको इस दृष्टिकोण के साथ थोड़ा कम कुशल कार्यान्वयन मिलेगा। फ़िल्टर व्युत्पत्ति के बावजूद, कार्यान्वयन की समान दक्षता के बारे में = राज्य चर का एक ही #। बड़े हिस्से में यह एक स्वतंत्र मात्रा है जिस तरह से फ़िल्टर को डिज़ाइन किया गया था।
जेसन एस

5

मेरे अनुभव में यह सौदा है:

  • जेड ट्रांसफॉर्म कुछ विश्लेषण के लिए मदद करता है: असतत-समय-नमूना सिस्टम का सिद्धांत जेड ट्रांसफॉर्म के माध्यम से सबसे अच्छा मॉडल है।
  • PID कंट्रोलर या लो-पास फ़िल्टर का डिज़ाइन Z ट्रांसफ़ॉर्म के साथ-साथ शास्त्रीय विश्लेषण दोनों के माध्यम से किया जा सकता है, जिसमें से कई में से एक का उपयोग डेरिवेटिव / इंटीग्रल्स को निरंतर-समय से असतत-समय में बदलने के लिए किया जाता है। यदि आपके डंडे और शून्य नमूना दर की तुलना में कम आवृत्तियों पर हैं, तो इससे कोई फर्क नहीं पड़ता। जिस भी दृष्टिकोण से आप सबसे अधिक आत्मविश्वास महसूस करते हैं, उसके साथ रहें।
  • Z फ़िल्टर और नियंत्रकों की व्युत्पत्ति को अक्सर उन फ़िल्टर और नियंत्रकों के मापदंडों के भौतिक अर्थ को अस्पष्ट करता है। यदि मेरे पास एक अभिन्न लाभ, एक आनुपातिक लाभ और एक अंतर लाभ के साथ एक पीआईडी ​​लूप है, तो मुझे पता है कि उन मापदंडों में से प्रत्येक सीधे क्या करता है। यदि मैं Z- ट्रांसफ़ॉर्म का उपयोग करता हूं, तो वे केवल संख्याएँ हैं जिन्हें मुझे किसी तरह प्राप्त करना था।
  • फ़िल्टर और नियंत्रकों का कार्यान्वयन उन फ़िल्टर और नियंत्रकों के मापदंडों के भौतिक अर्थ को अस्पष्ट कर सकता है या नहीं कर सकता है । यह गुणवत्ता पिछले बिंदु से स्वतंत्र रूप से बड़े हिस्से में है: अगर मेरे पास जेड-ट्रांसफॉर्म-आधारित डिज़ाइन है, तो मैं इसे शास्त्रीय-दिखने वाले कार्यान्वयन में बदल सकता हूं, और इसके विपरीत। फाइनल ईडीआईटी के तहत आपका उदाहरण एक अच्छा है क्योंकि दूसरा कार्यान्वयन इंटीग्रेटर (" sum") को अपने स्वयं के राज्य चर में अलग रखता है । उस राज्य चर का अर्थ है। पहला कार्यान्वयन राज्य चर को त्रुटि के पिछले इतिहास के रूप में रखता है; इसका अर्थ है, लेकिन यह मेरी राय में कम अंतर्दृष्टि प्रदान करता है।

अंत में ग़ैर-असमानता या विश्लेषण से जुड़े अन्य मुद्दे हैं जो अक्सर आपको दूसरे पर एक कार्यान्वयन का चयन करते हैं (मेरे लिए यह हमेशा नियंत्रकों के लिए शास्त्रीय दृष्टिकोण है, एफआईआर फ़िल्टर के लिए यह ज़ेड ट्रांसफ़ॉर्म है, और 1- या 2-पोल IIR फ़िल्टर के लिए यह आमतौर पर है शास्त्रीय दृष्टिकोण):

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

  • उसी कारण से, मैं हमेशा एक आउटपुट-संदर्भित तरीके से इंटीग्रेटर की गणना करता हूं : उदाहरण के sum += Ki*error; out = stuff + sumबजाय sum += error; out = stuff + Ki*sum। दूसरे दृष्टिकोण के साथ, यदि आप लाभ की को बदलते हैं, तो यह आउटपुट के ऊपर और नीचे इंटीग्रेटर के प्रभाव को मापता है, जो संभवत: वह नहीं है जो आप चाहते हैं, और सीमा लाभ के आधार पर बदलती है। यदि आप एकीकृत करने से पहले Ki द्वारा गुणा त्रुटि करते हैं, तो इंटीग्रेटर की आपकी इकाइयां नियंत्रण लूप आउटपुट की इकाइयों के समान हैं, और इसका अधिक स्पष्ट भौतिक अर्थ है।

(अद्यतन: मैंने इस विषय पर और अधिक विस्तार से एक ब्लॉग प्रविष्टि लिखी है ।)


4

संपादित करें :

जेड-ट्रांसफॉर्म का उपयोग करना विश्लेषण के लिए एलटीआई सिस्टम को संयोजित करना और सरल बनाना आसान बनाता है । उदाहरण के लिए, स्थानांतरण कार्यों एच 1, एच 2, ..., एच के साथ केटीआई सिस्टम की एक कैस्केड श्रृंखला एक साधारण उत्पाद के रूप में संयोजित होगी H = H1*H2*...*Hk। इसके अलावा, एक नकारात्मक प्रतिक्रिया लूप का स्थानांतरण कार्य है T = G/(1 + G*H), जहां H फीडबैक पथ पर है। एक बार जब आपके पास एक संपूर्ण स्थानांतरण फ़ंक्शन होता है, तो आप डिज़ाइन को अनुकूलित करने के लिए अतिरिक्त फ़िल्टर और प्रतिक्रिया जोड़कर स्थिरता (ध्रुवों का स्थान) और प्रदर्शन (ट्रांज़िस्टर, स्थिर-राज्य त्रुटि) का विश्लेषण कर सकते हैं।

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

बाइकाड अनुभाग


आपका उत्तर प्रभावशाली लगता है, लेकिन मुझे बहुत पता नहीं है कि आपने क्या कहा। उदाहरण के लिए, परिमाणीकरण स्थिरता क्या है, और यह समीकरण के एक रूप से दूसरे के लिए कैसे बेहतर है?
bt2

1
ट्रांसफर फंक्शन H (z) एक रेशनल फंक्शन B (z) / A (z) है। Z में प्रत्येक बहुपद एक Nth आदेश प्रणाली के लिए N शून्य का एक कारक है। ए (जेड) के शून्य, हर में लोगों को ध्रुव कहा जाता है (यह प्रतिक्रिया पथ है)। एक निरंतर स्केलिंग कारक के लिए, एक रैखिक समय अनौपचारिक (LTI) प्रणाली को इसके शून्य और ध्रुवों द्वारा वर्णित किया गया है।
एरिक सन

1
एक असतत समय एलटीआई प्रणाली स्थिर है यदि इसके सभी पोल जेड-प्लेन पर यूनिट सर्कल के अंदर हैं। लेकिन परिमित डिजिटल परिशुद्धता के साथ परिमाणीकरण उस शोर का परिचय देता है जो एक प्रणाली को समय के साथ अस्थिरता में अस्थिर, अस्थिर या बहाव होने का कारण बन सकता है। H (z) को उत्पाद biquadratics (biquads) में विभाजित करके, इस तरह की त्रुटि को कम से कम किया जाता है।
एरिक सन

2
वास्तविक गुणांक वाले बहुपद के शून्य के बाद से एक बाइकाड पसंदीदा न्यूनतम विभाजन है या तो वास्तविक या जटिल संयुग्मों के जोड़े में है। Biquad B (z) / A (z) है (b0 + b1z ^ -1 + b2z ^ -2) / (a0 + a1z ^ -1 + a2z ^ -2)।
एरिक सन

मैंने जोड़ा और फिर क्वांटिज़ेशन शोर के लिए एक उदाहरण को हटा दिया, जो एक कैस्केड क्वाड्रेटिक की तुलना में एक सीधा 4 डी ऑर्डर पॉली है। लेकिन यह बहुत ज्यादा था। मुझे कुछ नींद लेने की जरूरत है। क्षमा करें, tyblu।
एरिक सन

3

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

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

और 1 अंतिम नोट। एक पूरे के रूप में एक प्रणाली का विश्लेषण करते समय आपको अपने सिस्टम के सभी घटकों के लिए समीकरण प्राप्त करने होंगे। सुनिश्चित करें कि आप इसे पीआईडी ​​w / oa पीएचडी से प्राप्त कर सकते हैं, लेकिन यदि आप पहले से ही इसके साथ काम कर रहे हैं तो Z- परिवर्तन विधि में अभी तक कम आगे और पीछे काम करना है जो आपको करना है।

अब, व्यक्तिगत प्राथमिकता के रूप में, मैं हमेशा PID w / oa PhD विधि का उपयोग करता हूं। यह सिर्फ इसलिए है क्योंकि मैं केवल उन सिस्टम वाले माइक्रो-कंट्रोलर का उपयोग कर रहा हूं जो कंट्रोलर पर बहुत अधिक निर्भर नहीं हैं।


2

कई बिंदु हैं कि जेड-ट्रांसफॉर्म के रूप में उच्च उपयोगिता क्यों है।

समय-आधारित / सरल / sans-PHD दृष्टिकोण को बढ़ावा देने वाले किसी से भी पूछें कि उनके Kd शब्द का सेट क्या है। वे 'शून्य' का उत्तर देने की संभावना रखते हैं और डी के अस्थिर (कम-पास फिल्टर के बिना) कहने की संभावना है। इससे पहले कि मैं सीखता कि यह सब कैसे एक साथ आता है, मैंने ऐसी बातें कही हैं।

समय-क्षेत्र में ट्यूनिंग केडी मुश्किल है। जब आप स्थानांतरण फ़ंक्शन (पीआईडी ​​उप-प्रणाली का जेड-ट्रांसफॉर्म) देख सकते हैं, तो आप आसानी से देख सकते हैं कि यह कितना स्थिर है। आप यह भी आसानी से देखते हैं कि डी शब्द अन्य मापदंडों के सापेक्ष नियंत्रक को कैसे प्रभावित कर रहा है। यदि आपका Kd पैरामीटर z-बहुपद गुणांक में 0.00001 का योगदान देता है लेकिन आपका Ki शब्द 10.5 में लगा रहा है तो सिस्टम पर वास्तविक प्रभाव डालने के लिए आपका D शब्द बहुत छोटा है। आप केपी और की शर्तों के बीच संतुलन भी देख सकते हैं।

DSP की परिमित-अंतर-समीकरणों (FDE) की गणना करने के लिए डिज़ाइन किया गया है। उनके पास ऑप-कोड होते हैं जो एक गुणांक को गुणा करेंगे, एक संचयकर्ता को योग देंगे, और एक अनुदेश चक्र में बफर में एक मान को शिफ्ट करेंगे। यह FDE के समानांतर प्रकृति का शोषण करता है। यदि मशीन में इस op-code की कमी है ... यह DSP नहीं है। एंबेडेड पावरपीसी (एमपीसी) में एफडीई की गणना के लिए एक परिधीय समर्पित है (वे इसे डेक्मिटेशन यूनिट कहते हैं)। डीएसपी को FDE की गणना करने के लिए डिज़ाइन किया गया है क्योंकि स्थानांतरण-फ़ंक्शन को FDE में बदलने के लिए यह तुच्छ है। 16-बिट्स गुणांक को आसानी से निर्धारित करने के लिए काफी पर्याप्त गतिशील रेंज नहीं है। कई प्रारंभिक डीएसपी के वास्तव में इस कारण से 24-बिट शब्द थे (मेरा मानना ​​है कि 32-बिट शब्द आज आम है।)

IIRC, तथाकथित बिलिनियर ट्रांसफ़र एक ट्रांसफ़र फ़ंक्शन (टाइम-डोमेन-नियंत्रक का एक ज़ेड-ट्रांसफ़ॉर्मेशन) लेता है और इसे FDE में बदल देता है। साबित करना 'कठिन' है, परिणाम प्राप्त करने के लिए इसका उपयोग करना तुच्छ है - आपको बस विस्तारित रूप की आवश्यकता है (सब कुछ बाहर गुणा करें) और बहुपद गुणांक FDE गुणांक हैं।

एक पीआई नियंत्रक एक महान दृष्टिकोण नहीं है - एक बेहतर तरीका यह है कि आपका सिस्टम कैसे व्यवहार करता है और त्रुटि सुधार के लिए पीआईडी ​​का उपयोग करने का एक मॉडल तैयार करना है। मॉडल सरल होना चाहिए और जो आप कर रहे हैं उसके बुनियादी भौतिकी पर आधारित है। यह कंट्रोल-ब्लॉक में फीड-फॉरवर्ड है। एक पीआईडी ​​ब्लॉक तब नियंत्रण में प्रणाली से प्रतिक्रिया का उपयोग करके त्रुटि के लिए सही करता है।

यदि आप सेट-पॉइंट (संदर्भ), फीडबैक और फीड-फ़ॉरवर्ड के लिए सामान्यीकृत मानों, [-1 .. 1] या [0 ... 1] का उपयोग करते हैं तो आप एक 2-पोल 2-शून्य एल्गोरिदम को लागू कर सकते हैं अनुकूलित डीएसपी असेंबली और आप इसका उपयोग किसी भी 2 ऑर्डर फिल्टर को लागू करने के लिए कर सकते हैं जिसमें पीआईडी ​​और सबसे बुनियादी कम-पास (या हाई-पास) फिल्टर शामिल हैं। यही कारण है कि डीएसपी के ऑप-कोड होते हैं जो सामान्यीकृत मानों को ग्रहण करते हैं, उदाहरण के लिए, रेंज के लिए उलटा-स्क्वररूट का एक अनुमान आउटपुट करेगा (0..1) आप श्रृंखला में दो 2p2z फ़िल्टर डाल सकते हैं और 4p2z फ़िल्टर बना सकते हैं, यह अनुमति देता है आप अपने 2p2z डीएसपी कोड का लाभ उठाने के लिए कहें, 4-टैप लो-पास बटरवर्थ फ़िल्टर लागू करें।

अधिकांश समय-डोमेन कार्यान्वयन पीटी मापदंडों (केपी / की / केडी) में डीटी अवधि को सेंकते हैं। अधिकांश z- डोमेन कार्यान्वयन नहीं हैं। dt को समीकरणों में रखा जाता है, जो Kp, Ki, और Kd लेते हैं और उन्हें एक [] & b [] गुणांक में बदल देते हैं ताकि PID नियंत्रक का आपका अंशांकन (ट्यूनिंग) अब नियंत्रण दर से स्वतंत्र हो जाए। आप इसे दस गुना तेजी से चला सकते हैं, एक [] और बी [] गणित को क्रैंक करते हैं और पीआईडी ​​नियंत्रक के पास लगातार प्रदर्शन होगा।

FDE का उपयोग करने का एक स्वाभाविक परिणाम यह है कि एल्गोरिथ्म अंतर्निहित रूप से "ग्लिचलेस" है। आप दौड़ते समय लाभ (Kp / Ki / Kd) को बदल सकते हैं और यह अच्छी तरह से व्यवहार किया जाता है - समय-डोमेन कार्यान्वयन के आधार पर यह खराब हो सकता है।

इंटीग्रल विंड-अप को रोकने के लिए आमतौर पर बहुत सारे प्रयास समय-डोमेन पीआईडी ​​नियंत्रकों पर खर्च किए जाते हैं। FDE फॉर्म के साथ एक सरल ट्रिक है जो PID को अच्छी तरह से व्यवहार करता है, आप इतिहास बफ़र में इसका मूल्य क्लैंप कर सकते हैं। मैंने यह देखने के लिए गणित नहीं किया है कि यह फ़िल्टर के व्यवहार (केपी / की / केडी मापदंडों के संबंध में) को कैसे प्रभावित करता है, लेकिन अनुभवजन्य परिणाम यह है कि यह 'चिकनी' है। यह FDE फॉर्म की 'ग्लिचलेस' प्रकृति का शोषण कर रहा है। फ़ीड-फ़ॉरवर्ड मॉडल अभिन्न पवन-अप को रोकने में योगदान देता है और डी शब्द का उपयोग I अवधि को संतुलित करने में मदद करता है। पीआईडी ​​वास्तव में डी-गेन के साथ काम नहीं करता है। (स्लीविंग सेटपॉइंट्स हवा की अधिकता को रोकने के लिए एक अन्य महत्वपूर्ण विशेषता है।)

अंत में, Z- ट्रांसफ़ॉर्म एक अंडरग्रेजुएट विषय हैं "Ph.D." आपको कॉम्प्लेक्स एनालिसिस में उनके बारे में सीखना चाहिए था। यह वह जगह है जहां आप जाते हैं, आपके पास प्रशिक्षक, और आपके द्वारा गणित सीखने और उपलब्ध साधनों का उपयोग करने का प्रयास उद्योग में प्रदर्शन करने की आपकी क्षमता में महत्वपूर्ण अंतर ला सकता है। (मेरा जटिल विश्लेषण वर्ग भयानक था।)

डिफैक्टो उद्योग उपकरण सिमुलिंक है (जिसमें कंप्यूटर-बीजगणित-प्रणाली, कैस का अभाव है, इसलिए आपको सामान्य समीकरणों को क्रैंक करने के लिए एक और उपकरण की आवश्यकता है)। MathCAD या wxMaxima प्रतीकात्मक सॉल्वर हैं जिन्हें आप पीसी पर उपयोग कर सकते हैं और मैंने यह सीखा कि कैसे इसे TI-92 कैलकुलेटर का उपयोग करना है। मुझे लगता है कि TI-89 में भी CAS सिस्टम है।

आप PID & लो-पास फ़िल्टर के लिए विकिपीडिया पर z- डोमेन या लैपल्स-डोमेन समीकरण देख सकते हैं। यहाँ एक कदम है जो मुझे नहीं खटकता है, मेरा मानना ​​है कि आपको पीआईडी ​​नियंत्रक के असतत-समय-डोमेन रूप की आवश्यकता है, फिर इसके z- रूपान्तरण की आवश्यकता है। लैप्लस ट्रांसफ़ॉर्मेशन ज़ेड-ट्रांसफ़ॉर्म के समान होना चाहिए और पीआईडी ​​{एस} = केपी + की / एस + केडी के रूप में दिया जाता है। मुझे लगता है कि जेड-ट्रांसफॉर्मेंस निम्नलिखित समीकरणों में डीईए के लिए बेहतर खाता होगा। Dt डेल्टा-टी [ime] है, मैं एक व्युत्पन्न 'dt' के साथ इस स्थिरांक को भ्रमित न करने के लिए Dt का उपयोग करता हूँ।

b[0] = Kp + (Ki*Dt/2) + (Kd/Dt)
b[1] = (Ki*Dt/2) - Kp - (2*Kd/Dt)
b[2] = Kd/Dt

a[1] = -1
a[2] = 0

और यह 2p2z FDE है:

y[n] = b[0]·x[n] + b[1]·x[n-1] + b[2]·x[n-2] - a[1]·y[n-1] - a[2]·y[n-2]

डीएसपी का आमतौर पर केवल एक गुणा और जोड़ होता है (एक गुणा और घटाना नहीं) ताकि आप एक [] गुणांकों में लुढ़का हुआ नकारात्मकता देख सकें। अधिक ध्रुवों के लिए अधिक बी जोड़ें, अधिक शून्य के लिए अधिक जोड़ें।


1

जेड ट्रांसफ़ॉर्म विधि का सामान्य रूप से उपयोग करना बेहतर है, क्योंकि ऐसा करने से, आप समकक्ष एनालॉग सिस्टम के सटीक व्यवहार को संरक्षित करते हैं। ज़िग्लर-निकोल्स की तरह प्रसिद्ध ट्यूनिंग विधियाँ हैं, जो प्रकाशित होते ही एनालॉग डोमेन में काम करती हैं। यदि आप Z ट्रांसफ़ॉर्म विधि का उपयोग करते हैं, तो आपको गणितीय रूप से कठोर अपेक्षा है कि आपके परिणामी नियंत्रक P, I और D के समान मूल्यों के लिए एक ही काम करेंगे, जो कि उन लाभ को देखते हुए एनालॉग डोमेन में करेगा। साथ ही आप सिस्टम के लिए एक असतत रूट-लोको आकर्षित कर सकते हैं और दिए गए लाभ के सेट के लिए स्थिरता की भविष्यवाणी कर सकते हैं, जो कोड में सीधे एक तदर्थ नियंत्रक बनाने पर नहीं कर सकता।

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