13#ifndef INC_PID_CONTROLLER_H_
14#define INC_PID_CONTROLLER_H_
16#include "stm32l073xx.h"
37#define MOTOR_ANTI_WINDUP 1000
38#define MOTOR_TOTAL_ERROR_LIMIT 150
int pid_calculate(pid_struct *pid_data, int setpoint, int process_variable)
Oblicza wartość sterującą na podstawie algorytmu PID.
Definition pid_controller.c:66
void pid_reset(pid_struct *pid_data)
Resetuje dane regulatora PID.
Definition pid_controller.c:46
void pid_init(pid_struct *pid_data)
Inicjalizuje dane struktury PID.
Definition pid_controller.c:24
Struktura przechowująca dane regulatora PID.
Definition pid_controller.h:24
float Kp
Wzmocnienie członu proporcjonalnego.
Definition pid_controller.h:27
int previous_error
Błąd z poprzedniego cyklu dla członu różniczkującego.
Definition pid_controller.h:25
int anti_windup_limit
Ograniczenie dla członu całkującego (zapobiega efektowi windup)
Definition pid_controller.h:30
float Ki
Wzmocnienie członu całkującego.
Definition pid_controller.h:28
float Kd
Wzmocnienie członu różniczkującego.
Definition pid_controller.h:29
int total_error
Całkowity błąd sumowany dla członu całkującego.
Definition pid_controller.h:26
int total_error_limit
Limit maksymalnego błędu (przyspiesza działanie przy dużych zmianach)
Definition pid_controller.h:31