feat(motor): 引入运行禁止机制重构电机控制安全系统
- 添加 run_inhibit.h/cpp 模块作为全局运行闸门,统一管理所有停机/唤醒逻辑 - 移除 FOC 控制器中的 5 个相互引用的开关机函数(shut_down/resume 等) - 将 nFAULT 硬件故障检测从仅上报改为运行门控制,连续采样故障时申请禁止位 - 改进电压检测逻辑,欠压判定现在通过 run_inhibit 统一执行停机动作 - 修正 PB2(nFAULT) 引脚配置为内部上拉输入,避免浮空误读导致系统锁死 - 在 CAN 状态帧中新增 RunInhibit 位图(字节 36-39),实时反映禁止运行的故障源 - 电流采样失效、过热故障现在通过禁止位管理而非直接操作驱动状态 - 校准函数增加运行许可检查,防止在停机状态下意外唤醒驱动
This commit is contained in:
@@ -39,10 +39,8 @@ class FOC_Controller {
|
||||
float rt_velocity = 0.0f;
|
||||
float rt_current = 0.0f;
|
||||
|
||||
bool over_current = false;
|
||||
bool voltage_error = false;
|
||||
bool is_shut_down = false;
|
||||
bool thermal_shutdown = false; // 过热关机标志
|
||||
// 关机事件标记:通知低频任务把当前状态落盘(不是"能不能运行"的判据,
|
||||
// 运行许可一律看 sys/run_inhibit.h)
|
||||
bool emergency_shutdown = false; // 紧急电压跌落关机标志
|
||||
|
||||
float voltage_power_supply = 24.0f; // 电源电压
|
||||
@@ -108,21 +106,6 @@ class FOC_Controller {
|
||||
* @return void
|
||||
*/
|
||||
void DFOC_alignSensor(int _PP);
|
||||
/**
|
||||
* @brief shut_down 函数
|
||||
* @return void
|
||||
*/
|
||||
void shut_down(void);
|
||||
/**
|
||||
* @brief resume 函数
|
||||
* @return void
|
||||
*/
|
||||
void resume(void);
|
||||
/**
|
||||
* @brief drv_stop 函数
|
||||
* @return void
|
||||
*/
|
||||
void drv_stop(void);
|
||||
/**
|
||||
* @brief drv_hold 函数
|
||||
* @return float 返回值
|
||||
@@ -133,16 +116,6 @@ class FOC_Controller {
|
||||
* @return float 返回值
|
||||
*/
|
||||
float PWM_out(void);
|
||||
/**
|
||||
* @brief shut_down_thermal 函数
|
||||
* @return void
|
||||
*/
|
||||
void shut_down_thermal(void); // 过热关机
|
||||
/**
|
||||
* @brief resume_from_thermal 函数
|
||||
* @return void
|
||||
*/
|
||||
void resume_from_thermal(void); // 过热恢复
|
||||
/**
|
||||
* @brief fast_voltage_check 函数
|
||||
* @return void
|
||||
|
||||
Reference in New Issue
Block a user