1

次のパッケージ「RecordTest」(より大きなモデルのエラーを再現する例) には、一部のデータの構造を定義するためのレコードが含まれています。さらに、パッケージ 'DataDefintion' では、2 つのデータ セットが定義されています。最後に、このデータはパッケージ 'UseOfData' で使用する必要があります。ここで、データセットが読み取られ、すべての配列 A の合計が関数 'FunctionWithData' で評価されます。

モデル 'FunctionCall' のシミュレーションは OpenModelica で正常に動作します。Dymola では、「変数パッケージ定数 RecordTest.UseOfData.ReadData[1].A の場合、配列変数の添字 RecordTest.UseOfData.ReadData.Index は整数ではありません」というエラーが表示されます。

私は何かが恋しいですか?定数「Index」は、レコード「DataStructure」で整数として定義されています。さらに、モデルは OpenModelica で実行されます。Dymolaのエラーがわかりません。

前もって感謝します。

package RecordTest

record DataStructure
  constant Integer Index;
  Real A[Index];
end DataStructure;

package DataDefinition
  constant DataStructure Set1(Index=2, A={1,2});
  constant DataStructure Set2(Index=2, A={3,4});
end DataDefinition;

package UseOfData
  constant Integer N=2;
  constant DataStructure ReadData[N]={DataDefinition.Set1, DataDefinition.Set2};

  function FunctionWithData
    input Real b;
    output Real Result;
  protected
    Real Array[2];
  algorithm
    Array := {sum(ReadData[1].A), sum(ReadData[2].A)};
    Result := b*sum(Array);
  end FunctionWithData;

  model FunctionCall
    parameter Real b=2;
    Real FunctionResult;
  equation
    FunctionResult = FunctionWithData(b);
  end FunctionCall;
end UseOfData;

end RecordTest;
4

1 に答える 1