Главная » Просмотр файлов » Биард Р.У., МакЛэйн Т.У. Малые БЛА - теория и практика (2015)

Биард Р.У., МакЛэйн Т.У. Малые БЛА - теория и практика (2015) (1245764), страница 49

Файл №1245764 Биард Р.У., МакЛэйн Т.У. Малые БЛА - теория и практика (2015) (Биард Р.У., МакЛэйн Т.У. Малые беспилотные летательные аппараты: теория и практика (2015)) 49 страницаБиард Р.У., МакЛэйн Т.У. Малые БЛА - теория и практика (2015) (1245764) страница 492021-01-16СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 49)

C.3 и указывают, каким образом координатыприсваиваются каждой метке. Для того чтобы создать рисунок в виде линий, не-СверхуСпередиСправаРис. C.3. Рисунок, используемый для создания анимации летательного аппарата. Использованы стандартные оси связанной системы, где ось x указывает вперед, ось y указывает вправо, а ось z указывает вниз корпуса самолета274Приложение Cобходимо будет соединить точки так, чтобы провести каждую из требуемых линий сегментов. Чтобы это можно было сделать одной непрерывной линией, некоторые сегменты потребуется повторить. Чтобы нарисовать летательныйаппарат, представленный на рис. C.3, следует пройти через следующие вершины: 1 ­ 2 ­ 3 ­ 4 ­ 1 ­ 5 ­ 6 ­ 2 ­ 6 ­ 7 ­ 3 ­ 7 ­ 8 ­ 4 ­ 8 ­ 5 ­ 1 ­ 9 ­ 10 ­ 2 ­ 10 ­11 ­ 3 ­ 11 ­ 12 ­ 4 ­ 12 ­ 9.

Программа Matlab, которая задает локальные координаты летательного аппарата, приводится ниже.123456789101112131415161718192021222324252627282930313233function XYZ = spacecraftPoints% define points on the spacecraft in local NEDcoordinatesXYZ = [...110;...% point 11­10;...% point 2­1­10;...% point 3­110;...% point 4110;...% point 111 ­2;... % point 51­1 ­2;...

% point 61­10;...% point 21­1 ­2;... % point 6­1­1 ­2;... % point 7­1­10;...% point 3­1­1 ­2;... % point 7­11 ­2;... % point 8­110;...% point 4­11 ­2;... % point 811 ­2;... % point 5110;...% point 11.51.5 0;...% point 91.5 ­1.5 0;...% point 101­10;...% point 21.5 ­1.5 0;...% point 10­1.5 ­1.5 0;...% point 11­1­10;...% point 3­1.5 ­1.5 0;...% point 11­1.51.5 0;...% point 12­110;...% point 4­1.51.5 0;...% point 121.51.5 0;...% point 9]';Приложение C275Конфигурация летательного аппарата задана углами Эйлера ц, и и ш, которые представляют углы крена, тангажа и рысканья соответственно, а pn, pe, pdпредставляют положение на оси, направленной на север, восток и вниз соответственно.

Точки на летательном аппарате могут быть повернуты и перемещены по прямой с помощью программы Matlab, приводимой ниже.1234567891011121314151617function XYZ=rotate(XYZ,phi,theta,psi)% define rotation matrixR_roll = [...1, 0, 0;...0, cos(phi), ­sin(phi);...0, sin(phi), cos(phi)];R_pitch = [...cos(theta), 0, sin(theta);...0, 1, 0;...­sin(theta), 0, cos(theta)];R_yaw = [...cos(psi), ­sin(psi), 0;...sin(psi), cos(psi), 0;...0, 0, 1];R = R_roll*R_pitch*R_yaw;% rotate verticesXYZ = R*XYZ;1 function XYZ = translate(XYZ,pn,pe,pd)2 XYZ = XYZ + repmat([pn;pe;pd],1,size(XYZ,2));Создание рисунка летательного аппарата в требуемом положении завершается с помощью следующей программы Matlab.1 function handle2 = drawSpacecraftBody(pn,pe,pd,phi,theta,psi, handle, mode)3% define points on spacecraft in local NED4%coordinates5NED = spacecraftPoints;6% rotate spacecraft by phi, theta, psi7NED = rotate(NED,phi,theta,psi);8% translate spacecraft to [pn; pe; pd]9NED = translate(NED,pn,pe,pd);10% transform vertices from NED to XYZ11R = [...120, 1, 0;...27613141516171819202122232425Приложение C1, 0, 0;...0, 0, ­1;...];XYZ = R*NED;% plot spacecraftif isempty(handle),handle= plot3(XYZ(1,:),XYZ(2,:),XYZ(3,:), `EraseMode', mode);elseset (handle,`XData’,XYZ(1,:),`YData',XYZ(2,:),`ZData’,XYZ(3,:));drawnowendСтроки 11–16 используются для преобразованиякоординат из системы с осями, направленными насевер, восток и вниз (NED) в систему координатрисунка, используемую в Matlab, которая имеет осьx, находящуюся от наблюдателя справа, ось y, направленную на экран монитора, и ось z, направленную вверх.

