Выполнение в реальном времени в связанном режиме IO

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

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

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

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

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

Примечание

Вы не можете запустить модель Simulink Desktop Real-Time в быстром режиме Accelerator.

Image of normal modes simulation architecture

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

В режиме Connected IO в каждом демонстрационном интервале 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 порт.

Похожие темы