Проектирование системы автоматического управления
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);
H1=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);
Литература.
1. Вержбитский Численные методы. – М.: Наука, 1987
2. Методы классической и современной теории автоматического управления: Учебник в 5-ти т.; 2-е изд., перераб. и доп. Т.3: Синтез регуляторов систем автоматического управления / Под редакцией К.А. Пупкова и Н.Д. Егупова. – М.: Издательство МГТУ им. Н.Э. Баумана, 2004. – 616с.; ил.
Другие рефераты на тему «Производство и технологии»:
Поиск рефератов
Последние рефераты раздела
- Технологическая революция в современном мире и социальные последствия
- Поверочная установка. Проблемы при разработке и эксплуатации
- Пружинные стали
- Процесс создания IDEFO-модели
- Получение биметаллических заготовок центробежным способом
- Получение и исследование биоактивных композиций на основе полиэтилена высокой плотности и крахмала
- Получение титана из руды