Cum se realizează controlul pid de către microcontroler

Jun 25, 2025 Lăsaţi un mesaj

Algoritmul de control PID este un algoritm de control utilizat pe scară largă, controlul PID are avantajele parametrilor reglabili, gamă largă de aplicații, precizie ridicată de control. În inginerie practică, algoritmul PID poate fi aplicat controlului electromecanic, automatizării industriale, controlului roboților, controlului cu microprocesor și multe alte domenii.


Cei trei parametri ai algoritmului PID sunt ajustați: constanta de proporționalitate Kp, constanta de timp integrală Ti, constanta de timp diferenţială Td. Diferite sisteme trebuie să seteze diferiți parametri PID și, în general, este necesar să se obțină parametrii optimi prin experimente și depanare. Constanta de proporționalitate Kp ajustează proporția, ajustând raportul de eroare de ieșire și feedback în sistemul de control; constanta de timp integrală Ti ajustează integrala, ajustând acumularea de erori în sistemul de control; constanta de timp diferențială Td ajustează diferența, ajustând rata de modificare a erorii în sistemul de control.


Care este ideea de a realiza algoritmul pid cu microcontroler


Pentru a realiza algoritmul de control PID pe un microcontroler, următoarea este ideea generală de realizare:


1. **Determinați parametrii PID**:


- În funcție de caracteristicile și nevoile obiectului de control real, selectați coeficientul de proporționalitate (Kp), timpul de integrare (Ti) și timpul de diferențiere (Td) corespunzător.


2. **Achiziție de date senzor**:


- Utilizați senzori corespunzători (de exemplu, senzori de temperatură, senzori de poziție etc.) pentru a colecta date de feedback de la obiectul de control în timp real.


3. **Valoarea setată și compararea valorii de feedback**:


- Comparați valoarea setată (valoarea dorită) cu valoarea de feedback și calculați valoarea erorii (Eroare).


4. **Calcul PID**:


- Cantitatea de control (ieșire) este calculată conform formulei algoritmului PID: PID=Kp * Eroare + Ki * ∫ Eroare dt + Kd * d(Eroare)/dt.


- Kp, Ki și Kd sunt parametrii PID, Error este valoarea erorii, ∫ Error dt denotă termenul integral și d(Eroare)/dt denotă termenul diferenţial.


5. **Manipulare limită** (opțional):


- Pentru unele aplicații, poate fi necesar să se limiteze intervalul valorii de ieșire pentru a evita depășirea intervalului acceptabil al obiectului de control.


6. **Semnal de control de ieșire**:


- Cantitatea de control calculată este transmisă ca semnal de control către actuator (de exemplu, motor, supapă etc.) pentru a realiza reglarea și controlul obiectului de control.


7. **Setarea frecvenței de control**:


- În funcție de nevoile aplicațiilor specifice, setați frecvența de control adecvată pentru a controla ciclul de execuție al algoritmului.


8. **Executarea ciclului a algoritmului PID**:


- În ciclul-în timp real, pașii de mai sus sunt executați în mod repetat pentru a monitoriza în mod continuu valoarea de feedback, a calcula cantitatea de control și a emite semnalul de control pentru a realiza controlul stabil al obiectului.


În programarea propriu-zisă a microcontrolerului, puteți alege instrumentele de dezvoltare și limbajul de programare adecvat (cum ar fi C sau limbajul de asamblare) în funcție de modelul specific de microcontroler și platforma de dezvoltare. Trebuie remarcat faptul că în aplicațiile practice vor exista multe tehnici de optimizare și îmbunătățire a algoritmului PID, precum separarea integrală, PID adaptiv etc., care pot fi cercetate și implementate în continuare în funcție de nevoile specifice.


Principiul controlerului PID și fluxul de lucru


Controlerul PID constă din trei părți: proporțional (P), integral (I) și diferențial (D) și generează ieșirea de control prin procesarea erorii, abaterii și ratei de schimbare a sistemului. Fluxul său de lucru include următorii pași:


- Obținerea valorilor țintă și feedback

- Calculați eroarea

- Calculați rezultatul de control pe baza coeficientului de proporționalitate, a termenului integral și a termenului diferențial.

- Actualizarea parametrilor controlerului

- Emite semnale de control

 


Implementarea codului STM32


Următorul este exemplu de cod pentru proiectarea și implementarea unui controler PID folosind un microcontroler STM32:


```c

#include „stm32f4xx.h”

// Definiți parametrii controlerului PID

float Kp=0.5; // factor de scară

float Ki=0.2; // Coeficient integral

float Kd=0.1; // Coeficient diferențial

// Definiți variabilele de stocare

punct de referință flotant=50.0; // valoarea țintă

feedback float=0.0; // valoarea feedback-ului

eroare float=0.0; // eroare

float ultima_eroare=0.0; // ultima eroare

float integral=0.0; // Termen integral

// Funcția de calcul a ieșirii controlerului PID

float pidController (float dt)

float pidController(float dt) {

// Calculați eroarea

eroare=punct de referință - feedback; // Calculați termenul integral.

// Calculați termenul integral

eroare integrală += * dt; // calculează termenul diferenţial

// Calculați diferența

derivată float=(eroare - ultima_eroare) / dt; // calculează ieșirea de control.

// Calculați ieșirea de control

ieșire float=Kp * eroare + Ki * integrală + Kd * derivată; // Calculați ieșirea de control.

// Actualizați ultima eroare

ultima_eroare=eroare; // actualizați ultima eroare.

ultima_eroare=eroare; ieșire de retur; // Calculați ieșirea de control.

}

int main(void)

{

în timp ce (1)

{

// Obține valoarea feedback-ului

// Obține intervalul de timp

// Calculați rezultatul PID

float dt=0.01; // 0,01 s ca interval de timp în exemplu

float control_output=pidController(dt); // scoate semnalul de control.

// Emite semnalul de control

// Întârzie semnalul de control pentru o anumită perioadă de timp

pentru (int i=0; i 《 10000;i++).

}

întoarce 0; }

}

Trimite anchetă

whatsapp

Telefon

E-mail

Anchetă