Kuinka mikro-ohjain toteuttaa PID-säädön?

Jul 23, 2026 Jätä viesti

PID-säätöalgoritmi on tällä hetkellä yksi yleisimmin käytetyistä ohjausalgoritmeista. PID-säätö tarjoaa etuja, kuten säädettävät parametrit, laajan valikoiman sovelluksia ja korkeaa ohjaustarkkuutta. Käytännön suunnittelussa PID-algoritmia voidaan soveltaa useilla aloilla, mukaan lukien sähkömekaaninen ohjaus, teollisuusautomaatio, robotiikka ja mikroprosessoriohjaus.


PID-algoritmin kolme parametria ovat: suhteellinen vahvistus Kp, integraaliaikavakio Ti ja derivaatan aikavakio Td. Eri järjestelmät vaativat erilaisia ​​PID-parametreja, ja optimaaliset parametrit saadaan tyypillisesti kokeilemalla ja virheenkorjauksella. Suhteellinen vakio Kp säätää suhteellista vahvistusta ohjaten järjestelmän lähdön suhdetta takaisinkytkentävirheeseen toiminnan aikana; integraaliaikavakio Ti säätää integraalivahvistusta ohjaten virheiden kertymistä järjestelmän toiminnan aikana; ja derivaatan aikavakio Td säätää derivaattavahvistusta ohjaten virheiden muutosnopeutta ohjausjärjestelmässä.


Mikä on lähestymistapa PID-algoritmin toteuttamiseen mikro-ohjaimessa?


PID-säätöalgoritmin toteuttamiseksi mikro-ohjaimessa yleinen lähestymistapa on seuraava:

1. **Määritä PID-parametrit**:

- Valitse sopiva suhteellinen vahvistus (Kp), integrointiaika (Ti) ja derivointiaika (Td) todellisen ohjatun kohteen ominaisuuksien ja vaatimusten perusteella.


2. **Anturitietojen hankinta**:

- Käytä sopivia antureita (kuten lämpötila-antureita, sijaintiantureita jne.) saadaksesi reaaliaikaista-palautetietoa ohjatusta kohteesta.


3. **Asetusarvon ja palautearvojen vertailu**:

- Vertaa asetuspistettä (haluttu arvo) takaisinkytkentäarvoon virheen (virheen) laskemiseksi.


4. **PID-laskenta**:

- Laske ohjausmuuttuja (lähtö) käyttämällä PID-algoritmin kaavaa: PID=Kp * Virhe + Ki * ∫ Virhe dt + Kd * d(Virhe)/dt.

- Kp, Ki ja Kd ovat PID-parametreja; Error on virheen arvo; ∫ Virhe dt edustaa integraalitermiä; ja d(Virhe)/dt edustaa johdannaistermiä.


5. **Rajoitus** (valinnainen):

- Tietyissä sovelluksissa voi olla tarpeen rajoittaa lähtöarvon aluetta, jotta se ei ylitä ohjatun kohteen hyväksyttävää aluetta.


6. **Lähdön ohjaussignaali**:

- Laskettua ohjausmuuttujaa käytetään ohjaussignaalina ja lähetetään toimilaitteeseen (kuten moottoriin tai venttiiliin) ohjattavan kohteen säätämiseksi ja ohjaamiseksi.


7. **Aseta ohjaustaajuus**:

- Aseta sopiva ohjaustaajuus-ohjausalgoritmin suoritusjakso-sovelluskohtaisten vaatimusten perusteella.


8. **Iteroi PID-algoritmi**:

- Reaaliaikaisessa silmukassa toistuvasti suorita yllä olevat vaiheet seurataksesi jatkuvasti palautearvoa, laskeaksesi ohjausmuuttujan ja lähettääksesi ohjaussignaalin järjestelmän vakaan ohjauksen saavuttamiseksi.


Varsinaisessa mikro-ohjainohjelmoinnissa voit valita sopivat kehitystyökalut ja ohjelmointikielet (kuten C tai assembly-kieli) tietyn mikro-ohjainmallin ja kehitysalustan perusteella. On huomattava, että käytännön sovelluksissa PID-algoritmin optimoimiseksi ja parantamiseksi on monia tekniikoita, kuten integraalierotus ja adaptiivinen PID, joita voidaan edelleen tutkia ja toteuttaa erityisvaatimusten mukaan.

 

PID-säätimien periaatteet ja toiminta


PID-säädin koostuu kolmesta osasta: suhteellinen (P), integraali (I) ja derivaatta (D). Se generoi ohjauslähdön käsittelemällä järjestelmän virhettä, poikkeamaa ja muutosnopeutta. Sen toiminta sisältää seuraavat vaiheet:


- Hanki asetuspiste- ja palautearvot

- Laske virhe

- Laske ohjauslähtö suhteellisen vahvistuksen, integraalitermin ja derivaatan perusteella

- Päivitä ohjaimen parametrit

- Lähettää ohjaussignaalin


STM32-koodin käyttöönotto

 

Seuraavassa on esimerkkikoodi STM32-mikrokontrolleria käyttävän PID-säätimen suunnitteluun ja toteuttamiseen:

```c

#include "stm32f4xx.h"

// Määritä PID-säätimen parametrit

float Kp=0.5; // Suhteellinen voitto

kellua Ki=0.2; // Integraalivahvistus

float Kd=0.1; // Johdannainen voitto

// Määritä tallennusmuuttujat

float-asetuspiste=50.0; // Asetusarvo

kelluva palaute=0.0; // Palautearvo

float error=0.0; // Virhe

float last_error=0.0; // Edellinen virhe

float-integraali=0.0; // Integraalitermi

// PID-säätimen lähdön laskentatoiminto

float pidController(float dt)

{

// Laske virhe

virhe=asetuspiste - palaute;

// Laske integraalitermi

integraali += virhe * dt;

// Laske johdannaistermi

float derivaatta=(virhe - last_error) / dt;

// Laske ohjausteho

float output=Kp * virhe + Ki * integraali + Kd * derivaatta;

// Päivitä edellinen virhe

last_error=error;

tuotto;

}

int main(tyhjä)

{

kun (1)

{

// Hae palautearvo

// Aseta aikaväli

// Laske PID-lähtö

float dt=0.01; // Tässä esimerkissä aikaväli on 0,01 s

float control_output=pidController(dt);

// Lähettää ohjaussignaalin

// Viive tietyn ajan

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

}

paluu 0;

}

Lähetä kysely

whatsapp

Puhelin

Sähköposti

Tutkimus