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

Содержание.

1.Анализ системы.................................................................................................4

1.1 Исследование устойчивости...................................................................4

1.2 Построение АЧХ, ФЧХ, АФЧХ..............................................................7

1.3 Численные методы интегрирования........................................................9

1.4 Анализ системы с использованием спектрального метода (базис Лягерра)................................................................................................................13

2. Синтез регулятора...........................................................................................17

3. Синтез робастного регулятора матричным методом...................................19

Приложение..........................................................................................................22

Литература............................................................................................................33

у(t) x(t)

- -




Рис. 1. Структурная схема заданной САУ

Данные:

1. Анализ системы.

1.1 Исследование устойчивости.

- передаточная функция

- характеристический полином

Рис. 2. Характеристический полином.

имеет 1 действительный корень и 2 комплексных.

Уравнение решается методом Стеффенсена.

Метод Стеффенсена.

Начальное приближение для нахождения действительного корня.

На рис.3. изображено значение корня от итерации.

Рис.3. Динамика изменения корня в зависимости от итерации.

Подставим в (*).

Корни характеристического уравнения

Полюса передаточной функции находятся в левой полуплоскости. Система устойчива. Система будет колебательной т.к. корни имеют мнимую часть

Построение АЧХ, ФЧХ, АФЧХ.

Годограф АФЧХ.

Рис.4. АФЧХ

График АЧХ

Рис.5. АЧХ

График ФЧХ

Рис.6. ФЧХ

1.2 Построение переходного процесса численным методом.

Для решения дифференциального уравнения используется многошаговый, неявный метод второго порядка, интерполяционная схема Адамса.

В неявных методах используется информация о возможном будущем значении решения в точке п+1. Это несколько повышает точность получаемых результатов по сравнению с явными методами.

Погрешность

При решении уравнения высокого порядка необходимо перейти к нормальной форме Коши.

нормальная форма Коши имеет вид

Разгонный метод Рунге – Кутта 5.

Дифференциальное уравнение системы.

Рис.7. Переходная функция найденная численным методом и точная

Рис.8. Переходная функция найденная численным методом и точная при

Рис.9. Переходная функция найденная численным методом и точная

Заключение: из графиков видно, что наибольшая погрешность возникает в самом начале процесса интегрирования.

При погрешность значительно вырастает.

1.3 Анализ спектральным методом системы по базису функций Лягерра.

Разложим ядра интегрального уравнения в ряды Фурье по базису функций Лягерра.

функции Лягерра.

Выбираем

Дифференциальное уравнение системы.

Спектральная характеристика системы определяется по формуле

Спектр выходного сигнала системы:

Спектральная характеристика системы:

Рис.10. Переходная функция, построенная спектральным методом

Рис.11. Реакция на

Фазовый сдвиг

2. Синтез регулятора

Так реальная переходная характеристика системы не удовлетворяет поставленным требованиям , необходимо произвести коррекцию системы. В качестве корректирующего устройства ПИД –регулятор .

Эталонная переходная характеристика

Необходимо минимизировать следующую целевую функцию.

Метод оптимизации Дэвидона, Флетчера, Пауэла.

Согласно данному методу минимум ищется в направлении

- ищется на каждом шаге мини минимизацией

- некоторая симметричная положительно определённая матрица, которая при переходит в матрицу Гессе. Обычно при

достоинства этого метода высокая скорость сходимости, простота вычисления

- будем искать методом золотого сечения.

Параметры регулятора:

Рис.12. Графики переходных характеристик системы

3. Синтез робастного регулятора матричным методом.

Одним из возможных и перспективных способов решения задачи синтеза регуляторов является использования метода матричных операторов. Достоинством данного метода является возможность его применения для различных классов систем, в том числе нелинейных и нестационарных.

Рассмотрим линейную систему без неопределенности, описываемую в форме матричных операторов:

Очевидно, что для линейной системы без неопределенности справедливы следующие зависимости: ; ; .

Получаем следующую формулу расчета спектральной характеристики выходного сигнала:

Спектральная характеристика невязки между эталонной и реальной переходными характеристиками имеет вид:

,

где – варьируемые параметры корректирующих устройств, подлежащие определению.

В приведенной формуле используется зависимость , усложняющая вычислительный процесс. Можно воспользоваться другим, более простым подходом. Определим спектральную характеристику невязки следующим образом:

.

Перейдем к системе с неопределенностью:

,

где – матричный оператор объекта, элементы которого зависят от .

Необходимо минимизировать целевую функцию вида: ,

где – число элементов выборки.

Полученный функционал содержит полную информацию о параметрической неопределенности.

В качестве корректирующего устройства выберем ПИД-регулятор:

.

Пусть выборка составляет 1000 элементов. В качестве эталонного сигнала выберем . В качестве ортонормированного базиса выберем систему функций Уолша (128 функций). Интервал исследования – .

имеют интервальную неопределённость 20%

Приведем здесь клетку матричного оператора интегрирования:

Получены следующие значения коэффициентов регулятора:

Несколько примеров для произвольно взятых , на которых представлены переходные характеристики эталонной системы и 4-х из семейства систем представлены на рис. 13.

Рис. 13. Графики эталонной и реальной переходных характеристик для разных значений параметра : , , ,,

Приложение.

Программа 1.

Решения уравнения методом Стеффенсена.

function Stefens

clc

e=10.^-5;

x=-20;

x1=0;

i=0;

As=0.0125*(x.^3)+0.3*(x.^2)+4.886*x+61.72;

x=x-(As.^2)./((0.0125*((x+As).^3)+0.3*((x+As).^2)+4.886*(x+As)+61.72)+As);

As=0.0125*(x.^3)+0.3*(x.^2)+4.886*x+61.72;

A(1)=x;

i=i+1;

while abs(x-x1)>e

x1=x;

x=x-(As.^2)./((0.0125*((x+As).^3)+0.3*((x+As).^2)+4.886*(x+As)+61.72)+As);

As=0.0125*(x.^3)+0.3*(x.^2)+4.886*x+61.72;

A(i+1)=x;

i=i+1;

end

plot(1,A(1));

hold on

for n=1:i

plot(n,A(n),'b-o')

end

grid on

xlabel('iteraciya')

ylabel('roots')

disp('ответ');

disp(x);

disp('число итераций');

disp(i);

Программа 2.

Решение дифференциального уравнения численным способом.

clc

a2=24;

a1=390.88;

a0=4937.6;

b2=0;

b3=0;

b1=230.88;

b0=4617.6;

f1=b2;

f2=b1-a1*f1;

f3=b0-a1*f1-a2*f2;

B=[f1;f2;f3]

A=[0 1 0; 0 0 1;-a0 -a1 -a2]

h=0.02;

Xt=[0;0;0];

X(1,1)=Xt(1);

X(1,2)=Xt(2);

X(1,3)=Xt(3);

F=A*Xt+B;

% Разгонный метод

K1=h*F;t(1)=0;

K2=h*(F+K1/3);

K3=h*(F+K2/6+K1/6);

K4=h*(F+K1/8+3/8*K2);

K5=h*(F+K1/2-3/2*K3+2*K4);

Xt=Xt+(1./6)*(K1+4*K4+K5);

X(2,1)=Xt(1);

X(2,2)=Xt(2);

X(2,3)=Xt(3);

t(2)=t(1)+h;

F=A*Xt+B;

i=2;

%Неявный метод второго порядка

while t(i)<1.6

X1(1)=X(i-1,1);

X1(2)=X(i-1,2);

X1(3)=X(i-1,3);

