Simulation Manager позволяет вам контролировать несколько симуляций, последовательно или параллельно, и их прогресс. Можно просмотреть детали каждого запуска, такие как параметры, истекшее время и диагностика. Simulation Manager предоставляет опцию анализа и сравнения результатов записанного сигнала в Данные Моделирования Inspector. С помощью Simulation Manager можно выбрать запуск и применить его значения к модели. Simulation Manager открывается, когда вы запускаете parsim
или sim
команда с ShowSimulationManager
для аргумента задано значение on
. Для получения дополнительной информации см. Simulation Manager
.
Размерности бака оказывают влияние на общую стоимость производства продукта. В данном примере мы наблюдаем поведение TotalCost
для различных значений ширины и высоты. Анализируя поведение параметров, находим комбинацию A
и h
что приводит к самой низкой TotalCost
. Чтобы решить эту задачу проекта, мы запускаем несколько симуляций (параллельно или последовательно) с различными значениями параметров A
и h
.
В этом примере показано, как можно использовать Simulation Manager, чтобы анализировать симуляции и решить задачу проекта с помощью модели постоянно перемешиваемого бака. Реакторы являются специализированными баками, которые используются для смешивания различных химических веществ или соединений для создания продукта. Важными переменными, используемыми в этой модели, являются:
Переменные A
, который представляет площадь поперечного сечения бака (ширина).
Переменные h
, который представляет высоту.
Переменные TotalCost
, что представляет собой стоимость, в долларах, производства танкента продукта.
Simulation Manager позволяет вам анализировать симуляции во время их выполнения. Когда симуляции выполняются, можно визуализировать данные моделирования модели, построив график выходов симуляции относительно входных параметров. Визуализация тренда симуляций во время их выполнения позволяет вам узнать о пространстве проекта симуляций и оценить, выполняются ли симуляции по мере необходимости. Можно остановить симуляции, если прогресс не так желателен, что экономит время.
В этом примере используйте набор параметров сдвига, предоставленных модели через Simulink.SimulationInput
Объекты и затем используйте parsim
команда, чтобы запустить параллельные симуляции.
Создайте PostSimFcn
функцию следующим образом в скрипте MATLAB, чтобы вызвать позже в параметре sweep. Назовите файл calculateCost.m
. The PostSimFcn
функция вычисляет TotalCost
из переменных A
и h
, и его вычисление может варьироваться в зависимости от приложения.
function costOutput = calculateCost(out) costOutput.yout = out.yout; coolantOutput = out.yout.get('Coolant').Values.Data; costCoolant = abs(mean(coolantOutput - 294))/30; costOutput.costFromCoolant = costCoolant; concentrationOutput = out.yout.get('Residual Concentration').Values.Data; costConcentration = 10*std(concentrationOutput - 2); costOutput.costFromConcentration = costConcentration; costOutput.TotalCost = costCoolant + costConcentration; end
Откройте модель.
openExample('simulink/OpenTheModelToUseWithSimulationManagerExample'); open_system('simManagerCSTR');
Создайте выборку значений для сдвига параметра.
rangeA = [0.1, 5];
rangeH = [0.1, 5];
rng default;
numSamples = 60;
allAValues = rangeA(1) + (rangeA(2) - rangeA(1)).*rand(numSamples, 1);
allhValues = rangeH(1) + (rangeH(2) - rangeH(1)).*rand(numSamples, 1);
Создайте массив Simulink.SimulationInput
объекты. В данном примере TotalCost
вычисляется и возвращается с помощью PostSimFcn
.
in(1:numSamples) = Simulink.SimulationInput('simManagerCSTR');
in = in.setPostSimFcn(@(out)calculateCost(out));
Запустите параллельные симуляции и откройте Simulation Manager.
for k = 1:numSamples in(k) = in(k).setVariable('A', allAValues(k), 'Workspace', 'simManagerCSTR'); in(k) = in(k).setVariable('h', allhValues(k), 'Workspace', 'simManagerCSTR'); end out = parsim(in, 'ShowSimulationManager', 'on');
Вид по умолчанию в Simulation Manager показывает график поля точек с двумя параметрами на его осях X и Y. В этом случае переменная A
находится на оси X и переменной h
находится на оси Y. Когда выполняются симуляции, вы можете увидеть, как на графике появляются точки, закодированные в соответствии со статусом симуляции. Завершенные симуляции отмечены зеленым цветом, текущие симуляции - синим цветом, а симуляции с ошибками - красным цветом.
Панель Plot Properties справа позволяет редактировать и конфигурировать данные, которые отображаются на графике. При выборе сетки для осей X и Y появляется график с линиями сетки.
Если конкретный параметр является timeseries, Simulation Manager строит графики только последнего значения временных рядов.
С помощью Simulation Manager можно визуализировать вышеуказанные данные на графике surf. Щелкните на surf графике в Results разделе панели инструментов.
Раздел Results Simulation Manager позволяет добавить несколько графиков и сконфигурировать их. Щелкните surface plot в Results разделе панели инструментов Simulation Manager. Используя свойства plot, измените параметры, которые будут отображаться на графиках. Можно изменить такие свойства, как метки графика, метки осей, и можно добавить палитру для обозначения третьего параметра. Можно также изменить пределы значений палитры.
Со вторым графиком и первым графиком вместе можно определить значение переменных A
и h
, что дает лучшее TotalCost
.
Для оси Z графика surf измените Data на TotalCost
. Наблюдая график surf, можно найти самую низкую точку TotalCost
. Щелчком по самой низкой точке показаны значения для оси X и Оси Y, которые h
и A
, соответственно.
Сохраните информацию о сеансе, которая включает данные моделирования все строения графика. Чтобы сохранить сеанс, нажмите кнопку Save на панели инструментов. Сеанс сохраняет как .mldatx
файл. Чтобы снова открыть сохраненный сеанс, перейдите в место, где сохранен файл, и дважды кликните .mldatx
файл.
Simulation Manager позволяет вам повторно использовать строение графика, когда вы хотите запустить аналогичные симуляции с различными множествами значений. Чтобы повторно использовать строение графика, нажмите кнопку Reuse Window на панели инструментов. Выбор Reuse Window сохраняет строения графика, такие как метки, ориентация оси, какие параметры отображать на той оси, которую можно повторно использовать при следующей симуляции той же модели. Когда вы используете эту функциональность во время выполнения симуляций для разных моделей, ошибки симуляции выходят из-за ограничения.
applyToModel
| parsim
| setBlockParameter
| setExternalInput
| setInitialState
| setModelParameter
| setPostSimFcn
| setPreSimFcn
| setVariable
| Simulink.SimulationInput
| validate