Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何为作为函数数组一部分返回的modelica参数设置起始值_Modelica_Dymola_Openmodelica - Fatal编程技术网

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

如何为作为函数数组一部分返回的modelica参数设置起始值,modelica,dymola,openmodelica,Modelica,Dymola,Openmodelica,在模拟多回路制冷剂系统的相当复杂的稳态模型时,我收到Dymola发出的以下警告消息 以下变量是初始化问题的迭代变量: InitCyclerRay[20] 但它们没有给出任何明确的起始值。将使用零 我正在寻找适当语法的帮助来设置此变量的起始值,因为该值是从函数(Init_)返回到参数数组(initCyclarray)中的 如果可能的话,我不清楚如何设置数组中单个元素的起始值。我希望得到下面这一行,但语法不正确 final parameter Real InitCycleArray[:](start

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

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

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

我正在寻找适当语法的帮助来设置此变量的起始值,因为该值是从函数(Init_)返回到参数数组(initCyclarray)中的

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

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;