W jaki sposób mikrokontroler realizuje kontrolę PID?

Jul 23, 2026 Zostaw wiadomość

Algorytm regulacji PID jest obecnie jednym z najpowszechniej stosowanych algorytmów regulacji. Sterowanie PID oferuje takie korzyści, jak regulowane parametry, szeroki zakres zastosowań i wysoka dokładność regulacji. W praktycznej inżynierii algorytm PID można zastosować w różnych dziedzinach, w tym w sterowaniu elektromechanicznym, automatyce przemysłowej, robotyce i sterowaniu mikroprocesorowym.


Trzy parametry algorytmu PID to: wzmocnienie proporcjonalne Kp, stała czasowa całkowania Ti i stała czasowa różniczkowania Td. Różne systemy wymagają różnych parametrów PID, a optymalne parametry zwykle uzyskuje się w drodze eksperymentów i debugowania. Stała proporcjonalna Kp reguluje wzmocnienie proporcjonalne, kontrolując stosunek mocy wyjściowej systemu do błędu sprzężenia zwrotnego podczas pracy; stała czasowa całkowania Ti reguluje wzmocnienie całkujące, kontrolując akumulację błędów podczas pracy systemu; a stała czasowa różniczkowania Td reguluje wzmocnienie różniczkowania, kontrolując szybkość zmian błędów w układzie sterowania.


Jakie jest podejście do implementacji algorytmu PID na mikrokontrolerze?


Aby zaimplementować algorytm regulacji PID w mikrokontrolerze, ogólne podejście jest następujące:

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

- Wybierz odpowiednie wzmocnienie proporcjonalne (Kp), czas całkowania (Ti) i czas różniczkowania (Td) w oparciu o charakterystykę i wymagania aktualnie kontrolowanego obiektu.


2. **Pozyskiwanie danych z czujnika**:

- Użyj odpowiednich czujników (takich jak czujniki temperatury, czujniki położenia itp.), aby uzyskać-dane zwrotne z kontrolowanego obiektu w czasie rzeczywistym.


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

- Porównaj wartość zadaną (wartość żądaną) z wartością sprzężenia zwrotnego, aby obliczyć błąd (błąd).


4. **Obliczenie PID**:

- Oblicz zmienną sterującą (wyjście) korzystając ze wzoru algorytmu PID: PID=Kp * Błąd + Ki * ∫ Błąd dt + Kd * d(Błąd)/dt.

- Kp, Ki i Kd to parametry PID; Błąd to wartość błędu; ∫ Błąd dt oznacza składnik całkujący; a d(Błąd)/dt oznacza człon pochodny.


5. **Ograniczenie** (opcjonalnie):

- W niektórych zastosowaniach może być konieczne ograniczenie zakresu wartości wyjściowej, aby zapobiec przekroczeniu dopuszczalnego zakresu kontrolowanego obiektu.


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

- Obliczona zmienna sterująca jest wykorzystywana jako sygnał sterujący i wysyłana do siłownika (takiego jak silnik lub zawór) w celu regulacji i sterowania kontrolowanym obiektem.


7. **Ustaw częstotliwość sterowania**:

- Ustaw odpowiednią częstotliwość sterowania-cykl wykonywania algorytmu sterowania-w oparciu o wymagania konkretnej aplikacji.


8. **Iteruj algorytm PID**:

- W pętli czasu rzeczywistego-wykonuj wielokrotnie powyższe kroki, aby stale monitorować wartość sprzężenia zwrotnego, obliczać zmienną sterującą i wysyłać sygnał sterujący, aby uzyskać stabilną kontrolę systemu.


W rzeczywistym programowaniu mikrokontrolerów można wybrać odpowiednie narzędzia programistyczne i języki programowania (takie jak język C lub asembler) w oparciu o konkretny model mikrokontrolera i platformę programistyczną. Należy zauważyć, że w zastosowaniach praktycznych istnieje wiele technik optymalizacji i udoskonalania algorytmu PID, takich jak separacja całkowa i adaptacyjny PID, które można dalej badać i wdrażać zgodnie z konkretnymi wymaganiami.

 

Zasada i działanie regulatorów PID


Sterownik PID składa się z trzech elementów: proporcjonalnego (P), całkowego (I) i różniczkującego (D). Generuje wyjście sterujące poprzez przetwarzanie błędu systemu, odchylenia i szybkości zmian. Jego działanie obejmuje następujące kroki:


- Uzyskaj wartość zadaną i wartości zwrotne

- Oblicz błąd

- Oblicz moc wyjściową sterowania na podstawie wzmocnienia proporcjonalnego, składnika całkującego i składnika różniczkującego

- Zaktualizuj parametry kontrolera

- Wyprowadź sygnał sterujący


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; // Wzmocnienie proporcjonalne

unosić się Ki=0.2; // Wzmocnienie całkowe

pływak Kd=0.1; // Zysk pochodny

// Zdefiniuj zmienne pamięci

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

informacja zwrotna typu float=0.0; // Wartość opinii

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

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

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

// Funkcja obliczania wyjścia regulatora PID

float pidController (float dt)

{

// Oblicz błąd

błąd=wartość zadana - informacja zwrotna;

// Oblicz składnik całkowy

całka += błąd * dt;

// Oblicz termin pochodny

pochodna zmiennoprzecinkowa=(błąd - last_error) / dt;

// Oblicz wyjście sterujące

wyjście pływakowe=Kp * błąd + Ki * całka + Kd * pochodna;

// Zaktualizuj poprzedni błąd

last_error=błąd;

wyjście zwrotne;

}

int main(void)

{

podczas gdy (1)

{

// Pobierz wartość opinii

// Ustaw odstęp czasu

// Oblicz wyjście PID

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

float control_output=pidController(dt);

// Wyprowadź sygnał sterujący

// Opóźnienie o pewien okres czasu

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

}

zwróć 0;

}

Wyślij zapytanie

whatsapp

Telefon

Adres e-mail

Zapytanie