Программа двустороннего обмена данных ПРАДИС (PRADIS) — ИОСО (IOSO). Руководство по работе с модулем

Аннотация темы

В этой теме рассматривается практический порядок работы с модулем для двустороннего обмена данными между ПРАДИС (PRADIS) и программой мультивариантного анализа и оптимизации ИОСО (IOSO).

Модуль является неотъемлемой частью программного комплекса ПРАДИС (PRADIS), и его инсталляция осуществляется в ходе общей установки ПРАДИС (PRADIS). О процессе установки программного комплекса ПРАДИС (PRADIS) можно прочитать в следующей статье.

С описанием архитектуры модуля и основными принципами обмена данными можно ознакомиться в этой статье.

Назначение модуля

Модуль предназначен для организации обмена данными между расчетным проектом ПРАДИС (PRADIS) и пакетом многовариантного анализа и оптимизации ИОСО (IOSO).

Основная задача интеграции:

  • передача входных параметров из ИОСО (IOSO) в ПРАДИС (PRADIS);
  • автоматический запуск расчета;
  • получение выходных параметров из ПРАДИС (PRADIS);
  • возврат результатов в ИОСО (IOSO) для параметрического анализа или оптимизации.

Обмен выполняется через специальные входные и выходные файлы:

название_схемы_Pradis.ioinназвание_схемы_Pradis.ioout

Общий алгоритм работы

Основные этапы подготовки проекта

  1. Подготовить проект ПРАДИС (PRADIS);
  2. Добавить объекты входных параметров;
  3. Настроить объект чтения входных данных;
  4. Добавить объекты выходных параметров;
  5. Настроить объект записи выходных данных;
  6. Связать переменные ИОСО (IOSO) с параметрами модели ПРАДИС (PRADIS);
  7. Сохранить схему;
  8. Запустить параметрический анализ проекта ПРАДИС (PRADIS) в ИОСО (IOSO).

ПОДГОТОВИТЬ ПРОЕКТ PRADIS

Перед подключением проекта к ИОСО (IOSO) необходимо убедиться, что расчет в ПРАДИС (PRADIS) полностью работоспособен.


Требования к проекту

1. Проект завершает расчет без ошибок

Схема должна:

  • запускаться;
  • сходиться;
  • корректно завершать расчет;
  • формировать необходимые результаты.

2. Подобрать параметры решателя

Если присутствуют проблемы со сходимостью, необходимо предварительно настроить объект:

Dynamic

В первую очередь рекомендуется проверить:

  • шаг интегрирования;
  • ограничения шага;
  • критерии сходимости;
  • количество итераций;
  • параметры демпфирования.

Только после стабилизации расчета рекомендуется подключать параметрический анализ через ИОСО (IOSO).


ДОБАВИТЬ ОБЪЕКТЫ НА СХЕМУ, ХАРАКТЕРИЗУЮЩИЕ ВХОДНЫЕ ПАРАМЕТРЫ

Для передачи входных переменных из ИОСО (IOSO) в ПРАДИС (PRADIS) используются специальные объекты библиотеки:

multi.Variablemulti.InDataIoso

Объект «multi.Variable»

Назначение объекта

Объект:

multi.Variable

характеризует входной параметр модели.

Через этот объект описывается:

  • имя параметра;
  • начальное значение;
  • диапазоны;
  • размерности;
  • идентификаторы.

Каждый объект соответствует одной переменной, которая будет участвовать в параметрическом анализе или оптимизации.


Основные поля объекта multi.Variable

1. Поле «Имя»

Поле:

Имя

-– это имя объекта на схеме ПРАДИС (PRADIS).

Данное имя используется:

  • в списке Variable list;
  • в объекте Data;
  • при обращении к значению через конструкцию:
Имя.Value0

Например:

d0.Value0

2. Поле «Name»

Поле:

Name

-– это название переменной, которое будет считываться из файла:

