Синхронизация в моделях аппаратного интерфейса

Время симуляции

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

Симуляции модели задали длительность к время начала и время остановки. Длительность по умолчанию является 10 модулями времени симуляции (или симулированные секунды). Эти секунды симуляции не обязательно эквивалентны секунде в реальном времени, как измерено настенными часами.

Чтобы настроить длительность модели, откройте модель Configuration Parameters путем нажатия на значок Model Settings во вкладке Modeling панели инструментов редактора моделей. Выберите Solver на левой панели. Настройки Start time и Stop time задают длительность. В большинстве случаев Start time должен быть 0.0, и можно установить Stop time отражать длительность, которую вы хотите, чтобы модель имела.

Когда симуляция запускается, синхронизация для выполнения блока выполняется рядом тактов. С установкой для автоматического решателя с фиксированными размерами такта во время компиляции Simulink вычисляет частоту такта, чтобы вместить установки параметров Sample time всех блоков в модели. Например, если все синхронизированные блоки в модели имеют установку Шага расчета 0,01 или кратное этому, то размер такта 0,01 работает на целую модель.

Блокируйте шаг расчета

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

  • Время начала: 0.0

  • Stop time: 10.0

  • Ввод: Fixed-step

  • Solver: discrete

  • Fixed-step size: 0.001

Диалоговые настройки выглядят так фигура:

Timing options in the model configuration dialog

В этой модели, блоке с установкой Sample time по умолчанию 0.01 выполняет каждый десятый такт, или 1001 раз в 10-секундной симуляции. Другому блоку, который должен запуститься на дважды уровне, нужно установить Sample time на 0.005.

Примечание

В большинстве случаев можно оставить установку Fixed-step size auto, разрешение Simulink вычислить соответствующий основной шаг расчета на основе всех настроек блока.

Поскольку длительность симуляции составляет 10 симулированных секунд, и период Sample time блока составляет 0,01 симулированных секунды, тот блок выполняется 1001 раз в полной симуляции (включая первый и последний шаг). Запуски симуляции с такой скоростью, как ее блоки могут выполнить, и то 1 001 выполнение может значительно занять меньше чем 10 секунд стены, показывают время. Таким образом, симуляция в режиме реального времени определяется тем, как быстро она может выполнить блоки в модели для необходимого количества итераций. Часто цель симуляции состоит в том, чтобы смоделировать поведение способом, которое занимает меньше времени, чем это было бы в реальной ситуации. В этих случаях, последовательности и повторении выполнения блока важно, в то время как фактический промежуток реального времени не может быть.

Следование по симуляции модели

У вас может быть требование для модели, чтобы взаимодействовать с аппаратным устройством путем повторения некоторой операции в фиксированные интервалы реального времени. Например, блок может неоднократно считывать данные из термометра или отправлять триггеры за внешним генератором сигнала, чтобы вывести последовательность импульсов.

Если вы устанавливаете блок Sample time на 0.1, это управляло бы уровнем выполнения блока только во времени симуляции. Чтобы коррелировать время симуляции к реальному времени, можно использовать Симуляцию, Следующую, чтобы замедлить симуляцию, чтобы запуститься в темпе реального времени. Доступ к Симуляции, Следующей по диалоговому окну Опций путем нажатия на Run> Simulation Pacing во вкладке Simulation панели инструментов редактора моделей

Проверяйте Enable pacing to slow down simulation и установите отношение ползунка на 1 (значение по умолчанию). Это заставляет время симуляции отслеживать максимально тесно, со стеной показывают время, таким образом, 1 вторая симуляция приблизительно равна 1 настенным вторым часам.

Simulation Pacing Options dialog

С этой следующей установкой, блоком Sample time 0.1 приблизительно равно 0,1 стенным секундам часов, приводящим к десяти выполнению блока в секунду. Таким образом, блок, который генерирует устройство выход, пульсирует каждые 0,1 секунды симуляции, теперь производит 10 импульсов на настенные вторые часы.

Похожие темы