Лучший способ выбрать из нескольких LUT? (Modelica)

В нашей модели физической системы мы изменяем одно значение потока на коэффициент из справочной таблицы. Сама LUT выбирается из каталога LUT на основе целочисленного индекса. В настоящее время мы загружаем данные таблицы в компоненты CombiTable2D. Как правильно выбрать / определить правильную LUT? Если у нас есть все они как именованные таблицы в одном файле входных данных, есть ли способ выбрать LUT на основе его tableName (параметр CombiTable)? Я играл с циклами For в форматах уравнений или алгоритмов, но пока не нашел синтаксис, который работает.

Заранее спасибо за мысли...

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;
Другие вопросы по тегам