如何在参数-window中生成nparameters/options?
How to generate n parameters/options in parameter-window?
我有以下代码:
parameter Boolean Powerplant_on_Bus=true
"Activate/Deactivate Conventional Energy Generation on Bus" annotation (
Evaluate=true,
HideResult=true,
choices(__Dymola_checkBox=true),
Dialog(group="Generation"));
parameter Integer n[:]=
"Number of Conventional Powerplants connected to the Bus" annotation (
Dialog(group="Generation", enable=Powerplant_on_Bus));
结果是这样的:
Parameter Window
使用以下代码,我想生成一个选项,用于在参数 window:
中为 Powerplant 选择配置文件 table
replaceable model Powerplant_Profile =
IntegraNet.HighVoltage.Basics.Tables.ElectricGrid.GenericPowerDataTable "Load-profile data table for Powerplant Generation" annotation (choicesAllMatching=false,Dialog(tab="Powerplant",enable=Powerplant_on_Bus));
结果如下所示:
Parameter Window "Powerplant"
我的目标是生成 n 个用于选择动力装置配置文件的选项。例如:当我在字段 "n" 的第一个参数 window 中选择了 5 个动力装置时,我希望在参数 window "powerplant" 中有 5 个用于选择配置文件的字段。
感谢您的帮助。
据我所知,目前在 Dymola 中无法直接在参数对话框中动态更改显示的参数。
作为解决方法 - 虽然我不确定这是否正是您所需要的 - 有以下方法可以做类似的事情。
package N_options
package Data
record Default "Default Record"
parameter Real p1=1;
end Default;
record Data1 "Data set 1"
extends Default(p1 = 2.3);
end Data1;
record Data2 "Data set 2"
extends Default(p1 = 4.5);
end Data2;
end Data;
record DataSelection
parameter N_options.Data.Default data annotation (choicesAllMatching);
end DataSelection;
model MyModel
parameter DataSelection vectorizedData[:];
end MyModel;
model MyExample
MyModel myModel(vectorizedData={
N_options.DataSelection(data=N_options.Data.Default()),
N_options.DataSelection(data=N_options.Data.Data1()),
N_options.DataSelection(data=N_options.Data.Data2())})
annotation (Placement(transformation(extent={{-10,-10},{10,10}})));
end MyExample;
end N_options;
归结为:
- 包含您的数据的包裹
- 一个(中间)记录,您可以在其中 select 您希望能够选择的数据
- 包含数据的模型
parameter
- 一个例子
双击示例中的 myModel
将在 Dymola 中显示以下对话框:
单击 'Edit' 按钮然后显示:
在第二个对话框中,您可以select要使用的数据集的数量以及应选择的数据集。
我有以下代码:
parameter Boolean Powerplant_on_Bus=true
"Activate/Deactivate Conventional Energy Generation on Bus" annotation (
Evaluate=true,
HideResult=true,
choices(__Dymola_checkBox=true),
Dialog(group="Generation"));
parameter Integer n[:]=
"Number of Conventional Powerplants connected to the Bus" annotation (
Dialog(group="Generation", enable=Powerplant_on_Bus));
结果是这样的: Parameter Window
使用以下代码,我想生成一个选项,用于在参数 window:
中为 Powerplant 选择配置文件 tablereplaceable model Powerplant_Profile =
IntegraNet.HighVoltage.Basics.Tables.ElectricGrid.GenericPowerDataTable "Load-profile data table for Powerplant Generation" annotation (choicesAllMatching=false,Dialog(tab="Powerplant",enable=Powerplant_on_Bus));
结果如下所示: Parameter Window "Powerplant"
我的目标是生成 n 个用于选择动力装置配置文件的选项。例如:当我在字段 "n" 的第一个参数 window 中选择了 5 个动力装置时,我希望在参数 window "powerplant" 中有 5 个用于选择配置文件的字段。
感谢您的帮助。
据我所知,目前在 Dymola 中无法直接在参数对话框中动态更改显示的参数。
作为解决方法 - 虽然我不确定这是否正是您所需要的 - 有以下方法可以做类似的事情。
package N_options
package Data
record Default "Default Record"
parameter Real p1=1;
end Default;
record Data1 "Data set 1"
extends Default(p1 = 2.3);
end Data1;
record Data2 "Data set 2"
extends Default(p1 = 4.5);
end Data2;
end Data;
record DataSelection
parameter N_options.Data.Default data annotation (choicesAllMatching);
end DataSelection;
model MyModel
parameter DataSelection vectorizedData[:];
end MyModel;
model MyExample
MyModel myModel(vectorizedData={
N_options.DataSelection(data=N_options.Data.Default()),
N_options.DataSelection(data=N_options.Data.Data1()),
N_options.DataSelection(data=N_options.Data.Data2())})
annotation (Placement(transformation(extent={{-10,-10},{10,10}})));
end MyExample;
end N_options;
归结为:
- 包含您的数据的包裹
- 一个(中间)记录,您可以在其中 select 您希望能够选择的数据
- 包含数据的模型
parameter
- 一个例子
双击示例中的 myModel
将在 Dymola 中显示以下对话框:
单击 'Edit' 按钮然后显示:
在第二个对话框中,您可以select要使用的数据集的数量以及应选择的数据集。