Статья
Полунатурное моделирование
и быстрое прототипирование
с использованием российских комплексов РИТМ
Мы подготовили практическое пособие по запуску моделей на комплексах полунатурного моделирования (КПМ) РИТМ под операционной системой реального времени (ОСРВ) РИТМ. Расскажем подробно, какие составляющие нужны для построения моделей, какие задачи могут быть решены на машинах РИТМ, что нужно делать и в какой последовательности.
В чем идея?
Суть технологии полунатурного моделирования заключается в замене частей системы на модели, работающие в реальном времени. Эти модели обмениваются данными с другими частями системы по тем же интерфейсам, по которым общаются реальные устройства. Контроллеры или агрегаты не замечают подмены, а для инженера открываются широкие возможности для разработки и испытаний.
Рис. 1. Основы технологии полунатурного моделирования
Для реализации этой технологии нужны три компонента:

  1. инструмент для построения и отладки системных моделей;
  2. операционная система реального времени (ОСРВ);
  3. промышленный компьютер с необходимыми интерфейсами информационного обмена.

Расскажем подробнее о каждом из этих компонентов.
Построение системных моделей
Для моделирования используем программные пакеты, такие, как Simulink или Engee. Там можно строить модели любой сложности, произвольной иерархии для самых разных прикладных областей (алгоритмы, авиация, робототехника, механика, гидравлика, пневматика, привода, энергетика, силовая электроника и др.).
Рис. 2. Примеры блоков для модулей ввода-вывода в среде Simulink
Simulink и Engee – платформы для модельно-ориентированного проектирования (МОП). МОП – это подход к разработке сложных систем, в центре которого находятся математические модели. Они по своей сути являются:

  • программной спецификацией на систему;
  • источником новых требований для системы и ответов на вопросы «что-если»;
  • средством выявления ошибок;
  • основой для автоматической генерации кода для встраиваемых систем.

Реальное время
Полунатурное моделирование должно проходить в реальном времени.

Тестирование в реальном времени – это исследование функционирования системы (или её компонентов) в реальных рабочих условиях, при заданной частоте дискретизации, с эффектами, возникающими при работе с реальным оборудованием и интерфейсами, с учетом синхронизации различных выполняющихся задач.

Тестирование в реальном времени применяется в технологиях быстрого прототипирования алгоритма управления (или Rapid Prototyping), полунатурного моделирования объекта управления (HIL, или Hardware-in-the-Loop), а также в применении к созданию стендов и тренажеров.

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

Для построения системы реального времени нужен целевой вычислитель с ОСРВ, которая позволяет выполнять требуемые задачи и расчеты в темпе тестируемого реального объекта. Для построения моделей в жестком реальном времени следует использовать только специализированные ОС, например, ОСРВ РИТМ.Реальное время.
КПМ РИТМ
Рис. 3. Стенд полунатурного моделирования
КПМ РИТМ – это промышленный компьютер, в котором подобраны и разработаны программные и аппаратные компоненты для гарантированной работы моделей и интерфейсов в режиме жесткого реального времени.

КПМ РИТМ – это российское программно-аппаратное решение, предоставляющее:

  • ОС жесткого реального времени с вытесняющей многозадачностью;

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

  • специализированное оборудование, обеспечивающее работу КПМ РИТМ и интерфейсы с внешним миром.

Российская компания РИТМ занимается разработкой всех этих трех компонентов, включая сам компьютер реального времени, платы ввода-вывода и соответствующие периферийные блоки в среде моделирования. ОСРВ РИТМ.Реальное время включена в реестр российского ПО.
Быстрое прототипирование
Рис. 4. Схема работы по технологии быстрого прототипирования
Быстрое прототипирование применяется в том случае, когда у вас уже есть алгоритмы, но их не на чем проверять (блок управления или контроллер еще недоступны). Другой вариант: у вас есть алгоритмы, и есть на чем проверять их, но вам приходится ждать, когда программист реализует ваш алгоритм.

Быстрое прототипирование – это внесение изменений в поведение вашего алгоритма управления и исследование работы алгоритма с использованием реального железа. Вы берете алгоритм управления, загружаете его на систему реального времени и подключаетесь к реальному объекту управления.

Из модели, содержащей алгоритмы управления, автоматически генерируется и переносится код на компьютер реального времени. Входные данные при этом могут как генерироваться самой моделью, так и приходить извне – от подключенных плат ввода-вывода. Компьютер реального времени с работающим алгоритмом подключен жгутами проводов к реальному объекту управления.

