GKD.RoboCtrl
载入中...
搜索中...
未找到
roboctrl::utils::pid_base< T, error_measurer > 模板结构体 参考

PID 控制器基础模板。 更多...

详细描述

template<typename T, auto error_measurer>
struct roboctrl::utils::pid_base< T, error_measurer >

PID 控制器基础模板。

模板参数
T计算类型
error_measurer误差测度函数

在文件 pid.h21 行定义.

#include <pid.h>

struct  params_type
 统一的参数封装,方便序列化。 更多...
 

Public 类型

using input_type = T
 
using state_type = T
 

Public 成员函数

 pid_base (const params_type &params)
 
void set_target (T target)
 设置期望目标。
 
target () const
 
void update (T current)
 根据当前值更新 PID 输出。
 
void clean ()
 清空积分项、误差缓存与输出。
 
state () const
 获取最新的控制输出。
 

Public 属性

kp = 0
 
ki = 0
 
kd = 0
 
max_out {}
 
max_iout {}
 

成员类型定义说明

◆ input_type

template<typename T , auto error_measurer>
using roboctrl::utils::pid_base< T, error_measurer >::input_type = T

在文件 pid.h29 行定义.

◆ state_type

template<typename T , auto error_measurer>
using roboctrl::utils::pid_base< T, error_measurer >::state_type = T

在文件 pid.h30 行定义.

构造及析构函数说明

◆ pid_base()

template<typename T , auto error_measurer>
roboctrl::utils::pid_base< T, error_measurer >::pid_base ( const params_type params)
inline

在文件 pid.h46 行定义.

成员函数说明

◆ clean()

template<typename T , auto error_measurer>
void roboctrl::utils::pid_base< T, error_measurer >::clean ( )
inline

清空积分项、误差缓存与输出。

在文件 pid.h87 行定义.

◆ set_target()

template<typename T , auto error_measurer>
void roboctrl::utils::pid_base< T, error_measurer >::set_target ( target)
inline

设置期望目标。

在文件 pid.h53 行定义.

被这些函数引用 roboctrl::device::dji_motor::set().

◆ state()

template<typename T , auto error_measurer>
T roboctrl::utils::pid_base< T, error_measurer >::state ( ) const
inline

获取最新的控制输出。

在文件 pid.h97 行定义.

◆ target()

template<typename T , auto error_measurer>
T roboctrl::utils::pid_base< T, error_measurer >::target ( ) const
inline

在文件 pid.h55 行定义.

◆ update()

template<typename T , auto error_measurer>
void roboctrl::utils::pid_base< T, error_measurer >::update ( current)
inline

根据当前值更新 PID 输出。

与传统 RM 风格 PID(error[0]/error[1] 差分)保持兼容:

  • 误差缓存顺序:先 old 再 new
  • 积分项:I += ki * error
  • 微分项:D = kd * (error_curr - error_prev)
  • 限幅顺序:先 Iout,再输出

在文件 pid.h66 行定义.

类成员变量说明

◆ kd

template<typename T , auto error_measurer>
T roboctrl::utils::pid_base< T, error_measurer >::kd = 0

在文件 pid.h24 行定义.

◆ ki

template<typename T , auto error_measurer>
T roboctrl::utils::pid_base< T, error_measurer >::ki = 0

在文件 pid.h23 行定义.

◆ kp

template<typename T , auto error_measurer>
T roboctrl::utils::pid_base< T, error_measurer >::kp = 0

在文件 pid.h22 行定义.

◆ max_iout

template<typename T , auto error_measurer>
T roboctrl::utils::pid_base< T, error_measurer >::max_iout {}

在文件 pid.h27 行定义.

◆ max_out

template<typename T , auto error_measurer>
T roboctrl::utils::pid_base< T, error_measurer >::max_out {}

在文件 pid.h26 行定义.


该结构体的文档由以下文件生成: