Está en la página 1de 7

1

Diseo e Implementacin de un Sistema robotino mvil


Carro Pndulo a travs de un Controlador Difuso.
RESUMEN

Dennys Tucunango Oviedo, Francisco Gualli Broncano, Mario Villacrs Rodrguez, Pal Becerra Crdova
Docente: Ing. Jorge Luis Paucar.
Escuela Ingeniera Electrnica en Control y Redes Industriales, Escuela Superior Politcnica de Chimborazo
Riobamba Ecuador.
El presente documento describe el diseo e implementacin de
un Controlador Difuso para el control del sistema mvil como
es el Pndulo Carro en el modo pndulo invertido.
El trabajo consiste en un control de posicin ubicado al mismo
tiempo, el pndulo a nivel de posicin en vertical hacia arriba
en paralelo con el chasis del carro. Las seales de posicin son
obtenidas mediante una fila de sensores reflectivos QRD
Pololu y la seal de control a travs del manejo de PWM hacia
un motor DC. El desarrollo del trabajo se logra a manera
investigativa conociendo fsicamente su Planta as como el
entorno de control mediante el Toolbox de MATLAB Fuzzy
en el cual tenemos como variables a controlar la velocidad
angular, el grado de inclinacin del pndulo que puede ser
sentido horario y anti-horario como tambin su fuerza de
torque o giro como variable de salida en conexin a tiempo
real con la planta fsica.
.
Palabras Claves: Fuzzy, Difuso, Pndulo, Motor, Control,
Matlab, Toolbox.

I. INTRODUCCIN:
Cuando un sistema es complejo o menos conocido con
precisin es difcil caracterizar su modelo matemtico de la
planta y tambin el conocimiento adecuado por tcnica de
control convencional para llegar a un mecanismo para la toma
de decisiones. Hay que encontrar formas alternativas de
codificar el conocimiento disponible sobre el sistema, que
puede resultar en el desarrollo de controladores inteligentes.

Mediante dicha tcnica se pretende controlar el sistema carropndulo a travs de la siguiente arquitectura:

Figura 1: Arquitectura Control Difuso.


Un controlador basado en lgica difusa tpico consiste en
cuatro componentes principales: una base de reglas, un
mecanismo de inferencia difuso, una interfaz de Fuzificacin
de las entradas y una interfaz de Defuzificacin de las salidas.

II. MARCO TERICO:


2.1. LGICA DIFUSA.
La lgica difusa se considera como: Forma de expresar el
conocimiento comn, el cual es de tipo lingstico cualitativo,
en un lenguaje matemtico (cuantitativo) regido por la teora
de conjuntos difusos y funciones de pertenencia asociados a
estos. Utiliza expresiones que no son ni totalmente ciertas ni
completamente falsas, es decir aplica conceptos que pueden
tomar un valor cualesquiera de veracidad dentro de un
conjunto de valores que oscilan entre dos extremos, la verdad
absoluta y la falsedad total.
Un sistema de control difuso trabaja de manera muy diferente
a los sistemas de control convencionales. Usan el
conocimiento experto para generar una base de conocimientos

que dar a un sistema la capacidad de tomar decisiones sobre


ciertas acciones que se presentan en su funcionamiento.

son las de entrada para as tener como salida su giro o su


torque fuerza para el desplazamiento del carro.

Las etapas de implementacin del control difuso se indican a


continuacin y se basan en la siguiente regla difusa:
SI proposicin Y proposicin (ANTECEDENTE) entonces
consecuencia (CONSECUENTE)

Fusificacin: Traduccin de variables medibles en


variables difusas.

Mecanismo de inferencia: a partir de las variables


difusas se desprende conclusiones.

Defusificacin: cuando se determina el grado de


pertenencia para los consecuentes en el
procedimiento de inferencia difusa, estas son
traducidas en variables cuantificables, para poder ser
usados en acciones de control.

Figura 2: Controlador Difuso para el pndulo invertido.

Las partes fundamentales en el diseo de un control difuso


son:

Variable Lingstica: Trminos del lenguaje natural.

Valor lingstico: Representa los atributos


(conjuntos difusos) que puede adquirir la variable.

Funciones de Pertenencia: Representa a un


conjunto difuso mediante una funcin caracterstica.

Base de Reglas: Reglas difusas de control.

III. DISEO Y FUNCIONAMIENTO DEL SISTEMA.


El sistema trabaja de tal manera que el pndulo montado en un
carro pueda oscilar libremente en el plano vertical. El carro se
desplaza a lo largo de manera longitudinal impulsado por un
motor de corriente continua controlado mediante la tcnica
PWM a travs de una banda de transmisin nica a cada par
de llantas.

