Для установки соответствия SimState по умолчанию Simulink сохраняет и восстанавливает следующие данные для блока:
Непрерывные значения состояния
Значения сохранили в нецарапине векторы DWork (это включает IWork, RWork и Режим DWorks),
Значения Нулевых сигналов Пересечения
Для S-функции Level 2 MATLAB®, чтобы работать с функцией SimState, необходимо задать simStateCompliance блока с помощью метода,
block.simStateCompliance = setting
где допустимые значения установки:
| Установка | Результат |
|---|---|
'UnknownSimState' | Эта настройка по умолчанию дает Simulink® команду использовать DefaultSimState, чтобы сохранить и восстановить the SimState и выдает предупреждение. |
'DefaultSimState' | Эта установка дает Simulink команду обрабатывать S-функцию как встроенный блок при сохранении и восстановлении SimState. |
'HasNoSimState' | Эта установка сообщает Симулинку, что S-функция не имеет никакого состояния моделирования. С этой установкой никакая информация состояния не сохранена для блока. Эта установка, в основном, полезна для блоков "приемника" (i. e., блокируется без выходных портов), которые используют ПримечаниеЭта установка не позволена, если S-функция указывает какие-либо дискретные или непрерывные состояния или нулевые сигналы пересечения.
|
'CustomSimState' | Эта установка сообщает Симулинку, что S-функция имеет пользовательский GetSimState и методы SetSimState. |
'DisallowSimState' | Эта установка сообщает Симулинку, что S-функция не позволяет сохранять или восстанавливать ее состояние моделирования. Симулинк сообщает об ошибке, если вы сохраняете и восстанавливаете SimState модели, которая содержит эту S-функцию. |
Для S-функции с пользовательскими методами ('CustomSimState') можно использовать следующие операторы, чтобы соответственно получить и установить SimState:
function outSS = GetSimState(block) function SetSimState(block, inSS)
Для примера того, как реализовать эти пользовательские методы, смотрите msfcn_varpulse.m m.
Уровень 2 S-функция MATLAB | Функция MATLAB | S-функция | Разработчик S-функции