Диссертация (Планирование маршрута полета легкого беспилотного летательного аппарата с учетом действия ветра), страница 17
Описание файла
Файл "Диссертация" внутри архива находится в папке "Планирование маршрута полета легкого беспилотного летательного аппарата с учетом действия ветра". PDF-файл из архива "Планирование маршрута полета легкого беспилотного летательного аппарата с учетом действия ветра", который расположен в категории "". Всё это находится в предмете "технические науки" из Аспирантура и докторантура, которые можно найти в файловом архиве МАИ. Не смотря на прямую связь этого архива с МАИ, его также можно найти и в других разделах. , а ещё этот архив представляет собой кандидатскую диссертацию, поэтому ещё представлен в разделе всех диссертаций на соискание учёной степени кандидата технических наук.
Просмотр PDF-файла онлайн
Текст 17 страницы из PDF
Подпрограммы не используются. Используетсянесколько стандартных программ-функции (for, if).Функциональное назначениеПрограмма-функция «vibоrelem» дает возможность выбрать первыйпопавшийся элемент для поиска подцикла. Функциональных ограниченийнет.Описание обращения к программеviborelem (x, nx, t, i1)Описание входных данныхx - матрица, полученная в результате выполнения на данном шагефункции sozdmatr;nx - число строк в матрице x;129t - начальное значение номера элемента в матрице x;i1 - начальное значение номера строки, в которой содержится данныйэлемент.Ввод значений входных данных осуществляется в командном окнеMATLAB перед обращением к процедуре, либо при обращении к ней путемуказания фактических значений входных параметров. Возможно обращениек процедуре viborelem из внешней по отношению к ней программе.Описание выходных данныхВыходными параметрами программы-функции viborelem являются:min1- выбранное значение номера элемента в матрице x;i2 - номер строки, в которой содержится данный элемент.Функция vibstrokiОбщие сведения о программеПрограмма-функция «vibstroki» позволяет выбрать ту строку вматрице с номером nom, входящей в массив матриц Anew, с которой даннаяматрицаначинаетзаполняться.Подпрограммынеиспользуются.Используется несколько стандартных программ-функции (for, if).Функциональное назначениеПрограмма-функция «vibstroki» дает возможность выбрать ту строкув матрице с номером nom, входящую в массив матриц Anew, с которойданная матрица начинает заполняться.
Функциональных ограничений нет.Описание обращения к программеvibstroki (n, nom, Anew)Описание входных данныхn - количество точек;Anew – массив, состоящий из матриц для хранения подциклов;nom – номер в массиве матриц Аnew, с которой данная матрицаначинает заполняться.130Ввод значений входных данных осуществляется в командном окнеMATLAB перед обращением к процедуре, либо при обращении к ней путемуказания фактических значений входных параметров.
Возможно обращениек процедуре vibstroki из внешней по отношению к ней программе.Описание выходных данныхВыходной параметр программной-функции – это строка в матрице сномером nom.Функция vsecicliОбщие сведения о программеПрограмма-функция «vsesicli» позволяет выполнить поиск всехциклов на данном конкретном шаге. В этой программе-функциииспользуются следующие подпрограммы: “onecicle” для поиска одногоподцикла, “viborelem” для выбора в матрице, полученной в результатевыполнения на данном шаге функции preobr, первого попавшегося элементадля поиска подцикла, в который данный элемент входит, “vibstroki” длявыбора той строки в матрице с номером nom, входящей в массив матрицAnew, с которой данная матрица начинает заполняться. Используетсянесколько стандартных программ-функции (for, if, while, disp, break).Функциональное назначениеПрограмма-функция «vsesicli» дает возможность найти все циклы наданном конкретном шаге.
Функциональных ограничений нет.Описание обращения к программеVsecicli (str, i1, count, count2, Anew,x2,c2,c,n,colcicl,lbnew,s1,f1,Td,spt)Описание входных данныхstr – значение строки, полученное в результате выполненияпроцедуры vibstroki;i1 – значение номера строки, полученное в результате выполненияпроцедуры viborelem;131count – номер того цикла, который обрабатывается в данный момент;count2 - число необработанных элементов в матрице хранениятекущего вектора решения;Anew - массив хранения матриц учета подциклов;x2 - матрица хранения элементов текущего решения;c2 - матрица обозначения заполнения матриц, входящих массив Anew;c - матрица учета завершения обработки подциклов;n - число строк в матрице хранения элементов текущего векторарешения;colcicl - счетчик циклов;lbnew - длина выделенного цикла;s1 – номер точки начала маршрута;f1 – номер точки окончания маршрута;Td - допустимое время полета;spt - сумма хij полученного решения.Ввод значений входных данных осуществляется в командном окнеMATLAB перед обращением к процедуре, либо при обращении к ней путемуказания фактических значений входных параметров.
Возможно обращениек процедуре vsecicli из внешней по отношению к ней программе.Описание выходных данныхВыходными параметрами программы-функции vsecicli являются:i1 – значение номера строки, полученное в результате выполненияпроцедуры cicle3;count – номер того цикла, полученный в результате выполненияпроцедуры cicle3;count2 - число необработанных элементов в матрице хранениятекущего векторапроцедуры cicle3;решения,полученноев результатевыполнения132Anew - массив хранения матриц учета подциклов, полученный врезультате выполнения процедуры cicle3;x2 - матрица хранения элементов текущего решения, полученная врезультате выполнения процедуры cicle3;c2 - матрица обозначения заполнения матриц, входящих массив Anew,полученная в результате выполнения процедуры cicle3;c - матрица учета завершения обработки подциклов, полученная врезультате выполнения процедуры cicle3;n - число строк в матрице хранения элементов текущего векторарешения, полученное в результате выполнения процедуры cicle3;colcicl - счетчик циклов.Функция videlenieОбщие сведения о программеПрограмма-функция «videlenie» позволяет выделить цикл, которыйсодержит точки начала и окончания в полученном решении.
Используетсянесколько стандартных программ-функции (for, if, while).Функциональное назначениеПрограмма-функция «videlenie» дает возможность выделить цикл,который содержит точки начала и окончания в полученном решении.Функциональных ограничений нет.Описание обращения к программеvidelenie(x2,s1,f1,nc,Td)Описание входных данныхx2 - матрица хранения элементов текущего решения;s1 – номер точки старта;f1 – номер точки финиша;nc – количество строк в матрице с;Td - допустимое время полета.133Ввод значений входных данных осуществляется в командном окнеMATLAB перед обращением к процедуре, либо при обращении к ней путемуказания фактических значений входных параметров. Возможно обращениек процедуре videlenie из внешней по отношению к ней программе.Описание выходных данныхBnew – матрица хранения цикла, который содержит точки начала иокончания маршрута;x2 - матрица хранения элементов текущего решения, полученная врезультате выполнения процедуры onecicle;Lbnew – длина цикла Bnew.4.5.
Пример работы программного комплекса «UAVRouting»Работоспособностьпрограммногокомплекса«UAVRouting»продемонстрирована на примерах расчета замкнутого и разомкнутогомаршрутов полета для 165 точек, расположенных произвольным образом наплощадке размером 30 × 30 километров. Координаты этих точек приведеныв таблице 4.1. Воздушная скорость БПЛА при расчетах принималась равной16,67 м/с, а скорость юго-западного ветра составляла 5,56 м/с.Таблица 4.1.
Координаты заданных маршрутных точек при n = 165Координатыx (м)y (м)№x (м)y (м)№x (м)y (м)№x (м)y (м)№x (м)y (м)12990668411124799997721151159658312160528070411080116292216606111261211836255922218384121163210407245614213626131713154642672813184041327223245831645733155102184843115928623Номер маршрутных точек45679920 12900 14754 213125691 12073 9541 182591415161724559 26587 27933 57242713199515973 214952425262715957 6062 13617 128371462 16582 824472453435363716701 4695 16862 208445274 10811 5664364445464723267 22028 12908 2081315050 22846 22872 1728282663227306187757537928289827294381279494934828356224309193927273192693610096291860246253925088209894923527193661013086177482017801563130208622869240219421875850211673697134Таблица 4.1.
Координаты заданных маршрутных точек при n = 165(продолжение)КоорДинатыx (м)y (м)№x (м)y (м)№x (м)y (м)№x (м)y (м)№x (м)y (м)№x (м)y (м)№x (м)y (м)№x (м)y (м)№x (м)y (м)№x (м)y (м)№x (м)y (м)№x (м)y (м)51328015132612007115968715891351081429529393911523545581012825870611112600715180121420825757131730796281415247135661512051255111612117985535211698104186215006838272130551747482167818545921756811913102196771344111212203836612278042733213223552153421424159225671521309027349162193542483253177272764636540283877324967205998313717849932288711242103135581708111333782239912326042098913322231818143179673296153521619178163165695730Номер маршрутных точек5455565713781 15106861 2502644355945 20168 129456465666717148 3666 20135 1798827193 11781746201437475767718522 15604 25916 293121583 19501 21807 112158485868723000 25461 27505 2960928865 55735791 10249949596972489 19848 15509 51313933 13051 2745 1843910410510610725191 15979 16617 204021842 14889 19269 663811411511611713315 9006 12042 250017108 28720 18608 1800812412512612712882 77188927 1274621755 6897 17282 243191341351361371181710266203921771 16697 15881 2489914414514614727032 28181 6636 1448032928097 15739 2918015415515615778328640 12918 2884776612660 25148 175421641656543 2317113276 11802584692083268167925115782724217447881515427987982815732910811016251121181210951781283576121151385675257631481128021312158228722844359259117704691690291457932413484898143117209917714171981097179291321191170527101291485229653139427523671149157139356159220183160234229370457517088015510173090302381971001321923692110173682539112010813765813021192270014080429535150794687441602040117539135Распределение заданных маршрутных точек и направление ветра взоне полета показано на рисунке 4.16.Рис.
4.16. Размещение заданных маршрутных точек и направление ветра(n = 165)Рассмотрим вариант, когда искомый маршрут является замкнутым. Врезультате расчета был найден следующий оптимальный замкнутыймаршрут:1→37→92→20→118→42→153→140→55→7→137→32→147→84→33→78→11→101→66→2→29→120→105→97→150→154→58→9→148→129→14→75→157→19→86→130→149→143→43→103→25→125→90→123→69→134→88→8→106→16→87→59→50→21→53→112→72→136→18→35→113→81→124→3→48→99→111→145→85→107→6→24→27→10→146→70→65→142→63→46→64→76→61→23→28→144→161→62→80→114→116→51→60→128→139→109→100→110→39→160→132→1155→95→82→96→26→41→141→159→77→138→115→127→162→73→47→44→98→102→163→91→38→126→164→133→71→121→122→156→30→45→40→57→15→13→34→54→52→56→89→79→135→151→4→12→31→74→49→165→104→22→36→119→5→17→131→94→83→68→108→152→158→67→117→93→136Оптимальный (наискорейший) замкнутый маршрут показан нарисунке 4.17. Продолжительность полета по этому маршруту составила19531 секунд, а время его расчета составило 289 секунд.Рис.
4.17 Окно ввода – вывода данных программного комплекса«UAVRouting»Рассмотрим вариант поиска разомкнутого маршрута. Пусть точканачала маршрута имеет номер s = 159, а точка его окончания имеет номерf = 8. В результате расчета был найден следующий оптимальныйразомкнутый маршрут:159→65→142→63→100→126→164→91→20→155→19→78→133→128→139→109→46→56→89→96→161→144→11→157→60→77→138→115→124→17→131→80→107→85→93→48→70→71→121→122→134→153→140→24→50→59→165→76→79→135→151→4→148→97→150→53→130→86→57→39→94→83→68→32→116→25→125→143→66→101→44→73→55→7→137→108→10→136→18→29→37→1→132→117→154→58→9→12→72→146→119→34→104→28→23→49→90→ 35→123→ 113→69→ 81→156→ 127→103→ 41→51→ 141→118→ 54→163→ 36→15→ 98→145→ 87→111→ 16→40→ 47→137160→ 61→ 102→ 95→ 13→ 22→ 92→21→6→62→ 26→ 114→ 27→ 120→52→5→42→ 105→ 99→ 106→ 75→45→ 162→ 110→ 3→ 152→ 147→ 129→31→ 158→ 84→ 14→82→43→33→88→82→ 149→112→ 38→67→ 74→64→ 30→Наискорейший разомкнутый маршрут показан на рисунке 4.18.Продолжительность полета по этому маршруту составила 19346 секунд, авремя его расчета составило 82 секунды.Рис.
4.18. Окно ввода – вывода данных программного комплекса«UAVRouting»4.6. Выводы по разделу 41. Анализ нескольких разработанных в диссертационной работевариантовпрограммно-алгоритмическогообеспеченияоптимальногопланирования маршрута полета легкого беспилотного летательногоаппарата в поле постоянного ветра показал преимущество программноалгоритмического обеспечения, в котором используются процедура138последовательного исключения подциклов и функция cplexbilp пакетаCPLEX.2.