理论教育 汽车悬架系统控制分析的应用技巧与实例分析

汽车悬架系统控制分析的应用技巧与实例分析

时间:2023-10-29 理论教育 版权反馈
【摘要】:本示例将演示汽车悬架系统联合仿真过程。汽车悬架系统由车身、悬挂系统以及虚拟路面构成,车身、悬挂系统以及路面通过移动副串联。图9-33 汽车悬架系统除了定义机械系统模型外,还需创建控制系统。图9-34 汽车悬架控制系统框图控制器的传递函数为式中,A为状态矩阵,B为输入矩阵,C为输出矩阵,D为直接反馈矩阵。

汽车悬架系统控制分析的应用技巧与实例分析

本示例将演示汽车悬架系统联合仿真过程。汽车悬架系统由车身、悬挂系统以及虚拟路面构成,车身、悬挂系统以及路面通过移动副串联。同时,为模拟路面颠簸,在模型中为虚拟路面模型添加了正弦形式的驱动约束。汽车悬架系统如图9-33所示。

978-7-111-42217-4-Chapter09-80.jpg

图9-33 汽车悬架系统

除了定义机械系统模型外,还需创建控制系统。控制系统为整个悬挂系统提供参考位移和参考速度,并与从多体系统中获得的位移和速度信息进行比较,根据比较结果输出控制信号。控制系统框图如图9-34所示,Gc(S)表示多输入多输出控制器;D(S)表示在汽车悬挂系统模型中,车体集中质量位移信息;V(S)表示在汽车悬挂系统中;车体集中质量速度信息;Rd(S)表示参考位移信号;Rv(S)表示参考速度信号;E1(S)表示监测到的位移信号与参考位移信号之差;E2(S)表示监测到的速度信号与参考速度信号之差;Y1(S)表示控制器输出控制信号1,Y2(S)表示控制器输出控制信号2。

978-7-111-42217-4-Chapter09-81.jpg

图9-34 汽车悬架控制系统框图

控制器的传递函数

978-7-111-42217-4-Chapter09-82.jpg

式中,A为状态矩阵,B为输入矩阵,C为输出矩阵,D为直接反馈矩阵。

下面给出了控制器的状态空间:

A=[00;00],B=[10;01],C=[100;020],D=[100000;020000],

u=[车体集中质量位移,车体集中质量速度],y=[输出力(刚度),输出力(阻尼)]

在本练习中,控制系统将检测车体集中质量的位移和速度信息,并与参考位移和速度信号进行比较,根据比较结果,输出控制信号,包括悬挂系统刚度和阻尼的控制信息,保证系统平稳运转。

在本练习中,将学习以下内容:

● 在MotionView中建立车身及悬挂系统多体动力学模型,通过MotionSolve关键字Control_Stateeqn Element建立内置的控制方程,对多体系统进行试算,获取基本计算结果。

● 编辑MotionSolve XML格式模型,添加Control_Plantinput和Control_Plantoutput关键字,为联合仿真建立输出信号和输入信号。

● 在Simulink中对控制器模型进行调试。

● 进行联合仿真,并与使用MotionSolve内置控制模型的计算结果进行对比。

1.创建机械系统模型

STEP 01 创建几何点

(1)启动MotionView。

(2)右击工具栏中的Point按钮978-7-111-42217-4-Chapter09-83.jpg

(3)在弹出的Add Point or PointPair对话框中,设置标题为road_cg。

(4)使用默认的变量名,单击OK按钮。

(5)在Point面板中,定义该点的空间坐标为(0,0,0)。

(6)类似地,定义标题为suspension_cg的点,空间坐标为(0,0,0.1);标题为bus_cg的点,空间坐标为(0,0,0.2)。

STEP 02 创建几何体

(1)右击工具栏中的Body按钮978-7-111-42217-4-Chapter09-84.jpg

(2)在弹出的Add Body or Bodypair对话框中,设置标题为road dummy。