Xt=Xt+(h./12)*(5*B+8*(A*Xt+B)-(A*X1'+B));

Xt=((eye(3)-(5./12)*h*A)^-1)*Xt;

X(i+1,1)=Xt(1);

X(i+1,2)=Xt(2);

X(i+1,3)=Xt(3);

t(i+1)=t(i)+h;

i=i+1;

end

h=0.9352-0.0629*exp(-17.6849*(t))-(0.8723*cos(16.4082*(t))-0.2357*sin(16.4082*(t))).*exp(-3.1576*(t));

for j=1:i

V(j)=X(j,1);

end

E=h-V;

plot(t,V,t,h,t,E); grid on

Программа 3.

Анализа заданной системы с использованием спектрального метода.

syms t T;

Kx=(4937.6./2)*(t-T).^2-390.88*(1./2)*(-2*(t-T))+24;

Ky=(4617.6./2)*(t-T).^2-230.88*(1./2)*(-2*(t-T));

for i=0:9

F6=0;

for j=0:i

m=i;

K=(sqrt(1.1552)*exp(-(1.1552*t)./2));

F=(factorial(m))./(factorial(m-j));

F1=((-1.1552*t).^j);

F2=(factorial(j)).^2;

F3=K.*F;

F4=F1./F2;

F5=F3.*F4;

F6=F6+F5;

L(i+1)=F6;

end

end

for i=0:9

F6=0;

for j=0:i

m=i;

K=(sqrt(1.1552)*exp(-(1.1552*T)./2));

F=(factorial(m))./(factorial(m-j));

F1=((-1.1552*T).^j);

F2=(factorial(j)).^2;

F3=K.*F;

F4=F1./F2;

F5=F3.*F4;

F6=F6+F5;

L1(i+1)=F6;

end

end

G=L'*L1;

In=Kx*G;

r=int(In,T,0,t);

Cx=int(r,t,0,1.5);

In=Ky.*G;

r=int(In,T,0,t);

Cy=int(r,t,0,1.5);

A=((Cx+eye(10))^-1)*Cy;

Cy=int(L,t,0,1.5);

Cx=A*Су'

function H=fun(t)

Cx=[-0.1275; 0.5090; 0.2483; 0.0697; -0.0459; -0.1140; -0.1472; -0.1555; -0.1468; -0.1275];

for i=0:9

F6=0;

for j=0:i

m=i;

K=(sqrt(1.1552)*exp(-(1.1552*t)./2));

F=(factorial(m))./(factorial(m-j));

F1=((-1.1552*t).^j);

F2=(factorial(j)).^2;

F3=K.*F;

F4=F1./F2;

F5=F3.*F4;

F6=F6+F5;

L(i+1)=F6;

end

end

H=(Cx'*L');

Программа 3.

Минимизация функционала.

function K=minF(X)

% Kn=X(1);

% Ku=X(2);

% Kd=X(3);

X=[0.7;

0.7;

0.7];

Kn=X(1);

Ku=X(2);

Kd=X(3);

clc

%--ПЕРЕМЕННЫЕ--%

e=0.0001;

l=1;

t=0;

h=0.001;

J1=1;

J=0;

J2=-1;

I=11;

I1=32;

alph=-10;

Xe=1-exp(alph*t);

H=eye(3);

H2=H;

Kn1=Kn+10^-3;

Kd1=Kd+10^-3;

Ku1=Ku+10^-3;

X1=[Kn1;Ku1;Kd1];

while (abs(J1-I)>e)

%--ГРАДИЕНТ--%

X3=[Kn;Ku;Kd];

U=Dif2([X3]);

J1=0;

i=1;

t=0;

while (t<2)

J1=J1+(1-exp(alph*t)-U(i))^2;

t=t+h;

i=i+1;

end

X3=[Kn+10^-3;Ku;Kd];

U=Dif2([X3]);

J=0;

i=1;

t=0;

while (t<2)

J=J+(1-exp(alph*t)-U(i))^2;

t=t+h;

i=i+1;

end

g1=(J-J1)/10^-3;

X3=[Kn;Ku+10^-3;Kd];

U=Dif2([X3]);

J=0;

t=0;

i=1;

while (t<2)

J=J+(1-exp(alph*t)-U(i))^2;

t=t+h;

i=i+1;

end

g2=(J-J1)/10^-3;

X3=[Kn;Ku;Kd+10^-3];

U=Dif2([X3]);

J=0;

t=0;

i=1;

while (t<2)

J=J+(1-exp(alph*t)-U(i))^2;

t=t+h;

i=i+1;

end

g3=(J-J1)/10^-3;

I1=J;

GradJ=[g1;g2;g3];

%--НОВОЕ ЗНАЧЕНИЕ Х--%

X1=X1-l*H*GradJ;

X=X1;

Kn1=X(1);

Ku1=X(2);

Kd1=X(3);

Kn=Kn1;

Ku=Ku1;

Kd=Kd1;

X3=[Kn;Ku;Kd];

U=Dif2([X3]);

J1=0;

i=1;

t=0;

while (t<2)

J1=J1+(1-exp(alph*t)-U(i))^2;

t=t+h;

i=i+1;

end

X3=X1+[10^-3;0;0];

U=Dif2([X3]);

J=0;

t=0;

i=1;

while (t<2)

J=J+(1-exp(alph*t)-U(i))^2;

t=t+h;

i=i+1;

end

g11=(J-J1)/10^-3;

X3=X1+[0;10^-3;0];

U=Dif2([X3]);

J=0;

t=0;

i=1;

while (t<2)

J=J+(1-exp(alph*t)-U(i))^2;

t=t+h;

i=i+1;

end

g21=(J-J1)/10^-3;

X3=X1+[0;0;10^-3];

U=Dif2([X3]);

J=0;

t=0;

i=1;

while (t<2)

J=J+(1-exp(alph*t)-U(i))^2;

t=t+h;

i=i+1;

end

I=J;

g31=(J-J1)/10^-3;

GradJ1=[g11;g21;g31];

U1=GradJ1-GradJ;

V=l*H*GradJ;

A=(V*V')/(V'*U1);

B=-(H*U1*U1')/(U1'*H*U1);

H2=H+A+B;

if J1>I

l=min_lz(X,l,H,GradJ);

X1=X;

end

X=X1;

Kn1=X(1);

Ku1=X(2);

Kd1=X(3);

Kn=Kn1;

Ku=Ku1;

Kd=Kd1;

end

Kn

Ku

Kd

function la=min_l(X,l,H,GradJ)

b=1;

a=0;

e=0.05;

x4=10;

x2=a+(-1+sqrt(1+4*(b-a)))/(2);

while (abs(x2-x4)>e)

x4=a+b-x2;

F2=X-x2*H*GradJ;

F4=X-x2*H*GradJ;

if norm(F2)<norm(F4)

b=x4;

else

x2=x4;

a=x2;

end

end

X=[0.43101603658062

0.78399472393963

0.05296602599762];

Kn=X(1);

Ku=X(2);

Kd=X(3);

a4=693/693;

a3=(160000*Kd+16632)/693;

a2=(110880+160000*Kn+3200000*Kd)/693;

a1=(160000*Ku+221760+3200000*Kn)/693;

a0=3200000*Ku/693;

b4=0;

b3=160000*Kd/693;

b2=(3200000*Kd+160000*Kn)/693;

b1=(3200000*Kn+160000*Ku)/693;

b0=3200000*Ku/693;

H=tf([b4 b3 b2 b1 b0],[a4 a3 a2 a1 a0]);

h=tf([10],[1 10]);

ltiview(H,h);

function Xre=Dif2(X)

Kn=X(1);

Ku=X(2);

Kd=X(3);

a4=693/693;

a3=(160000*Kd+16632)/693;

a2=(110880+160000*Kn+3200000*Kd)/693;

a1=(160000*Ku+221760+3200000*Kn)/693;

a0=3200000*Ku/693;

b4=0;

b3=160000*Kd/693;

b2=(3200000*Kd+160000*Kn)/693;

b1=(3200000*Kn+160000*Ku)/693;

b0=3200000*Ku/693;

f0=b4;

f1=b3-a3*f0;

f2=b2-a2*f0-a3*f1;

f3=b1-a1*f0-a2*f1-a3*f2;

f4=b0-a0*f0-a1*f1-a2*f2-a3*f3;

B=[f1;f2;f3;f4];

A=[0 1 0 0;

0 0 1 0;

0 0 0 1;

-a0 -a1 -a2 -a3];

h=0.001;

Xt=[0;0;0;0];

X(1,1)=Xt(1);

X(1,2)=Xt(2);

X(1,3)=Xt(3);

X(1,4)=Xt(4);

F=A*Xt+B;

% Разгонный метод

K1=h*F;t(1)=0;

K2=h*(F+K1/3);

K3=h*(F+K2/6+K1/6);

K4=h*(F+K1/8+3/8*K2);

K5=h*(F+K1/2-3/2*K3+2*K4);

Xt=Xt+(1./6)*(K1+4*K4+K5);

X(2,1)=Xt(1);

X(2,2)=Xt(2);

X(2,3)=Xt(3);

X(2,4)=Xt(4);

t(2)=t(1)+h;

F=A*Xt+B;

i=2;

%Неявный метод второго порядка

while t(i)<5

X1(1)=X(i-1,1);

X1(2)=X(i-1,2);

X1(3)=X(i-1,3);

X1(4)=X(i-1,4);

Xt=Xt+(h./12)*(5*B+8*(A*Xt+B)-(A*X1'+B));

Xt=((eye(4)-(5./12)*h*A)^-1)*Xt;

X(i+1,1)=Xt(1);

X(i+1,2)=Xt(2);

X(i+1,3)=Xt(3);

X(i+1,4)=Xt(4);

t(i+1)=t(i)+h;

i=i+1;

end

for j=1:i

V(j)=X(j,1);

end

Xre=V;

Программа 4.

Синтез робастного регулятора.

function I=Robsist(X)

Kp=X(1);

Ku=X(2);

Kd=X(3);

clc

N=128; %Число функций Уолша

% syms Kp Ku Kd;

m=1000;

T=1.5;

h=T/(N-1);

K0=0.2*(0.8+0.4*rand(m,1));

Ky=100*(0.8+0.4*rand(m,1));

Ce=0.0105*(0.8+0.4*rand(m,1));

Jp=165*(0.8+0.4*rand(m,1));

ta=0.05*(0.8+0.4*rand(m,1));

al=0.2*(0.8+0.4*rand(m,1));

Tm=0.25*(0.8+0.4*rand(m,1));

Int=m_intM(T,N);

I=eye(N);

H=hadamard(N); %построение матрицы Адамара

for i=0:(N-1)

t=i*h;

f(i+1)=y(t);

end

Cy=(1/sqrt(N)*H)*f';%спектр входа

for i=0:(N-1)

t=i*h;

f(i+1)=xe(t); %эталонный выход

end

Cx=(1/sqrt(N)*H)*f';%спектр эталонного выхода

for k=1:m

a4=Ce(k)*Tm(k)*ta(k);

a3=(Ky(k)*Jp(k)*Kd*ta(k)+Ce(k)*Tm(k)+Ce(k)*ta(k));

a2=(Ce(k)*Ky(k)*Jp(k)^2*K0(k)*ta(k)+Ky(k)*Jp(k)*Kd+Ky(k)*Jp(k)*Kp*ta(k)+Ce(k));

a1=(Ce(k)*Ky(k)*Jp(k)^2*K0(k)*al(k)+Ky(k)*Jp(k)*Ku*ta(k)+Ky(k)*Jp(k)*Kp);

a0=Ky(k)*Jp(k)*Ku;

b3=Ky(k)*Jp(k)*Kd*ta(k);

b2=(Ky(k)*Jp(k)*Kp*ta(k)+Ky(k)*Jp(k)*Kd);

b1=(Ky(k)*Jp(k)*Ku*ta(k)+Ky(k)*Jp(k)*Kp);

b0=Ky(k)*Jp(k)*Ku;

E=(a4*I+a3*Int+a2*Int*Int+a1*Int*Int*Int+a0*Int*Int*Int*Int)*Cx-(b3*Int+b2*Int*Int+b1*Int*Int*Int+b0*Int*Int*Int*Int)*Cy;

E1(k)=E'*E;

end

I=sum(E1(k));

X=[0.05189976146807 0.39467280591765 0.00047228019868];

Kp=X(1);

Ku=X(2);

Kd=X(3);

m=100;

K0=0.2*(0.8+0.4*rand(m,1));

Ky=100*(0.8+0.4*rand(m,1));

Ce=0.0105*(0.8+0.4*rand(m,1));

Jp=165*(0.8+0.4*rand(m,1));

ta=0.05*(0.8+0.4*rand(m,1));

al=0.2*(0.8+0.4*rand(m,1));

Tm=0.25*(0.8+0.4*rand(m,1));

for k=1:m

a4=Ce(k)*Tm(k)*ta(k);

a3=(Ky(k)*Jp(k)*Kd*ta(k)+Ce(k)*Tm(k)+Ce(k)*ta(k));

a2=(Ce(k)*Ky(k)*Jp(k)^2*K0(k)*ta(k)+Ky(k)*Jp(k)*Kd+Ky(k)*Jp(k)*Kp*ta(k)+Ce(k));

a1=(Ce(k)*Ky(k)*Jp(k)^2*K0(k)*al(k)+Ky(k)*Jp(k)*Ku*ta(k)+Ky(k)*Jp(k)*Kp);

a0=Ky(k)*Jp(k)*Ku;

b3=Ky(k)*Jp(k)*Kd*ta(k);

b2=(Ky(k)*Jp(k)*Kp*ta(k)+Ky(k)*Jp(k)*Kd);

b1=(Ky(k)*Jp(k)*Ku*ta(k)+Ky(k)*Jp(k)*Kp);

b0=Ky(k)*Jp(k)*Ku;

H(k)=tf([b3 b2 b1 b0],[a4 a3 a2 a1 a0]);

end

h=tf([10],[1 10]);

ltiview(H(1),H(10),H(45),H(78),H(58),h);

Литература.

    Вержбитский Численные методы. – М.: Наука, 1987

    Методы классической и современной теории автоматического управления: Учебник в 5-ти т.; 2-е изд., перераб. и доп. Т.3: Синтез регуляторов систем автоматического управления / Под редакцией К.А. Пупкова и Н.Д. Егупова. – М.: Издательство МГТУ им. Н.Э. Баумана, 2004. – 616с.; ил.