Documente Academic
Documente Profesional
Documente Cultură
i=0
i
1 (: i 1)
i
< 1.
Substituyendo el el error
o (: + 1) = 1(: + 1) C [r(:) + 1n
eq
(:)] +
p
i=0
i
1 (: i 1) = 0
Despejando al control
n
eq
(:) = (C1)
y
_
1(: + 1) Cr(:) +
p
i=0
i
1 (: i 1)
_
+ 1
f
Donde
(C1)
y
=
_
(C1)
T
(C1)
_
1
(C1)
T
1
u
(:) = (C1)
y
1 (:)
1
f
(:) = j1
u
(:) = j (C1)
y
1 (:)
El control empleado es de la forma
n = /:iq:( (c)) = /:iq:
_
_
_
_
_
_
_
_
_
_
_
_
2
y el control aplicado es el siguiente
n
(:) =
_
n
eq
(:) si jn
eq
(:)j < n
o
uoueq(n)
jueq(n)j
si jn
eq
(:)j n
o
_
en nuestro caso tenemos los siguientes parmetros:
_
a / c d ) j j
0,72 0,9 0,5 0,2 0,3 1 0,3 1
_
consideremos una entrada de referencia como
r(:) = 0,5
_
sin(2:) + 0,3 sin
_
3
2
_
+ 0,8 sin
_
:
2
_
_
enonces el programa en matlab es: cuando el numero de entradas es igual al numero de salidas.
clc;clear all;close all
a=0.72;b=0.9;c=0.3;d=0.3;f=0;gamma=-0.13;eta=0.3;p=1;uo=5;
A=[0 1;-b -a];B=[0;c];C=[d 1];G=[0;1];u=[uo 0];x=[0 0;2 2];
n=1;=1;p=0.01;t=/p;
r(n)=0.5*(sin(2*pi*n)+0.3*sin(3*pi*n/2)+0.8*sin(pi*n/2));
for j=1:t
n=j+1;
r(n)=0.5*(sin(2*pi*n)+0.3*sin(3*pi*n/2)+0.8*sin(pi*n/2));
y(j)=C*x(:,j); e(j)=r(j)-y(j); Df(j)=eta*pinv(C*B)*e(j);
ueq(j)=pinv(C*B)*(-C*A*x(:,j)+r(j+1)+gamma*e(j))+Df(j);
if norm(ueq(j))<uo
u(j)=ueq(j);
else
u(j)=-uo*ueq(j)/norm(ueq(j));
end
x(:,j+1)=A*x(:,j)+B*u(j)+G*f;
erms(j)=norm(e)/sqrt(j);
end
gure(1);plot(Df);
gure(2);hold on;plot(u,b);plot(ueq,g);hold o;
gure(3);hold on;plot(e,b);plot(erms,g);hold o;
gure(5);hold on;plot(y,b);plot(r,g);hold o;
3
Y Vs R e Vs erms
u Vs ueq
Df
Cuando el numero de entradas es diferente al numero de salidas:
j (:) = aj (:) /j (: 1) + cn(:) + )
_
r
1
(: + 1)
r
2
(: + 1)
_
=
_
0 1
/ a
_ _
r
1
(:)
r
2
(:)
_
+
_
0
c
_
n(:) +
_
0
1
_
)
_ r(:) = r(:) + 1n(:) + G)
j (:) =
_
1 0
0 1
_
r(:) = Cr(:)
clc;clear all;close all
a=0.72;b=0.9;c=0.3;d=0.3;f=0.3;
4
gamma=-0.13;eta=0.3;p=1;uo=6;
A=[0 1;-b -a];B=[0;c];C=[1 0;0 1];G=[0;1];u=[uo 0];
x=[0 0;2 2];n=1;=1;p=0.01;t=/p;
r(n)=0.5*(sin(2*pi*n)+0.3*sin(3*pi*n/2)+0.8*sin(pi*n/2));
for j=1:t
n=j+1;
r(n)=0.5*(sin(2*pi*n)+0.3*sin(3*pi*n/2)+0.8*sin(pi*n/2));
y(:,j)=C*x(:,j); e(:,j)=[r(j)-y(1,j);r(j)-y(2,j)]; Df(j)=eta*pinv(C*B)*e(:,j);
ueq(j)=pinv(C*B)*(-C*A*x(:,j)+r(j+1)+gamma*e(:,j))+Df(j);
if norm(ueq(j))<uo
u(j)=ueq(j);
else
u(j)=-uo*ueq(j)/norm(ueq(j));
end
x(:,j+1)=A*x(:,j)+B*u(j)+G*f;
erms(1,j)=norm(e(1,:))/sqrt(j);
erms(2,j)=norm(e(2,:))/sqrt(j);
end
n=1:t;
gure(1);plot(Df);
gure(2);hold on;plot(u,b);plot(ueq,g);hold o;
gure(3);hold on;plot(n,e(1,:),b,n,e(2,:),b);plot(n,erms(1,:),g,n,erms(2,:),g);hold o;
gure(5);hold on;plot(y,b);plot(r,g);hold o;
5
y Vs r
e Vs erms
u Vs ueq
Df
En este caso se puede observar que de las dos salidas ambos errores tienden a cero,
3. Con clusiones
El seguimiento de las trayectorias en ambos experimentos se logr con xito sin embargo el mtodo
ocaciona que tenga demaciados sobrepasos hacia arriba y hacia abajo de la referencia en un corto tiempo
antes de llegar a seguir la referencia, esto es debido a que la la manera de llegar a la supercie propuesta es de
manera proporcinal a la dinmica del sistema y como este se muebe respecto a la dinmica de referencia, los
controles equivalentes utilizados no son tan aproximados a estos cambios, como comentario debera de poderse
utilizar una constante proporcional derivativa respecto a la dinmica de la supercie de deslizamiento para
lograr un amortiguamiento. Por lo que se concluye que este mtodo esta limitado a sistemas con dinmicas
6
ms lentas que la dinmica de la referencia y control.
7