如何在参数窗口中生成n个参数/选项?

时间:2019-08-14 09:05:04

标签: modelica dymola

我有以下代码:

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个用于在“动力装置”参数窗口中选择配置文件的字段。

感谢您的帮助。

1 个答案:

答案 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中看到以下对话框: Parameter Dialog

单击“编辑”按钮将显示: Sub-Dialog for parameter editing

在第二个对话框中,您可以选择要使用的数据集的数量以及应该选择的数据集。