Está en la página 1de 22

Ejemplo: Modelación del Experimento

Barra y Bola
Condiciones del Problema
Ecuaciones del Sistema
Representación en Matlab y Respuesta a Lazo Abierto

Condiciones del Problema


Se coloca una bola sobre una barra, ver figura abajo, donde se permite rodar con 1 grado
de libertad a lo largo de la barra. Se adiciona un brazo de palanca a la barra en uno de
sus extremos y un servo engranaje en el otro. A medida que el servo engranaje gira un
angulo theta, la palanca cambia el ángulo de la barra en alpha. Cuando se cambia el
ángulo a partir de la posición vertical, la gravedad ocasiona que la bola ruede a lo largo
de la barra. Debe diseñarse un controlador para este sistema de modo que pueda
manipularse la posición de la bola.

Para este problema, asumimos que la bola rueda sin resbalamiento y la fricción entre la
barra y bola es despreciable. Las constantes y variables para este ejemplo se definen
como sigue:

M masa de la bola 0.11 kg


R radio de la bola 0.015 m
d offset de brazo de palanca 0.03 m
g aceleración gravitacional 9.8 m/s^2
L longitud de la barra 1.0 m
J momento de inercia de la bola 9.99e-6 kgm^2
r coordenada de posición de la bola
alpha coordenada angular de la barra
theta ángulo del servo engranaje

Los criterios de diseño para este problema son:

 Tiempo de Establecimiento menor que 3 segundos


 Sobrepico menor que 5%

Ecuaciones del Sistema


El Lagrangiano de movimiento para la bola está dado por la siguiente ecuación:

La linealización de de esta ecuación alrededor del ángulo de la barra , alpha = 0, nos dá


la siguiente aproximación lineal del sistema:

La ecuación que relaciona el ángulo de la barra con el ángulo del engranaje puede
aproximarse a una relación lineal mediante la ecuación de abajo:

Sustituyéndola en la ecuación previa, tenemos:

1. Función de Transferencia

Tomando transformada de Laplace de la ecuación de arriba, se encuentra la siguiente


ecuación :

NOTA: Cuando se toma Transformada de Laplace para hallar la función de


transferencia se asume que las condiciones iniciales son nulas.
Reacomodando encontramos la función de transferencia del ángulo del engranaje (
theta(s) ) a la posición de la bola (R(s)).

Debe notarse que la función de transferencia de la planta de arriba es un doble


integrador. Como ésta es marginalmente estable nos proveerá de un arduo problema de
control.

2. Espacio de Estado

El sistema de ecuaciones linealizado puede representarse también en la forma espacio


de estado. Esto puede hacerse seleccionando la posición de la bola (r) y velocidad (rdot,
por r punto) como las variables de estado y el angulo del engranaje (theta) como la
entrada. La representación espacio de estado se muestra abajo:

Sin embargo, para nuestro ejemplo de espacio de estado usaremos un modelo


ligeramente diferente . La misma ecuación se aplica todavía para la bola pero en lugar
de controlar la posición através del ángulo del engranaje, theta, controlaremos alfa doble
punto. Esto es escencialmente el control del torque de la barra. La representación de este
sistema se muestra abajo:

Note: Para este sistema no deben usarse el engranaje y el brazo de palanca para
controlar la posición de la bola en su lugar; un motor en el centro de la barra aplicará el
torque .

Representación en Matlab y Respuesta a Lazo Abierto


1. Función de Transferencia

La función de transferencia encontrada a partir de la transformada de Laplace puede


implementarse en Matlab entrando el numerador y el denominador como vectores. Para
lograrlo debemos crear un archivo-m y copiar el siguiente texto en él :


m = 0.111; R = 0.015; g = -9.8; L = 1.0; d = 0.03; J = 9.99e-6; K =
(m*g*d)/(L*(J/R^2+m)); num = [-K]; den = [1 0 0]; printsys(num,den)

La salida debería ser:

 num/den = 0.21 / s^2

Ahora, le gustaría observar la respuesta de la bola a una entrada escalón de 0.25 m .


Para hacerlo necesitará agregar la siguiente linea a su archivo-m:

 step(0.25*num,den)

NOTA: Los comandos del Matlab de la toolbox Control de Sistemas se resaltan en rojo.
Debería verse la figura siguiente mostrando las posiciones de la bola como función del
tiempo:

