LABORATORIO N4
CONTROL DE MOTOR DC
CONTROLES DIGITALES
CURSO
PROFESOR
SECCIN
: B
INTEGRANTES
20070029B
20070053K
20070020E
2011 - I
INDICE
Objetivos
I) Equipos
utilizados
III) Diseo de Controladores mediante LGR
14
Integral (PI)
Controlador PID Discreto
16
20
LabView
IV) Control Deadbeat - con Simulink
22
24
Cdigo en Matlab
25
Programa en LabView
28
VI) Conclusiones
35
VII) Observaciones
34
VIII) Bibliografa
35
Pgina 2
OBJETIVOS
Disear e implementar controladores para el control de velocidad de motores DC.
Pgina 3
I) EQUIPOS
Una computadora PC Core 2 Duo
Software de simulacin LabVIEW v2009 , PICC, Matlab vR2010a.
Una tarjeta de adquisicin de datos (DAC) NI USB-6008, PCI 6024E.
Fuente de alimentacin variable.
Motor, Puente H, Convertidor de frecuencia Voltaje, PIC16f877A.
II) DESCRIPCION DE LOS COMPONENTES UTILIZADOS
Convertidor Frecuencia Voltaje
Para el convertidor frecuencia Voltaje de busc la relacin lineal entre frecuencia y voltaje:
Valimentacin-motor (V) Frecuencia Encoder (Hz) Voltaje Obtenido (mv) Voltios
Fmin
fmax
1.5
186
268
500
0.50
2
320
365
900
0.90
3
595
628
1780
1.78
4
880
902
2640
2.64
5
1131
1152
3340
3.34
6
1407
1429
4320
4.32
7
1673
1685
5060
5.06
8
1969
1987
5950
5.95
9
2252
2273
6700
6.70
10
2525
2551
7450
7.45
11
2778
2809
8680
8.68
12
3106
3125
9290
9.29
13
3401
3424
10300
10.30
14
3670
3704
11000
11.00
15
3958
4000
12200
12.20
16
4237
4273
6320
6.32
17
4505
4555
6690
6.69
18
4808
4838
7180
7.18
19
5051
5114
7550
7.55
20
5384
5435
8240
8.24
fmedia
227.0
342.5
611.5
891.0
1141.5
1418.0
1679.0
1978.0
2262.5
2538.0
2793.5
3115.5
3412.5
3687.0
3979.0
4255.0
4530.0
4823.0
5082.5
5409.5
Pgina 4
14.00
12.00
10.00
8.00
Series1
Lineal (Series1)
6.00
y = 0.0031x - 0.1252
R = 0.999
4.00
2.00
0.00
0.0
1000.0
2000.0
3000.0
4000.0
5000.0
En el PIC 16F877A se elabor el PWM el cual vara su duty cicle con el ingreso de una seal anloga en
el rago de 0 a 5V , se elabor un programa con el PICC el cual genera un PWM de frecuencia de 10Khz.
Pgina 5
Pgina 6
Como se puede apreciar se obtiene una buena aproximacin (95%) la cual es incluso un
poco mayor a la del ARX211. Se decide trabajar con el modelo ARX111, pues su F.T.
aproximada es ms sencilla, y se podrn realizar los clculos con mayor facilidad.
Ahora cargaremos la data obtenida del modelo real para obtener la funcin de
transferencia de la planta,
Pgina 7
.
+ .
[numpz,denpz]=tfdata(Gpz,'v');
.
.
Pgina 8
Pgina 9
n1=norm(d1);
n2=norm(d2);
n3=norm(d3);
Kg=numc(2);
% Ganacia Esttica
K=(1*n1*n2)/(n3*Kg)
Gc=tf(K*[1 a],[1 0]); % Controlador PI continuo
S=series(Gc,Gp);
F=S/(1+S);
a= 172.8797
K= 7.8736
.+
Pgina 10
. .
. .
. .
Si el diseo del controlador discreto PI sera con un tiempo de muestro (T) igual a 0.001s,
se tendra mejores respuestas.
Pgina 11
Si el diseo del controlador discreto PI sera con un tiempo de muestro (T) igual a
0.0002s, los controladores discretos seran prcticamente iguales al controlador
continuo.
Pgina 12
Tomando en cuenta la ultima figura podemos decir que preferible trabajar con el
tiempo de muestreo (T) igual Td/20 Td/10, para obtener mejores aproximaciones del
controlador continuo.
Como podemos apreciar que el LGR del sistema discreto en lazo cerrado pasa casi por los
polos deseados, mas no pasa por ellos debido a que la aproximaciones no llegan a tener la
exactitud del sistema continuo en lazo cerrado.
Pgina 13
Este diseo del controlador PI discreto nos permitir compararlo con el obtenido
mediante rediseo del controlador PI continuo.
%% DISEO DEL CONTROLADOR PI DISCRETO
% Polos Discretos de la Planta
[P Z]=pzmap(Gpz);
% Polo Discreto Deseado
pdz=z(1);
% Calculando la magnitud correspondiente a los polos
d1=pdz-1;
d2=pdz-P(1);
% Calculando los ngulos de fase
theta1=atan(imag(d1)/real(d1))*180/pi+180;
theta2=atan(imag(d2)/real(d2))*180/pi+180;
% Ahora hallamos el ngulo de fase correspondiente al cero
thetaz=180+theta1+theta2;
% Clculo del valor del cero
a=real(pdz)-imag(pdz)/(tan(thetaz*pi/180))
d3=pdz-a;
% Magnitud correspondiente al cero
% Clculo de la ganancia K
n1=norm(d1);
n2=norm(d2);
n3=norm(d3);
Pgina 14
Kg=numpz(2);
% Ganacia Esttica
Kc=(1*n1*n2)/(n3*Kg)
a = 0.6746
K c= 10.1864
() =
. (.)
Apreciamos que el LGR del sistema discreto en lazo cerrado pasa por los deseados. Con esto
podemos notar que el clculo del controlador PI discreto es mejor utilizando las reglas del
LGR en tiempo discreto, que al realizarlo mediante rediseo de un controlador PID continuo.
Pgina 15
yd1=step(sys1,t);
figure
% stairs(t,yd1)
plot(t,yd1,'b+'), grid
title('Respuesta al step control PI')
xlabel('Tiempo (seg)')
+
]
+
Siendo el factor de sintona para el filtro cuyo valor esta en el rango [0,1]
Se realizar el diseo del controlado PID discreto, para esto tomaremos un cero en 0.6,
el cual sirve para tirar el LGR a la izquierda, luego calcularemos las constantes Kc y
a del controlador:
( . ) ( )
() =
( )
%% DISEO DEL CONTROLADOR PID DISCRETO
% Polos Discretos de la Planta
[P Z]=pzmap(Gpz);
% Polo Discrteo Deseado
pdz=z(1);
c1=0.6;
% Considerando un cero en 0.6
% Calculando la magnitud correspondiente a los polos
Pgina 16
d1=pdz-1;
d2=pdz-P(1);
d3=pdz-0;
d4=pdz-c1;
% Calculando los ngulos de fase
theta1=atan(imag(d1)/real(d1))*180/pi+180;
theta2=atan(imag(d2)/real(d2))*180/pi+180;
theta3=atan(imag(d3)/real(d3))*180/pi;
alpha1=atan(imag(d4)/real(d4))*180/pi;
% Ahora hallamos el ngulo de fase correspondiente al cero
alpha2=180+theta1+theta2+theta3-alpha1;
% Clculo del valor del cero
a=real(pdz)-imag(pdz)/(tan(alpha2*pi/180))
d5=pdz-a;
% Magnitud correspondiente al cero
% Clculo de la ganancia K
n1=norm(d1);
n2=norm(d2);
n4=norm(d3);
n3=norm(d4);
n5=norm(d5);
Kg=numpz(2);
% Ganacia Esttica
Kc=(1*n1*n2*n3)/(n4*n5*Kg)
a = 0.3342
Kc = 2.2724
() =
.(.)(.)
()
Pgina 17
Apreciamos que el LGR del sistema discreto en lazo cerrado pasa a por los polos deseados
%% Respuesta al step de control PID
t=0:T:1;
sys1=feedback(L,1,-1)
yd1=step(sys1,t);
figure
plot(t,yd2,'b+'), grid
title('Respuesta al step control PID')
xlabel('Tiempo (seg)')
Pgina 18
+ + . . + .
() =
=
( )
( )
Kp =1.5141
Ti =0.0069
Td = 8.3448e-004
Por ltimo guardaremos los coeficientes de la funcin de transferencia aproximada del
sistema en lazo abierto para utilizarlas en LabView.
%% Guardando datos de la Funciones de Transferencia (Continuo
Discreto)
Pgina 19
Pgina 20
Pgina 21
0.05
0.1
0.15
0.2
0.25
0.15
0.2
0.25
Time
u1
0.05
0.1
Time
La planta es:
() =
0.06228
0.945
1.5
0.5
G-id(s)
G-id(z)
0
0.01
0.02
0.03
0.04
0.05
0.06
0.07
0.08
0.09
0.1
Pgina 22
0.945
1
En Simulink:
-K-
z-0.945
0.06228
z-1
Step
Gain
Scope1
Planta ZOH
z-0.945
Scope
Discrete
Transfer Fcn
Discrete
Transfer Fcn1
1
0.9
0.8
0.7
0.6
0.5
0.4
0.3
0.2
0.1
0
10
15
20
25
30
Pgina 23
V) CONTROL DEADBEAT
Con la data adquirida se procedi a identificarla con el ident de matlab para tener un valor de
porcentaje % de estimacin correcta, para 2 datas obtenidas se obtuvieron un prediccin de 95%
y 98% .
Luego nos decidimos a utilizar ARX211 o ARX221, para los clculos en el programa de matlab
y posterior programacin en LabView.
Pgina 24
CDIGO EN MATLAB
clear all; clc; close all;
load motor.lvm;
t=motor(:,1); % Tiempo
u1=motor(:,2); % Entrada
y1=motor(:,4); % Salida
figure
plot(t,y1)
%% Identificain para obtener la funcin de transferencia de la Planta
DATAX=[y1 u1];
datan=iddata(y1,u1,0.001);
th=arx(datan,[2 1 1]);
present(th);
% Pasando al Modelo Continuo
thc=thd2thc(th);
[numc,denc]=th2tf(thc);
printsys(numc,denc,'s');
Gpc=tf(numc,denc);
% Funcin de Transf en forma de polos y ceros
Gpc=zpk(Gpc)
%% Funcin de transferencia de la planta en tiempo discreto
%Tiempo de muestreo
Ts=0.0001;
Gpd=c2d(Gpc,Ts,'zoh')
% Almacena coef. del num y den de la planta discreta
[B A]=tfdata(Gpd,'v')
% Obtiene los polos y ceros de la planta discreta
[pd zd]=pzmap(Gpd)
% Respuesta ante una entrada escaln unitario
step(Gpd)
% Funcin de transferencia de planta en lazo cerrado
Tz=tf(1,[1 0],Ts)
% Funcin de transferencia del controlador
Cz=Tz/(Gpd*(1-Tz))
Cz=minreal(Cz) % Simplifica
F=Cz*Gpd/(1+Cz*Gpd)
F=minreal(F) % Comprobamos
% Obtiene los ceros inestables de la planta
polos=pole(Cz)
% Funcin de transf del cero anterior
C1z=tf(1,[1 -polos(1)],Ts)
%% Diseo final del Controlador en tiempo discreto
syms z
% Polinomio de diseo que llevar al establecimiento en tiempo finito del
% proceso
Fz=(z^2+z+1)/(3*z^2);
Az=poly2sym(A,z)
Az=vpa(Az,4)
Bz=poly2sym(B,z)
Bz=vpa(Bz,4)
k=1+length(B)
polzero=vpa(z-zd,4)
Bn1=subs(polzero,1) % B-(1)
BnN=polzero/Bn1% B- normalizado
Pgina 25
Resultados en Matlab
La salida de la planta con el controlador, se obtiene la siguiente respuesta, donde se aprecia que se
estabiliza en un tiempo de 0.006 sg y no tiene mucho sobreimpulso.
Pgina 26
La seal de control resultante muestra que cumple su funcin de controlar ya que pasado un
tiempo la seal de control es 0.
Pgina 27
PROGRAMA EN LABVIEW
Como se aprecia en la figura la salida del sistema sigue la seal de control al utilizar un
controlador Deadbeat
Panel Frontal
Diagrama de Bloques
Pgina 28
Se utiliz un SubVi al cual le ingresa la data adquirida del motor para luego identificarlo con un
ARX221, la salida del SubVi es la funcin de transferencia en tiempo discreto de la planta o el
motor.
En el panel frontal se observa los datos adquiridos, la respuesta ante una entrada escaln unitario,
la autocorrelacin, y la correlacin cruzada del error y la funcin de transferencia en tiempo
discreto que es la requerida.
Pgina 29
Pgina 30
Pgina 31
Controlador DeadBeat
El controlador es un SubVi y necesita de entrada la funcin de transferencia de la planta ya que
se necesitar saber y reconocer los polos y ceros de la planta, la salida del SubVi es la funcin de
transferencia discreta del controlador.
En el panel frontal observaremos los principales parmetros que son calculados al hallar el
controlador, as en la figura que presentamos a continuacin mostramos la funcin de
transferencia del controlador y adems la funcin de transferencia en lazo cerrado de la planta +
controlador.
Pgina 32
Pgina 33
Pgina 34
VI)
CONCLUSIONES
1. El clculo del controlador DeadBeat es en tiempo discreto por lo que se evita propiedades
indeseables en el dominio del tiempo tales como oscilaciones y valores altos de la seal
de control, ste clculo fue realizado en 2 programas en el Matlab y Labview y se
comprob similares resultados logrndose que la seal de control sea rpidamente cero y
el error de estabilizacin cero como se aprecian en las grficas.
2. En el clculo del controlador DeadBeat se destaca que es necesario el uso de un
polinomio de diseo F(z) que permite llevar o lograr el establecimiento en tiempo finito
al proceso que sera el control de velocidad de un motor.
3. Se destaca que el polinomio de diseo asumido no afecta el error constante de cero.
4. Para el rediseo del controlador continuo es mejor trabajar con un tiempo de muestreo
igual a Td/10, pues los controladores discretos se aproximarn al control continuo
adems que tendrn una respuesta conforme a las referencias tomadas para el diseo
VII) OBSERVACIONES
1. Para el diseo del controlador PID, se debe considerar un cero para poder aplicar las
reglas del LGR, para ello es preferible obtener un primero el controlador PI, pues es
recomendable que el cero que vamos a considerar sea aproximado al cero del control PI.
VIII) BIBLIOGRAFA
1. Ricardo Rodriguez B. Diseo del controlador Deadbeat.
2. Papers del curso de control digital.
Pgina 35