基于matlab,simulink汽车三自由度模型仿真

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

作业任务包括:一、建立前轮角阶跃输入的汽车三自由度操控模型,并且参数可调。二、绘制六面体并实现对六面体的三维操作,包括平移、旋转、缩放等。三、动画:本文动画的实现是在对六面体的具体操作过程(平移、旋转、缩放)中表现。四、GUI与simulink的联合仿真,并将所有作业内容集成到GUI界面,将程序进行编译,打包生exe的成可执行文件。汽车三自由度操控模型1.1建模假设:•1、汽车车速不变。•2、不考虑切向力对轮胎特性的影响。•3、侧向加速度不大于0.3-0.4g。•4、前轮转角不大,不考虑前轮左右的区别。•5、不考虑非悬架质量的倾角。•6、不考虑空气动力作用。•7、侧倾中心与非悬架质心等高,前后一样。•8、左右对称。假设汽车的结构:•前面是独立悬架。•后面是纵置半椭圆板簧。•车厢侧倾引起:前轮外倾角变化;后轴发生轴转向;左右侧车轮载荷重新分配引起滚动阻力不相等而产生绕Z轴的力矩。1.2汽车模型受力分析车辆坐标系如图1所示图1车辆坐标系M、Ms、Mu分别是整车、悬挂和非悬挂质量,M=Ms、Mu其质心分别是c.g.、s和u。如图二所示图2车辆质量分布示意图汽车三自由度模型的三个自由度指:汽车沿y轴平动的自由度、汽车绕z轴的转动自由度、汽车绕x轴的转动自由度。一般分别用横向速度v、横摆角速度r、侧倾角来表征。汽车三自由度模型的微分方程为:()()srzxzrpsxxzspMvrVMhYYrYYIrINNrNNNpIIrMhvrVLL(1-1)其中各个参数的意义如下:符号参数名称单位数值M整车质量Kg3021v汽车的侧向速度m/sr汽车横摆角速度rad/sV汽车的纵向车速m/sMs悬挂质量Kg2687h悬挂质量重心至侧倾轴线的距离m0.488侧倾角radY单位整车侧偏角引起的地面侧向反作用力N/radrY单位横摆角速度引起的地面侧向反作用力N.s/radY单位侧倾角引起的地面侧向反作用力N/radY单位前轮转角引起的地面侧向反作用力N/rad质心侧偏角rad汽车前轮转角radIz汽车绕垂直轴转动惯量2kgm10437xzI汽车质量对x轴z轴的惯性积2kgm0N单位质心侧偏角产生的对z轴的力矩N.m/radrN单位横摆角速度产生的对z轴的力矩N.m.s/radN单位侧倾角速度产生的对z轴的力矩N.m.s/radN单位前轮转角产生的对z轴的力矩N.m/radpN单位侧倾角速度产生的对z轴的力矩N.m.s/radp侧倾角速度rad/ssxI悬挂质量对x轴的转动惯量2kgm1960L单位侧倾角产生的对x轴的外力矩N.m/radpL单位侧倾角速度产生的对x轴的外力矩N.m.s/rad6864算子说明:21kkY211bkakVYr122YYYk其中:11YY前轮外倾刚度;1侧倾外倾角系数;2后轴侧倾转向系数。1kY21221121ATATZXhkhkbkakN其中:1h,2h为前后侧倾中心离地面的高度,即前后非悬挂质量质心离地面的高度XZ为滚动阻力系数1AT和2AT为轮胎侧偏角回正力矩系数(/kgmrad)。bATaATZXbhkahkbkakVNr21221122211222112122122khYhCCZXATYabkNYY其中:1C、2C为前、后悬架侧倾角刚度(N/mrad);1Lp,2Lp为前、后减振器因单位侧倾角速度产生的阻力偶矩(N/msrad);2为后轴侧倾转向系数;1111ATZXhkakNZXpLpLNp2121CChGLspLpLLp21所用到的参数如下:符号参数名称单位数值k1前轮侧偏刚度(一个车轮)N/rad23164k2后轮侧偏刚度(一个车轮)N/rad38345a重心至前轴距离m1.84b重心至后轴距离m1.881c前悬架侧倾角刚度Nm/rad1006202c后悬架侧倾角刚度Nm/rad327551前轴侧倾转向系数-0.1142后轴侧倾转向系数0AT侧偏角产生的回正力矩Nm/rad0Lp1单位侧倾角速度在前减震器产生的阻力矩Nm.s/rad3432Lp2单位侧倾角速度在后减震器产生的阻力矩Nm.s/rad3432考虑到Np数值不大,予以忽略,且vV,将代入上述微分方程,可以得到:srzxzrpsxxzspsMVMhYYMVrYYIrINNrNNNIIrMhVLLMhrV由于涉及到二次导数,引入新的变量,上式可写为:srzxzrpsxxzspsMVMhYYMVrYYIrINNrNNNIIrMhVLLMhrV将此方程组表达成矩阵形式,即:11ExAxB其中:Txr000000010szxzsxzsxMVMhIIEMhVII0100001rrpspYYMVYNNNNAMhVLL100TBYN将三自由度汽车模型的运动微分方程组进一步写成标准形式:xAxB其中1AEA,1BEB然后用matlab编程求解其瞬态响应。1.3simulink建模本文采用了经典的积分的方法求解,也可以采用状态空间的方法建模。图3封装好的模型图4联立方程模型图5方程一图6方程二图7方程三仿真界面不同车速比较响应输出不同转角阶阶跃输入响应绘制六面体及对六面体的三维操作六面体操作界面平移操作六面体缩放操作六面体旋转操作GUI主界面,分为两个功能模块:附录:程序主要代码1、三自由度车辆模型关键代码:%---Executesonbuttonpressinpushbutton1.functionpushbutton1_Callback(hObject,eventdata,handles)%hObjecthandletopushbutton1(seeGCBO)%eventdatareserved-tobedefinedinafutureversionofMATLAB%handlesstructurewithhandlesanduserdata(seeGUIDATA)a=str2double(get(handles.edit1,'String'));b=str2double(get(handles.edit2,'String'));h=str2double(get(handles.edit3,'String'));I_z=str2double(get(handles.edit4,'String'));I_x=str2double(get(handles.edit5,'String'));C_fai1=str2double(get(handles.edit6,'String'));C_fai2=str2double(get(handles.edit7,'String'));e1=str2double(get(handles.edit8,'String'));e2=str2double(get(handles.edit9,'String'));k1=-2*str2double(get(handles.edit10,'String'));k2=-2*str2double(get(handles.edit11,'String'));h1=str2double(get(handles.edit12,'String'));h2=str2double(get(handles.edit13,'String'));f=str2double(get(handles.edit14,'String'));g=str2double(get(handles.edit15,'String'));L1=str2double(get(handles.edit16,'String'));L2=str2double(get(handles.edit17,'String'));m=str2double(get(handles.edit18,'String'));m_s=str2double(get(handles.edit19,'String'));u=(str2double(get(handles.edit20,'String')))/3.6;delta=(str2double(get(handles.edit21,'String')))*pi/180;options=simset('SrcWorkspace','current');sim('three_Dofs_car_0704',[],options);axes(handles.axes1);%将axes1设置为当前坐标系plot(tout,yout(:,1));gridon;title('侧向速度随前轮角输入的关系');xlabel('时间(s)');ylabel('侧向速度(m/s)');axes(handles.axes2);%将axes2设置为当前坐标系plot(tout,yout(:,2));gridon;title('横摆角速度随前轮角输入的关系');xlabel('时间(s)');ylabel('横摆角速度(rad/s)');axes(handles.axes3);%将axes1设置为当前坐标系plot(tout,yout(:,3));gridon;title('车身侧倾角随前轮角输入的关系');xlabel('时间(t)');ylabel('车身侧倾角(rad)');2、六面体及操作关键代码(1)平移关键代码:%---Executesonbuttonpressinpushbutton2.functionpushbutton2_Callback(hObject,eventdata,handles)%hObjecthandletopushbutton2(seeGCBO)%eventdatareserved-tobedefinedinafutureversionofMATLAB%handlesstructurewithhandlesanduserdata(seeGUIDATA)x=[011000;110011;110011;011000];y=[001000;011100;011111;001011];z=[000001;000001;111101;111101];axes(handles.axes2);patch(x,y,z,1:6,'FaceAlpha',0.9);h=patch(x,y,z,1:6,'FaceAlpha',0.2);axisequaltightaxis([-22-22-22]);gridon;title('立方体图形变换对比');xlabel('VariableX');ylabel('VariableY');zlabel('VariableZ');view([-4545]);%set(h,'EraseMode','Xor')a=str2double(get(handles.edit1,'String'));b=str2double(get(handles.edit2,'String'));c=str2double(get(handles.edit3,'String'));fori=0:1:50;drawnow;X=x+(a/50)*i;Y=y+(b/50)*i;Z=z+(c/50)*i;axes(ha

1 / 19
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功