De esta figura es claro que el sistema es inestable a lazo abierto, causando que la bola se
deslice afuera de la barra. Por lo tanto, se requiere de algún método para controlar la
posición de la bola en este sistema. Abajo se listan tres ejemplos de diseño del
controlador para el problema de la FT . Puede elegir entre PID, Lugar de Raíces, y
Respuesta en Frecuencia.

2. Espacio de Estado

Las ecuaciones de espacio de estado pueden representarse en Matlab con los siguientes
commandos (estas ecuaciones son para el modelo de control de torque).

 m = 0.111;
 R = 0.015;
 g = -9.8;
 J = 9.99e-6;

 H = -m*g/(J/(R^2)+m);

 A=[0 1 0 0
 0 0 H 0
 0 0 0 1
 0 0 0 0];
 B=[0;0;0;1];
 C=[1 0 0 0];
 D=[0];

La respuesta al escalón de 0.25m (posición deseada) puede verse corriendo el comando
siguiente:

 step(A,B*.25,C,D)

La salida debería verse como la de abajo:

Al igual que el esquema para la función de transferencia, esta figura muestra que el
sistema es inestable y que la bola se va a salir de la barra. Por lo tanto, requiremos algun
método de control de la posición de la bola en este sistema. Abajo se muestra el ejemplo
de cómo implementar un controlador en Espacio de Estado para este tipo de sistema.
Ejemplo: Solución al Problema de la Barra
y Bola Usando Control PID
Representación a Lazo Cerrado
Control Proporcional
Control Proporcional-Derivativo

La función de transferencia a lazo abierto de la planta para experimento de la barra y


bola se da abajo:

Los criterios de diseño para este problema son:

 Tiempo de establecimiento menor que 3 segundos


 Sobrepico menor que 5%

Para ver de dónde salen las ecuaciones para este problema pinche en barra y bola
:página de Modelación.

Representación a Lazo Cerrado


El diagrama en bloque para este ejemplo con un controlador y realimentación unitaria
de la posición de la bola se muestra abajo:

Primero estudiaremos la respuesta del sistema mostrado abajo cuando se usa un


controlador proporcional. Entonces, se adicionará si es necesario control integral y/o
derivativo.

Recordemos, que la función de transferencia para un controlador PID es:

Control Proporcional
La función de transferencia a lazo cerrado para un controlador proporcional con una
ganancia proporcional (kp) igual a 100, puede modelarse copiando las siguientes líneas
de código de Matlab a un archivo-m
m = 0.111;
R = 0.015;
g = -9.8;
L = 1.0;
d = 0.03;
J = 9.99e-6;

K = (m*g*d)/(L*(J/R^2+m)); %simplifica entrada

num = [-K];
den = [1 0 0];

kp = 1;
numP = kp*num;

[numc, denc] = cloop(numP, den)

NOTE: Los comandos Matlab de la toolbox de control de sistema se destacan en rojo.

El numerador y denominador deberían ser:

numc =

0 0 0.2100

denc =

1.0000 0 0.2100
Ahora, podemos modelar la respuesta del sistema a una entrada escalón de 0.25 m.
Agregue la siguiente línea de código a su archivo-m y ejecútelo:
step(0.25*numc,denc)

Debería obtenerse la siguiente salida:


Como puede ver la adición de ganancia proporcional no estabiliza el sistema . Pruebe
cambiando el valor de kp y note que el sistema permanece inestable.

Control Proporcional-Derivativo
Ahora, agregaremos un término derivativo al controlador. Copie las siguientes líneas de
código a un archivo-m y ejecútelo para ver la respuesta del sistema a este método de
control.
m = 0.111;
R = 0.015;
g = -9.8;
L = 1.0;
d = 0.03;
J = 9.99e-6;

K = (m*g*d)/(L*(J/R^2+m)); %simplifica entrada

num = [-K];
den = [1 0 0];

kp = 10;
kd = 10;
numPD = [kd kp];

numh = conv(num, numPD);


[numc, denc] = cloop(numh, den);
t=0:0.01:5;
step(0.25*numc,denc,t)

El diagrama debería ser similar al siguiente:


