Симуляция с оборудованием в цикле

Предупреждение

Эта тема обращается к программному обеспечению Simscape™ Multibody™ First Generation. Библиотека первого поколения будет скоро удержана от использования. Чтобы избежать проблем совместимости, создайте любые новые модели и преобразуйте любые существующие модели с помощью блоков второго поколения — доступные путем ввода команды smlib в командной строке MATLAB®.

О целях выделенного оборудования для симуляции платформы Стюарта

Примечание

Это исследование требует опыта с развертыванием выделенного оборудования и генерацией кода. Чтобы завершить его, необходимо установить следующие продукты, помимо MATLAB, Simulink® и продукта Simscape Multibody:

Работа сначала через Генерирует Код для Модели Платформы Стюарта, строго рекомендуется.

Общий шаг после генерации и компиляции кода из модели должен загрузить скомпилированный исполняемый файл на компьютер, выделенный выполнению только того приложения. Для модели с системой управления можно загрузить полную модель как модуль или разделить контроллер и объект в различные исполняемые файлы на различных компьютерах. Можно также выполнить часть контроллера как встроенный код на специализированном компьютере, который управляет фактическим объектом. Такие развертывания приложения известны как оборудование в цикле или быстром прототипировании [9].

Программное обеспечение Simulink Real-Time™ и Simulink Coder™ позволяют вам генерировать и компилировать код из модели Simscape Multibody и загружать его на компьютер с процессором типа ПК IBM. Программное обеспечение Simulink Real-Time действует как другая цель в Simulink Coder и требует решателя фиксированного шага. Можно использовать программное обеспечение Simulink Real-Time, чтобы реализовать модели объекта управления контроллера во многих настройках [10].

Это тематическое исследование обрисовывает в общих чертах некоторые загружающие преобразование приложения модели на основе платформы Стюарта, смоделированной с блоками Simscape Multibody.

Для получения дополнительной информации о программном обеспечении Simulink Real-Time

Консультируйтесь с документацией Simulink Real-Time для полных инструкций относительно загрузки и выполнения исполняемого кода в различных настройках.

Необходимые файлы для этого исследования

Это исследование требует mech_stewart_xpc, а также скрипта инициализации и функции.

Корректировка оборудования для вычислительных требований

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

Компромисс симуляции в реальном времени

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

  • Конечное число шагов (требующий решателей фиксированного шага)

  • Время выполнения больше, чем физическое симулируемое время

Эти требования особенно очень важны для кода контроллера.

С моделями Simscape Multibody компромисс скорости точности является острым. Симуляция Simscape Multibody в вычислительном отношении интенсивна, и станьте еще больше большим количеством замкнутых циклов и ограничений, которые вы добавляете.

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

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

Простые модели Simscape Multibody требуют скоростей центрального процессора в середине сотен области значений мегагерца (МГц). Более сложные модели, такие как платформа Стюарта (с 36 степенями свободы, а также 5 независимыми замкнутыми циклами и 40 ограничениями, являющимися результатом сокращения тех циклов), требуют большей скорости процессора, запускающейся в низкой области значений гигагерца (ГГц).

Смягчение компромисса симуляции в реальном времени

У вас есть два способа облегчить конфликт между точностью и скоростью в режиме реального времени симуляция.

  • Увеличьте скорость процессора. Это позволяет вам уменьшать размер шага решателя при хранении времени часов неизменным.

  • Разбейте полную модель в части, каждый симулированный ее собственной моделью, загруженной на и выполняемый на различном процессоре.

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

Внимание

Шаг расчета должен быть положительным интегральным размером шага решателя кратного. Для моделей Simscape Multibody постарайтесь не делать шаг расчета больше, чем размер шага, чтобы предотвратить отказы сходимости симуляции.

Загрузка полной модели к цели

Как суд над выполнением симуляции платформы Стюарта на выделенном оборудовании, здесь вы преобразуете модель в код, затем загружаете его и запускаете его на внешнем компьютере типа ПК. Модель требует процессора скорости приблизительно 2 ГГц или быстрее, и отдельный монитор целевого компьютера.

Консультируйтесь с документацией Simulink Real-Time для получения дополнительной информации о подготовке целевого компьютера, установлении целевой хостом связи и взаимодействии с целью от хоста.

Подготовка целевого компьютера и целевой хостом связи

Результаты здесь были получены с хостом и целевыми компьютерами типа ПК, каждым с 3 процессорами GHz Pentium 4 и 1 гигабайт RAM, связывающегося друг с другом связью RS-232.

