sim

Симулируйте модель Simulink

Описание

Simulink® модель представляет динамическую систему. Симуляция модели позволяет вам понять поведение системы как функцию от моделируемого времени. The sim команда использует заданную модель и применяет аргументы к модели. В конце симуляции sim команда возвращает все примененные аргументы.

simOut = sim(model) моделирует указанную модель с помощью существующих параметров конфигурации модели и возвращает результат как Simulink.SimulationOutput объект (формат с одним выходом).

Чтобы вернуть результаты симуляции с использованием обратно совместимого формата (временного вектора), смотрите Синтаксис обратной совместимости.

simOut = sim(model,Name,Value) моделирует указанную модель с помощью пар "имя-значение" параметра.

simOut = sim(simIn) моделирует модель с помощью входов, заданной в Simulink.SimulationInput simIn объекта . The sim команда может использоваться с массивом SimulationInput объекты для выполнения нескольких симуляций в последовательности. Если simIn является массивом Simulink.SimulationInput объекты, выход возвращается как массив Simulink.SimulationOutput объекты.

пример

simOut = sim(model,ParameterStruct) моделирует указанную модель с помощью значений параметров, заданных в структуре ParameterStruct.

пример

simOut = sim(model,ConfigSet) моделирует указанную модель с помощью настроек строений, заданных в набор конфигурации модели ConfigSet.

Примеры

Установите параметры блоков с помощью массива Simulink объектов .SimulationInput

Этот пример изменяет параметры блоков модели через SimulationInput объект.

Откройте модель.

openExample('simulink/OpenTheModelExample');
open_system('ex_sldemo_househeat');
load_system('ex_sldemo_househeat')

Создайте SimulationInput объект для этой модели.

mdl = 'sldemo_househeat';
in = Simulink.SimulationInput(mdl);

Измените параметры блоков.

in = in.setBlockParameter('sldemo_househeat/Set Point','Value','300');

Симулируйте модель.

out = sim(in)

Симулируйте модель с настройками параметра по умолчанию

Симулируйте модель, vdp как и в текущем состоянии, не загружен он или загружен и имеет некоторые несохраненные изменения.

На панели Импорт/Экспорт данных диалогового окна Параметры конфигурации (Configuration Parameters), Single simulation output выбран по умолчанию, так что sim возвращает результаты симуляции с использованием формата single-output (объект симуляции). Этот выбор переопределяет Dataset формат, используемый для логгирования сигналов.

simOut = sim('vdp')

Моделируйте модель с sim Опции командной строки в структуре

Симулируйте модель, vdp, и сохранить состояния в xoutNew и выход в youtNew.

Задайте параметры с помощью структуры пар "имя-значение" paramNameValStruct для sim команда:

paramNameValStruct.SaveState      = 'on';
paramNameValStruct.StateSaveName  = 'xoutNew';
paramNameValStruct.SaveOutput     = 'on';
paramNameValStruct.OutputSaveName = 'youtNew';
simOut = sim('vdp',paramNameValStruct)
simOut = 
  Simulink.SimulationOutput:

                xoutNew: [64x2 double] 
                youtNew: [64x2 double] 

     SimulationMetadata: [1x1 Simulink.SimulationMetadata] 
           ErrorMessage: [0x0 char] 

Моделируйте модель с sim Опции командной строки в конфигурации модели

Симулируйте модель, vdp, для абсолютной погрешности 1e-5 и сохраните состояния в xoutNew и выход в youtNew.

Задайте параметры как пары "имя-значение" в конфигурации модели mdl_cs для sim команда:

mdl = 'vdp';
load_system(mdl)
cs = getActiveConfigSet(mdl);
mdl_cs = cs.copy;
set_param(mdl_cs,'AbsTol','1e-5',...
         'SaveState','on','StateSaveName','xoutNew',...
         'SaveOutput','on','OutputSaveName','youtNew')
simOut = sim(mdl, mdl_cs)
simOut = 
  Simulink.SimulationOutput:

                xoutNew: [65x2 double] 
                youtNew: [65x2 double] 

     SimulationMetadata: [1x1 Simulink.SimulationMetadata] 
           ErrorMessage: [0x0 char] 

Входные параметры

свернуть все

Модель для симуляции, заданная как вектор символов.

