Nagłówek zawierający definicję struktury i funkcji regulatora PID. Regulator PID jest używany do sterowania prędkością silnika, uwzględniając błąd między zadanym a rzeczywistym stanem (np. prędkością), oraz oblicza odpowiednią wartość sterującą, która pozwala na utrzymanie zadanej prędkości. More...
#include "stm32l073xx.h"
Go to the source code of this file.
Data Structures | |
struct | pid_struct |
Struktura przechowująca dane regulatora PID. More... | |
Functions | |
void | pid_init (pid_struct *pid_data) |
Inicjalizuje dane struktury PID. | |
void | pid_reset (pid_struct *pid_data) |
Resetuje dane regulatora PID. | |
int | pid_calculate (pid_struct *pid_data, int setpoint, int process_variable) |
Oblicza wartość sterującą na podstawie algorytmu PID. | |
Nagłówek zawierający definicję struktury i funkcji regulatora PID. Regulator PID jest używany do sterowania prędkością silnika, uwzględniając błąd między zadanym a rzeczywistym stanem (np. prędkością), oraz oblicza odpowiednią wartość sterującą, która pozwala na utrzymanie zadanej prędkości.
Created on: Jan 15, 2025 Author: Igor
int pid_calculate | ( | pid_struct * | pid_data, |
int | setpoint, | ||
int | process_variable ) |
Oblicza wartość sterującą na podstawie algorytmu PID.
Funkcja oblicza odpowiedź regulatora PID na podstawie uchybu (różnicy między wartością zadaną a rzeczywistą) oraz współczynników PID. Uwzględnia również ograniczenia dla sumy błędów i członu całkującego (zapobiegając efektowi windup).
pid_data | Wskaźnik do struktury pid_struct, zawierającej dane regulatora PID. |
setpoint | Zadana wartość, do której dąży system (np. zadana prędkość). |
process_variable | Rzeczywista wartość zmiennej procesowej (np. zmierzona prędkość). |
Oblicza wartość sterującą na podstawie algorytmu PID.
Funkcja oblicza odpowiedź regulatora PID na podstawie uchybu, czyli różnicy między zadanym punktem (setpoint) a zmienną procesową (process_variable). Wykonywane są obliczenia dla członu proporcjonalnego, całkującego oraz różniczkującego, a następnie sumowanie wyników tych członów. Dodatkowo stosowane są ograniczenia na sumę błędów oraz człon całkujący, aby zapobiec efektowi "windup".
pid_data | Wskaźnik do struktury pid_struct reprezentującej regulator PID. |
setpoint | Zadana wartość, do której dąży system. |
process_variable | Rzeczywista wartość zmiennej procesowej (np. zmierzona prędkość). |
< Odpowiedź członu proporcjonalnego
< Odpowiedź członu całkującego
< Odpowiedź członu różniczkującego
void pid_init | ( | pid_struct * | pid_data | ) |
Inicjalizuje dane struktury PID.
Funkcja ustawia domyślne wartości współczynników PID oraz limity błędów, przygotowując strukturę do użycia w dalszych obliczeniach.
pid_data | Wskaźnik do struktury pid_struct, którą należy zainicjalizować. |
Inicjalizuje dane struktury PID.
Funkcja ustawia początkowe wartości parametrów PID, w tym współczynniki Kp, Ki, Kd, ograniczenie dla sumy błędów (total_error) oraz ograniczenie dla członu całkującego (anti_windup_limit). Inicjalizuje również zmienne przechowujące błąd z poprzedniego cyklu oraz całkowity błąd.
pid_data | Wskaźnik do struktury pid_struct reprezentującej regulator PID. |
< Inicjalizacja błędu z poprzedniego cyklu
< Inicjalizacja całkowitego błędu
void pid_reset | ( | pid_struct * | pid_data | ) |
Resetuje dane regulatora PID.
Funkcja zeruje błędy, zarówno bieżący, jak i całkowity, przygotowując regulator do nowego cyklu obliczeniowego.
pid_data | Wskaźnik do struktury pid_struct, której stan ma zostać zresetowany. |
Resetuje dane regulatora PID.
Funkcja zeruje błędy, zarówno bieżący, jak i całkowity, przygotowując regulator do nowego cyklu obliczeń.
pid_data | Wskaźnik do struktury pid_struct reprezentującej regulator PID. |
< Zerowanie błędu z poprzedniego cyklu
< Zerowanie całkowitego błędu