MATLAB驱动防滑转模型ASR模型 ASR模型 驱动防滑转模型 牵引力控制系统模型… MATLAB再生制动模型/制动能量回收模型 电动车电液复合制动模型 刹车回能模型 电机再生制动模型最近在搞车辆控制系统仿真发现驱动防滑ASR和再生制动这两个子系统特别有意思。这俩货看起来八竿子打不着实际上在电动车里经常需要协同作战。今天咱们就扒开它们的代码看看门道。先说说ASR模型怎么在MATLAB里蹦跶。这个防滑转的核心就是轮胎纵向力控制说白了就是别让车轮转得太high把地面都刨出坑来。来看个简化版的扭矩控制逻辑function target_torque ASR_Controller(wheel_speed, vehicle_speed) slip_ratio (wheel_speed - vehicle_speed) / max(vehicle_speed, 0.1); Kp 15; Ki 0.2; % 滑移率控制在15%-20%区间 if slip_ratio 0.2 torque_reduction Kp*(slip_ratio-0.2) Ki*sum(slip_ratio-0.2); elseif slip_ratio 0.15 torque_boost Kp*(0.15-slip_ratio); else % 保持当前扭矩 end % ...后续扭矩限制逻辑 end这段代码有个坑最大扭矩限制没写在里面实际得根据电机特性动态调整。很多论文里用魔术公式轮胎模型但实测发现用简化线性模型跑实时控制更香特别是做硬件在环的时候。MATLAB驱动防滑转模型ASR模型 ASR模型 驱动防滑转模型 牵引力控制系统模型… MATLAB再生制动模型/制动能量回收模型 电动车电液复合制动模型 刹车回能模型 电机再生制动模型转身看再生制动这边核心是能量回收和机械刹车的跷跷板游戏。这里有个骚操作——用SOC电池电量当裁判function [regen_torque, friction_torque] Brake_Allocation(brake_pedal, SOC) max_regen 0.3 * (1 - SOC/100); # SOC越高回收能力越弱 total_demand brake_pedal * 2000; # 假设最大制动力2000Nm if total_demand max_regen regen_torque total_demand; friction_torque 0; else regen_torque max_regen; friction_torque total_demand - max_regen; end % 防止电池过充的紧急措施 if SOC 95 regen_torque 0; end end这个分配策略看着简单实际调试时发现刹车脚感特别重要。曾经在台架测试时因为回收扭矩介入太猛搞得试驾员以为刹车失灵——后来加了二阶滤波才解决。现在把这两个系统揉在一起搞电液复合制动得处理信号打架的问题。比如防滑转需要增加驱动扭矩时如果刚好在制动状态就得赶紧把制动压力泄掉。这时候状态机就派上用场了% 状态切换逻辑 switch control_mode case Accelerating if detect_wheel_spin enter_ASR_mode(); disable_regen_braking(); end case Braking if abs(wheel_slip) 0.25 reduce_hydraulic_brake(); if SOC 90 apply_regen_brake(); end end case ABS_Active % 关闭所有能量回收 regen_torque 0; end实测中发现模式切换时的扭矩波动能让人崩溃。后来在CAN信号里插了个50ms的渐变过渡平顺性立马提升。不过这也带来副作用——极端工况下的响应延迟鱼和熊掌难兼得啊。最后说个骚操作把ASR和再生制动联动。当检测到驱动轮打滑时不是简单降低扭矩而是把多余能量怼回电池。这招在雪地测试时回收效率暴涨不过对电池管理系统是个考验搞不好就触发过压保护。
MATLAB驱动防滑转模型ASR模型 ASR模型 驱动防滑转模型 牵引力控制系统模型…
MATLAB驱动防滑转模型ASR模型 ASR模型 驱动防滑转模型 牵引力控制系统模型… MATLAB再生制动模型/制动能量回收模型 电动车电液复合制动模型 刹车回能模型 电机再生制动模型最近在搞车辆控制系统仿真发现驱动防滑ASR和再生制动这两个子系统特别有意思。这俩货看起来八竿子打不着实际上在电动车里经常需要协同作战。今天咱们就扒开它们的代码看看门道。先说说ASR模型怎么在MATLAB里蹦跶。这个防滑转的核心就是轮胎纵向力控制说白了就是别让车轮转得太high把地面都刨出坑来。来看个简化版的扭矩控制逻辑function target_torque ASR_Controller(wheel_speed, vehicle_speed) slip_ratio (wheel_speed - vehicle_speed) / max(vehicle_speed, 0.1); Kp 15; Ki 0.2; % 滑移率控制在15%-20%区间 if slip_ratio 0.2 torque_reduction Kp*(slip_ratio-0.2) Ki*sum(slip_ratio-0.2); elseif slip_ratio 0.15 torque_boost Kp*(0.15-slip_ratio); else % 保持当前扭矩 end % ...后续扭矩限制逻辑 end这段代码有个坑最大扭矩限制没写在里面实际得根据电机特性动态调整。很多论文里用魔术公式轮胎模型但实测发现用简化线性模型跑实时控制更香特别是做硬件在环的时候。MATLAB驱动防滑转模型ASR模型 ASR模型 驱动防滑转模型 牵引力控制系统模型… MATLAB再生制动模型/制动能量回收模型 电动车电液复合制动模型 刹车回能模型 电机再生制动模型转身看再生制动这边核心是能量回收和机械刹车的跷跷板游戏。这里有个骚操作——用SOC电池电量当裁判function [regen_torque, friction_torque] Brake_Allocation(brake_pedal, SOC) max_regen 0.3 * (1 - SOC/100); # SOC越高回收能力越弱 total_demand brake_pedal * 2000; # 假设最大制动力2000Nm if total_demand max_regen regen_torque total_demand; friction_torque 0; else regen_torque max_regen; friction_torque total_demand - max_regen; end % 防止电池过充的紧急措施 if SOC 95 regen_torque 0; end end这个分配策略看着简单实际调试时发现刹车脚感特别重要。曾经在台架测试时因为回收扭矩介入太猛搞得试驾员以为刹车失灵——后来加了二阶滤波才解决。现在把这两个系统揉在一起搞电液复合制动得处理信号打架的问题。比如防滑转需要增加驱动扭矩时如果刚好在制动状态就得赶紧把制动压力泄掉。这时候状态机就派上用场了% 状态切换逻辑 switch control_mode case Accelerating if detect_wheel_spin enter_ASR_mode(); disable_regen_braking(); end case Braking if abs(wheel_slip) 0.25 reduce_hydraulic_brake(); if SOC 90 apply_regen_brake(); end end case ABS_Active % 关闭所有能量回收 regen_torque 0; end实测中发现模式切换时的扭矩波动能让人崩溃。后来在CAN信号里插了个50ms的渐变过渡平顺性立马提升。不过这也带来副作用——极端工况下的响应延迟鱼和熊掌难兼得啊。最后说个骚操作把ASR和再生制动联动。当检测到驱动轮打滑时不是简单降低扭矩而是把多余能量怼回电池。这招在雪地测试时回收效率暴涨不过对电池管理系统是个考验搞不好就触发过压保护。