Ahora el sistema es estable pero el sobrepico es demasiado alto y el tiempo de
asentamiento necesita bajarse un poco. De la página tutorial de PID en la sección de
características de controladores P, I, y D , vemos que incrementando kd podemos bajar
el sobrepico y disminuir apenas el tiempo de establecimiento. Por lo tanto, haga kd =
20 en su archivo-m y ejecútelo de nuevo. La salida debería ser:

El criterio de sobrepico está logrado pero el tiempo de establecimiento necesita bajarse


un poco. Para bajar el tiempo de establecimiento podemos intentar incrementar apenas
kp para incrementar el tiempo de elevación. La ganancia derivativa (kd) puede también
incrementarse para bajar algo del sobrepico que el incremento kp causará. Luego de
experimentar un poco con las ganancias, puede lograrse la siguiente respuesta al escalón
con kp = 15 y kd = 40:
como puede ver de la figura de arriba todos los objetivos de control han sido logrados
sin el uso de un controlador integral (el tiempo de establecimiento para este ejemplo se
considera logrado cuando la respuesta es menor que el 2% de su valor final). Recuerde,
que para un problema de control hay más que una solución.
Tutorial de Control Digital
Introducción
Mantenedor de orden Cero
Conversión con c2dm
Estabilidad y Respuesta Transitoria
Lugar de Raíces Discreto

Los comandos de Matlab usados en este tutorial son: c2dm pzmap zgrid dstep stairs
rlocus
Nota: Los comandos Matlab de la toolbox de control de sistema se destacan en rojo.

Introducción
La figura de abajo muestra el típico sistema continuo realimentado que hemos
considerado hasta ahora en este tutorial. Casi la totalidad de los controladores continuos
pueden implementarse usando electrónica analógica.

El controlador analógico, encerrado en el cuadrado a trazos, puede reemplazarse por un


controlador digital, como se muestra abajo, el cual hace la misma tarea de control que el
controlador analógico. La diferencia básica entre estos controladores es que el sistema
digital opera con señales discretas (o muestras de la señal sensada) en lugar de señales
continuas.
Los diferentes tipos de señales en el esquema digital de arriba pueden representarse por
las figuras siguientes.

El propósito de este Tutorial de Control Digital es mostrarle cómo trabajar con


funciones discretas ya sea en la forma función de transferencia o en la forma espacio de
estado para diseñar sistemas de control digital.

Mantenedor de orden Cero


En el esquema de arriba del sistema de control digital, vemos que el sistema de control
digital contiene partes discretas y analógicas. Cuando se diseña un sistema de control
digital, necesitamos hallar el equivalente discreto de la parte continua de modo que sólo
necesitamos manejarnos funciones discretas.

para esta técnica, consideremos la siguiente parte del sistema de control digital y re
ordenemos como sigue.
El reloj conectado a los conversores D/A y A/D suministra un pulso cada T segundos y
cada D/A y A/D envía una señal solo cuando llega el pulso. El propósito de tener este
pulso es que Hzoh(z) tiene sólo muestras u(k) para tratar y produce sólo muestras como
salida y(k); por lo tanto, Hzoh(z) puede ser implementado como función discreta.

La filosofía del diseño es la siguiente. Queremos hallar una función discreta Hzoh(z) de
modo que para una entrada constante a tramos al sistema continuo H(s), la salida
muestreada del sistema continuo sea igual a la salida discreta.

Suponga que la señal u(k) representa una muestra de la señal de entrada. Existen
técnicas para tomar esta muestra u(k) y mantenerla para producir una señal continua
uhat(t) (por u circunflejo). El croquis abajo muestra que uhat(t) se mantuvo constante a
u(k) en el intervalo kT a (k+1)T. La operación de mantener uhat(t) constante durante el
tiempo de muestreo se denomina mantenedor de orden cero.

La señal mantenida uhat(t) pasa por H2(s) y el A/D para producir la salida y(k) que será
la misma señal a tramos como si fluyera u(t) continua a través de H(s) para producir la
salida continua y(t).
Dibujemos ahora el esquema, poniendo Hzoh(z) en lugar de la parte continua.

Mediante Hzoh(z), podemos diseñar sistemas de control digital tratando solamente con
funciones discretas.

Nota: Existen ciertos casos donde la respuesta discreta no coincide con la respuesta
analógica debido a los circuitos de retención implementados en sistemas de control
digital. Para más información, vea Efecto de retardo asociado al mantenedor.

