Sunteți pe pagina 1din 12

21/5/2014 CTM Ejemplo: Lugar de Races control del modelo del pndulo invertido

http://www.ib.cnea.gov.ar/~instyctl/Tutorial_Matlab_esp/invRL.html 1/12
Ejemplo: Solucin al problema del pndulo invertido
mediante el mtodo del Lugar de Races
Funciones de Transferencia
Diseo por Lugar de Races
Controlador en adelanto-atraso
Qu sucede con la posicin del carro?
La funcin de transferencia de la planta para este problema se da abajo:
donde,
El criterio de diseo (con el pndulo recibiendo del carrito una fuerza impulsiva de 1N) es:
Tiempo de establecimiento menor que 5 segundos.
El pndulo no debe moverse en ms de 0.05 radianes fuera de la vertical.
Para ver cmo se prepar originalmente este problema, consulte en modelado del pndulo invertido .
Funciones de Transferencia
El comando rlocus en Matlab puede encontrar el lugar de races para un sistema descripto por ecuaciones de
21/5/2014 CTM Ejemplo: Lugar de Races control del modelo del pndulo invertido
http://www.ib.cnea.gov.ar/~instyctl/Tutorial_Matlab_esp/invRL.html 2/12
espacio de estado o por una funcin de transferencia. para este problema a la larga ser ms fcil usar una
funcin de transferencia (las razones para esto despus quedarn claras). La funcin de transferencia
encontradas a partir de las transformadas de Laplace para la salida Phi (el ngulo del pndulo) pueden ponerse
en Matlab ingresando el numerador y el denominador como vectores. Cree un archivo-m y copie el siguiente
texto para modelar la funcin de transferencia:
M = .5;
m = 0.2;
b = 0.1;
i = 0.006;
g = 9.8;
l = 0.3;
q = (M+m)*(i+m*l^2)-(m*l)^2; %simplifica entrada
num = [m*l/q 0]
den = [1 b*(i+m*l^2)/q -(M+m)*m*g*l/q -b*m*g*l/q]
La salida sera:
num =
4.5455 0
den =
1.0000 0.1818 -31.1818 -4.4545
3. Diagrama en Bloque
El control de este problema es un poco diferente que los problemas tpicos de control que haya usado. Como
estamos tratando de controlar la posicin del pndulo, el cual debe volver a la vertical luego de una perturbacin
inicial, la seal de referencia que estamos persiguiendo debera ser cero. La fuerza aplicada al carro puede
agregarse como una perturbacin impulsiva. El esquema para este problema debera verse como el siguiente.
Le ser ms fcil determinar la funcin de transferencia apropiada para pasarla al Matlab si reordenamos
primero el esquema como sigue:
21/5/2014 CTM Ejemplo: Lugar de Races control del modelo del pndulo invertido
http://www.ib.cnea.gov.ar/~instyctl/Tutorial_Matlab_esp/invRL.html 3/12
Ahora, podemos hallar la funcin de transferencia a lazo cerrado .
Diseo por Lugar de Races
Esta funcin de transferencia a lazo cerrado puede modelarse en Matlab. lo primero que vamos a hacer es ver el
lugar de races de la planta sola, sin compensador. Para escoger la ganancia del control proporcional, recuerde
que el tiempo de establecimiento debe ser menor que 5 segundos. Esto implica que sigma debera ser ms que
4.6/5=0.92. Podemos poner estos criterios en el lugar de races usando la funcin sigrid, la que debe ser
copiada a un archivo-m. Para hacerlo, copie el siguiente cdigo al final de su archivo-m (ya sea que est usando
la funcin de transferencia de las transformadas de Laplace o la representacin en espacio de estado):
rlocus(num,den)
sigrid(0.92)
axis([-6 6 -6 6])
Nota: Los comandos Matlab de la toolbox de control de sistema se destacan en rojo.
Nota: Los comandos Matlab no estndares usados en este ejemplo se destacan en verde.
Debera verse el siguiente diagrama del lugar de races:
21/5/2014 CTM Ejemplo: Lugar de Races control del modelo del pndulo invertido
http://www.ib.cnea.gov.ar/~instyctl/Tutorial_Matlab_esp/invRL.html 4/12
Como puede ver, una de las races de la funcin de transferencia a lazo cerrado est en el semiplano derecho.
Esto significa que el sistema ser inestable. Mire hacia atrs en el lugar de races para ver porqu. Una parte del
lugar de races reside entre el origen y el polo en el semiplano derecho. Sin importar la ganacia que escoja,
siempre tendr un polo a lazo cerrado en esta regin, haciendo inestable la respuesta al impulso. Para resolver
este problema, necesitamos agregar otro polo en el origen de modo que todos los polos y ceros en el origen se
cancelen unos a otros y sean generen races mltiples en esta regin del semiplano derecho. Las races mltiples
podrn dibujarse entonces dentro del semiplano izquierdo para completar el diseo. Agregue lo siguiente a su
archivo-m:
p1 = 0;
dentemp = [1 p1];
num2 = num;
den2 = conv(den, dentemp);
rlocus(num2,den2)
sigrid(0.92)
axis([-10 10 -10 10])
Debera obtenerse el siguiente diagrama del lugar de races con races mltiples en el semiplano derecho:
21/5/2014 CTM Ejemplo: Lugar de Races control del modelo del pndulo invertido
http://www.ib.cnea.gov.ar/~instyctl/Tutorial_Matlab_esp/invRL.html 5/12
Ya podemos empezar a tratar de dibujar las ramas del lugar de races al semiplano izquierdo. Ingrese los
siguientes dos comandos en la ventana de comandos:
roots(num2)
roots(den2)
Si est usando la funcin de transferencia con transformada Laplace, debera obtenerse la siguiente salida la
ventana de comandos del Matlab,
ans =
0
ans =
0
-5.6041
5.5651
-0.1428
Como puede ver habrn cuatro polos y solamente un cero. Esto significa que habrn tres asntotas: una a lo largo
del eje real en la direccin negativa, y los otros dos a 120 grados de sta. Para la funcin de transferencia a
partir del espacio de estado habrn un polo y un cero extras.
Esta configuracin jams tendr las races mltiples en el semiplano izquierdo. Debemos reducir la cantidad de
asntotas de tres a dos agregando un cero ms que los polos en el controlador. Si slo se adiciona un cero, la
interseccin de las asntotas (alpha) seran [(-5.6041+5.5651-0.1428+0+0)-(0+0+z2)]/2. Esto significa las dos
asntotas abandonarn el eje real en aproximadamente -0.1-(1/2)z2. An haciendo z2 tan pequeo como se
pueda (asumamos cercano al origen) no se empujarn las races mltiples lo bastante lejos dentro del semiplano
izquierdo para satisfacer los requerimientos de diseo (las asntotas saldrn de cerca de -0.1).
21/5/2014 CTM Ejemplo: Lugar de Races control del modelo del pndulo invertido
http://www.ib.cnea.gov.ar/~instyctl/Tutorial_Matlab_esp/invRL.html 6/12
Controlador en adelanto-atraso
La solucin a este problema es agregar otro polo lejos a la izquierda de los otros polos y ceros. Para seguir
teniendo el nmero de asntotas adecuado, tambin se tendr que agregar otro cero. La ubicacin del
adicionado par polo y cero no es importante excepto que el polo debera ser relativamente grande y los ceros
deberan ser relativamente pequeos.
Pruebe el archivo-m de abajo para ver qu efectos provocan los polos y ceros en el lugar de races. Necesita
copiarse la funcin polyadd en la carpeta en la que se est ejecutando Matlab .
M = .5;
m = 0.2;
b = 0.1;
i = 0.006;
g = 9.8;
l = 0.3;
q = (M+m)*(i+m*l^2)-(m*l)^2; %simplifica entrada
num = [m*l/q 0];
den = [1 b*(i+m*l^2)/q -(M+m)*m*g*l/q -b*m*g*l/q];
z1 = 3;
p1 = 0;
z2 = 4;
p2 = 50;
numlag = [1 z1];
denlag = [1 p1];
numlead = [1 z2];
denlead = [1 p2];
num3 = conv(conv(num, numlead), numlag);
den3 = conv(conv(den, denlead), denlag);
rlocus(num3,den3)
sigrid(0.92)
axis([-50 50 -50 50])
figure
rlocus(num3,den3)
sigrid(0.92)
axis([-10 10 -10 10])
[k,polos]=rlocfind(num3,den3)
figure
numc = conv(conv(num,denlead),denlag);
denc = polyadd(k*num3,den3);
impulse(numc,denc)
axis([0 2 -0.05 0.05])
Los polos y ceros se encontraron por prueba y error. lo nico a tener en cuenta fue que un polo se tuvo que
ubicar en el origen, el otro se tuvo que ubicar lejos a la izquierda, y los dos ceros tuvieron que ser pequeos.
Adems, hallamos que si los dos ceros estuvieran cerca entre s y a la derecha del ltimo polo de la planta ms
alejado a la izquierda, la respuesta fuera mejor. Debera verse primero el siguiente diagrama del lugar de races
21/5/2014 CTM Ejemplo: Lugar de Races control del modelo del pndulo invertido
http://www.ib.cnea.gov.ar/~instyctl/Tutorial_Matlab_esp/invRL.html 7/12
con los polos y ceros listados arriba:
El segundo grfico debera ser el mismo root locus magnificado un poco, de modo que pueda verse el lugar de
races cercano al origen.
Cuando se le pida elegir una ubicacin en el lugar de races, elija un punto en las races mltiples justo antes de
quevuelvan al eje real. La respuesta de la velocidad a la perturbacin impulsiva se ver similar al siguiente:
21/5/2014 CTM Ejemplo: Lugar de Races control del modelo del pndulo invertido
http://www.ib.cnea.gov.ar/~instyctl/Tutorial_Matlab_esp/invRL.html 8/12
La respuesta logra ahora todos los requerimientos, as que ya no se necesita ms iteraciones.
Qu sucede con la posicin del carro?
Al principio de pgina, se dio el diagrama en bloque para este problema. El diagrama no estaba totalmente
completo. El bloque que representa la posicin fu ignorado porque no iba a ser controlada. Sera sin embargo
interesante, ver qu est sucediendo con la posicin del carro cuando se coloca el controlador para el del ngulo
del pndulo. Para verlo necesitamos considerar el diagrama en bloques real del sistema:
Reacomodando un poco ms, se obtiene el siguiente diagrama en bloque:
21/5/2014 CTM Ejemplo: Lugar de Races control del modelo del pndulo invertido
http://www.ib.cnea.gov.ar/~instyctl/Tutorial_Matlab_esp/invRL.html 9/12
El lazo de realimentacin representa el controlador tenemos diseado para el pndulo. La funcin de
transferencia de la posicin del carro a la fuerza impulsiva, con el controlador realimentado que se ha diseado,
se da como sigue:
Recordemos que si el par polo/cero en el origen que fue cancelado se vuelve a agregar, den1=den2. De modo
que la funcin de transferencia de X a F puede simplificarse a:
Funcin de Transferencia
Ahora que tenemos la funcin de transferencia del sistema completo, echemos un vistazo a la respuesta. Primero
necesitamos la funcin de transferencia para la posicin del carro. Para obtenerla necesitamos volver a las
ecuaciones del sistema en transformada Laplace y encontrar la funcin de transferencia de X(s) a U(s). Esta
funcin de transferencia se muestra abajo:
donde,
Para ayuda acerca de la transformada de Laplace refirase por favor a modelado del pndulo invertido .
El par polo/cero en el origen que habamos cancelado en la funcin de transferencia de Phi, se ha vuelto a
introducir. As que ahora den1 = den2, lo que reduce la dificultad del clculo. Ahora, cree un nuevo archivo-m
y ejectelo en la ventana de comandos:
M = .5;
m = 0.2;
21/5/2014 CTM Ejemplo: Lugar de Races control del modelo del pndulo invertido
http://www.ib.cnea.gov.ar/~instyctl/Tutorial_Matlab_esp/invRL.html 10/12
b = 0.1;
i = 0.006;
g = 9.8;
l = 0.3;
q = (M+m)*(i+m*l^2)-(m*l)^2; %simplifica entrada
num1 = [m*l/q 0 0];
den1 = [1 b*(i+m*l^2)/q -(M+m)*m*g*l/q -b*m*g*l/q 0];
num2 = [(i+m*l^2)/q 0 -m*g*l/q];
den2 = den1
z1 = 3;
p1 = 0;
z2 = 4;
p2 = 50;
numlag = [1 z1];
denlag = [1 p1];
numlead = [1 z2];
denlead = [1 p2];
num3 = conv(conv(num1, numlead), numlag);
den3 = conv(conv(den1, denlead), denlag);
subplot(1,1,1);rlocus(num3,den3)
axis([-10 10 -10 10])
[k,polos]=rlocfind(num3,den3)
numc = conv(conv(num1,denlead),denlag);
denc = polyadd(k*num3,den3);
t=0:0.01:6;
subplot(2,1,1);
impulse(numc,denc,t)
axis([0 6 -0.05 0.05])
num4 = conv(num2,den3);
den4 = polyadd(conv(den1,den3),k*conv(den1,num3));
subplot(2,1,2);
impulse(num4,den4,t)
axis([0 6 -0.1 0.1])
Si selecciona el punto en el lugar de races que seleccion antes (cerca del eje real), debera ver la figura
siguiente:
21/5/2014 CTM Ejemplo: Lugar de Races control del modelo del pndulo invertido
http://www.ib.cnea.gov.ar/~instyctl/Tutorial_Matlab_esp/invRL.html 11/12
La curva superior representa el ngulo del pndulo, y la curva inferior representa la posicin del carro. Como
puede ver, el movimiento del carrito, se estabiliza casi en cero por casi cinco segundos, y entonces se vuelve
inestable. Es posible que la friccin (la cual fue omitida en el modelado de este problema) realmente causare una
estabilizacin de la posicin del carro. Tenga en cuenta que si esto es de hecho cierto, se debe ms que nada a
la suerte, ya que la posicin del carro no se incluy en el diseo de controladores.
User Feedback
We would like to hear about suggestions you have for improvement, difficulties you had with the tutorials, errors
that you found, or any other comments that you have. This feedback is anonymous.
Submit Feedback Reset
Lugar de Races : Ejemplos
Control de Marcha | Velocidad del Motor | Posicin de un Motor | Suspensin de un Colectivo | Pndulo
21/5/2014 CTM Ejemplo: Lugar de Races control del modelo del pndulo invertido
http://www.ib.cnea.gov.ar/~instyctl/Tutorial_Matlab_esp/invRL.html 12/12
Invertido | Control de Inclinacin | Barra y Bola
Pndulo Invertido : Ejemplos
Modelacin | PID | Lugar de Races | Respuesta en Frecuencia | Espacio de Estado | Control Digital
Tutoriales
Matlab Bsico | Modelacin | PID | Lugar de Races | Respuesta en Frecuencia | Espacio de Estado |
Control Digital | Ejemplos

8/12/97 CJC

S-ar putea să vă placă și