feat(FOC): 实现电角度零位自动校准并修复ADC采样干扰问题

- 新增FlashEEPROM用于保存零位校准角,掉电不丢失
- 实现安全的零位校准算法:运行中禁止校准、对齐后重新采样、保存到Flash
- 重构ADC架构:分离ADC0(PWM同步电流采样)和ADC1(VBUS/DRV温度轮询)
- 解决ADC采样冲突:移除ADC0的regular连续扫描,避免与注入组抢占资源
- 修复VBUS电压读取错误:从DMA缓冲区改为直接ADC1单次转换
- 修正开环控制Uq幅值限幅逻辑,保留符号避免反转时抖动
- 更新CAN协议:电流数据改为有符号16位打包,支持负电流传输
- 调整版本号至v26.8.16.7
This commit is contained in:
cbb
2026-08-16 02:13:37 +08:00
parent 42c9f2f669
commit 76f7987238
10 changed files with 214 additions and 95 deletions
+7 -3
View File
@@ -22,9 +22,9 @@
// 版本号定义 - 可根据实际项目进行调整
constexpr u16 SOFTWARE_VERSION_MAJOR = 26;
constexpr u16 SOFTWARE_VERSION_MINOR = 5;
constexpr u16 SOFTWARE_VERSION_PATCH = 25;
constexpr u16 SOFTWARE_VERSION_BUILD = 2;
constexpr u16 SOFTWARE_VERSION_MINOR = 8;
constexpr u16 SOFTWARE_VERSION_PATCH = 16;
constexpr u16 SOFTWARE_VERSION_BUILD = 7;
constexpr u16 HARDWARE_VERSION_MAJOR = 25;
constexpr u16 HARDWARE_VERSION_MINOR = 12;
@@ -105,6 +105,10 @@ constexpr float CURRENT_OFFSET = -3.31f / 2.0f; // 当前电流传感器的零
constexpr float HOLD_PWM_DUTY = 0.1f;
constexpr u16 ANGLESENS_OFFSET = 0;
constexpr float ANGLESENS_CALIBRATION_ANGLE = 83.0f;
// 电角度零位校准:施加的对齐占空比与稳定等待时间
constexpr float ALIGN_PWM_DUTY = 0.25f;
constexpr u32 ALIGN_SETTLE_MS = 1000;
constexpr float CALIB_MAX_SPEED = 5.0f; // 输出级速度阈值(deg/s),超过则拒绝校准
constexpr float KE_FACTOR = 0.0f;
// 角度/速度 α-β 观测器参数