Запланируйте выполнение нескольких контроллеров

Функция 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 по правому нижнему углу и выберите Cut из контекстного меню.

  2. Откройте Временный Логический график Планировщика.

  3. В графике щелкните правой кнопкой вне любых состояний и выберите Paste из контекстного меню.

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

    Совет

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

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

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

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

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

    Примечание

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

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

В Model Explorer измените осциллограф данных уровня графика y к Local, потому что вычисление для тех данных теперь происходит в графике.

Обновите акты государственной власти в графике

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

  1. Отредактируйте акты государственной власти в FastScheduler и SlowScheduler, чтобы вызвать функции Simulink f1, f2 и f3.

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

    du: y = u1-y2;

Добавьте данные в график

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

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

  2. Добавьте выходные данные y3 в график.

  3. В модели соедините выходной порт для y3 к импорту осциллографа.

    Совет

    Чтобы инвертировать блок Scope, щелкните правой кнопкой и выберите Rotate & Flip> Flip Block из контекстного меню.

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

  1. В Model Explorer удалите выходные события A1, A2, и A3 и входные данные u2, потому что подсистемы вызова функций больше не существуют.

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

Запустите новую модель

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

Если вы моделируете новую модель, результаты совпадают с теми из первоначального проекта.

Похожие темы