(3)使用默认的变量名,单击OK按钮,创建虚拟路面体。

(4)在Body面板中,进入Properties标签,根据图9-35定义体参数。

978-7-111-42217-4-Chapter09-85.jpg

图9-35 Body面板(road dummy)

(5)进入CM Coordinates标签,激活Use center of mass coordinate systems选项,设置体质心为road_cg。

(6)类似地,定义标题为suspension的几何体,根据图9-36定义该体质量和转动惯量参数。

978-7-111-42217-4-Chapter09-86.jpg

图9-36 Body面板(suspension)

(7)进入CM Coordinates标签,激活Use center of mass coordinate systems选项,设置体质心为suspension_cg。

(8)类似地,定义标题为bus的几何体,根据图9-37定义该体质量和转动惯量参数。

978-7-111-42217-4-Chapter09-87.jpg

图9-37 Body面板(bus)

(9)进入CM Coordinates标签,激活Use center of mass coordinate systems选项,设置体质心为bus_cg。

STEP 03 创建图形

(1)右击工具栏中的Graphic按钮978-7-111-42217-4-Chapter09-88.jpg

(2)在弹出的Add Graphic对话框中,设置标题为road。

(3)使用默认的变量名,设置图形类型为Box。

(4)单击OK按钮,创建虚拟路面体图形。

(5)在Graphic面板中,进入Connectivity标签,根据图9-38定义图形的关联对象。

978-7-111-42217-4-Chapter09-89.jpg

图9-38 Graphic面板Connectivity标签(road)

(6)进入Properties标签,根据图9-39定义图形参数。

978-7-111-42217-4-Chapter09-90.jpg

图9-39 Graphic面板Properties标签(road)

(7)类似地,创建标题为suspension的图形,设置图形类型为Cylinder。

(8)在Graphic面板中,进入Connectivity标签,根据图9-40定义图形的关联对象。

978-7-111-42217-4-Chapter09-91.jpg

图9-40 Graphic面板Connectivity标签(suspension)

(9)进入Properties标签,根据图9-41定义图形参数。

(10)类似地,创建标题为bus的图形,设置图形类型为Cylinder。

(11)在Graphic面板中,进入Connectivity标签,根据图9-42定义图形的关联对象。

978-7-111-42217-4-Chapter09-92.jpg

图9-41 Graphic面板Properties标签(suspension)

978-7-111-42217-4-Chapter09-93.jpg

图9-42 Graphic面板Connectivity标签(bus)

(12)进入Properties标签,根据图9-43定义图形参数。

978-7-111-42217-4-Chapter09-94.jpg

图9-43 Graphic面板Properties标签(bus)

STEP 04 创建弹簧

(1)右击工具栏中的Spring Damper按钮978-7-111-42217-4-Chapter09-95.jpg

(2)在弹出的Add SpringDamper or SpringDamperPair对话框中,设置标题为road_suspension。

(3)使用默认的变量名,设置弹簧类型为Coil Spring(拉伸弹簧)。

(4)单击OK按钮。

(5)在Spring Damper面板中,进入Connectivity标签,根据图9-44定义弹簧阻尼单元的关联对象。

(6)进入Properties标签,根据图9-45定义弹簧刚度阻尼参数。

(7)类似地,创建标题为suspension_bus的弹簧,设置弹簧类型为Coil Spring(拉伸弹簧)。

978-7-111-42217-4-Chapter09-96.jpg

图9-44 Spring Damper面板Connectivity标签(road_suspension)

978-7-111-42217-4-Chapter09-97.jpg

图9-45 Spring Damper面板Properties标签(road_suspension)

(8)在Spring Damper面板中,进入Connectivity标签,根据图9-46定义图形的关联对象。

978-7-111-42217-4-Chapter09-98.jpg

图9-46 Spring Damper面板Connectivity标签(suspension_bus)

(9)进入Properties标签,根据图9-47定义弹簧刚度阻尼参数。