Para balancear y equilibrar el pndulo se empuja el carro de


un lado a otro, la posicin de la barra del pndulo depender
de las diferentes localizaciones de la barra de sensores QRD
de Pololu y dependiendo de su ubicacin depender el
desplazamiento del pndulo que se encuentra empotrado en un
sensor de desplazamiento angular como es el Potencimetro y
as poder aplicar la parte de control difuso dependiendo su
grado de inclinacin (error de posicin) y corregir por medio
de su derivada como es la velocidad angular; dichas variables

Figura 3: Principales posiciones del Pndulo Invertido. A)


Sentido Horario. B) Posicin Central. C) Sentido Anti-horario.

IV.

CONTROLADOR BASADO EN REGLAS.

El algoritmo simboliza las operaciones internas que realiza


todo el controlador:
Si el pndulo est en la vecindad de la posicin
vertical estable dentro de la zona de estabilizacin
entonces se aplica un control lineal. La figura 4
muestra las zonas establecidas para el movimiento
del pndulo.
Si el pndulo se encuentra fuera de la zona de
estabilizacin este debe balancearse hacia arriba
nuevamente.
Si la energa cintica del pndulo menos la energa
perdida debido a las fuerzas de friccin es suficiente
para levantar el centro de gravedad del pndulo hasta
la posicin vertical central.
Si el rango para el centrado del carro es superado
entonces el opuesto a la direccin de la fuerza de
movimiento mxima se aplica al carro.

V-A. Definicin de variables y valores lingsticos


Las variables asignadas para el control de posicin angular del
pndulo carro y su respectivo torque de salida, se indican en
la Tabla 1.
Los valores lingsticos que se han elegido para las variables
de entrada del controlador difuso son seis y tres de salida son
los que se indica en la tabla 2.

Figura 4: Zonas de actividad para el algoritmo de control.

Valor Lingstico
Grande Negativo
Pequeo Negativo
Central Negativo
Central Positivo
Pequeo Positivo
Grande Positivo

V. CONTROLADOR DIFUSO.
El diagrama de bloque mostrado en la figura 5 se utiliza an
en aplicaciones difusas, pero el controlador difuso no es un
controlador PID. Las unidades principales Controlador Difuso
son la unidad de fuzificacin, unidad de razonamiento difuso,
una base de conocimiento y unidad Defuzificacin.

Etiqueta
GN
PN
CN
CP
PP
GP
a)

Valor lingstico
Control Positivo
Control Cero
Control Negativo

Etiqueta
CTRL-POSITIVO
CTRL-ZERO
CTRL-NEGATIVO
b)

Tabla 2: Valores Lingsticos a) Entrada, b) Salida.


V-B. Funciones de pertenencia.

Figura 5: Estructura bsica de un controlador difuso.


La esencia de un controlador difuso es que est basado en un
modelo lingstico (funciones de membresa definidas y base
de reglas) opuesto a un modelo matemtico, como es en el
caso del controlador PID. Controladores difusos son utilizados
para reducir el desarrollo en tiempo o para mejorar el
rendimiento de un controlador PID existente. En el caso de
sistemas altamente complejos, la lgica difusa puede ser la
nica decisin.

Las funciones de pertenencia utilizadas en los conjuntos


difusos del controlador difuso Pndulo - Carro son de tipo
triangular y trapezoidal. Estas funciones de pertenencia son
asignadas a los conjuntos de entrada y salida en este
controlador Figura 6 y Figura 7.

Se realiza un controlador difuso PD para el error en la


posicin del pndulo y su respectiva deriva (velocidad
angular) y su respectiva salida de control que vendra a ser la
fuerza, giro o torque.
Tipo
Entrad
a
Entrad
a
Salida

Controlador Difuso PD Pndulo - Carro


Variable
Etiqueta
Error posicin angular del
ERRORpndulo.
POSICION
Velocidad Angular Pndulo.
VELOCIDADANGULAR
Control Giro o fuerza.
CTRL-FUERZAGIRO

Tabla 1: Variables Controlador Difuso Pndulo Carro.

Figura 6: Principales funciones de membresa de la lgica


difusa.

ToolBox Fuzzy MATLAB.

a)

Figura 8: Toolbox Fuzzy del MATLAB.


b)

Desarrollo de la Planta del Controlador Difuso.

c)
Figura 7: Funciones de Pertenencia. A) Entrada ERROR DE
POSICION. B) Entrada VELOCIDAD ANGULAR. C) Salida
CONTROL FUERZA GIRO.
VI. MATERIALES Y EQUIPOS:

(1) Potencimetro.
(2) Bandas de Goma.
(2) MOTOR DC PEQUEO
(1)Barra de Sensores QRD, Pololu.
(1) Arduino.

