Главная страница Программы проектирования [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] Понятие двойственности имеет большое значение как в теоретическом, так и в практическом отношении. В ряде случаев оно оказывает существенную помощь при выполнении различных доказательств. Практическое значение принципа двойственности состоит, в частности, в том, что одни и те же вычислительные программы для ЭВМ могут использоваться при синтезе как оптимальных регуляторов, так и оптимальных фильтров. Для формирования матриц управляемости (1.67) и наблюдаемости (1.70) и вычисления их ранга составлена программа, которая приведена ниже. В программе использована подпрограмма RANK. Подпрограмма RANK Назначение: вычисление матрицы управляемости и определение ее ранга. Обращевие: CALL RANK (А, В, N, К. IRANK). Параметры: А - матрица динамических параметров системы, В - матрица коэффициентов усиления управляющих воздействий, N - число координат состояния системы, К - число управляющих воздействий, IRANK - ранг матрицы управляемости. Используемые стандартные подпрограммы [53]: GMPRD - перемножение двух матриц общего вида, MFGR - разложение матрицы на множители и определение ранга. Программа написана на Фортране для N=4 и К=1, в противном случае следует изменить размеры массивов. Пример. Исследуем управляемость динамической системы, матрицы А и В которой имеют вид 0 10 О -4,85 -0,777 0,12.10~* 4,85 ООО 257 0,86 О 0,61.10~ -0,86 В: [ О -1,625 О 0,0268 ] . В результате выполнения программы получим Матрица управляемости 0.0 -0.163E-f01 0.179E-f01 -0.176E-f01 ~0.163E-f01 0.138E-I- 01 -0.292E-f 01 0.283E-f01 0.0 0.689E-f01 ~0.815E-f02 0.784E-f02 0.268E -01 -0.230E -01 0.273E-f00 -0.262E-f00 Ранг матрицы управляемости =4. Таким образом, рассматриваемая система является управляемой. Матрица наблюдаемости и ее ранг могут быть определены при помощи этой же подпрограммы. Для этого достаточно вместо матриц А и В ввести транспонированные матрицы А, С. с IIF-ИМЕР ИСПОЛЬЗОВАНИЯ П0ДПГ-0ГР(«1МИ RANK С DIfENSION А(4,4),В(4Л) READ 1»,N,K READ 20,((A(I,J),1,N),I=UN) READ 3e,((B(I,J),c)=l,K),T=l,N) id) F0R«AT(2I3) 2» F0R«AT(4E12.4) Зв F0R«AT(E12.4) CALL RANK(A,B,N,K,IRANK) STOP С ПОДПРОГРАММА RANK С SUBROUTINE RANK(A,B,N,K,IRANK;> DIMENSION A(4,4),B(4,l),AIi(4,4),U(4,4),AA(4,4), » AAB(4,4),IR0W<4>,IC0L<4) EPS=e.»lE-ie KM=N»K Nl=N-2 С «ОРМИР-ОВАНкС МАТРИЦИ УПРАВЛЯЕМОСТИ DO 2» 1=1, N DO 20 J=1,K 20 U(I,J)=B(I,J) CALL GMPRD(A,B,AB,N,N,K> K1=K+1 K2=K+K IO 40 1=1, N IO 30 J=K1,K2 U(I,J)=AB(I,L> 30 L=L+1 40 CONTINUE ro 50 1=1, N ro 50 J=1,N 50 AA(I,J)=A(I,J) MN=K2+1 MK=K2+K Ю S0 MUNl CALL GMPrai(AA,A,AA,N,N,H) CALL GfFRD(AA,B,AAB,N,N,K) DO 70 1=1, N L=l DO 60 J=MN,MK U(I,J)=AAB(I,L) A0 L=L+1 70 CONTINUE MM=MK+1 MK=«K-H< 30 CONTINUE PRINT 90 PRINT 100,((U(I,J),J=1,KN),I=1,N) . С ВШИСЛЕ>*С РЖГА MATF-ИЦИ УПРАВЛЯЕМОСТИ CM.L MFGR(U,N,N,EFS,IRANI:,IR-OU,ICOL> PRINT 110,IRANK 90 ЕОРМАТ(/10Х,МАТРИЦА УПР-АВЛ;*:МОСТИ) 100 F0RMAT(lX,4E11.3i 110 FORMAT(/lX,PAHr МАТРИЦИ УПР-АВЛЯЕМОСТИ=МЗ) RETURN END ГЛАВА 2 ИССЛЕДОВАНИЕ УСТОЙЧИВОСТИ УПРАВЛЯЕМЫХ СИСТЕМ Приведены алгоритмы исследования устойчивости линейных систем, мате-иагические модели которых заданы в виде передаточных функций или диффе-рен>Пиальных уравнений в пространстве состояний. В первом случае оценка устойчивости производится по критерию Рауса, во втором - с помощью специальной алгоритмической процедуры, которая построена на основе преобразования .исходной непрерывной модели исследуемой системы в соответствующую дискретную модель с последующим анализом фундаментальной матрицы. Эта процедура ориентирована на применение ЭВМ, легко алгоритмизуется п позволяет исследовать устойчивость системы произвольного порядка. Применительно к нелинейным системам задача исследования устойчивости рассмотрена только для того случая, когда в контуре управления имеется один элемент с нелинейной характеристикой. Следует отметить, что существующие критерии абсолютной устойчивости непросто поддаются алгоритмизации и реализации в виде прикладных программ. Приведенный здесь алгоритм .исследования абсолютной устойчивости является убедительной иллюстрацией этого положения. 2.1. ОЦЕНКА УСТОЙЧИВОСТИ ПО КРИТЕРИЮ РАУСА Пусть исследуемая система задана передаточной функцией W(p)=B(p)/A{p) (2.1) где А(р), В(р) -многочлены относительно комплексной переменной р = о+](й. Известно, что свободное движение системы будет устойчиво, если все полюсы передаточной функции W{p) расположены слева от мнимой оси jw комплексной плоскости р. Если хотя бы один полюс располчжен справа от оси j« или находится на этой оси, то система не обладает свойствами устойчивости. Полюсы передаточной функции могут быть найдены в результате решения алгебраического уравнения у4{р)=0. Таким образом можно установить факт устойчивости или неустойчивости исследуемой системы. В инженерной практике применяются специальные критерии, позволяющие по коэффициентам многочлена А (р) судить об устойчивости или неустойчивости системы. Наиболее удобным для реализации на ЭВМ является критерий Рауса. На основе этого критерия будет построена программа исследования устойчивости. Запишем многочлен А(р) из (2.1) в следующем виде: Л(р) =йор"-1-й1р"-Ч- ... -ffl„-,p-ffl„. (2.2) Необходимым, но недостаточным условием устойчивости системы, как известно, является положительность всех коэффициентов ее характеристического многочлена: ао>0, й,>0, й„>0. (2.3) [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.0101 |