978-7-111-42217-4-Chapter09-99.jpg

图9-47 Spring Damper面板Properties标签(suspension_bus)

STEP 05 创建弹簧图形

(1)右击工具栏中的Graphic按钮978-7-111-42217-4-Chapter09-100.jpg

(2)在弹出的Add Graphic or GraphicPair对话框中,设置标题为Spring_road_suspension。

(3)使用默认的变量名,设置图形类型为Spring。

(4)单击OK按钮。

(5)在Graphic面板中,进入Connectivity标签,根据图9-48定义图形的关联对象。

978-7-111-42217-4-Chapter09-101.jpg

图9-48 Graphic面板Connectivity标签(Spring_road_suspension)

(6)进入Properties标签,根据图9-49定义图形外形参数。

978-7-111-42217-4-Chapter09-102.jpg

图9-49 Graphic面板Properties标签(Spring_road_suspension)

(7)类似地,创建标题为Spring_suspension_bus的图形,设置图形类型为Spring。

(8)在Graphic面板中,进入Connectivity标签,根据图9-50定义图形的关联对象。

978-7-111-42217-4-Chapter09-103.jpg

图9-50 Graphic面板Connectivity标签(Spring_suspension_bus)

(9)进入Properties标签,根据图9-51定义弹簧图形的外形参数。

978-7-111-42217-4-Chapter09-104.jpg

图9-51 Graphic面板Properties标签(Spring_suspension_bus)

STEP 06 创建约束副

(1)右击工具栏中的Joint按钮978-7-111-42217-4-Chapter09-105.jpg

(2)在弹出的Add Joint or JointPair对话框中,设置标题为road_ground。

(3)使用默认的变量名,设置图形类型为Translational Joint(平移副)。

(4)单击OK按钮。

(5)在Joint面板中,进入Connectivity标签,根据图9-52定义铰的关联对象。

978-7-111-42217-4-Chapter09-106.jpg

图9-52 Joint面板Connectivity标签(road_ground)

(6)类似地,创建标题为suspension_ground的平移副。

(7)在Joint面板中,进入Connectivity标签,根据图9-53定义铰的关联对象。

978-7-111-42217-4-Chapter09-107.jpg

图9-53 Joint面板Connectivity标签(suspension_ground)

(8)类似地,创建标题为bus_ground的平移副。

(9)在Joint面板中,进入Connectivity标签,根据图9-54定义铰的关联对象。

978-7-111-42217-4-Chapter09-108.jpg

图9-54 Joint面板Connectivity标签(bus_ground)

STEP 07 创建驱动约束

(1)右击工具栏中的Motion按钮978-7-111-42217-4-Chapter09-109.jpg

(2)在弹出的Add Motion or MotionPair对话框中,使用默认的标题和变量名,单击OK按钮。

(3)在Motion面板中,进入Connectivity标签,根据图9-55定义驱动的关联对象。

978-7-111-42217-4-Chapter09-110.jpg

图9-55 Motion面板Connectivity标签

(4)进入Properties标签,定义驱动类型为Expression,定义驱动函数为`sin(2*pi*TIME)*0.05`。

STEP 08 创建输出请求

(1)右击工具栏中的Output按钮978-7-111-42217-4-Chapter09-111.jpg

(2)在弹出的Add Output对话框中,设置标题为original_disp_vel。

(3)使用默认的变量名,单击OK按钮。

(4)在Output面板中,将输出类型设置为Expressions。

(5)单击F2处的文本框,输入`DZ({b_2.cm.idstring},{b_0.cm.idstring})-0.2`,输出bus与road之间的相对位移。

(6)单击F3处的文本框,输入`VZ({b_2.cm.idstring},{b_0.cm.idstring})`,输出bus与road之间的相对速度

STEP 09 设置工作环境

(1)单击打开模型浏览树Form文件夹,单击Gravity,进入重力设置面板。

(2)将Gravity由On切换成Off,关闭重力设置面板。

