分布式电动汽车的稳定性控制策略:基于CarSim与Simulink联合仿真的四轮力矩分配策略研究
分布式电动汽车稳定性控制 carsim/simulink联合仿真控制车辆稳定性 上层采用lqr控制输出期望横摆力矩 下层才用二次规划输出制动力矩并采用平均分配实现四轮力矩分配。 输入到轮毂电机中实现四轮转矩控制。 有参考文献可以改为trucksim此模型需要一定的软件应用基础没有基础的小白慎)分布式驱动电动车这玩意儿最近几年火得不行四个轮子能独立输出扭矩的特性简直就是控制工程师的游乐场。今天咱们来盘一盘怎么用Carsim和Matlab/Simulink搞联合仿真实现车辆的稳定性控制。先说好这玩意儿需要点仿真软件操作底子要是连Carsim的车辆模型参数都找不到的话建议先打打基础再回来看。先上整体架构上层用LQR算出车辆需要的横摆力矩下层用二次规划把力矩分配到四个轮毂电机。这里有个骚操作——上层控制只管宏观大局下层分配负责微观落实中间用制动力矩当翻译官。先看LQR控制器部分。Matlab里写这个其实挺直球的Q diag([10, 1, 0.1, 0.5]); % 状态权重矩阵 R 0.01; % 控制量权重 [K,~,~] lqr(A, B, Q, R); desired_yaw_moment -K * x_current;这里权重矩阵Q的玄学调参是个技术活建议先把横摆角速度的权重调高毕竟咱们主要控制的是车辆旋转。有个坑要注意LQR的数学模型最好是基于二自由度车辆模型改的别直接用Carsim的全车模型否则线性化的时候会怀疑人生。接下来是下层的二次规划分配。举个简化的CVX优化代码cvx_begin variable Fx(4) minimize( norm(Fx) ) subject to T_desired [a1, a2, a3, a4] * Fx # 力矩分配约束 0 Fx F_max # 电机扭矩限制 cvx_end这里a1~a4是和车轮位置相关的分配系数实际项目里得考虑轮距轴距这些参数。有意思的是约束条件里的不等式既要保证不突破电机最大扭矩又要避免反向制动带来的抖动。分布式电动汽车稳定性控制 carsim/simulink联合仿真控制车辆稳定性 上层采用lqr控制输出期望横摆力矩 下层才用二次规划输出制动力矩并采用平均分配实现四轮力矩分配。 输入到轮毂电机中实现四轮转矩控制。 有参考文献可以改为trucksim此模型需要一定的软件应用基础没有基础的小白慎)力矩分配这块有个偷懒但实用的办法——平均分配。比如总需求扭矩是100Nm直接给四个轮子各25Nm。虽然不够optimal但胜在实时性好wheel_torque desired_total_torque / 4 * ones(4,1);实测发现在低附着力路面这么搞反而比复杂算法更稳定果然大道至简啊。联合仿真的时候记得设置好Carsim的输入输出接口特别是四轮扭矩的输入通道命名别搞混。曾经有个兄弟把左前轮和右后轮搞反了车子在仿真里跳起了街舞...进阶玩家可以把Carsim换成Trucksim毕竟卡车重心高更容易失稳。不过Trucksim的轮胎模型参数设置更复杂建议先拿乘用车模型练手。有个取巧的办法是把卡车当大号轿车来调参当然这属于野路子了。最后说个实战经验仿真时给个阶跃方向盘输入观察横摆角速度的超调量。要是LQR控制下超调超过20%赶紧回去调Q矩阵的第三个权重参数别问我怎么知道的——都是泪啊。注具体参数涉及项目保密要求做了模糊化处理想复现的同志得自己调参。理论细节可以参考《Vehicle Dynamics and Control》第6章或者SAE 2017-01-1611这篇论文