Главная страница Программы проектирования [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,!63 -0,01 0,0155 К.м v,\t,e,e,pad 20 Г
[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.0147 |