fixedwing

Модель Guidance для БПЛА фиксированного крыла

Описание

Объект fixedwing представляет модель руководства уменьшаемого порядка для беспилотного воздушного автомобиля (UAV). Модель аппроксимирует поведение системы с обратной связью, состоящей из контроллера автопилота и фиксированного крыла кинематическая модель для 3-D движения.

Примечание

Этот объект требует, чтобы вы установили Библиотеку UAV для Robotics System Toolbox™. Чтобы установить дополнения, используйте roboticsAddons и выберите желаемое дополнение.

Для БПЛА мультиротора смотрите multirotor.

Создание

model = fixedwing создает модель движения фиксированного крыла со значениями точности double для входных параметров, выходных параметров и параметров конфигурации модели руководства.

model = fixedwing(DataType) задает точность типа данных (свойство DataType) для входных параметров, выходных параметров и параметров настроек модели руководства.

Свойства

развернуть все

Имя UAV, используемого, чтобы дифференцировать его от других моделей в рабочей области, заданной как скаляр строки.

Пример: "myUAV1"

Типы данных: string

Настройка контроллера UAV, заданная как структура параметров. Задайте эти параметры, чтобы настроить поведение внутреннего контроля UAV. Задайте пропорциональное (P) и производная (D) усиления для динамической модели и других параметров UAV. Структура для БПЛА фиксированного крыла содержит эти поля с перечисленными значениями по умолчанию:

  • 'PDRoll' - [3402.97 116.67]

  • 'PHeight' - 3.9

  • 'PFlightPathAngle' - 39

  • 'PAirspeed' - 0.39

  • 'FlightPathAngleLimits' - [-pi/2 pi/2] (угол [min max] в радианах)

Пример: struct('PDRoll',[3402.97,116.67],'PHeight',3.9,'PFlightPathAngle',39,'PAirSpeed',0.39,'FlightPathAngleLimits',[-pi/2 pi/2])

Типы данных: struct

Это свойство доступно только для чтения.

Тип модели руководства UAV, заданный как 'FixedWingGuidance'.

Типы числовых данных ввода и вывода, заданные или как 'double' или как 'single'. Выберите тип данных на основе возможного программного обеспечения или аппаратных ограничений.

Функции объекта

controlУправляйте командами для UAV
derivativeПроизводная времени состояний UAV
environmentЭкологические входные параметры для UAV
stateВектор состояния UAV

Примеры

свернуть все

Этот пример показывает, как использовать модель руководства fixedwing, чтобы моделировать изменение в состоянии UAV из-за ввода команд.

Примечание: Чтобы использовать алгоритмы UAV, необходимо установить Библиотеку UAV для Robotics System Toolbox®. Чтобы установить, используйте roboticsAddons .

Создайте модель руководства фиксированного крыла.

model = fixedwing;

Установите воздушную скорость автомобиля путем изменения структуры от функции state.

s = state(model);
s(4) = 5; % 10 m/s

Задайте команду управления, u, который поддерживает воздушную скорость и дает угол вращения pi/12.

u = control(model);
u.RollAngle = pi/12;
u.AirSpeed = 5;

Создайте стандартную среду без ветра.

e = environment(model);

Вычислите производную времени состояния, учитывая текущее состояние, управляйте командой и средой.

sdot = derivative(model,s,u,e);

Моделируйте состояние UAV использование интегрирования ode45. Поле y выводит фиксированное крыло состояния UAV на основе этой симуляции.

simOut = ode45(@(~,x)derivative(model,x,u,e), [0 50], s);
size(simOut.y)
ans = 1×2

     8   904

Постройте изменение в углу вращения на основе симуляции вывод. Угол вращения является 7-й строкой simOut.y вывод.

plot(simOut.y(7,:))

Можно также построить траекторию фиксированного крыла с помощью plotTransforms. Создайте векторы перевода и вращения из моделируемого состояния. Субдискретизируйте (каждый 30-й элемент) и транспонируйте элементы simOut и преобразуйте Углы Эйлера в кватернионы. Задайте mesh как файл fixedwing.stl и положительное Z-направление как "down". Отображенное представление показывает UAV, делающий постоянный поворот на основе постоянного угла вращения.

downsample = 1:30:size(simOut.y,2);
translations = simOut.y(1:3,downsample)'; % xyz-position
rotations = eul2quat([simOut.y(5,downsample)',simOut.y(6,downsample)',simOut.y(7,downsample)']); % ZYX Euler
plotTransforms(translations,rotations,...
    'MeshFilePath','fixedwing.stl','InertialZDirection',"down")
hold on
plot3(simOut.y(1,:),-simOut.y(2,:),simOut.y(3,:),'--b') % full path
xlim([-10.0 10.0])
ylim([-20.0 5.0])
zlim([-0.5 4.00])
view([-45 90])
hold off

Больше о

развернуть все

Ссылки

[1] Рэндал В. Бирд и Тимоти В. Маклэйн. "Глава 9". Маленькая беспилотная теория самолета и практика, NJ: Издательство Принстонского университета, 2012.

Расширенные возможности

Генерация кода C/C++
Генерация кода C и C++ с помощью MATLAB® Coder™.

Введенный в R2018b