VII. RESULTADOS.

Figura 9: Planta Controlador Difuso en MATLAB.

Funciones de Pertenencia.

Figura 10: Funciones de pertenencia en MATLAB. A)


Entrada ERROR DE POSICION. B) Entrada VELOCIDAD
ANGULAR. C) Salida CONTROL FUERZA GIRO.

Base de la Reglas.

1 If (ERROR-POSICION-GRADOS is ENG) and


(VELOCIDAD-ANGULAR is VNG) then (CTRL-GIROFUERZA is CTRL-POSITIVO) (1)
2 If (ERROR-POSICION-GRADOS is ENG) and
(VELOCIDAD-ANGULAR is VNP) then (CTRL-GIROFUERZA is CTRL-POSITIVO) (1)

a)

3 If (ERROR-POSICION-GRADOS is ENG) and


(VELOCIDAD-ANGULAR is VCN) then (CTRL-GIROFUERZA is CTRL-POSITIVO) (1)
4. If (ERROR-POSICION-GRADOS is ENG) and
(VELOCIDAD-ANGULAR is VPP) then (CTRL-GIROFUERZA is CTRL-POSITIVO) (1)
5. If (ERROR-POSICION-GRADOS is ENP) and
(VELOCIDAD-ANGULAR is VNG) then (CTRL-GIROFUERZA is CTRL-POSITIVO) (1)
6. If (ERROR-POSICION-GRADOS is ENP) and
(VELOCIDAD-ANGULAR is VNP) then (CTRL-GIROFUERZA is CTRL-POSITIVO) (1)
7. If (ERROR-POSICION-GRADOS is ENP) and
(VELOCIDAD-ANGULAR is VCN) then (CTRL-GIROFUERZA is CTRL-POSITIVO) (1)

b)

8. If (ERROR-POSICION-GRADOS is CN) and


(VELOCIDAD-ANGULAR is VNG) then (CTRL-GIROFUERZA is CTRL-POSITIVO) (1)
9. If (ERROR-POSICION-GRADOS is CN) and
(VELOCIDAD-ANGULAR is VNP) then (CTRL-GIROFUERZA is CTRL-POSITIVO) (1)
10. If (ERROR-POSICION-GRADOS is CN) and
(VELOCIDAD-ANGULAR is VCN) then (CTRL-GIROFUERZA is CTRL-POSITIVO) (1)
11. If (ERROR-POSICION-GRADOS is ENP) and
(VELOCIDAD-ANGULAR is VCP) then (CTRL-GIROFUERZA is CTRL-POSITIVO) (1)
12. If (ERROR-POSICION-GRADOS is CP) and
(VELOCIDAD-ANGULAR is VNP) then (CTRL-GIROFUERZA is CTRL-POSITIVO) (1)

c)

13. If (ERROR-POSICION-GRADOS is CP) and


(VELOCIDAD-ANGULAR is VNG) then (CTRL-GIROFUERZA is CTRL-POSITIVO) (1)

27. If (ERROR-POSICION-GRADOS is CP) and


(VELOCIDAD-ANGULAR is VCP) then (CTRL-GIROFUERZA is CTRL-NEGATIVO) (1)

14. If (ERROR-POSICION-GRADOS is EPP) and


(VELOCIDAD-ANGULAR is VNG) then (CTRL-GIROFUERZA is CTRL-POSITIVO) (1)

28. If (ERROR-POSICION-GRADOS is EPG) and


(VELOCIDAD-ANGULAR is VCP) then (CTRL-GIROFUERZA is CTRL-NEGATIVO) (1)

15. If (ERROR-POSICION-GRADOS is ENG) and


(VELOCIDAD-ANGULAR is VPG) then (CTRL-GIROFUERZA is CTRL-ZERO) (1)

29. If (ERROR-POSICION-GRADOS is CP) and


(VELOCIDAD-ANGULAR is VPG) then (CTRL-GIROFUERZA is CTRL-NEGATIVO) (1)

16. If (ERROR-POSICION-GRADOS is ENP) and


(VELOCIDAD-ANGULAR is VPP) then (CTRL-GIROFUERZA is CTRL-ZERO) (1)

30. If (ERROR-POSICION-GRADOS is EPP) and


(VELOCIDAD-ANGULAR is VPG) then (CTRL-GIROFUERZA is CTRL-NEGATIVO) (1)

17. If (ERROR-POSICION-GRADOS is CN) and


(VELOCIDAD-ANGULAR is VCP) then (CTRL-GIROFUERZA is CTRL-ZERO) (1)

31. If (ERROR-POSICION-GRADOS is EPG) and


(VELOCIDAD-ANGULAR is VPG) then (CTRL-GIROFUERZA is CTRL-NEGATIVO) (1)