(3)单击打开模型浏览树中的Units项,进入单位制设置面板。

(4)将LENGTH设置为METER,其他单位不变。

当前单位制系统为m-kg-s-N。

STEP 10 求解模型

(1)在工具栏下单击978-7-111-42217-4-Chapter09-112.jpg按钮,进入Run面板。

(2)在Sim Type下,选择Transient,并指定文件名bus_suspension_original.xml。

(3)激活Export MDL snapshot选项,将模型保存为.mdl格式的文件。

(4)在Simulation Parameters标签下的End Time中,输入5。

(5)回到Main标签,并单击Run按钮。

(6)单击Animate按钮,进入HyperView,查看汽车悬架系统运动历程动画

(7)单击Plot按钮,进入HyperGraph。按照图9-56分别绘制bus相对road的位移和速度曲线,结果如图9-57所示。

978-7-111-42217-4-Chapter09-113.jpg

图9-56 Build Plots面板

a)bus相对road的位移曲线 b)bus相对road的速度曲线

978-7-111-42217-4-Chapter09-114.jpg

图9-57 仿真结果

由图9-57可以看到bus在road的正弦激励作用下振动,接下来将设计控制系统,减轻振动效果。

2.在MotionSolve中创建控制系统模型

STEP 01 创建求解器变量

(1)返回窗口1的MotionView界面。

(2)右击工具栏中的Solver Variable按钮978-7-111-42217-4-Chapter09-115.jpg

(3)在弹出的Add Solver Variable对话框中,设置标题为disp_bus_road。

(4)使用默认的变量名,单击OK按钮。

(5)在Solver Variable面板中,将求解器变量类型设置为Expression。

(6)单击文本框,输入`DZ({b_2.cm.idstring},{b_0.cm.idstring})-0.2`。

(7)类似地,创建标题为vel_bus_road的求解器变量。

(8)定义该求解器变量值为`VZ({b_2.cm.idstring},{b_0.cm.idstring})`。

STEP 02 定义系统状态与输入矢量

(1)右击工具栏中的Solver Array按钮978-7-111-42217-4-Chapter09-116.jpg

(2)在弹出的Add Solver Array对话框中,指定标题为U。(www.daowen.com)

(3)使用默认的变量名。

(4)在Solver Array面板的Properties标签中,将Array type设置为U。

(5)单击SolverVariable按钮,选择上步定义的求解器变量disp_bus_road。

(6)单击Append按钮,增加一个求解器变量,并设置该变量为vel_bus_road,如图9-58所示。

978-7-111-42217-4-Chapter09-117.jpg

图9-58 Solver Array面板(U)

(7)新建一个标题名为X的Solver Array。

(8)在Solver Array面板的Properties标签中,将Array type设置为X。该矢量用于定义系统状态。

(9)新建一个标题名为Y的Solver Array。

(10)在Solver Array面板的Properties标签中,将Array type设置为Y。该矢量用于定义系统状态。

(11)新建一个标题名为IC的Solver Array。

(12)在Solver Array面板的Properties标签中,将Array type设置为IC。该矢量用于定义初始值状态。

(13)进入Values标签,激活Edit选项,单击Append按钮增加一个初始值项目,并定义两个初值为0,如图9-59所示。

STEP 03 定义控制力

(1)右击工具栏中的力按钮978-7-111-42217-4-Chapter09-118.jpg

(2)在弹出的Add Force or ForcePair对话框中,指定标题为bus_suspension_1。

(3)使用默认的变量名,单击OK按钮,创建力。

978-7-111-42217-4-Chapter09-119.jpg

图9-59 Solver Array面板(IC)

(4)在Force面板的Connectivity标签中,根据图9-60所示的内容定义力加载对象。

978-7-111-42217-4-Chapter09-120.jpg

图9-60 Force面板(bus_suspension_1)

(5)进入Trans Properties标签,将力类型设置为Expression,并定义力函数表达式为`-1*ARYVAL({sa_2.id},1)`。