Пример: simOut = sim('vdp')

Структура, содержащая настройки параметров для симуляции, заданной как структура. Поля в структуре являются именами параметров конфигурации, а соответствующие значения - значениями параметров.

Набор параметров конфигурации для модели, заданный как Simulink.Configset объект. Для получения дополнительной информации см. Simulink.ConfigSet.

Объект входа симуляции для модели, заданный как Simulink.SimulationInput объект, созданный путем определения имени модели. Для получения дополнительной информации смотрите Simulink.SimulationInput.

Используйте SimulationInput объект для задания параметров блоков, параметров модели, переменных и внешних входных параметров для симуляции.

Пример: simIn = Simulink.SimulationInput('vdp')

Аргументы в виде пар имя-значение

Задайте необязательные разделенные разделенными запятой парами Name,Value аргументы. Name - имя аргумента и Value - соответствующее значение. Name должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN.

Пример: 'Solver','ode15s','TimeOut','30' задает, что модель моделируется с помощью решателя ode15s с тайм-аутом, который происходит когда SIimulationTime достигает 30.

Можно передать любой параметр модели и его значение в sim команда.

В сложение, sim команда принимает следующие параметры, которые недоступны на Configset и set_param

Опция сохранения ошибок в объекте SimulationMetadata, заданный как 'off' или 'on'. По умолчанию, если ошибка возникает во время симуляции, sim команда останавливается и сообщает об ошибке в MATLAB® Командное окно. Если вы задаете 'CaptureErrors','on', sim команда сохраняет все ошибки в ErrorDiagnostic структура в SimulationMetadata объект. Сообщение об ошибке сохранено в ErrorMessage свойство SimulationOutput объект.

При выполнении нескольких симуляций в цикле эта опция гарантирует, что одна ошибка симуляции не остановит продолжение скрипта или функции.

Если вы задаете массив входа объектов, sim команды выполняются с CaptureErrors включен. Если происходит ошибка, сообщения об ошибке включаются в Simulink.SimulationMetadata объект для симуляции, а также данные моделирования до точки отказа.

Эта опция недоступна для симуляции в режимах SIL и PIL.

Пример: 'CaptureErrors','on'

Опция режима отладки для симуляции, заданный как 'off' или 'on'. Установка значения 'Debug' аргумент в 'on'запускает симуляцию в режиме отладки (для получения дополнительной информации см. Debugger Graphical User Interface). Значением этой опции может быть массив ячеек из команд, которые будут отправлены отладчику после его запуска.

Пример: 'Debug','on'

Эта опция доступна только в режиме Rapid Accelerator. Предварительная симуляция с актуальной проверкой, заданная как 'on' или 'off'. Если вы задаете это значение 'off'Simulink не выполняет актуальную проверку. Он пропускает обратные коллбэки запуска/остановки в блоках. Если вы вызываете sim команда от parfor, установите это значение равным 'off'.

Когда вы устанавливаете эту опцию как 'off', изменения, которые вы вносите в параметры блоков значений в модели (для примера, при помощи диалоговых окон блока, при помощи set_param функция, или путем изменения значений переменного MATLAB) не влияют на симуляцию. Использование RapidAcceleratorParameterSets передавать новые значения параметров непосредственно в симуляцию.

Пример: 'RapidAcceleratorUpToDateCheck','off'

Максимальное время выполнения симуляции, заданное как положительная скалярная величина. Задайте время, в секундах, чтобы позволить симуляции выполняться. Если вы запускаете модель в течение периода, больше значения TimeOutпрограммное обеспечение выдает предупреждение и останавливает симуляцию. TimeOut относится к времени, затраченному на симуляцию.

Пример: 'TimeOut',60

Средства трассировки симуляции, заданные как:

  • 'minstep' задает, что симуляция останавливается, когда решение изменяется настолько резко, что решатели переменного шага не могут сделать шаг и удовлетворить допуски ошибок.

  • 'siminfo' предоставляет краткие сводные данные параметров симуляции, действующих в начале симуляции.

Пример: 'Trace','minstep','Trace','siminfo'

Выходные аргументы

свернуть все

Объект симуляции, содержащий логгированные результаты симуляции, возвращенный как Simulink.SimulationOutput объект, который содержит все записанные в журнал результаты симуляции.