18. If (ERROR-POSICION-GRADOS is CP) and


(VELOCIDAD-ANGULAR is VCN) then (CTRL-GIROFUERZA is CTRL-ZERO) (1)

32. If (ERROR-POSICION-GRADOS is CP) and


(VELOCIDAD-ANGULAR is VPP) then (CTRL-GIROFUERZA is CTRL-NEGATIVO) (1)

19. If (ERROR-POSICION-GRADOS is EPP) and


(VELOCIDAD-ANGULAR is VNP) then (CTRL-GIROFUERZA is CTRL-ZERO) (1)

33. If (ERROR-POSICION-GRADOS is EPP) and


(VELOCIDAD-ANGULAR is VPP) then (CTRL-GIROFUERZA is CTRL-NEGATIVO) (1)

20. If (ERROR-POSICION-GRADOS is EPG) and


(VELOCIDAD-ANGULAR is VNG) then (CTRL-GIROFUERZA is CTRL-ZERO) (1)

34. If (ERROR-POSICION-GRADOS is EPG) and


(VELOCIDAD-ANGULAR is VPP) then (CTRL-GIROFUERZA is CTRL-NEGATIVO) (1)

21. If (ERROR-POSICION-GRADOS is ENG) and


(VELOCIDAD-ANGULAR is VPP) then (CTRL-GIROFUERZA is CTRL-NEGATIVO) (1)

35. If (ERROR-POSICION-GRADOS is EPP) and


(VELOCIDAD-ANGULAR is VCP) then (CTRL-GIROFUERZA is CTRL-NEGATIVO) (1)

22. If (ERROR-POSICION-GRADOS is ENP) and


(VELOCIDAD-ANGULAR is VNG) then (CTRL-GIROFUERZA is CTRL-NEGATIVO) (1)

36. If (ERROR-POSICION-GRADOS is EPG) and


(VELOCIDAD-ANGULAR is VCP) then (CTRL-GIROFUERZA is CTRL-NEGATIVO) (1)

23. If (ERROR-POSICION-GRADOS is CN) and


(VELOCIDAD-ANGULAR is VPP) then (CTRL-GIROFUERZA is CTRL-NEGATIVO) (1)
24. If (ERROR-POSICION-GRADOS is EPP) and
(VELOCIDAD-ANGULAR is VCN) then (CTRL-GIROFUERZA is CTRL-NEGATIVO) (1)
25. If (ERROR-POSICION-GRADOS is EPG) and
(VELOCIDAD-ANGULAR is VNP) then (CTRL-GIROFUERZA is CTRL-NEGATIVO) (1)
26. If (ERROR-POSICION-GRADOS is CN) and
(VELOCIDAD-ANGULAR is VPG) then (CTRL-GIROFUERZA is CTRL-NEGATIVO) (1)
Figura 11: Base de Reglas en MATLAB.

c)

Etapa Defuzificacin.

Figura 12: Etapa de Defuzificacin.


VIII. CONCLUSIONES:

La identificacin y cuantificacin de las reglas


difusas que tienen correspondencia con la dinmica
de la planta ha sido esencial en la generacin de un
algoritmo de control apropiado.

La eleccin apropiada de las variables y valores


lingsticos asi como las funciones de pertenencia
han sido pilares fundamentales en el desempeo del
mismo.

La conexin en tiempo real entre el computador y el


sistema carro pndulo es fundamental puesto que
en las acciones de control que demandan sus
componentes no debe haber retardos de tiempo.

Se ha logrado con xito el control del sistema carro


pndulo en modo de pndulo invertido mediante su
controlador difuso proporcional derivativo y su
implementacin en el ToolboX de MATLAB.

Se analiz el funcionamiento en detalle del sistema


carro pndulo ya que no se dispona de suficiente
informacin del mismo.

La interfaz realizada en MATLAB permite al usuario,


mantener una interaccin amigable y a la vez
funcional de todo el comportamiento del sistema
tanto en simulacin como experimentacin.

a)

IX. REFERENCIAS:
b)

[1] http://repositorio.espe.edu.ec/bitstream/21000/5826/1/ACAUTM-ESPE-033913.pdf
[2] Sistema de Control Automtico, Sexta edicin, Benjamn
C Kuo, Prentice Hall, Mxico, 1996.
[3]
http://repositorio.espe.edu.ec/bitstream/21000/5730/1/TESPE-033913.pdf
[4]
http://es.slideshare.net/mariomgck/control-pid?qid=63a8f46d61f2-4dd9-98b2-5db660364916&v=qf1&b=&from_search=2
[[5]
http://eprints.ucm.es/16096/1/memoriaPFC.pdf