Simulink® Desktop Real-Time™ расширяет режим Accelerator Simulink, чтобы запуститься в режиме реального времени.
Алгоритм симуляции для модели режима Accelerator Simulink скомпилирован к S-функции файла MEX. Как с режимом normal mode, S-функция запускается в процессе Simulink. Это не синхронизируется с часами реального времени и не может легко использоваться, чтобы управлять оборудованием в реальном времени.
Можно синхронизировать модель режима Accelerator с часами реального времени с помощью блоков ввода-вывода Simulink Desktop Real-Time. В режиме реального времени режим Accelerator, S-функция алгоритма симуляции запускается в процессе Simulink. Отдельный процесс режима ядра операционной системы запускает драйверы ввода-вывода для блоков ввода-вывода. И процесс Simulink и процесс привилегированного режима работают на хост-машине, с помощью интерфейса общей памяти, чтобы передать данные о параметре.
Приобретение сигнала — можно получить и отобразить сигналы из приложения реального времени, в то время как это запускается. Simulink получает данные сигнала из драйвера ввода-вывода и отображается, это в том же Scope
блокирует вас используемый для симуляции вашей модели в недействительное время.
Настройка параметра — можно изменить параметры в Диаграмме Simulink и иметь новые параметры, вступают в силу в модели Simulink в режиме реального времени. Эффекты затем распространяют через драйвер ввода-вывода к оборудованию.
Вы не можете запустить модель Simulink Desktop Real-Time в быстром режиме Accelerator.
Поскольку только драйверы ввода-вывода синхронизируются с часами реального времени, Simulink может использовать или фиксированный шаг или решатель переменного шага. Установка Sample Time в блоке Simulink Desktop Real-Time не изменяет размер шага симуляции. Для симуляции фиксированного шага вы устанавливаете размер шага в поле Fixed step size от диалогового окна Configuration Parameters. Для симуляции переменного шага вы устанавливаете размер шага при помощи атрибута Min Step Size, или Simulink определяет размер шага автоматически.
В режиме реального времени режим Accelerator, в каждом демонстрационном интервале 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
.