- 重构setPhaseVoltage函数实现,提高执行效率 - 增加update_power函数,动态更新电源电压 - 优化velocity_open_loop函数,调用、setPhaseVoltage避免重复代码 - 实现angle_control和velocity_control闭环控制函数 - 调整PID控制器参数初始化及增加参数设置接口 - 改进电流和编码器速度卡尔曼滤波器实现 - 更新CAN通信数据打包逻辑,增加测试字段 - 在定时器中断中集成多种控制模式切换逻辑 - 完善角度传感器数据处理,改进速度计算方法 - 减小速度滤波数组大小,提升响应速度
25 lines
669 B
C++
25 lines
669 B
C++
#ifndef PID_H
|
|
#define PID_H
|
|
|
|
class PIDController
|
|
{
|
|
public:
|
|
PIDController(float P, float I, float D, float ramp, float limit);
|
|
~PIDController() = default;
|
|
|
|
float operator() (float error);
|
|
void set_PID(float P, float I, float D);
|
|
|
|
float P; //!< 比例增益(P环增益)
|
|
float I; //!< 积分增益(I环增益)
|
|
float D; //!< 微分增益(D环增益)
|
|
float output_ramp;
|
|
float limit;
|
|
protected:
|
|
float error_prev; //!< 最后的跟踪误差值
|
|
float output_prev; //!< 最后一个 pid 输出值
|
|
float integral_prev; //!< 最后一个积分分量值
|
|
unsigned long timestamp_prev; //!< 上次执行时间戳
|
|
};
|
|
|
|
#endif |