«Быстрым» прототипирование называется потому, что от фазы внесения изменений в алгоритм инженер сразу переходит к фазе его проверки на реальном железе. Если алгоритм неверный, то инженер возвращается к корректировке алгоритма. И так до того момента, пока алгоритм не будет выверен. Все это заметно сокращает цикл разработки систем управления. А стенд для быстрого прототипирования универсальный, и его легко переконфигурировать под другой проект.
Полунатурное моделирование
Рис. 5. Схема работы по технологии полунатурного моделирования
Полунатурное моделирование поможет в том случае, когда у вас есть готовый блок управления, а реального объекта управления либо пока нет, либо проводить натурные испытания на нем крайне дорого или нецелесообразно, так как алгоритмы еще недостаточно отработаны и могут нанести ущерб объекту.

Технология тестирования в режиме Hardware-in-the-Loop, или полунатурное моделирование, подразумевает, что специальный компьютер с ОСРВ будет имитировать реальный объект. При этом алгоритмы управления работают в целевом вычислителе, или электронном блоке управления, подключенном к такому симулятору посредством интерфейсов ввода-вывода.

Модель может быть реализована как на одной системе реального времени, так и на нескольких системах, связанных интерфейсами. Вы сами решаете, как разбить вашу систему на компоненты. Можно тестировать разные варианты и сценарии, в том числе аварии и отказы, без риска повредить реальное дорогостоящее оборудование. Благодаря этой технологии вы быстрее сможете разработать свою систему, и при этом она станет более надежной, ведь вы проверили множество сценариев.
Интеграция с Simulink
В этой статье мы фокусируемся на среде Simulink, но аналогичные механизмы и инструменты для интеграции с РИТМом доступны в среде Engee. О них мы обязательно расскажем в отдельной статье.
Рис. 6. Интеграция КПМ РИТМ и Simulink
Пакет интеграции с Simulink позволяет запускать модели в реальном времени на КПМ РИТМ, работающим под управлением ОСРВ РИТМ.Реальное время.

При помощи Simulink Coder из вашей модели Simulink, которая может содержать диаграммы Stateflow и код MATLAB, для КПМ РИТМ генерируется Си код. Компилятор Си кода поставляется вместе с ОСРВ РИТМ. Полученное приложение по интерфейсу Ethernet загружается на КПМ РИТМ, где ваши алгоритмы запускаются и начинают работать.

Программный модуль интеграции с Simulink предоставляет интерактивный обмен данными между приложением реального времени и хост-компьютером. Можно настраивать параметры модели и управлять выполнением из оригинальной модели Simulink «на лету», а также анализировать полученные данные в MATLAB.

Можно визуализировать сигналы на мониторе, подключенном к КПМ РИТМ или на хост-компьютере в Simulation Data Inspector. Данные симуляции могут записываться на жесткий диск машины реального времени и передаваться на хост-компьютер для дальнейшего анализа и обработки.

Вы можете конструировать графические интерфейсы пользователя для управления работой модели и создания интерактивных визуализаций. Инструмент для графических интерфейсов – MATLAB App Designer, а также сторонние графические тулкиты.


Практика работы на РИТМе
Начнем с демонстрации работы простой модели осциллятора Ван дер Поля. Запускаем модель. Устанавливаем время симуляции 60 с.
Рис. 7. Подготовка к запуску простой модели осциллятора Ван дер Поля.
На рис. 8 ниже отображено, как работает модель непосредственно в Simulink. Результат виден в Dashboard Scope, также можно посмотреть на графики в Simulation Data Inspector.
Рис. 8. Демонстрации работы простой модели осциллятора Ван дер Поля
Как запустить эту модель на КПМ РИТМ? Для этого нужно зайти в настройки модели и в разделе Code Generation вручную изменить TLC файл на ritm.tlc.
Рис. 9. Шаги для запуска модели осциллятора Ван дер Поля на КПМ РИТМ
Теперь переходим в Apps, выбираем Run on Custom Hardware. Появится панель HARDWARE с опцией Monitor&Tune.
Рис. 10. Запуск модели осциллятора Ван дер Поля на КПМ РИТМ
При нажатии на кнопку Monitor&Tune модель автоматически запускается на РИТМе. На мониторе, подключенном к РИТМу, рисуются графики. Модель в Simulink запущена в режиме External Mode – мы также называем это интерактивной симуляцией.
Рис. 11. Работа системы при Gain = 1
В этом режиме модель является интерфейсом приложения реального времени. Мы видим на модели, что идет симуляция и увеличивается время симуляции внизу, но на самом деле это работает приложение реального времени на РИТМе, передавая время симуляции обратно в интерфейс Simulink.

