fixedwing

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

Описание

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

Для мультироторных БПЛА см. multirotor.

Создание

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

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

Свойства

расширить все

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

Пример: "myUAV1"

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

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

  • '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

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

Тип модели наведения БПЛА, заданный как 'FixedWingGuidance'.

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

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

controlКоманды управления для БПЛА
derivativeПроизводная по времени от состояний БПЛА
environmentВходы окружающей среды для БПЛА
stateВектор состояния БПЛА

Примеры

свернуть все

В этом примере показано, как использовать fixedwing модель руководства для симуляции изменения состояния БПЛА из-за входных команд.

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

model = fixedwing;

Установите скорость воздуха транспортного средства путем изменения структуры от state функция.

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

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

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

Создайте окружение по умолчанию без ветра.

e = environment(model);

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

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

Симулируйте состояние БПЛА с помощью ode45 интегрирование. The y поле выводит состояния БПЛА фиксированного типа на основе этой симуляции.

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,:))

Figure contains an axes. The axes contains an object of type line.

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

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

Figure contains an axes. The axes contains 125 objects of type patch, line.

Подробнее о

расширить все

Ссылки

[1] Рэндал У. Бород и Тимоти У. Маклейн. «Глава 9». Теория и практика малых беспилотных самолетов, NJ: Princeton University Press, 2012.

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

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

.
Введенный в R2018b