fixedwing

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

Описание

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

Для БПЛА мультиротора смотрите 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 из-за ввода команд.

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

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);

Симулируйте состояние 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,:))

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

Можно также построить траекторию фиксированного крыла с помощью plotTransforms. Создайте векторы перевода и вращения из симулированного состояния. Downsample (каждый 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

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

Больше о

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

Ссылки

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

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

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

Введенный в R2018b