Чтобы настроить связь и запустить цель, вам нужны кабель RS-232 и пробел, отформатированный гибкий диск. Цель требует дисковода для гибких дисков. Можно наблюдать целевую симуляцию относительно целевого монитора, монитора хоста или обоих.

  1. Соедините хост и целевой компьютер друг другу с их соответствующими портами RS-232 и кабелем.

  2. Из MATLAB подготовьте загрузочную дискету Simulink Real-Time.

  3. Вставьте подготовленный загрузочный диск Simulink Real-Time в целевой дисковод для гибких дисков PC. Запустите целевой компьютер.

  4. После того, как цель закончила загружаться, подтвердите целевую хостом связь.

Исследование и выполнение модели Simulink Real-Time — преобразование типа данных

В данном примере вы используете вариант модели генерации кода, представленной в предыдущем исследовании, Генерируете Код для Модели Платформы Стюарта.

  • Модель содержит блоки Осциллографа Simulink Real-Time для наблюдения результатов симуляции позже. Scope type для каждого является Target. Таким образом они появятся на целевом PC после того, как вы загрузите скомпилированный код.

  • Контроллер и объект работают с Simulink по умолчанию 64-битное плавание двойной тип данных. Чтобы протестировать эффект преобразования типов, необходимого для передачи сигналов на аппаратной шине, модель также содержит подсистемы, которые преобразуют их, плавание удваивается до целых чисел фиксированной точки, затем обратно до удваивается.

    Преобразование данных обрезает данные объекта контроллера и изменяет поведение симуляции несколько. Очень важно протестировать удар таких изменений прежде, чем развернуть код в оборудование.

  1. Откройте эту модель, mech_stewart_xpc. Обновите схему (Ctrl+D). Векторные сигналы теперь появляются как широкие линии и отображают свои типы данных.

    Платформа Стюарта с траекторией ссылки управления для симуляции Simulink Real-Time

  2. Откройте подсистемы Преобразования Преобразования и Длины Силы. Каждая подсистема преобразует векторный сигнал от плавания, удваивается до 16-битных целых чисел (типичный для аппаратных шин), и назад к удваивается. Эти подсистемы подражают эффекту аппаратных шин, связывающихся между контроллером и объектом.

    Прежде чем данные преобразованы в целочисленный формат, они должны быть преобразованы от плавания до фиксированной точки, обрезав плавающие сигналы double. Блоки Преобразования типа данных, которые изменение удваивает до фиксированных точек, применяют масштабирование, чтобы гарантировать, что информация, потерянная усечению, мала, как задано силой и числами длины участка, типичными для этой симуляции. Эти масштабирования установлены в диалоговых окнах блока Data Type Conversion.

  3. Закройте подсистемы Преобразования. Откройте Осциллограф.

  4. Запустите модель и наблюдайте движение. Позже, закройте Осциллограф.

    Различие между этой симуляцией платформы Стюарта и более ранними единицами ясно в трассировке осциллографа Сил Участка, которая показывает небольшой уровень “шума” после того, как начальный переходный процесс передал. Этот “шум” происходит из-за усечения данных, когда плавание удваивается, преобразованы в фиксированную точку.

Генерация и загрузка кода из модели Simulink Real-Time

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

  1. Подтвердите размер шага решателя (dt1) и шаг расчета (dt2) путем ввода

    dt1, dt2

    в командной строке. Значения являются 5,0 миллисекундами (мс).

  2. Проверяйте целевой выбор генерации кода в Параметры конфигурации, под узлом Code Generation, Target selection> System target file. Целевым выбором является slrt.tlc.

    Под узлом Code Generation проверяйте запись Simulink Real-Time options. Оставьте эти настройки по умолчанию.

  3. Нажмите Ctrl+B, чтобы запустить генерацию кода.

    Следуйте за достижениями по командному окну, когда Simulink Coder генерирует и компилирует модель, затем загружает ее на ваш целевой компьютер. Когда загрузка завершена, вы видите четыре пустых окна осциллографа Simulink Real-Time на целевом мониторе.

Выполнение Simulink Real-Time модель платформы Стюарта на цели

Интерфейс Simulink Real-Time создает объект под названием tg это позволяет вам управлять приложением на целевой машине.

  1. Используя интерфейс Simulink Real-Time, запустите целевое приложение.

    Контрольные дисплеи целевого компьютера выполнение. В командном окне интерфейс Simulink Real-Time обобщает результаты выполнения.

  2. Остановите целевое приложение. Командное окно отображает сводные данные выполнения. Целевые осциллографы отображают результаты симуляции.

