纯电动汽车动力经济性仿真,Cruise和Simulink联合仿真,提供Cruise整车模型和simuink策略模型,策略主要为BMS、再生制动和电机驱动策略,内含注释模型和详细解析文档,可运行!
先说整体架构,Cruise那边搭了个完整的整车模型,电池包参数标得明明白白。重点在Simulink的策略层——BMS管理、再生制动和电机驱动三个模块构成铁三角。这里头有个骚操作:Cruise的驾驶员模型输出踏板信号,Simulink这边接过来直接做策略决策。
看这段再生制动策略的代码片段:
function T_regen = regen_braking(soc, brake_pedal, vehicle_speed) % SOC保护阈值 if soc > 0.9 T_regen = 0; else % 速度-制动力映射曲线 speed_curve = [0 10 30 50]; torque_curve = [0 50 80 100]; base_torque = interp1(speed_curve, torque_curve, vehicle_speed, 'linear', 0); % 踏板深度修正 T_regen = base_torque * brake_pedal * 0.7; //留30%给机械制动 end end这段代码的鸡贼之处在于用速度插值表替代固定扭矩值,实测能耗能降3%。注意那个0.7的系数,这是为了符合法规要求的电子制动不超过70%的规定,机械制动模块那边会同步补偿。
BMS模块有个特别实用的电流限制策略:
//电池充放电电流动态限制 double current_limit(double soc, double temp) { double base_limit = 300; //A if(soc < 0.2) { base_limit *= 0.5; } else if(soc > 0.95) { base_limit *= 0.3; } return base_limit * (1 - fabs(temp - 25)/50); //温度补偿 }这种非线性限制比查表法节省30%的计算量,温度补偿项处理得很妙——25度时系数为1,75度或-25度直接归零,符合多数电芯的工况特性。
纯电动汽车动力经济性仿真,Cruise和Simulink联合仿真,提供Cruise整车模型和simuink策略模型,策略主要为BMS、再生制动和电机驱动策略,内含注释模型和详细解析文档,可运行!
联合仿真设置要特别注意时钟同步,建议在Simulink端加个速率转换模块。Cruise的车辆模型采样率设为100ms,控制器这边用20ms,这时候需要加个零阶保持器防止信号跳变。遇到过仿真跑着跑着扭矩突降的问题,后来发现是信号buffer没对齐。
模型里埋了几个彩蛋:比如在急加速工况下,电机会偷偷借用5%的制动回收能量,这个写在电机驱动策略的注释里。文档里还标注了NEDC和WLTC两种循环的扭矩标定差异,实测百公里电耗差1.8度左右。
最后说个坑:再生制动和ABS的协同问题。我们在Simulink里加了个打滑率判断,当轮速传感器检测到打滑时,再生扭矩要在50ms内归零。这个逻辑要用触发子系统实现,直接上代码:
if any(wheel_slip > 0.15) enable_regen = 0; % 启动机械制动补偿 hydraulic_brake = hydraulic_brake + last_regen_torque*0.3; end注意那个0.3的补偿系数要和整车质量匹配,不同车型记得改参数表第47行的质量参数。
整套模型在20%坡道起步工况下验证过,电池瞬时功率拉到180kW也没报错。文档里附了七个典型场景的仿真数据,直接跑bat脚本就能复现。想要调加速性能的,优先改电机外特性曲线,比死磕控制参数见效快得多。