Files
FilaDry2/firmware/Core/Inc/pid.h
2023-01-24 20:41:43 +03:00

42 lines
673 B
C

/*
* pid.h
*
* Created on: Jan 18, 2022
* Author: mcfly
*/
#ifndef INC_PID_H_
#define INC_PID_H_
typedef struct {
//Controller gains
float Kp;
float Ki;
float Kd;
//Derivative low-pass filter time constant
float tau;
//Output limits
float limMin;
float limMax;
//Sample time in seconds
float T;
//Controller "memory"
float integrator;
float prevError; //required for integrator
float differentiator;
float prevMeasurement; //required for differentiator
//Controller output
float out;
} PIDController;
void PID_Init(PIDController *pid);
float PID_Update(PIDController *pid, float setpoint, float measurement);
#endif /* INC_PID_H_ */