Simulink ® Desktop Real-Time™ расширяет обычный режим Simulink для работы в режиме реального времени.
Алгоритм моделирования для модели обычного режима Simulink, работающей не в реальном времени, полностью выполняется в Simulink. Модель может использовать либо решатель с фиксированным шагом, либо решатель с переменным шагом и работать как можно быстрее, учитывая наличие конкурирующих процессов операционной системы. Однако он не синхронизирован с часами реального времени и не может быть легко использован для работы аппаратных средств реального времени.
Можно синхронизировать модель Simulink с часами реального времени с помощью блоков ввода-вывода Simulink Desktop в реальном времени. В обычном режиме реального времени Simulink выполняет алгоритм моделирования, в то время как отдельный процесс режима ядра операционной системы запускает драйверы ввода-вывода для блоков ввода-вывода. Процесс Simulink и процесс режима ядра выполняются на хост-машине с использованием интерфейса общей памяти для передачи данных параметров.
Сбор сигналов - во время работы приложения в режиме реального времени можно записывать и отображать сигналы. Simulink извлекает данные сигнала из драйвера ввода-вывода и отображает их в том же самом Scope блоки, используемые для моделирования модели в режиме, отличном от реального времени.
Настройка параметров - можно изменить параметры в блок-схеме Simulink и ввести новые параметры в действие в модели Simulink в реальном времени. Затем эффекты распространяются через драйвер ввода-вывода на аппаратные средства.
Поскольку только драйверы ввода-вывода синхронизированы с часами реального времени, 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 порт.