(6)类似地,定义标题为bus_suspension_2的力,根据图9-61所示的内容定义力加载对象。

978-7-111-42217-4-Chapter09-121.jpg

图9-61 Force面板(bus_suspension_2)

(7)进入Trans Properties标签,将力类型设置为Expression,并定义力函数表达式为`-1*ARYVAL({sa_2.id},2)`。

STEP 04 定义线性系统常数矩阵

目前,MotionView不支持矩阵对象的建模,因此需要手动编辑求解器文件。本步首先将上述创建的模型导出,然后对其进行编辑。

(1)在File菜单中选择Save As→Model命令,另存模型为bus_suspension_motionsolve.mdl。

(2)单击Export Solver Deck按钮978-7-111-42217-4-Chapter09-122.jpg

(3)在弹出的Export Solver Deck对话框中,单击“文件浏览”按钮978-7-111-42217-4-Chapter09-123.jpg ,指定工作路径。

(4)输出模型为bus_suspension_motionsolve.xml。

(5)使用文本编辑器打开bus_suspension_motionsolve.xml。

(6)在命令行</Model>前定义常数矩阵A。

978-7-111-42217-4-Chapter09-124.jpg

(7)定义常数矩阵B。

978-7-111-42217-4-Chapter09-125.jpg

(8)定义常数矩阵C。

978-7-111-42217-4-Chapter09-126.jpg

(9)定义常数矩阵D。

978-7-111-42217-4-Chapter09-127.jpg

978-7-111-42217-4-Chapter09-128.jpg

(10)定义状态方程

978-7-111-42217-4-Chapter09-129.jpg

(11)修改状态矢量与输出矢量维数为2。

978-7-111-42217-4-Chapter09-130.jpg

(12)保存模型。

STEP 05 求解模型

(1)启动MotionSolve。

(2)单击Input file(s)栏的“文件浏览”按钮978-7-111-42217-4-Chapter09-131.jpg,打开上步保存的bus_suspension_motionsolve.xml文件。

(3)单击Run按钮,求解模型。

(4)返回MotionView界面,单击Page Window Layout按钮,将当前界面设置为978-7-111-42217-4-Chapter09-132.jpg

(5)激活窗口4,将窗口4切换到HyperGraph程序。

(6)根据图9-62绘制MotionSolve控制系统作用下bus相对road的位移和速度曲线。 可以看出,在控制系统的作用下,1.25s后由路面激励产生的振动消失。

978-7-111-42217-4-Chapter09-133.jpg

图9-62 MotionSolve控制仿真结果

接下来联合Simulink设计控制系统,并进行联合仿真分析。

3.联合Simulink设计控制系统

STEP 01 定义环境变量

联合仿真前需要定义环境变量以实现在Matlab Simulink中调用MotionSolve求解模型。

(1)设置环境变量指向求解器执行文件工作目录。

978-7-111-42217-4-Chapter09-134.jpg

这里<installation directory>为HyperWorks完整安装路径,<platform>为软件版本,如win32指32-bit Windows版,win64指64-bit Windows版。

例如,在Windows 64-bit操作系统中设置NUSOL_DLL_DIR=E:\Altair\HW11.0\hwsolvers\bin\win64。

(2)设置环境变量指向许可证。

978-7-111-42217-4-Chapter09-135.jpg

注:HyperWorks工作路径已经由PATH定义。

STEP 02 定义系统变量

(1)回到MotionView界面。

(2)右击工具栏中的Solver Variable按钮978-7-111-42217-4-Chapter09-136.jpg

(3)在弹出的Add Solver Variable对话框中,设置标题为FZ_disp_bus_road。

(4)使用默认的变量名,单击OK按钮,创建求解器变量。

(5)在Solver Variable面板中,将求解器变量类型设置为Expression。

(6)单击文本框,输入`SFORCE({frc_0.id},{0},{4},{0})`。

