feat(FOC): 重构FOC控制器实现并修复SVPWM算法支持
- 修复类名拼写错误:FOC_Controlroller -> FOC_Controller - 移除不必要的角度归一化函数,直接使用fmod优化性能 - 添加完整的SVPWM算法实现,提高电机控制效率 - 重构PID参数配置,使用动态参数调整机制 - 增加电流反馈功能,实时监测电机运行状态 - 优化电压安全限制,提高系统稳定性 - 更新控制模式映射,支持更多控制策略 - 改进CAN通信协议,增加电流反馈传输
This commit is contained in:
@@ -11,7 +11,7 @@
|
||||
|
||||
volatile u32 total_us100_counter = 0; // 总计数器,每100微秒增加1
|
||||
extern u16 adc_value[7];
|
||||
extern FOC_Controlroller FOC;
|
||||
extern FOC_Controller FOC;
|
||||
extern TaskScheduler scheduler;
|
||||
extern CAN_transmiter CAN0_transmiter;
|
||||
// 添加系统运行时间计数器
|
||||
@@ -94,9 +94,9 @@ void TIMER2_IRQHandler(void) {
|
||||
timer_interrupt_flag_clear(TIMER2, TIMER_INT_UP);
|
||||
|
||||
// 每50us执行一次的操作 - 电机控制
|
||||
scheduler.taskFlags |= (1 << TASK_MOTOR_CONTROL);
|
||||
scheduler.taskFlags |=
|
||||
(1 << TASK_ANGLE_UPDATE) | (1 << TASK_VELOCITY_UPDATE);
|
||||
scheduler.taskFlags |= (1 << TASK_MOTOR_CONTROL);
|
||||
|
||||
// 使用标志位控制,每100us执行一次其他任务
|
||||
static bool isEvenCall = false;
|
||||
|
||||
Reference in New Issue
Block a user