如何在 Dymola 中定义记录的自定义参数?
How to define the custom parameter of a record in Dymola?
在ThermoSysPro库中有一个StodolaTurbine组件的自定义参数,在涡轮组件的图表视图中,我可以看到自定义参数属于一条记录。但是这条记录没有参数,这种情况下如何添加一个自定义参数?
您设置的每个修饰符都会显示在参数 window 中。您不仅可以为参数设置修饰符,还可以为或多或少不是最终的所有内容设置修饰符:所有变量和组件实例也是如此,无论它们是否在参数 window 中可见。 Dymola 将在 'Custom parameters' 部分显示此类修饰符。
有几种方法可以设置此类修饰符:
- 直接在文本层中键入修饰方程
- 在组件的参数 window 中使用选项卡 'Add modifiers'
- 使用显示组件打开实例并在子组件中设置参数
在旧的 Dymola 版本中,这些修饰符仅显示在一般参数组中,这会导致混淆。所以他们将其移至 'Custom parameter' 部分。
例子
让我们使用下面的简单代码来演示三种不同的方法。
package Demo
model StepSine
Modelica.Blocks.Sources.Step step annotation (Placement(transformation(extent={{-20,20},{20,60}})));
Modelica.Blocks.Interfaces.RealOutput y annotation (Placement(transformation(extent={{100,-10},{120,10}})));
Modelica.Blocks.Math.Add add annotation (Placement(transformation(extent={{60,-10},{80,10}})));
Modelica.Blocks.Sources.Sine sine annotation (Placement(transformation(extent={{-20,-60},{20,-20}})));
equation
connect(add.y, y) annotation (Line(points={{81,0},{110,0}}, color={0,0,127}));
connect(step.y, add.u1) annotation (Line(points={{22,40},{40,40},{40,6},{58,6}}, color={0,0,127}));
connect(sine.y, add.u2) annotation (Line(points={{22,-40},{40,-40},{40,-6},{58,-6}}, color={0,0,127}));
end StepSine;
model Example
StepSine stepSine annotation (Placement(transformation(extent={{-8,-10},{12,10}})));
end Example;
end Demo;
这里我们创建了 class StepSine
,它只是向正弦信号添加一个阶跃。 None 的组件参数被传播,但是通过上述方法我们仍然可以在 Example
.
中设置它们
使用文字图层
- 转到文本层并键入
StepSine stepSine(add.k1=-1)
- 检查
stepSine
的参数 window。您获得了第一个自定义参数。
使用'Add modifiers'
- 在
Example
中打开stepSine
的参数window
- 切换到选项卡'Add Modifiers'
- 键入
step.height=1
并单击“确定”
- 再次检查参数window。您获得了第二个自定义参数。
使用'Show component'
- 使用右键单击打开
stepSine
-> 显示组件
- 然后打开
sine
的参数window,输入例如3 为振幅
- 再次检查
stepSine
的参数window。您获得了第三个自定义参数。
在ThermoSysPro库中有一个StodolaTurbine组件的自定义参数,在涡轮组件的图表视图中,我可以看到自定义参数属于一条记录。但是这条记录没有参数,这种情况下如何添加一个自定义参数?
您设置的每个修饰符都会显示在参数 window 中。您不仅可以为参数设置修饰符,还可以为或多或少不是最终的所有内容设置修饰符:所有变量和组件实例也是如此,无论它们是否在参数 window 中可见。 Dymola 将在 'Custom parameters' 部分显示此类修饰符。
有几种方法可以设置此类修饰符:
- 直接在文本层中键入修饰方程
- 在组件的参数 window 中使用选项卡 'Add modifiers'
- 使用显示组件打开实例并在子组件中设置参数
在旧的 Dymola 版本中,这些修饰符仅显示在一般参数组中,这会导致混淆。所以他们将其移至 'Custom parameter' 部分。
例子
让我们使用下面的简单代码来演示三种不同的方法。
package Demo
model StepSine
Modelica.Blocks.Sources.Step step annotation (Placement(transformation(extent={{-20,20},{20,60}})));
Modelica.Blocks.Interfaces.RealOutput y annotation (Placement(transformation(extent={{100,-10},{120,10}})));
Modelica.Blocks.Math.Add add annotation (Placement(transformation(extent={{60,-10},{80,10}})));
Modelica.Blocks.Sources.Sine sine annotation (Placement(transformation(extent={{-20,-60},{20,-20}})));
equation
connect(add.y, y) annotation (Line(points={{81,0},{110,0}}, color={0,0,127}));
connect(step.y, add.u1) annotation (Line(points={{22,40},{40,40},{40,6},{58,6}}, color={0,0,127}));
connect(sine.y, add.u2) annotation (Line(points={{22,-40},{40,-40},{40,-6},{58,-6}}, color={0,0,127}));
end StepSine;
model Example
StepSine stepSine annotation (Placement(transformation(extent={{-8,-10},{12,10}})));
end Example;
end Demo;
这里我们创建了 class StepSine
,它只是向正弦信号添加一个阶跃。 None 的组件参数被传播,但是通过上述方法我们仍然可以在 Example
.
使用文字图层
- 转到文本层并键入
StepSine stepSine(add.k1=-1)
- 检查
stepSine
的参数 window。您获得了第一个自定义参数。
- 转到文本层并键入
使用'Add modifiers'
- 在
Example
中打开 - 切换到选项卡'Add Modifiers'
- 键入
step.height=1
并单击“确定” - 再次检查参数window。您获得了第二个自定义参数。
stepSine
的参数window- 在
使用'Show component'
- 使用右键单击打开
stepSine
-> 显示组件 - 然后打开
sine
的参数window,输入例如3 为振幅 - 再次检查
stepSine
的参数window。您获得了第三个自定义参数。
- 使用右键单击打开