libxr 1.0
Want to be the best embedded framework
|
通用 PID 控制器类。 Generic PID controller. More...
#include <pid.hpp>
Data Structures | |
struct | Param |
PID 参数结构体。 Structure holding PID parameters. More... | |
Public Member Functions | |
PID (const Param PARAM) | |
构造 PID 控制器。 Construct a PID controller. | |
Scalar | Calculate (Scalar sp, Scalar fb, Scalar dt) |
使用反馈值计算 PID 输出。 Compute output from feedback only. out = k(p*err + i*∫err*dt - d*(fb-last_fb)/dt) | |
Scalar | Calculate (Scalar sp, Scalar fb, Scalar fb_dot, Scalar dt) |
使用外部导数计算 PID 输出。 Compute output using external feedback derivative. out = k(p*err + i*∫err*dt - d*fb_dot*dt) | |
void | SetK (Scalar k) |
设置全局比例系数 Set global proportional gain | |
void | SetP (Scalar p) |
设置 P 项系数 Set proportional gain | |
void | SetI (Scalar i) |
设置 I 项系数 Set integral gain | |
void | SetD (Scalar d) |
设置 D 项系数 Set derivative gain | |
void | SetILimit (Scalar limit) |
设置积分限幅 Set integral limit | |
void | SetOutLimit (Scalar limit) |
设置输出限幅 Set output limit | |
Scalar | K () const |
获取全局比例系数 Get global proportional gain | |
Scalar | P () const |
获取 P 项系数 Get proportional gain | |
Scalar | I () const |
获取 I 项系数 Get integral gain | |
Scalar | D () const |
获取 D 项系数 Get derivative gain | |
Scalar | ILimit () const |
获取积分限幅 Get integral limit | |
Scalar | OutLimit () const |
获取输出限幅 Get output limit | |
Scalar | LastError () const |
获取上一次误差 Get last error | |
Scalar | LastFeedback () const |
获取上一次反馈值 Get last feedback | |
Scalar | LastOutput () const |
获取上一次输出 Get last output | |
Scalar | LastDerivative () const |
获取上一次导数 Get last derivative | |
void | Reset () |
重置控制器状态。 Reset all internal states. | |
void | SetIntegralError (Scalar err) |
设置累计误差 Set integral error | |
Scalar | GetIntegralError () const |
获取累计误差 Get integral error | |
void | SetFeedForward (Scalar feed_forward) |
设置前馈项 Set feedforward | |
Scalar | GetFeedForward () const |
获取前馈项 Get feedforward | |
Private Attributes | |
Param | param_ |
PID 参数 PID parameter set. | |
Scalar | i_ = 0 |
积分状态 Integral state | |
Scalar | last_err_ = 0 |
上次误差 Last error | |
Scalar | last_fb_ = 0 |
上次反馈 Last feedback | |
Scalar | last_der_ = 0 |
上次导数 Last derivative | |
Scalar | last_out_ = 0 |
上次输出 Last output | |
Scalar | feed_forward_ = 0 |
前馈项 Feedforward term | |
通用 PID 控制器类。 Generic PID controller.
支持周期角度处理、积分限幅与输出限幅,适用于基础控制应用。 Supports cyclic inputs, integral/output saturation. No derivative filtering.
Scalar | 控制器标量类型,默认为 DefaultScalar。 Scalar type for internal calculations. |
构造 PID 控制器。 Construct a PID controller.
Definition at line 51 of file pid.hpp.
使用反馈值计算 PID 输出。 Compute output from feedback only. out = k(p*err + i*∫err*dt - d*(fb-last_fb)/dt)
sp | 期望值 Setpoint |
fb | 反馈值 Feedback |
dt | 控制周期(秒) Time step in seconds |
Definition at line 63 of file pid.hpp.
使用外部导数计算 PID 输出。 Compute output using external feedback derivative. out = k(p*err + i*∫err*dt - d*fb_dot*dt)
sp | 期望值 Setpoint |
fb | 反馈值 Feedback |
fb_dot | 反馈导数 Feedback rate |
dt | 控制周期 Delta time |
Definition at line 125 of file pid.hpp.
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |