feat(FOC): 添加快速电压检测功能和PWM调试模式
新增基于跌幅检测的快速电压保护机制,在100us周期内响应电压异常, 当电压跌幅超过阈值或低于绝对下限时立即关机保护。同时添加PWM输出 调试模式便于硬件测试。 BREAKING CHANGE: 重构了电压检测逻辑,采用峰值跟踪算法替代固 定阈值检测,提高在动态供电环境下的可靠性
This commit is contained in:
@@ -30,12 +30,18 @@ class FOC_Controller {
|
||||
bool voltage_error = false;
|
||||
bool is_shut_down = false;
|
||||
bool thermal_shutdown = false; // 过热关机标志
|
||||
bool emergency_shutdown = false; // 紧急电压跌落关机标志
|
||||
|
||||
float voltage_power_supply = 24.0f; // 电源电压
|
||||
float v_safe = voltage_power_supply / 1.05f;
|
||||
float duty_a = 0, duty_b = 0, duty_c = 0;
|
||||
float Ua = 0, Ub = 0, Uc = 0;
|
||||
|
||||
// 快速电压检测相关成员(基于跌幅检测)
|
||||
float vbus_reference = 0.0f; // 基准电压(峰值检测,跟踪当前额定电压)
|
||||
float last_vbus_fast = 0.0f; // 上次电压值(快速检测用)
|
||||
u32 vbus_drop_count = 0; // 电压跌落计数器(防抖)
|
||||
|
||||
float cur_loop_p = DEFAULT_current_loop_p;
|
||||
float vel_loop_p = DEFAULT_vel_loop_p;
|
||||
float ang_loop_p = DEFAULT_angle_loop_p;
|
||||
@@ -60,8 +66,10 @@ class FOC_Controller {
|
||||
void resume(void);
|
||||
void drv_stop(void);
|
||||
float drv_hold(void);
|
||||
float PWM_out(void);
|
||||
void shut_down_thermal(void); // 过热关机
|
||||
void resume_from_thermal(void); // 过热恢复
|
||||
void fast_voltage_check(void); // 快速电压检测(100us周期调用)
|
||||
|
||||
// 此处默认值不作数
|
||||
PIDController vel_loop =
|
||||
|
||||
Reference in New Issue
Block a user