汽车系统动力学上机指导书.docx
《汽车系统动力学上机指导书.docx》由会员分享,可在线阅读,更多相关《汽车系统动力学上机指导书.docx(26页珍藏版)》请在冰豆网上搜索。
汽车系统动力学上机指导书
汽车系统动力学
上机指导书
一、上机目的
通过实验使学生了解汽车系统动力学的基本原理和研究方法,掌握系统仿真语言MATLAB的基本编程技术及其Simulink工具箱的应用。
二、上机要求
1.熟悉MATLAB软件以及Simulink软件包的基本功能;
2.建立汽车子系统的动力学模型,上机仿真计算,并对结果进行分析;
3.对上述系统,应用汽车系统动力学理论进行仿真分析,比较仿真结果并得出结论;
三、上机环境
PC机、MATLAB软件
四、实验内容
(一)制动系统建模、仿真及ABS控制器设计
通过两自由度单轮模型为例,介绍在MATLAB环境下的控制系统力学建模、ABS控制器设计及仿真分析过程。
1.动力学建模
某车辆简化后的制动力学模型如右图所示。
其中单轮模型质量m,车轮滚动半径rd,车轮转动惯量为Iw,车辆旋转角速度为ω,车轮轮心前进速度为uw,地面制动力为Fxb。
作用于车轮的制动力矩为Tb。
若忽略空气阻力与车轮滚动阻力,则系统的运动方程如下:
图1单轮制动力模型
(1)
(2)
式中,地面制动力Fxb等于地面作用于车轮的法向反力Fx与路面附着系数μ的乘积,其中μ为制动滑移率Sb的函数。
2.分段线性的轮胎模型
根据第三章中介绍的有关轮胎纵向特性的内容,路面附着系数与车轮滑移率之间存在一定的非线性关系。
如果用两段直线近似表示路面附着-滑移曲线,可得到分段线性化的附着系数μ与车辆滑移率sb的关系(即所谓的“Dugoff”模型),如下图所示。
其表达式如下:
(3)
式中,μb为峰值附着系数;μg为车轮完全抱死时(即Sb=1)时的路面附着系数;So为峰值附着系数所对应的滑移率。
图2线性化的路面附着系数与车轮滑移率关系曲线
3.控制算法
这里以门限值控制算法为例,说明ABS控制器设计及制动系统力学的仿真过程。
采用门限制控制算法的基本思想是保证车轮滑移率在最理想的范围之内。
制动开始后,随着制动压力的升高车轮转速ω相应减小,车轮出现滑移;当车轮滑移率达到理想范围上限值Smax时,减小制动压力;随着制动压力的减小,直至减小到滑移率下限值Smin时再增大制动压力。
循环往复这一过程直至车辆停止。
因此,在ABS控制器起作用的过程中,滑移率总是保持在理想的范围内,从而保证车辆的最佳制动性能及行驶方向控制的稳定性。
4.仿真流程及参数输入
由上可知,ABS控制器所用到的一些控制参数有:
1)由路面附着系数μ与滑移率Sb的关系曲线所表示的轮胎模型;
2)滑移率控制上限Smax、下限Smin;
3)车辆模型参数及初始车速μωo;
4)制动器油压增长率ki和减小率kd等。
根据分析可知,控制逻辑实现的关键是计算当前车轮滑移率Sb(t)并与预先确定的上限值(Smax,Smin)进行比较,来判断对制动液压控制系统的增压或减压操作,控制流程如图3所示。
图3仿真流程
5.实例分析
单轮制动动力模型参数由表1给出。
设式图2定义的路面附着系数分别为μh=0.8,μg=0.6.以门限值控制算法设计ABS控制器,使车轮滑移率Sb保持在最优值(Sopt附近),这里令Smin=0.18,Smax=0.22。
根据表1给出的模型参数及附着系数,按照图3所示的控制流程采用m语言编制仿真程序。
需要指出的是,表1给出的制动系统控制参数仅作为参考,系统设计过程中可根据需要适当调整,已获得满意的结果。
表1单轮ABS制动力学模型参数
参数
符号
单位
数值
车轮质量
300
车轮动力半径
0.25
车轮转动惯量
12
初始车速
30
初始角速度
120
初始制动力矩
600
制动油压增长率
4500
制动油压减小率
5000
采样时间
0.05
5.MATLAB仿真过程
图4MATLAB文件编辑调试窗口
点击MATLAB指令窗工具条上的NewFile图标,打开如图4所示的MATLAB文件编辑调试器,其窗口名为untitled1,我们可在空白窗口中编写程序。
输入如下一段程序:
m=300;%车轮质量
rd=0.25;%车轮动力半径
Iw=12;%车轮转动惯量
vwo=30;%初始车速
wo=120;%初始角速度
Tbo=600;%初始制动力矩
ki=4700;%制动油压增长率
kd=5000;%制动油压减少率
ts=0.05;%采样时间
i=1;%设置数组变量
w
(1)=wo;%设置角速度变量
v
(1)=vwo;%设置车速变量
Tb
(1)=Tbo;%设置制动压力变量
whilev(i)>0%如果车速大于零,则ABS工作
sb(i)=abs((v(i)-rd*w(i))/v(i));%计算当前滑移率
ifsb(i)<=0.2%根据路面附着系数与滑移率的关系曲线计算附着系数
u=0.8*sb(i)/0.2;
else
u=(0.8-0.6*0.2)/(1-0.2)-(0.8-0.6)*sb(i)/(1-0.2);
end
Fxb=u*m*9.8;%根据附着系数计算地面制动力
ifsb(i)>0.22%滑移率大于上限,制动器减压
Tb(i+1)=Tb(i)-ts*kd;
end
if(sb(i)<=0.22)&(sb(i)>=0.18)%滑移率处于上下限范围内,制动器保压
Tb(i+1)=Tb(i);
end
ifsb(i)<0.18%滑移率小于下限,制动器增压
Tb(i+1)=Tb(i)+ts*ki;
end
v2(i)=w(i)*rd;%计算车轮线速度
v1(i)=Fxb/m;%计算车轮加速度
v(i+1)=v(i)-v1(i)*ts;%计算下一采样周期的车轮前进速度
w(i+1)=w(i)+ts*(Fxb*rd-Tb(i+1))/Iw;%计算下一采样周期的车轮角速度
i=i+1;%数组变量增加
end
x=0:
i-2;%绘制ABS控制的滑移率时域结果
plot(x,sb);
点击编辑调试器工具条的图标
,在弹出的“保存为”对话框中,选择保存文件夹,键入新编文件名carabs,点动保存键,完成文件保存。
使carabs.m所在目录成为当前目录或让该目录处在MATLAB的搜索路径上,如该文件放在G盘,则在MATLAB主菜单中应出现:
点击编辑调试器工具条的debug菜单,选择run指令,运行carabs文件,可得到图5:
图5ABS控制的滑移率时域仿真结果
修改carabs.m文件,输入以下指令:
v2(i)=0;
x=0:
i-1;
plot(x,v,x,v2);
运行后得到图6:
图6车轮前进速度与车轮线速度关系曲线
(二)行驶动力学计算机建模、仿真及主动悬架控制器设计
以单轮车辆模型为例,介绍行驶动力学计算机建模、仿真分析以及利用线性二次最优控制理论进行主动悬架LQG控制器设计过程。
1.计算机仿真系统模型的建立
根据图7所示的主动悬架单轮车辆模型,运用牛顿运动定律,建立系统的运动方程,即:
(4)
(5)
这里,采用一个滤波白噪声作为路面输入模型,即:
(6)
式中,xg为路面垂向位移(m);G0为路面不平度系数(m3/cycle);u为车辆前进速度(m/s);w为数字期望为零的高斯白噪声;f0为下截止频率(Hz)。
图7单轮车辆模型
结合式(4)、式(5)和式(6),将系统运动方程和路面输入方程写成矩阵形式,即得出系统的空间状态方程:
(7)
式中,
,为系统状态矢量;W=(w(t)),为高斯白噪声输入矩阵;U=(Ua(t)),为输入控制矩阵;
;
;
2.LOG控制器设计
车辆悬架设计中的主要指标包括:
①代表轮胎接地性的轮胎动载荷;②代表轮胎舒适性的车身垂向振动加速度;③影响车身姿态且与轮胎布置有关的悬架动行程。
因此,LQG控制器设计中的性能指标J即为轮胎动位移、悬架动行程和车身垂向振动加速度的加权平方和在时域T内的积分值,其表达式为:
(8)
式中,q1、q2和q3分别为轮胎动位移、悬架动行程和车身垂向振动加速度的加权系数。
加权系数的选取决定了设计者对悬架性能的倾向,如对车身垂向振动加速度项选择较大的权值,则考虑更多的是提高车辆操纵稳定性。
为方便起见,这里取车身垂向振动加速度的加权值q3=1。
将性能指标J的表达式(8)改写成矩阵形式,即:
(9)
式中,
;
;
当车辆参数值和加权系数值确定后,最优控制反馈增益矩阵可有黎卡提(Riccati)方程求出,其形式如下:
(10)
最优反馈控制增益矩阵
,由车辆参数和加权系数决定。
根据任意时刻的反馈状态变量X(t),就可得到t时刻作动器的最优控制力Ua,即:
(11)
3.计算实例
这里,以某轿车的后悬架为例,给出一个完整的计算实例,包括车辆模型参数、仿真路面输入参数、控制器的设计参数以及计算结果。
此例中车辆以20m/s的速度在某典型路面上行驶,仿真时间T=50s。
计算中输入的各参数及数值详见表2。
表2单轮车辆模型仿真输入参数值
车辆模型参数
符号
单位
数值
簧载质量
非簧载质量
悬架刚度
轮胎刚度
悬架工作空间
mb
mw
Ks
Kt
SWSc
Kg
Kg
N/m
N/m
mm
320
40
20000
200000
仿真路面输入参数
符号
单位
数值
路面不平度系数
车速
下截止频率
G0
U
f0
m3/cycle
m/s
Hz
5.0x10-6
20
0.1
性能指标加权参数
符号
单位
数值
轮胎动位移
悬架动行程
车身加速度
q1
q2
q3
—
—
—
80000
5
1
仿真计算中以式(6)所示的滤波白噪声作为路面输入模型。
白噪声的生成可直接调用MATLAB函数WGN(M,N,P)(此函数需要安装信号处理工具箱Communicationstoolbox),其中M为生成矩阵的行数,N为列数,P为白噪声的功率(单位为dB)。
本例中取M=10001,N=1,P=20。
这意味着仿真计算中去一条白噪声,共10001个采集点,噪声强度为20dB。
设定采样时间为0.005s、车速为20m/s时,相当于仿真路面长度为1000m,仿真时间为50s。
根据建立的系统状态方程式(7)及最优化性能指标函数式(9),利用已知的矩阵A、B、Q、R、N,调用MATLAB中的线性二次最优控制器设计函数[K,S,E]=LQR(A,B,Q,R,N),即可完成最优主动悬架控制器的设计。
输出的结果中,K为最优控制反馈增益矩阵,S为黎卡提方程的解,E为系统闭环特征根。
根据表2给出的仿真输入参数,本例中求得的最优反馈增益矩阵K为:
K=(711.88-1241.5-19284-2038.520864)
同时,还得到了黎卡提方程的解:
在相同的仿真条件下,可将所设计的主动悬架系统与一个被动系统进行对比分析。
在被动悬架系统中,取悬架刚度Ks=22000N/m,阻尼系数Cs=1000NS/m。
除此之外,其他输入参数值均与主动悬架系统完全相同。
4.MATLAB仿真过程
1)生成路面输入模型
图8路面输入模型生成
右击MATLAB中Workspace栏中的road_file,点击saveselectionas,保存数据为Matlab.mat文件。
图9路面输入模型保存
2)参数输入
新建一个m.file,输入如下一段程序:
loadmatlab.mat%载入路面数据模型
Ks=22000;mb=320;Kt=200000;mw=40;f0=0.1;G0=0.000005;u=20;Kb=20000;Ks1=22000;Cs=1000;%输入仿真有关参数
A=[0,0,-Ks/mb,Ks/mb,0;%建立主动悬架的状态矩阵
0,0,Ks/mw,(-Kt-Ks)/mw,Kt/mw;
1,0,0,0,0;
0,1,0,0,0;
0,0,0,0,-2*pi*f0];
A1=[-Cs/mb,Cs/mb,-Ks1/mb,Ks1/mb,0;%建立被动悬架的状态矩阵
Cs/mw,-Cs/mw,Ks1/mw,(-Kt-Ks1)/mw,Kt/mw;
1,0,0,0,0;
0,1,0,0,0;
0,0,0,0,-2*pi*f0];
B=[1/mb,0;
-1/mw,0;
0,0;
0,0;
0,2*pi*sqrt(G0*u)];
B1=[0,0;
0,0;
0,0;
0,0;
0,2*pi*sqrt(G0*u)];
C=[1,0,0,0,0;
0,1,0,0,0;
0,0,1,0,0;
0,0,0,1,0;
0,0,0,0,1];
D=[0,0;
0,0;
0,0;
0,0;
0,0];
K=[711.88,-1241.5,-19284,-2038.5,20864];
K1=[0,0,0,0,0];
点击编辑调试器工具条的debug菜单,选择run指令,运行上述文件。
3)用Simulink创建仿真框图
(1)单击MATLAB工具栏上的
图标,或在命令窗口中输入simulink,打开simulink模型库,如图10所示:
图10simulink模型库
(2)现在建立一个没有控制环节的仿真模型,来体验一下如何利用simulink来达到目标。
单击simulink模型库工具条上的
,新建一个后缀名为.mdl的simulink模型文件,这里取名donglixue.mdl(名字可以任你选),并单击该模型文件窗口中的工具栏的
按钮保存。
这个过程如图11所示:
图11建立simulink模型文件
(3)确定输入环节,中间计算环节和输出环节
所谓输入环节就是产生一个输入信号发送给系统。
根据前面建立的模型,系统的输入是由路面输入和控制力输入组成的列向量。
Simulink模型库提供了丰富的信号源。
在模型库左侧的目录中,单击simulink下的source,就可以看到各式各样的信号发生器,如图12所示:
图12simulink提供的信号源
在source中有一个从工作空间取值的信号源simin
,用鼠标左键点住它,然后将其拖到模型文件窗口。
在模型文件窗口双击这个信号源,一个blockparameters(块参数)对话框跳出来,将其参数改成图13所示:
图13块属性对话框
至于控制力,由于这里建立的是有控制环节的系统仿真模型,所以单击simulink下的mathoperations,选择其中的matrixgain
,将其拖到模型文件窗口。
在模型文件窗口双击这个信号源,将其参数改成图14所示:
图14控制力参数选择
接下来是确定中间计算环节。
在模型库simulink目录下有一个continuous模型库,选择state-space模型(如图15所示),将其拖入模型文件即可。
双击模型文件中的state-space模型,在块参数对话框中自定义状态方程的属性。
由于我们已经在workspace中定义了A,B,C,D,所以在对话框中对应填入即可,如图16所示。
图15系统的数学模型选择
图16系统模型参数设置
最后是输出环节。
输出的数据和曲线可以存放在模型文件中也可以保存在工作空间供其他程序调用。
在模型库simulink目录下点击sinks,就可以看到很多的输出工具。
这里我们先使用示波器scope(图17、18),将其拖入模型文件,双击模型文件窗口的示波器,在弹出的图形框的工具栏中单击
,会有一个对话框出现,我们可以在此处订制示波器的属性。
选择datahistory的选项卡,将limitdatapointstolast前面的钩取掉即可(如图19所示)。
图17示波器
图18双击scope后出现的图像框图19示波器参数设置
接下来我们将输入模块、输出模块和中间计算模块连接起来。
由于输入有两个必须使用信号路由器(signalrouting)来进行合成。
如图20所示,选择mux,将其拖入模型文件,双击,更改其属性(如图21所示)。
其中numbersofinputport设置输入端口的数目,displayoption设置mux的形状。
同样系统输出的列向量有5个分量,选用demux可以将其分解成五路输出(如图22所示),从上到下依次对应输出向量的各列分量。
由于我们选定的悬架评价指标为轮胎动位移、悬架动行程和车身垂向振动加速度,因此必须对输出各列向量进行微分和加减运算。
微分运算在simulink模型库中选择continuous中的derivative,加减运算在simulink模型库中选择mathoperations中的sum,将其拖入模型文件中,双击,更改加号为减号。
(如图23所示)
模块之间的连线是很简单的事情。
将鼠标靠近模块的输出端口,会出现一个十字光标,按住鼠标左键拖动到另一个端口的输入端口再松开鼠标左键就完成了两个模块的连接。
图20选择signalrouting里的mux
图21更改mux的属性
图22更改sum的属性图图23更改demux的属性
为了与主动悬架性能比较,我们需要建立一个被动悬架的模型。
被动悬架模型建立过程与上述主动悬架建立相似,只是参数设置方面有所不同。
(如图24,25所示),最后我们得到的仿真模型如图26所示。
图24被动悬架模型参数设置图25被动悬架控制力参数设置
图26simulink环境下的系统仿真框图
为了比较两个不同系统的性能,我们通过simulink中的sinks模块中的simout模块,输出数据到工作空间,方便以后的性能指标均方根的运算。
4)开始仿真
在正式仿真之前,我们还得做一些基本的设置,点击donglixue窗口simulation菜单栏,在下拉菜单中选择simulationparameters(图27),这时会出现一个对话框(图27)。
在solver选项中可以设定仿真的起(starttime)止(stoptime)时间,其他的不用管它。
这里采用时间为0s到10s。
按下工具条上的播放按钮
,仿真开始。
图27仿真参数设置
5)查看仿真结果
双击donglixue窗口中的示波器,就会出现一个曲线窗口。
按一下该窗口工具栏的
按钮,可以看到各个示波器的图像。
图28在某路面输入下的最优主动悬架车身加速度仿真结果
图29在某路面输入下的最优主动悬架悬架动行程仿真结果
图30在某路面输入下的最优主动悬架轮胎动行程仿真结果
6)计算各性能指标的均方根值
在matlab主窗口的workspace中,我们可以发现两个数据:
simout和simout1。
它们分别代表被动悬架和主动悬架的悬架动行程数值。
在matlab指令窗口中输入以下命令,可以得到该数值的均方根值。
图31计算各性能指标均方根值
请改变simulink模型中simout和simout1的连线位置,分别计算各个指标的均方根值,填入以下表格中。
性能指标
单位
均方根值
主动悬架
被动悬架
车身加速度BA
m/s2
悬架动行程SWS
mm
轮胎动位移DTD
mm