Некоторые блоки поддерживают информацию о состоянии, которую они используют во время симуляции. Для примера информация о состоянии для блока Unit Delay является выходом значения сигналов с предыдущего шага моделирования. Блок использует информацию о состоянии, чтобы вычислить выходное значение для текущего шага симуляции.
Некоторые примеры использования сохраненной информации о состоянии включают:
Остановка симуляции для модели и использование сохраненной информации о состоянии в качестве входных данных при перезапуске симуляции.
Симуляция одной модели и использование сохраненной информации о состоянии в качестве входных данных для симуляции другой модели, которая основывается на результатах первой модели.
Изучение изменений в информации о состоянии во время симуляции.
Можно сохранить эти виды информации о состоянии.
Тип информации о состоянии | Описание | Параметры конфигурации в области импорта/экспорта данных |
---|---|---|
Состояния для каждого шага симуляции | Информация о состоянии блоков (называемых данными о частичном состоянии) на каждом временном шаге симуляции | States |
Окончательное состояние | Информация о состоянии блоков в конце симуляции | Final states |
Окончательное состояние с ModelOperatingPoint | Окончательное состояние с ModelOperatingPoint объект, который захватывает дополнительную внутреннюю информацию, которую Simulink® использует во время симуляции | Final States и Save final operating point |
ModelOperatingPoint
предоставляет более полную информацию о конечном состоянии симуляции, чем сама информация о конечных состояниях. Однако, если требования и ограничения использования ModelOperatingPoint
не отвечают вашим требованиям к моделированию, сохраняют информацию о конечном состоянии без ModelOperatingPoint
.
Особенность | Окончательное состояние | Окончательное состояние с рабочей точкой |
---|---|---|
Режим симуляции | Поддерживает все режимы симуляции | Нормальный или Accelerator. |
Модель-ссылка | См. «Модели-ссылки». | |
Возобновлённая симуляция | Не поддерживается | Поддерживается. |
Сохраненные данные о состоянии | Только записанные состояния - непрерывное и дискретное состояния блоков - которые являются подмножеством полного состояния симуляции модели Пользовательские данные, параметры времени выполнения или журналы модели не сохранены | Полная информация о состоянии. Не сохраняет пользовательские данные, параметры во время выполнения или журналы модели. |
Блочный вывод | Пользовательские данные, параметры времени выполнения или журналы модели не сохранены | Simulink пытается сохранить выход блока как часть |
Удобочитаемость | Используйте структуру с форматом времени для наилучшей читаемости | Чтобы изучить упрощенное представление данных, рассмотрите использование |
Восстановление данных о состоянии | Может сохранять и восстанавливать в различных режимах симуляции. Если информации о записанном состоянии недостаточно, можно получить различные результаты в режиме normal mode и режиме Accelerator. | Не удается сохранить в режиме normal mode и восстановить в режиме Accelerator, или, наоборот, сохранить в режиме Accelerator и восстановить в режиме normal mode. |
Восстановление нескольких состояний | В модели можно инициализировать только одно из нескольких зарегистрированных состояний. | Вы восстанавливаете все состояния в модели. Вы не можете загрузить подмножество состояний. |
Структурные изменения | Можно вносить структурные изменения между моделированием и восстановлением симуляции. | Вы не можете вносить структурные изменения в модель между при сохранении |
Вход | Чтобы ввести в функцию модели, используйте | Вы не можете ввести |
Генерация кода | Поддержанный | Не поддерживается. |
Для обоих 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