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