前页 | 后页 |
创建仿真模型
我们在本指南的“工作原理”部分中看到的示例是故意微不足道的;在本节中,我们将详细细节这些步骤,包括配置模型的选项。 Enterprise Architect提供了很大的灵活性,允许定义简单的一次性模型,或者创建基于库的复杂多用途模型,这些模型可以使用不同的数据集和上下文在多个项目和域中重用。在本主题中,我们将探讨其中一些用于配置模型的选项,以便它们适合用途并创建所需的工程成果。
仿真模型包
可以在浏览器窗口中A任何位置设置模型包,但通常认为最佳实践是在每个项目或计划下设置模拟包。然后,这可以包含每个模拟的子包。预计对于给定的项目,可能需要许多不同的模拟。正如数据集部分所讨论的,组织也可能希望在多个项目中重复使用一些模拟。这些模拟可以在项目浏览器中设置并在超项目级别定义 - 例如在企业、组织或工程部门级别。然后可以将它们包含在项目级别的图表中,表明它们是适用于给定的项目或问题上下文。工程团队也可能希望在项目之间重用值类型及其伴随的数量和单位库,正如本指南前面的主题中所讨论的,最好在超项目级别定义和建模。
Enterprise Architect使用 SysML包导入机制来确保在企业级别定义的 Value Types 可以在每个仿真包级别等级中包含和重用。该结构通常包含以下包:
- 值类型(特定于此项目)
- 块
- 约束属性
在接下来的部分我们将学习如何创建 SysML工件和配置为 <<仿真>>。
创建仿真元素
准备模拟的主要工作是定义模型元素,使用具有适当精度的运行以允许 OpenModelica 平台运行模拟。定义模型的方法有很多种,在本指南中,我们将聚焦介绍最稳健、最灵活的方法,因为大多数实践工程师和团队都会使用这种方法。
在这一点上,值得关注模拟主题,以确保我们了解它与模型其他部分的相关性和联系,以及模拟元素如何连接到其他模型元素,例如需求、测试案例等。通常,模拟被用作调查某些网络物理问题的一种方式,而无需构建耗时且通常昂贵的物理模型。模拟可以是问题分析、权衡分析、性能分析或许多其他调查的一部分。被定义为模拟一部分的块可以分配给行为元素并最终分配给需求。
要创建的第一个元素是块,它们是解决方案的基本结构元素。我们已经在前面的示例中学习了如何执行此操作;该图显示了许多具有元素的隔间,即属性。
在准备定义定义摆系统行为的方程时,我们将定义确保模型精确所需的值类型,并检查仿真参数是否正确指定。这是使用块定义图 (图表) 来完成的,使用的是图形工具箱工具中提供的值类型元素。
下一步是使用 ConstraintBlocks 定义约束。这些元素是我们将在其中定义 Modelica 方程的地方,这些方程将控制被建模系统的行为——在我们的例子中,是一个钟摆。如本指南前面所述,ConstraintBlocks 是在块定义图上定义的,并定义了一系列参数和一个用 Modelica 编写的方程来表达这些参数的约束。例如,约束摆的垂直方向的方程写成:
m * der(vy) = -(y/ L ) * F - m * g
请注意 Modelica 关键字,例如表示一阶导数的“der”。 L是摆的长度(参数),g 是重力加速度(常数),m 是摆的质量(参数),x 和 y 是二维空间中的坐标,F 是力.请注意,Modelica 使用:
下一步是创建将方程绑定在一起的参数图。如指南前面所述,这些图是一种特殊类型的内部块图,包含称为 ConstraintProperties 的 ConstraintBlock 实例,这些实例公开了它们的参数,这些参数由连接器绑定到其他 ConstraintProperties 上的参数。
指定配置工件
仿真元素是将模型元素绑定到工件平台的元素。在 SysML 中以 Blocks、ConstraintBlocks 的形式表示的模型元素及其在参数图上绑定在一起的相关 ConstraintProperties 出现在仿真窗口中,并且可以使用其他设置进行配置以驱动仿真。
第一步是设置此功能的元素配置,可从“组件”中的“工件”工具箱页面中创建此屏幕截图所示。
Enterprise Architect在填充配置SysML仿真窗口方面完成了大部分繁重的工作。工程师只需要选择包的“配置”面板上的仿真,就可以工件了。
Enterprise Architect将显示包选择窗口,一旦选择包,“配置”面板将填充模型中的块、约束块和值类型。从这一点开始,可以为各种参数输入值,或者可以定义数据集。可以输入仿真配置参数,仿真就可以运行了。
一旦为模拟输入了数据,包括开始和停止值以及输出格式,仿真可以通过选择“求解”按钮来运行模拟,如此屏幕插图中所示。