В этом примере показано с помощью инкрементных итераций конструирования, как реализовать небольшое мультиоптерное моделирование для взлета, облета и посадки в другом месте в городской среде.
Чтобы начать работу, откройте пример сценария в реальном времени и получите доступ к вспомогательным файлам, нажав кнопку Открыть сценарий в реальном времени в документации или используя openExample функция.
openExample('uav/UAVPackageDeliveryExample');Затем откройте файл проекта Simulink™.
prj = openProject('uavPackageDelivery.prj');
Верхняя модель состоит из следующих подсистем и ссылок на модель:
Наземная станция управления: используется для управления и контроля самолета в полете.
Внешние датчики - Lidar & Camera: используется для подключения к ранее разработанному сценарию или среде фотореалистичного моделирования. Они производят показания Лидара из окружающей среды, когда самолет пролетает через нее.
On Board Computer: Используется для реализации алгоритмов, предназначенных для работы в бортовом компьютере, независимом от Autopilot.
Multirotor: Включает режим мультикоптера низкой и средней точности, контроллер полета, включая логику наведения.
Конструкторские данные модели содержатся в Simulink™ словаре данных в папке данных (uavPackageDeliveryDataDict.sldd). Кроме того, модель использует исполнительные подсистемы (Simulink) для управления различными конфигурациями модели. Переменные, размещенные в базовой рабочей области, конфигурируют эти варианты без необходимости изменения словаря данных.
Используйте ярлыки проекта, чтобы просмотреть пример. Каждый ярлык задает требуемые переменные для проекта.

Щелкните ярлык проекта Начало работы (Getting Started), который настраивает модель для миссии с четырьмя ППМ с использованием модели многороторной установки с низкой точностью. Запустить uavPackageDelivery модель, которая показывает многороторный расчет, полет и посадку на 3-D участке.

Модель использует блок БПЛА Path Manager для определения активного ППМ на протяжении всего полета. Активный ППМ передается на Stateflow™ диаграмму выбора режима наведения для формирования необходимых команд управления внутренним контуром.

Как только вы сможете выполнять основное задание, вы будете готовы интегрировать моделирование с программным обеспечением наземной станции, чтобы лучше управлять полетом самолета. Для этого необходимо загрузить и установить программное обеспечение QGroundControl Ground Control Station.
Модель использует БПЛА Toolbox™ mavlinkio для установления соединения между Simulink и QGroundControl. Соединение реализовано в виде системного блока MATLAB ®, расположенного в uavPackageDelivery/Ground Control Station/Get Flight Mission/QGC/MAVLink Interface.
Чтобы проверить связь между Simulink и QGroundControl, выполните следующие действия.
Щелкните на ярлыке «Подключение к проекту GCS».
Запустить QGroundControl.
В QGroundControl загрузите план миссии с именем shortMission.plan расположен в /utilities/qgc.
Запустите моделирование.
Если QGroundControl указывает, что он подключен к системе, загрузите задание.
Как только самолет взлетит, вы увидите, как БПЛА выполняет свою миссию, как отправлено QGC, как показано ниже.

Можно изменить миссию, добавив ППМ или переместив те, которые уже находятся в миссии. Загрузите миссию, и самолет должен отреагировать на эти изменения.
Теперь, когда модель самолета может вытекать из наземной станции управления, рассмотрим среду, в которой летает самолет. Для этого примера несколько городских кварталов моделируются в кубоидном сценарии с использованием uavScenario объект. Сценарий основан на городском блоке, показанном на левом рисунке ниже.

Чтобы безопасно летать на самолёте по сценарию этого типа, нужен датчик, предоставляющий модели информацию об окружающей среде, например лидарный датчик. В этом примере используется uavLidarPointCloudGenerator объект добавлен в сценарий БПЛА с uavSensor объект. Модель лидарного сенсора генерирует показания на основе позы сенсора и препятствий в окружающей среде.
Щелкните на ярлыке Настройка сценария Cuboid (Setting a Cuboid Scenial) и Выполните модель (Run the model). Во время работы модели при пролете самолета через кубовидную среду отображается изображение облака точек лидара:

Чтобы избежать препятствий в окружающей среде, модель должна использовать имеющиеся данные датчиков, когда БПЛА выполняет полет в окружающей среде. Чтобы изменить конфигурацию модели, щелкните ярлык Предотвращение препятствий. Появляется область, которая показывает ближайшую точку к построению в кубовидной среде.
Запустите модель. По мере запуска модели самолёт пытается лететь по прямому пути между зданиями к месту падения и избегает препятствий по пути следования. Обратите внимание на изменение расстояния до препятствий с течением времени.

До этого момента среда была простым кубоидным сценарием. Чтобы повысить точность среды, щелкните ярлык «Фотореалистичное моделирование» (Photorealistic Simulation), который помещает самолет в более реалистичный мир для полета. Вариант Photore.Quadrotor расположен в uavPackageDelivery/photorealisticSimulationEngi/SimulationEnvironmentVariant становится активным. Этот вариант содержит необходимые блоки для конфигурирования среды моделирования и датчиков, установленных на самолете:

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

Затем щелкните ярлык Fly full mission, который устанавливает связь с QGroundControl из шага 2 для загрузки миссии в фотореалистичную среду. Чтобы запустить моделирование, выполните следующие действия.
Запустить QGroundControl.
В QGroundControl загрузите план миссии с именем shortMission.plan расположен в /utilities/qgc.
Запустите моделирование.
Если QGroundControl указывает, что он подключен к системе, загрузите задание.
Когда самолет начинает летать, вы можете изменить миссию в QGroundControl, добавив ППМ или переместив те, которые уже находятся в миссии. Загрузите миссию, и самолет должен отреагировать на эти изменения. На протяжении всего полета вы увидите летающий самолет по сценарию.

Далее, цель состоит в том, чтобы выполнить задание, указав точку взлета и посадки в QGroundControl и используя предотвращение препятствий для навигации вокруг препятствий вдоль траектории. Щелкните на ярлыке Выполнить полное предотвращение препятствий (Fly full Disporence Awavance) и выполните следующие действия для запуска моделирования.
Запустить QGroundControl.
В QGroundControl загрузите план миссии с именем oaMission.plan расположен в /utilities/qgc.
Запустите моделирование.
Если QGroundControl указывает, что он подключен к системе, загрузите задание.
На протяжении всего полета наблюдайте за тем, как самолет пытается следовать по командованному пути в QGroundControl, в то же время пытаясь избежать столкновения со зданиями в окружающей среде.

В какой-то момент во время полета вы увидите, как БПЛА проходит через узкий перевал между двумя зданиями.

В качестве последнего шага щелкните на ярлыке Add a High Fidelity Plant, который активирует вариант high-fidelity модели БПЛА, расположенной по адресу uavPackageDelivery/MultirotorModel/Inner Loop and Plant Model/High-FidelityModel. Этот вариант содержит контроллер внутреннего контура и модель завода высокой точности.

Запустите модель. Есть незначительные изменения в поведении из-за модели high-fidelity, но БПЛА летит тем же заданием.
По завершении исследования моделей закройте файл проекта.
close(prj);