название_схемы_Pradis.ioin

Файл создается со стороны ИОСО (IOSO).

Переменные в файле записываются в формате:

id=значение

Например:

d0=0.0600

Для упрощения настройки рекомендуется:

Имя = Name

Например:

Имя: d0
Name: d0

Это удобно потому, что препроцессор ПРАДИС (PRADIS) не позволяет создавать дублирующиеся имена объектов, и имена автоматически становятся уникальными в пределах проекта.


3. Поле «Value0»

Поле:

Value0

задает начальное значение переменной.

Например:

0.08

Если переменная отсутствует во входном файле .ioin, то будет использовано именно это значение.

Это особенно важно в случаях, когда:

  • в ИОСО (IOSO) используется только часть переменных;
  • остальные параметры должны остаться фиксированными.

Объект «multi.InDataIoso»

Назначение объекта

Объект:

multi.InDataIoso

считывает переменные из файла:

название_схемы_Pradis.ioin

Формат файла:

id=значение

Например:

d0=0.0600
l=0.005

Основное поле объекта multi.InDataIoso

Поле «Variable list»

В поле:

Variable list

необходимо через запятую перечислить объекты:

multi.Variable

которые участвуют в параметрическом анализе.

Например:

d0,l

Что делает объект multi.InDataIoso

Во время запуска расчета:

  1. ИОСО (IOSO) формирует файл .ioin;
  2. multi.InDataIoso читает значения;
  3. значения записываются в соответствующие объекты multi.Variable;
  4. переменные становятся доступны в схеме ПРАДИС (PRADIS).


ДОБАВИТЬ НА СХЕМУ ОБЪЕКТ «DATA»

После создания объектов:

multi.Variable

необходимо связать их с параметрами расчетной модели.

Для этого используется объект:

Data

Назначение объекта Data

Объект Data связывает:

  • переменные ИОСО (IOSO);
  • параметры модели ПРАДИС (PRADIS).

Принцип связи переменных

В объекте Data создается конструкция вида:

название_переменной = Имя.Value0

Например:

dd0=d0.Value0
ll=l.Value0

Что это означает

Здесь:

d0

-– объект multi.Variable;

а:

dd0

-– переменная, которая уже используется внутри расчетной схемы ПРАДИС (PRADIS).


Использование переменных в модели

После создания связи переменные можно вставлять в параметры объектов схемы.

Например:

Вместо фиксированного значения:

0.08

можно указать:

dd0

Тогда параметр станет изменяемым со стороны ИОСО (IOSO).



ДОБАВИТЬ ОБЪЕКТЫ НА СХЕМУ, ХАРАКТЕРИЗУЮЩИЕ ВЫХОДНЫЕ ПАРАМЕТРЫ

Для передачи результатов расчета из ПРАДИС (PRADIS) в ИОСО (IOSO) используются объекты:

POSTFunctionPostData

Объект «POSTFunction»

Назначение объекта

Объект:

POSTFunction

используется для связи датчика на схеме ПРАДИС (PRADIS) с переменной, которая будет записываться в файл обмена с ИОСО (IOSO).


Основные поля объекта POSTFunction

1. Поле «Function»

Поле:

Function

определяет математическую операцию, выполняемую над данными датчика.

Для параметрического анализа рекомендуется использовать:

last

Что делает функция last

Ключ:

last

записывает значение датчика с последнего шага расчета.

Например:

Function=last

Другие математические операции

Также могут использоваться:

  • min;
  • max;
  • average;
  • median;
  • fft;
  • user.

Однако выполнять сложную обработку обычно удобнее уже в ИОСО (IOSO), так как там проще:

  • изменять обработку;
  • строить критерии;
  • комбинировать функции.

2. Поле «Parameters»

Поле:

Parameters

содержит название датчика на схеме.

Название указывается в одинарных кавычках:

'dh1'

Для функции last используется один датчик.


3. Поле «VariableName»

