如何为从函数作为数组的一部分返回的modelica参数设置起始值

时间:2018-03-14 08:20:52

标签: modelica dymola openmodelica

在模拟用于模拟多回路制冷系统的相当复杂的稳态模型时,我收到Dymola的以下警告信息。

  

以下变量是初始化问题的迭代变量:   initChillerCircuit2.InitCycleArray [20]

     

但是没有给出任何明确的起始值。零将被使用。

我正在寻找正确语法的帮助来设置此变量的起始值,因为该值从函数(Init_ChillerCircuit)返回到参数数组(InitCycleArray)。

  final parameter Real InitCycleArray[:]=Init_ChillerCircuit(
  vleInitRecord,
  liquidSelector,
  specifiedLiquidTIn,
  specifiedLiquidTOut,
  specifiedLiquidVdot,
  liquidTInIsSpecified,
  liquidTOutIsSpecified,
  liquidVdotIsSpecified,
  specifiedGasTIn,
  estimatedGasVdot,
  liquidHXEffectiveness,
  gasHXEffectiveness,
  subcoolerEffectiveness,
  suctionPressureLoss,
  suctionSuperheat,
  dischargePressureLoss,
  isentropicEfficiency,
  specifiedCapacity,
  isCooling);

我不清楚如何设置数组中单个元素的起始值,如果可能的话。我希望有类似下面的行,但语法不正确。

final parameter Real InitCycleArray[:](start[20] = 1) = Init_ChillerCircuit(...);

我能想到的最好的方法是为所有输出结果分配起始值,但这在我的场景中是有问题的。

final parameter Real InitCycleArray[:](start = {if i==20 then 1 else 0 for i in 1:33})=Init_ChillerCircuit(...);

上面的语法(分配所有起始值)编译好,但很难为输出数组中的每个元素分配适当的起始值。

任何建议都表示赞赏!

1 个答案:

答案 0 :(得分:0)

我要添加带有初始值的新参数

w.iris.df = long.iris.df %>% 
  spread(key = feature.measure, value = size) %>% 
  select(-rowid)
head(w.iris.df)
#>   Species Petal.Length Petal.Width Sepal.Length Sepal.Width
#> 1  setosa          1.4         0.2          5.1         3.5
#> 2  setosa          1.4         0.2          4.9         3.0
#> 3  setosa          1.3         0.2          4.7         3.2
#> 4  setosa          1.5         0.2          4.6         3.1
#> 5  setosa          1.4         0.2          5.0         3.6
#> 6  setosa          1.7         0.4          5.4         3.9