Главная страница  Программы проектирования 

[0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] [21] [22] [23] [24] [25] [26] [27] [28] [29] [30] [31] [32] [33] [34] [35] [36] [37] [38] [39] [40] [41] [42] [43] [44] [45] [46] [47] [48] [49] [50] [51] [52] [53] [54] [55] [56] [57] [58] [59] [60] [61] [ 62 ] [63] [64] [65] [66] [67] [68] [69] [70] [71] [72] [73] [74] [75] [76] [77] [78] [79] [80] [81] [82] [83] [84] [85] [86] [87] [88] [89] [90] [91] [92] [93] [94] [95] [96] [97] [98] [99] [100]

Il(t)

x(t)

x(t)

Tito)

z(t)

На5люОатель Люенбергера

Рис. 8.6

Положив u = Kx, получим систему уравнений

x(0=Ax(0+BK[Lz(0+MCx(0];

z(0 -Dz(0 + NCx (О +TBK[Lz(0 +МСх() ]

или в матричной форме

А+ВКМС I BKL NC + TBKMC !,D+TBKL

Возникает вопрос, насколько использование оценки вектора состояния, а не самого вектора х(0, ухудшает качество замкнутой системы. Для оценки этого могут быть использованы различные критерии. Один из них - исследование влияния фильтра на расположение полюсов объекта. Фильтры пониженного порядка ие изменяют полюсы замкнутой системы, а лишь добавляют к ним свои собственные. Из приведенных выше соотношений следует, что расчет такого фильтра может быть выполнен по следующему алгоритму.

1. Проверить наблюдаемость исходной системы, т. е. выполнение условия гапк[С, АС\ [К-уС,..., (A)"-iC] =я.



2. Вычислить корни характеристического многочлена матрицы А.

3. Выбрать матрицу D, например диагональную, элементы которой отличались бы от корней характеристического многочлена матрицы А, чтобы переходный процесс в фильтре заканчивался за требуемое время.

4. Произвольно задать матрицу N, соблюдая при этом, однако, выполнение условия rank[N, DN, DN,..., DP-N]=p, где p=n-m, т. е. фильтр должен быть управляем по вектору y{t).

5. Решить матричное уравнение ТА-DT=NC относительно Т.

6. Вычислить матрицу G=TB.

7. Вычислить матрицы L и М из уравнения LT+MC=I. Подобный алгоритм достаточно просто реализовать с помощью ЭВМ (программа OBSL).

Программа OBSL

Назначение: расчет фильтра (наблюдателя) Люенбергера, моделирование замкнутой системы с фильтром в цепи обратной связи. Параметры:

А - матрнца динамических параметров системы,

В - матрица коэффициентов усиления управляющих сигаалов системы, X - вектор состояния, U - вектор управления, Н - матрица измерений С,

D - матрица динамических параметров наблюдателя, G, N - матрицы коэффициентов усиления управляющих сигналов наблюдателя,

DX - вектор весовых коэффициентов погрешности,

PI - вектор параметров интегрирования,

XX - вектор начальных приближений матрицы Т.

Используемые стандартные подпрограммы [53]: SNES - решение системы нелинейных алгебраических уравнений обобщенным методом Стеффенсеиа, RKGS - решение системы обыкновенных дифференциальных уравнений методом Рунге - Кутта, MTRA - транспонирование матриц, GMPRD -• произведение двух матриц общего вида, GMSUB - вычитание двух матриц общего вида, SMPY - умножение матрицы на скаляр, GMADD - сложение двух матриц общего вида.

Используемые подпрограммы: PLOT - печать графиков.

Примечание: матрица Т находится из решения алгебраического матричного уравнения ТА-DT=NC с помощью подпрограммы SNES, которая ра-1ботает с одномерными массивами. Поэтому перед обращением к этой подпрограмме необходимо представить указанное уравнение в векторном виде. Такое преобразование можно выполнить, например, с помощью подпрограммы ARRAY. Программа написана иа Фортране для п=4, г=Л, т=3.

Пример. Рассмотрим синтез фильтра (наблюдателя) Люенбергера для системы управления продольным движением самолета. .Предположим, что система



Динамика, самолета

0,006

Г"

-o,oss

ХЗУЗ=Н

I

Рис. 8.7

Устройство наблюдения

-0,075

) *

0,!63

-0,01

0,0155

К.м v,\t,e,e,pad 20 Г

- 0,08

- 0,06

- 0,0

- 0,02

V /

\/

-0,02

-0,0k -0,06




[0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] [21] [22] [23] [24] [25] [26] [27] [28] [29] [30] [31] [32] [33] [34] [35] [36] [37] [38] [39] [40] [41] [42] [43] [44] [45] [46] [47] [48] [49] [50] [51] [52] [53] [54] [55] [56] [57] [58] [59] [60] [61] [ 62 ] [63] [64] [65] [66] [67] [68] [69] [70] [71] [72] [73] [74] [75] [76] [77] [78] [79] [80] [81] [82] [83] [84] [85] [86] [87] [88] [89] [90] [91] [92] [93] [94] [95] [96] [97] [98] [99] [100]

0.0137