Задача, управляемая таймером

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

Диспетчер задач и модель программного обеспечения

Следующая модель моделирует программное обеспечение, работающее на процессоре ARM. Блок Task Manager планирует выполнение Timer Driven Subsystem, внутри Software Application Model Reference блок. Блок Случайное число моделирует источник данных, который выборки задача, управляемая таймером.

Следующая модель показывает модель Программного обеспечения. Эта модель содержит управляемую таймером подсистему, которая выполняется на основе событий задачи таймера из блока Task Manager в модели верхнего уровня.

Подсистема задач, управляемая таймером, Подсистема, дискретизирует значение данных каждый 0.1 секунд от блока Случайное число и применяет Алгоритм. В этой модели алгоритм выводит отрицательное скалярное значение значения выборочных данных. Следующая модель показывает Подсистему Алгоритма, содержащуюся в Управляемой Таймером Подсистеме. Блок Inport задает время дискретизации 0,1 секунды для Подсистемы, управляемой таймером, видимой в модели Программного обеспечения, когда включен параметр Schedule Rates.

Симуляция и результаты

Нажмите кнопку Run, чтобы создать и запустить модель. Когда модель закончит работать, откройте Данные моделирования Inspector, чтобы увидеть результаты симуляции. Выберите Timer_Task, исходные данные и обработанные сигналы данных, чтобы увидеть эффект асинхронного выполнения задачи.

Как показано на Данных моделирования Inspector, время работы Timer_Task изменяется с каждым образцом. В некоторых случаях длительность предыдущего выполнения задачи задерживает начало следующего выполнения задачи. Кроме того, обработанные данные из выходов задачи одновременно с завершением выполнения задачи, что приводит к наблюдаемой задержке в обработанных данных по сравнению с исходными данными. В результате, несмотря на заданный временной шаг 0,1 секунды, начало выполнения теперь ведет себя так, как если бы подсистема была исполнена на SoC-процессоре устройства с соответствующими реальными ограничениями по обработке.