В этом примере показано, как использовать блоки сценария UAV, чтобы симулировать сценарий в Simulink®.
Инициализируйте свой сценарий UAV сетками и uavPlatform
объекты для сценария UAV блокируются, чтобы использовать.
% Initialize the scenario scene = uavScenario(UpdateRate=100,ReferenceLocation=[0 0 0]); %Create a ground for visualization addMesh(scene,"polygon",{[-15 -15; 15 -15; 15 15; -15 15] [-0.5 0]},[0.3 0.3 0.3]); % Add cylinder meshes to scan with lidar sensor addMesh(scene,"cylinder",{[-5 5 2] [0 12]},[0 1 0]); addMesh(scene,"cylinder",{[5 5 2] [0 12]},[0 1 0]); addMesh(scene,"cylinder",{[5 -5 2] [0 12]},[0 1 0]);
Создайте одну платформу UAV, которой будут управлять и другой, чтобы быть стационарными.
% Platform/UAV initial position and orientation initpos = [0 0 -5]; % NED Frame initori = [0 0 0]; % Add UAV Platforms to the Scenario and scale them for easier visualization platform = uavPlatform("platformUAV",scene,ReferenceFrame="NED", ... InitialPosition=initpos,InitialOrientation=eul2quat(initori)); platform2 = uavPlatform("platformUAV2",scene,ReferenceFrame="NED", ... InitialPosition=[0 7 -11],InitialOrientation=eul2quat(initori)); updateMesh(platform,"quadrotor",{2},[0 0 0],eul2tform([0 0 pi])); updateMesh(platform2,"quadrotor",{2},[0 0 0],eul2tform([0 0 pi]));
Создайте uavSensor
с моделью датчика лидара, для использования в симуляции Simulink, при помощи uavLidarPointCloudGenerator
,
и присоедините его к первой платформе UAV. Задайте параметры лидара в блоке UAV Scenario Lidar, потому что модель не загружает их от объекта.
LidarModel = uavLidarPointCloudGenerator;
uavSensor("Lidar",platform,LidarModel,MountingLocation=[0 0 1],MountingAngles=[0 0 180]);
open_system("UAVScenarioModel.slx")
Блок Configuration Сценария UAV важен для симуляции сценария UAV в Simulink и должен выполниться сначала. Поместите его в модель и установите рабочее пространство MATLAB или имя переменной рабочего пространства модели к имени вашего сценария. Каждый раз, когда вы вносите изменения в сцену сценария в MATLAB, открываете этот блок и нажимаете Refresh, чтобы отразить те изменения в Simulink. Измените шаг расчета и шину и имена сигнала по мере необходимости.
Блок UAV Scenario Motion Write обновляет шину движения первой платформы UAV. Это обновляет положение UAV на рисунке от блока Scenario Scope UAV. Откройте параметры блоков Записи Движения Сценария UAV и нажмите Select, чтобы сконфигурировать блок, чтобы обновить platformUAV
. Это - платформа UAV, который мы будем обновлять с этим блоком.
Этот пример использует модель руководства мультиротора с постоянными входными параметрами, чтобы определить следующее положение, чтобы записать в шину движения. Однако можно использовать любой вид контроллера, чтобы обновить шину движения платформы, если можно извлечь входные параметры, чтобы использовать в блоке UAV Scenario Motion Write.
После того, как блок UAV Scenario Motion Write пишет в шину движения, блок UAV Scenario Motion Read считывает данные из шины движения. Диспетчер может использовать эти данные, чтобы определить входные параметры к вашему объекту. Этот пример не использует контроллер, вместо этого читая выходные параметры в блоки Отображения. Откройте параметры блоков Записи Движения Сценария UAV и нажмите Select, чтобы снова выбрать platformUAV
.
Блок UAV Scenario Get Transform получает матрицу преобразования между этими двумя БПЛА. Откройтесь Сценарий UAV Получают параметры блоков Преобразования и устанавливают Исходный параметр Системы координат на platformUAV
и Целевой параметр Системы координат к platformUAV2
.
В этом примере блок Display показывает матрицу преобразования. Однако у контроллера может быть много приложений для данных о преобразовании.
Блок UAV Scenario Lidar включает использование созданного датчика лидара в сценарии. Откройте параметры блоков Лидара Сценария UAV и задайте параметр имени Датчика как platformUAV/Lidar
путем нажатия на Select. Можно изменить настройки лидара путем определения параметров в блоке.
Чтобы визуализировать показания лидара и движение UAV, соедините блок UAV Scenario Lidar с блоком Scenario Scope UAV. Необходимо создать порт путем включения переключателя визуализации для датчиков, которые вы хотите соединить. Если вы недавно добавили датчик лидара, но не смотрите его в таблице, открывайте параметры Блока Configuration Сценария UAV и нажимайте Refresh, и открывайте параметры блоков Лидара Сценария UAV и нажимайте таблицу датчика Refresh.
Включение визуализации датчика включает порт на блоке Scenario Scope UAV с именем платформы и ее датчика.
Выберите анимацию Show в блоке Scenario Scope UAV, чтобы просмотреть сценарий. Запустите модель, чтобы видеть анимацию.