Conversión con c2dm


Existe una función en Matlab, denominada c2dm, que convierte un sistema continuo
dado (ya en la forma función de transferencia o en la forma espacio de estado) al
sistema discreto usando la operación de retención de orden cero explicada arriba. El
comando básico para este comando c2dm es alguno de los siguientes.

[numDz,denDz] = c2dm (num,den,Ts,'zoh')


[F,G,H,J] = c2dm (A,B,C,D,Ts,'zoh')

El tiempo de muestreo (Ts en seg/muestra) debería ser menor que 1/(30*BW), donde
BW es el ancho de banda a lazo cerrado .

1. Función de Transferencia

suponga que tiene la siguiente función de transferencia continua


 M = 1 kg
 b = 10 N.s/m
 k = 20 N/m
 F(s) = 1

Asumiendo que el ancho de banda a lazo cerrado es mayor que 1 rad/seg., elegiremos el
tiempo de muestreo (Ts) igual a 1/100 seg. Ahora, cree un archivo-m nuevo e ingrese
los siguientes comandos.

M=1;
b=10;
k=20;

num=[1];
den=[M b k];

Ts=1/100;
[numDz,denDz]=c2dm(num,den,Ts,'zoh')

Luego de correr este archivo-m en la ventana de comandos le debería dar las siguientes
matrices numDz y denDz.

numDz =

1.0e-04 *

0 0.4837 0.4678

denDz =

1.0000 -1.9029 0.9048

De estas matrices, la función de transferencia discreta puede escribirse como

Nota: Las matrices numerador y denominador estarán representadas en potencias


descendentes de z. Para más información sobre representación, refiérase por favor a
Representación Matlab.

Ahora tiene la función de transferencia en la forma discreta.

2. Espacio de Estado

suponga que tiene el siguiente modelo en espacio de estado continuo


Todas las constantes son las mismas que anteriormente

El siguiente archivo-m convierte el espacio de estado continuo a espacio de estado


discreto de arriba.

M=1;
b=10;
k=20;

A=[0 1;
-k/M -b/M];

B=[ 0;
1/M];

C=[1 0];

D=[0];

Ts=1/100;
[F,G,H,J] = c2dm (A,B,C,D,Ts,'zoh')

Cree un nuevo archivo-m y copie aquellos comandos. Corriendo este archivo-m, la


ventana de comandos del Matlab le debería dar las siguiente matrices.

F =

0.9990 0.0095
-0.1903 0.9039

G =

0.0000
0.0095

H =

1 0

J =

De estas matrices, el espacio de estado discreto puede escribirse como


Ahora tiene el modelo en espacio de estado de tiempo discreto.

Nota: Para más información sobre el espacio de estado discreto , refiérase a Espacio de
Estado Discreto .

Estabilidad y Respuesta Transitoria


Para sistemas continuos, sabemos que ciertos comportamientos resultan de la diferente
ubicación de los polos en el plano s . Por ejemplo, un sistema es inestable cuando
cualquier polo se ubica a la derecha del eje imaginario. Para sistemas discretos ,
podemos analizar los comportamientos del sistema para diferentes ubicaciones de los
polos en el plano z . Las características en el plano z pueden relacionarse con las del
plano s por la expresión

 T = tiempo de muestreo (seg/muestra)


 s = Lugar en el plano s
 z = Lugar en el plano z

La figura de abajo muestra el mapeo de líneas de coeficiente de amortiguamiento


constante (zeta) y la frecuencia natural (Wn) del plano s al plano z mediante la
expresión de abajo.
Si se dio cuenta en el plano z , el límite de estabilidad ya no es el eje imaginario, sino el
círculo unitario |z|=1. El sistema es estable cuando todos los polos se ubican dentro del
círculo unitario e inestable cuando cualquier polo se ubica afuera de él.

Para analizar la respuesta transitoria de ubicaciones de polo en el plano z , todavía


puede aplicarse las siguientes tres ecuaciones usadas en diseños de sistemas continuos .

donde

 zeta = coeficiente de amortiguamiento


 Wn = Frecuencia natural (rad/seg.)
 Ts = Tiempo de establecimiento
 Tr = Tiempo de Subida
 Mp = Máximo sobrepico
