分布式驱动汽车稳定性控制——基于纯Simulink模型的分层控制策略与实现
分布式驱动汽车稳定性控制。 采用纯Simulink模型搭建,包括控制策略和车辆动力学模型[hot][hot][hot] 采用分层式直接横摆力矩控制, [1]上层:含模型预测MPC,滑模控制SMC,PID控制,LQR控制。 可灵活对四种控制器对比和选择。 [2]下层:基于轮胎滑移率最优分配 四种控制均可跟踪横摆角速度和质心侧偏角期望值。 [3]实现方式:车辆被控对象采用七自由度整车模型输出实际质心侧偏角和横摆角速度,二自由度模型输出理想质心侧偏角和横摆角速度。 [右]资料包括:具有初始化文件,Simulink模型,控制器说明,有参考文献和七自由度整车建模说明文档。
最近在实验室折腾分布式驱动电动汽车的稳定性控制,发现用Simulink做分层控制真是越挖越有意思。今天给大伙分享下我们团队搞的这套方案——从七自由度整车模型到四种控制策略的灵活切换,中间还藏着不少工程实现的小技巧。

先说整体架构,整个系统分成"战略层"和"战术层"。上层负责决策总横摆力矩,下层搞轮胎力的最优分配。这种分层设计就像游戏里的指挥系统,上层指挥官定战略目标,下层士兵执行具体操作。

上层的控制策略切换是重头戏,我们在同一个Simulink子系统里塞进了MPC、SMC、PID、LQR四种算法。切换逻辑用了个骚操作——通过mask parameter实现运行时动态选择:
function [Mz] = controller_selector(ref_beta, ref_gamma, beta, gamma, mode)
switch mode
case 1 % MPC
[Mz, ~] = mpc_controller(ref_beta, ref_gamma, beta, gamma);
case 2 % SMC
Mz = sliding_mode_control(ref_beta, ref_gamma, beta, gamma);
case 3 % PID
Mz = pid_controller(ref_beta, ref_gamma, beta, gamma);
case 4 % LQR
Mz = lqr_controller(ref_beta, ref_gamma, beta, gamma);
end
end
这种实现方式让算法对比变得巨方便,实测时直接在Workspace改个参数就能切换控制器,连模型都不用重新编译。
分布式驱动汽车稳定性控制。 采用纯Simulink模型搭建,包括控制策略和车辆动力学模型[hot][hot][hot] 采用分层式直接横摆力矩控制, [1]上层:含模型预测MPC,滑模控制SMC,PID控制,LQR控制。 可灵活对四种控制器对比和选择。 [2]下层:基于轮胎滑移率最优分配 四种控制均可跟踪横摆角速度和质心侧偏角期望值。 [3]实现方式:车辆被控对象采用七自由度整车模型输出实际质心侧偏角和横摆角速度,二自由度模型输出理想质心侧偏角和横摆角速度。 [右]资料包括:具有初始化文件,Simulink模型,控制器说明,有参考文献和七自由度整车建模说明文档。

下层的力矩分配才是真正考验功力的地方。我们基于轮胎滑移率优化设计了个加权分配算法,核心是求解带约束的二次规划问题。在Simulink里用MATLAB Function块实现了这个求解器:
function [Fx_ij] = torque_distribution(Mz, Fx_total)
H = diag([1.2, 1.0, 1.2, 1.0]); % 前后轴权重矩阵
f = [];
Aeq = [1 1 1 1; ... % 总驱动力约束
-0.5*Tw 0.5*Tw -0.5*Tw 0.5*Tw]; % 横摆力矩约束
beq = [Fx_total; Mz];
options = optimoptions('quadprog','Display','off');
Fx_ij = quadprog(H,f,[],[],Aeq,beq,[],[],[],options);
end
这里有个小trick——通过调整权重矩阵H的值,可以实现不同工况下的动态分配策略。比如检测到低附着路面时,自动增大前轴权重来保转向能力。
模型搭建方面,七自由度整车模型包含了四个轮子的旋转自由度。这里给个关键参数的初始化示例:
%% 车辆参数初始化
vehicle.m = 1520; % 整备质量
vehicle.Iz = 2500; % 横摆转动惯量
vehicle.Lf = 1.4; % 前轴距
vehicle.Lr = 1.6; % 后轴距
vehicle.C_alpha = [80000 80000 100000 100000]; % 轮胎侧偏刚度
实测中发现前轮侧偏刚度对横摆响应影响最大,调试时经常要微调这个参数。不过别随便动后轮参数,搞不好会引发钟摆效应。

最后说下效果验证环节。在双移线工况下测试时,MPC和LQR的表现最稳,SMC的响应速度最快但有点抖,PID嘛...只能说勉强能用。不过具体选哪个控制器还得看车速——高速工况下MPC的预测优势明显,而低速时SMC的鲁棒性更好。
这套方案目前已经在实验室的台架上跑通了,下一步准备移植到实车。不过提醒想复现的兄弟,七自由度模型的计算步长千万别超过0.001s,不然会出诡异的数值震荡。另外参考文献里的轮胎模型公式有处排版错误,具体修正方法在建模说明文档的附录里有写。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)