PID regulator v 1.0
 
Loading...
Searching...
No Matches
pid_controller.h
Go to the documentation of this file.
1
12
13#ifndef INC_PID_CONTROLLER_H_
14#define INC_PID_CONTROLLER_H_
15
16#include "stm32l073xx.h"
17
24typedef struct{
27 float Kp;
28 float Ki;
29 float Kd;
33
34#define MOTOR_Kp 1.2
35#define MOTOR_Ki 0.1
36#define MOTOR_Kd 0.2
37#define MOTOR_ANTI_WINDUP 1000
38#define MOTOR_TOTAL_ERROR_LIMIT 150
39
48void pid_init(pid_struct *pid_data);
49
58void pid_reset(pid_struct *pid_data);
59
73int pid_calculate(pid_struct *pid_data, int setpoint, int process_variable);
74
75#endif /* INC_PID_CONTROLLER_H_ */
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