Importante: La frecuencia natural (Wn) en el plano z posee las unidades de
rad/muestra, pero cuando usa las ecuaciones que aparecen abajo, la Wn debe estar
en unidades de rad/seg..

Suponga que tenemos la siguiente función de transferencia discreta

Cree un nuevo archivo-m y entre los siguientes comandos. Luego de correr este archivo-
m en la ventana de comandos ,verá la figura siguiente con las líneas de coeficiente de
amortiguamiento y la frecuencia natural constantes .

numDz=[1];
denDz=[1 -0.3 0.5];

pzmap(numDz,denDz)
axis([-1 1 -1 1])
zgrid

De esta figura, vemos que los polos se ubican aproximadamente a la frecuencia natural
de 9pi/20T (rad/muestra) y la razón de amortiguación de 0.25. Asumiendo que tenemos
un tiempo de muestreo de 1/20 seg (que lleva a Wn = 28.2 rad/seg.) y usando las tres
ecuaciones de abajo, podemos determinar que este sistema debería tener un tiempo de
elevación de 0.06 seg, el tiempo de establecimiento de 0.65 seg. y el sobrepico máximo
del 45% (0.45 más que el valor de estado estacionario). Obtengamos la respuesta al
escalón y veamos si estos son correctos. Agregue los comandos siguientes al archivo-m
anterior y ejecútelo nuevamente en la ventana de comandos. Debería obtenerse la
siguiente respuesta al escalón .

[x] = dstep (numDz,denDz,51);


t = 0:0.05:2.5;
stairs (t,x)

Como se puede ver del gráfico, el tiempo de elevación, el tiempo de establecimiento y


el sobrepico quedan como hemos esperado . Probaremos aquí que podemos usar los
lugares de los polos y las tres ecuaciones de arriba para analizar la respuesta transitoria
del sistema.

Para mayores análisis con ubicaciones de polos y respuesta transitoria, vea Respuesta
Transitoria.

Lugar de Raíces Discreto


El lugar de raíces es el lugar de los puntos donde puede hallarse las raíces de la
ecuación característica mientras se varía una ganancia de cero a infinito. La ecuación
característica de un sistema de realimentación unitaria es

donde G(z) es el compensador implementado en el controlador digital y Hzoh(z) es la


función de transferencia de la planta en z .

La mecánica para dibujar el lugar de las raíces es la misma en el plano z que en el plano
s . Recordemos del Tutorial del Lugar de Raíces continuo, hemos usado la función del
Matlab denominada sgrid para hallar la región del lugar de raíces que proporciona la
ganancia correcta (K). Para el análisis discreto del lugar de raíces , usamos la función
zgrid que posee las mismas características que sgrid. El comando zgrid(zeta, Wn)
dibuja líneas de coeficiente de amortiguamiento (zeta) y frecuencia natural constante
(Wn).

Suponga que tenemos la siguiente función de transferencia discreta


y los requerimientos de tener coeficiente de amortiguamiento mayor que 0.6 y
frecuencia natural mayor que 0.4 rad/muestra (esto puede hallarse a partir de los
requerimientos de diseño: tiempo de muestreo (seg/muestra) y las tres ecuaciones vistas
en la sección precedente ).
Los comandos siguientes dibujan el lugar de raíces con las líneas de coeficiente de
amortiguamiento y de frecuencia natural constantes. Cree un nuevo archivo-m y entre
los siguientes comandos. Luego de correr este archivo-m le debería dar el siguiente
gráfico de lugar de raíces.

numDz=[1 -0.3];
denDz=[1 -1.6 0.7];

rlocus (numDz,denDz)
axis ([-1 1 -1 1])

zeta=0.4;
Wn=0.3;
zgrid (zeta,Wn)

De esta figura, ya habrá notado que el sistema es estable porque todos los polos se
ubican dentro del círculo unitario. Asimismo, ve dos líneas punteadas de coeficiente de
amortiguamiento y de frecuencia natural constantes. La frecuencia natural es mayor que
0.3 fuera de la línea de Wn constante, y el coeficiente de amortiguamiento es mayor que
0.4 dentro de la línea de zeta constante. En este ejemplo, ya tenemos dibujado el lugar
de raíces en la región deseada. Por lo tanto, una ganancia (K) elegida en la región
deseada le debería dar la respuesta que satisfaga los requerimientos de diseño.

También podría gustarte