File syn_pid.c¶
FileList > control > syn_pid.c
Go to the source code of this file
PID controller implementation.
#include "../common/syn_defs.h"#include "../util/syn_assert.h"#include "syn_pid.h"#include <string.h>
Public Functions¶
| Type | Name |
|---|---|
| void | syn_pid_init (SYN_PID * pid, const SYN_PID_Config * cfg) Initialize PID controller. |
| void | syn_pid_reset (SYN_PID * pid) Reset integral and derivative state. |
| void | syn_pid_set_gains (SYN_PID * pid, int32_t kp, int32_t ki, int32_t kd) Update gains at runtime. |
| void | syn_pid_set_limits (SYN_PID * pid, int32_t out_min, int32_t out_max) Set output clamping limits. |
| int32_t | syn_pid_update (SYN_PID * pid, int32_t setpoint, int32_t measured, uint32_t dt_ms) Compute one PID update step. |
Public Functions Documentation¶
function syn_pid_init¶
Initialize PID controller.
If integral_max is 0, it is auto-computed from ki, scale, and out_max to allow full integral authority without windup.
Parameters:
pidPID instance.cfgConfiguration (copied internally).
function syn_pid_reset¶
Reset integral and derivative state.
Parameters:
pidPID instance.
function syn_pid_set_gains¶
Update gains at runtime.
Parameters:
pidPID instance.kpProportional gain.kiIntegral gain.kdDerivative gain.
function syn_pid_set_limits¶
Set output clamping limits.
Parameters:
pidPID instance.out_minMinimum output.out_maxMaximum output.
function syn_pid_update¶
Compute one PID update step.
Parameters:
pidPID instance.setpointDesired value.measuredActual measured value.dt_msTime since last update in milliseconds. (0 is treated as 1 to avoid division by zero.)
Returns:
Clamped output value.
The documentation for this class was generated from the following file src/syntropic/control/syn_pid.c