次のパッケージ「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;