माइक्रोकंट्रोलर द्वारा पिड नियंत्रण कैसे प्राप्त करें

Jun 25, 2025 एक संदेश छोड़ें

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


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


माइक्रोकंट्रोलर के साथ पीआईडी ​​एल्गोरिदम को साकार करने का विचार क्या है?


माइक्रोकंट्रोलर पर पीआईडी ​​नियंत्रण एल्गोरिदम को साकार करने के लिए, प्राप्ति का सामान्य विचार निम्नलिखित है:


1. **पीआईडी ​​पैरामीटर निर्धारित करें**:


- वास्तविक नियंत्रण वस्तु की विशेषताओं और आवश्यकताओं के अनुसार, उपयुक्त आनुपातिकता गुणांक (Kp), एकीकरण समय (Ti) और विभेदन समय (Td) का चयन करें।


2. **सेंसर डेटा अधिग्रहण**:


- वास्तविक समय में नियंत्रण वस्तु से फीडबैक डेटा एकत्र करने के लिए उपयुक्त सेंसर (उदाहरण के लिए, तापमान सेंसर, स्थिति सेंसर इत्यादि) का उपयोग करें।


3. **मूल्य निर्धारित करें और फीडबैक मूल्य तुलना**:


- निर्धारित मान (वांछित मान) की तुलना फीडबैक मान से करें और त्रुटि मान (त्रुटि) की गणना करें।


4. **पीआईडी ​​गणना**:


- नियंत्रण राशि (आउटपुट) की गणना पीआईडी ​​एल्गोरिदम सूत्र के अनुसार की जाती है: पीआईडी ​​= केपी * त्रुटि + की * ∫ त्रुटि डीटी + केडी * डी(त्रुटि)/डीटी।


- Kp, Ki और Kd PID पैरामीटर हैं, त्रुटि त्रुटि मान है, ∫ त्रुटि dt अभिन्न पद को दर्शाता है और d(त्रुटि)/dt विभेदक पद को दर्शाता है।


5. **सीमा प्रबंधन** (वैकल्पिक):


- कुछ अनुप्रयोगों के लिए, नियंत्रण ऑब्जेक्ट की स्वीकार्य सीमा से अधिक होने से बचने के लिए आउटपुट मान की सीमा को सीमित करना आवश्यक हो सकता है।


6. **आउटपुट कंट्रोल सिग्नल**:


- नियंत्रण वस्तु के विनियमन और नियंत्रण का एहसास करने के लिए गणना की गई नियंत्रण मात्रा एक्चुएटर (जैसे मोटर, वाल्व, आदि) के लिए नियंत्रण संकेत के रूप में आउटपुट होती है।


7. **नियंत्रण आवृत्ति सेट करें**:


- विशिष्ट अनुप्रयोगों की आवश्यकताओं के अनुसार, एल्गोरिथम के निष्पादन चक्र को नियंत्रित करने के लिए उचित नियंत्रण आवृत्ति निर्धारित करें।


8. **पीआईडी ​​एल्गोरिदम का चक्र निष्पादन**:


- वास्तविक समय चक्र में, फीडबैक मूल्य की लगातार निगरानी करने, नियंत्रण मात्रा की गणना करने और वस्तु के स्थिर नियंत्रण का एहसास करने के लिए नियंत्रण सिग्नल आउटपुट करने के लिए उपरोक्त चरणों को बार-बार निष्पादित किया जाता है।


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


पीआईडी ​​नियंत्रक सिद्धांत और वर्कफ़्लो


पीआईडी ​​नियंत्रक में तीन भाग होते हैं: आनुपातिक (पी), अभिन्न (आई) और अंतर (डी), और सिस्टम की त्रुटि, विचलन और परिवर्तन की दर को संसाधित करके नियंत्रण आउटपुट उत्पन्न करता है। इसके वर्कफ़्लो में निम्नलिखित चरण शामिल हैं:


- लक्ष्य और फीडबैक मान प्राप्त करना

- त्रुटि की गणना करें

- आनुपातिकता गुणांक, अभिन्न पद और विभेदक पद के आधार पर नियंत्रण आउटपुट की गणना करें।

- नियंत्रक मापदंडों को अद्यतन कर रहा है

- आउटपुट नियंत्रण सिग्नल

 


STM32 कोड कार्यान्वयन


STM32 माइक्रोकंट्रोलर का उपयोग करके PID नियंत्रक को डिज़ाइन और कार्यान्वित करने के लिए नमूना कोड निम्नलिखित है:


```c

#शामिल है "stm32f4xx.h"

// पीआईडी ​​नियंत्रक मापदंडों को परिभाषित करें

फ्लोट केपी=0.5; // पैमाने का कारक

फ्लोट की=0.2; // अभिन्न गुणांक

फ्लोट केडी=0.1; // विभेदक गुणांक

// स्टोरेज वेरिएबल्स को परिभाषित करें

फ्लोट सेटपॉइंट=50.0; // लक्ष्य मान

फ़्लोट फ़ीडबैक=0.0; // प्रतिक्रिया मूल्य

फ़्लोट त्रुटि=0.0; // गलती

फ़्लोट अंतिम_त्रुटि=0.0; // अंतिम त्रुटि

फ्लोट इंटीग्रल=0.0; //अभिन्न शब्द

// पीआईडी ​​नियंत्रक आउटपुट गणना फ़ंक्शन

फ्लोट पिडकंट्रोलर(फ्लोट डीटी)

फ्लोट पिडकंट्रोलर(फ्लोट डीटी) {

// त्रुटि की गणना करें

त्रुटि=सेटपॉइंट - फीडबैक; // अभिन्न पद की गणना करें।

// अभिन्न पद की गणना करें

अभिन्न += त्रुटि * डीटी; // विभेदक पद की गणना करें

// अंतर की गणना करें

फ़्लोट व्युत्पन्न=(त्रुटि - अंतिम_त्रुटि) / डीटी; // नियंत्रण आउटपुट की गणना करें।

// नियंत्रण आउटपुट की गणना करें

फ्लोट आउटपुट=केपी * त्रुटि + की * इंटीग्रल + केडी * व्युत्पन्न; // नियंत्रण आउटपुट की गणना करें।

// अंतिम त्रुटि अद्यतन करें

अंतिम_त्रुटि=त्रुटि; // अंतिम त्रुटि अद्यतन करें।

अंतिम_त्रुटि=त्रुटि; वापसी आउटपुट; // नियंत्रण आउटपुट की गणना करें।

}

पूर्णांक मुख्य(शून्य)

{

जबकि(1)

{

// फीडबैक मूल्य प्राप्त करें

// समय अंतराल प्राप्त करें

// पीआईडी ​​आउटपुट की गणना करें

फ्लोट डीटी=0.01; // उदाहरण में समय अंतराल के रूप में 0.01s

फ्लोट कंट्रोल_आउटपुट=pidController(dt); // नियंत्रण संकेत आउटपुट करें।

// नियंत्रण संकेत आउटपुट करें

// एक निश्चित अवधि के लिए नियंत्रण संकेत को विलंबित करें

(int i=0; i 《 10000;i++) के लिए।

}

वापसी 0; }

}

जांच भेजें

whatsapp

टेलीफोन

ईमेल

जांच