2015-04-03 5 views
1

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

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

ответ

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; 

 Смежные вопросы

  • Нет связанных вопросов^_^