control de un puente grúa
TRANSCRIPT
Control de un puente grúa Análisis
17/03/2011Control RAC
Control de un puente grúaEl modelo de la figura siguiente representa un puente grúa formado por un carro conectado a la masa suspendida a través de un cable, el carro se mueve por la acción de un motor situado al extremo izquierdo del sistema.
La función de transferencia en el dominio de “S” es la siguiente:
1
S×(S+ BM 1
)=
M 1× X1f m−M 2×g×θ−M 1×g×μ
Donde:
B= coeficiente de rozamiento del aire generalmente 0.01
M 1= la masa del carrito 0.25Kg
X1= la posición del carrito en metros
f m=fuerza del motor en Newton mkg
s2
M 2=masa del peso 0.125kg
g=gravedad 10 m
s2
θ =ángulo rad
μ=coeficiente de rozamiento acero contra acero 0.15
Reemplazando los valores tenemos (estos valores son estimados y aproximados)
1S×(S+0.04)
=0.25×X1
f m−1,25×θ−0,375 [ s2kg ](1)
Con la variable de salida X1y nuestra entrada la fuerza del motor f m
Siendo el coeficiente de rozamiento del aire muy pequeño se podría considerar despreciable
La formula tendría de la siguiente forma
1S2
=0.25× X1
f m−1,25×θ−0,375 [ s2kg ](2)Por razones practicas se analiza la primera formula (1)
Matlab
Se introduce la función de transferencia a Matlab 1
S×(S+0.04)
>> sisC=zpk([],[0 -0.04],1)
Zero/pole/gain:
1
----------
s (s+0.04)
Ahora se lleva el sistema a variables de estado.
>> sisCss=ss(sisC)
a =
x1 x2
x1 0 1
x2 0 -0.04
b =
u1
x1 0
x2 1
c =
x1 x2
y1 1 0
d =
u1
y1 0
Continuous-time model.
Estabilidad
Se ve la estabilidad del sistema con Nyquist
>> nyquist (sisC)
-7 -6 -5 -4 -3 -2 -1 0-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.80 dB
-20 dB
-10 dB
-6 dB
-4 dB-2 dB
20 dB
10 dB
6 dB
4 dB 2 dB
Nyquist Diagram
Real Axis
Imag
inar
y A
xis
Nyquist nos dice q el sistema en tiempo continuo es estable por que sus curvas que no encierran el punto -1, pero las curvas están muy cerca de este.
Otra forma de ver la estabilidad del sistema es usando los eigen valores de la matriz a en variables de estado.
Los eigen valores de la matriz a en variables de estado nos dan las raíces del sistema ya que la dinámica del sistema esta en la matriz “a”.
Si las raíces del sistema se encuentran en el plano derecho, el sistema es inestable.
>> eig(sisCss.a)
ans =
0
-0.0400
Los polos del sistema se encuentran en el origen y en -0.04, muy cerca del semiplano derecho, son críticamente estables.
Otra forma de ver la estabilidad del sistema es usando la orden rlocus, esta nos da el lugar de las raíces para distintos valores de realimentación.
El sistema realimentado representado con rlocus es el siguiente:
>> rlocus(sisC)
-0.045 -0.04 -0.035 -0.03 -0.025 -0.02 -0.015 -0.01 -0.005 0 0.005-0.015
-0.01
-0.005
0
0.005
0.01
0.015Root Locus
Real Axis
Imag
inar
y A
xis
Como se ven los dos polos en -0,04 y 0 tienen distintos polos para distintos valores de ganancia, lo que también nos da una idea del comportamiento del sistema a distintas ganancias.
Ahora se usara la orden lyap de Matlab, esto resuelve la ecuación de Lyapunov
AT XA−A=−Q , si esta ecuación se puede resolver el sistema es asintóticamente estable
Para la orden de Lyapunov en Matlab se necesita una matriz del mismo grado que la matriz “a” del sistema en variables de estado, esta puede ser una matriz identidad.
>> I=[1 1;1 1];
>> lyap(sisCss.a,I)
??? Solution does not exist or is not unique.
La orden de lyapunov nos dice que no encontró una solución para nuestro sistema, lo que quiere decir que el sistema no es asintóticamente estable.
ControlabilidadUtilizando la orden ctrb y Rank de Matlab se puede ver si el sistema es controlable.
Con la orden ctrb se obtiene la matiz de controlabilidad, si esta tiene un rango igual al grado de la matiz esto quiere decir que es controlable
>> Mtctrb=ctrb(sisCss)
Mtctrb =
0 1.0000
1.0000 -0.0400
>> rank(Mtctrb)
ans =
2
Como se ve primero obtuvimos la matriz de controlabilidad del sistema y después su rango, lo cual nos dice que el sistema es controlable.
Observabilidad
Utilizando la orden obsv de Matlab y RanK podemos ver si el sistema es observable.
Con la orden obsv se obtiene la matriz de observabilidad del sistema, si esta tiene un rango igual al grado de la matriz, nuestro sistema es observable.
>> Mtobsv=obsv(sisCss)
Mtobsv =
1 0
0 1
>> rank(Mtobsv)
ans =
2
Con se ve obtuvimos la matriz de observabilidad del sistema y después el rango de esta. El rango de la matriz de observabilidad es igual al grado de la matriz, lo que nos dice que el sistema es observable.
Respuesta al escalón
Ahora tenemos nuestro sistema al cual se daremos una realimentación y graficaremos la respuesta al escalón, esto se hará para ver su respuesta transiente o transitoria.
La sintaxis es:
Feedback(sys1,sys2)
Si se quiere una ganancia contante de realimentación se tiene que igualar sys2=1 con esto
tenemos Pc1+Pc
oKG1+KG la forma de un sistema realimentado.
>> sisCFeedB = feedback(sisCss,1)
a =
x1 x2
x1 0 1
x2 -1 -0.04
b =
u1
x1 0
x2 1
c =
x1 x2
y1 1 0
d =
u1
y1 0
Continuous-time model.
Ahora veremos la respuesta al escalón
0 50 100 150 200 250 3000
0.2
0.4
0.6
0.8
1
1.2
1.4
1.6
1.8
2Step Response
Time (sec)
Am
plitu
de
Esta el la respuesta a una ganancia de realimentación igual a uno.
Esta es la respuesta esperada de un sistema de “Puente grúa”, con una carga que oscila en presencia de perturbaciones.
El modelo con realimentación presenta la siguiente función de transferencia, por lo que la realimentación ayuda a la estabilidad del sistema, esta realimentación simplemente es proporcional.
En función de transferencia
>> sisCFeedB 2=feedback(sisC,1)
Zero/pole/gain:
1
------------------
(s^2 + 0.04s + 1)
Las raíces del sistema realimenta son:
>> pole(masd)
ans =
-0.0200 + 0.9998i
-0.0200 - 0.9998i
Modelo discretoEl control del modelo “Puente grúa”, se realizara en tiempo discreto, por lo que se debe discretizar el modelo obtenido en tipo continuo.
Para el valor de muestreo no hay una regla específica para los sistemas, pero se utiliza el teorema de muestreo de Shannon.
Que dice: una señal continua con transformada se Fourier nula fuera del intervalo (−w0 ,w0 ¿ esta determinada de forma única por sus valores en puntos equidistantes si la frecuencia de muestreo es mayor a 2w0. La señal continua puede calcularse a partir de la señal muestreada mediante la formula de interpolación.
La elección apropiada del periodo de muestreo depende de las propiedades de la señal, con el teorema de Shannon se puede elegir un periodo de muestreo apropiado si se aceptan errores y retardos en la reconstrucción del sistema.
Tabla de errores relativos cuando se muestrea y reconstruye una señal
Muestreo por periodo
Error relativo máximo
N Mantenedor de orden ceso Mantenedor de primer orden
2 1.5 2.55 0.6 0.8
10 0.3 0.1920 0.15 0.0550 0.06 0.008
100 0.03 0.002200 0.015 5×10−4
500 0.006 8×10−5
Como en no se cuenta con la señal muestreada del sistema se estimara un valor.
El único parámetro de referencia que se tiene es la respuesta al escalón del sistema continuo, la cual nos da una oscilación:
2 3 4 5 6 70
0.2
0.4
0.6
0.8
1
1.2
1.4
1.6
1.8
2Step Response
Time (sec)
Am
plitu
de
Esta comienza en 1.58 s y termina en 7.88 lo cual nos da un periodo de 6.3s el cual representaría a una frecuencia de 0.159 Hz con lo cual se tendría una frecuencia de muestreo de 0.032Hz esto seria 3.15 s el periodo de muestreo, este valor es para una ganancia de 1.
Para la conversión del modelo continuo al discreto se utilizara la orden c2d de Matlab.
>> sisD=c2d(sisC,0.001)
Zero/pole/gain:
4.9999e-007 (z+1)
-----------------
(z-1) (z-1)
Sampling time: 0.001
>> sisD=c2d(sisC,3.15)
Zero/pole/gain:
4.7593 (z+0.9589)
-----------------
(z-1) (z-0.8816)
Sampling time: 3.15
Para temer un mejor sistema se muestreara con un periodo de muestreo de 0.001s
Esta orden nos entrega una función de transferencia en el domino “Z” (modelo discreto), el cual necesita un tiempo de muestreo, el cual esta en segundos, que representa 0,001s=1ms que es igual a 1000Hz=1KH
Variables de estada
Para llevar el modelo a variables de estado utilizamos la orden ss como en modelos continuos, esta orden nos da las matrices de estado de muestro sistema.
>> sisDss=ss(sisD)
a =
x1 x2
x1 1 1.414
x2 0 1
b =
u1
x1 0
x2 0.0009766
c =
x1 x2
y1 0.0007241 0.000512
d =
u1
y1 0
Sampling time: 0.001
Discrete-time model.
Nos da las matrices de las variables de estado y nos indica el tipo de muestreo usado.
EstabilidadPara obtener las matrices del sistema discreto se utiliza la orden egi de Matlab, con la cual obtendremos los eigen valores de la matriz a del sistema discreto.
>> eig(sisDss.a)
ans =
1.0000
1.0000
Los eigen valores del sistema son las raíces del sistema, estos están en el punto 1, esto significa que están en el limite del circulo unitario para sistemas discretos, por lo que seria el sistema estable, pero están en el punto limite con una oscilación.
Para obtener otra grafica de estabilidad se utiliza la orden rlocus de Matlab.
La cual es una grafica de las raíces del sistema realimentado a distintas ganancias.
>> rlocus(sisD)
-7 -6 -5 -4 -3 -2 -1 0 1 2-2.5
-2
-1.5
-1
-0.5
0
0.5
1
1.5
2
2.5Root Locus
Real Axis
Imag
inar
y A
xis
Esta grafica nos demuestra que el sistema para cualquier ganancia de realimentación mayor a cero hace que el sistema sea inestable con sus dos polos sobre el círculo unitario.
Otra forma de ver la estabilidad de un sistema es la grafica de Nyquist, la cual nos dice si las curvas del sistema rodean el punto -1 el sistema es inestable.
>> nyquist(sisD)
-9 -8 -7 -6 -5 -4 -3 -2 -1 0-1
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
10 dB
-10 dB
-6 dB
-4 dB
-2 dB
10 dB
6 dB
4 dB 2 dB
Nyquist Diagram
Real Axis
Imag
inar
y A
xis
La grafica de Nyquis nos indica que el sistema es estable, pero esta muy cerca del punto -1 por lo que estaría muy cerca de la inestabilidad.
Otra forma de ver estabilidad en sistemas discretos es la ecuación de lyapunov, la cual
AT XA−A=−Q, si esta ecuación es posible resolver entonces el sistema es asintóticamente estable encontrando la matriz X del sistema, la matriz A es la matriz “a” del sistema discreto en variables de estado y Q es una matriz cualquiera del mismo grado que matiz “a”, en este caso será la matriz identidad.
>> I=[1 1;1 1];
>> dlyap(sisDss.a,I)
??? Solution does not exist or is not unique.
La orden de dlyap nos que no se encontró la respuesta para el sistema, lo cual quiere decir que el sistema no es asintóticamente estable.
Controlabilidad
Utilizando la orden ctrb y la orden Rank vemos si nuestro sistema es controlable.
MTctrb=ctrb(sisDss)
MTctrb =
0 0.0014
0.0010 0.0010
Tenemos que sacar el rango de la matriz de controlabilidad del sistema discreto, para ver si el sistema es controlable.
>> rank(MTctrb)
ans =
2
Ya que el rango de la matriz es el mismo que el grado de la matriz se ve que el sistema es controlable.
ObservabilidadLa matriz de observabilidad se obtiene con la siguiente orden obsv en Matlab.
>> MTobsv=obsv(sisDss)
MTobsv =
0.0007 0.0005
0.0007 0.0015
Par ver si el sistema es observable se obtiene el rango de esta matriz
>> rank(MTobsv)
ans =
2
Ya que el rango de la matriz es igual al grado de la matriz, el sistema es observable.
Respuesta al escalón
Ahora tenemos nuestro sistema al cual se daremos una realimentación y graficaremos la respuesta al escalón, esto se hará para ver su respuesta transitoria.
Si se quiere una ganancia contante de realimentación se tiene que igualar sys2=1 con esto
tenemos Pc1+Pc
oKG1+KG la forma de un sistema realimentado.
Con la orden feedback se encuentra muestro sistema realimentado.
La ganancia de realimentación para muestro sistema será 1.
>> sisDfeedb=feedback(sisDss,1)
a =
x1 x2
x1 1 1.414
x2 -7.071e-007 1
b =
u1
x1 0
x2 0.0009766
c =
x1 x2
y1 0.0007241 0.000512
d =
u1
y1 0
Sampling time: 0.001
Discrete-time model.
Con este modelo obtenido someteremos a mostro sistema a una señal escalón la cual nos dará la respuesta del mismo.
La realimentación nos da una función de transferencia.
>> sisDfeedb=feedback(sisD,1)
Zero/pole/gain:
4.9999e-007 (z+1)
-----------------
(z^2 - 2z + 1)
Sampling time: 0.001
>> pole (sisDfeedb)
ans =
1.0000 + 0.0010i
1.0000 - 0.0010i
En la función de transferencia del sistema realimentado se observa que los polos cambian. Con la orden pole en Matlab se obtienen los polos del sistema. Con lo que podemos ver que el sistema con una ganancia de 1 en realimentación se hace inestable en sus polos, ya que estos están fuera del círculo unitario.
>> step(sisDfeedb)
0 0.5 1 1.5 2 2.50
0.2
0.4
0.6
0.8
1
1.2
1.4
1.6
1.8Step Response
Time (sec)
Am
plitu
de
Esta grafica confirma el punto de inestabilidad de las raíces, al ver que nunca llega a estabilizase el sistema, pasando a una ganancia infinita, muy lejos del punto de referencia.