Этот пример показывает через инкрементные итерации проектирования, как реализовать маленькую симуляцию мультивертолета к взлету, мухе и земле в другом месте в городской среде.
Чтобы начать, откройте live скрипт в качестве примера и получите доступ к вспомогательным файлам или нажатием Open Live Script в документации или использованием openExample функция.
openExample('uav/UAVPackageDeliveryExample');
Затем откройте файл проекта Simulink™.
prj = openProject('uavPackageDelivery.prj');
Топ-модель состоит из следующих подсистем и моделей - ссылок:
Станция Наземного управления: Используемый, чтобы управлять и контролировать самолет, в то время как в полете.
Внешние Датчики - Lidar & Camera: Используемый, чтобы соединиться с ранее спроектированным сценарием или Фотореалистической средой симуляции. Они производят показания Лидара из среды, когда самолет летит через нее.
На борту Компьютера: Используемый, чтобы реализовать алгоритмы означал запускаться в бортовом компьютере, независимом от Автопилота.
Мультиротор: Включает низкое качество и середину режима мультивертолета точности, контроллера рейса включая его логику руководства.
Данные проектирования модели содержатся в словаре данных Simulink™ в папке данных (uavPackageDeliveryDataDict.sldd). Кроме того, модель использует Различные Подсистемы (Simulink), чтобы управлять различными настройками модели. Переменные, помещенные в базовое рабочее пространство, конфигурируют эти варианты без потребности к modifiy словарь данных.
Используйте Ярлыки Проекта, чтобы продвинуться через пример. Каждый ярлык настраивает необходимые переменные для проекта.

Кликните по Начинающему ярлыку проекта, который настраивает модель для четырех-waypoint миссии с помощью модели объекта управления мультиротора низкого качества. Запустите uavPackageDelivery модель, которая показывает взлет мультиротора, муху и землю в 3-D графике.

Модель использует блок UAV Path Manager, чтобы определить, который является активным waypoint в течение рейса. Активный waypoint передается в Режим Руководства Селекторный график Stateflow™, чтобы сгенерировать необходимые команды управления внутренним циклом.

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

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

Чтобы безопасно управлять самолетом в этом типе сценария, вам нужен датчик, который предоставляет информацию о среде, такой как датчик лидара к модели. Этот пример использует uavLidarPointCloudGenerator объект, добавленный к сценарию UAV с uavSensor объект. Модель датчика лидара генерирует показания на основе положения датчика и препятствий в среде.
Кликните по Установке ярлыка Сценария Кубоида и Запуска модель. Когда модель запускается, изображение облака точек лидара отображено, когда самолет летит через среду кубоида:

![]()
Чтобы избежать препятствий в среде, модель должна использовать доступные данные о датчике, когда UAV управляет миссией в среде. Чтобы изменить настройку модели, кликните по ярлыку Предотвращения Препятствия. Осциллограф появляется, который показывает самую близкую точку созданию в среде кубоида.
Запустите модель. Когда модель запускается, самолет пытается полететь в прямом пути между созданиями на сайт отбрасывания и избегает препятствий по пути. Заметьте изменение в расстоянии до препятствий в зависимости от времени.
![]()

До этой точки среда была простым сценарием кубоида. Чтобы увеличить точность среды, кликните по Фотореалистическому ярлыку Симуляции, который помещает самолет в более реалистический мир, чтобы полететь через. Вариант PhotorealisticQuadrotor расположен в uavPackageDelivery/photorealisticSimulationEngi/SimulationEnvironmentVariant становится активным. Этот вариант содержит необходимые блоки, чтобы сконфигурировать среду симуляции и датчики, смонтированные на самолете:

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

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

![]()
![]()
Затем цель состоит в том, чтобы управлять миссией путем определения взлета и приземления точки в QGroundControl и использования предотвращения препятствия, чтобы перейти вокруг препятствий вдоль пути. Нажмите Fly полный ярлык Предотвращения Препятствия и выполните эти шаги, чтобы запустить симуляцию:
Запустите QGroundControl.
В QGroundControl загрузите план миссии, названный oaMission.plan расположенный в /utilities/qgc.
Запустите симуляцию.
Когда QGroundControl указывает, что соединяется с системой, загрузите миссию.
В течение рейса см., что самолет пытается следовать за путем, которым управляют, в QGroundControl, одновременно пытаясь постараться не сталкиваться с созданиями в среде.

![]()
В какой-то момент во время рейса, вы будете видеть, что UAV проходит через узкую передачу между двумя созданиями.

![]()
Как последний шаг, кликните по Добавлению Высококачественного ярлыка Объекта, который активирует высокочастотный вариант модели UAV, расположенной в uavPackageDelivery/MultirotorModel/Inner Loop and Plant Model/High-FidelityModel. Этот вариант содержит контроллер внутреннего цикла и высокочастотную модель объекта управления.

Запустите модель. Существуют незначительные изменения в поведении из-за высокочастотной модели, но UAV управляет той же миссией.
Когда вы закончите исследуя модели, закройте файл проекта.
close(prj);