SFORCE用于返回施加的力值,调用格式为SFORCE(id,jflag,comp,RM)。其中,id为力对象编号;jflag值为0或1,分别表示返回力对象作用物体的I标记点或J标记点;comp可取值1~8,1、2、3、4分别为合力、X轴分量、Y轴分量以及Z轴分量 的力,5、6、7和8分别为合力矩、X轴分量、Y轴分量以及Z轴分量的力矩;RM表示参考的坐标系,RM=0时,表示参看全局坐标系。

(7)类似地,创建标题为vel_bus_road的求解器变量。

(8)定义该求解器变量值为`SFORCE({frc_1.id},{0},{4},{0})`。

STEP 03 定义控制系统输入/输出矢量

(1)在项目浏览树中右击Solver Array文件夹,选择Delete命令,删除已创建的系统状态与输入矢量。这里将定义输入/输出量用于接收来自Simulink的信息。

(2)右击工具栏中的Solver Array按钮978-7-111-42217-4-Chapter09-137.jpg

(3)在弹出的Add Solver Array对话框中,指定标题为PlantInput。

(4)使用默认的变量名,单击OK按钮,创建控制系统输入量。

(5)在Solver Array面板的Properties标签中,将Array type设置为Plant Input。

(6)单击Append按钮,增加一个SolverVariable。

(7)单击SolverVariable按钮,根据图9-63定义求解器输入量。

978-7-111-42217-4-Chapter09-138.jpg

图9-63 Solver Array面板(PlantInput)

(8)类似地,创建标题名为PlantOutput的矢量。

(9)在Solver Array面板的Properties标签中,将Array type设置为Plant Output。

(10)单击Append按钮,增加一个SolverVariable。

(11)单击SolverVariable按钮,根据图9-64定义求解器输出量。

978-7-111-42217-4-Chapter09-139.jpg

图9-64 Solver Array面板(Plant Output)

STEP 04 修改控制力

(1)打开项目浏览树中的Force文件夹,单击bus_suspension_1,进入Force面板。

(2)进入Trans Properties标签,可以看到Expression处有错误提示“Error Evaluating”。这是由于第二部分定义的控制力中使用的输入矢量被删除了,表达式找不到相应的对象造成的。下面将修复该错误。

(3)单击Expression处的文本框,输入`-1*PINVAL({sa_0.id},1)`。

PINVAL用于返回控制系统输入单元的值,其调用格式为PINVAL(id,comp)。其中,id为控制系统输入单元编号,comp表示其分量。与该函数对应的是POUVAL(id,comp),POUVAL用于返回控制系统输出单元的值。

(4)类似地,单击项目浏览树bus_suspension_2,进入Trans Properties标签。

(5)单击Expression处的文本框,将bus_suspension_2的表达式修改为`-1*PINVAL({sa_0.id},2)`。

可以看到,当前表达式评估是正确的。

STEP 05 求解模型

联合仿真时,Simulink以S-Function的形式调用MotionSolve求解机械系统模型。需要使用XML文件向机械系统输出被控信号,使用MRF文件从机械系统获得控制信号。本步将首先输出XML模型,然后求解该模型,获取MRF文件。

(1)在File菜单中选择Save As→Model命令,另存模型为bus_suspension_simulink.mdl。

(2)单击工具栏中的978-7-111-42217-4-Chapter09-140.jpg按钮,进入Run面板。

(3)在Sim Type下,选择Transient,并指定文件名bus_suspension_simulink.xml。

(4)在Simulation Parameters标签下的End Time中,输入5。

(5)回到Main标签,并单击Run按钮求解模型。

此时工作文件夹下将生成MRF、H3D、ABF等格式的结果文件。

STEP 06 定义控制系统

(1)启动Matlab。

(2)选择File→Set Path命令,在弹出的Set Path对话框中单击Add Folder按钮,选择工作路径。

(3)单击Save按钮,将工作路径加入到Matlab工作路径中。

