Информация о состоянии

Информация о состоянии симуляции

Некоторые блоки поддерживают информацию о состоянии, которую они используют во время симуляции. Для примера информация о состоянии для блока Unit Delay является выходом значения сигналов с предыдущего шага моделирования. Блок использует информацию о состоянии, чтобы вычислить выходное значение для текущего шага симуляции.

Некоторые примеры использования сохраненной информации о состоянии включают:

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

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

  • Изучение изменений в информации о состоянии во время симуляции.

Типы информации о состоянии

Можно сохранить эти виды информации о состоянии.

Тип информации о состоянииОписаниеПараметры конфигурации в области импорта/экспорта данных
Состояния для каждого шага симуляцииИнформация о состоянии блоков (называемых данными о частичном состоянии) на каждом временном шаге симуляцииStates
Окончательное состояниеИнформация о состоянии блоков в конце симуляцииFinal states
Окончательное состояние с ModelOperatingPointОкончательное состояние с ModelOperatingPoint объект, который захватывает дополнительную внутреннюю информацию, которую Simulink® использует во время симуляцииFinal States и Save final operating point

ModelOperatingPoint предоставляет более полную информацию о конечном состоянии симуляции, чем сама информация о конечных состояниях. Однако, если требования и ограничения использования ModelOperatingPoint не отвечают вашим требованиям к моделированию, сохраняют информацию о конечном состоянии без ModelOperatingPoint.

Сравнение рабочей точки и конечного состояния логгирования

ОсобенностьОкончательное состояниеОкончательное состояние с рабочей точкой

Режим симуляции

Поддерживает все режимы симуляции

Нормальный или Accelerator.

Модель-ссылка

Информация о состоянии для ссылочных моделей

См. «Модели-ссылки».

Возобновлённая симуляция

Не поддерживается

Поддерживается.

Сохраненные данные о состоянии

Только записанные состояния - непрерывное и дискретное состояния блоков - которые являются подмножеством полного состояния симуляции модели

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

Полная информация о состоянии.

Не сохраняет пользовательские данные, параметры во время выполнения или журналы модели.

Блочный вывод

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

Simulink пытается сохранить выход блока как часть ModelOperatingPoint объект, даже если S-функции объявляют, что нет ModelOperatingPoint объекты существуют в блоке. Если выход блока имеет пользовательский тип, Simulink отображает ошибку.

Удобочитаемость

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

Чтобы изучить упрощенное представление данных, рассмотрите использование loggedStates свойство Simulink.op.ModelOperatingPoint класс.

Восстановление данных о состоянии

Может сохранять и восстанавливать в различных режимах симуляции. Если информации о записанном состоянии недостаточно, можно получить различные результаты в режиме normal mode и режиме Accelerator.

Не удается сохранить в режиме normal mode и восстановить в режиме Accelerator, или, наоборот, сохранить в режиме Accelerator и восстановить в режиме normal mode.

Восстановление нескольких состояний

В модели можно инициализировать только одно из нескольких зарегистрированных состояний.

Вы восстанавливаете все состояния в модели. Вы не можете загрузить подмножество состояний.

Структурные изменения

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

Вы не можете вносить структурные изменения в модель между при сохранении ModelOperatingPoint объект и когда вы восстанавливаете симуляцию используя ModelOperatingPoint объект. Для примера вы не можете добавить или удалить блок после сохранения ModelOperatingPoint объект без повторения симуляции и сохранения новой ModelOperatingPoint объект.

Вход model функция

Чтобы ввести в функцию модели, используйте Array формат с некомплексными данными типа double.

Вы не можете ввести ModelOperatingPoint объект, чтобы смоделировать функцию.

Генерация кода

Поддержанный

Не поддерживается.

Для обоих ModelOperatingPoint и окончательное логгирование состояния, Simulink сохраняет информацию о состоянии в одной из следующих точек:

  • На заключительном временном шаге

  • Во время выполнения, в которое симуляция приостановилась или остановилась

Для получения дополнительной информации о ModelOperatingPoint, см. Ограничения сохранения и восстановления рабочей точки.

Формат информации о состоянии, сохраненной без рабочей точки

Если вы не используете ModelOperatingPoint для сохранения информации о состоянии используйте Configuration Parameters > Data Import/Export > Format, чтобы задать формат данных для информации о сохраненном состоянии.

Можно задать Format значение:

  • Dataset (по умолчанию)

  • Array

  • Structure

  • Structure with time

Настройкой по умолчанию для параметра Format является Dataset. The Dataset формат:

  • Сохраняет записанные данные в timeseries или timetable объекты. Можно работать с данными, сохраненными в timeseries или timetable объект в MATLAB® без лицензии Simulink.

  • Поддерживает регистрацию нескольких значений данных для заданного временного шага, который может потребоваться для логгирования данных в For Iterator Subsystem, While Iterator Subsystem и Stateflow®.

  • Не поддерживает быструю симуляцию ускорителя, регистрацию информации о состояниях внутри подсистемы вызова функций или генерацию кода.

Логгирование сигналов всегда использует Dataset формат. Логгирование состояний данных с использованием Dataset формат позволяет вам постпроцессировать данные моделирования без записи пользовательского кода для различных типов записанных данных. Когда вы логгируете состояния используя Dataset формат, данные также автоматически потокует в Данные моделирования Inspector во время моделирования.

The Array опция для параметра Format существует для обратной совместимости с моделями, разработанными в более ранних релизах, когда Simulink поддерживал только Array формат для логгирования информации о состоянии. Порядок сигналов внутри массива зависит от порядка сортировки блоков, который может меняться от одной симуляции к другой, когда вы изменяете любое из следующего:

  • Модель (даже не меняя сигнал)

  • Режим симуляции

  • Режим генерации кода

Изменение порядка сигнала может представлять проблемы при последующей обработке записанных данных.

The Structure и Structure with time форматы полезны при использовании информации о состоянии для инициализации модели для симуляции, позволяя:

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

  • Присвойте начальному значению каждого состояния различные типы данных.

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

Информация о состоянии для ссылочных моделей

Когда Simulink сохраняет состояния в структуре или формате со временем, он добавляет inReferencedModel подполе к signals поле структуры. Значение этого дополнительного подполя true (1), если signals в поле записывается окончательное состояние блока, который находится в ссылочной модели. Для примера:

xout.signals(1)
ans = 

               values: [101x1 double]
           dimensions: 1
                label: 'DSTATE'
            blockName: [1x66 char]
    inReferencedModel: 1

Если поле сигналов записывает состояние модели-ссылки, его blockName подполе содержит составной путь пути верхней модели и ссылочный путь модели. Путь к верхней модели является путем от корня модели до блока Model, который ссылается на модель-ссылку. Путь модели-ссылки является путем от корня модели-ссылки к блоку, состояние которого signals полевые записи. Составной путь использует | символ, чтобы разделить верхний и ссылочный пути модели. Для примера:

>> xout.signals(1).blockName
ans =

sldemo_mdlref_basic/CounterA|sldemo_mdlref_counter/Previous Output

См. также

Классы

Похожие темы