
汽车二、三自由度模型simulink模型 本人用了三种不同方法搭的汽车线性二自由度simulink模型文档里包含有具体的车辆数值还关于汽车simulink仿真实例。 也有三自由度模型以及说明文 适合初学者学习simulink使用 ps模型输入为前轮转角输出为横摆角速度和速度刚接触车辆动力学仿真那会儿对着Simulink里密密麻麻的连线就头大。后来发现从二自由度模型切入最容易上手——方向盘一转车子横摆角速度和速度怎么变这玩意儿用三种方法都能搭出来今天就带你们玩点野路子。先甩个参数表镇楼数值都实测过m 1723; % 整车质量(kg) Iz 4175; % 横摆转动惯量(kg·m²) a 1.232; % 前轴到质心距离(m) b 1.468; % 后轴到质心距离(m) Cf 66900; % 前轮侧偏刚度(N/rad) Cr 62700; % 后轮侧偏刚度(N/rad)第一种方法最暴力——微分方程硬怼图1。直接把动力学方程拆成两个微分模块% 横摆角加速度计算 d_r (a*Cf*(delta - (va*r)/u) - b*Cr*( (v - b*r)/u )) / Iz; % 侧向加速度计算 dv (Cf*(delta - (va*r)/u ) Cr*( (v - b*r)/u )) / m - u*r;Simulink里用两个Integrator模块接力适合理解物理本质。但新手容易把正负号搞反别问我怎么知道的...第二种方法装逼用状态空间图2。把方程写成矩阵形式A [ (CfCr)/(m*u) , (a*Cf - b*Cr)/(m*u) - u ; (a*Cf - b*Cr)/(Iz*u) , (a²*Cf b²*Cr)/(Iz*u) ]; B [ -Cf/m ; -a*Cf/Iz ]; C eye(2); D zeros(2,1);用State-Space模块直接喂进去瞬间高大上。不过要注意u是时变的得实时更新系统矩阵——这里我用了MATLAB Function模块动态刷新参数。汽车二、三自由度模型simulink模型 本人用了三种不同方法搭的汽车线性二自由度simulink模型文档里包含有具体的车辆数值还关于汽车simulink仿真实例。 也有三自由度模型以及说明文 适合初学者学习simulink使用 ps模型输入为前轮转角输出为横摆角速度和速度第三种骚操作——传递函数法图3。对横摆角速度传函做文章s tf(s); G_r (Cf*(a*s - m*u^2 Cr*(ab)) ) / (Iz*m*u*s^2 - (Cf*(a^2*m*u Iz) Cr*(b^2*m*u Iz))*s ...);适合频域分析但实际跑起来数值稳定性差。建议加个饱和模块限制前轮转角输入范围。当二自由度玩熟了上三自由度模型就顺了图4。多出来那一个自由度通常是侧倾运动得在动力学方程里加簧上质量转动phi_dotdot (m_s*h*a_y - K_phi*phi - C_phi*phi_dot) / I_xx;这时候会发现原来的侧向加速度计算要耦合侧倾角建议用Bus Signal整理信号线不然连线能缠成毛线团。仿真翻车预警1. 别用定步长求解器ode45才是王道2. 车速低于5m/s时模型会崩加个Switch模块做低速屏蔽3. 前轮转角别超过0.3rad否则线性假设失效。最后来个仿真结果镇场图5方向角阶跃输入下横摆角速度呈现典型二阶振荡车速变化曲线暴露了二自由度模型忽略纵向动力学的缺陷——这就该三自由度模型上场补刀了。