\sim

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

Синтаксис

simOut = sim(model)
simOut = sim(model,Name,Value)
simOut = sim(model,ParameterStruct)
simOut = sim(model,ConfigSet)
simOut = sim(model,'ReturnWorkspaceOutputs','on')
simOut = sim(simIn)

Описание

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

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

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

пример

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

пример

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

пример

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

пример

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

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

Примеры

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

Моделируйте модель, vdp, в Быстром Режиме Accelerator для абсолютного допуска 1e-5 и сохраните состояния в xoutNew и вывод в youtNew.

Задайте параметры как пары "имя-значение" к команде sim:

rtp = Simulink.BlockDiagram.buildRapidAcceleratorTarget('vdp');
### Building the rapid accelerator target for model: vdp
### Successfully built the rapid accelerator target for model: vdp
simOut = sim('vdp','SimulationMode','rapid','AbsTol','1e-5',...
            'StopTime', '30', ... 
            'ZeroCross','on', ...
            'SaveTime','on','TimeSaveName','tout', ...
            'SaveState','on','StateSaveName','xoutNew',...
            'SaveOutput','on','OutputSaveName','youtNew',...
            'SignalLogging','on','SignalLoggingName','logsout')
simOut = 
  Simulink.SimulationOutput:

                   tout: [86x1 double] 
                xoutNew: [86x2 double] 
                youtNew: [86x2 double] 

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

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

Моделируйте модель, vdp, в Быстром Режиме Accelerator для абсолютного допуска 1e-5 и сохраните состояния в xoutNew и вывод в youtNew.

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

paramNameValStruct.SimulationMode = 'rapid';
paramNameValStruct.AbsTol         = '1e-5';
paramNameValStruct.SaveState      = 'on';
paramNameValStruct.StateSaveName  = 'xoutNew';
paramNameValStruct.SaveOutput     = 'on';
paramNameValStruct.OutputSaveName = 'youtNew';
simOut = sim('vdp',paramNameValStruct)
### Building the rapid accelerator target for model: vdp
### Successfully built the rapid accelerator target for model: vdp
simOut = 
  Simulink.SimulationOutput:

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

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

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

Моделируйте модель, vdp, в Быстром Режиме Accelerator для абсолютного допуска 1e-5 и сохраните состояния в xoutNew и вывод в youtNew.

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

mdl = 'vdp';
load_system(mdl)
simMode = get_param(mdl, 'SimulationMode');
set_param(mdl, 'SimulationMode', 'rapid')
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);
### Building the rapid accelerator target for model: vdp
### Successfully built the rapid accelerator target for model: vdp
set_param(mdl, 'SimulationMode', simMode)

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

Моделируйте модель vdp с помощью образцовых параметров конфигурации по умолчанию.

simOut = sim('vdp','ReturnWorkspaceOutputs','on')

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

свернуть все

Имя модели, чтобы моделировать, заданный как вектор символов.

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

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

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

Набор параметров конфигурации для модели.

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

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

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

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

Пример: simIn = simIn.setBlockParameter('CSTR/Feed Temperature', 'Value', '300'); simIn = simIn.setModelParameter('StartTime', '1'); simIn = simIn.setVariable('FeedTemp0', 320)

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

Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми. Имя (Name) — это имя аргумента, а значение (Value) — соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Пример: 'Solver','ode15s','TimeOut','30' указывает, что модель моделируется с помощью ode15s решателя время симуляции имеющее 30 секунд.

Команда sim принимает все параметры симуляции как аргументы пары "имя-значение". Смотрите Параметры модели для списка всех параметров симуляции.

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

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

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

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

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

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

(Только быстрый Режим Accelerator), Добавляет этот суффиксный вектор символов к имени файла модели (перед расширением файла) если:

  • Модель содержит блок To File.

  • Вы вызываете команду sim от parfor.

Пример: 'ConcurrencyResolvingToFileSuffix','model'

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

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

Используйте, когда вы включите пару "имя-значение" LoggingToFile для журналирования к персистентному устройству хранения данных. Задайте целевой MAT-файл для регистрации данных.

Совет

Не используйте имя файла от одной локали в различной локали.

Пример: 'LoggingFileName','out.mat'

Сохраните записанные данные, который использует формат Dataset для персистентного устройства хранения данных (MAT-файл).

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

Совет

Чтобы постараться не исчерпывать память, когда доступ хранил данные, можно использовать ссылку, чтобы получить доступ к объекту, хранившему в MAT-файле. Используйте объект Simulink.SimulationData.DatasetRef получить доступ к хранимым данным ссылкой. Используя этот объект загружает журналирование сигнала и данные о состояниях в рабочее пространство модели инкрементно (сигнал сигналом). Доступ к данным для других видов журналирования загрузок все данные целиком.

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

(Только быстрый Режим Accelerator), Возвращает структуру, которая содержит параметры периода выполнения для выполнения Быстрых симуляций Акселератора в parfor.

Пример: 'RapidAcceleratorParameterSets',parameterSet(idx)

(Только быстрый Режим Accelerator), Позволяет/запрещает актуальную проверку. Если вы устанавливаете это значение к 'off', Simulink® не выполняет актуальную проверку. Это пропускает запустить/остановить коллбэки в блоках. Если вы вызываете команду sim от parfor, устанавливаете это значение к 'off'.

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

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

Задает рабочую область, в которой можно выполнить выражения MATLAB, заданные в модели. Установка SrcWorkspace не имеет никакого эффекта на модель, на которую ссылаются, которая выполняется в Режиме Accelerator. Установка SrcWorkspace к current в цикле parfor вызывает нарушение прозрачности.

Пример: 'SrcWorkspace','current'

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

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

Включает средства трассировки симуляции (задайте один или несколько как список, разделенный запятыми):

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

  • 'siminfo' предоставляет краткое изложение параметров симуляции в действительности в начале симуляции.

По умолчанию Simulink выпускает предупреждающее сообщение и продолжает симуляцию.

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

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

свернуть все

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

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

Примечание

 Вывод  команды sim всегда возвращается к SimOut, одна симуляция выходной объект. Симуляция выходной объект в свою очередь, возвращен в рабочую область.

Больше о

свернуть все

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

Начиная с 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 должен быть количеством блоков корневого уровня. Каждый выходной порт будет возвращен в Y 1..., переменные Yn.

'model'

Имя модели, чтобы моделировать.

Timespan

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

Options

Дополнительные параметры симуляции создаются в структуре командой simset с помощью пар "имя-значение".

UT

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

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

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

Обратно совместимые примеры синтаксиса

Эта команда моделирует Уравнения Ван дер Поля, с помощью модели vdp. Команда использует все параметры по умолчанию.

[t,x,y] = sim('vdp')

Эта команда моделирует Уравнения Ван дер Поля, с помощью значений параметров, сопоставленных с моделью vdp /

[t,x,y] = sim('vdp', [0 10]);

Советы

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

  • В случае модели с блоком модели - ссылки спецификации параметра применяются к топ-модели.

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

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

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

  • Чтобы регистрировать сигналы, или используйте блок, такой как блок To Workspace или блок Scope, или используйте менеджера по Сигналу и Осциллографу, чтобы регистрировать результаты непосредственно.

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

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

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

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