exponenta event banner

Выполнение в режиме реального времени в режиме ускорителя

Simulink ® Desktop Real-Time™ расширяет режим ускорения Simulink для работы в режиме реального времени.

Алгоритм моделирования для модели режима ускорения Simulink компилируется в S-функцию файла MEX. Как и в обычном режиме, S-функция выполняется в процессе Simulink. Он не синхронизирован с часами реального времени и не может быть легко использован для работы аппаратных средств реального времени.

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

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

  • Настройка параметров - можно изменить параметры в блок-схеме Simulink и ввести новые параметры в действие в модели Simulink в реальном времени. Затем эффекты распространяются через драйвер ввода-вывода на аппаратные средства.

Примечание

Невозможно запустить модель Simulink Desktop в реальном времени в режиме быстрого ускорения.

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

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

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

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

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

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

Связанные темы