Можно сохранить информацию состояния для регистрируемых состояний для каждого шага симуляции во время симуляции. Тот уровень информации состояния может быть полезным для отладки.
Установите флажок Configuration Parameters> Data Import/Export> States.
В окне редактирования States можно задать различную переменную для получения информации состояния, если вы не хотите использовать переменную xout
по умолчанию.
Также в панели Data Import/Export, установленной параметр Format на Dataset
, Structure
или Structure with time
, если вы не используете формат массивов для совместимости с устаревшей моделью.
Формат Dataset
не поддерживает:
Журналирование информации о состояниях в подсистеме вызова функций
Быстрый режим симуляции акселератора
Генерация кода
Нажмите Apply.
Моделируйте модель.
Сохранить только регистрируемые состояния (непрерывные и дискретные состояния блоков):
Установите флажок Configuration Parameters> Data Import/Export> Final states.
В окне редактирования Final states можно задать различную переменную для получения информации состояния, если вы не хотите использовать переменную xFinal
по умолчанию.
Очистите параметр Save final operating point.
Установите параметр Format на Dataset
, Structure
или 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
, чтобы идентифицировать определенное состояние исключительно. Не полагайтесь на порядок состояний.
Чтобы сохранить полную информацию состояния, сохраните SimState
для симуляции.
Установите флажок Configuration Parameters> Data Import/Export> Final states.
Также в панели Импорта/Экспорта Данных, выберите параметр Save final operating point.
В окне редактирования рядом с параметром Save final operating point введите имя переменной для SimState
и нажмите Apply.
Моделируйте модель.
Для получения дополнительной информации об использовании SimState
смотрите, Сохраняют и Рабочая точка Симуляции Восстановления.