理论教育 弹簧质量系统仿真分析-实例应用技巧

弹簧质量系统仿真分析-实例应用技巧

时间:2023-10-29 理论教育 版权反馈
【摘要】:本实例通过弹簧阻尼-质量系统介绍MotionView&MotionSolve中的微分方程、线性系统方程和传递函数的建模方法。弹簧阻尼-质量系统的动力学方程可写为mx&&+cx&+kx-f=0 (9-4)式中,x为方块位移,m为方块质量,k为弹簧刚度,c为弹簧阻尼,f为方块承受的重力。图9-7 弹簧阻尼-质量系统1.微分方程方法首先定义弹簧阻尼-质量系统数学模型。图9-12 表达式编辑器对话框单击OK按钮,微分表达式出现在微分方程面板中。图9-14 ControlSISO面板这里定义系统承受外载为10N。

弹簧质量系统仿真分析-实例应用技巧

本实例通过弹簧阻尼-质量系统(见图9-7所示)介绍MotionView&MotionSolve中的微分方程、线性系统方程和传递函数的建模方法。

弹簧阻尼-质量系统的动力学方程可写为

mx&&+cx&+kx-f=0 (9-4)式中,x为方块位移,m为方块质量,k为弹簧刚度,c为弹簧阻尼,f为方块承受的重力。本例取m=1kg,k=10N/m,c=2Ns/m,f=10N,则弹簧阻尼-质量系统动力学方程可写为

x&&+2x&+10x-10=0 (9-5)

将弹簧阻尼-质量系统动力学方程进行拉普拉斯变换,可得到弹簧阻尼-系统的传递函数为

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

根据线性系统理论,

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

取x1和x2=x&1为线性系统的状态变量,可将弹簧阻尼-质量系统动力学方程转化为线性系统方程:

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

下面分别用微分方程、传递函数和线性系统方程方法进行弹簧阻尼-质量系统动力学分析。

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

图9-7 弹簧阻尼-质量系统

1.微分方程方法

首先定义弹簧阻尼-质量系统数学模型。MotionView&MotionSolve支持一阶微分方程的建模与求解,因此需将上述二阶微分方程降阶。另外,取状态变量初始值为x1(0)=0,x2(0)=0,由此得到的系统数学模型为:

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

STEP 01 创建求解器变量

(1)启动MotionView,新建一个会话。

(2)从项目浏览树中右击Model,并选择Add Control Entity→Solver Variable(或右击工具栏中的“求解器变量”按钮978-7-111-42217-4-Chapter09-15.jpg)。

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

(4)使用默认的变量名,如图9-8所示。

(5)单击OK按钮。

(6)在Solver Variable面板的Properties标签中,选择变量类型为Linear,并指定数值为1.0,如图9-9所示。

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

图9-8 Add Solver Variable对话框

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

图9-9 Solver Variable面板

(7)重复上述步骤,分别定义系统变量k=10、c=2、f=10。

STEP 02 定义微分方程

(1)从项目浏览树中右击Model,并选择Add Control Entity→Solver Differential Equation(或右击工具栏中的“求解器变量”按钮978-7-111-42217-4-Chapter09-18.jpg)。

(2)在弹出的Add SolverDiff对话框中,指定标题为x1。

(3)使用默认的变量名,如图9-10所示。

(4)单击OK按钮。

(5)创建一个标题为x2的微分方程,变量名可取默认值。

(6)在项目浏览树中单击x1,进入微分方程面板。

(7)将微分方程类型设置为Value Expression,如图9-11所示。

(8)单击按钮978-7-111-42217-4-Chapter09-19.jpg,进入表达式编辑器对话框。

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

图9-10 Add SolverDiff对话框

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

图9-11 Solver Differential Equation面板

(9)根据图9-12,创建微分方程`DIF({diff_1.id})`。创建完毕可单击Evaluated按钮对表达式进行评估。

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

图9-12 表达式编辑器对话框

(10)单击OK按钮,微分表达式出现在微分方程面板中。

(11)重复步骤(6)~(10),创建第二个微分方程,表达式为 `-{sv_1.value.lin}/{sv_0.value.lin}*DIF({diff_0.id})-{sv_2.value.lin}/{sv_0.value.lin}*DIF({diff_1.id})+{sv_3.value.lin}/{sv_0.value.lin}`

STEP 03 定义输出

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

(2)在弹出的Add Output对话框中使用默认的标题与变量名创建一个输出请求。

(3)在Output面板中将输出请求类型设置为Expressions。

(4)激活F2,单击按钮978-7-111-42217-4-Chapter09-24.jpg,进入表达式编辑器对话框。

(5)定义输出请求表达式为`DIF({diff_0.id})`。此表达式将输出x1状态。

STEP 04 求解微分方程

(1)单击Save按钮978-7-111-42217-4-Chapter09-25.jpg ,保存模型为Spring_Diff.mdl。

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

(3)进入Simulation Parameter标签,将End time设置为5,其余使用默认设置。

