33#include "control_types.hpp"
38 float kp,
float ki,
float kd);
43 float f_cur_val,
float s_cur_val,
float dt);
46 float yeta,
float min_out,
float max_out);
51 float s_pv,
float f_dt,
float s_dt);
53 PID2_t& inner_pid,
float sp,
float outer_pv,
54 float middle_pv,
float inner_pv,
float outer_dt,
55 float middle_dt,
float inner_dt);
58 float k_p,
float k_i,
float k_d,
float beta,
59 float yeta,
float min_out,
float max_out);
float pid_single_loop_control(float target_val, PID_t *pid, float cur_val, float dt)
Calculates iteration of single-loop PID controller.
Definition pid.cpp:134
float pid2_single_loop_control(PID2_t &pid, float sp, float pv, float dt)
Caculate an iteration of a single-loop PID2 controller.
Definition pid.cpp:266
void pid2_init(PID2_t &pid, float k_p, float k_i, float k_d, float beta, float yeta, float min_out, float max_out)
Initializes a PID2_t controller.
Definition pid.cpp:172
float pid_dual_loop_control(float f_tar_val, PID_t *f_pid, PID_t *s_pid, float f_cur_val, float s_cur_val, float dt)
Calculate an iteration of dual-loop cascade PID controller.
Definition pid.cpp:151
float pid2_calculate(PID2_t &pid, float sp, float pv, float dt)
Calculates PID2 output for one time-step.
Definition pid.cpp:230
void pid2_set_limits(PID2_t &pid, float new_min_out, float new_max_out)
Sets new output limits for PID2_t controller.
Definition pid.cpp:210
float pid_calculate(PID_t *pid, float cur_val, float target_val, float dt)
Computes a single PID iteration for one time-step.
Definition pid.cpp:67
float pid2_dual_loop_control(PID2_t &f_pid, PID2_t &s_pid, float sp, float f_pv, float s_pv, float f_dt, float s_dt)
Calculates an iteration of a dual-loop PID2 controller.
Definition pid.cpp:283
float pid2_triple_loop_control(PID2_t &outer_pid, PID2_t &middle_pid, PID2_t &inner_pid, float sp, float outer_pv, float middle_pv, float inner_pv, float outer_dt, float middle_dt, float inner_dt)
Calculates an iteration for a triple-loop PID2 controller.
Definition pid.cpp:305
void pid_param_init(PID_t *pid, int32_t max_out, float max_i_out, float max_err, float kp, float ki, float kd)
Initializes a PID_t structure with provided parameters.
Definition pid.cpp:30
void prescaled_pid2_init(Prescaled_PID2_t *prescaled, uint32_t prescalar, float k_p, float k_i, float k_d, float beta, float yeta, float min_out, float max_out)
Initializes a Prescaled_PID2_t structure with provided parameters.
Definition pid.cpp:329
void prescaled_pid2_single_loop_control(Prescaled_PID2_t *prescaled, float sp, float pv, float dt)
Calculate an iteration for prescaled single-loop PID2 controller.
Definition pid.cpp:350
Enhanced PID controller structure with additional parameters.
Definition control_types.hpp:57
Basic PID controller structure.
Definition control_types.hpp:29
Prescaled PID controller for different frequency control loops.
Definition control_types.hpp:123