Можно сохранить информацию состояния для регистрируемых состояний для каждого шага симуляции во время симуляции. Тот уровень информации состояния может быть полезным для отладки.
Установите флажок Configuration Parameters> Data Import/Export> States.
В окне редактирования States можно задать различную переменную для получения информации состояния, если вы не хотите использовать xout
по умолчанию переменная.
Также в панели Data Import/Export, установленной параметр Format на Dataset
Структура
, или Structure with time
, если вы не используете формат массивов для совместимости с устаревшей моделью.
Dataset
формат не поддерживает:
Логгирование информации о состояниях в подсистеме вызова функций
Быстрый режим симуляции акселератора
Генерация кода
Нажмите Apply.
Симулируйте модель.
Сохранить только регистрируемые состояния (непрерывные и дискретные состояния блоков):
Установите флажок Configuration Parameters> Data Import/Export> Final states.
В окне редактирования Final states можно задать различную переменную для получения информации состояния, если вы не хотите использовать xFinal
по умолчанию переменная.
Очистите параметр Save final operating point.
Установите параметр Format на Dataset
Структура
, или Structure with time
.
Нажмите Apply.
Симулируйте модель.
Если вы включаете Configuration Parameters> Data Import/Export> Final states или параметры States, Simulink® сохраняет информация состояния в формате, который вы задаете параметром Format. Переменной по умолчанию для получения информации о Final state является xFinal
, и переменной для получения информации состояния для получения информации о состояниях является xout
.
Если модель не имеет никаких сохраненных состояний, то xFinal
и xout
пустые переменные. Чтобы определить, имеет ли модель сохраненные состояния, используйте isempty(xout)
команда.
Например, предположите, что вы сохранили информацию конечного состояния в Dataset
формат и использование xFinal
по умолчанию переменная для сохраненной информации состояния.
xFinal
xFinal = Simulink.SimulationData.Dataset 'xFinal' with 2 elements Name BlockPath ______ _________ 1 [1x1 State] CSTATE vdp/x1 2 [1x1 State] DSTATE vdp/x2 - Use braces { } to access, modify, or add elements using index.
Исследуйте первый элемент набора данных состояния.
xFinal{1}
ans = Simulink.SimulationData.State Package: Simulink.SimulationData Properties: Name: 'CSTATE' BlockPath: [1x1 Simulink.SimulationData.BlockPath] Label: CSTATE Values: [1x1 timeseries]
Например, предположите, что вы сохранили информацию конечного состояния в структуре с форматом времени, и используйте xFinal
по умолчанию переменная для сохраненной информации состояния.
Найти время симуляции и количество состояний в vdp
модель, введите xFinal
переменная.
xFinal
xFinal = time: 20 signals: [1x2 struct]
В этом случае время симуляции равняется 20 и существует два состояния. Чтобы исследовать первое состояние, используйте эту команду.
xFinal.signals(1)
ans = values: 2.0108 dimensions: 1 label: 'CSTATE' blockName: 'vdp/x1' stateName: '' inReferencedModel: 0
values
и blockName
поля первой структуры состояния показывают, что окончательное значение для выходного сигнала блока x1 2.018.
Примечание
Если вы пишете скрипт, чтобы анализировать информацию состояния, используйте комбинацию label
и blockName
значения, чтобы идентифицировать определенное состояние исключительно. Не используйте порядок состояний.
Чтобы сохранить полную информацию состояния, сохраните ModelOperatingPoint
объект для симуляции.
Установите флажок Configuration Parameters> Data Import/Export> Final states.
Также в панели Импорта/Экспорта Данных, выберите параметр Save final operating point.
В окне редактирования рядом с параметром Save final operating point введите имя переменной для ModelOperatingPoint
возразите и нажмите Apply.
Симулируйте модель.
Для получения дополнительной информации об использовании рабочей точки смотрите, Сохраняют и Рабочая точка Симуляции Восстановления.