Все выходы симуляции (записанное время, состояния и сигналы) возвращаются за один Simulink.SimulationOutput объект. Вы выбираете данные для регистрации, такие как время модели, состояния и вывод, который регистрируется с помощью панели Data Import/Export диалогового окна Model Configuration Parameters. Можно регистрировать сигналы с помощью блоков, таких как To Workspace и Scope блоки. Для получения дополнительной информации о логгировании сигналов смотрите Signal Logging.

Подробнее о

свернуть все

Синтаксис обратной совместимости

Начиная с R2009b, sim команда была улучшена для обеспечения большей совместимости с параллельными вычислениями. Улучшенный single-output format сохраняет все результаты симуляции к одному объекту, упрощая управление переменными выходами.

Для совместимости с R2009a или более ранними релизами используйте следующий синтаксис:

[T,X,Y] = sim('model',Timespan, Options, UT)
[T,X,Y1,...,Yn] = sim('model',Timespan, Options, UT)

Если вы задаете только model аргумент, Simulink автоматически сохраняет время, состояние и выход в указанные выходные аргументы.

Если вы не задаете никаких выходных аргументов, Simulink определяет, какие данные нужно регистрировать, на основе настроек для панели Configuration Parameters > Data Import/Export. Simulink хранит выходы симуляции либо в текущей рабочей области, либо в ans переменных на основе настройки для Save simulation output as a single object параметра.

Назад-совместимые синтаксические входные и выходные аргументы
АргументОписание
T

Возвращен временной вектор.

X

Состояние возвращается в матричном или структурном формате. Матрица состояний содержит непрерывные состояния, за которыми следуют дискретные состояния.

Y

Выходы возвращаются в матричном или структурном формате. Для моделей блок-схем эта переменная содержит все блоки корневого уровня.

Y1..., Yn

Выходные порты, которые могут быть заданы только для моделей схем. Здесь, n должно быть количество блоков корневого уровня. Каждый выходной порт будет возвращен в Y1..., Yn переменные.

'model'

Имя моделируемой модели.

Timespan

Временной интервал может быть TFinal, [TStart TFinal], или [TStart OutputTimes TFinal]. Выход время точек возврата T, но в целом T включает дополнительные временные точки.

Options

Необязательные параметры симуляции, созданные в структуре simset команда с использованием пар "имя-значение".

UT

Дополнительные внешние входы. Для поддерживаемых выражений смотрите Загрузку данных на входные порты корневого уровня.

Simulink требует только model аргумент. Simulink берет все значения по умолчанию из блока, включая неопределенные опции. Если вы задаете какие-либо необязательные аргументы, ваши заданные настройки переопределяют настройки в блоке.

Определение входного параметра sim как пустая матрица, [ ], заставляет Simulink использовать значение по умолчанию для этого аргумента.

Совет

  • Параметры, заданные с помощью sim команда переопределяет значения, заданные в диалоговом окне Model Configuration Parameters. Программа восстанавливает исходные значения строения в конце симуляции.

  • В случае модели с model reference блоком спецификации параметров применяются к верхней модели.

  • При симуляции модели с бесконечным временем остановки, чтобы остановить симуляцию, необходимо нажать Ctrl+C. Ctrl+C нарушает симуляцию, и результаты симуляции не сохраняются в рабочем пространстве MATLAB.

  • Чтобы задать временной интервал для симуляции, необходимо задать StartTime и StopTime параметры.

  • Чтобы записать время модели, состояния или выходы, используйте панель Data Import/Export диалогового окна Параметры конфигурации модели (Model Configuration Parameters).

  • Для регистрации сигналов используйте либо блок To Workspace, такой как блок To Workspace или блок Scope, либо функцию Логгирование. Для получения дополнительной информации смотрите Экспорт данных сигнала с помощью логгирования сигналов.

  • Чтобы получить список параметров симуляции для модели vdp, в Командном Окне MATLAB введите:

    configSet = getActiveConfigSet('vdp')
    configSetNames = get_param(configSet, 'ObjectParameters')  

    Эта команда приводит несколько параметров объекта, включая такие параметры симуляции, как 'StopTime', 'SaveTime', 'SaveState', 'SaveOutput', и 'SignalLogging'.

Представлено до R2006a