Команда plot3 используется в строках 19и 20 для изображения исходного рисунка, и команда set используется для изменения XData, YData иZData в строках 22 и 23. Файл Simulink, которыйРис. C.4. Изображение летаможно использовать для отладки анимации, нахотельного аппарата с помодится на веб-сайте учебника. Изображение летащью линий и команды plot3тельного аппарата приводится на рис.

C.4.Недостаток применения анимации с использованием для этого функции spacecraftPoints, чтобы задать точки летательногоаппарата, состоит в том, что эта функция должна вызываться всякий раз, когда происходит обновление анимации. Поскольку эти точки статичные, то задать их необходимо только один раз. Функциональная маска Simulink можетиспользоваться, чтобы задавать точки в начале моделирования. Маскированиеm-файла drawSpacecraft в Simulink и последующий щелчок по Edit Mask приведут к появлению окна, похожего на то, что представлено на рис. C.5. Точкилетательного аппарата могут быть заданы в окне инициализации, как показанона рис. C.5, и преданы в m-файл drawSpacecraft в качестве параметра.Приложение C277Рис. C.5. Функциональная маска в Simulink позволяет инициализировать точки летательного аппарата в начале процесса моделированияC.4.

Пример анимации летательного аппарата, использующего вершины и граниКонтурный рисунок, представленый на рис. C.4, может быть визуально улучшен за счет использования в Matlab конструкции «вершина-грань». Вместокоманды plot3 для проведения непрерывной линии используется команду patch,чтобы нарисовать грани, заданные вершинами и цветом. Вершины, грани и цветадля воздушного аппарата задаются в программе Matlab, приведенной ниже.12345678910111213141516function [V, F, patchcolors]=spacecraftVFC% Define the vertices (physical location of verticesV = [...110;...% point 11­10;...% point 2­1­10;...% point 3­110;...% point 411 ­2;...

% point 51­1 ­2;... % point 6­1­1 ­2;... % point 7­11 ­2;... % point 81.51.5 0;...% point 91.5 ­1.5 0;...% point 10­1.5 ­1.5 0;...% point 11­1.51.5 0;...% point 12];2781718192021222324252627282930313233343536373839Приложение C% define faces as a list of vertices numbered aboveF = [...1, 2, 6, 5;... % front4, 3, 7, 8;... % back1, 5, 8, 4;...

% right2, 6, 7, 3;... % left5, 6, 7, 8;... % top9, 10, 11, 12;... % bottom];% define colors for each facemyred = [1, 0, 0];mygreen = [0, 1, 0];myblue = [0, 0, 1];myyellow = [1, 1, 0];mycyan = [0, 1, 1];patchcolors = [...myred;...% frontmygreen;... % backmyblue;...% rightmyyellow;.. % leftmycyan;... % topmycyan;... % bottom];Вершины, показанные на рис. C.3, задаются в строках 3–16. Грани задаются перечислением индексов точек, которые задают грань. Например, передняягрань, заданная в строке 19, состоит из точек 1 ­ 2 ­ 6 ­ 5. Грани могут бытьзаданы с помощью N-точек, где матрица, которая задает грани, имеет N столбцов, а число строк является числом граней.

Цвет для каждой грани задается встроках 32–39. Программа Matlab, которая выполняет рисунок корпуса летательного аппарата, приведена ниже.12345678function handle= drawSpacecraftBody(pn,pe,pd,phi,theta,psi, handle, mode)[V, F, patchcolors] = spacecraftVFC;% define points on spacecraftV = rotate(V', phi, theta, psi)';}% rotate spacecraftV = translate (V', pn, pe, pd)';}% translate spacecraftПриложение C910111213141516171819202122279R = [...0, 1, 0;...1, 0, 0;...0, 0, ­1;...];V = V*R; % transform vertices from NED to XYZif isempty(handle),handle = patch(`Vertices', V, `Faces', F,...`FaceVertexCData',patchcolors,...`FaceColor',`flat',...`EraseMode', mode);elseset(handle,`Vertices',V,`Faces',F);endЗнаки операции транспонирования в строках 5–8 используются из-за того,что положения точек в матрице смежности вершин V построены вдоль строк,а не вдоль столбцов.

Изображение летательного аппарата с помощью вершини граней приводится на рис. C.6. Дополнительные примеры использованияформата «вершина-грань» можно найти на веб-сайте книги.Рис. C.6. Изображение летательного аппарата с использованием вершин и гранейÏÐÈËÎÆÅÍÈÅ DÌîäåëèðîâàíèå â Simulink ñ ïîìîùüþ S-ôóíêöèéЭта глава предполагает наличие базовых знаний о рабочей среде ПО Matlab/Simulink. Для получения дополнительной информации следует обратитьсяк документации Matlab/Simulink. Simulink в основном представляет собой достаточно сложный инструмент для решения связанных обыкновенных простых гибридных дифференциальных уравнений и дифференциальных уравнений.

Каждый блок в Simulink имеет структуруx& c = f (t , x c , x d , u);x d [k + 1] = g (t , x c , x d , u);x c (0) = x c 0 ;x d [0] = x d 0 ;y = h(t , x c , x d , u),(D.1)(D.2)(D.3)где xc Î R n c является непрерывным состоянием с начальным условием xc0, xd Î R n dявляется дискретным состоянием с начальным условием xd0, u Î R m являетсявходными данными для этого блока, y Î R p является выходными данными блока, а t — пройденное время с момента начала моделирования. S-функция представляет собой инструмент Simulink для задания в явном виде функций f , g и hи начальных условий xc0 и xd0. Как объясняется в документации Matlab/Simulink, существует целый ряд методов для задания s-функций. В этом приложенииприводится описание двух различных методов: s-функция 1-го уровня m-файлаи s-функция C-файла.

S-функция C-файла транслируется в C-код и выполняется значительно быстрее, чем s-функции m-файла.D.1. Пример: дифференциальное уравнение второго порядкаВ этом разделе будет показано, как использовать систему, задаваемуюстандартной передаточной функцией второго порядкаY (s ) =w2nU (s )s 2 + 2 zwn s + wn2(D.4)с помощью функции m-файла 1-го уровня и s-функцию C-файла. Первым шагом в любом случае является представление уравнения (D.4) в форме пространства состояний.

Используя каноническую форму управления [30], имеемæ x& 1 ö æ -2 zwn - wn2 öæ c 1 ö æ1 ö÷ç ÷ + ç ÷ u,çç ÷÷ = çç0 ÷øçè c 2 ÷ø çè 0 ÷øè x& 2 ø è 1(D.5)æ c1 öy = (0 w2n ) çç ÷÷.èc2 ø(D.6)Приложение D281D.1.1. S,функция m,файла 1,го уровняПрограмма для s-функции m-файла, использующая систему, описаннуюуравнениями (D.5) и (D.6), показана ниже. Строка 1 задает главную функциюm-файла. Входными данными этой функции всегда являются истекшее время t,состояние x, которое является соединением непрерывного и дискретного состояний, u и flag, за которыми следуют задаваемые пользователем входные параметры, которыми в данном случае являются ж и щn.

Программа Simulink вызывает s-функцию и передает параметры t, x, входная величина u и flag. Когдаflag = 0, программа Simulink ожидает, чтобы s-функция вернула структуру sys,которая задает блок; начальные условия x0, пустую строчку str и массив ts, который задает время выборок блока. Когда flag = 1, программа Simulink ожидает,что s-функция вернет функцию f (t, x, u); когда флаг flag = 2, программа Simulinkожидает, что s-функция вернет g(t, x, u); и когда flag = 3, программа Simulinkожидает, что s-функция вернет h(t, x, u). Оператор переключения, который вызывает подходящую функцию на основании значения flag, показан в строках 2–11. Задание блока и начальных условий показано в строках 13–27.

Число непрерывных состояний, дискретных состояний, выходных данных и входных параметров задается в строках 16–19 соответственно. Член прямого проникновенияв строке 20 задается равным единице, если выходные данные зависят от входной величины u в явном виде, например если в линейном уравнении пространства состояний y = Cx + Du D ¹ 0.

Характеристики

Список файлов книги

Свежие статьи
Популярно сейчас
Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6417
Авторов
на СтудИзбе
307
Средний доход
с одного платного файла
Обучение Подробнее