Биард Р.У., МакЛэйн Т.У. Малые БЛА - теория и практика (2015) (1245764), страница 35
Текст из файла (страница 35)
Таким образом, используя конечный автомат по высоте, можно удерживать высоту постоянной и следовать по наклонным прямолинейным траекториям с нулевой ошибкой по высоте для установившегося режима полета при условии, что не превышаются физические возможностиМБЛА и все возмущения (такие как вертикальные компоненты ветра) равнынулю или постоянны по величине.190Глава 10. Движение по прямой линии и круговой орбите10.1.2. Ñòðàòåãèÿ áîêîâîãî óïðàâëåíèÿ ïðè ñëåäîâàíèèïðÿìîëèíåéíûì ìàðøðóòîìЦель этого раздела — выбрать такой задаваемый автопилотом курсовой угол чcв уравнении (10.4), чтобы epy в уравнении (10.3) асимптотически стремилось кнулю. Стратегия в этом разделе состоит в установлении требуемого курсовогоугла в каждой пространственной точке относительно прямолинейного маршрута, что заставит МБЛА перемещаться по направлению к выбранному маршруту.
Набор требуемых курсовых углов в каждой точке будем называть полемвекторов, поскольку требуемый курсовой угол задает единичный вектор сопределенной ориентацией относительно прямой линии. На рис. 10.3 показанпример поля векторов для выдерживания прямолинейной траектории. Цельюявляется построение такого поля векторов, в котором при большой epy МБЛАнаправлен на приближение к курсу с курсовым углом ч¥ Î (0, р/2] и таким образом, чтобы epy приближалась бы к нулю, так же как и требуемый курс такжеприближался к нулю.
Когда маршрут близится к концу, задается требуемыйкурс МБЛА в видечd(epy) = ч¥ 2/р tan1(kпуть epy),(10.7)где kпуть — положительная константа, которая влияет на скорость перехода от ч¥в ноль. На рис. 10.4 показано, как выбор kпуть влияет на скорость этого перехода. Большие значения kпуть приводят к быстрому, резкому переходу, а небольшие значения kпуть вызывают продолжительный плавный переход на требуемыйкурс.Если ч¥ ограничена диапазоном ч¥ Î (0, р/2 ], тогда очевидно, чтор/2 < ч¥ 2/р tan1(kпутьepy) < р/2PЛин.(r, q)Рис.
10.3. Поле векторов для выдерживания прямолинейной траектории. Вдали от заданнойточки траектории полета поле векторов направлено под углом ч¥ от перпендикуляра к траектории полета10.1. Движение по прямолинейной траектории191kпуть = 0,02kпуть = 0,05kпуть = 0,1kпуть = 0,2kпуть = 0,5Рис. 10.4. Поле векторов для различных значений kпуть. Большие значения kпуть дают резкийпереход от ч¥ в ноль, тогда как небольшие значения kпуть дают плавные переходыkпуть = 1Боковое отклонение (м)для всех значений epy.
Поэтому, т.к. tan1(·) является нечетной функцией иsin(·) — тоже нечетная функция в пределах (р/2, р/2), можно воспользоваться функцией Ляпунова W(epy) = 1/2 e 2py , чтобы показать, что если ч = чq ++ чd(epy ), тогда epy ® 0 асимптотически, посколькуW& = Vgepy sin(ч¥ 2/р tan1(kпутьepy)меньше нуля для всех epy ¹ 0. Команда на следование боковым маршрутом поэтому задаетсячc(t) = чq ч¥ 2/р tan1(kпутьepy(t)).(10.8)Перед переходом на следование орбитальным курсом заметим, что использование уравнения (10.8) может привести к нежелательному поведению, еслипри этом чq рассчитывается непосредственно из уравнения (10.1), где atan2 даетугол в интервале ±р.
В качестве примера рассмотрим сценарий, показанный нарис. 10.5, где чq — положительное число, несколько меньшее, чем +р. Поскольку текущий курс отрицательный, уравнение (10.8) заставит МБЛА повернутьвправо, чтобы выровняться по направлению к путевой точке. В качестве альтернативы, если чq представляет собой отрицательный угол, несколько меньший,чем р, МБЛА повернет влево, чтобы выровнять свой курс относительно путевой точки. Для устранения этой проблемы чq должен рассчитываться какчq = atan2(qe, qn) + 2рm,где m Î N выбрано так, что р £ чq ч £ р, и atan2 является четырехквадрантной функцией tan1.Рис. 10.5. Вычисление чq, необходимое для учета текущего угла курса МБЛА. В этом сценарии МБЛА должен повернуть влево, чтобывыровнять курс относительно точки заданной траектории полета, ноесли cq рассчитывается с помощью atan2, то угол будет положительным числом, несколько меньшим, чем +р, что может заставитьМБЛА повернуть вправо, чтобы выровнять свой курс относительноточки заданной траектории192Глава 10.
Движение по прямой линии и круговой орбите10.2. Äâèæåíèå ïî êðóãîâîé îðáèòåОрбитальная траектория описывается центром c Î R3, радиусом с Î R и направлением л Î {1, 1}, при этомPорбита(c, с, л) = {r Î R3 : r = c + лс cos(j, sinj)Т, j Î [0, 2р]},где л = 1 обозначает орбиту с движением по часовой стрелке, а л = 1 обозначает орбиту с движением против часовой стрелки. Предположим, что центрорбиты выражен в инерциальных координатах, так что c = (cn, ce, cd)Т, где cdпредставляет собой требуемую высоту орбиты, и для поддержания этой высоты hc = cd.На рис.
10.6 представлен вид сверху орбитальной траектории. Стратегиюнаведения для орбитальной траектории лучше всего выражать в полярных координатах. Пусть d — радиальное расстояние от требуемого центра орбиты доМБЛА и пусть j будет фазовым углом относительного положения, как показано на рис. 10.6. Динамика полета МБЛА с постоянной высотой в полярныхкоординатах может быть получена путем поворота дифференциальных уравнений, описывающих движение МБЛА, в северном и восточном направленияхæ p& nççè p& eö æV g cos c ö÷÷÷ = çç÷ø èV g sin c øна фазовый угол j так, чтобы эти уравнения движения представляли движениеМБЛА в перпендикулярном и тангенциальном направлениях к орбите, чтобыæ d& ö æ cos j sin j ö æ p& nç ÷ = çç÷÷ ççç dj÷è & ø è - sin j cos j ø è p& eö æ cos j sin j ö æV g cos c ö æV g cos(c - j) ö÷ =ç÷.÷÷ ç÷÷ = ççç÷ ç÷ø è - sin j cos j ø èV g sin c ø èV g sin (c - j) øСеверPорбита(c, с, л)Рис.
10.6. Орбитальная траектория с центром (cn, ce) и радиусом с. Расстояние от центраорбиты до МБЛА равно d, и угловое положение МБЛА относительно орбитыопределяется j10.2. Движение по круговой орбите193Эти выражения также могут быть получены из геометрии, показанной нарис. 10.6. Динамика МБЛА в полярных координатах при этом описывается соотношениями(10.9)d& = Vgcos(ч j),& = Vg /d sin(ч j),j(10.10)&&c = bc& c& + bч (чc ч).(10.11)Как показано на рис.
10.6, для орбиты с движением по часовой стрелкетребуемый курсовой угол, когда МБЛА находится на орбите, дается соотношением чo = j + р/2. Аналогичным образом для орбиты с движением против часовой стрелки требуемый угол задается соотношением чo = j р/2. Поэтому вобщем случаечo = j + л р/2.Цель управления — вести при наличии ветра d(t) к радиусу орбиты с и курсовой угол ч(t) — к чo.Наш подход к выдерживанию движения по орбите аналогичен идеям, разработанным в разделе 10.1.2. Эта стратегия состоит в построении поля требуемыхкурсов, которые перемещают МБЛА на орбиту Pорбита(c, с, л). Когда расстояниемежду МБЛА и центром орбиты большое, желательно, чтобы МБЛА летел в направлении к центру орбиты. Другими словами, когда d ? с, то требуемому курсу соответствуетчd Ј чo + л р/2,а когда d = с, то требуемому курсу соответствует чd = чo.
Поэтому поле курсов-кандидатур дается выражениемææ d - r öö÷÷ ÷,c d (d - r, l) = c o + ltan -1 çç k орбита çç÷è r øøè(10.12)где kорбита > 0 является константой, которая задает скорость перехода от лр/2 вноль. Это выражение для чd действительно для всех значений d ³ 0.Снова можно использовать функцию Ляпунова W = 1/2 (d с)2, чтобыутверждать, что если ч = чd, то цель ведения удовлетворена. Дифференцирование W вдоль траектории системы дает выражениеæææ d - r ö ö ö÷÷÷ ÷ ,W& = -V g (d - r)sin ç tan -1 çç k орбита çç÷çè r ø ø ÷øèèкоторое отрицательно определенное, поскольку аргументом sin является набор(р/2, р/2) для всех d > 0, подразумевая, что d ® с асимптотически.
Заданныйкурс для следования по орбите поэтому определяется соотношениемépææ d - r ö öù÷÷ ÷ú.c c (t ) = j + l ê + tan -1 çç k орбита çç÷êë2è r ø øúûè(10.13)194Глава 10. Движение по прямой линии и круговой орбитеАналогично вычислению угла наклона траектории чq, если рассчитанноеугловое положение на орбите j оказалось в диапазоне ±р, будет иметь местовнезапный скачок на 2р в задаваемом командой курсе в качестве переходаМБЛА от j = р в j = р. Для устранения этой проблемы j должен рассчитываться по формулеj = atan2(pe ce, pn cn) + 2рm,где m Î N выбирается так, чтобы р £ j ч £ р.10.3.
Êðàòêîå ñîäåðæàíèå ãëàâûВ этой главе вводятся алгоритмы для движения по прямолинейным и орбитальным траекториям полета при наличии ветра. Основная идея состоит впостроении поля векторов направлений полета, направляющих МБЛА на заданную траекторию, и тем самым определенным образом отличается от отслеживания траектории, когда летательному аппарату поступают команды следовать вменяющееся со временем местоположение.
Алгоритмы, разработанные в этойглаве, представлены в приведенных далее алгоритмах 3 и 4.Алгоритм 3. Выдерживание по прямолинейной траектории: [hc, чc] = followStraightLine (r, q, p, ч)Входные данные. Определение траектории r = (rn, re, rd)Т и q = (qn, qe, qd)Т, положение МБЛА p = (pn, pe, pd)Т, курс ч, коэффициенты усиления ч¥, kпуть, частота дискретизации Ts.1: Рассчитать устанавливаемую по команде высоту, используя (10.5).2: чq ¬ atan2(qe, qn)3: While чq ч < р do4: чq ¬ чq + 2р5: end while6: while чq ч > р do7: чq ¬ чq 2р8: end while9: epy ¬ sin чq(pn rn) + cos чq(pe re)10: Рассчитать устанавливаемый по команде курсовой угол, используя (10.8).11: return hc, чc10.3.
Краткое содержание главы195Алгоритм 4. Движение по круговой орбите: [hc, чc] = followOrbit (c, с, л, p, ч)Входные данные. Центр орбиты c = (cn, ce, cd)Т, радиус с и направление л, положение МБЛА p = (pn, pe, pd)Т, курс ч, коэффициенты усиления kорбита, частотадискретизации Ts.1: hc ¬ cd2: d ¬ ( p n - cn ) 2 + ( p e - ce ) 23: j ¬ atan2(pe ce, pn cn)4: While j ч < р do5: j ¬ j + 2р6: end while7: While j ч > р do8: j ¬ j 2р9: end while10: Рассчитать устанавливаемый по команде курсовой угол, используя (10.13).11: return hc, чcЗамечания и ссылкиМетоды, описанные в 10.1 и 10.2, являются вариациями уже описанных в[29, 53, 54] методов и основываются на понятии поля векторов, которое рассчитывает требуемое направление полета на основе расстояния от маршрута.Прекрасное обобщение [53] дано в [55], где получены общие условия устойчивости для основанных на поле векторов методов.