前页 | 后页 |
质量弹簧阻尼器振荡器仿真示例
在本节中,我们将逐步创建一个由质量,弹簧和阻尼器组成的简单振荡器的SysML参数模型,然后使用参数模拟来预测和绘制该机械系统的行为。最后,我们通过比较两个通过数据集提供不同参数值的振荡器来进行假设分析。
正在建模的系统
弹簧和减震器上挂着一块重物。此处显示的第一个状态代表刚好释放质量时的时间= 0时的初始点。第二种状态表示身体静止且弹簧力与重力平衡时的终点。
创建SysML模型
SysML中的MassSpringDamperOscillator模型具有一个主要模块Oscillator 。振荡器由四个部分组成:固定顶板 , 弹簧 , 阻尼器和质量体 。为每个零件创建一个块。振荡器块的四个部分通过端口连接,这些端口代表机械法兰。
组件 |
描述 |
---|---|
端口类型 |
一维过渡机械域中用于法兰的块'Flange_a'和'Flange_b'是相同的,但作用略有不同,与在电气领域中PositivePin和NegativePin的作用有些相似。力通过法兰传递。所以isConserved流动性Flange.f的属性应设置为True。
|
块和端口 |
|
内部结构 |
为“振荡器”创建一个内部框图(IBD)。为固定的天花板,弹簧,阻尼器和质量体添加属性,并通过相应的块键入。用连接器连接端口。
|
约束条件 |
为简单起见,我们直接在Block元素中定义约束。 (可选)您可以定义约束块,在块中使用约束属性,并将其参数绑定到块的属性。 |
两个振荡器比较计划
对振荡器进行建模后,我们要进行假设分析。例如:
- 具有不同阻尼器的两个振荡器之间有什么区别?
- 如果没有风门怎么办?
- 具有不同弹簧的两个振荡器之间有什么区别?
- 具有不同质量的两个振荡器之间有什么区别?
- 创建一个名为“ OscillatorCompareModel”的块
- 为“ OscillatorCompareModel”创建两个属性,分别称为振荡器1和振荡器2,并使用块振荡器键入它们
设置数据集并运行模拟
创建一个SysMLSim配置工件并将其分配给此程序包。然后创建以下数据集:
- 阻尼器:小VS大
为“ oscillator1.damper1.d”提供值10,为“ oscillator2.damper1.d”提供较大值20
- 阻尼器:否vs是
提供'oscillator1.damper1.d的值为0; (“ oscillator2.damper1.d”将使用默认值25)
- 春天:小与大
为“ oscillator1.spring1.c”提供值6000,为“ oscillator2.spring1.c”提供更大的值12000
- 质量:轻与重
为“ oscillator1.mass1.m”提供值0.5,为“ oscillator2.mass1.m”提供较大值2
配置的页面类似于以下内容:
在“模拟”页面上,选择“ OscillatorCompareModel”,为“ oscillator1.mass1.s”和“ oscillator2.mass1.s”绘图,然后选择一个已创建的数据集并运行模拟。
提示:如果图解列表中的属性太多,则可以使用列表标题上的上下文菜单切换“过滤器”栏,然后在此示例中键入“ mass1.s”。
这些是模拟结果:
- 阻尼器,小还是大:阻尼器越小,身体振动越大
- 阻尼器,否vs是:振荡器在没有阻尼器的情况下永不停止
- 春季,小与大:带有较小“ c”的弹簧振荡得更慢
- 质量,轻与重:较小质量的物体将更快地振动并更快地调节