Está en la página 1de 10

Simulación de un controlador difuso del péndulo invertido

Emilio Roberto Terán Martínez

Asignatura: Control inteligente

1330115@upv.edu.mx

Resumen En este documento se presentan los diversos procesos para la realización de la simulación de un
controlador difuso de péndulo invertido donde primeramente se analizó de manera teórica las entradas y salidas,
variables lingüistas, base de reglas, diagrama a bloques, para posteriormente con ayuda de MATLAB vaciar
nuestros resultados y establecer las funciones de membresía con la función fuzzy para generar un modelo donde se
pudo observar la respuesta del sistema para diversas entradas.

Desarrollo
El problema que se planteó fue el de cómo lograr el control de un péndulo invertido para
el cual determinamos las variables de entrada y de salida.

Figura 1: Péndulo invertido


Se establecieron las siguientes variables:
Entradas Salida
Error e(t) Fuerza u(t)
Cambio en el error 𝑒̇ (t)

1
Primeramente se establecieron los valores lingüísticos para la variable del error, como se
muestra en la siguiente imagen, donde el eje de las abscisas corresponde al ángulo θ pero en
términos de π.

Figura 2: Variable lingüística del error

Ahora se establecieron los valores lingüísticos para la entrada del cambio en el error, como
se muestra en la siguiente imagen, donde el eje de las abscisas corresponde al ángulo θ pero en
términos de π, se puede observar solamente el ángulo θ se toma hasta 45◦ que sería el ángulo
máximo a estabilizar.

Figura 3: Variable lingüística del cambio en el error


De manera similar se obtuvieron los valores lingüísticos para la salida de la fuerza, como
se muestra en la siguiente imagen, como se puede observar en el eje de las abscisas corresponde
a una fuerza en Newton, de -20 a 20 N.

Figura 4: Variable lingüística de la fuerza

2
Para nuestro modelo las variables lingüísticas Ahora la simbología de los valores lingüísticos
tiene el mismo nombre en cada variable. para cada una de las variables son las
siguientes.

Muy Negativo MN

Poco Negativo PN

Cero ZR

Poco Positivo PP

Muy Positivo MP

Como siguiente paso se establecieron los diagramas del péndulo para entender cómo
funciona respectivamente cada variable para establecer la base de reglas.
Cuando el error es:

MN PN ZR PP MP
Figura 5: Diagramas del error
Cuando el cambio en el error es:

MN PN ZR PP MP
Figura 6: Diagramas del cambio en el error
Cuando la fuerza es:

MN PN ZR PP MP
Figura 7: Diagramas de la fuerza

3
Debido a que se tuvieron 5 variables lingüísticas en el error, 5 en el cambio del error y 5
en la salida de la fuerza se logró generar un total de 25 reglas.
Explicando la primera regla donde se tiene un valor lingüístico de error en MN y un cambio
en el error en MN se da que como valor lingüístico a la salida para la fuerza también en MN, ya
que el error y el cambio fueron muy negativos se necesita de una fuerza muy grande para poder
estabilizar el péndulo.
Analizando la regla 9 cuando se tiene un valor lingüístico de error en PN y un cambio en
el error en PP se da que como valor lingüístico a la salida para la fuerza en ZR, ya que el error y
el cambio fueron contrarios estos se anulan generando una fuerza cero para poder estabilizar el
péndulo.
Verificando la regla 23 cuando se tiene un valor lingüístico de error en MP y un cambio en
el error en ZR se da que como valor lingüístico a la salida para la fuerza en MP, ya que el error fue
muy positivo y el cambio fue nulo entonces se necesita generar una fuerza muy positiva para poder
estabilizar el péndulo.
Las 25 reglas obtenidas son las siguientes:
1. IF error es MN AND cambio en el error es MN THEN fuerza es MN.
2. IF error es MN AND cambio en el error es PN THEN fuerza es MN.
3. IF error es MN AND cambio en el error es ZR THEN fuerza es MN.
4. IF error es MN AND cambio en el error es PP THEN fuerza es PN.
5. IF error es MN AND cambio en el error es MP THEN fuerza es ZR.
6. IF error es PN AND cambio en el error es MN THEN fuerza es MN.
7. IF error es PN AND cambio en el error es PN THEN fuerza es PN.
8. IF error es PN AND cambio en el error es ZR THEN fuerza es PN.
9. IF error es PN AND cambio en el error es PP THEN fuerza es ZR.
10. IF error es PN AND cambio en el error es MP THEN fuerza es PP.
11. IF error es ZR AND cambio en el error es MN THEN fuerza es MN.
12. IF error es ZR AND cambio en el error es PN THEN fuerza es PN.
13. IF error es ZR AND cambio en el error es ZR THEN fuerza es ZR.
14. IF error es ZR AND cambio en el error es PP THEN fuerza es PP.
15. IF error es ZR AND cambio en el error es MP THEN fuerza es MP.
16. IF error es PP AND cambio en el error es MN THEN fuerza es PN.
17. IF error es PP AND cambio en el error es PN THEN fuerza es ZR.
18. IF error es PP AND cambio en el error es ZR THEN fuerza es PP.
19. IF error es PP AND cambio en el error es PP THEN fuerza es MP.
20. IF error es PP AND cambio en el error es MP THEN fuerza es MP.
21. IF error es MP AND cambio en el error es MN THEN fuerza es ZR.
22. IF error es MP AND cambio en el error es PN THEN fuerza es PP.
23. IF error es MP AND cambio en el error es ZR THEN fuerza es MP.
24. IF error es MP AND cambio en el error es PP THEN fuerza es MP.
25. IF error es MP AND cambio en el error es MP THEN fuerza es MP.

