Биард Р.У., МакЛэйн Т.У. Малые БЛА - теория и практика (2015) (1245764), страница 51
Текст из файла (страница 51)
Поскольку V a* , г* и R* задаются пользователем, то расчет балансировочных состояний будет состоять из алгоритма оптимизации по б, в и ц длянахождения б*, в* и ц*. Эти значения затем будут использоваться для нахождения сбалансированных состояний x* и u*.Скорости в связанной системе координат u*, v*, w*Из уравнения (2.7) скорости в связанной системе координат могут бытьвыражены через V a* , б* и в*:æu*çç v*ç w*èæ cos a * cos b*öç÷sin b*÷ = V a* çç sin a * cos b*÷èøö÷÷.÷øУгол тангажа и*Задавая угол траектории полета (при Vw = 0), имееми* = б* + г*.Угловые скорости p, q, rУгловые скорости можно выразить через углы Эйлера с помощью уравнения (3.2).
Откуда следуетæ p*ç q*ç *èrö æ1÷ = ç 0 cos0j*÷ ç*ø è 0 - sin j- sin q*sin j* cos q*cos j* cos q*æ&* = 0öç j÷ ç q& * = 0÷çV*ø çy&* = aR*èö÷- sin q** æ÷ = V a ç sin j* cos q*÷ R* çè cos j* cos q*÷øö÷,÷øгде и* уже был ранее выражен через г* и б*.Отклонение руля высоты дeЕсли заданы p*, q* и r* , можно решить уравнения (5.11) для d*e и получитьùéê J xz ( p *2 - r *2 ) + (J x - J z ) p * r * ) úcq *- C m0 - C ma a * - C mqúê12V a*úêr(V a* ) 2 cS2û.d*e = ëC m de(F.1)Отклонение дроссельной заслонки дtУравнение (5.4) можно решить для d*t и получить2 m(-r * v * + q * w * + g sin q*) - r(V a* ) 2 S ´cq *éù+ C X de (a*)d*e ú´ êC X (a*) + C X q (a*)*2V aëûd*t =2r S Проп. C Проп.
k Двиг.+(V a* ) 2.2k двиг.(F.2)Приложение F291Отклонение элерона дa и руля направления дrЗаданные командой отклонения элерона и угла направления можно найтииз решения уравнения (5.10) и (5.12):-1æ d*r ö = æç C pda C pdr ö÷ ´ç d* ÷ ç Cè r ø è rda C rdr ÷øæ -G1 p * q * + G 2 q * r *- C p0 + C pb b * +C ppç1çr(V a* ) 2 Sb2´çç -G 7 p * q * + G1 q * r *- C r0 + C rb b * +C rpç1r(V a* ) 2 Sbç2èbp *br * ö+ C pr÷*2V a2V a* ÷÷.bp *br * ÷+ C rr2V a* ÷2V a*÷ø(F.3)F.2.1.
Алгоритм балансировкиВсе представляющие интерес переменные состояния и управляющие входные сигналы были выражены через V a* , г*, R*, б*, в* и ц*. К входным даннымалгоритма балансировки относятся V*, г* и R*. Чтобы найти б*, в* и ц*, нужно решить следующую проблему оптимизации:2(a * , j* , b* ) = arg min x& * - f ( x * , u * ) .Ее можно решить численно, используя алгоритм градиентного спуска, который будет описан в следующем разделе.
Алгоритмы балансировки представлены алгоритмом 13.F.2.2. Численная реализация градиентного спускаЦель этого раздела — описать простой алгоритм градиентного спуска, который решает проблему оптимизации min J (x), где J: R m ® R считается непреxрывно дифференцируемым и вполне определенным локальным минимумом.Основная идея – следовать по отрицательному градиенту функции с начальным положением о(0). Другими словами, пусть&x = -k ¶J (x),¶x(F.4)где k является положительной постоянной, которая определяет скорость спуска.
Дискретная аппроксимация уравнения (F.4) задается соотношениемx( k +1 ) = x( k ) - k d¶J ( k )(x ),¶xгде k d является к, разделенным на размер дискретного шага.292Приложение FАлгоритм 13. Балансировка1: Входные данные: требуемая воздушная скорость V a* , требуемый угол траектории полета г* и требуемый радиус поворота R*.22: Рассчитать: (a * , b* , j* ) = arg min x& * - f ( x * , u * ) .3: Рассчитать сбалансированные состояния:æ u* = V a* cos a* cos b* ö÷çv* = V a* sin b*÷ç*ç w* = V a sin a* cos b* ÷q* = a* + g*÷ç÷çV a*ç p* = - R* sin q* ÷.÷çV*ç q* = a sin j* cos q* ÷R*÷çç r* = V a* cos j* cos q* ÷÷çR*øè4: Рассчитать входные управляющие сигналы сбалансированных состояний:öæ÷ç *d=[Уравнение(F.1)]e÷çç d*t = [Уравнение (F .2 )] ÷.÷ç *çç æç d a ö÷ = [Уравнение (F .3)] ÷÷*øè è dr øДля расчетов сбалансированного состояния частные производные¶Jана¶xлитически определить сложно.
Однако они могут быть эффективно рассчитаны численно. По определению, имеемæ ¶Jç¶x¶J ç 1=ç M¶x ç ¶Jç ¶x mèö÷÷÷,÷÷øгдеJ (x1 ,L , x i + e,L , x m ) - J (x1 ,L , x i ,L , x m )¶J,= lime®0e¶x iчто можно аппроксимировать численно следующим образомJ (x1 ,L , x i + e,L , x m ) - J (x1 ,L , x i ,L , x m )¶J,=»e¶x iгде e является малой константой.Приложение F293Для алгоритма балансирования целевая функция J(б, в, ц) равна2- f ( x * , u * ) , которая вычисляется с помощью алгоритма 14. Алгоритм оптимизации градиентным спуском представлен в алгоритме 15.x& *Алгоритм 14. Вычисление J = x& * - f ( x * , u * )21: Входные сигналы: б*, в*, ц*, V a* , R*, г*2: Рассчитать x& *:x& * = [уравнение (5.21)]3: Рассчитать сбалансированные состояния:æ u* = V a* cos a* cos b* ö÷çv* = V a* sin b*÷ç*ç w* = V a sin a* cos b* ÷q* = a* + g*÷ç÷çV a*ç p* = - R* sin q* ÷÷çV*ç q* = a sin j* cos q* ÷R*÷çç r* = V a* cos j* cos q* ÷÷çR*øè4: Рассчитать входные сигналы балансировки:öæ÷ç *d=[Уравнение(F.1)]÷ç eç d*t = [Уравнение (F .2 )] ÷÷ç *çç æç d a ö÷ = [Уравнение (F .3)] ÷÷*øè è dr ø5: Рассчитать f (x*, u*):f (x*, u*) = [уравнения (5.3)–(5.12)].6: Рассчитать J:J = x& * - f ( x * , u * )2F.3.
Использование команды linmod в Simulink для создания модели в про,странстве состоянийВ Simulink предусмотрены встроенные процедуры расчетов линейной модели в пространстве состояний для построения общих диаграмм Simulink. Полезные инструкции можно получить, набрав с клавиатуры help linmod в окнеподсказок Matlab. Команда linmod имеет следующий формат:[A,B,C,D]=LINMOD(’SYS’,X,U),где X и U являются состоянием и входными данными, в области которых будетлинеаризована диаграмма Simulink, а [A, B, C, D] представляет собой результи-294Приложение FАлгоритм 15. Минимизировать J (о)1: Входные данные: б(0), в(0), ц(0), Va, R, г2: для k = 1 до N выполнить3: б+ = б(k1) + e4: в+ = в(k1) + e5: ц+ = ц(k1) + e6:¶J J (a + , b( k -1 ) , j( k -1 ) ) - J (a ( k -1 ) , b( k -1 ) , j( k -1 ) )=e¶a7:¶J J (a ( k -1 ) , b + , j( k -1 ) ) - J (a ( k -1 ) , b( k -1 ) , j( k -1 ) )=e¶b8:¶J J (a ( k -1 ) , b( k -1 ) , j + ) - J (a ( k -1 ) , b( k -1 ) , j( k -1 ) )=e¶j9: a k = a ( k -1 ) - k¶J¶a10: b k = b( k -1 ) - k¶J¶b11: j k = j( k -1 ) - k¶J¶j12: end forрующую модель в пространстве состояний.
Если команду linmod использоватьна диаграмме Simulink, представленной на рис. F.1, где имеется двенадцать состояний и четыре входных сигнала, результирующие уравнения в пространствесостояний будут включать модели, содержащиеся в (5.43) и (5.50). Для получения уравнения (5.43), например, можно выполнить следующие шаги:[A,B,C,D]=linmod(filename,x_trim,u_trim)E1 = [...0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0;...0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0;...0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1;...0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0;...0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0;...]E2 = [...0, 1, 0, 0;...0, 0, 1, 0;...]Приложение F295A_lat = E1 * A * E1’B_lat = E1 * B * E2’F.4. Численные расчеты модели в пространстве состоянийДругой способ найти A и B состоит в численной аппроксимацииПри этом i-й столбец¶f¶fи.¶x¶u¶fможно аппроксимировать как¶xæ ¶ f1çç ¶ xiç ¶ f2ç ¶xç iç ¶ Mfç nç ¶xè iö÷÷÷f ( x * + eei , u * ) - f ( x * , u * )÷ ( x* ,u * ) »,e÷÷÷÷øгде ei содержат единицу в качестве i-го элемента и нулями являются все осталь¶fможет быть аппроксиминые элементы.
Аналогичным образом i-й столбец¶uрован в видеæ ¶ f1çç ¶u iç ¶ f2ç ¶uç iç ¶ Mfç nç ¶uè iö÷÷÷f ( x * , u * + eei ) - f ( x * , u * )÷ ( x* ,u * ) ».e÷÷÷÷øЭти вычисления могут быть удобным образом выполнены, используяпреимущества функций программного обеспечения, созданных для вычисления f (x, u) и изначально разработанных для решения нелинейных уравненийдвижения летательного аппарата или для вычислений сбалансированных состояний.ÏÐÈËÎÆÅÍÈÅ GÎñíîâíûå ïîëîæåíèÿ òåîðèè âåðîÿòíîñòèПусть X = (x1, .
. . , xn)Т — случайный вектор, чьи элементы являются случайными переменными. Среднее или ожидаемое значение X обозначается какæ m 1 ö æ E { x1 } ö÷÷ ççm = ç M ÷ = ç M ÷ = E { X },ç m ÷ ç E{ x } ÷n øè n ø èгдеE { x i } = ò x f i (x) dxи f (·) является функцией плотности вероятности для xi. При заданной парекомпонент xi и xj из X, можно обозначить их ковариацию какcov(xi, xj) = å i j = E{(xi мi )(xj мj )}.Ковариация любой компоненты с собой является дисперсией, т.е.var(xi) = cov(xi, xi) = å ii = E{(xi мi)(о мi)}.Среднеквадратическое отклонение xi представляет собой квадратный корень дисперсии:stdev(xi) = уi =å ii .Ковариации, связанные со случайным вектором X, могут быть сгруппированы в матрицу, известную как ковариационная матрица:æ å11çåS = ç 21ç Mè å n1å12å 22ån 2L å1 nL å 2nOML å nnö÷÷ = E {( X - m )( X - m ) T } = E { XX÷øT} - mm T .Обратите внимание, что å = å т , так что å является симметричной, положительной и полуопределенной, что предполагает, что ее собственные значения являются действительными и неотрицательными.Функция плотности вероятности для гауссовой случайной величины дается выражением1f x ( x) =e2 ps x( x -m x ) 2s x2,Приложение G297где мx является средним значением x, а уx является среднеквадратическим отклонением.
Векторный эквивалент дается выражениемfX (X ) =11exp éê- ( X - m ) T S -1 ( X - m )ùú,ûë 22 p det Sв этом случае можно записатьX ~ N (m , S),и говорят, что X имеет нормальное распределение со средним значением m иковариацией å.На рис. G.1 показаны линии уровней для 2-мерной гауссовой случайнойпеременной с различными ковариационными матрицами.Рис. G.1.