gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 22:11:24 25 4
gpt4 key购买 nike

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

The following variables are iteration variables of the initialization problem: initChillerCircuit2.InitCycleArray[20]

but they are not given any explicit start values. Zero will be used.



我正在寻找正确语法的帮助来设置此变量的起始值,因为该值是从函数 (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(...);

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

任何建议表示赞赏!

最佳答案

我会用起始值添加新参数

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

protected
constant Real[size(InitCycleArray)] InitCycleArray_start(each fixed=false);

initial equation
for i in 1:19 loop
InitCycleArray_start[i] = 0.0;
end for;

InitCycleArray_start[20] = 1.0;

for 21:size(InitCycleArray) loop
InitCycleArray_start[i] = 0.0;
end for;

关于modelica - 如何为作为数组一部分从函数返回的 modelica 参数设置起始值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49272717/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com