Мы переставили Gain с 1 на 3, и на графиках Simulink и на экране РИТМа видны изменения (рис. 12). Обновление параметров в интерфейсе модели автоматически транслируются в приложение реального времени, а рассчитанные значения сигналов из приложения реального времени автоматически передаются в Simulink.
Рис. 12. Работа системы при Gain = 3.
На экране РИТМа помимо графиков видны логи приложения (справа) и статусная информация (слева): имя модели, ее статус, шаг расчета и т.д. (рис. 13).
Рис. 13. На экране РИТМа отображаются графики. Сверху справа видны логи приложения, а слева статусная информация
Также модель может быть запущена в режиме независимого выполнения, при котором она исполняется автономно на целевой машине и не обменивается данными с Simulink (для этого нужно нажать Build, Deploy & Start). Вы увидите, что приложение запустилось на РИТМе и работает независимо от Simulink.
Рис. 14. Приложение работает на РИТМе независимо от Simulink
Приложение РИТМ.Управление машинами
РИТМ.Управление машинами позволяет настроить подключение: добавить, редактировать или удалить машину. Здесь виден список машин. В режиме редактирования можно установить IP-адрес или порт, в также выбрать машину по умолчанию.
Рис. 16. Раздел интерфейса РИТМ.Управление машинами для работы с документацией
Также РИТМ.Управление машинами предлагает возможности для работы с приложениями: в соответствующей вкладке представлен список загруженных приложений, которые можно запустить, остановить, а также выбрать приложение для автоматического запуска при включении РИТМа (см. рис 15 выше, справа).

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

В разделе «Справка» доступна документация по пакету интеграции, которая встроена в документацию MATLAB и содержит сведения о настройке РИТМа, работе с машиной и документацию по платам ввода-вывода и блокам Simulink.
Запуск моделей
Давайте посмотрим, как использовать РИТМ в качестве стенда быстрого прототипирования алгоритмов управления. Алгоритмы управления будут работать на РИТМе, в то время как к РИТМу будет подключен двигатель постоянного тока через модули ввода-вывода.
Рис. 17. Аппаратный стенд, используемый в примере
Вот подробное описание аппаратного стенда: снизу установлен комплекс полунатурного моделирования РИТМ с цифровыми и аналоговыми платами ввода-вывода. В данном примере (на рис. 17) выходы цифровой платы подключены через силовую плату, содержащую драйверы и усилители, чтобы работать с двигателем постоянного тока. Соответственно, когда мы выдаем управляющий сигнал на двигатель и получаем с него обратную связь с квадратурного энкодера, мы можем управлять им.
Рис. 18. Модель Simulink
Что включает в себя модель Simulink? В середине расположены стандартные блоки Simulink, такие, как PID-регулятор. Это система управления. На вход системы управления приходят заданный угол поворота и текущий угол поворота двигателя. Система управления работает таким образом, чтобы минимизировать разницу между заданным и текущим углом, то есть она позволяет повернуть вал двигателя на желаемый угол.

Справа и слева находятся блоки из библиотеки РИТМ. Слева расположен блок квадратурного декодера. Он берет информацию с квадратурного энкодера, который установлен на двигателе постоянного тока. Это позволяет нам получить угол поворота двигателя. В блоке можно изменять настройки. Справа блок генерации ШИМ-сигнала, который через модуль ввода-вывода и через плату усиления поступает на двигатель постоянного тока.
Рис. 19. Блок «квадратурный декодер», который получает (декодирует) информацию с квадратурного энкодера
Туда же поступают два цифровых сигнала, указывающие направление вращения двигателя (по часовой стрелке или против). В блоках РИТМ вы можете выбрать модуль, с которым хотите работать, а также задать количество цифровых выходов или входов.
Рис. 20. Выбор модуля для работы и настройка количества цифровых выходов или входов
Приложение реального времени загружено в РИТМ. Подключимся к нему из Simulink в режиме Monitor & Tune и посмотрим, как это работает.

PID-контроллер отрабатывает установленное нами значение -pi/2. Поставим pi/2 и видим, что двигатель повернулся в обратную сторону и отработал заданное значение угла поворота.
Рис. 21. Демонстрация регулировки PID-контроллера
В нашем примере получилось, что система управления и двигатель постоянного тока отрабатывают уставку не совсем правильно. Так как мы запустили модель в интерактивном режиме, то можем на лету настраивать настройки PID-контроллера. Меняем настройки: P=0,8, I=0,3. И наблюдаем результаты в реальном времени в окне Simulation Data Inspector, а также на мониторе РИТМа.
Рис. 22. Регулировка параметров прямо во время работы модели
Итог
Как вы могли убедиться, на КПМ РИТМ удобно решать самые разные задачи и тестировать множество сценариев: разрабатывать систему управления, быстро прототипировать алгоритмы в связке с реальным железом и запускать алгоритмы в реальном времени, настраивать параметры системы управления для достижения желаемых характеристик переходных процессов, мониторить и записывать сигналы. В интерфейсе и алгоритмах несложно разобраться.

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