Está en la página 1de 61

PÉNDULO INVERTIDO

EL PROYECTO SE CENTRA EN EL ÁMBITO DE SISTEMA DE CONTROL, LA AUTOMÁTICA


Y CONTROL, SELECCIONANDO UN SISTEMA CLÁSICO COMO ES EL PÉNDULO
INVERTIDO, EL CUAL SE TRATARÁ DE RESOLVER CON LAS COMBINACIONES DEL
MATLAB. EL SISTEMA SE COMPONE DE UN CARRO DE LO CUAL SE MONTA UN
PÉNDULO QUE PUEDE GIRAR LIBREMENTE. EL CARRO DEBERÁ MOVERSE PARA
COMPENSAR EL DESPLAZAMIENTO DEL PÉNDULO Y MANTENERLO EN EQUILIBRIO.
MAYORMENTE SU APLICACIÓN SE DA EN LA VIDA COTIDIANA EN EL CONTROL DE
ESTABILIDAD DE LA CONSTRUCCIÓN DE VEHÍCULOS DE DESPLAZAMIENTOS PARA
PERSONAS, COMO POR EJEMPLO EL VEHÍCULO SAGWAY ( LO USAN EL PERSONAL DE
SEGURIDAD QUE ESTÁN EN LOS CENTROS COMERCIALES).

SE PUEDE DECIR QUE EL PÉNDULO INVERTIDO SIEMPRE ES INESTABLE SIN


CONTROL, ES DECIR, EL PÉNDULO SOLO CAE SOBRE EL CARRO, Y LOS DEFECTOS
QUE TIENE EN LAS FUERZAS, ES ENCONTRAR EL EQUILIBRIO EN EL SISTEMA
CONSIDERANDO QUE LAS DINÁMICAS NO SON LINEALES.
Primero se analiza las fuerzas actuantes en el eje horizontal para el carro y el
péndulo obteniendo:
Para el carro:
= M.a
F – b ẋ - N =Mẍ
F = Mẍ + bẋ + N (¡)
PARA EL PÉNDULO EN DIRECCIÓN HORIZONTAL:

= m.a
N – mlӫcosθ + ml = mẍ
N= mẍ + mlӫ - ml (¡¡)
COMPARANDO (¡) Y (¡¡) :
F= (M+m) ẍ + bẋ + mlӫ- ml
 
AHORA SUMAMOS TODAS LAS FUERZAS
PERPENDICULARES AL PÉNDULO DE SU DCL.

mlӫ

mẍ

mg

P + N – MG = MẌ + MLӪ
Luego Para deshacerse de la P y N términos en la ecuación anterior, se suman los momentos sobre el centro
de gravedad del péndulo para obtener la siguiente ecuación.

= Iα
LNcosθ - PL = Iӫ (¡v)
Comparando (¡¡¡) y (¡v) obtenemos
(i + m)ӫ + mgl = - mlẍ
ɸ 0. ɸ
cosθ = cos(ɸ + θ) aproxi -1
sinθ = sen (ɸ + θ) aproxi - ɸ
θ2 = ɸ. 2 Aproxi 0
θ. = ɸ.

Ӫ=

(M + m) ẍ + bẋ - ml = u
(i + m)ӫ - mglɸ = ml ẍ
FUNCIÓN DE TRANSFERENCIA DEL
SISTEMA

Para obtener las funciones de transferencia de las ecuaciones del


sistema linealizado, primero tenemos que tomar la transformada
de Laplace de las ecuaciones del sistema, suponiendo condiciones
iniciales nulas. Las transformadas de Laplace resultantes se
muestran a continuación.
A partir del problema principal, derivamos las
funciones de transferencia en lazo abierto del sistema
de péndulo invertido como el siguiente.
Recordemos que las dos funciones de transferencia son válidos
dónde
sólo para valores pequeños del ángulo phi , donde  Ø es la
desviación del péndulo desde la posición vertical hacia
arriba. Además, el ángulo del péndulo absoluta  Õ es   igual   Ø
+ π  .
Para la condiciones originales del problema y la derivación de
las funciones de transferencia anteriores, por favor refiérase a
la Péndulo Invertido: La modelación de sistemas página.
Teniendo en cuenta la respuesta del péndulo a un impulso de 1
Nsec aplicada al carro, los requisitos de diseño para el péndulo son:

