Графический интерфейс
Для демонстрации принципов работы обратного маятника на практических занятиях или для визуального отображения состояния обратного маятника часто бывает удобно использовать оконное приложение с графическим пользовательским интерфейсом. Для этого стенда разработанно именно такое приложение с помощью Qt/C++. Ниже представлены инструкция по установке всего, что нужно для запуска приложения, и основные принципы работы с ним.
Прошивка микроконтроллера
Для работы с графическим приложением необходимо загрузить специальную прошивку в микроконтроллер. В предлагаемой прошивке реализованы Energy-Based Control для управления раскачиванием и LQR-регулятор для стабилизации маятника в верхнем вертикальном положении. Для загрузкип рошивки выполните следующие действия:
- Установите Arduino IDE и настройте все необходимые библиотеки по инструкции.
- Воспользуйтесь еще одной инструкцией для работы с микроконтроллерным модулем, встроенным в стенд.
- Скачайте на свой компьютер Github-репозиторий ReactionWheel_InvertedPendulum.
- Подстыкуйте кабель USB Type-C к компьютеру и к разъему USB, расположенном на задней панели стенда.
- Откройте файл прошивки, расположенный по адресу
ReactionWheel_InvertedPendulum/Firmware/React_wheel_pendulum_practicum/React_wheel_pendulum_practicum.ino. - Скомпилируйте программу нажатием на кнопку с символом галочки в верхней части окна Arduino IDE:

- Если компиляция прошла успешно, и компилятор не выдал никаких ошибок, загрузите программу нажатием кнопки с символом стрелки (находится справа от галочки).
Установка программы RWIP GUI
- Запустите с правами администратора файл
rwip_gui_1.0.0_install.exe, расположенный в папкеrwip_gui. - Перед вами откроектся окно мастера установки. Следуйте инструкциям на экране для полной установки программы. В процессе установки мы рекомендуем вам отметить пункт Создать значок на Рабочем столе.
- По завершении установки выберите пункт Запустить RWIP GUI и нажмите кнопку Завершить.
Работа с программой RWIP GUI
При запуске программы перед вами откроется главное окно. Для начала работы необходимо подключиться к стенду. Для этого:
- в выпадающем списке Последовательный порт выберите нужный COM-порт. Он должен называться COMx (STMicroelectrnics STLink Virtual COM Port), где x - номер вашего порта

- нажмите кнопку Подключить
Иногда подключение происходит не с первого раза. Если вы увидели ошибку подключения, проверьте, что выбрали правильный номер порта, и попробуйте подключиться снова.
При успешном подключении становятся доступны все элементы управления, и на графиках начинают отображаться переменные состояния стенда.

- Кнопка открытия окна параметров программы. В нём вы можете изменить физические параметры стенда и настроить визуальное представление программы.
- Меню подключение к стенду
- Решение LQR-задачи на основе введенных значений матриц критерия оптимальности Q и R. В строках ввода Q вводятся диагональные элементы матрицы штрафов по состоянию в следующем порядке: угол стержня, угловая скорость стержня, угловая скорость маховика. Для решения LQR-задачи нужно нажать кнопку Рассчитать. Справа отображаются коэффициенты обратной связи регулятора, полученные путем решения уравнения Риккати.
- Параметры управления раскачиванием: k - коэффициент обратной связи энергетического управления; epsilon - порог энергии системы, при котором происходит переключение между режимами раскачивания и стабилизации.
- Перевод стенда в режим раскачивания и стабилизации в верхнем вертикальном положении.
- Перевод стенда в режим стабилизации в нижнем вертикальном положении.
- Остановка выполнения команд и сброс питания с двигателя.
- Графики
- Пауза/Продолжить - приостановить/запустить отрисовку графиков
- Сохранения всех графиков в виде изображений в формате png.
- Сохранение всех графиков в виде csv-таблицы. Дальше вы можете использовать её для анализа в других программных пакетах, например, Engee или PlotJuggler.
Стандартный рабочий процесс с программой выглядит следующим образом:
- подключиться к COM-порту
- выбрать параметры управления. Для начала можно выбрать: Q = [1,1,1], R = 1, k = 8, epsilon = 0.12.
- включить управление
- получить графики
- сохранить графики для дальнейшего анализа
- повторить процедуру начиная с выбора коэффициентов