Выполнение в реальном времени в режиме normal mode

Simulink® Desktop Real-Time™ расширяет режим normal mode Simulink, чтобы запуститься в режиме реального времени.

Алгоритм симуляции для модели режима normal mode Simulink нев реальном времени запускается полностью в Simulink. Модель может использовать или фиксированный шаг или решатель переменного шага и выполнения с такой скоростью, как она может, учитывая присутствие конкурирующих процессов операционной системы. Однако это не синхронизируется с часами реального времени и не может легко использоваться, чтобы управлять оборудованием в реальном времени.

Можно синхронизировать модель Simulink с часами реального времени с помощью блоков ввода-вывода Simulink Desktop Real-Time. В режиме реального времени режим normal mode, Simulink выполняет алгоритм симуляции, в то время как отдельный процесс режима ядра операционной системы запускает драйверы ввода-вывода для блоков ввода-вывода. И процесс Simulink и процесс привилегированного режима работают на хост-машине, с помощью интерфейса общей памяти, чтобы передать данные о параметре.

  • Приобретение сигнала — можно получить и отобразить сигналы из приложения реального времени, в то время как это запускается. Simulink получает данные сигнала из драйвера ввода-вывода и отображается, это в том же Scope блокирует вас используемый для симуляции вашей модели в недействительное время.

  • Настройка параметра — можно изменить параметры в Диаграмме Simulink и иметь новые параметры, вступают в силу в модели Simulink в режиме реального времени. Эффекты затем распространяют через драйвер ввода-вывода к оборудованию.

Поскольку только драйверы ввода-вывода синхронизируются с часами реального времени, Simulink может использовать или фиксированный шаг или решатель переменного шага. Установка Sample Time в блоке Simulink Desktop Real-Time не изменяет размер шага симуляции. Для симуляции фиксированного шага вы устанавливаете размер шага в поле Fixed step size от диалогового окна Configuration Parameters. Для симуляции переменного шага вы устанавливаете размер шага при помощи атрибута Min Step Size, или Simulink определяет размер шага автоматически.

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

Последствие этого вида ограниченной синхронизации - то, что ваше моделирование может быть конфигурировано, чтобы пропустить метки деления час реального времени и их связанные точки данных. Метки деления могут быть пропущены при следующих обстоятельствах:

  • Сложность Модели — модель может быть столь комплексной, что Simulink не может не отставать от ядра реального времени. В этом случае количество пропущенных меток деления постоянно увеличивается со временем. Если количество пропущенных меток деления превышает Maximum Missed Ticks, ошибка происходит, даже если Maximum Missed Ticks установлен в большое значение. Можно идентифицировать эту ситуацию возрастающей прямой линией на Scope, соединенном с дополнительным портом Missed Ticks.

  • Конкуренция процесса — модель обычно выполняется быстрее, чем необходимый, чтобы не отставать от ядра. Однако конкуренция процесса или некоторое случайное условие операционной системы препятствуют тому, чтобы Simulink выполнил модель по некоторому периоду времени. В этом случае, количество пропущенных скачков меток деления к некоторому номеру, затем уменьшается, чтобы обнулить, когда Simulink догоняет ядро. Можно идентифицировать эту ситуацию подобной зубу пилы формой на Scope, соединенном с портом Missed Ticks.

  • Решатель переменного шага — Если вы используете решатель переменного шага, количество меток деления на шаг алгоритма, может отличаться во время симуляции. Если выполнение Simulink не достигает блоков Simulink Desktop Real-Time вовремя, чтобы синхронизироваться с меткой деления, количеством пропущенных скачков меток деления к некоторому номеру. Когда Simulink догоняет ядро, количество пропущенных меток деления уменьшается к нулю. Как с конкуренцией процесса, можно идентифицировать эту ситуацию подобной зубу пилы формой на Scope, соединенном с портом Missed Ticks.

Похожие темы