Jak zrealizować kontrolę pid za pomocą mikrokontrolera

Jun 25, 2025 Zostaw wiadomość

Algorytm sterowania PID jest szeroko stosowanym algorytmem sterowania, sterowanie PID ma zalety regulowanych parametrów, szerokiego zakresu zastosowań, wysokiej dokładności sterowania. W praktycznej inżynierii algorytm PID można zastosować do sterowania elektromechanicznego, automatyki przemysłowej, sterowania robotami, sterowania mikroprocesorowego i wielu innych dziedzin.


Regulowane są trzy parametry algorytmu PID: stała proporcjonalności Kp, stała czasowa całkowania Ti, stała czasowa różniczkowania Td. Różne systemy wymagają ustawienia różnych parametrów PID i generalnie konieczne jest uzyskanie optymalnych parametrów poprzez eksperymenty i debugowanie. Stała proporcjonalności Kp reguluje proporcję, regulując stosunek błędu wyjściowego i błędu sprzężenia zwrotnego w układzie sterowania; stała czasowa całkowania Ti reguluje całkę, regulując akumulację błędów w układzie sterowania; stała czasowa różniczkowania Td reguluje różnicę, regulując szybkość zmiany błędu w układzie sterowania.


Jaki jest pomysł realizacji algorytmu pid za pomocą mikrokontrolera


Aby zrealizować algorytm regulacji PID na mikrokontrolerze, ogólna koncepcja realizacji jest następująca:


1. **Określ parametry PID**:


- W zależności od charakterystyki i potrzeb rzeczywistego obiektu regulacji dobierz odpowiedni współczynnik proporcjonalności (Kp), czas całkowania (Ti) i czas różniczkowania (Td).


2. **Pozyskiwanie danych z czujnika**:


- Używaj odpowiednich czujników (np. czujników temperatury, czujników położenia itp.), aby zbierać dane zwrotne z obiektu sterującego w czasie rzeczywistym.


3. **Porównanie wartości zadanej i wartości sprzężenia zwrotnego**:


- Porównaj ustawioną wartość (wartość żądaną) z wartością sprzężenia zwrotnego i oblicz wartość błędu (Błąd).


4. **Obliczenie PID**:


- Wielkość kontrolna (wyjście) obliczana jest według wzoru algorytmu PID: PID=Kp * Błąd + Ki * ∫ Błąd dt + Kd * d(Błąd)/dt.


- Kp, Ki i Kd to parametry PID, Error to wartość błędu, ∫ Error dt oznacza składnik całkujący, a d(Error)/dt oznacza składnik różniczkowy.


5. **Obsługa limitów** (opcjonalnie):


- W niektórych zastosowaniach może być konieczne ograniczenie zakresu wartości wyjściowej, aby uniknąć przekroczenia dopuszczalnego zakresu obiektu sterującego.


6. **Wyjściowy sygnał sterujący**:


- Obliczona wielkość sterująca jest wysyłana jako sygnał sterujący do siłownika (np. silnika, zaworu itp.) w celu realizacji regulacji i sterowania obiektem regulacyjnym.


7. **Ustaw częstotliwość sterującą**:


- W zależności od potrzeb konkretnych aplikacji należy ustawić odpowiednią częstotliwość sterowania, aby kontrolować cykl wykonania algorytmu.


8. **Cykl wykonania algorytmu PID**:


- W-cyklu czasu rzeczywistego powyższe kroki są wykonywane wielokrotnie w celu ciągłego monitorowania wartości sprzężenia zwrotnego, obliczania wielkości sterującej i wysyłania sygnału sterującego w celu zapewnienia stabilnej kontroli obiektu.


W rzeczywistym programowaniu mikrokontrolera można wybrać odpowiednie narzędzia programistyczne i język programowania (taki jak C lub język asemblera) zgodnie z konkretnym modelem mikrokontrolera i platformą programistyczną. Należy zauważyć, że w zastosowaniach praktycznych będzie dostępnych wiele technik optymalizacji i udoskonalania algorytmu PID, takich jak separacja całkowa, adaptacyjny PID itp., które można dalej badać i wdrażać zgodnie z konkretnymi potrzebami.


Zasada i przebieg regulatora PID


Sterownik PID składa się z trzech części: proporcjonalnej (P), całkowej (I) i różnicowej (D) i generuje wyjście sterujące poprzez przetwarzanie błędu, odchylenia i szybkości zmian systemu. Jego przepływ pracy obejmuje następujące kroki:


- Uzyskiwanie wartości docelowych i zwrotnych

- Oblicz błąd

- Oblicz moc wyjściową sterowania na podstawie współczynnika proporcjonalności, składnika całkującego i składnika różniczkowego.

- Aktualizacja parametrów kontrolera

- Wysyłanie sygnałów sterujących

 


Implementacja kodu STM32


Poniżej znajduje się przykładowy kod do projektowania i implementacji regulatora PID wykorzystującego mikrokontroler STM32:


```c

#include „stm32f4xx.h”

// Zdefiniuj parametry regulatora PID

pływak Kp=0.5; // współczynnik skali

unosić się Ki=0.2; // Współczynnik całkowy

pływak Kd=0.1; // Współczynnik różnicowy

// Zdefiniuj zmienne pamięci

wartość zadana pływaka=50.0; //wartość docelowa

informacja zwrotna typu float=0.0; //wartość informacji zwrotnej

błąd pływaka=0.0; // błąd

float last_error=0.0; //ostatni błąd

całka zmiennoprzecinkowa=0.0; // Termin całkowy

// Funkcja obliczania wyjścia regulatora PID

float pidController (float dt)

float pidController(float dt) {

// Oblicz błąd

błąd=wartość zadana - informacja zwrotna; // Oblicz składnik całkowy.

// Oblicz składnik całkowy

całka += błąd * dt; // oblicz składnik różniczkowy

// Oblicz różnicę

pochodna zmiennoprzecinkowa=(błąd - last_error) / dt; // oblicz wyjście sterujące.

// Oblicz wyjście sterujące

wyjście pływakowe=Kp * błąd + Ki * całka + Kd * pochodna; // Oblicz wyjście sterujące.

// Aktualizuj ostatni błąd

last_error=błąd; // aktualizacja ostatniego błędu.

last_error=błąd; wyjście zwrotne; // Oblicz wyjście sterujące.

}

int main(void)

{

podczas gdy(1)

{

// Uzyskaj wartość zwrotną

// Uzyskaj przedział czasu

// Oblicz wyjście PID

float dt=0.01; // W przykładzie przedział czasu wynosi 0,01 s

float control_output=pidController(dt); //wyprowadź sygnał sterujący.

// Wyprowadź sygnał sterujący

// Opóźnij sygnał sterujący o określony czas

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

}

zwróć 0; }

}

Wyślij zapytanie

whatsapp

Telefon

Adres e-mail

Zapytanie