Kif tirrealizza l-kontroll pid minn mikrokontrollur

Jun 25, 2025 Ħalli messaġġ

L-algoritmu ta 'kontroll PID huwa algoritmu ta' kontroll użat ħafna, il-kontroll PID għandu l-vantaġġi ta 'parametri aġġustabbli, firxa wiesgħa ta' applikazzjonijiet, preċiżjoni għolja ta 'kontroll. Fl-inġinerija prattika, l-algoritmu PID jista 'jiġi applikat għal kontroll elettromekkaniku, awtomazzjoni industrijali, kontroll tar-robot, kontroll tal-mikroproċessur u ħafna oqsma oħra.


It-tliet parametri tal-algoritmu PID huma aġġustati: kostanti tal-proporzjonalità Kp, kostanti tal-ħin integrali Ti, kostanti tal-ħin differenzjali Td. Sistemi differenti jeħtieġu li jistabbilixxu parametri PID differenti, u ġeneralment huwa meħtieġ li jinkisbu l-aħjar parametri permezz ta 'esperimenti u debugging. Il-kostanti tal-proporzjonalità Kp taġġusta l-proporzjon, taġġusta l-proporzjon ta 'output u żball ta' feedback fis-sistema ta 'kontroll; il-kostanti tal-ħin integrali Ti taġġusta l-integral, taġġusta l-akkumulazzjoni ta 'żball fis-sistema ta' kontroll; il-kostanti tal-ħin differenzjali Td taġġusta d-differenzjali, taġġusta r-rata ta 'bidla ta' żball fis-sistema ta 'kontroll.


X'inhi l-idea li tirrealizza l-algoritmu pid bil-mikrokontrollur


Biex tirrealizza l-algoritmu tal-kontroll PID fuq mikrokontrollur, din li ġejja hija l-idea ġenerali tar-realizzazzjoni:


1. **Iddetermina l-parametri PID**:


- Skont il-karatteristiċi u l-ħtiġijiet tal-oġġett ta 'kontroll attwali, agħżel il-koeffiċjent ta' proporzjonalità (Kp) xieraq, il-ħin tal-integrazzjoni (Ti) u l-ħin tad-divrenzjar (Td).


2. **Ksib tad-dejta tas-sensuri**:


- Uża sensuri xierqa (eż., sensuri tat-temperatura, sensuri tal-pożizzjoni, eċċ.) biex tiġbor data ta' feedback mill-oġġett ta' kontroll f'ħin reali.


3. **Issettja l-valur u t-tqabbil tal-valur tal-feedback**:


- Qabbel il-valur stabbilit (valur mixtieq) mal-valur tal-feedback u kkalkula l-valur tal-iżball (Żball).


4. **Kalkolu tal-PID**:


- L-ammont ta' kontroll (output) huwa kkalkulat skond il-formula ta' l-algoritmu PID: PID=Kp * Żball + Ki * ∫ Żball dt + Kd * d (Żball)/dt.


- Kp, Ki u Kd huma l-parametri PID, Żball huwa l-valur tal-iżball, ∫ Żball dt jindika t-terminu integrali u d(Żball)/dt jindika t-terminu differenzjali.


5. **Limit Handling** (mhux obbligatorju):


- Għal xi applikazzjonijiet, jista 'jkun meħtieġ li tiġi limitata l-firxa tal-valur tal-output biex jiġi evitat li taqbeż il-medda aċċettabbli tal-oġġett ta' kontroll.


6. **Sinjal tal-kontroll tal-ħruġ**:


- Il-kwantità ta 'kontroll ikkalkulata toħroġ bħala sinjal ta' kontroll lill-attwatur (eż. mutur, valv, eċċ.) Biex tirrealizza r-regolazzjoni u l-kontroll tal-oġġett ta 'kontroll.


7. **Issettja l-frekwenza tal-kontroll**:


- Skont il-ħtiġijiet ta 'applikazzjonijiet speċifiċi, issettja l-frekwenza ta' kontroll xierqa biex tikkontrolla ċ-ċiklu ta 'eżekuzzjoni tal-algoritmu.


8. **Eżekuzzjoni taċ-ċiklu tal-algoritmu PID**:


