先来个碎碎念
这是本渣第一篇CDSN博文,毕业设计建整车模型太艰辛了,我查资料还是不太行,希望后来者可以参考一下吧(希望不要看完走弯路。。。)
我刚还看了个CDSN写作的博文。。。对我来说可太难了。。。
介绍一下我用了六年的笔记本,现在的情况是开机40分钟,打开CarSim和Simulink40分钟,第一次运行Simulink40分钟这样,然后80%的时间,Backspace、Enter和空格键都不能用,所以我的这个总结只能随便一点了,希望能完整表达我的建模过程(肯定会有不到位的地方,请大家带着批判的眼光来看)
我各种摸索,希望大佬看到有错误能给我指点一下,我一直有在闭门造车的感觉,但是课题组的师兄师姐又太忙了不敢打扰这样。。。
然后就开始吧!
对了,虽然我已经努力检查了,但也很有可能哪个公式给打错了,尽信书不如无书!
我研究的是四轮驱动电动轮汽车的高速转向操纵稳定性,之后感觉八自由度可能会更加好,但是我建模型的时候参考的是《四驱汽车动力分配关键部件结构设计与动力学分析》的整车模型,并没有考虑侧倾特性,不过最后整体仿真结果也还行。
先来展示下最终的整车模型:
以车身质心为原点,对于电动轮驱动车辆的高速转向运动,将涉及车辆沿x轴的纵向运动、沿y轴的侧向运动、绕z轴的横摆运动以及四轮的转动,故本文建立七自由度整车模型。在给出整车动力学关系之前,先对车辆模型做出以下简化:
在建模的时候,我第一个整车模型里面是完全使用Simulink的模块建的,建完之后除了第一次之外完全不想再检查了。。。导致我很不愿意去怀疑我的模型有问题。。。然后一个新成语就出现了,叫“讳医忌疾”。这种情况在事后想来完全违背了我建模前给自己定下的“模型合理,易于检查和修改”的标准。
所以在第二次重新建模时我将公式都整合到MATLAB Function里面,又由于方程组相互耦合的特点,我将他们分装在了三个MATLAB Function之中,再考虑Simulink最好使用积分器而不用微分器的特点,整车动力学公式的建模作如下划分,附上代码片:
· 公式(3-1)计算 v ˙ \dot{v} v˙x,通过积分器得到vx
function dVx = fcn(Fx1,Fx2,Fx3,Fx4,Fy1,Fy2,delt,gama,Vx,Vy)
m=1150;
CdA=0.48;
g=9.81;
f=0.01;
dVx=(m*Vy*gama-CdA/21.15*3.6^2*Vx^2+Fx3+Fx4+(Fx1+Fx2)*cos(delt)-(Fy1+Fy2)*sin(delt))/m;
· 公式(3-2)计算 v ˙ \dot{v} v˙y,通过积分器得到vy
function dVy = fcn(Fx1,Fx2,Fy1,Fy2,Fy3,Fy4,delt,gama,Vx)
m=1150;
dVy = (-m*Vx*gama+Fy3+Fy4+(Fx1+Fx2)*sin(delt)+(Fy1+Fy2)*cos(delt))/m;
· 公式(3-3)计算 γ ˙ \dot{\gamma} γ˙,通过积分器得到 γ \gamma γ
function dgama = fcn(Fx1,Fx2,Fx3,Fx4,Fy1,Fy2,Fy3,Fy4,delt)
Jz=1343.1;
lf=1.04;
lr=1.56;
df=1.481;
dr=1.481;
dgama = ((-df/2*cos(delt)+lf*sin(delt))*Fx1+(df/2*cos(delt)+lf*sin(delt))*Fx2+dr/2*(Fx4-Fx3)+df/2*sin(delt)*(Fy1-Fy2)+lf*cos(delt)*(Fy1+Fy2)-(Fy3+Fy4)*lr)/Jz;
上述代码中的参数来自于CarSim的B级车,如图1-6和1-7所示。
由于我研究的是电动轮驱动汽车,簧载质量和车轮的转动惯量参考马高峰等人的论文《基于CarSim的四轮轮毂电机电动汽车建模方法研究》做出了改变,如图1-8和1-9所示。
和Simulink的联合仿真设定如图1-9所示,其中①定义Simulink的运行目录;②是联合仿真Simulink的位置,要注意右下角的MATLAB是64位还是32位;③就是我们要修改的输出参数,如图1-6所注,此时CarSim并没有输入。
输出设定如图1-10所示,其中,需要更改的主要是①Readme file for outputs和②active variable for export,具体联合仿真的步骤我当时参考以下链接。
https://blog.csdn.net/mingjiangguoyaoqin/article/details/102864241
CarSim输入输出我参考的链接为https://www.docin.com/p-1741700907.html
其中,本文用到的变量及其含义如表1-1所示
变量 | 含义 | 单位 |
---|---|---|
Fx_L1 | 左前轮纵向力 | N |
Fx_R1 | 右前轮纵向力 | N |
Fx_L2 | 左后轮纵向力 | N |
Fx_R2 | 右后轮纵向力 | N |
Fy_L1 | 左前轮纵向力 | N |
Fy_R1 | 右前轮纵向力 | N |
Fy_L2 | 左后轮纵向力 | N |
Fy_R2 | 右后轮纵向力 | N |
Steer_L1 | 左前轮转角 | ° |
VxBf_SM | 车辆质心纵向车速 | km/h |
VyBf_SM | 车辆质心侧向车速 | km/h |
AVz | 横摆角速度 | °/s |
通过上表可以看出CarSim输出的数据需要经过单位变换才能与Simulink进行联合仿真,因为前述公式的速度单位均为m/s,角度单位均为rad。具体联合仿真模型如图1-11所示。
仿真结果如图1-13所示。可以看出纵侧向车速vx和vy的拟合效果良好,而横摆角速度γ由于模型的简化,在最后并没有拟合至0 rad/s,对此,我的理解是:Simulink模型的简化导致计算的横摆角加速度产生差异,随着时间的积分至最后导致了大幅度的横摆角速度的差异,但最终计算的横摆角加速度终归是0,故运行后期依旧是恒定的横摆角速度输出。
本文介绍了整车Simulink模型中的整车动力学模型的建立,并将所建模型与CarSim作对比,由于篇幅原因,并没有详述轮胎动力学及各轮纵向速度的建模过程,俗话说的好,一理通百里明嘛!