Вы находитесь на странице: 1из 6

Ejemplo: Control Digital de Velocidad

del Motor de CC con Control PID


Conversin de Continuo a Discreto
Controlador PID
En esta pgina, consideremos la versin digital del problema de control de velocidad de un motor de
CC . Puede obtenerse un modelo digital del motor de CC a partir de la conversin del modelo
analgico , como describiremos. El controlador para este ejemplo se disear por un m!todo PID.
De la pgina Modelacin: un Motor de CC, la "uncin de trans"erencia a la#o abierto para la velocidad
del motor se deriv como:
Donde:
$resistencia el!ctrica %&' ( ) o*m
$inductancia el!ctrica %+' ( ,.- .
$constante de "uer#a electromotri# %/e(/t' ( ,.,) 0m12mp
$momento de inercia del rotor %3' ( ,.,) 4g$m561s56
$coe"iciente de amortiguamiento del sistema mecnico %b' ( ,.) 0ms
$entrada %V': 7uente de 8ensin
$salida %t*eta punto': Velocidad de rotacin
$9e asume :ue el rotor ; el eje son r<gidos
+os re:uerimientos de diseo para entrada escaln de ) rad1seg. son
8iempo de establecimiento: Menor :ue 6 segundos
9obrepico: Menor :ue el -=
Error de estado estacionario: Menor :ue el )=
Conversin de Continuo a Discreto
El primer paso en el diseo de un sistema de control discreto es convertir la "uncin de trans"erencia
continua a una "uncin de trans"erencia discreta. El comando Matlab c6dm lo *ar para ud.. c6dm
re:uiere los siguiente cuatro argumentos: el polinomio numerador %num', el polinomio denominador
%den', el tiempo de muestreo %8s' ; el tipo de mantenedor. En este ejemplo, usaremos el mantenedor de
orden cero %>#o*>'.
Del re:uerimiento de diseo, *agamos el tiempo de muestreo, Ts igual a ,.)6 segundos, lo cual es )1),
de la constante de tiempo de un sistema con un tiempo de establecimiento de 6 segundos. Creemos un
nuevo arc*ivo?m e ingrese los siguientes comandos:
R=1;
L=0.5;
Kt=0.01;
J=0.01;
b=0.1;
num = Kt;
den = [(J*L) (J*R)+(L*b) (R*b)+(Kt^2)];
Ts = 0.12;
[numz,denz] = c2dm(num,den,Ts,z!")
+uego de ejecutado este arc*ivo?m debe devolver lo siguiente:
numz =
0 0.0092 0.0057
denz =
1.0000 -1.0877 0.2369
De estas matrices, la "uncin de trans"erencia discreta puede escribirse como:
Primero, nos gustar<a vea cmo se ve la respuesta del sistema a la#o cerrado sin ning@n control. 9i
aprecia la matri# numz arriba, !sta tiene un cero adicional al principio, tenemos :ue librarnos de !l
antes de cerrar el la#o con el comando Matlab c#!!$. 2gregue el siguiente cdigo al "inal de su
arc*ivo?m:
numz = [numz(2) numz(%)];
[numz&c#,denz&c#] = c#!!$(numz,denz);
+uego de *acerlo, observemos cmo se ve la respuesta a la#o cerrado al escaln . El comando dstep
generar el vector de seales de salida discreto ; el comando stairs las conectar . Pinc*e a:u< para ms
in"ormacin. 2gregue el siguiente cdigo de Matlab al "inal del arc*ivo?m anterior ; ejec@telo
nuevamente.
['1] = dste$(numz&c#,denz&c#,101);
t=0(0.12(12;
st)*+s(t,'1)
'#)be#(T*em$! (se,und!s))
-#)be#(.e#!c*d)d (+)d/s))
t*t#e(Res$uest) t*$! esc)#e+) (0+*,*n)#)
Deber<a verse la "igura siguiente:
Controlador PID
&ecordemos :ue la "uncin de trans"erencia de tiempo continuo para un controlador PID es:
EAisten varias maneras para el mapeo del plano s al plano # . +a ms precisa es . 0o podemos
obtener la "uncin de trans"erencia del "iltro PID de este modo por:ue la "uncin de trans"erencia de
tiempo discreto tendr<a ms ceros :ue polos, lo cual no es reali#able. En su lugar usaremos la
trans"ormacin bilineal , de"inida como sigue:
Por lo :ue podemos derivar el controlador PID discreto con el mapeo por la trans"ormacin bilineal.
Para una derivacin ms detallada de un controlador PID discreto , vea Controlador PID Discreto .
E:uivalentemente, el comando c6dm del Matlab le a;udar para convertir el compensador PID de
tiempo continuo al compensador PID de tiempo discreto usando el m!todo BtustinB en este caso. El
m!todo BtustinB usar la aproAimacin bilineal para la conversin a tiempo discreto de la derivada. De
acuerdo con la pgina M!todo de Diseo del PID para el Motor de CC , Kp ( ),,, Ki ( 6,, ; Kd ( ),
satis"acen el re:uerimiento de diseo. 9e usar todas las ganancias en este ejemplo. 2*ora agregue los
siguientes comandos Matlab a su arc*ivo?m anterior ; ejec@telo nuevamente en la ventana del Matlab.
1 2!nt+!#)d!+ 345 5*sc+et! c!n )$+!'*m)c*6n b*#*ne)#
K$ = 100;
K* = 200;
Kd = 10;
[dencz,numcz]=c2dm([1 0],[Kd K$ K*],Ts,tust*n);
0ote :ue el numerador ; el denominador en el comando c6dm se invirtieron arriba. +a ra#n es por:ue
"uncin de trans"erencia PID no es propia. Matlab no permite esto. Intercambiando el numerador ; el
denominador el comando c6dm puede ser engaado para devolver la respuesta correcta. Veamos si la
per"ormance de la respuesta a la#o cerrado con el compensador PID satis"ace los re:uerimientos de
diseo. 2gregue a*ora el cdigo siguiente al "inal de su arc*ivo?m ; ejec@telo nuevamente. Deber<a
obtenerse la siguiente respuesta tipo escalera a la#o cerrado.
num)z = c!n7(numz,numcz);
den)z = c!n7(denz,dencz);
[num)z&c#,den)z&c#] = c#!!$(num)z,den)z);
['2] = dste$(num)z&c#,den)z&c#,101);
t=0(0.12(12;
st)*+s(t,'2)
'#)be#(T*em$! (se,und!s))
-#)be#(.e#!c*d)d (+)d/s))
t*t#e(Res$uest) t*$! esc)#e+)( c!n c!nt+!#)d!+ 345 )
como puede ver de la "igura de arriba, la respuesta del sistema a la#o cerrado es inestable. Por lo tanto
debe *aber algo mal en el sistema compensado. 2s< :ue ec*emos un vista#o al root locus del sistema
compensado. 2greguemos los siguientes comandos Matlab al "inal de su arc*ivo?m ; ejec@telo
nuevamente.
+#!cus(num)z,den)z)
t*t#e(Lu,)+ de R)8ces de# 9*stem) 2!m$ens)d!)
De este gr"ico del lugar de ra<ces, vemos :ue el denominador del controlador PID tiene un polo en ?)
en el plano # . 9abemos :ue si un polo de un sistema est "uera del c<rculo unitario, el sistema ser
inestable. Este sistema compensado siempre ser instable para cual:uier ganancia positiva por:ue
*abr un n@mero par de polos ; ceros a la derec*a del polo en ?). Por lo tanto ese polo siempre se
mover a la i#:uierda ; a"uera del c<rculo unitario. El polo en ?) viene del compensador, ; podemos
cambiar su ubicacin cambiando el diseo del compensador. +o elegimos para cancelar el cero en
?,.C6. Esto *ar el sistema estable para al menos algunas ganancias. 2dems podemos elegir una
ganancia apropiada del diagrama del lugar de ra<ces para satis"acer los re:uerimientos de diseo usando
rloc"ind.Ingrese el siguiente cdigo de Matlab a su arc*ivo?m.
dencz = c!n7([1 :1],[1.; 1])
num)z = c!n7(numz,numcz);
den)z = c!n7(denz,dencz);
+#!cus(num)z,den)z)
t*t#e(Lu,)+ de R)8ces de# 9*stem) 2!m$ens)d!);
[K,$!#!s] = +#!c<*nd(num)z,den)z)
[num)z&c#,den)z&c#] = c#!!$(K*num)z,den)z);
['%] = dste$(num)z&c#,den)z&c#,101);
t=0(0.12(12;
st)*+s(t,'%)
'#)be#(T*em$! (se,und!s))
-#)be#(.e#!c*d)d (+)d/s))
t*t#e(Res$uest) t*$! esc)#e+)(c!n c!nt+!#)d!+ 345 )
El nuevo denc# tendr un polo en ?,.C6- en lugar de ?), :ue casi cancela al cero del sistema no
compensado. En la ventana del Matlab, deber<a ver el comando :ue le solicita elegir el punto en el
gr"ico de lugar de ra<ces. Debe pinc*ar en el gr"ico como sigue:
Entonces Matlab devolver la ganancia apropiada ; los polos compensados correspondientes, ; se
plotear la respuesta a la#o cerrado compensada como sigue.
+a "igura muestra :ue el tiempo de establecimiento es menor :ue 6 segundos ; el sobrepico porcentual
es alrededor del D=. 2dems, el error de estado estacionario es cero. E tambi!n, la ganancia, /, del
lugar de ra<ces es ,.6F6- lo cual es ra#onable. Por lo tanto esta respuesta satis"ace todos los
re:uerimientos de diseo.