exponenta event banner

Планирование выполнения нескольких контроллеров

Функция Simulink ® - это графический объект, который заполняется блоками Simulink и вызывает действия состояний и переходов. Функции Simulink поддерживаются только в диаграммах Stateflow ® в моделях Simulink. Дополнительные сведения см. в разделе Повторное использование компонентов Simulink в диаграммах Stateflow.

Цель учебного пособия

Целью этого учебного пособия является использование функций Simulink в диаграмме Stateflow для улучшения конструкции модели с именем sf_temporal_logic_scheduler.

Обоснование улучшения конструкции модели

sf_temporal_logic_scheduler модель содержит диаграмму Stateflow и три подсистемы вызова функций. Эти блоки взаимодействуют следующим образом:

  • Диаграмма транслирует выходные события A1, A2, и A3 для запуска подсистем вызова функций.

  • Подсистемы A1, A2 и A3 выполняются с различными скоростями, определенными диаграммой.

  • Выходные данные подсистемы поступают непосредственно на диаграмму.

    Другие блоки в модели не имеют доступа к выходам подсистемы.

Подсистемы вызова функций можно заменить функциями Simulink внутри диаграммы, если:

  • Подсистемы выполняют расчеты, требуемые графиком.

  • Другие блоки в модели не нуждаются в доступе к выходам подсистемы.

Редактирование модели для использования функций Simulink

В следующих разделах описывается, как заменить блоки подсистемы вызова функций в модели Simulink функциями Simulink в диаграмме Stateflow. Эта процедура позволяет уменьшить количество объектов в модели при сохранении тех же результатов моделирования.

ШагЗадачаСсылка
1Откройте модель.Открытие модели
2Переместите содержимое подсистем вызова функций в функции Simulink на диаграмме.Добавление функций Simulink в диаграмму
3Изменение объема определенных данных на уровне диаграммы на Local.Изменение области данных диаграммы
4Замена широковещательных передач событий вызовами функций.Обновить действия состояния в диаграмме
5Убедитесь, что определены входы и выходы функций.Добавление данных в диаграмму
6Удаление неиспользуемых элементов в модели.Удаление неиспользуемых элементов в модели

Примечание

Чтобы пропустить шаги преобразования, можно получить доступ непосредственно к новой модели.

Открытие модели

Откройте окно sf_temporal_logic_scheduler модель. При моделировании модели этот результат отображается в области видимости.

Дополнительные сведения см. в разделе Планирование выполнения подсистем в определенное время.

Добавление функций Simulink в диаграмму

Выполните следующие действия, чтобы добавить функции Simulink в диаграмму планировщика временной логики.

  1. В модели Simulink щелкните правой кнопкой мыши блок A1 в правом нижнем углу и выберите «Вырезать» в контекстном меню.

  2. Откройте диаграмму планировщика временной логики.

  3. На диаграмме щелкните правой кнопкой мыши вне любых состояний и выберите в контекстном меню команду Вставить.

  4. Разверните новую функцию Simulink, чтобы сигнатура помещалась в поле функции.

    Совет

    Чтобы изменить размер шрифта функции, щелкните правой кнопкой мыши поле функции и выберите новый размер в меню «Размер шрифта».

  5. Переименование функции Simulink из A1 кому f1 путем ввода y = f1(u) в поле функции.

  6. Повторите шаги 1-5 для следующих случаев:

    • Копирование содержимого A2 в функцию Simulink с именем f2.

    • Копирование содержимого A3 в функцию Simulink с именем f3.

    Примечание

    Новые функции находятся на уровне диаграммы, поскольку оба состояния FastScheduler и SlowScheduler требуется доступ к выводам функций.

Изменение области данных диаграммы

В обозревателе моделей измените область данных на уровне диаграммы. y кому Local потому что расчет для этих данных теперь происходит внутри диаграммы.

Обновить действия состояния в диаграмме

В редакторе Stateflow можно заменить широковещательные передачи событий в действиях состояния вызовами функций.

  1. Изменение действий состояния в FastScheduler и SlowScheduler вызов функций Simulink f1, f2, и f3.

  2. В обоих состояниях обновите каждое during действия следующим образом.

    du: y = u1-y2;

Добавление данных в диаграмму

Для on every действия государства FastScheduler и SlowScheduler, определите три данные. (Дополнительные сведения см. в разделе Добавление данных потока состояний.)

  1. Добавить локальные данные y1 и y2 к диаграмме.

  2. Добавление выходных данных y3 к диаграмме.

  3. В модели подключите внешний порт для y3 к вводу области.

    Совет

    Чтобы развернуть блок области, щелкните правой кнопкой мыши и выберите в контекстном меню команду «Повернуть и развернуть» > «Развернуть блок».

Удаление неиспользуемых элементов в модели

  1. В обозревателе моделей удалите выходные события A1, A2, и A3 и входные данные u2 потому что подсистемы function-call больше не существуют.

  2. Удалите все пунктирные сигнальные линии из модели.

Запуск новой модели

Ваша новая модель выглядит примерно так:

При моделировании новой модели результаты соответствуют результатам исходной конструкции.

Связанные темы