Просмотр целевой симуляции с осциллографами Simulink Real-Time

Программное обеспечение Simulink Real-Time позволяет вам наблюдать симуляцию в различных способах. Документация Simulink Real-Time объясняет детали.

  • На первом показе вы наблюдали осциллографы Simulink Real-Time целевого типа относительно целевого монитора.

  • Можно изменить Scope type одного или нескольких осциллографов Simulink Real-Time к Host и наблюдайте их относительно своего хоста - компьютера вместо этого.

  • Интерфейс Simulink Real-Time также позволяет вам соединять и отображать такие осциллографы, в то время как симуляция запускается. Можно сделать соединение и отображение осциллографов в процессе моделирования легче путем изменения времени остановки в бесконечность (inf).

Корректировка шага и шагов расчета — тестирующий на перегрузку ЦП

Можно сделать симуляцию более точной путем сокращения размера шага решателя. Но путем требования большего количества шагов, вы также делаете симуляцию более интенсивной. Если размер шага решателя опускается ниже времени выполнения задачи (TET), целевой процессор не может не отставать от симуляции и переносит перегрузку ЦП.

Сводные данные Simulink Real-Time в командном окне указывают, произошла ли перегрузка ЦП, когда вы запускаете или останавливаете целевой объект (tg) выполнение.

Протестируйте на перегрузку ЦП путем сокращения dt1 и dt2.

  1. Войти

    dt1 = 0.0025; dt2 = 0.0025;
  2. Создайте и загрузите сгенерированный код снова.

  3. Запустите целевое приложение.

Можно изучить, как близко к, или как далеко в, перегрузка ЦП модель путем сравнения TET с решателем/шагом расчета.

  • Если значение TET меньше, чем время выборки/решателя, целевой процессор может не отставать от решателя.

  • Если значение TET больше, чем время выборки/решателя, целевой процессор не может не отставать от решателя. Перегрузка ЦП останавливает целевое выполнение.

Можно продолжить уменьшать решатель/шаг расчета, пока вы не вызываете перегрузку ЦП. Эта точка является пределом вашего целевого процессора с этой моделью. Можно работать вокруг перегрузки ЦП

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

  • Увеличение решателя/шага расчета. Обязательно не увеличьте его слишком много, избегайте отказов сходимости симуляции.

Смотрите настраивающее оборудование для вычислительных требований.

Конфигурирование для реалистических аппаратных целей

Типичные цели загрузки скомпилированного кода к специализированному компьютеру

  • Симуляция контроллера и объекта в режиме реального времени

  • Встраивание дискретизированной версии кода контроллера по специализированному компьютеру, который управляет фактическим объектом

Разделение контроллера и объекта — коммуникации шины — дискретизация

Контроллер и объект связываются через аппаратную шину, сконфигурированную с определенным протоколом данных. Библиотека блоков Simulink Real-Time содержит коммуникационные блоки на основе множества протоколов данных, совпадающих с общими аппаратными шинами. В реалистических приложениях контроллер часто уже дискретизируется (симулированный с дискретными состояниями) и не требует никакого преобразования из плавающей точки.

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

Внимание

Вы не можете использовать дискретные состояния с блоками Simscape Multibody в вашей модели. Дискретизация контроллера требует распадающегося контроллера и объекта в различные модели.

Возможности аппаратной конфигурации

Выберите и аппаратную конфигурацию модели в зависимости от своих потребностей.

  • Отдельный контроллер и объект в различные подсистемы, которые связываются через физическую шину, с которой соединяют интерфейсом с блоками шины Simulink Real-Time, а не линиями Сигнала Simulink. Запускать такую модель на цели требует, чтобы цель имела соответствующую аппаратную карту и кабель шины.

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

    Однажды вы отдельный контроллер и объект в различные модели, можно дискретизировать контроллер.

  • Встройте контроллер в специализированную цель, которая управляет фактической платформой Стюарта. Цель и платформа связываются через шину или другое оборудование ввода-вывода, соответствующее блокам, используемым в моделях контроллеров.

Смягчение компромиссов в реальном времени

Симуляции в реальном времени ограничиваются компромиссом между точностью и скоростью и ограничиваются целевым временем выполнения и сходимостью поддержания. Необходимо гарантировать, что кэширование памяти и шина, не только процессор (процессоры), достаточно быстры, чтобы справиться с Simscape Multibody вычислительные требования. Смотрите Настраивающее Оборудование для Вычислительных Требований.