- Fiċ-ċiklu tal--ħin reali, il-passi ta 'hawn fuq huma esegwiti ripetutament biex jimmonitorjaw kontinwament il-valur tal-feedback, jikkalkulaw il-kwantità ta' kontroll, u joħorġu s-sinjal ta 'kontroll biex jirrealizzaw il-kontroll stabbli tal-oġġett.


Fl-ipprogrammar attwali tal-mikrokontrollur, tista 'tagħżel l-għodod ta' żvilupp xierqa u l-lingwa ta 'programmar (bħal C jew lingwa ta' assemblaġġ) skond il-mudell speċifiku tal-mikrokontrollur u l-pjattaforma ta 'żvilupp. Għandu jiġi nnutat li f'applikazzjonijiet prattiċi, se jkun hemm ħafna tekniki biex jottimizzaw u jtejbu l-algoritmu PID, bħal separazzjoni integrali, PID adattivi, eċċ., Li jistgħu jiġu riċerkati u implimentati aktar skond il-ħtiġijiet speċifiċi.


Prinċipju tal-kontrollur PID u fluss tax-xogħol


Il-kontrollur PID jikkonsisti fi tliet partijiet: proporzjonali (P), integrali (I) u differenzjali (D), u jiġġenera l-output ta 'kontroll billi jipproċessa l-iżball, id-devjazzjoni u r-rata ta' bidla tas-sistema. Il-fluss tax-xogħol tiegħu jinkludi l-passi li ġejjin:


- Il-ksib ta' valuri ta' mira u ta' feedback

- Ikkalkula l-iżball

- Ikkalkula l-output tal-kontroll ibbażat fuq il-koeffiċjent tal-proporzjonalità, it-terminu integrali u t-terminu differenzjali.

- Aġġornament tal-parametri tal-kontrollur

- Jipproduċu sinjali ta' kontroll

 


Implimentazzjoni tal-kodiċi STM32


Dan li ġej huwa kampjun tal-kodiċi għad-disinn u l-implimentazzjoni ta 'kontrollur PID bl-użu ta' mikrokontrollur STM32:


```c

#include "stm32f4xx.h"

// Iddefinixxi l-parametri tal-kontrollur PID

float Kp=0.5; // fattur ta' skala

float Ki=0.2; // Koeffiċjent integrali

float Kd=0.1; // Koeffiċjent differenzjali

// Iddefinixxi varjabbli tal-ħażna

float setpoint=50.0; // valur fil-mira

float feedback=0.0; // valur ta' feedback

żball float=0.0; // żball

float last_error=0.0; // l-aħħar żball

float integrali=0.0; // Terminu integrali

// Funzjoni tal-kalkolu tal-output tal-kontrollur PID

float pidController(float dt)

float pidController (float dt) {

// Ikkalkula l-iżball

żball=setpoint - feedback; // Ikkalkula t-terminu integrali.

// Ikkalkula t-terminu integrali

żball integrali += * dt; // tikkalkula t-terminu differenzjali

// Ikkalkula d-differenzjali

float derivattiv=(żball - l-aħħar_żball) / dt; // tikkalkula l-output tal-kontroll.

// Ikkalkula l-output tal-kontroll

float output=Kp * żball + Ki * integrali + Kd * derivattiv; // Ikkalkula l-output tal-kontroll.

// Aġġorna l-aħħar żball

last_error=żball; // taġġorna l-aħħar żball.

last_error=żball; output tar-ritorn; // Ikkalkula l-output tal-kontroll.

}

int main(void)

{

filwaqt li (1)

{

// Ikseb il-valur tal-feedback

// Ikseb l-intervall tal-ħin

// Ikkalkula l-output tal-PID

float dt=0.01; // 0.01s bħala intervall ta' ħin fl-eżempju

float control_output=pidController(dt); // joħroġ is-sinjal tal-kontroll.

// Oħroġ is-sinjal tal-kontroll

// Dewwem is-sinjal tal-kontroll għal ċertu perjodu ta 'żmien

għal (int i=0; i 《 10000;i++).

}

ritorn 0; }

}

Ibgħat l-inkjesta

whatsapp

Tat-telefon

Indirizz elettroniku

Inkjesta