当后轮也开始玩转向:4WS4WD的横摆稳定黑科技
4WS4WD无人车横摆稳定性控制 通过滑模控制理论对后轮转角和直接横摆力矩进行集成控制考虑前后轴荷及路面附着系数实现转矩分配提高车身稳定性。 carsimsimulink联合仿真方向打死油门到底车尾突然开始画龙——这种惊悚场面在四轮转向四轮驱动的智能车上可不能出现。今天咱们就扒一扒怎么用滑模控制让这四个轮子乖乖听话顺便把代码实操和仿真测试的坑都踩一遍。滑模控制给车尾装上隐形的轨道传统车辆过弯就像推购物车前轮转向后轮随动。四轮转向系统让后轮也能主动参与但这也带来了双倍的欢乐和失控风险。这里祭出滑模控制大法本质上是在系统状态空间里铺一条虚拟轨道让系统状态沿着预设轨迹滑动。举个栗子我们希望横摆角速度γ和质心侧偏角β的组合值始终在sγλβ0这条线上滑动。就像走钢丝的人不断调整重心系统通过高频切换控制量来维持稳定。% 滑模面计算模块 function s slidingSurface(gamma, beta) lambda 0.6; % 调节前后误差权重的魔法数字 s gamma lambda * beta; end % 控制律生成 function delta_r rearWheelController(s) k 15; % 决定控制力度的暴脾气系数 delta_r -k * sat(s/0.1); % 用饱和函数代替sign防抖振 function ysat(x) y min(max(x,-1),1); end end这里用饱和函数代替传统的sign函数就像把开关的咔嗒声换成柔和的渐变色有效缓解了滑模控制自带的帕金森式抖振。扭矩分配四个车轮的蛋糕怎么切当系统计算出总需求横摆力矩后真正的技术活才开始——怎么把扭矩合理分配给四个电机。这里要考虑两个硬指标前后轴荷分布前轴55%后轴45%和实时路面附着系数。// 扭矩分配伪代码 void torqueDistribute(float Mz_total, float mu[4], float load_ratio){ float front_power load_ratio * (mu[0]mu[1])/2; float rear_power (1-load_ratio) * (mu[2]mu[3])/2; for(int i0;i4;i){ wheel_torque[i] Mz_total * (i2 ? front_power : rear_power) * mu[i] / (sum(mu)); } }这套算法像智能版跷跷板前轴载荷大就多分点扭矩但遇到冰面mu骤降时立即缩手。实际项目中还要加上电机外特性限制别让蛋糕超出盘子容量。联合仿真在虚拟秋名山狂飙搭建CarsimSimulink联合仿真平台就像组装乐高在Carsim里配置好车辆参数轴距2.8m质心高度0.4m输出关键信号横摆角速度、侧向加速度、轮速...Simulink里部署滑模控制器采样时间别超过10ms接入扭矩分配模块记得做速率限制防止电机过冲!联合仿真架构4WS4WD无人车横摆稳定性控制 通过滑模控制理论对后轮转角和直接横摆力矩进行集成控制考虑前后轴荷及路面附着系数实现转矩分配提高车身稳定性。 carsimsimulink联合仿真测试时故意让车辆在μ0.3的湿滑路面做麋鹿测试没开控制时车尾摆幅超过15度开启控制后稳稳压在5度以内。不过CPU使用率飙到70%——提醒我们代码优化不能停。写在最后调参时发现个反直觉现象在低附路面后轮转向角有时会和前轮同向原来这是主动制造不足转向特性来保命。果然在车辆稳定领域有时候以毒攻毒才是正道。下次准备试试把轮胎魔术公式揉进控制器或者上强化学习自动调参。不过老板说先把当前版本BUG修完——果然理想很丰满现实很骨感啊。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2434465.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!