Можно сохранить информацию состояния для регистрируемых состояний для каждого шага моделирования во время моделирования. Тот уровень информации состояния может быть полезным для отладки.
Установите флажок 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.