НОВОСИБИРСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ФАКУЛЬТЕТ ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ ОСНОВЫ ТЕОРИИ УПРАВЛЕНИЯ Задание № 5 Расчет запаса устойчивости по норме решения матричного уравнения Ляпунова Студент группы 0201 Диана Борисовна Анисютина " 23 " декабря 2013 г. Преподаватель Антон Павлович Пынтиков "____"_______2013 г. Теория Уравнение Ляпунова Непрерывный случай Дискретный случай 𝐴𝑑 𝑇 ∗ 𝐻 ∗ 𝐴𝑑 − 𝐻 = −𝐼 𝑇 𝐴 ∗ 𝐻 + 𝐻 ∗ 𝐴 = −𝐼 Количественный показатель устойчивости непрерывной системы Непрерывный случай æ(A) = 2‖𝐴‖‖𝐻‖ Дискретный случай æ(A) = ‖𝐻‖ Системы управления с непрерывным временем ПИ-регулятор (T = 0) K 1.04 ПИД-регулятор (T = 0) Ti 2.9 ПИ spec(A) 0.9441116 + 0.0612747i 0.9441116 - 0.0612747i 0.9977455 + 0.0169846i 0.9977455 - 0.0169846i 0.9920429 K 2 Ti 3.2 ПИД spec(A) - 2.0687844 + 0.8634796i - 2.0687844 - 0.8634796i - 0.2765604 + 0.7701235i - 0.2765604 - 0.7701235i - 0.2475821 В спектре матрицы А нет симметричных относительно мнимой оси точек, т.е таких, что 𝜆𝑖 (𝐴), 𝜆𝑗 (𝐴), что 𝜆𝑖 (𝐴) + ̅̅̅̅̅̅̅ 𝜆𝑗 (𝐴) = 0, значит, можно воспользоваться теоремой: для устойчивости системы достаточно, чтобы H - была положительно определена, где H - решение уравнения Ляпунова: 𝐴𝑇 ∗ 𝐻 + 𝐻 ∗ 𝐴 = −𝐼 λ(H) æ(A) ПИ 0.1468278 0.4380638 1.7411957 6.2066394 20.993131 281.6698 ПИД 0.0430401 0.2197567 0.6844603 2.2078524 7.2463659 25.011151 1104.4919 Спектр H положительный, следовательно, H – положительно определена, значит, А – устойчива. Системы управления с дискретным временем ПИ-регулятор (T = 1.2) K 0.78 ПИД-регулятор (T = 1.2) Ti 3.2 ПИ spec(Ad) 0.9441116 + 0.0612747i 0.9441116 - 0.0612747i 0.9977455 + 0.0169846i 0.9977455 - 0.0169846i 0.9920429 K 1.31 Ti 3.5 ПИД spec(Ad) 0.9923780 + 0.0402780i 0.9923780 - 0.0402780i 0.9985247 + 0.0081928i 0.9985247 - 0.0081928i 0.9964641 0.9943391 Если в спектре 𝐴𝑑 нет взаимнообртных чисел, таких что 𝜁𝑖 (𝐴), 𝜁𝑗 (𝐴), что 𝜁𝑖 (𝐴) ∗ 𝜁𝑗 (𝐴) = 1, то также можем утверждать, что 𝐴𝑑 устойчива, если H – положительно определена, где H – решение уравнения 𝐴𝑑 𝑇 ∗ 𝐻 ∗ 𝐴𝑑 − 𝐻 = −𝐼; Ляпунова: λ(H) æ(A) ПИ 7.2218164 13.362263 62.025966 425.16232 1602.7156 1602.7156 ПИД 49.095523 63.504065 108.39953 240.19051 732.25083 3779.3591 3779.359090 Спектр H положительный, следовательно, H – положительно определена, значит, 𝐴𝑑 – устойчива. Вывод Рассмотренные системы устойчивы, т.к. æ положительно. По количественному показателю æ, можем сказать, что системы в ПИ-регулятором являются более устойчивыми. Приложение А. Листинг программы для вычисления показателя устойчивости ПИ-регулятора (линейный случай) n = 4; T0 = 0.81; Ti = 2.9; K = 1.04; T = 0; h = Ti/100; S = poly(0, 's'); Wobj = (1-T*S+(T*S)^2/2 - (T*S)^3/6)/(1+S*T0)^n W1 = (1 + 1/(Ti*S))*K*Wobj W = W1/(1 + W1) sl = syslin('c', W); [A B C D] = abcd(sl); // Единичная матрица соответствующей размерности E = -eye(A); // Решение уравнения Ляпунова H = lyap(A, E, 'c'); l = spec(H) // Запас устойчивости по Ляпунову if l > 0 then k = 2 * norm(A, 2) * norm(H, 2); else k = %inf end printf("%4.4f\n", k); Б. Листинг программы для вычисления показателя устойчивости ПИД-регулятора (линейный случай) function [Res]=Pade(delay, order) s = poly(0,'s'); Res = (-delay*s + 2*order)^order / (delay*s + 2*order)^order; endfunction*) n = 4; T0 = 0.81; Ti = 3.2; K = 2; T = 0; Td = Ti/4; Ts = Td/8; h = Ti/100; S = poly(0, 's'); Wobj = Pade(T, 5)/(1+S*T0)^n W1 = (1 + 1/(Ti*S) + Td*S/(1 + Ts*S))*K*Wobj W = W1/(1 + W1) sl = syslin('c', W); [A B C D] = abcd(sl); // Единичная матрица соответствующей размерности E = -eye(A); // Решение уравнения Ляпунова H = lyap(A, E, 'c'); l = spec(H) // Запас устойчивости по Ляпунову if l > 0 then k = 2 * norm(A, 2) * norm(H, 2); else k = %inf end printf("%4.4f\n", k); В. Листинг программы для вычисления показателя устойчивости ПИ-регулятора (дискретный случай) n = 4; T0 = 0.81; Ti = 2.9; K = 1.04; T = 1.2; h = Ti/100; S = poly(0, 's'); Wobj = (1-T*S+(T*S)^2/2 - (T*S)^3/6)/(1+S*T0)^n W1 = (1 + 1/(Ti*S))*K*Wobj W = W1/(1 + W1) sl = syslin('c', W); dicrMat = dscr(sl, h); Ad = dicrMat.A; // Единичная матрица соответствующей размерности Ed = -eye(Ad); // Решение уравнения Ляпунова Hd = lyap(Ad, Ed, 'd'); ld = spec(Hd) // Запас устойчивости по Ляпунову if ld > 0 then kd = norm(Hd, 2); else kd = %inf end printf("%4.4f\n", kd); Г. Листинг программы для вычисления показателя устойчивости ПИД-регулятора (дискретный случай) function [Res]=Pade(delay, order) s = poly(0,'s'); Res = (-delay*s + 2*order)^order / (delay*s + 2*order)^order; endfunction n = 4; T0 = 0.81; Ti = 3.5; K = 1.31; T = 1.2; Td = Ti/4; Ts = Td/8; h = Ti/100; S = poly(0, 's'); Wobj = Pade(T, 5)/(1+S*T0)^n W1 = (1 + 1/(Ti*S) + Td*S/(1 + Ts*S))*K*Wobj W = W1/(1 + W1) sl = syslin('c', W); dicrMat = dscr(sl, h); Ad = dicrMat.A; // Единичная матрица соответствующей размерности Ed = -eye(Ad); // Решение уравнения Ляпунова Hd = lyap(Ad, Ed, 'd'); ld = spec(Hd) // Запас устойчивости по Ляпунову if ld > 0 then kd = norm(Hd, 2); else kd = %inf end printf("%4.4f\n", kd);