Эти два примера идут через рабочий процесс разделения модели, планирования разделов и анализа симуляций до и после редактирования расписания разделов.
В этом примере показано, как просмотреть и отредактировать порядок вызовов функции в модели экспорта функций использование Редактора Расписания. Как во всех моделях экспорта функций, желаемая функциональность моделируется как подсистемы вызова функций. Эти подсистемы вызова функций задают разделы, которые планируются Редактором Расписания.
С Редактором Расписания можно легко просмотреть и отредактировать расписание вызовов функции. Поведение системы зависит от порядка этих разделов. В этом примере мы изменяем порядок и наблюдаем его эффекты на поведении системы путем симуляции модели. Чтобы видеть удар редактирования расписания на симуляции, мы сравниваем симуляции модели до и после планирования.
Создайте разделы из модели экспорта функций, на которую ссылаются,
Чтобы просмотреть и отредактировать расписание модели экспорта функций, сошлитесь на модель.
open_system('ThrottlePositionControlTop.slx');
ThrottlePositionControl
модель экспорта функций, на которую ссылаются. По умолчанию каждая функция имеет входной порт, который может использоваться, чтобы инициировать эти функции. Редактор Расписания автоматически обрабатывает эти порты. Чтобы использовать Редактор Расписания, установите Уровни Расписания параметром Планировать Редактор.
set_param('ThrottlePositionControlTop/ThrottleControl','ScheduleRatesWith','Schedule Editor');
Установите базовую линию симуляции
Чтобы наблюдать удар планирования на поведение модели, установите базовую линию путем симуляции модели прежде, чем отредактировать расписание. Симулируйте модель.
sim('ThrottlePositionControlTop');
Откройте редактор расписания
Чтобы открыть Редактор Расписания, нажмите Schedule Editor в разделе Design вкладки Modeling. В Редакторе Расписания различные компоненты модели представлены как разделы. Обновите схему, чтобы видеть разделы. Разделы являются точками входа в модели. Редактор Расписания показывает порядок и передачу данных этих разделов. Стрелы являются связями данных между разделами, которые показывают поток данных. Пунктирные линии указывают, что существует задержка, потому что источник выполняется после места назначения. Сплошные линии указывают, что нет никакой задержки, когда источник запускается перед местом назначения.
Отредактируйте расписание раздела
Панель Порядка показывает порядку разделы, запущенные на в установленный срок шаге. Примите, что порядок разделов находится в несовершенном состоянии. В этом случае, чтобы удалить задержку, вы хотите запустить ThrottleControl.ActuatorRun5ms
раздел после ThrottleControl.ControllerRun5ms
раздел.
Перетащите ThrottleControl.ActuatorRun5ms
после ThrottleControl.ControllerRun5ms
в панели Порядка. Заметьте что задержка между ThrottleControl.ControllerRun5ms
и ThrottleControl.ActuatorRun5ms
разделы превращаются в зависимость. Заметьте, что теперь нет никакой задержки между выполнением ThrottleControl.ControllerRun5ms
и ThrottleControl.ActuatorRun5ms
.
Запланируйте выполнение апериодических разделов
Модель экспорта функций содержит неограниченный раздел, AccelerationPedalPositionSensor
. Предположим, что вы хотите запланировать неограниченный раздел, чтобы симулировать, как будто это было дискретно. Запланируйте ThrottleControl.AppSnsrRun
раздел, чтобы запуститься в [0:0.02:100], чтобы наблюдать его поведение в различных экземплярах времени. Кликните по неограниченному разделу и войдите [(1:5000) *.02] в течение Времен Хита в Property Inspector.
Сравните запуски в инспекторе данных моделирования
Теперь симулируйте модель с измененным расписанием.
Откройте Инспектора Данных моделирования. Выберите два запуска и сравните. Вы видите, как изменение расписания влияет на поведение модели.
Copyright 2018-2019 The MathWorks, Inc.
В этом примере показано, как разделить основанную на уровне модель с помощью Редактора Расписания. Разделы являются компонентами модели, которая может выполниться независимо. В этом примере мы преобразуем подсистемы в разделы и просматриваем и редактируем их расписание.
С Редактором Расписания можно легко просмотреть и отредактировать расписание разделов. Поведение системы зависит от порядка этих разделов. В этом примере мы наблюдаем эффекты планирования этой модели на симуляции. Чтобы видеть удар разделения и планирования модели, мы сравниваем симуляции модели до и после создания разделов и планирования их.
Откройте модель и установите базовую линию симуляции
Откройте модель Системы управления Положения Дросселя и симулируйте ее, чтобы установить базовую линию для сравнения
open_system('ScheduleEditorWithSubsystemPartitions'); sim('ScheduleEditorWithSubsystemPartitions');
Откройте редактор расписания и создайте разделы
Чтобы открыть Редактор Расписания, нажмите Schedule Editor в разделе Design вкладки Modeling. Использование Управляет Разделами, чтобы создать разделы из подсистем в вашей модели. Выберите все подсистемы в ThrottlePositionControl
, и кликните по Создать значку Разделов на верхней части Управлять панели Разделов. Задайте имена для разделов и их шага расчета. Обновите схему, чтобы видеть разделы в Редакторе Расписания.
Стрелы являются связями данных между разделами, которые показывают поток данных. Пунктирные линии всегда указывают, что существует задержка, когда источник выполняется после места назначения. Сплошные линии указывают, что нет никакой задержки, когда источник запускается перед местом назначения.
Отредактируйте расписание раздела
Порядок показывает порядок, разделы, запущенные в установленный срок, продвигаются. Примите, что порядок разделов находится в несовершенном состоянии. В этом случае вы хотите запустить ActuatorRun5ms
раздел перед ControllerRun5ms
раздел. Перетащите ActuatorRun5ms
перед ControllerRun5ms
в порядке. Заметьте что зависимость между ControllerRun5ms
и ActuatorRun5ms
разделы превращаются в задержку.
Сравните запуски в инспекторе данных моделирования
Теперь симулируйте модель с измененным расписанием.
Откройте Инспектора Данных моделирования. Выберите два запуска и сравните. Вы видите, как изменение расписания влияет на поведение модели.