В этом примере показано, как использовать Simulink ® для моделирования квадрокоптера, основанного на серии мини-дронов Parrot ®.
Чтобы управлять моделью и исходными файлами, он использует Project Management.
Чтобы показать квадрокоптер в трехмерном окружении, он использует Simulink 3D Animation.
Для совместной разработки приложения для симуляции рейса в нем предусмотрена реализация шаблона приложения Flight Simulation.
Этот пример работает с пакетом поддержки Simulink для Parrot Minidrones.
Примечание.Чтобы успешно запустить этот пример, необходимо установить компилятор C/C + +.
Выполните следующую команду, чтобы создать и открыть рабочую копию файлов проекта для этого примера:
Следующая схема показывает физические характеристики квадрокоптера:
Ось
Масса и инерция
Роторы
Ось
Ось тела квадрокоптера центрируется в центре тяжести.
Ось X начинается в центре тяжести и указывает в направлении вдоль носа квадрокоптера.
Ось y начинается в центре тяжести и указывает справа от квадрокоптера.
Ось z начинается в центре тяжести и указывает вниз от квадрокоптера, следуя правилу правой руки.
Масса и инерция
Мы предполагаем, что все тело работает как частица. Файл vehicleVars
содержит значения инерции и массы.
Роторы
Ротор # 1 вращается положительно относительно оси Z. Он расположен параллельно xy-плоскости, -45 степени от оси X.
Ротор # 2 вращается отрицательно относительно оси Z тела. Он расположен параллельно xy-плоскости, -135 степени от оси X.
Ротор # 3 имеет то же направление вращения, что и ротор # 1. Расположен параллельно xy-плоскости, в 135 степенях от оси X.
Ротор # 4 имеет то же направление вращения что и ротор # 2. Он расположен параллельно xy-плоскости, в 45 степенях от оси X.
Этот пример использует подход, заданный Прути [1] и адаптированный к квадрокоптеру с тяжелым лифтом Ponds et al [2].
Для управления квадрокоптер использует дополнительный фильтр для оценки положения, и фильтры Калмана для оценки положения и скорости. Пример реализует:
ПИД-регулятор для управления шагом/креном
A- контроллера PD для рыскания
ПД- контроллера для управления положением в координатах Северо-Восток-Вниз
The controllerVars
файл содержит переменные, относящиеся к контроллеру. The estimatorVars
файл содержит переменные, относящиеся к оценщику.
Пример реализует контроллер и оценщики как подсистемы модели, позволяя оценить несколько комбинаций оценщиков и контроллеров для проекта.
Для предоставления входов квадрокоптеру (в координатах тангажа, крена, рыскания, Севера (X), Востока (Y), Вниз (Z)) используйте одну из следующих команд и измените VSS_COMMAND
переменная в рабочей области:
Блок Редактор
Джойстик
Ранее сохраненные данные
Данные электронных таблиц
Пример использует набор датчиков, чтобы определить его состояния:
Инерциальный измерительный блок (IMU) для измерения угловых скоростей и поступательных ускорений.
Камера для оптического потока оценки.
Гидролокатор для измерения высоты.
Пример хранит характеристики для датчиков в файле sensorVars
. Чтобы включить динамику датчика с этими измерениями, можно изменить VSS_SENSORS
переменная в рабочей области.
Модели реализуют несколько блоков Aerospace Blockset™ окружения, включая блоки для моделей атмосферы и гравитации. Чтобы включить эти модели, можно изменить VSS_ENVIRONMENT
переменная в рабочей области, чтобы переключаться между моделями переменной и фиксированного окружения.
Модель использует trimLinearizeOpPoint
для линеаризации нелинейной модели квадрокоптера с помощью Simulink Control Design(R).
Чтобы убедиться, что инструмент генерации траектории работает правильно, пример реализует тест в trajectoryTest
файл. Для получения дополнительной информации о том, как это сделать, смотрите в Simulink Control Design Запуск с Simulink Control Design (Simulink Control Design)).
Можно визуализировать переменные для квадрокоптера одним из следующих способов:
Использование Данные Моделирования Inspector.
Использование полетных приборных блоков.
Переключение между различными подсистемами варианта визуализации. Можно переключаться между различными подсистемами вариантов путем изменения VSS_VISUALIZATION
переменная. Обратите внимание, что одним из этих вариантов является анимация FlightGear. Чтобы использовать эту анимацию, необходимо добавить к проекту совместимую с FlightGear модель квадрокоптера. Программное обеспечение не включает эту модель.
Инструмент генерации траектории, используя метод Дубина, создает набор навигационных путевых точек. Чтобы создать траекторию с набором путевых точек, этот метод использует набор положений, заданных положением, курсом, кривизной поворота и направлением поворота.
Чтобы запустить инструмент, убедитесь, что проект открыт и запущен:
Следующий интерфейс отображений:
Интерфейс имеет несколько панелей:
Waypoints
Эта панель описывает положения, необходимые инструменту траектории. Чтобы определить эти положения, панель использует текстовые поля:
Север и Восток (положение в метрах)
Курс (степени с севера)
Кривизна (кривизна поворота в метрах ^ -1)
Поворот (направление по часовой стрелке или против часовой стрелки)
Список положений появится в списке путевой точки справа от текстовых полей.
Чтобы добавить путевую точку, введите значения положения в полях редактирования и нажмите кнопку Add.Новая путевая точка появится в списке путевой точки на той же панели.
Чтобы отредактировать характеристики путевой точки, выберите путевую точку в списке и нажмите кнопку Изменить. Характеристики путевых точек отображаются в полях редактирования. Отредактируйте характеристики по желанию, затем нажмите кнопку OK. Чтобы отменить изменения, нажмите кнопку Отмена.
Чтобы удалить путевую точку, в списке путевой точки выберите путевую точку и нажмите кнопку Удалить.
Бесполётная зона
Панель определяет местоположение и характеристики бесполетных зон. Для определения бесполетной зоны на панели используются текстовые поля:
Север и Восток (положение в метрах)
Радиус (расстояние в метрах)
Запас (запас прочности в метрах)
Используйте кнопки «Добавить», «Удалить», «Редактировать», «ОК» и «Отмена» так же, как и для панели «Путевые точки».
Отображенная траектория
Эта панель строит график траектории над воздушной схемой кампуса Apple Hill, основанный на путевых точках и характеристиках бесполетной зоны.
Чтобы сгенерировать траекторию, добавьте характеристики путевой точки и бесполетной зоны к соответствующим панелям, а затем щелкните Сгенерировать траекторию (Generate Trajectory).
Чтобы сохранить траекторию, которая находится в данный момент на панели, нажмите кнопку «Сохранить». Эта кнопка сохраняет только последнюю траекторию.
Чтобы загрузить последнюю сохраненную траекторию, нажмите кнопку Загрузить.
Чтобы загрузить траекторию по умолчанию, нажмите кнопку Load Default.
Чтобы удалить значения на панели путевой точки и бесполетной зоны, нажмите кнопку Очистить (Clear).
Данные по умолчанию содержат положения для конкретных мест, в которых игрушечный квадрокоптер использует свои камеры, чтобы пилот на земле мог оценить высоту снега на крыше. Для каждого из вспомогательных генераторов степени были определены три бесполётные зоны, поэтому в случае наличия отказа в квадрокоптере он не наносит никакого ущерба инфраструктуре кампуса.
Когда пример генерирует траекторию для данных по умолчанию, график должен появиться следующим образом:
Красная линия представляет траекторию, черные маркеры x определяют либо изменение траектории, либо определенное положение. Синие линии, которые представляют заголовок для этой конкретной точки пути, сопровождают определенные положения. Бесполётные зоны представлены зелеными кругами.
Если у вас есть лицензия Simulink 3D Animation, можно также просмотреть траекторию в 3-D представлении кампуса Apple Hill:
Примечание. По причинам визуализации 3D представление квадрокоптера не находится в той же шкале, что и окружение.
[1] Прути, Р. Вертолётная Эффективность, Стабильность и Управление. PWS Publishers, 2005.
[2] Ponds, P., Mahony, R., Corke, P. Моделирование и управление большим квадроторным роботом. Контрольная инженерная практика. 2010.