前页 | 后页 |
根据方程式创建约束块
Enterprise Architect版本14.1中提供了此功能。
在开发工程解决方案时,通常需要反映通过使用数学方程式(例如力=质量x加速度(或f = m * a))计算确定的因素。该方程是由约束表示,而方程中的元素-在这种情况下F,M,和一个 -是约束的参数。
您可以使用“编辑约束块”对话框将一个或多个计算出的约束建模为SysML约束块元素,通过该对话框可以解析约束并从每个约束中提取参数。您可以应用适合您模型的任何方程式,无论它们是国际标准公式还是您在自己的工作范围内得出的公式。
访问
上下文菜单 |
右键单击约束块|编辑约束块 |
其他 |
图工具箱,“ SysML块定义”页面|将“约束块”图标拖放到“块定义”图上 |
解析方程式并创建参数
假设我们有一个名为“ Damper”的约束块,其中包含这三个方程作为约束:
- v_rel = der(s_rel)
- f = d * v_rel(“ d”是“阻尼系数”的不正确符号;这是有意为之的,以便在以后的步骤中进行校正)
- lossPower = f * v_rel
每个参数之前的“ +”号表示该参数在模型中尚不存在。要在模型中创建参数:
- 单击关闭按钮。
系统显示提示,以选择是否创建参数。
- 单击是按钮。
此图显示了生成的约束块阻尼器 。
删除参数
“编辑约束块”对话框也可用于从块中删除约束及其相关参数。
在我们的示例中,假设我们打开对话框并删除约束:
lossPower = f * v_rel
(右键单击约束,然后选择“删除”选项。)
约束唯一的参数(在这种情况下为'lossPower'参数)将移至“ Not Required Parameters”标题下。
您现在可以:
- 右键单击参数,然后选择“删除参数”上下文菜单选项,或
- 右键单击“不需要的参数”标题,然后选择“删除所有不需要的参数”选项
重命名现有参数
在我们的示例中,假设我们打开对话框并更改约束:
f = d * v_rel
至
f =阻尼系数* v_rel
(单击约束,单击约束中的点以开始编辑,并改写或删除文本。然后单击约束。)
这些变化将发生:
- 提取参数“ dampingCoefficient”并将其报告为新参数(当前模型中不存在)
- 参数“ d”报告为“不需要”
(有关绑定参数的信息,请参见ConstraintProperty帮助主题的“ 绑定参数” 。)
数学函数
方程解析器支持在约束方程中使用数学函数(例如本主题前面的der(s_rel) )。指定函数时,函数名称和左括号之间不应有空格。函数参数将被提取为新的约束参数,但函数名称不会被提取。
内置变量
等式可能包含您不希望提取为约束参数的变量。例如,仿真环境OpenModelica提供了许多内置变量,因此要在OpenModelica下对模型进行仿真,您就不想将这些变量复制为提取的参数。您可以识别“编辑约束块”功能的内置变量,这样就不会从约束方程式中提取它们,从而避免了潜在的冲突。
要定义不应提取为参数的变量列表,请在“编辑约束块”对话框中单击“编辑内置变量...”按钮。
然后输入或添加到内置变量名称的逗号分隔列表中。
例如,OpenModelica将“时间”定义为内置变量,因此我们将“时间”添加到约束块列表中。然后,当我们输入方程式“ r = cos(time)”时,将仅提取参数“ r”。
复合约束块
在开发更复杂和/或顺序计算的约束时,可以构造复合约束块来分解和排序计算。
在此示例中,约束块K本身没有定义任何约束,但是作为复合结构从约束的三个组成部分约束块K1 , K2和K1TimesK2继承它们。约束块K继承了五个参数a,b,c,d和K。
系统将不首先从一次计算中提取K的值,而是先计算K1,然后计算K2,最后计算K1和K2的乘积,得出K的值。
这种结构还使得在不影响其他元素的情况下更容易地修改计算中某些元素的输入。