Professional Documents
Culture Documents
CONTROL DIGITAL I
Control en Cascada de un
Balancn
Presentan:
1-Felipe de Jess Ordua Prez
2-Josu David Alejandro Miranda Cornejo
3-Enoc Alonso Snchez Campos
4-Hector Robles Garca
Proyecto Final
Profesor: Carlos Armando Ortiz Lpez
Salamanca, Guanajuato
5 de Diciembre del 2014
Seccin 1
Introduccin
1.1. El dispositivo QNET VTOL
El simulador QNET despeje vertical y aterrizaje (VTOL), es un sistema que consiste en un ventilador de
velocidad variable montado en una caja de seguridad en el extremo del brazo, de otro extremo se
encuentra un contrapeso ajustable, permitiendo que la posicin del peso pueda ser variables ocasionando
que afecte la dinmica del sistema. El brazo est montado sobre un eje giratorio, permitiendo poder
simular el despeje vertical y poder adquirir la posicin deseada en esta caso mantenerlo en un estado
estable de forma horizontal.
Debido a su complejidad, los sistemas de vuelos suelen dividirse en diferentes subsistemas para que sean
ms manejables. Estos subsistemas son tratados de manera individual y luego son integrados para
obtener una solucin global.
Seccin 2
()
+
(1)
Donde a partir de la resistencia e inductancia del sistema podramos obtener la funcin de transferencia.
En este caso al no contar con algunos datos requeridos, la planta del sistema se modelo grficamente.
Con la interfaz 01-Modeling 1, se obtuvo a partir de la ecuacin general de primer orden
() =
+ 1
Donde
= 0.329
= 0.12
En la Figura 2. Se muestra la simulacin con los valores para comprobar los datos obtenidos.
2.2. Control PI
Teniendo el modelo del sistema, se procedi a realizar el control PI, la Fig.3 muestra el diagrama de
bloques del controlador PI.
Teniendo el sistema de la planta aplicamos transformada z para encontrar el sistema en tiempo discreto
la planta:
Cdigo en MATLAB.
Gz = c2d(Gp, T,'zoh')
1
+ 1
b1=0.009267;
a1=-0.9718;
As obtenido la ecuacin de la planta en lazo abierto.
A partir de los datos de diseo pedidos, encontramos el valor del factor de amortiguamiento.
Mp=0.001;
Despejando de la ecuacin de sobrepaso mximo
=
2)
(1
=
1 + (
Cdigo en MATLAB.
a=log(Mp);
l=(1)/sqrt(1+(pi/a)^2)
Encontrando:
2%
Cdigo en MATLAB.
cr=4;
wn= (cr)/(ts*l)
5%
Encontrando:
Obteniendo:
= 2 cos( )
1 = 2
Cdigo en MATLAB.
s=-2*exp(-l*wn*T)*(cos(wd*T))
s1=exp(-2*l*wn*T)
= (1 + 1 + 1 + 1 )
1 + 1
1
+ 1 1 (1 )
1
Teniendo los valores y encontrando los nuevos valores del polinomio caracterstico con los valores
de y
2 + (1 + 1 + 1 + 1 ) + (1 1 )
Donde
1 = (1 + 1 + 1 + 1 )
= (1 1 )
Cdigo en MATLAB.
h1=-1+a1+(b1*kp)+(ki*b1)
ho=-a1-(b1*kp)
b2=ki*b1
+ (1 + 1 + 1 + 1 ) + (1 1 )
2 = 1
Cdigo en MATLAB.
z= tf('z');
Gpa=((b2*z)/(z^2+h1*z+ho))
Obteniendo la siguiente funcin de transferencia:
Ahora la funcin del controlador en lazo cerrado y encontrando su respuesta con una entrada escaln
Cdigo en MATLAB.
T1=0:500;
u=ones(size(T1));
y=lsim(Gpa,u,T1);
plot(T1, y);
grid
1.2
0.8
0.6
0.4
0.2
50
100
150
200
250
300
350
400
450
500
Para comprobar los valores obtenidos del controlador PI, en la interfaz 01QNET_VTOL_Current_Control, se ingresan los valores obtenidos de , como se muestra en la
Fig.4.
Seccin 3
Cdigo en MATLAB.
g=9.81;
m1=0.068;
m2=0.27;
m3=0.048;
l1=14.1/100;
l2=3.5/100;
l3=5.3/100;
B=0.002;
Kt = (-m2*g*l2 + m1*g*l1 + m3*g*l3)/(Ieq)
Obteniendo:
Obteniendo:
Cdigo en MATLAB.
Kt1= Kt/J
J1=J/J
B1=B/J
K1=K/J
%----Formando la ecuacin
Ps = tf([Kt], [J B K])
Ps = tf([Kt1], [J1 B1 K1])
Obteniendo:
8.042
2 + 1.1 + 10.26
Se procede a realizar el compensador para obtener nuestra compensador PID, de lazo exterior, como se
muestra en la Figura 7.
Seccin 4
Control de Posicin
Mtodo 1 Funcin de Transferencia
4.1. Diseo del Controlador
Las funciones de transferencia de la planta en serie con el compensador PID en lazo
abierto se describen con la ecuacin siguiente:
() =
( + )
3 + ( + ) 2 + ( + ) +
De igual manera los valores de las constantes de kp, ki, y kv estn dadas por las siguientes
ecuaciones:
+ 20 + 2
=
0 2
=
+ 0 + 2
0.9103
Kt
0.01462
Wn
7.58
Kp
70.98
J
0.01817
Ki
2.86
Po
0.04
Kv
17.08
Funcin de transferencia en lazo cerrado del sistema con el controlador primero en el
dominio de s y luego obtenindola en el dominio z se obtiene los siguientes valores de
los denominares y numeradores.
Ahora se deber simular primeramente la respuesta del controlador PID en serie con la
P(s) sin el limitador de corriente mediante la interfaz de LABIVEW.
Primeramente se debern ingresar los valores obtenidos del controlador anteriormente
en el diagrama de bloques de la interfaz.
Seccin 5
8.042
2 + 1.1 + 10.26
1
8.042
8.042
() = 2
= (1 1 ) [ 2
]
+ 1.1 + 10.26
+ 1.1 + 10.26
Paso 2
Se aplica la transformada bilineal para obtener la funcin de transferencia en funcin de la frecuencia.
Cdigo en MATLAB.
%----Tramsformacin a frecuencia metodo bilineal (Paso 2)
Gw = d2c(Gz,'tustin')
margin(Gw)
grid
Magnitude (dB)
-50
-100
-150
-200
360
Phase (deg)
270
180
90
-1
10
10
10
10
10
10
10
Frequency (rad/sec)
= 33.8
10
10
10
Por otra parte la constante de error para una entrada rampa unitaria () = ()
= lim [(1 1 )
1
1
()]
1 + ()
1
1
= lim [(1
]
=
lim
1
1 (1 1 ) ()
1 + () (1 1 )2
1
=
1 )
(1 1 ) ()
= lim
1
(1 1 ) ()
( 1)( 0.995)
= lim
= lim [
]
1
1
0.004
1 0.00006424 + 0.00006415
( )
( 0.995)
= lim [
]
1
0.004
= [
(1)
0.00012839
0.025678
0.005
]=
= 6.4195
0.004
0.004
10
= 1.5577
6.4195
Paso 4
Para lograr el error en estado estacionario pedido, tenemos que el controlador debe tener una ganancia
de 1.5577 .
= 1.5577
Por lo tanto aplicando la ganancia de 1.5577
Cdigo en MATLAB.
Gw = d2c(Gz,'tustin')
Kc=1.5577 ;
Gw2=Kc*Gw
margin(Gw2)
grid
Magnitude (dB)
-40
-60
-80
-100
-120
-140
-160
360
315
Phase (deg)
270
225
180
135
90
-1
10
10
10
10
10
10
10
10
10
10
Frequency (rad/sec)
= 23.6
1
1+
1 ( )
1 + ( )
=
= .
= (. ) = .
Por lo tanto
=
. .
=
= .
+ . .
A partir del diagrama de Bode con ganancia 1.5577 se encuentra para aproximar el valor en
rad/seg.
Bode Diagram
Gm = 32.9 dB (at 23.7 rad/s) , Pm = 23.6 deg (at 4.66 rad/s)
50
System: Gw 1
Frequency (rad/s): 5.82
Magnitude (dB): -5.81
Magnitude (dB)
-50
-100
-150
360
Phase (deg)
270
180
90
-1
10
10
10
10
10
10
10
10
Frequency (rad/s)
10
1
1
=
= 0.33005
5.82 0.52058 3.02975
1 +
1 +
1 + 0.33005
1 + 0.08944
Cdigo en MATLAB.
%Controlador Angulo
AnCom=15;
Qm=sin((AnCom*pi)/(180))
Alf=(1-Qm)/(1+Qm)
a=sqrt(Alf)
a1=1/sqrt(Alf)
a2=log10(a1)
Vc=-20*a2
%Valor encontrado dependiendo del valor de Vc Frecuencia critica en el diagrama de bode
Vc1=5.42
Tao=1/(Vc1*a)
%Controlador plano w
s=tf('s');
Gwc=(20)*((1+Tao*s)/(1+Alf*Tao*s))
-20
Magnitude (dB)
-40
-60
-80
-100
-120
-140
405
360
Phase (deg)
315
270
225
180
135
90
0
-1
10
10
10
10
10
10
10
10
Frequency (rad/s)
= 49.1
Donde la funcin es
10
Cdigo en MATLAB.
Gcz = c2d(Gtw, 0.004, 'tustin')
Gcz1 = feedback(Gcz,1)
z= tf('z');
Gpa=Gcz1;
T1=0:2500;
u=ones(size(T1));
y=lsim(Gpa,u);
plot(T1, y);
grid
0.9
0.8
0.7
0.6
0.5
0.4
0.3
0.2
0.1
500
1000
1500
2000
2500
Seccin 6
Conclusiones
6.1. Felipe de Jess Ordua Prez
Al desarrollar este proyecto por medio del dispositivo de simulacin QNET se pudo ver algunas aplicaciones de la
teora del control digital, as como conocer y desarrollar ms a fondo las herramientas de MatLab y LabVIEW.
Al desarrollar nuestro proyecto que se dividi en varias partes, como la obtencin de modelo del motor de
acuerdo a las condiciones de corriente, el cual no tuvimos muchas complicaciones ya se estaba familiarizado a su
obtencin, al ya realizar el mtodo varias veces en clase. Durante el desarrollo del control interno PI, se pudo
obtener un amplio conocimiento en MatLab, ya que se desarroll un pequeo cdigo que nos facilit su
obtencin. Para el modelado del sistema de cuerpo libre se tuvieron diferentes problemas que nos atrasaron. Ya
que con tan solo mover la masa del brazo se produca un cambio en la corriente de estabilizacin del sistema. Al
obtener la funcin de transferencia, se tuvieron varios imprevistos, ya que como se muestra en las imgenes del
reporte, con la funcin de transferencia segu la simulacin al sistema, pero despus al siguiente da al llegar y
querer seguir trabajando nos daba un resultado completamente diferente as como varios valores, y de hecho el
sistema ya no se estabilizaba.
La obtencin de compensador por medio de Bode fue algo familiar ya que fue una herramienta que se utiliz en
clase ya solo fue cuestin de adaptar a nuestros proyecto, aunque en esta parte no se obtuvo la respuesta querida
ya que nuestra respuesta al escaln no resulto, se quiso componer con un compensador de adelanto atraso pero
el tiempo ya no fue suficiente. En paralelo trabajbamos en la realizacin de compensador PID por medio de la
ecuacin de tercer grado, donde se obtuvo una respuesta ms apropiada. Al momento de poner a funcionar el
VTOL el sistema se estabilizaba, pero no se pudo obtener la respuesta deseada.
Este proyecto fue un reto en lo particular ya que no se estaba familiarizado con herramientas de simulacin como
LabVIEW, y MatLab. Fue un aprendizaje constante ya que aunque se tena algn conocimiento terico, pero nunca
se haba hecho la aplicacin prctica.
Seccin 7
Anexos
7.1. Cdigo Controlador PID MATLAB
Cdigo en MATLAB.
clc
clear all
p0=0.04;
%wn=3.4;
k=0.01865;
J=0.01817;
kt=0.01462;
B=0.002;
tp=1;
Mp=0.001;
ld=1/(sqrt(1+(pi/log(Mp))^2));
ld
wn=pi/(tp*(sqrt(1-ld^2)));
wn
kp=(-k+2*p0*ld*wn*J+(wn^2)*J)/kt;
ki=p0*(wn^2)*J/(kt);
kv=(-B+p0*J+2*ld*wn*J)/(kt);
kp
ki
kv
T=1/250;
gn=tf([(kt*kp) (ki)],[J (B+kt*kv) (k + kt*kp) (kt*ki)])
gn2 = c2d(gn,T,'matched');
gso=feedback(gn,1)
gcz = c2d(gso,T,'matched');
gcz
[num, den]=tfdata(gcz,'v');
%rlocus(gn)
k=1:1:900;
y=dstep(num,den,k);
u=ones(1,400);
y1=y';
y2= lsim (gcz,k);
y4=y2';
plot(k*T,y1,'ro');
grid
Mp =
-l*Pi
____________
_______
/(1-l^2)
exp
l=(1)/sqrt(1+(pi/a)^2)
%----Asignado un tiempo de asentamiento (ts) de...
ts=0.98;
%---- Apartir del tiempo de asentamiento
%
4
% ts = -------%
l*wn
Crtiterio 2%
3
ts = -------l*wn
Criterio 5%
wd=wn*(sqrt(1-l^2))
%----Por lo tanto de la ecuacin de segundo grado se
%
%
%
%
Ki*b1*z
---------------------------------------------(-l*wn*T)
(-2*l*wn*T)
z^2 - 2*exp
cos(wd*T)z + exp
%----Donde
%
%
s= - 2*exp
(-l*wn*T)
cos(wd*T)
(-2*l*wn*T)
s1= exp
s=-2*exp(-l*wn*T)*(cos(wd*T))
s1=exp(-2*l*wn*T)
%----Agrupando la ecuacin del sistema, pero considerando Ki*b1*z = z
Gz = tf([0 1 0], [1 s s1])
%Nota: Solo se agrupo para tener la forma de la ecuacin.
%----Teniendo los valores del polinomio caracteristico de la ecuacin
%anterior, se comparan con lo de las ecuacin
%
%---- Donde
% h1 = -1 + a1 + ki*b1 + kp*b1,
ho = -a1 - kp*b1,
b2 = ki*b1
h1=-1+a1+(b1*kp)+(ki*b1)
ho=-a1-(b1*kp)
b2=ki*b1
%---- Donde se encuentre al funcin del controlador PI en lazo cerrado de la
forma
%
%
%
ki*b1*z
-------------------------------------------------- .....(4)
z^2 + (-1 + a1 + ki*b1 + kp*b1)z + (-a1 - kp*b1)
z= tf('z');
Gpa=((b2*z)/(z^2+h1*z+ho))
%---- Teniendo la funcin del controlador en lazo cerrado y encontrando su
%respuesta con una entrada escaln
%---Escalon
T1=0:500;
u=ones(size(T1));
y=lsim(Gpa,u,T1);
plot(T1, y);
grid
Vc1=5.82;
Tao=1/(Vc1*a)
%----Controlador plano w (1)
s=tf('s');
Gwc=(Kc)*((1+Tao*s)/(1+Alf*Tao*s))
%Gwaa=(Kc)*((1+Tao*s)/(1+Alf*Tao*s)*(1+Tao1*s)/(1+Alf1*Tao1*s))
Gcz1 = c2d(Gwc, 0.004, 'tustin')
Gcs1 = d2c(Gcz1, 'matched')
%----Contralador plano w (2)
%s=tf('s');
%Gwc=(Kc)*((1+Tao*s)/(1+B*Tao)))
%----Encontrando la funcin de transferancia del controlador con la planta en
%el palno w se tiene
Gtw=series(Gwc,Gw)
%margin(Gtw)
%grid
%----Controlador w a z
Gcz = c2d(Gtw, 0.004, 'tustin')
Gcz1 = feedback(Gcz,1)
%Gcz2 = d2c(Gcz1,'tustin')
%margin(Gcz1)
%grid
z= tf('z');
Gpa=Gcz1;
%---- Teniendo la funcin del controlador en lazo cerrado y encontrando su
%respuesta con una entrada escaln
%---Escalon
T1=0:2500;
u=ones(size(T1));
y=lsim(Gpa,u);
plot(T1, y);
grid
Seccin 8
Bibliografa
8.1. QNET_Control Guide_Vtol
8.2. Sistemas de control en tiempo discreto - Katsuhiko Ogata