Поле:

VariableName

задает имя переменной, записываемой в файл:

название_схемы_Pradis.ioout

Например:

dh

В файле это будет выглядеть как:

dh=9.38412e+00

Объект «PostData»

Назначение объекта

Объект:

PostData

создает файл:

название_схемы_Pradis.ioout

и записывает туда результаты расчета.


Основное поле объекта PostData

Поле «Post-processing functions list»

В поле:

Post-processing functions list

необходимо перечислить объекты POSTFunction через запятую.

Например:

POSTFunction1,POSTFunction2

Что делает объект PostData

Во время завершения расчета объект:

  1. вызывает перечисленные функции постобработки;
  2. получает значения датчиков;
  3. формирует файл .ioout;
  4. записывает результаты в формате:
id=значение

Например:

dh=9.38412e+00
hpsha=5.00798e+00


ВСТАВИТЬ ПЕРЕМЕННЫЕ В ОБЪЕКТЫ СХЕМЫ PRADIS

После настройки объектов:

  • multi.Variable;
  • Data;
  • POSTFunction;
  • PostData;

необходимо заменить фиксированные значения параметров модели на переменные.


Пример

Было:

d=0.08

Стало:

d=dd0

Что это дает

Теперь значение:

dd0

будет автоматически изменяться при запуске параметрического анализа из ИОСО (IOSO).


СОХРАНИТЬ ФАЙЛ СХЕМЫ В PRADIS

После настройки всех объектов необходимо сохранить схему ПРАДИС (PRADIS).

Сохраняется уже параметризованная модель, готовая к запуску из ИОСО (IOSO).


ЗАПУСТИТЬ ПАРАМЕТРИЧЕСКИЙ АНАЛИЗ ПРОЕКТА PRADIS В ПАКЕТЕ IOSO

После подготовки проекта можно запускать расчет через ИОСО (IOSO).


Принцип работы при запуске

Этап 1

ИОСО (IOSO) формирует файл:

название_схемы_Pradis.ioin

Этап 2

ПРАДИС (PRADIS) считывает входные значения через:

multi.InDataIoso

Этап 3

Переменные передаются в расчетную модель через объект:

Data

Этап 4

Выполняется расчет ПРАДИС (PRADIS).


Этап 5

POSTFunction получает значения датчиков.


Этап 6

PostData создает файл:

название_схемы_Pradis.ioout

Этап 7

ИОСО (IOSO) считывает результаты и выполняет:

  • параметрический анализ;
  • оптимизацию;
  • многовариантный расчет.

Проверка корректности настройки

Перед запуском рекомендуется проверить:

  • проект ПРАДИС (PRADIS) считается без ошибок;
  • все multi.Variable перечислены в Variable list;
  • объект Data содержит правильные ссылки вида Имя.Value0;
  • переменные вставлены в параметры модели;
  • датчики указаны в POSTFunction;
  • все POSTFunction перечислены в Post-processing functions list;
  • после расчета создается файл .ioout.

Типичные ошибки

Переменная не добавлена в Variable list

Переменная не будет считываться из .ioin.


Неправильная ссылка в Data

Нужно использовать:

Имя.Value0

Например:

d0.Value0

Переменная не вставлена в модель

Если в объекте осталось число вместо переменной, ИОСО (IOSO) не сможет изменять параметр.


POSTFunction не добавлен в PostData

Результат не попадет в .ioout.


Итог

Для интеграции ПРАДИС (PRADIS) с ИОСО (IOSO) необходимо:

  • описать входные переменные через multi.Variable;
  • подключить чтение данных через multi.InDataIoso;
  • связать параметры модели через Data;
  • настроить выходные параметры через POSTFunction;
  • сформировать выходной файл через PostData.

После этого ИОСО (IOSO) сможет автоматически запускать ПРАДИС (PRADIS), изменять параметры модели и получать результаты расчета для оптимизации и многовариантного анализа.