我有以下代码:
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
使用以下代码,我想生成一个用于在参数窗口中为Powerplant选择配置文件表的选项:
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”字段的第一个参数窗口中选择了5个“动力装置”时,我希望有5个用于在“动力装置”参数窗口中选择配置文件的字段。
感谢您的帮助。
答案 0 :(得分:3)
据我所知,当前在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;
这可以归结为:
parameter
的模型双击示例中的myModel
,可以在Dymola中看到以下对话框:
在第二个对话框中,您可以选择要使用的数据集的数量以及应该选择的数据集。