如何为作为函数数组一部分返回的modelica参数设置起始值
在模拟多回路制冷剂系统的相当复杂的稳态模型时,我收到Dymola发出的以下警告消息 以下变量是初始化问题的迭代变量: InitCyclerRay[20] 但它们没有给出任何明确的起始值。将使用零 我正在寻找适当语法的帮助来设置此变量的起始值,因为该值是从函数(Init_)返回到参数数组(initCyclarray)中的 如果可能的话,我不清楚如何设置数组中单个元素的起始值。我希望得到下面这一行,但语法不正确如何为作为函数数组一部分返回的modelica参数设置起始值,modelica,dymola,openmodelica,Modelica,Dymola,Openmodelica,在模拟多回路制冷剂系统的相当复杂的稳态模型时,我收到Dymola发出的以下警告消息 以下变量是初始化问题的迭代变量: InitCyclerRay[20] 但它们没有给出任何明确的起始值。将使用零 我正在寻找适当语法的帮助来设置此变量的起始值,因为该值是从函数(Init_)返回到参数数组(initCyclarray)中的 如果可能的话,我不清楚如何设置数组中单个元素的起始值。我希望得到下面这一行,但语法不正确 final parameter Real InitCycleArray[:](start
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(...);
上面的语法分配所有起始值,编译ok,但为输出数组中的每个元素分配适当的起始值是困难的
任何建议都将不胜感激 我想用起始值添加新参数
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;
如果InitCycleArray[20]的初始值可以在不过度约束方程系统的情况下固定,则可以在代码中添加“InitCycleArray[20]=初始值”的“初始方程”部分,不幸的是,它无法固定。该值是迭代计算的结果,因此它不是先验的直接已知值,并且在时间t=0时用作非线性解的起始值。您不能使用
最终参数Real initcyclarray(start=Init_circuit(…)代码>我想这应该会给你最好的开始值,因为函数似乎就是为此而创建的。我仍然有点困惑,参数的起始值是迭代的一部分。
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;