Kako mikrokrmilnik izvaja krmiljenje PID?

Jul 23, 2026 Pustite sporočilo

PID regulacijski algoritem je trenutno eden najbolj razširjenih regulacijskih algoritmov. PID krmiljenje ponuja prednosti, kot so nastavljivi parametri, širok nabor aplikacij in visoka natančnost krmiljenja. V praktičnem inženiringu je algoritem PID mogoče uporabiti na različnih področjih, vključno z elektromehanskim nadzorom, industrijsko avtomatizacijo, robotiko in mikroprocesorskim krmiljenjem.


Trije parametri algoritma PID so: proporcionalno ojačenje Kp, integralna časovna konstanta Ti in izpeljana časovna konstanta Td. Različni sistemi zahtevajo različne parametre PID, optimalne parametre pa običajno pridobimo s preizkušanjem in odpravljanjem napak. Proporcionalna konstanta Kp prilagodi proporcionalno ojačenje in nadzoruje razmerje med izhodom sistema in napako povratne informacije med delovanjem; integralna časovna konstanta Ti prilagodi integralni dobiček in nadzoruje kopičenje napak med delovanjem sistema; in izpeljana časovna konstanta Td prilagodi izpeljano ojačenje, ki nadzoruje stopnjo spreminjanja napak v krmilnem sistemu.


Kakšen je pristop k implementaciji algoritma PID na mikrokrmilniku?


Za implementacijo algoritma krmiljenja PID na mikrokrmilniku je splošni pristop naslednji:

1. **Določite parametre PID**:

- Izberite ustrezno sorazmerno ojačenje (Kp), integralni čas (Ti) in izpeljani čas (Td) na podlagi značilnosti in zahtev dejanskega nadzorovanega predmeta.


2. **Pridobivanje podatkov senzorja**:

- Uporabite ustrezne senzorje (kot so temperaturni senzorji, senzorji položaja itd.), da pridobite-realnočasovne povratne podatke od nadzorovanega objekta.


3. **Primerjava nastavljenih in povratnih vrednosti**:

- Primerjajte nastavljeno točko (želeno vrednost) s povratno vrednostjo, da izračunate napako (Error).


4. **Izračun PID**:

- Izračunajte kontrolno spremenljivko (izhod) z uporabo formule algoritma PID: PID=Kp * Napaka + Ki * ∫ Napaka dt + Kd * d(Napaka)/dt.

- Kp, Ki in Kd so parametri PID; Error je vrednost napake; ∫ Napaka dt predstavlja integralni člen; in d(Error)/dt predstavlja izpeljan izraz.


5. **Omejitev** (izbirno):

- Za nekatere aplikacije bo morda treba omejiti obseg izhodne vrednosti, da preprečite, da bi presegla sprejemljivo območje nadzorovanega predmeta.


6. **Izhodni kontrolni signal**:

- Izračunana krmilna spremenljivka se uporablja kot krmilni signal in se pošlje aktuatorju (kot je motor ali ventil) za regulacijo in krmiljenje nadzorovanega predmeta.


7. **Nastavite krmilno frekvenco**:

- Nastavite ustrezno krmilno frekvenco-cikel izvajanja nadzornega algoritma-na podlagi posebnih zahtev aplikacije.


8. **Ponovite algoritem PID**:

- V realni-časovni zanki večkrat izvedite zgornje korake za stalno spremljanje vrednosti povratne informacije, izračun krmilne spremenljivke in izhod krmilnega signala, da dosežete stabilen nadzor sistema.


Pri dejanskem programiranju mikrokrmilnika lahko izberete ustrezna razvojna orodja in programske jezike (kot je C ali zbirni jezik) glede na določen model mikrokrmilnika in razvojno platformo. Opozoriti je treba, da v praktičnih aplikacijah obstaja veliko tehnik za optimizacijo in izboljšanje algoritma PID, kot sta integralno ločevanje in prilagodljivi PID, ki jih je mogoče nadalje raziskati in implementirati v skladu s posebnimi zahtevami.

 

Principi in delovanje PID regulatorjev


PID regulator je sestavljen iz treh komponent: proporcionalne (P), integralne (I) in izvedenke (D). Ustvari krmilni izhod z obdelavo sistemske napake, odstopanja in stopnje spremembe. Njegovo delovanje vključuje naslednje korake:


- Pridobite nastavitveno točko in povratne vrednosti

- Izračunajte napako

- Izračunajte krmilni izhod na podlagi proporcionalnega ojačanja, integralnega člena in izpeljanega člena

- Posodobite parametre krmilnika

- Izhod krmilnega signala


Implementacija kode STM32

 

Sledi vzorčna koda za načrtovanje in implementacijo krmilnika PID z uporabo mikrokrmilnika STM32:

```c

#include "stm32f4xx.h"

// Definirajte parametre PID regulatorja

float Kp=0.5; // Proporcionalni dobiček

float Ki=0.2; // Integralni dobiček

float Kd=0.1; // Izpeljan dobiček

// Definirajte spremenljivke shranjevanja

float nastavljena točka=50.0; // Nastavljena točka

float povratna informacija=0.0; // Vrednost povratne informacije

napaka float=0.0; // Napaka

float zadnja_napaka=0.0; // Prejšnja napaka

float integral=0.0; // Integralni izraz

// Funkcija izračuna izhoda krmilnika PID

float pidController(float dt)

{

// Izračunajte napako

napaka=nastavljena točka - povratna informacija;

// Izračunaj integralni člen

integral += napaka * dt;

// Izračunaj izpeljan izraz

float izpeljanka=(napaka - zadnja_napaka) / dt;

// Izračunaj krmilni izhod

plavajoči izhod=Kp * napaka + Ki * integral + Kd * izpeljanka;

// Posodobi prejšnjo napako

zadnja_napaka=napaka;

povratni izhod;

}

int main(void)

{

medtem ko (1)

{

// Pridobi povratno vrednost

// Nastavite časovni interval

// Izračunaj izhod PID

float dt=0.01; // V tem primeru je časovni interval 0,01 s

float control_output=pidController(dt);

// Izhod krmilnega signala

// Zamuda za določen čas

for (int i=0; i < 10000; i++);

}

vrni 0;

}

Pošlji povpraševanje

whatsapp

Telefon

E-pošta

Povpraševanje