1

物理システムのモデルでは、ルックアップ テーブルの係数で 1 つのフラックス値を変更します。LUT 自体は、整数インデックスに基づいて LUT のカタログから選択されます。現在、テーブル データを CombiTable2D コンポーネントにロードしています。正しい LUT を選択/定義する正しい方法は何ですか? それらすべてを 1 つの入力データ ファイルに名前付きのテーブルとして含める場合、その tableName (CombiTable パラメーター) に基づいて LUT を選択する方法はありますか? 方程式またはアルゴリズム形式の For ループで遊んでいますが、まだ機能する構文を見つけていません。

考えてくれてありがとう...

4

1 に答える 1

1

ファイルごとに1つのテーブルでしか機能しないと思うので、次のようなテーブルの配列を持つことができます:

parameter Integer N = 3;
parameter String selectTable = "tab2";
Modelica.Blocks.Tables.CombiTable2D tableArray[N](
   each tableOnFile = true,
   fileName = {"file1", "file2", "file3"}, 
   tableName={"tab1", "tab2", "tab3"});
// use the tableArray
for i in 1:N loop
  // note that N and selectTable need to be known at compile 
  // time so that the if and the for loop can be expanded
  if (tableArray[i].tableName == selectTable)
  then 
   connect(tableArray[i].u1, u1);
   connect(tableArray[i].u2, u2);
   connect(tableArray[i].y, y);
  endif;
end for;
于 2015-04-03T10:25:48.443 に答える