基于Simulink的LQR控制四轮转向系统设计与仿真研究
四轮转向 LQR控制 Simulink个人 所有算法基于Simulink开发carsim联合仿真 以期望横摆角速度零质心侧偏角为状态量后轮转角为输入进行离线全速域LQR控制实现四轮转向不考虑干扰矩阵 图一Simulink模型 图二双移线工况横摆角速度对比 图三双移线工况质心侧偏角对比 图四所有交付内容直接开干这次的四轮转向LQR控制项目有点东西特别是全速域这个设定——从20km/h到120km/h都能hold住。咱们先看Simulink模型架构图一核心控制器用Embedded MATLAB Function写的和CarSim的联合仿真走的是S-Function接口。状态方程里取了横摆角速度误差和质心侧偏角后轮转角作为控制输入。直接上核心代码片段function [dqr] LQR_Controller(rd, beta, r, vx) % 车速换算m/s vx vx / 3.6; % 查表获取当前车速对应的A,B矩阵 [A,B] getAB(vx); % 权重矩阵动态调整 Q diag([200/(vx^21), 100]); R 0.1; [K,~,~] lqr(A,B,Q,R); dqr -K*[rd - r; beta]; end这里有个骚操作——Q矩阵里的200/(vx²1)实现了权重随车速动态变化高速时降低横摆角速度误差权重防止控制过猛。实测发现当车速超过80km/h时权重系数会自动降到1/5左右这个非线性处理对稳定性提升明显。四轮转向 LQR控制 Simulink个人 所有算法基于Simulink开发carsim联合仿真 以期望横摆角速度零质心侧偏角为状态量后轮转角为输入进行离线全速域LQR控制实现四轮转向不考虑干扰矩阵 图一Simulink模型 图二双移线工况横摆角速度对比 图三双移线工况质心侧偏角对比 图四所有交付内容看看双移线工况的表现图二、图三后轮转角在高速时会主动反向补偿。比如在60km/h过弯时前轮转5度的话后轮会转1.2度同向而到了120km/h就变成转0.8度反向这个动态特性是传统PID搞不定的。交付内容里最实用的是那个LQR参数自整定脚本图四用粒子群算法在20组典型工况下自动调参。举个栗子for iter 1:max_iter % 并行计算适应度 parfor i1:swarm_size cost(i) simulate_case(particle(i).Q, particle(i).R); end % 更新全局最优 [~, idx] min(cost); if cost(idx) global_best_cost global_best particle(idx); end end这个脚本跑完能自动生成Q、R矩阵的推荐值比手工调参效率高10倍不止。实测发现算法更喜欢给beta角分配更高权重毕竟零质心侧偏是安全底线。最后提醒几个坑CarSim的坐标系和Simulink的转向符号容易搞反LQR的求解器最好用care不要用dlqr还有采样时间别低于0.01s不然实时性会崩。这个框架改改状态量还能玩转矩分配下次试试前轮转向后轮制动的混合控制应该更刺激。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2480352.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!