Моделируйте коллбэки

Коллбэки модели выполняются в заданных точках действия, например, после загрузки или сохранения модели.

Большинство тех же коллбэков можно задать для библиотек. Для установки библиотеки доступны только коллбэки, которые могут выполняться для библиотеки. Для примера вы не можете задать InitFcn коллбэк для библиотеки, который вызывается как часть симуляции, поскольку вы не можете моделировать библиотеку.

Создайте обратные коллбэки модели

  1. В Simulink® Редактор, откройте Property Inspector. На вкладке Modeling, под Design, нажмите Property Inspector.

  2. Не имея выбора на верхнем уровне модели, на вкладке Properties, в разделе Callbacks, выберите коллбэк, который вы хотите задать.

  3. В поле введите функции, которые необходимо выполнить при коллбэке.

Чтобы создать программный коллбэк модели, используйте set_param функция для назначения MATLAB® код для параметра коллбэка модели. См. Модель Коллбэка Параметров

Ссылочные обратные коллбэки модели

В иерархии модели выполнение коллбэков отражает порядок, в котором верхняя модель и модели, на которые она ссылается, выполняют свои коллбэки. Для примера предположим:

  • Модель A:

    • Ссылается на модель B в режиме Accelerator.

    • Имеет PostLoadFcn коллбэк, который создает переменные в рабочем пространстве MATLAB.

    • Имеет Rebuild параметру конфигурации задано значение Always, If changes detected, или If any changes in known dependencies detected.

  • Модель B:

    • Имеет CloseFcn коллбэк, который очищает рабочее пространство MATLAB.

    • Не построен или устарел.

Симуляция модели A запускает перестройку ссылочной модели B. Когда Simulink перестраивает модель B, она открывается и закрывает модель B, которая вызывает модель B CloseFcn коллбэк. CloseFcn очищает рабочее пространство MATLAB, включая переменные, созданные моделью A OpenFcn коллбэк.

Вместо использования CloseFcn коллбэк для модели B, можно использовать StopFcn коллбэк в модели A, чтобы удалить переменные, используемые моделью, из рабочего пространства MATLAB. Кроме того, можно использовать словарь данных для данных, чтобы избежать необходимости иметь переменные в базовом рабочем пространстве.

Если модель ссылается на несколько образцы одной и той же модели в режиме normal mode, коллбэки выполняются для каждого образца.

Для моделей, на которые ссылаются в режиме Accelerator, Simulink не выполняет некоторые коллбэки. Если все актуально, и для параметра конфигурации Rebuild задано значение If any changes in known dependencies detected, тогда ссылочная модель не компилируется и ее InitFcn коллбэки не выполняются. Коллбэки, такие как StartFcn и StopFcn не выполнять, так как ссылочные модели в режиме Accelerator используют S-функцию, которая запускается и останавливается вместо ссылочных моделей.

Примечание

Выходы симуляции недоступны в StopFcn коллбэки для симуляций командной строки.

Модель InitFcn следует избегать коллбэков, которые редактируют структуру модели. Simulink может иногда выполнять или игнорировать на основе состояния нагрузки модели.

Моделируйте параметры коллбэка

 Модель параметров загрузки и закрытия коллбэка

 Модель сохранения параметров коллбэка

 Коллбэки симуляции модели

Похожие темы