Программное управление параметрами моделирования
Работа с моделями
Получение настроек симуляции
Перед редактированием модели откройте ее с помощью метода open. После редактирования не забудьте сохранить результаты с помощью save.
Для получения настроек симуляции используется публичный метод get_param
engee.get_param(model)
engee.get_param("path")
engee.get_param("path", param)
-
Если указано имя модели, но не указано имя параметра, возвращает настройки симуляции для выбранной модели в виде структуры
ModelParameters
. -
Если же имя параметра указано, возвращает значение параметра.
Все значения настроек симуляции модели могут быть переданы в переменную:
m = "example_model"
Через engee.get_param("path", param)
можно вывести значение конкретного параметра модели:
engee.get_param(m, :start_time) #выведет значение start_time
Изменение настроек симуляции модели
Используется публичный метод set_param!
engee.set_param!(model_name, param...)
engee.set_param!(model_name, param)
engee.set_param!(model, param...)
engee.set_param!(model, param)
-
Обновляет выбранные параметры модели
Model
с именемmodel_name
. -
Возвращает
nothing
. -
Если в
param
передана структура настроек симуляции, настройки из нее будут скопированы. -
Если параметры некорректны, завершается соответствующей ошибкой.
-
Структура настроек симуляции привязывается к конкретной модели — можно изменять настройки модели непосредственно через задание полей структуры.
Вывод
engee.set_param!("model_1", "SolverName"=>"ode45", "StopTime"=>15)
param_1 = engee.get_param("model_1")::ModelParameters
engee.set_param!("model_2", param_1)
Обновление параметров блоков
Для работы с параметрами блоков доступно несколько методов:
Для динамического обновления параметров работающей симуляции удобно использовать update_params:
engee.update_params()
engee.update_params(model::Model)
engee.update_params(model_name::String)
-
Пересчитывает параметры работающей симуляции, читая их текущие значения из рабочего пространства.
-
Позволяет применять изменения параметров к уже запущенной симуляции без остановки и перезапуска.
-
Если симуляция не запущена, функция не выполняет никаких действий.
-
Эквивалентно нажатию кнопки «Обновить модель»
во время выполнения симуляции.
-
Может принимать опционально объект модели или имя модели для целевого обновления.
Вывод
# Обновить параметры текущей симуляции
engee.update_params()
# Обновить параметры конкретной модели
model = engee.gcm()
engee.update_params(model)
# Обновить параметры модели по имени
engee.update_params("my_model")
Также используется публичный метод set_param!
engee.set_param!(block_path, params...)
engee.set_param!(block, params...)
engee.set_param!(block, block_params)
engee.set_param!(block_path, block_params)
-
Обновляет выбранные параметры блока.
-
Если изменяется параметр, который влечет за собой изменения количества портов, или состояния, то количество портов и состояние изменяются согласно переданным значениям параметра.
-
Возвращает
nothing
. -
Если в качестве второго параметра передана структура настроек блока, то ее параметры будут скопированы. Если параметры некорректны, то завершается соответствующей ошибкой.
Изменение настроек симуляции модели с помощью структуры
-
Структура настроек симуляции привязывается к конкретной модели — можно изменять настройки модели непосредственно через задание полей структуры.
Вывод
params = engee.get_param("newmodel_1")
# структура params привязана к конкретной model
params.FixedStep = 0.05
0.05
# аналогично `engee.set_param!(model, "FixedStep" => 0.05)
Все публичные методы программного управления, доступные в Engee, представлены в статье Публичные методы программного управления. |