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