Modelica 如何在Dymola中定义记录的自定义参数?
ThermoSysPro库中有一个Stodolaturebine组件的自定义参数,在turbine组件的图表视图中,我可以看到自定义参数属于一个记录。但此记录没有参数,在这种情况下,如何再添加一个自定义参数Modelica 如何在Dymola中定义记录的自定义参数?,modelica,dymola,Modelica,Dymola,ThermoSysPro库中有一个Stodolaturebine组件的自定义参数,在turbine组件的图表视图中,我可以看到自定义参数属于一个记录。但此记录没有参数,在这种情况下,如何再添加一个自定义参数 您设置的每个修改器都会显示在参数窗口中。您不仅可以为参数设置修改器,还可以为非最终的所有内容设置修改器:所有变量和组件实例也可以设置修改器,无论它们是否在参数窗口中可见。Dymola将在“自定义参数”部分显示此类修改器 有几种方法可以设置此类修改器: 直接在文本层中键入修改器方程 使用组
您设置的每个修改器都会显示在参数窗口中。您不仅可以为参数设置修改器,还可以为非最终的所有内容设置修改器:所有变量和组件实例也可以设置修改器,无论它们是否在参数窗口中可见。Dymola将在“自定义参数”部分显示此类修改器 有几种方法可以设置此类修改器:
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;
在这里,我们创建了类StepSine
,它只是向正弦信号添加一个步长。组件的任何参数都不会传播,但使用上述方法,我们仍然可以在示例中设置它们
使用文本层
转到文本层并键入StepSine-StepSine(add.k1=-1)
检查stepSine
的参数窗口。您获得了第一个自定义参数
使用“添加修改器”
在示例中打开stepSine
的参数窗口
切换到“添加修改器”选项卡
键入step.height=1
并单击确定
再次检查参数窗口。您获得了第二个自定义参数
使用“显示组件”
使用右键单击->显示组件打开stepSine
然后打开sine
的参数窗口,输入例如3的振幅
再次检查stepSine
的参数窗口。您得到了第三个自定义参数
设置的每个修改器都会显示在“参数”窗口中。您不仅可以为参数设置修改器,还可以为非最终的所有内容设置修改器:所有变量和组件实例也可以设置修改器,无论它们是否在参数窗口中可见。Dymola将在“自定义参数”部分显示此类修改器
有几种方法可以设置此类修改器:
直接在文本层中键入修改器方程
使用组件参数窗口中的“添加修改器”选项卡
使用“显示组件”打开实例并在子组件中设置参数
在较旧的Dymola版本中,这些修饰符仅显示在“常规参数”组中,这会导致混淆。所以他们把它移到了“自定义参数”部分
例子
让我们使用下面的简单代码来演示这三种不同的方法
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;
在这里,我们创建了类StepSine
,它只是向正弦信号添加一个步长。组件的任何参数都不会传播,但使用上述方法,我们仍然可以在示例中设置它们
使用文本层
转到文本层并键入StepSine-StepSine(add.k1=-1)
检查stepSine
的参数窗口。您获得了第一个自定义参数
使用“添加修改器”
在示例中打开stepSine
的参数窗口
切换到“添加修改器”选项卡
键入step.height=1
并单击确定
再次检查参数窗口。您获得了第二个自定义参数
使用“显示组件”
使用右键单击->显示组件打开stepSine
然后打开sine
的参数窗口,输入例如3的振幅
再次检查stepSine
的参数窗口。您得到了第三个自定义参数