_Tiempo de establecimiento para de menos de 5 segundos


_ Ángulo del péndulo nunca más de 0.05 radianes de la vertical
Además, los requisitos para la respuesta del sistema a un comando
de paso 0,2-metros en el carrito posición son:
_ Tiempo de establecimiento para y de menos de 5 segundos
_ El tiempo de subida de menos de 0,5 segundos
_ Ángulo del péndulo nunca más de 20 grados (0,35 radianes) de la
vertical
respuesta al impulso de bucle abierto

Vamos a empezar por examinar la respuesta a lazo abierto del


sistema de péndulo invertido. Crear un nuevo archivo-m y
escriba los siguientes comandos para crear el modelo del sistema
(consulte el principal problema para los detalles de cómo
obtener estos comandos).
Ahora podemos examinar la respuesta al impulso de bucle abierto del sistema. En
concreto, vamos a examinar cómo el sistema responde a una fuerza impulsiva
aplicada al carro emplear el comando de MATLAB impulso . Agregue los
siguientes comandos al final del archivo-m y ejecútelo en la ventana de comandos
de MATLAB para obtener la trama asociada se muestra a continuación.
Los polos de un sistema también puede decirnos acerca de su
tiempo de respuesta. Dado que nuestro sistema tiene dos salidas y
una entrada, que está descrita por dos funciones de
transferencia. En general, todas las funciones de transferencia de
cada entrada a cada salida de un sistema de múltiples entradas,
múltiples salidas (MIMO) tendrán los mismos polos (pero
diferentes ceros) a menos que haya cancelaciones polo-
cero. Vamos a examinar específicamente los polos y ceros del
sistema utilizando la función de MATLAB zpkdata . El
parámetro 'v' se muestra a continuación devuelve los polos y ceros
como vectores columna en lugar de como matrices celulares.
Los ceros y polos del sistema en donde la posición del péndulo es la
salida se encuentran como se muestra a continuación:
Del mismo modo, los ceros y polos del sistema en donde la
posición de la compra está la salida se encuentran los siguientes:
respuesta de paso de bucle abierto
Dado que el sistema tiene un poste con parte real positiva su
respuesta a un escalón de entrada también crecerá sin límites.
Vamos a verificar esto usando el lsim comando que puede
emplearse para simular la respuesta de modelos LTI a las
entradas arbitrarias. En este caso, se utilizará una entrada escalón
1-Newton. Añadiendo el siguiente código a su archivo-m y
ejecutarlo en la ventana de comandos de MATLAB va a generar la
trama se muestra a continuación.
También puede identificar algunas características importantes de
la respuesta utilizando el lsiminfo comando como se muestra.
Péndulo Invertido: Diseño
controlador PID
¿Qué es un PID?

Es un controlador proporcional tendrá el efecto de reducir el


tiempo de elevación, reducirá sin jamás eliminar el error de
estado estacionario, un control de integral tendrá el efecto
eliminar el error de estado estacionario pero puede empeorar la
respuesta transitoria, un control derivativo tendrá el efecto de
incrementar la estabilidad del sistema reducida el sobre pico y
mejorar la respuesta transitoria
Estructura del Sistema

La estructura del controlador para este problema es un poco diferente de los


problemas típicos de control que se pueden utilizar. Puesto que estamos
tratando de controlar la posición del péndulo, que debería volver a la vertical
después de la perturbación inicial la señal de referencia que está realizando el
seguimiento deber ser cero este tipo de situación se refiere a menudo como
un problema de regulador, la fuerza externa aplicada al carro puedes ser
considerado como una perturbación impulsiva. El esquema para este
problema se describe en la siguiente figura
Puede que resulte más fácil de analizar y diseñar para este sistema si primero
reorganizamos el esquema de la siguiente manera:

La función de transferencia resultante para el sistema de laza cerrado desde una


entrada de fuerza Fa a una salida del ángulo de péndulo se determina entonces de
la siguiente manera:
Antes de comenzar a diseñar nuestro controlador PID, primero tenemos
que definir nuestra planta dentro de MATLAB:

