feat(FOC): 添加速度目标突变检测和积分清零机制
- 在velocity_control()函数中添加目标速度突变检测,当速度变化 超过5.0f时自动清零积分项 - 在angle_control_with_velocity_limit()函数中添加相同的速度 突变检测逻辑 - 在MIT_Mode()函数中实现速度环积分清零功能 - 添加reset_integral()方法到PID控制器用于清零积分项 refactor(Filter): 将角度卡尔曼滤波器替换为α-β观测器 - 重构EncoderAngleKalman类,将内部卡尔曼滤波器改为α-β观 测器算法 - 保留原有的接口名称和参数以维持兼容性 - 添加ANGLE_OBSERVER_ALPHA和ANGLE_OBSERVER_BETA配置参数 - 修改速度获取逻辑,直接从观测器状态获取速度估计值 perf(systick): 实现基于DWT的CPU使用率监测 - 使用DWT周期计数器精确测量任务执行周期 - 添加busy_task_enter()和busy_task_exit()函数追踪忙碌周期 - 实现每秒统计CPU占用率并提供get_cpu_usage()接口 - 在CAN数据包中添加CPU使用率传输字段 fix(Can): 修复CANFD数据包中的整数打包问题 - 将16位整数正确拆分为两个字节进行传输 - 修正了test_u16数据的字节序打包方式 chore(config): 更新软件版本号并优化配置参数 - 将版本号从26.4.26更新到26.5.17 - 调整角度/速度α-β观测器的相关增益参数
This commit is contained in:
+11
-16
@@ -16,8 +16,8 @@
|
||||
|
||||
// 版本号定义 - 可根据实际项目进行调整
|
||||
constexpr u16 SOFTWARE_VERSION_MAJOR = 26;
|
||||
constexpr u16 SOFTWARE_VERSION_MINOR = 4;
|
||||
constexpr u16 SOFTWARE_VERSION_PATCH = 26;
|
||||
constexpr u16 SOFTWARE_VERSION_MINOR = 5;
|
||||
constexpr u16 SOFTWARE_VERSION_PATCH = 17;
|
||||
constexpr u16 SOFTWARE_VERSION_BUILD = 2;
|
||||
|
||||
constexpr u16 HARDWARE_VERSION_MAJOR = 25;
|
||||
@@ -93,26 +93,21 @@ constexpr u16 ANGLESENS_OFFSET = 0;
|
||||
constexpr float ANGLESENS_CALIBRATION_ANGLE = 83.0f;
|
||||
constexpr float KE_FACTOR = 0.0f;
|
||||
|
||||
// 角度卡尔曼滤波器参数
|
||||
// 参数调节建议:
|
||||
// - 增大 Q 值:增加对测量的信任,提高响应速度
|
||||
// - 减小 Q 值:增加对预测的信任,提高平滑度
|
||||
// - 增大 R 值:增加平滑度,减少噪声,但会降低响应速度
|
||||
// - 减小 R 值:提高响应速度,但会增加噪声
|
||||
// 角度/速度 α-β 观测器参数
|
||||
constexpr float ANGLE_KALMAN_INITIAL_STATE = 0.0f;
|
||||
constexpr float ANGLE_KALMAN_INITIAL_COVARIANCE = 0.0f;
|
||||
constexpr float ANGLE_KALMAN_PROCESS_NOISE_Q =
|
||||
1e-3f; // 过程噪声协方差 - 调节此参数控制平滑度
|
||||
constexpr float ANGLE_KALMAN_MEASUREMENT_NOISE_R =
|
||||
0.0062f; // 测量噪声协方差 - 调节此参数控制响应速度
|
||||
constexpr float ANGLE_KALMAN_PROCESS_NOISE_Q = 0.0f;
|
||||
constexpr float ANGLE_KALMAN_MEASUREMENT_NOISE_R = 0.0f;
|
||||
constexpr float ANGLE_OBSERVER_ALPHA = 0.75f; // 角度校正增益,越大越跟测量
|
||||
constexpr float ANGLE_OBSERVER_BETA = 0.002f; // 速度校正增益,原0.001微调至0.002
|
||||
|
||||
// 速度卡尔曼滤波器参数
|
||||
// 旧速度 Kalman 参数保留用于接口兼容;主速度输出现在直接来自 α-β 观测器
|
||||
constexpr float VELOCITY_KALMAN_INITIAL_STATE = 0.0f;
|
||||
constexpr float VELOCITY_KALMAN_INITIAL_COVARIANCE = 1e-5f;
|
||||
constexpr float VELOCITY_KALMAN_INITIAL_COVARIANCE = 1e-3f;
|
||||
constexpr float VELOCITY_KALMAN_PROCESS_NOISE_Q =
|
||||
1e-6f; // 过程噪声协方差 - 通常保持较小
|
||||
5e-4f; // 略增大,减少拖尾
|
||||
constexpr float VELOCITY_KALMAN_MEASUREMENT_NOISE_R =
|
||||
1.0f; // 测量噪声协方差 - 主要调节参数 1.0
|
||||
0.05f; // 明显小于旧值,避免压得太死
|
||||
|
||||
// 电流卡尔曼滤波器参数
|
||||
constexpr float CURRENT_KALMAN_INITIAL_STATE = 0.0f;
|
||||
|
||||
Reference in New Issue
Block a user