(4)返回Main标签,单击“文件浏览”按钮978-7-111-42217-4-Chapter09-27.jpg

(5)指定工作文件夹,将模型保存为Spring_Diff.xml。

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

2.传递函数方法

STEP 01 定义单入单出传递函数

(1)启动MotionView,新建一个会话。

(2)从项目浏览树中右击Model,并选择Add Control Entity→ControlSISO(或右击工具栏中的“单入单出传递函数”按钮978-7-111-42217-4-Chapter09-28.jpg)。

(3)在弹出的Add ControlSISO对话框中,使用默认的标题和变量名新建一个传递函数。

(4)进入ControlSISO面板。

(5)激活Properties标签,定义传递函数参数,如图9-13所示。创建分母时,单击

Append按钮可增加项目。

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

图9-13 ControlSISO面板(Properties标签)

这里定义传递函数为

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

(6)进入Input标签,定义输入类型为Linear。

(7)指定输入值为10,如图9-14所示。

978-7-111-42217-4-Chapter09-31.jpg(www.daowen.com)

图9-14 ControlSISO面板(Input标签)

这里定义系统承受外载为10N。

STEP 02 定义输出

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

(2)在弹出的Add Output对话框中使用默认的标题与变量名创建一个输出。

(3)在Output面板中将输出请求类型设置为Expression。

(4)激活F2,单击978-7-111-42217-4-Chapter09-33.jpg按钮,进入表达式编辑器对话框。

(5)定义输出请求表达式为`{siso_0.OUTPUT}`。此表达式将输出X的状态。

STEP 03 求解单入单出系统

(1)单击Save按钮978-7-111-42217-4-Chapter09-34.jpg ,保存模型为Spring_Transfer.mdl。

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

(3)进入Simulation Parameter标签,将End time设置为5,其余使用默认设置。

(4)返回Main标签,单击“文件浏览”按钮978-7-111-42217-4-Chapter09-36.jpg

(5)指定工作文件夹,将模型保存为Spring_Transfer.xml。

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

3.线性系统方程方法

STEP 01 定义求解器变量

本例将f作为系统输入,x作为系统输出,因此只需定义线性系统的常系数矩阵978-7-111-42217-4-Chapter09-37.jpg978-7-111-42217-4-Chapter09-38.jpg。这里使用求解器变量定义系统输入。

(1)启动MotionView,新建一个会话。

(2)从项目浏览树中右击Model,选择Add Control Entity→Solver Variable(或右击工具栏中的“求解器变量”按钮978-7-111-42217-4-Chapter09-39.jpg)。

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

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

(5)单击OK按钮。

(6)在求解器变量面板的Properties标签中,选择变量类型为Linear,并指定数值为10。

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

(1)从项目浏览树中右击Model,选择Add Control Entity→Solver Array(或右击工具栏中的“求解器变量”按钮978-7-111-42217-4-Chapter09-40.jpg)。

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

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

(4)在Solver Array面板的Properties标签中,将Array type设置为U,如图9-15所示。

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

图9-15 Solver Array面板

(5)单击SolverVariable按钮,选择上步定义的求解器变量f。该矢量用于提供输入。

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

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

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

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

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

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

(3)将模型保存为Spring_Linear.xml。

(4)使用文本编辑器打开Spring_Linear.xml。

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

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

(6)定义常数矩阵B。

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

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

(7)定义状态方程

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

(8)保存模型。

STEP 04 求解线性系统

(1)启动MotionSolve。

(2)找到上步保存的Spring_Linear.xml文件。

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

STEP 05 查看结果

(1)启动HyperGraph。

(2)单击Data file栏的“文件浏览”按钮978-7-111-42217-4-Chapter09-48.jpg,载入Spring_Diff.abf文件,定义绘制曲线,如图9-16所示。

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

图9-16 Build plots面板(载入Spring_Diff.abf文件)

(3)单击工具栏中的Define plot按钮978-7-111-42217-4-Chapter09-50.jpg

(4)将曲线名称修改为Spring_Diff,如图9-17所示。

(5)单击Build Plots按钮978-7-111-42217-4-Chapter09-51.jpg,进入Build Plots面板。

(6)单击Data file栏的“文件浏览”按钮978-7-111-42217-4-Chapter09-52.jpg,载入Spring_Transfer.abf文件,定义绘制曲线如图9-18所示。

(7)将曲线名称修改为Spring_Transfer。

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

图9-17 Define plot面板

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

图9-18 Build plots面板(载入Spring_Transfer.abf文件)

(8)类似地,载入Spring_Linar.abf文件。绘制曲线,如图9-19所示。

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

图9-19 Build plots面板(载入Spring_Linar.abf文件)

(9)将曲线名称修改为Spring_Linear。

(10)此时图形区曲线如图9-20所示。可以看出3种方法获得的结果相同,即方块在重力作用下位移变化稳定于1m。读者可以试着创建弹簧阻尼-质量系统虚拟样机模型,求解并对比结果。

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

图9-20 曲线对比

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

我要反馈