M= 0,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;
s= tf (‘s’);
P_pend= (m * l * s / q) / ( s ^ 3 + (b * ( I + M *l ^ 2)) * s ^ 2 / q – ((M + m)
* m * g * l) * s / q – b * m * g *l / q);
A continuación vamos a definir un controlador PID

Definimos nuestro controlador con el pid objetivo dentro de MATLAB,


A continuación utilizaremos la retroalimentación de comandos para
generar la función de transferencia en lazo cerrado como se representa n
la figura anterior, donde la fuerza de perturbación es la entrada y la
desviación del Angulo del péndulo vertical es la salida

Kp = 1;
Ki = 1;
Kd = 1;
C = pid (Kp ,Ki ,Kd);
T = retroalimentación (P_pend,C);
Ahora podemos empezar a afinar nuestro controlador. En primer lugar vamos a
examinar la respuesta del sistema a lazo cerrado a una perturbación impulso
para este conjunto inicial de las ganancias de control.
t = 0:0.01:10;
impulso (T,t)
título ( 'Respuesta del péndulo Posición a una perturbación impulsiva bajo
control PID: Kp = 1, Ki = 1, Kd = 1' );
La respuesta de la posición del péndulo a una perturbación impulsiva
bajo control PID: Kp = 1, Ki =1, Kd=1’

Esta respuesta no es todavía estable. Vamos a empezar a modificar la


respuesta mediante el aumento de ganancia proporcional.
Incrementar la variable para ver el efecto que tiene en la respuesta
Kp = 100;
Ki = 1;
Kd = 1;
C = pid (Kp, Ki, Kd);
T = retroalimentación (P_pend, C);
t = 0: 0.01: 10; impulso (T, t) eje ([0, 2.5, -0.2, 0.2]);
título ( 'Respuesta del péndulo Posición a una perturbación impulsiva bajo control PID: Kp = 100, Ki = 1,
Kd = 1' );
Después de algún ensayo y error se ha encontrado que un derivado de ganancia = 20 proporciona una respuesta
satisfactoria:
Kp = 100;
Ki = 1;
Kd = 20; C = pid (Kp, Ki, Kd);
T = retroalimentación (P_pend, C);
t = 0: 0.01: 10;
impulso (T, t)
eje ([0, 2.5, -0.2, 0.2]);

Como se puede ver, el reabastecimiento se ha reducido de modo que el péndulo


no se mueve más de 0.05 radianes de la vertical. Dado que los requerimientos de
diseño se han cumplido no se necesita más alteraciones
Posición del carro
P_cart = (((I + M * L ^ 2) / q) * s ^ 2 - (m * g l / q) *) / (s ^ 4 + (b * (I + M * L ^ 2)) * s ^ 3 / q - ((m + m) *
m * g * l) * s ^ 2 / q - b * m * g * l * s / q);
T2 = retroalimentación (1, P_pend * C) * P_cart;
t = 0: 0.01: 5;
impulso (T2, t);
título ( 'Respuesta de la compra Posición a una perturbación impulsiva bajo control PID: Kp = 100, Ki =
1, Kd = 20' );
Diseño Lugar de Raíces
Se denimina lugar de raíces al lugar geométrico de los polos de la planta M(s) al variar K desde de 0
hasta el ∞
Ahora vamos a empezar a diseñar un controlador a nuestro sistema que emplea un metodo de
diseño de raíces. Podemos usar el comando MATLAB rlocus

rlocus (P_pend)
Titulo ( lugar de raíces de la planta ( bajo control proporcional)
Como se puede ver , una de las ramas del lugar de las raíces es enteramente
en la mitad derecha de la compleja plano. Esto significa que no importa la
elección de la ganancia , siempre habrá un polo en lazo cerrado en el
semiplano derecho haciendo respuesta al impulso del sistema inestable
Obteniendo la siguiente figura
Examinamos la ubicación de polos en lazo abierto del sistema y ceros para que
podamos empezar a pensar en como dibujar las raíces en el lugar de raíces en el
semiplano izquierdo.
Introducimos los siguiente comandos en la ventana de MATLAB que nos
permitirá la siguiente salida
ceros =cero (C*P_pend)
poles = pole (C*P_pend)
ceros =
0
poles =
0
5,5651
-5,6041
- 0,1428
Nuestro controlador reducirá el número de asíntotas tres-dos. Estas dos asíntotas será paralela al eje
imaginario y se intersectan el eje real en la ubicación calculada a partir de la siguiente expresión

Por lo tanto, para nuestro sistema como el descrito hasta ahora, tenemos lo siguiente asumiendo un
cero de fase mínima ( negativo).

Basado en lo anterior, el más lejano que puede tirar de las asíntotas a la izquierda en el plano complejo es
de aproximadamente -0,1, para un cero insignificante pequeña recordemos que 2% tiempo de
establecimiento puede ser estimado a partir de la siguiente ecuación

Por lo tanto, dominamos en lazo cerrado postes con piezas reales que enfoque -0,1 no sera sufieciente
para cumplir con el tiempo 5 segundos la solucion que necesitamos
Z= [-3 -4];
P = 0;
K =1;
C = zpk(z,p,k);
Rlocus(C*P_pend)
título ( 'Lugar de Raíces con controlador PID' )
Para encontrar la ganancia correspondiente a un punto específico en el lugar de raíces, podemos
utilizar la rlocfind comando. [K, poles] = rlocfind ( C*P_pend) en la ventana de comandos de
MATLAB.

Selected_point =
-3.5960 + 0.5590i
K=
26.1243
poles =
1.0e + 002 *

0
-1.1189
-0.0352 + 0.0056i
-0.0352 – 0.0056i
Comprobamos la respuesta al impulso de nuestro sistema de circuito cerrado para ver si cumple nuestro
requisito con una ganancia aproximadamente 20:
k= 20;
t= feedback(P_pend,K*C);
impulse (T)
Teniendo así que todos los requisitos indicados se cumplen
En el anterior, el bloque es el controlador diseñado para mantener el péndulo vertical. La Función de
transferencia en bucle cerrado a partir de una fuerza de entrada aplicada al carro a una salida de
posición del carro es, por lo tanto, dada por la siguiente

Dónde:
P_cart = (((I + M * L ^ 2) / q) * s ^ 2 - (m * g l / q) *) / (s ^ 4 + (b * (I + M * L ^
2)) * s ^ 3 / q - ((m + m) * m * g * l) * s ^ 2 / q - b * m * g * l * s / q);
T2 = retroalimentación (1, P_pend * C) * P_cart;
t = 0: 0,01: 8,5;
impulso (T2, t);
FRECUENCIA:
1. Vamos a diseñar un controlador para el sistema del péndulo invertido con una
respuesta de frecuencia método de diseño.
2. 2. Se asume Salida única y entrada única. Vamos a tratar de controlar el Angulo
del péndulo sin tener en cuenta la posición del carro

donde

4. Se intentará mantener el péndulo verticalmente hacia arriba cuando el carro


está sometido a un impulso de -1seg. Bajo estas condiciones, los criterios de diseño
son:
-Tiempo de establecimiento de menos de 5 segundos
-Péndulo no debe moverse más de 0.05 radianes de la vertical
Definir nuestra planta dentro en MATLAB

1. Crear un archivo-m tipo y en los siguiente comandos


para crear el modelo de la planta
2. Este sistema es inestable sin control; se puede demostrar
mediante el comando en MATLAB zpkdata.

En este caso, zpkdata de vuelve los polos y ceros de la función


de transferencia.

El parámetro añadido ‘v’ devuelve los resultados en la forma


de vectores en lugar de matrices de células y solo pueden ser
empleados con una sola entrada de salida de única de modelos
Introducimos el siguiente código en la ventana de
comandos de MATLAB genera el resultado que se
muestra a continuación

Ceros =
0
Polos =
5.5651
-5.6041
-0.1428
Respuesta a lazo cerrado sin compensación
1. Utilizar herramienta de diseño SISO interactiva con la interfaz gráfica de usuario (GUI) que
puede ser puesto en marcha por el comando de MATLAB sisotool como se muestra a
continuación:
El parámetro adicional ‘ bode’ abre la SISO design para SISO design tarea ventana con el diagrama de Bode del
sistema (que se pasa a la función ) como se muestra a continuación
Modificar la arquitectura del sistema que se emplea para reflejar el hecho de que muestro controlador está
en el camino de realimentación de nuestro sistema
Esto se realiza desde el control y estimación Manager Tools
1.Click
2.Configuración
3.Arquitectura de control modificar la configuración predeterminada para que coincida con la forma que
se muestra a continuación
Comenzar a examinar algunas de las parcelas de analisis de nuestro sistema
Podemos evaluar la estabilidad de bucle cerrado de nuestro sistema basado
en la respuesta de frecuencia en bucle abierto
En el ejemplo, la función de transferencia en bucle abierto de nuestro
sistema viene dada por la siguiente
En otros Ejemplos se ha empleado específicamente un bode en representación
gráfica de la respuesta de frecuencia en bucle abierto.
El bucle abierto diagrama de Bode , nuestro sistema ya está abierta
Aun así, se podría abrir una nueva parcela de debajo de la grafica de ajuste de la
ficha de control y estimación Manager Tools ventana como se muestra a
continuación
Gráficos adicionales para entender mejor el funcionamiento de circuito cerrado
el sistema:
-Clic en el Análisis More ficha en el control y estimación Manager tools ventana
-Vamos a ver el diagrama de Nyquist para el sistema en bucle abierto y la
respuesta de impulso del sistema de bucle cerrado siguiendo los pasos que se
indican a continuación
1.En el marco del análisis Ir, seleccione un tipo parcela de Nyquist para la
parcela número, una ventana de dibujo con un diagrama de Nyquist en blanco
deberá aparecer. Asegúrese con la actualización que está en la esquina inferior
derecha de la ventana de dibujo.
2. Seleccione un tipo parcela de impulso para la parcela 2
3. En los contenidos de parcelas sección de la ventana, active la casilla de Lazo
abierto L para el grafico 1 y la plaza de lazo cerrado r a y para el grafico 2
Ahora buscamos el botón para análisis y ver la parcela botón para
generar la figura que se muestra a continuación
Respuesta a lazo cerrado con compensación
El sistema de circuito cerrado es inestable sin compensación, tenemos que usar nuestro
controlador para estabilizar el sistema y cumplir los requisitos citados:
1.Nuestro primer paso será añadir un integrador para cancelar el cero en el origen
2.Clic derecho sobre el diagrama de Bode que ya está abierto y seleccione agregar Pole/ zero >
Integrador en el menú resultante
En la anterior muestra que en las frecuencias pequeñas el diagrama de fase va a -270 grados
cuando de hecho debería permanecer a -180 grados. Este comportamiento se presenta debido
a errores numéricos asociados con el polo/ cancelación de cero en el origen
para corregir este error salimos de la herramienta de diseño SISO y volver a abrir la
herramienta con el integrador ya se ha agregado a la planta como se muestra a continuación.

Sisotool ( ‘bode’,P_pend * (1/s))

Nos vamos a analizar la respuesta a lazo cerrado de este sistema


desde dentro de la herramienta de diseño SISO
Sin embargo la Función de transferencia en lazo cerrado abierto no
se ha modificado en función de si el controlador está en el camino
hacia adelante, por lo tanto, podemos utilizar las parcelas del
sistema a lazo abierto para el análisis y diseño. El grafico resultante
augura nada que se genera se muestra a continuación y refleja el
comportamiento de baja frecuencia que cabría esperar
Incluso con la adicion de este integrador, el sistema de bucle cerrado
es todavía inestable.
Podemos tratar de entender mejor la inestabilidad (y como resolverlo)
mirando más de cerca el diagrama de Nyquist podemos generar este
grafico seleccionado Open-Loop Nyquist del Análisis de Menú
Como podemos ver este cambio no proporciono fase suficiente. El cerco alrededor de -1 se
sigue hacia la derecha . Vamos a tratar de añadir un segundo cero a -1 de la misma manera
como se ha descrito anteriormente. El Diagrama de Nyquist resultante se muestra en la
figura
Todavía tenemos un cerco hacia la derecha del punto -1 . Sin embargo, si se añade un poco
de ganancia que puede aumentar la magnitud de cada punto del diagrama de Nyquist, lo
que aumenta el radio del circulo a la izquierda de tal manera que rodea el punto -1. Esto
da como resultado = -1 donde es negativo porque el cerco es anti horario. A partir de los
cambios respectivos sale el siguiente diagrama

También podría gustarte