(4)单击Close按钮,关闭Set Path对话框。

(5)返回Matlab主界面,单击Current Folder处的Browse for folder按钮978-7-111-42217-4-Chapter09-141.jpg

(6)在弹出的Select a new folder对话框中选择工作文件夹,单击OK按钮关闭该对话框。

此时Matlab主界面中的Current folder栏将显示工作文件夹中的所有文件。

(7)单击Simulink按钮978-7-111-42217-4-Chapter09-142.jpg,进入Simulink界面。

(8)单击New Model按钮978-7-111-42217-4-Chapter09-143.jpg,新建一个Simulink模型。

(9)创建Simulink控制系统,如图9-65所示。

978-7-111-42217-4-Chapter09-144.jpg

图9-65 Simulink控制系统模型(草图)

(10)双击State-Space,根据图9-66修改传递函数参数。

(11)双击S-Function1,弹出Function Block Parameters对话框。

(12)将S-function name修改为mscosim。

(13)在S-function parameter文本框中输入:'bus_suspension_simulink.xml','bus_suspension_simulink.mrf','',如图9-67所示。

(14)单击OK按钮,关闭Function Block Parameters对话框。为提高控制系统框图的可读性,接下来修改对象名称。

(15)双击To Workspace,将Variable name修改为Pin。

(16)单击Scope图标下的名称,将其修改为Scope_PIn。

(17)双击To Workspace 1,将Variable name修改为POut。

(18)单击Scope1图标下的名称,将其修改为Scope_Pout。

(19)双击To Workspace 2,将Variable name修改为Time。修改完毕的控制系统如图9-68所示。

(20)单击Save按钮978-7-111-42217-4-Chapter09-145.jpg,将模型保存为BusSuspension.mdl。注意,Simulink模型文件的扩展名也为.mdl,与MotionView相同。至此,已将机械控

制系统模型全部定义完毕,接下来进行联合求解。

STEP 07 联合仿真

(1)在Simulink模型界面上选择Simulation→configuration parameters命令,弹出Configuration parameter对话框。

978-7-111-42217-4-Chapter09-146.jpg

图9-66 传递函数参数设置

978-7-111-42217-4-Chapter09-147.jpg

图9-67 Function Block Parameters对话框

978-7-111-42217-4-Chapter09-148.jpg

图9-68 Simulink控制系统模型(最终)

(2)进入Solver标签,将Stop time修改为5。

(3)将求解器类型设置为Variable-step,并选择ode45求解器。

(4)设置Max step size为0.01,保持其他参数不变,如图9-69所示。

(5)单击OK按钮,保存设置并退出Configuration parameter对话框。

(6)单击Save按钮978-7-111-42217-4-Chapter09-149.jpg,保存模型。

(7)单击Start simulation按钮978-7-111-42217-4-Chapter09-150.jpg,求解模型。

(8)求解结束后,双击Scope按钮,可查看控制系统输入/输出信号,如图9-70所示。

STEP 08 比较MotionSolve自求解结果与联合仿真结果

(1)返回HyperView,激活窗口4。

(2)根据图9-71绘制联合仿真中Simulink控制系统作用下bus相对road的位移和速度曲线。

978-7-111-42217-4-Chapter09-151.jpg

图9-69 Configuration parameter对话框

978-7-111-42217-4-Chapter09-152.jpg

图9-70 控制系统输入/输出信号

a)输出信号 b)输入信号

978-7-111-42217-4-Chapter09-153.jpg

图9-71 MotionSolve联合控制仿真结果

由图9-71可以看出两种方法获得的结果一致。

注:联合仿真时,仅获得bus_suspension_simulink.mrf和bus_suspension_simulink.log结果文件。因此,绘制曲线时,打开的结果文件是bus_suspension_simulink.mrf。

(3)选择File→Save→Session命令,将整个窗口保存为一个会话文件。

(4)选择File→Exit,退出程序。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