В этом примере показано, как использовать Simulink ® для моделирования квадрокоптера на основе серии мини-дронов Parrot ®.
Для управления моделями и исходными файлами используется Управление проектами.
Для отображения квадрокоптера в трехмерной среде используется Simulink 3D Animation.
Для совместной разработки приложения моделирования полета он предоставляет реализацию шаблона приложения моделирования полета.
Этот пример работает с пакетом поддержки Simulink для Minidrones попугаев.
Примечание.Для успешного выполнения этого примера необходимо установить компилятор C/C + +.
Для создания и открытия рабочей копии файлов проекта в данном примере выполните следующую команду:
На следующей схеме показаны физические характеристики квадрокоптера:
Ось
Масса и инерция
Роторы

Ось
Ось тела квадрокоптера центрирована в центре тяжести.
Ось X начинается в центре тяжести и указывает в направлении вдоль носа квадрокоптера.
Ось Y начинается в центре тяжести и указывает вправо от квадрокоптера.
Ось Z начинается в центре тяжести и указывает вниз от квадрокоптера, следуя правому правилу.
Масса и инерция
Мы предполагаем, что все тело работает как частица. Файл vehicleVars содержит значения инерции и массы.
Роторы
Ротор No 1 вращается положительно относительно оси Z. Он расположен параллельно плоскости xy, -45 градусов от оси X.
Ротор No 2 вращается отрицательно относительно оси z корпуса. Он расположен параллельно плоскости xy, -135 градусов от оси X.
Ротор No 3 имеет такое же направление вращения, как и ротор No 1. Он расположен параллельно плоскости xy, на 135 градусов от оси X.
Ротор No 4 имеет такое же направление вращения, как и ротор No 2. Он расположен параллельно плоскости xy в 45 градусов от оси X.
В этом примере используется подход, определенный Prouty [1] и адаптированный к тяжелому квадрокоптеру Ponds et al. [2].
Для управления квадрокоптер использует дополнительный фильтр для оценки положения, а фильтры Калмана - для оценки положения и скорости. Пример реализует:
PID-контроллер для управления тангажем/креном
Контроллер PD для рыскания
Контроллер ПД для контроля положения в координатах «север-восток-вниз»
controllerVars содержит переменные, относящиеся к контроллеру. estimatorVars содержит переменные, относящиеся к оценщику.
Пример реализует контроллер и оценщики в качестве модельных подсистем, позволяя оценить несколько комбинаций оценщиков и контроллеров для проектирования.
Для ввода данных в квадрокоптер (в координатах тангажа, крена, рыскания, севера (X), востока (Y), вниз (Z)) используйте одно из следующих значений и измените VSS_COMMAND переменная в рабочей области:
Блок редактора сигналов
Джойстик
Ранее сохраненные данные
Данные электронной таблицы
В примере используется набор датчиков для определения его состояний:
Инерционный измерительный блок (IMU) для измерения угловых скоростей и поступательных ускорений.
Камера для оптической оценки потока.
Гидролокатор для измерения высоты.
В примере сохраняются характеристики датчиков в файле. sensorVars. Чтобы включить динамику датчика в эти измерения, можно изменить VSS_SENSORS переменная в рабочей области.
Модели реализуют несколько блоков окружающей среды аэрокосмической Blockset™, в том числе для моделей атмосферы и гравитации. Чтобы включить эти модели, можно изменить VSS_ENVIRONMENT в рабочей области для переключения между переменными и фиксированными моделями среды.
Модель использует trimLinearizeOpPoint для линеаризации нелинейной модели квадрокоптера с помощью Simulink Control Design (R).
Чтобы убедиться, что инструмент генерации траектории работает правильно, пример реализует тест в trajectoryTest файл. Дополнительные сведения об этом см. в разделе Начало проектирования управления Simulink (Simulink Control Design).
Можно визуализировать переменные для квадрокоптера одним из следующих способов.
Использование инспектора данных моделирования.
С помощью блоков бортовых приборов.
Переключение между различными подсистемами вариантов визуализации. Можно переключаться между различными исполнительными подсистемами, изменив VSS_VISUALIZATION переменная. Следует отметить, что одним из этих вариантов является анимация FlireGear. Чтобы использовать эту анимацию, необходимо добавить в проект модель квадрокоптера, совместимую с FlireGear. Программное обеспечение не включает эту модель.
Инструмент формирования траектории, использующий метод Дубина, создает набор навигационных ППМ. Для создания траектории с набором ППМ этот метод использует набор поз, определяемых положением, курсом, кривизной поворота и направлением поворота.
Чтобы запустить инструмент, убедитесь, что проект открыт и запущен:
Отображается следующий интерфейс:

Интерфейс имеет несколько панелей:
Waypoints
Эта панель описывает позы, необходимые инструменту траектории. Для определения этих позиций панель использует текстовые поля:
Север и Восток (положение в метрах)
Курс (градусы от Севера)
Кривизна (кривизна поворота в метрах ^ -1)
Поворот (направление по часовой стрелке или против часовой стрелки)
Список поз появляется в списке ППМ справа от текстовых полей.
Чтобы добавить ППМ, введите значения позы в поля редактирования и нажмите кнопку «Добавить». Новый ППМ появится в списке ППМ на той же панели.
Чтобы изменить характеристики ППМ, выберите ППМ в списке и нажмите кнопку «Изменить». Характеристики ППМ отображаются в полях редактирования. Отредактируйте требуемые характеристики, затем нажмите кнопку ОК. Для отмены изменений нажмите кнопку Отмена.
Чтобы удалить ППМ, в списке ППМ выберите ППМ и нажмите кнопку «Удалить».
Бесполетная зона
Панель определяет местоположение и характеристики бесполетных зон. Для определения бесполетной зоны панель использует текстовые поля:
Север и Восток (положение в метрах)
Радиус (расстояние в метрах)
Запас (запас прочности в метрах)
Используйте кнопки «Добавить», «Удалить», «Изменить», «ОК» и «Отмена» так же, как для панели «ППМ».
Отображенная траектория
На этой панели отображается траектория над схемой воздушного пространства кампуса Apple Hill на основе ППМ и характеристик бесполетной зоны.
Чтобы создать траекторию, добавьте характеристики ППМ и бесполетной зоны к соответствующим панелям, а затем щелкните Генерировать траекторию (Generate Trajectory).
Чтобы сохранить траекторию, которая в данный момент находится на панели, нажмите кнопку «Сохранить». Эта кнопка сохраняет только последнюю траекторию.
Чтобы загрузить последнюю сохраненную траекторию, щелкните Загрузить (Load).
Чтобы загрузить траекторию по умолчанию, нажмите кнопку Загрузить по умолчанию (Load Default).
Чтобы очистить значения на панели ППМ и бесполетной зоны, нажмите кнопку «Очистить».
Данные по умолчанию содержат позы для конкретных мест, в которых игрушечный квадрокоптер использует свои камеры, чтобы пилот на земле мог оценить высоту снега на крыше. Для каждого из вспомогательных генераторов энергии были определены три бесполетные зоны, поэтому в случае отказа в квадрокоптере он не наносит никакого ущерба инфраструктуре кампуса.
Когда в примере создается траектория для данных по умолчанию, график должен выглядеть следующим образом:

Красная линия представляет траекторию, черные маркеры x определяют либо изменение траектории, либо конкретную позу. Синие линии, представляющие заголовок для этого конкретного ППМ, сопровождают конкретные позы. Бесполетные зоны представлены зелеными кругами.
Если у вас есть лицензия Simulink 3D Animation, вы также можете просмотреть траекторию в 3-D представлении кампуса Apple Hill:

Примечание.В целях визуализации 3D представление квадрокоптера не соответствует масштабу среды.
[1] Prouty, R. Характеристики вертолета, устойчивость и управление. PWS Publishers, 2005.
[2] Пруды, П., Махони, Р., Корк, П. Моделирование и управление большим роботом-квадротором. Инженерная практика контроля. 2010.