ФИТ НГУ Курс «Основы теории автоматического управления» 2011г. Задание 4 Вариант 5-8 Выполнил: Савенко С.А. Оглавление Содержание ............................................................ Error! Bookmark not defined. Постановка задачи ............................................................................................... 3 Дискретная реализация системы автоматического управления с ПИ- регулятором .......................................................................................................... 4 Дискретная реализация системы автоматического управления с ПИД- регулятором .......................................................................................................... 9 Исследование точности дискретной модели для разных времен дискретизации .................................................................................................... 14 Выводы................................................................................................................ 15 Приложение........................................................................................................ 16 2 Постановка задачи В цифровых системах вместо непрерывного времени используется дискретное время. То есть вместо непрерывного пространства времени имеется квантованное, где частота квантования соответствует частоте, генерируемой тактовым генератором. Так как цифровые схемы на сегодняшний день очень распространены, то используются и дискретные регуляторы, а значит, актуальна задача моделирования схем при дискретном времени. Одним из методов моделирования таких схем и являются разностные схемы. Данный метод состоит в представлении непрерывных функций табличными, а дифференциальных уравнений – разностными уравнениями. Непрерывные переменные заменены дискретными переменными, определёнными в N моментов времени, то есть x[i] = x(i*h), где i = 1, …, N, а за h обозначен шаг сетки. Целью данного задания является проведение анализа качества моделирования работы схемы, проведенного в среде MicroCap, с аналогичной разностной схемой. Таблица 1 Параметры моделируемой системы Регулятор T0 n T K Tи Tд Tс ПИ 1.21 6 1.2 1.086 11.2 - - ПИД 1.21 6 1.2 1.086 11.2 2.8 0.35 3 Дискретная реализация системы автоматического управления с ПИ-регулятором Рисунок 1 Структурная схема моделирования с ПИ регулятором Математическое описание системы управления с ПИ-регулятором Непрерывная система управления может быть описана следующей системой дифференциальных уравнений: 𝑆𝑣(𝑡) = 𝐴 ∙ 𝑣(𝑡) + 𝐵 ∙ 𝑢(𝑡) { 𝑥(𝑡) = 𝐶 ∙ 𝑣(𝑡) + 𝐷 ∙ 𝑢(𝑡) Дискретная же система описывается как: 𝜔[𝑘 + 1] = 𝐴𝑑 ∙ 𝜔[𝑘] + 𝐵𝑑 ∙ 𝑢[𝑘] { 𝑥[𝑘] = 𝐶𝑑 ∙ 𝜔[𝑘] + 𝐷𝑑 ∙ 𝑢[𝑘] 4 Графики переходной характеристики Рисунок 2 h = T 5 Рисунок 3 h = T / 2 6 Рисунок 4 h = 0,1T 7 Рисунок 5 h = 0,01T 8 Дискретная реализация системы автоматического управления с ПИД-регулятором Рисунок 6 Структурная схема моделирования с ПИД регулятором Математическое описание системы управления с ПИ-регулятором Непрерывная система управления может быть описана следующей системой дифференциальных уравнений: 𝑆𝑣(𝑡) = 𝐴 ∙ 𝑣(𝑡) + 𝐵 ∙ 𝑢(𝑡) { 𝑥(𝑡) = 𝐶 ∙ 𝑣(𝑡) + 𝐷 ∙ 𝑢(𝑡) Дискретная же система описывается как: 𝜔[𝑘 + 1] = 𝐴𝑑 ∙ 𝜔[𝑘] + 𝐵𝑑 ∙ 𝑢[𝑘] { 𝑥[𝑘] = 𝐶𝑑 ∙ 𝜔[𝑘] + 𝐷𝑑 ∙ 𝑢[𝑘] 9 Графики переходной характеристики Рисунок 7 h = T 10 Рисунок 8 h = 0.5T 11 Рисунок 9 h = 0.1T 12 Рисунок 10 h = 0.01T 13 Исследование точности дискретной модели для разных времен дискретизации Ошибки дискретизации Шаг дискретизации Ошибка дискретизации ПИ ПИД T 0.0026931 0.0023857 T/2 0.0010805 0.0010279 T/10 0.0000661 0.0001783 T/100 0.0000169 0.0006705 14 Выводы С уменьшением шага дискретизации уменьшается и её ошибка – чего и следовало ожидать. В таблице для ПИД регулятора и самой высокой частоты дискретизации наблюдается странный выброс, объяснение природы которого автор не придумал. Данный факт не позволяет сделать вывод о зависимости качества дискретизации от сложности используемого объекта. 15 Приложение Функции для генерации матриц function [A,B,C,D]=parallel(A1,B1,C1,D1,A2,B2,C2,D2) nul1=zeros(size(A1,'r'),size(A2,'c')); nul2=zeros(size(A2,'r'),size(A1,'c')); A=[A1 nul1 ; nul2 A2]; B=[B1 ; B2]; C=[C1 C2]; D=D1+D2; endfunction function [A,B,C,D]=posled(A1,B1,C1,D1,A2,B2,C2,D2) nul1=zeros(size(A1,'r'),size(A2,'c')); A=[A1 nul1 ; B2*C1 A2]; B=[B1 ; B2*D1]; C=[D2*C1 C2]; D=D2*D1; endfunction function [A,B,C,D]=back(A1,B1,C1,D1) edin=eye(D1); A=A1-B1*((edin+D1)\C1); B=B1-B1*((edin+D1)\D1); C=(edin+D1)\C1; D=(edin+D1)\D1; endfunction function [A,B,C,D]=integr(T,h) A=[ 1 ]; B=[ h/T ]; C=[ 1 ]; D=[ h/T ]; endfunction function [A,B,C,D]=dif(Ti,h) Td=Ti*0.25; Tc=Td*0.125; a1=(2*Tc-h)/(2*Tc+h); b0=2*Td/(2*Tc+h); b1=-b0; A=[ 0 0; b1 a1]; B=[ 1 ; b0 ]; D=[ b0 ]; C=[ b1 a1 ]; endfunction function [A,B,C,D]=line() A=[ 0 ]; B=[ 0 ]; C=[ 0 ]; D=[ 1 ]; endfunction function [A,B,C,D]=power(K) A=[0]; B=[0]; C=[0]; D=[K]; endfunction function [A,B,C,D]=element(T0,h) m=T0/h; A=[ m/(1+m) ]; B=[ 1/(1+m) ]; C=[ m/(1+m) ]; D=[ 1/(1+m) ]; endfunction function [A,B,C,D]=hold(m) A=[zeros(m,1)'; eye(m-1,m-1), zeros(m-1,1)]; B=[1; zeros(m-1,1)]; C=[zeros(1,m-1),1]; D=[0]; Endfunction 16 Программа для вычисления ошибки и построения графиков K=1.086; T0=1.21; Ti=11.2; n=6; T=1.2; endTime=240; m=1; h=T/m; [A3,B3,C3,D3]=line(); /* для ПИД заменить строку выше на следующее: [A1,B1,C1,D1]=dif(Ti, h); [A2,B2,C2,D2]=line(); [A3,B3,C3,D3]=parallel(A1,B1,C1,D1,A2,B2,C2,D2); */ [A1,B1,C1,D1]=integr(Ti,h); [A3,B3,C3,D3]=parallel(A1,B1,C1,D1,A3,B3,C3,D3); [Ak,Bk,Ck,Dk]=power(K); [A,B,C,D]=posled(A3,B3,C3,D3,Ak,Bk,Ck,Dk); [Ae,Be,Ce,De]=element(T0,h); for k=1:n [A,B,C,D]=posled(A,B,C,D,Ae,Be,Ce,De); end; [Ah,Bh,Ch,Dh]=hold(m); [A,B,C,D]=posled(A,B,C,D,Ah,Bh,Ch,Dh); [A,B,C,D]=back(A,B,C,D); time = [0:h:endTime - h]; l=length(time) w=zeros(size(A, 'r'),l); sciLabValues=zeros(l); time(1) for k=1:l w(:,k+1)=A*w(:,k)+B; sciLabValues(k)=C*w(:,k)+D; end; length(time) length(sciLabValues) plot2d(time,sciLabValues, 2); microCapValues = [ // data from mCap ]; length(time) length(microCapValues) plot2d(time, microCapValues, 5); err=0; for k=1:l err=err+(microCapValues(k)-sciLabValues(k))^2; end; err=err/l print(%io(2), err) 17