4
Ahora por medio del paquete de fuzzy que nos proporciona MATLAB se accedió para crear
un sistema difuso.

Figura 8: Diseño del sistema difuso


En donde predeterminadamente tenemos el sistema difuso mamdani que es el más común
y el que se utilizará, en este entorno también se procedió a agregar en la entrada otra variable para
que coincida con nuestro sistema.

Figura 9: Añadir nueva variable de entrada

5
Como paso siguiente se nombraron cada entrada y salida y se agregaron las funciones de
membresía para cada variable así como su respectivo nombre y simbología, además del rango en
el eje de las abscisas.

Figura 10: Asignación de nombre y rango a cada variable y función


Una vez realizado el paso anterior y como recientemente se había realizado la base de
reglas, se selecciona nuestro sistema difuso y se continúa con la asignación de cada una de las 25
reglas que se calcularon de manera teórica, cuando se ha vaciado por completo las reglas
exportamos a un archivo .fis para de esta manera guardarlo ya que posteriormente se utilizara en
SIMULINK.

6
Figura 11: Base de reglas
De manera analítica una vez que se tiene el modelo matemático del péndulo invertido se crea por
medio de SIMULINK el diagrama a bloques necesario para este sistema

Figura 12: Modelo matemático del péndulo invertido


Como siguiente paso se realiza el diagrama a bloques en SIMULINK tomando como referencia el
modelo anterior

.
Figura 13: Diagrama a bloques del modelo matemático

7
Sobre este diagrama se crea un subsistema para realizar el diagrama de bloques del sistema
difuso del péndulo invertido, donde además del modelo matemático, se incluye la lógica difusa
por medio del bloque de controlador de lógica difusa donde se cargara el archivo .fis que
realizamos anteriormente

Figura 14: Diagrama a bloques del modelo matemático

Una vez finalizado el diagrama se continuó con la modificación de la ganancia H para


poder observar las diferentes respuestas del sistema que se muestran en los resultados.

Figura 15: Diagrama a bloques del sistema difuso del péndulo invertido

8
Resultados
Lo que se realizó finalmente fue la variación de la ganancia H para observar algunas
respuestas del sistema, como se pudo observar al establecer una ganancia igual a uno observamos
que el sistema tiene una respuesta buena pero no la mejor donde el tiempo de asentamiento es
aproximadamente igual a 50 segundos, al cambiar la ganancia a 3 la respuesta mejoro y por ultimo
al cambiarla a 7 no se obtuvo una respuesta favorable.

Figura 16: Gráfica H=1

Figura 17: Gráfica H=3

Figura 18: Gráfica H=7

9
Conclusión

Finalmente se puede concluir de manera satisfactoria ya que se puedo concretar la práctica


para la realización de un control difuso del péndulo invertido, se adquirieron los conocimientos
necesarios para analizar un sistema de manera difusa estableciendo primeramente las entradas y
salidas, variables lingüísticas, base de reglas, diagrama a bloques entre otras cosas. Por otro lado
la utilización de MATLAB y SIMULINK fue de gran ayuda para adquirir estos conocimientos y
comprender como funcionan los sistemas difusos.
También se comprendió como es que al variar las ganancias podemos obtener diferentes
respuestas ya que como se observó en la primera grafica (ver Figura 16) se tenía una respuesta
lenta, al incrementar la ganancia se mejoró aún más la respuesta con un tiempo de asentamiento
de aproximadamente 15 segundos (ver Figura 17), sin embargo al aumentar más la ganancia
nuestro sistema presentó diversas oscilaciones y no se estabilizó (ver Figura 18).

10

También podría gustarte