pro yec to robot lab erin to

97
1 MEMORÍA DE ESTADÍA PROFESIONAL DISEÑO E IMPLEMENTACIÓN DE UN CONTROLADOR DIFUSO EN UN dsPIC30F4011 PARA UNA HÉLICE DE PASO VARIABLE PRESENTA: LUIS ALBERTO SALAZAR HERNÁNDEZ PARA OBTENER EL TÍTULO DE: INGENIERO EN MECATRÓNICA ASESORES: DR. NAZARIO BAUTISTA ELIVAR DR. W. FERMÍN QUERRERO SÁNCHEZ ENERO 2012

Upload: gabby-verdezoto

Post on 23-Oct-2015

51 views

Category:

Documents


1 download

TRANSCRIPT

1

MEMORÍA DE ESTADÍA PROFESIONAL

DISEÑO E IMPLEMENTACIÓN DE UN CONTROLADOR DIFUSO EN

UN dsPIC30F4011 PARA UNA HÉLICE DE PASO VARIABLE

PRESENTA:

LUIS ALBERTO SALAZAR HERNÁNDEZ

PARA OBTENER EL TÍTULO DE:

INGENIERO EN MECATRÓNICA

ASESORES:

DR. NAZARIO BAUTISTA ELIVAR

DR. W. FERMÍN QUERRERO SÁNCHEZ

ENERO 2012

2

3

Resumen

El presente trabajo de estadía, cuya realización se llevo a cabo en el Laboratorio de

Investigación de Sistemas Dinámicos Controlables en la Facultad de Ciencias Físico Matemáticas

de la Benemérita Universidad Autónoma de Puebla contiene una introducción a la lógica difusa

y al tipo de hélices utilizadas en aeronáutica. Se realiza el diseño de un controlador difuso tipo

Mamdani para obtener el ángulo de ataque deseado de una hélice de paso variable

dependiente de la altura y la presión del aire sobre una aeronave. Se realiza la simulación del

controlador difuso en el software de LabVIEW y MATLAB para construir una tabla comparativa

con los resultados obtenidos experimentalmente y para monitorear el comportamiento real del

sistema, para las pruebas de laboratorio se utilizaron potenciómetros lineales de 1KΩ como

entradas. Se construyó un pequeño prototipo de un mecanismo piñón-cremallera para efectuar

el cambio de paso de la hélice. Se desarrolló y programó un algoritmo de control con ayuda del

compilador PIC C de CCS para su implementación en un dsPIC30F4011. Como un trabajo a

futuro, se implementará el controlador diseñado, sobre un planeador eléctrico, teniendo como

referencia un sensor de presión absoluta MPXA6115A de Freescale Semiconductor que permite

el cálculo de altura y un sensor de presión diferencial MPX5010 de Freescale Semiconductor

para el cálculo de presión del aire sobre el planeador.

4

Contenido

Índice de Contenido .................................................................................................................. IV

Índice de figuras ........................................................................................................................ VI

Índice de tablas ....................................................................................................................... VIII

Introducción .............................................................................................................................. VI

Estado del arte ......................................................................................................................... VII

1. Antecedentes y definiciones básicas

1.1. Introducción a la lógica difusa .........................................................................................

1.1.1. Fundamentos de los sistemas difusos ....................................................................

1.2. Sistema Propulsor ............................................................................................................

1.2.1. Conocimientos fundamentales...............................................................................

1.2.2. Hélice de paso fijo ..................................................................................................

1.2.3. Hélice de paso variable ..........................................................................................

2. Prototipo 2.1. Sistema electrónico ......................................................................................................... 2.2. Sistema mecánico ............................................................................................................ 2.3. Conjunción y prueba del prototipo ..................................................................................

3. Diseño e implementación del controlador difuso

3.1. Parámetros del controlador ............................................................................................

3.1.1. Conjuntos difusos y funciones de pertenencia .......................................................

3.1.2. Variables lingüísticas ..............................................................................................

3.1.3. Reglas difusas ........................................................................................................

3.2. Simulación del controlador en LabVIEW ..........................................................................

3.3. Simulación del controlador en MATLAB ...........................................................................

3.4. Implementación del controlador difuso ...........................................................................

5

3.4.1. Antecedentes MCU, DSP y DSC ..............................................................................

3.4.2. Microcontrolador dsPIC30F4011 ............................................................................

3.4.3. Implementación en el microcontrolador dsPIC30F4011 .........................................

4. Resultados

4.1. Resultados ........................................................................................................................

5. Conclusiones y trabajo futuro

5.1 Conclusiones .....................................................................................................................

5.2 Trabajo futuro ...................................................................................................................

Bibliografía

A. Códigos de Programación

A.1. Código de MATLAB ...........................................................................................................

A.2. Código del dsPIC30F4011 .................................................................................................

6

Índice de figuras

FIGURA 1.1

.

.

.

7

8

Índice de tablas

7ABLA 1.1

.

.

.

9

Introducción

La lógica difusa es utilizada cuando la complejidad del proceso en cuestión es muy alta

y no existen modelos matemáticos precisos, para procesos altamente no lineales y cuando se

envuelven definiciones y conocimiento no estrictamente definido (impreciso o subjetivo). Esta

técnica se ha empleado con bastante éxito en la industria, principalmente en Japón, y cada vez

se está usando en gran multitud de campos. La primera vez que se usó de forma importante fue

en el metro japonés, con excelentes resultados.

Los sistemas difusos han sido utilizados en una gran variedad de aplicaciones en

ingeniería, ciencia, negocios, medicina, psicología, entre otros campos. En ingeniería, algunas

aéreas de aplicaciones potenciales incluye [1]:

Aviación: Control de vuelo, control de motor, sistemas aviónicos, diagnostico de fallas,

navegación.

Sistemas Automatizados de autopistas: Manejo automático, frenado, control de

aceleración de vehículos.

Automóviles: Frenos, transmisión, suspensión y control de motor.

Vehículos autónomos: Tierra y bajo agua.

Control de procesos: Temperatura, presión, control de nivel, diagnostico de fallas.

Robótica: Control de Posición y planeación de trayectorias.

En el Laboratorio de Investigación de Sistemas Dinámicos Controlables en la Facultad

de Ciencias Físico Matemáticas (FCFM) de la Benemérita Universidad Autónoma de Puebla

(BUAP) se tiene una hélice de paso variable de 30 cm de diámetro. Se requiere que se diseñe e

implemente un controlador difuso para mantener el correcto ángulo de ataque realizando

pruebas en un prototipo.

10

Las entradas al sistema serán propuestas en el presente trabajo como dos

potenciómetros lineales que simulan dos sensores para su futura implementación, debido a que

por el momento se sigue evaluando el tipo de sensores a utilizar para el sistema final en una

aeronave no tripulada (UAV), aunque se conoce que las entradas físicas al sistema deben ser la

altura de la aeronave y la presión del aire. Las dos entradas analógicas provenientes de los

potenciómetros toman valores entre 0 volts y 5 volts.

La elaboración del prototipo es para realizar pruebas experimentales del controlador

difuso en el laboratorio una vez diseñado e implementado en un dsPIC30F4011. Se requiere de

un seguimiento en el diseño mecánico donde se consideren todos los aspectos necesarios como

peso, material, costo, entre otros para poder implementar un sistema integro ya que el

principal tema de este trabajo es el diseño e implementación del controlador difuso.

Planteamiento del Problema

Se requiere un controlador difuso para una hélice de paso variable. Se cuenta con

elementos físicos como motores brushless y servomotores los cuales son necesarios acoplar en

un mecanismo para obtener el ángulo deseado. El prototipo se necesita para realizar pruebas

experimentales del controlador difuso.

Objetivo general

Diseñar e implementar un controlador difuso sobre una hélice de paso variable para

obtener el ángulo de ataque deseado en el despegue o aterrizaje de una aeronave, así como el

ángulo al alcanzar una determinada altura sobre la superficie y una velocidad de vuelo lineal.

Objetivos particulares

Construir un prototipo que produzca un movimiento lineal para el cambio de paso de la

hélice por la mecánica de la misma.

Elaborar el algoritmo del controlador difuso en lenguaje C para su implementación en

un dsPIC30F4011.

Simular el controlador difuso en el Toolkit “Fuzzy System Designer” de LabVIEW para la

comprobación del algoritmo desarrollado en lenguaje C.

Simular el controlador difuso en MATLAB para la comprobación del algoritmo

desarrollado en lenguaje C.

Simular el controlador difuso en el Fuzzy Logic Toolbox de MATLAB para la

comprobación del algoritmo desarrollado en lenguaje C.

Implementar el controlador difuso en un dsPIC30F4011.

11

Organización del trabajo

El presente trabajo se encuentra distribuido en 5 capítulos y 1 apéndice. En el Capitulo

1, se da una introducción al tema de lógica difusa y al tipo de hélices que son utilizadas en una

aeronave. En el capítulo 2, se presenta la construcción del prototipo para probar en controlador

difuso, así como el equipamiento de la electrónica. En el capítulo 3, se muestra el diseño,

simulación en LabVIEW y MATLAB del controlador, así como la implementación en un

dsPIC30F4011 mediante un algoritmo programado en lenguaje C. En el capítulo 4, se muestran

los resultados obtenidos en el trabajo desarrollado y finalmente en el capítulo 5, se dan a

conocer las conclusiones del trabajo realizado así como el trabajo a futuro del tema. En el

apéndice A, se muestran los códigos de programación del controlador difuso tanto en MATLAB,

como el de lenguaje C para el dsPIC30F4011.

12

Estado del arte

Lotfi A. Zadeh es considerado el padre de la lógica difusa, aceptándose como fecha de

su nacimiento 1965, el año de la publicación de su artículo Fuzzy Sets en la revista Information

and Control. Este artículo fue el resultado de una idea, mencionada por el profesor Zadeh en

1962, sobre la necesitad de crear un nuevo tipo de matemáticas, unas matemáticas que

permitieran expresar el conocimiento humano en términos distintos a las distribuciones de

probabilidad. Desde los inicios de la lógica difusa no sólo se han producido una gran cantidad de

trabajos teóricos y aplicados, sino que han visto la luz multitud de productos comerciales

basados en dicha teoría, originando lo que ha dado en llamarse tecnología fuzzy [2,4]. Durante la primera década de vida de la lógica difusa los nacientes grupos de

investigación fueron incorporando al campo difuso las estructuras matemáticas típicas:

relaciones, funciones, grafos, grupos, autómatas, gramáticas, lenguajes, algoritmos y

programas. Así, R. E. Bellman y Zadeh trabajaron en sistemas de toma de decisión en entornos

difusos. G. Lakoff estudió el problema desde un punto de vista lingüístico. J. A. Goguen investigó

sobre metodologías para la caracterización de estructuras matemáticas difusas, R. E. Smith y M.

Sugeno trabajaron en medidas difusas, J. C. Dunn y J. C. Bezdeck en clustering difuso, C. V.

Negoita en la recuperación de información difusa y H. J. Zimmermann estudió la optimización

difusa.

En 1974, S. Assilian y E. H. Mamdani, del Queen Mary College de Londres,

establecieron el primer hito en cuanto a aplicación industrial del control difuso. Mediante un

sistema basado en reglas lingüísticas consiguieron controlar un generador de vapor que no

habían sido capaces de mantener bajo control mediante técnicas convencionales. Esta

realización práctica fue uno de los frutos de la Tesis Doctoral de S. Assilian. Posteriormente, en

1976, las compañías Blue Circle Cement y SIRA desarrollaron en Dinamarca un controlador para

un horno de cemento, el cual incorporaba el conocimiento de operadores experimentados para

su funcionamiento. De esta forma, la lógica difusa comenzó poco a poco a adentrarse en los

ámbitos industriales. En 1977, Mamdani y King publican The application of fuzzy control

13

systems to industrial processes, en el que describen cómo emplear la lógica difusa como

método de control para sistemas industriales complejos.

A partir de los años 80 son las empresas japonesas las que comienzan a destacar en la

utilización de la lógica difusa. Así, Fuji Electric desarrolló una planta de tratamiento de aguas

que empleaba un sistema de control difuso, lo que les permitió adquirir los conocimientos

necesarios para así desarrollar el primer controlador difuso de propósito general FRUITAX

(Fuzzy RUle Information processing Tool of Advanced control), lanzado al mercado en 1985, y

que estaba constituido básicamente por un procesador de 16 bits junto con un sistema de

inferencia difusa basado en FORTRAN. Al año siguiente se produjo otro de los hitos más

importantes en la historia de la lógica difusa, nació el primer chip VLSI para la realización de

inferencias difusas desarrollado por M. Togai y H. Watanabe. Los chips VLSI incrementaron en

gran medida las posibilidades de elección de sistemas basados en reglas para aplicaciones de

tiempo real.

En 1987, Seiji Yasunobu y sus colaboradores de la empresa Hitachi pusieron a punto el

sistema de control del metro de la ciudad de Senday. El enorme éxito que tuvieron estos

proyectos provocó en Japón una auténtica revolución de las aplicaciones basadas en la lógica

difusa, favoreciendo que en 1988 el gobierno japonés pusiese en marcha un estudio minucioso

sobre el establecimiento de proyectos de lógica difusa entre las Universidades y la industria.

Fruto de este estudio se implantaron dos programas de investigación a nivel nacional sobre

lógica difusa, uno de ellos liderado por el MITI (Ministry of International Trade and Industry), y

el otro por la STA (Science and Technology Agency). A través del programa dependiente del

MITI se creó el consorcio denominado LIFE (Laboratory for International Fuzzy Engineering

research), el cual agrupaba a más de 50 compañías y poseía un presupuesto de 5.000 millones

de yenes (unos 50 millones de dólares) para seis años.

El éxito de la lógica difusa no sólo se ha demostrado a niveles industriales, sino

también a nivel del mercado de consumo. En 1987, Matsushita Electric Industrial Co. (conocida

fuera de Japón como Panasonic) fue la primera empresa en emplear la lógica difusa a un

producto de consumo, concretamente en un sistema de ducha que controlaba la temperatura

del agua. Esta misma compañía lanzó en 1990 una lavadora automática basada en lógica difusa.

A partir de entonces, una gran cantidad de compañías japonesas se apresuraron a lanzar

productos que utilizaban de una u otra forma la lógica difusa: hornos, cocinas, refrigeradores,

etc.

Actualmente son muchos los aparatos de consumo que incluyen algún tipo de

controlador difuso. Por ejemplo, tanto las cámaras fotográficas como las de vídeo suelen

emplear un controlador difuso para realizar el enfoque automático o el ajuste del tiempo de

exposición [3].En las cocinas de las casas también está presente la lógica difusa, ya que muchos

14

electrodomésticos la emplean en sus sistemas de control para ahorrar energía o agua,

mejorando considerablemente su eficiencia.

La industria del automóvil es otro de los sectores donde se ha aplicado la lógica difusa

con mucho éxito. Se han aplicado controladores difusos en sistemas de suspensión activa, en

sistemas de frenado y en el control electrónico de motores. Con la acuciante necesidad de

eliminar la dependencia del petróleo, casi todos los fabricantes tienen abiertas líneas de

investigación sobre vehículos híbridos. En este campo tan tremendamente complejo también

está triunfando la lógica difusa como un excelente método de control, y son muy numerosos los

avances que se están consiguiendo gracias al control difuso [2,4].

15

Capítulo 1

Preliminares y definiciones básicas

El objetivo fundamental que persigue este capítulo, es describir los conceptos que

permitan comprender y diseñar sistemas que, en alguna fase de su implementación, usen

términos relativos a la interpretación del conocimiento basado en la teoría de la lógica difusa,

así como conocer los diferentes tipos de hélices utilizadas en aviación.

1.1. Introducción a la lógica difusa

En 1965, el profesor de teoría de sistemas de la Universidad de California (Berkeley),

Lotfi A. Zadeh publicó su famoso artículo Fuzzy Sets. En este trabajo presentó a la comunidad

científica internacional la idea de conjunto difuso, y por extensión, de lo que se conocería como

lógica difusa. Desde entonces, el término lógica difusa, o fuzzy logic, ha sido empleado desde

dos puntos de vista diferentes: por un lado, la forma estricta del término hace referencia a un

sistema lógico que generaliza la lógica digital clásica para admitir el razonamiento impreciso o

bajo incertidumbre; por el otro, en un sentido más amplio y muy comúnmente utilizado, la

lógica difusa engloba todas las teorías y tecnologías que emplean conjuntos difusos. En

cualquier caso, la lógica difusa ha conseguido en menos de medio siglo revolucionar la

tecnología e impulsar la inteligencia artificial mediante la conjunción de los fundamentos

matemáticos, la lógica y el razonamiento [2].

La lógica difusa es una lógica multivaluada que permite valores intermedios para poder

definir evaluaciones convencionales. De esta forma, no se determina si un elemento pertenece

o no a un conjunto, sino la calidad de la pertenencia evaluada en un rango completo desde la

no pertenencia hasta la pertenencia con la máxima calidad posible. Esta característica permite

el análisis del razonamiento aproximado, mucho menos estricto que la lógica bivaluada

tradicional.

16

Tomando como base la imprecisión del razonamiento humano, pero bajo un

planteamiento matemático, la lógica difusa es capaz de generar la respuesta a una situación

basándose en el conocimiento adquirido sobre ésta, que podrá ser inexacto e incompleto. Por

ejemplo, mediante la lógica clásica se puede definir un conjunto de personas altas, pero esto

obliga a establecer una frontera clara que separe este subconjunto del resto de elementos,

como una altura de 1,80 m. Este razonamiento clásico dejaría a las personas de 1, 79 m de

estatura fuera del conjunto de personas altas. Es evidente que este razonamiento tan estricto

de la lógica clásica choca frontalmente con el razonamiento humano, mucho más vago e

impreciso.

La lógica difusa permite establecer límites suaves (o difusos) para los conjuntos,

haciendo que no todo tenga que ser blanco o negro, sino que es posible la existencia de niveles

de grises. Siguiendo con el ejemplo pero desde el punto de vista difuso, se podría decir que una

persona que mida 1,90 m está claro que es alta, o la calidad de su pertenencia al conjunto de

personas altas es 1. Una que mida 1,50 m está claro que no lo es, es decir, tiene un grado de

pertenencia 0 a dicho conjunto. Con las alturas intermedias se podría decir que la calidad de su

pertenencia al conjunto variaría entre 0 y 1, siendo mayor el grado de pertenencia cuanto más

alta sea la persona a clasificar, por ejemplo 0,25 para las personas de 1,60 m y 0,75 para las de

1,80 m. Así, una persona de 1,79 m no estaría excluida del conjunto de personas altas, aunque

la calidad de su pertenencia a dicho conjunto sería menor que la de otra persona de mayor

estatura.

Desde sus inicios la lógica difusa ha tenido que enfrentarse con constantes ataques por

parte de sus detractores, y su nacimiento no fue todo lo prometedor que hoy cabría esperar

viendo el éxito que ha alcanzado. Pese al rechazo que gran parte de la comunidad científica

expresaba inicialmente a esta teoría, en muchos casos tan solo por su nombre o por hacer

énfasis en el concepto de imprecisión, se fueron creando grupos de investigación sobre esta

temática tanto en Europa como en Estados Unidos. La posterior incorporación de los países

asiáticos al desarrollo difuso fue fundamental para dar el último impulso a la teoría de Zadeh.

La capacidad de las empresas japonesas para aplicar la lógica difusa a sus productos,

unida a la estrecha colaboración de estas empresas con las Universidades japonesas,

fomentaron la transferencia de los conocimientos sobre lógica difusa al campo de la ingeniería y

el control. Como el propio Zadeh dijo en una entrevista concedida a La Vanguardia en el año

2004,. . . en Japón antes de discutir teóricamente mi lógica se pusieron a hacerla funcionar en la

práctica, y se impuso. Así, desde los años 80 Japón es el líder indiscutible del mercado de las

aplicaciones borrosas y foco de innumerables avances de esta teoría [2].

17

1.1.1. Fundamentos de los sistemas difusos

Se considera un sistema difuso, cuando al menos uno de sus componentes emplea

lógica difusa. La planta dentro de un sistema de control, es el sistema físico que se desea

estudiar, controlar o monitorizar, de forma que la lógica difusa no estará implícitamente

presente en ella; sin embargo, la lógica difusa puede utilizarse para obtener un modelo de la

planta (modelo difuso), el cual, permitirá conocer el comportamiento de la misma tanto de

forma matemática como lingüística.

El controlador es el elemento que, mediante la aplicación de distintas señales de

control, intenta provocar que la planta tenga el comportamiento deseado por el diseñador,

según distintos criterios de desempeño, calidad y/o robustez. El algoritmo de control

implementado por éste puede estar realizado mediante lógica difusa, denominándose en tal

caso controlador difuso. En muchas ocasiones se utilizan controladores difusos cuando el

modelo de la planta es desconocido, o demasiado complejo como para ser obtenido, por lo que

se suele hablar de sistema de control difuso siempre que se emplea un controlador basado en

lógica difusa en el sistema.

A continuación se describen las definiciones y operaciones principales de la lógica

difusa, así como las fases y conceptos asociados a la generación de conocimiento basado en un

conjunto de reglas.

a) Conjuntos difusos y funciones de pertenencia

Los conjuntos difusos son una extensión de los conjuntos ordinarios que permiten

tratar la imprecisión de forma matemática.

Un conjunto ordinario contiene la totalidad de los entes que poseen una propiedad

común. Es decir, dada una propiedad de definición de un conjunto, todos los elementos que

cumplan dicha propiedad pertenecerán al conjunto, y el resto no. Cuando la propiedad es clara,

la pertenencia o no de los elementos a un conjunto queda perfectamente definida, sin

embargo, si la definición de un conjunto se realiza de forma ambigua o imprecisa, será

imposible saber con certeza si ciertos elementos pertenecen o no al conjunto. Por ejemplo,

dado un conjunto de números, su pertenencia al conjunto de números mayores de 100 está

perfectamente definida, pero la pertenencia de éstos al conjunto de números mucho mayores

de 100 ya no estaría tan clara, al ser su definición imprecisa.

La diferencia entre un conjunto difuso y uno ordinario es que los límites de los difusos

no están definidos de forma estricta, sino mediante una función denominada función de

18

pertenencia. En la lógica clásica, un elemento pertenecerá o no a un determinado conjunto

(grado de pertenencia 1 ó 0 respectivamente), mientras que en la lógica difusa, un elemento

puede pertenecer a un conjunto con un grado de pertenencia entre 0 y 1. Al igual que en la

lógica clásica, los valores 1 y 0 representan respectivamente la pertenencia absoluta o no del

elemento al conjunto, pero en el caso difuso se puede pertenecer a un conjunto con un grado

intermedio.

Un concepto fundamental en la teoría de conjuntos difusos es el grado de pertenencia.

El grado de pertenencia representa la calidad, expresada con un número entre 0 y 1, con la que

un elemento pertenece a un determinado conjunto; es decir, la compatibilidad del elemento

con el concepto representado por el conjunto.

La función que permite obtener el grado de pertenencia de un elemento a un conjunto

difuso se denomina función de pertenencia, y se suele denotar mediante el símbolo griego µ. La

función de pertenencia del conjunto difuso A se denota como µA, y el grado de pertenencia del

elemento x al conjunto difuso A, como µA(x). El dominio de definición de la función de

pertenencia del conjunto A se conoce como universo de discurso de dicho conjunto, y recoge

todos los posibles valores de la variable x que pueden ser evaluados mediante la función de

pertenencia µA(x). De esta forma, un subconjunto difuso A de un conjunto X, puede definirse

mediante una aplicación µA que relaciona cada elemento x ∈ X con su grado de pertenencia al

conjunto A, µA(x) ∈ *0, 1+. El grado de certeza de la afirmación x pertenece a A depende de la

definición de la aplicación µA(x), de forma que mientras más se aproxime el grado de

pertenencia a uno, mayor veracidad tendrá dicha afirmación [2,4].

Definiciones básicas

Definición 1.1 Conjunto difuso. Sea X un conjunto no vacío, un conjunto borroso A está

caracterizado por:

µA(x): X → *0, 1+, (1.1)

donde µA(x) representa el grado de pertenencia del elemento x sobre el conjunto borroso A

para cada x ∈ X. A está completamente determinado por el conjunto de pares:

A = (x, µA(x)), x ∈ X (1.2)

Como se observa en la expresión (1.2), un conjunto difuso queda caracterizado

mediante su función de pertenencia.

19

En la Figura 1.1, se pueden observar distintos ejemplos de funciones de pertenencia,

todas ellas con un universo de discurso X ∈ *−5, 5+. La primera, µA(x), es la función de

pertenencia de un conjunto nítido, ya que sólo genera grados de pertenencia 0 ó 1, mientras

que el resto son funciones de pertenencia difusas: µB(x) es una función de pertenencia no

convexa definida a trozos, µC(x) una gaussiana y µD(x) una función de pertenencia S.

Figura 1.1 Ejemplos de funciones de pertenencia.

Definición 1.2 Conjunto difuso normalizado. Sea A un conjunto difuso definido en X, se

dice que A es un conjunto borroso normalizado si y sólo si 0 ≤ µA(x) ≤ 1. Dado que un grado de

pertenencia mayor de uno no tiene mucho sentido lógico, normalmente siempre se emplean

conjuntos borrosos normalizados, aunque no se mencione explícitamente.

Definición 1.3 Conjunto difuso nulo o vacío. Sea A un conjunto difuso definido en X, se

dice que A es un conjunto difuso nulo o vacío, A = ∅, si y sólo si µA(x) = 0, ∀x ∈ X. Es decir, A es

un conjunto difuso nulo si no existe ningún elemento cuyo grado de pertenencia al conjunto sea

distinto de cero.

20

Definición 1.4 Frontera de un conjunto difuso. Sea A un conjunto difuso definido en X,

la frontera de A es el subconjunto de X cuyos elementos tienen grados de pertenencia en A

comprendidos entre cero y uno.

Definición 1.5 Peso o altura de un conjunto difuso. Sea A un conjunto difuso definido

en X, el peso o altura de A es el máximo valor de la función de pertenencia µA. Si A es un

conjunto difuso normal (y normalizado), su peso será 1.

Tipos básicos de funciones de pertenencia

A continuación se definirán las funciones de pertenencia más comúnmente utilizadas,

indicando en cada caso sus características y propiedades.

1.- Función de pertenencia triangular. Una función de pertenencia triangular, Tri[a, b,

c+(x), con a ≤ b ≤ c, se define según la expresión (1.3).

µTri[a, b, c](x) =

𝑥−𝑎

𝑏−𝑎 𝑠𝑖 𝑎 < 𝑥 ≤ 𝑏

𝑐−𝑥

𝑐−𝑏 𝑠𝑖 𝑏 < 𝑥 < 𝑐

0 𝑒𝑛 𝑜𝑡𝑟𝑜 𝑐𝑎𝑠𝑜

(1.3)

Figura 1.2 Función de pertenencia triangular.

21

En la Figura 1.2 se representa la función de pertenencia Tri*−6, 4, 7+(x), cuyo universo

de discurso es X ∈ *−10, 10+. El soporte de esta función coincide con el intervalo (−6, 7), y su

núcleo con el valor 4.

2.- Función de pertenencia trapezoidal. Una función de pertenencia trapezoidal,

Trap*a, b, c, d+(x), siendo a ≤ b ≤ c ≤ d se define según la expresión (1.4).

µTrap[a, b, c, d](x) =

𝑥−𝑎

𝑏−𝑎 𝑠𝑖 𝑎 < 𝑥 < 𝑏

1 𝑠𝑖 𝑏 ≤ 𝑥 ≤ 𝑐𝑑−𝑥

𝑑−𝑐 𝑠𝑖 𝑐 < 𝑥 < 𝑑

0 𝑒𝑛 𝑜𝑡𝑟𝑜 𝑐𝑎𝑠𝑜

(1.4)

Figura 1.3 Función de pertenencia trapezoidal.

En la Figura 1.3 se representa un ejemplo de función de pertenencia trapezoidal con universo de discurso X ∈ *−10, 10+. En este caso, dicha función puede definirse como Trap*−8,−5, 1, 8+(x). El soporte de dicha función coincide con el intervalo (−8, 8), y su núcleo con *−5, 1+.

3.- Función de pertenencia gaussiana. Una función de pertenencia gaussiana, Gauss[c, β+(x), se define según la expresión (1.5), siendo c su centro y β > 0 el ancho de la función de pertenencia.

µGauss[c, β](x) = e−

𝑥−𝑐

𝛽

2

(1.5)

22

En la Figura 1.4 se muestra un ejemplo de función de pertenencia gaussiana, cuyo

centro es c = 3 y su ancho β = 1,5. Un posible valor finito para el soporte podría ser (c− 2β, c +

2β), lo que en este ejemplo concreto sería (0, 6).

Figura 1.4 Función de pertenencia gaussiana.

4.- Función de pertenencia campana. Una función de pertenencia campana,

Campana*α, β, c+(x), se define según la expresión (1.6), siendo c el centro de la función de

pertenencia, y α > 0 y β = 0 dos parámetros de ajuste. El parámetro α tiene relación con el

ancho de la función por su parte baja, o pies, mientras que el parámetro β, normalmente

positivo, tiene relación con el ancho de la función de pertenencia por la zona alta, u hombros. Si

β < 0, la función de pertenencia toma la forma de una campana invertida y puede ser

interesante para predicados de tipo negación (Si x no es . . . ).

µCampana*α, β, c+(x) =1

1+ 𝑥−𝑐

∝ 2𝛽 (1.6)

En la Figura 1.5 se pueden ver dos funciones de pertenencia campana, una con β = 3 y

la otra con β = −3. En ambos casos se ha tomado α = 4 y c = −2.

23

Figura 1.5 Funciones de pertenencia campana.

5.- Función de pertenencia S. La función de pertenencia S, S[a, b](x), siendo a ≤ b,

permite establecer una transición suave desde un valor de pertenencia nulo a un valor de

pertenencia uno. Se define según la expresión (1.7). En la Figura 1.6 se muestra un ejemplo de

función S, con a = −2 y b = 6.

µS[a, b](x) =

0 𝑠𝑖 𝑥 ≤ 𝑎

2 𝑥−𝑎

𝑏−𝑎

2

𝑠𝑖 𝑎 < 𝑥 ≤𝑎+𝑏

2

1 − 2 𝑏−𝑥

𝑥−𝑎

2

𝑠𝑖 𝑎+𝑏

2< 𝑥 < 𝑏

1 𝑠𝑖 𝑥 ≥ 𝑏,

(1.7)

6.- Función de pertenencia Z. La función de pertenencia Z, Z[a, b](x), siendo a ≤ b,

permite establecer una transición suave desde un valor de pertenencia uno a un valor de

pertenencia nulo. Se define según la expresión (1.8).

µZ[a, b](x) =

1 𝑠𝑖 𝑥 ≤ 𝑎

1 − 2 𝑥−𝑎

𝑎−𝑏

2

𝑠𝑖 𝑎 < 𝑥 ≤𝑎+𝑏

2

2 𝑏−𝑥

𝑎−𝑏

2

𝑠𝑖 𝑎+𝑏

2< 𝑥 < 𝑏

0 𝑠𝑖 𝑥 ≥ 𝑏,

(1.8)

24

Figura 1.6 Función de pertenencia S.

En la Figura 1.7 se muestra un ejemplo de función Z, con a = −2 y b = 6.

Figura 1.7 Función de pertenencia Z.

7.- Función de pertenencia singleton o punto difuso. Una función de pertenencia

singleton, o punto difuso, definida sobre x0 es aquella función de pertenencia cuyo soporte y

núcleo es sup(A) = nuc(A) = x0. También se puede utilizar la notación A = x0. La función de

25

pertenencia singleton es denominada también conjunto difuso escalar. En la Figura 1.8 se

muestra a modo de ejemplo la función de pertenencia singleton A = 0,2.

Figura 1.8 Función de pertenencia Singleton.

Operaciones sobre conjuntos borrosos

1.- Intersección. La operación intersección de dos conjuntos difusos A y B, cuyas

funciones de pertenencia son µA(x) y µB(x), respectivamente, se define como un conjunto

borroso C = A ∩ B cuya función de pertenencia se relaciona con las de A y B mediante la

ecuación (1.8). En la Figura 1.9 se muestra un ejemplo de la operación intersección entre dos

conjuntos difusos.

µC(x) = µA∩B (x) = min µA(x), µB(x), ∀x ∈ X (1.8)

La ecuación (1.8) también se puede escribir de forma abreviada como:

µC = µA ∧ µB (1.9)

La operación de intersección definida a través de la función mínimo se suele

denominar intersección clásica, ya que fue la definida originalmente por el profesor Zadeh.

Posteriormente han aparecido otros operadores de intersección lógica que se pueden englobar

26

en las denominadas T–normas. Estos operadores se verán con mayor detenimiento en la

definición 1.6.

Figura 1.9 Intersección entre conjuntos difusos.

2.- Unión. De forma análoga a la operación intersección, la unión de dos conjuntos

difusos A y B, cuyas funciones de pertenencia son µA(x) y µB(x), respectivamente, puede

definirse como un conjunto difuso C = A ∪ B cuya función de pertenencia se relaciona con las de

A y B mediante la expresión (1.10). La función máximo se emplea para definir el operador de

unión clásico, sin embargo, la operación de unión lógica puede generalizarse a través de las S–

normas, tal como se verá en la definición 1.7. Una muestra de la operación de unión clásica

puede verse en la Figura 1.10.

µC(x) = µA∪B (x) = max µA(x), µB(x), ∀x ∈ X (1.10)

La ecuación (1.10) también se puede escribir de forma abreviada como:

µC = µA ∨ µB. (1.11)

27

Figura 1.10 Unión entre conjuntos difusos.

Figura 1.11 T–normas producto y producto acotado.

Definición 1.6 Normas triangulares o T–normas. Una norma triangular, o T–norma

representa un modelo genérico para la intersección lógica (operador lógico Y o AND). La

condición de frontera que debe cumplir una función para que pueda considerarse como norma

triangular es que sea de identidad unitaria, es decir, que T(x, 1) = x, para todo x ∈ [0, 1]. En la

28

Tabla 1.1 se muestran algunas de las principales T–normas, y en la Figura 1.11 se presentan a

modo de ejemplo el resultado de aplicar las T–normas producto y de Lukasiewicz a dos

conjuntos difusos. El orden de aplicación de las T–normas no afecta al resultado final.

Tabla 1.1 T–normas principales.

Definición 1.7 T–conorma o S–norma. Una conorma triangular, también llamada T–

conorma o S–norma, representan un modelo genérico para la unión lógica (operador lógico O u

OR). En la tabla 1.2 se muestran algunas de las principales S–normas, y en la Figura 1.12 se

muestra el resultado de aplicar las S–normas suma–producto y de Lukasiewicz a dos conjuntos

difusos.

Aunque las T–normas y S–normas no pueden ordenarse, sí que puede identificarse claramente

la mayor y menor de ellas. Así, la mayor de las T–normas es la función mínimo y la menor el

producto drástico. En el caso de las S–normas, la mayor es la suma drástica, y la menor la

función máximo. El resto de T–normas y S–normas están comprendidas entre éstas.

29

Tabla 1.2 S–normas principales.

Figura 1.12 S–normas suma–producto y suma acotada.

30

b) Variables lingüísticas

Una variable lingüística es una variable cuyos valores son palabras o sentencias en un

idioma natural o artificial. El concepto de variable lingüística fue introducido por Zadeh y

desarrollado posteriormente por él mismo en varios trabajos. Las variables lingüísticas permiten

el acercamiento de la lógica difusa al lenguaje natural, facilitando la utilización lógica del

lenguaje ordinario y eludiendo así las deficiencias del lenguaje preciso en el área del control.

Tal como se puede ver en la Figura 1.13, cada término lingüístico se representa de

forma cuantitativa mediante una función de pertenencia o distribución de posibilidad. En este

caso, la variable lingüística edad se ha representado mediante las etiquetas lingüísticas niño,

joven, adulto y anciano. Los términos niño y anciano se han creado utilizando funciones de

pertenencia trapezoidales, la etiqueta joven mediante una función gaussiana, y adulto

empleando una gaussiana doble.

Figura 1.13 Variable lingüística edad.

Para un mismo universo de discurso, cuanto mayor sea el número de términos

lingüísticos empleados para representar una variable, mayor precisión se podrá obtener del

sistema difuso. Evidentemente, al tener un número mayor de etiquetas lingüísticas cada una de

ellas representará un subespacio menor, por lo que se podrá caracterizar el sistema más

finamente; sin embargo, también tendrá mayor complejidad. Según Miller, el número de

valores capaces de discriminar un ser humano varía entre cinco y nueve. Otro detalle a tener en

31

cuenta si se desea hacer un tratamiento lingüístico del sistema difuso, es que normalmente se

debe escoger un número impar de etiquetas. De esta forma existirá una etiqueta central.

Cuando la dimensionalidad del espacio entrada–salida es grande, el número de reglas

necesario para producir un recubrimiento suficientemente fino de todo el universo de discurso

se incrementa exponencialmente. Esto es lo que se denomina problema de la dimensionalidad

de los sistemas difusos.

Una forma de reducir este problema consiste en emplear procedimientos automáticos

para la selección de reglas, de forma que se tenga más precisión en las zonas que lo requieran

sin aumentar excesivamente el número de éstas. En cualquier caso, tanto para la elección del

número como para la distribución de las etiquetas lingüísticas se requiere de un análisis

detallado del problema.

c) Regla difusa

Un regla difusa es una sentencia condicional que tiene la estructura Si–Entonces (If-

Then), siendo el conjunto de reglas de un sistema difuso lo que se conoce como base de reglas

o base de conocimiento del sistema. En su forma más simple, una regla difusa viene dada por la

expresión (1.12), aunque esta expresión puede hacerse más compleja mediante la aplicación de

operadores de negación, unión, intersección, modificadores lingüísticos, etc.

Si x es A entonces y es B (1.12)

La premisa de la regla, es decir, la condición, se conoce como antecedente, mientras

que la consecuencia se conoce como consecuente. El consecuente de una regla puede ser un

conjunto difuso, un punto difuso, o una función dependiente de las entradas.

El operador que relaciona la premisa con la consecuencia se conoce como operador de

implicación, y se representa lingüísticamente con el adverbio entonces (then). Basándose en

cada una de ellas se pueden generar distintas funciones en base a T–normas y S–normas. En la

Tabla 1.3 se presentan varios operadores de implicación, siendo los más importantes y

utilizados los operadores de Mamdani y Larsen.

32

Tabla 1.3 Operadores de implicación.

Nombre µImplicación(x, y)

Mamdani (mínimo) min µA(x), µB(y)

Larsen (producto) µA(x) µB(y)

Reichencach 1 − µA(x) + µA(x) µB(y)

Lukasiewicz min ,1, 1 − µA(x) + µB(y)-

Willmott max ,1 − µA(x),min ,µA(x), µB(y)--

Kleene–Dienes max ,1 − µA(x), µB(y)-

d) Sistema de inferencia difuso

Los sistemas de inferencia difusos son algoritmos basados en la lógica difusa y el

razonamiento aproximado. En función de la aplicación a la que se destine el sistema de

inferencia éste puede denominarse de distintas formas: modelo difuso, sistema experto difuso,

controlador difuso, memoria asociativa difusa, etc. Los sistemas de inferencia difusos se

componen básicamente de dos elementos, el motor de inferencia y la base de conocimiento,

sin embargo, según la aplicación para que vaya a emplearse el sistema de inferencia, puede ser

necesario añadir elementos adicionales, como la fuzificación y la defuzificación que permiten

conectar al sistema de inferencia difuso con el mundo real . A continuación se estudiarán cada

uno de los elementos de un sistema de inferencia difusa, cuya configuración puede verse en la

Figura 1.14.

Figura 1.14 Sistema de inferencia difuso.

33

Fuzificación

En muchos casos, especialmente en sistemas de control, las entradas que deben

aplicarse a un sistema difuso son valores numéricos concretos, no difusos, procedentes

generalmente de sensores, por lo que es necesario establecer un interfaz con el motor de

inferencia difusa que elabore conjuntos difusos a partir de entradas no difusas. Este interfaz se

conoce como fuzificación.

Inferencia difusa

El motor de inferencia difusa es el mecanismo que permite obtener la salida de un

sistema difuso en función de sus reglas y las entradas que le sean aplicadas. Esta salida puede

ser tanto un conjunto difuso como un valor numérico, según se requiera por la aplicación. Para

realizar la inferencia se deben seguir los pasos siguientes:

En primer lugar es necesario calcular el grado de cumplimiento de cada antecedente en

función de la entrada del sistema. Si se utiliza un fuzificador tipo singleton, este valor se

obtendrá directamente de la intersección de la entrada con la función de pertenencia

del antecedente; mientras que si la entrada está representada por una función de

pertenencia no singleton, será necesario aplicar un operador de intersección, una T–

norma, sobre dichos conjuntos.

Una vez calculados todos los antecedentes de cada regla, se componen según la

definición lingüística de la misma, es decir, aplicando los operadores de intersección

para condiciones Y, y los de unión para condiciones O. Esta medida proporciona un valor

que representa la calidad con la que las reglas son satisfechas por la condición de

entrada del sistema difuso, esto es, su grado de activación.

Mediante el operador de implicación, Entonces, se obtiene el consecuente resultante de

cada regla. En aplicaciones relacionadas con el control de procesos, los operadores de

implicación más utilizados son las T–normas mínimo y producto. Al emplear el operador

mínimo, la función de pertenencia del consecuente es recortada a la altura definida por

el grado de veracidad de la regla; mientras que si se emplea el operador producto, la

salida es escalada según dicho grado de veracidad.

Por último, la regla composicional u operador de agregación, combina los resultados de

todas las reglas, esto es, el resultado de la base de reglas, en un único conjunto difuso.

El máximo y la suma acotada suelen ser las S–normas más utilizadas para obtener el

conjunto difuso de salida.

Si la aplicación requiere que la salida del sistema difuso sea numérica, se necesitará

aplicar una defuzificación a la misma.

34

El motor de inferencia puede verse matemáticamente como un esquema de

interpolación no lineal, ya que permite la fusión de la información de múltiples reglas en una

conclusión única. Esta conclusión se obtiene a partir de la combinación de los consecuentes de

las reglas del sistema, ponderadas según una función del grado de cumplimiento de cada una

de ellas.

En la Figura 1.15, se muestra un ejemplo de inferencia tanto para una entrada difusa

pura (Entrada 1), como para un punto difuso (Entrada 2). El grado de activación de la primera

regla se obtiene mediante el máximo valor de la intersección clásica entre el conjunto difuso de

entrada y el del antecedente. Este valor es propagado hacia el consecuente de la regla,

obteniéndose el conjunto difuso de salida de ésta mediante el operador de implicación

producto. Para la segunda regla, el grado de activación se obtiene evaluando la función de

pertenencia del Antecedente 2 en el punto dado por la Entrada 2. Este grado de activación es

propagado hacia su consecuente, obteniéndose mediante el operador de implicación mínimo el

conjunto difuso de salida de la segunda regla. El conjunto difuso final resultado de las dos

reglas, obtenido con el operador de conjunción máximo, puede observarse en la Figura 1.16.

Figura 1.15 Ejemplo de inferencia.

35

Figura 1.16 Ejemplo de defuzificación.

Base de conocimiento

La base de conocimiento almacena las relaciones existentes entre las entradas y salidas

del sistema. Basándose en este conocimiento, el proceso de inferencia obtendrá las salidas

asociadas a las entradas del mismo. Este elemento puede subdividirse en dos partes: la base de

datos y la base de reglas. La base de datos contiene la definición de las variables lingüísticas

empleadas en las reglas, es decir, las funciones de pertenencia que definen cada una de las

etiquetas lingüísticas. La base de reglas contiene la colección de reglas lingüísticas del sistema.

Ésta puede representarse como una lista de reglas, que es la forma más habitual, o mediante

una tabla o matriz de decisión, que proporciona un formato más compacto si existen pocas

variables.

Existen varios métodos para la obtención de las reglas de un sistema difuso, entre los

que cabe destacar:

Basados en el conocimiento de un experto, o heurísticos. Generalmente se obtiene su

conocimiento mediante unos cuestionarios cuidadosamente organizados que permitan

la generación de reglas del tipo Si–Entonces.

Basados en las acciones de control de un operador, en función de los datos de entrada–salida observados durante un período suficientemente amplio de operación.

Basados en aprendizaje mediante algoritmos automáticos.

36

Defuzificación

Cuando la salida del sistema de inferencia es un conjunto difuso pero la aplicación

requiere que sea un valor numérico concreto, es necesario emplear defuzificación. Este

elemento convierte dicho conjunto en un valor numérico del universo de discurso de salida que

será representativo de la conclusión obtenida. A continuación se presentarán los métodos de

defuzificación más comunes, cuya representación gráfica, respecto del conjunto difuso final de

salida difuso, puede verse en la Figura 1.16.

Método del centro de gravedad o del centroide. La salida numérica de esta defuzificación

se obtiene calculando el centro de gravedad del conjunto difuso de salida. Siendo D(y) el

conjunto difuso de salida, su valor, mediante este método 𝑦𝑜 , se obtiene a partir de la

ecuación (1.13). En la ecuación (1.14) se muestra la versión para valores discretos.

Aunque es más costoso computacionalmente que otros métodos de defuzificación, este

método es sin duda el más empleado, ya que proporciona variaciones suaves y

continuas de los valores de salida.

𝑦𝑜 = 𝑦𝜇𝐷 𝑦 𝑑𝑦

𝜇𝐷 𝑦 𝑑𝑦 (1.13)

𝑦𝑜 = 𝑦𝜇𝐷 𝑦

𝜇𝐷 𝑦 (1.14)

Método de la máxima pertenencia. Siendo D(y) el conjunto difuso de salida, el valor

numérico 𝑦𝑜 obtenido mediante la defuzificación del máximo se corresponde con el

valor de 𝑦 para el que 𝜇𝐷 𝑦 alcanza su máximo valor. Puesto que pueden existir

múltiples valores para los que 𝜇𝐷 𝑦 tenga un mismo valor máximo, se hace necesario

escoger algún método para elegir el valor de 𝑦𝑜 . Estos métodos son (ver figura 1.16): el

menor de los máximos, el centro de los máximos y el mayor de los máximos. La

defuzificación de la máxima pertenencia se caracteriza por ser de muy fácil

implementación, sin embargo, genera cambios bruscos en la salida que en muchas

aplicaciones no son admisibles.

Método del centroide indexado. Este método calcula el centro de gravedad de la parte

correspondiente al conjunto difuso inferido cuyo grado de pertenencia sea mayor de un

determinado valor λ.

37

e) Tipos de sistemas difusos

En función de la forma de las reglas y del tipo de entradas y salidas, se distinguen

cuatro tipos de sistemas difusos: los sistemas puros, los sistemas de tipo Mamdani, los de

Sugeno o TSK y los modelos aditivos de Kosko o SAM, junto con algunas variantes como los

modelos de Tsukamoto.

Sistema difuso puro

Los sistemas difusos puros son sistemas cuyas entradas y salidas son conjuntos difusos.

Al no necesitar realizar ninguna transformación sobre las entradas o salidas, están compuestos

tan sólo por la base de conocimiento y el motor de inferencia.

Modelo Mamdani

El esquema de control difuso de Mamdani consta, según se muestra en la figura 1.14,

de un motor de inferencia, una base de conocimiento y unos interfaces tanto de fuzificación

como de defuzificación para procesar las entradas y salidas del sistema. Los sistemas difusos de

tipo Mamdani presentan una serie de ventajas que propician su utilización en el ámbito del

control:

Los modelos de tipo Mamdani se comportan como aproximadores universales.

Pueden utilizarse en aplicaciones reales, ya que tratan con facilidad entradas y salidas

reales.

Proporcionan un marco natural para la inclusión del conocimiento de expertos en forma

de reglas lingüísticas.

Existe gran libertad a la hora de escoger el método de inferencia difusa, así como los

interfaces de fuzificación y defuzificación.

Por el contrario, también poseen una serie de limitaciones:

Falta de flexibilidad debido a la rigidez con que se particionan los espacios de entrada y

salida.

No existe una distinción clara entre el conocimiento experto y la definición de las

variables lingüísticas incluidas en las reglas difusas.

Cuando las variables de entrada al sistema dependen unas de otras, es muy complicado

obtener una partición difusa adecuada de los espacios de entrada.

El tamaño de la base de conocimiento depende directamente del número de variables y

términos lingüísticos que existan en el sistema.

38

La interpretabilidad del sistema está ligada a la utilización de un número no excesivo de

reglas, lo cual generalmente va en contra de la precisión del sistema difuso

implementado.

La base de reglas de un sistema Mamdani se configura mediante un conjunto de reglas

de la forma:

Regla 𝑟 ∶ 𝑆𝑖 𝑥1 𝑒𝑠 𝐴1𝑟 𝑦 𝑥2 𝑒𝑠 𝐴2

𝑟 𝑦 … 𝑦 𝑥𝑛 𝑒𝑠 𝐴𝑛𝑟 𝑒𝑛𝑡𝑜𝑛𝑐𝑒𝑠 𝑦 𝑒𝑠 𝐵𝑟 (1.15)

donde 𝑥1, 𝑥2, . . ., 𝑥𝑛son las entradas del sistema, 𝐴1𝑟 , 𝐴2

𝑟 , . . . , 𝐴𝑛𝑟 n son los conjuntos difusos del

antecedente de la regla 𝑟, 𝑟 = 1..R, definidos en los universos de discurso de sus entradas

asociadas, 𝑦 es la salida del sistema, y 𝐵𝑟 el conjunto difuso consecuente de la regla 𝑟, definido

en el universo de discurso de la salida 𝑦. En este tipo de sistemas, tanto las entradas 𝑥𝑖 , i = 1...n,

como la salida 𝑦 son valores numéricos.

El grado de activación de la regla, 𝑤𝑟 , se obtiene mediante la aplicación del operador

de intersección, que normalmente será alguna de las T–normas. La salida difusa del motor de

inferencia, µB, se calcula agregando mediante una regla composicional, normalmente una S–

norma, los efectos de todas las reglas del sistema. Finalmente, la defuzificación calcula la salida

numérica del sistema. Nótese que en los sistemas de tipo Mamdani tanto los antecedentes

como los consecuentes están formados por conjuntos difusos, mientras que las entradas y

salidas son valores numéricos.

Uniendo la interpretabilidad de sus reglas a la capacidad aproximadora universal de

estos modelos, se tiene que los modelos difusos de Mamdani son una herramienta

tremendamente poderosa para el análisis y control de sistemas complejos. No obstante, una

buena aproximación con un modelo difuso de tipo Mamdani puede requerir de un número

elevado de reglas, por lo que la interpretabilidad del sistema queda mermada conforme

aumenta su complejidad.

Modelo aditivo estándar, SAM

SAM por sus siglas en inglés (Standard Additive Model), es un caso particular de los

modelos difusos aditivos. Fue propuesto por Bart Kosko. La principal ventaja de los modelos

aditivos es su eficiencia, ya que las reglas pueden precomponerse en un formato menos costoso

computacionalmente.

39

El esquema de inferencia de un sistema SAM es similar al de los modelos TSK que se

verán posteriormente, ya que ambos generan su salida en base a la suma ponderada de las

consecuencias de cada una de las reglas de la base de conocimiento. Sin embargo, la estructura

de las reglas de un sistema SAM es idéntica a las de los modelos de Mamdani, por lo que

podrían considerarse como una variación de éstos. No obstante, existen cuatro diferencias

fundamentales entre los esquemas de inferencia de los sistemas SAM y Mamdani:

En los modelos SAM la entrada (x) se considera siempre como un punto difuso.

Para la inferencia se utiliza el operador producto, frente al operador mínimo que suele

emplearse en los modelos de Mamdani.

Frente al operador máximo que emplean los modelos de Mamdani, en los modelos SAM

la combinación final (D) de las conclusiones parciales de cada regla difusa (D′r), se realiza

mediante una suma ponderada según los pesos ω. Esta forma de operar sitúa a los

modelos SAM más cerca estructuralmente de los modelos TSK que de los Mamdani.

La salida (y) de un modelo aditivo estándar se calcula mediante la adición de las salidas

parciales ponderadas, mientras que en los de Mamdani se debe especificar una

defuzificación.

Modelo de Tsukamoto

Este modelo, propuesto por Tsukamoto en 1979, se caracteriza por representar el

consecuente de cada regla difusa mediante un conjunto difuso con una función de pertenencia

monótona. La salida inferida por cada regla es un valor numérico inducido por el grado de

activación de la regla. La salida global se toma como la media ponderada de todas las salidas

parciales. Este tipo de modelos permiten eliminar el consumo de tiempo correspondiente a la

defuzificación, sin embargo, no son modelos muy utilizados por no ser tan transparentes como

los de Mamdani o Sugeno. El mecanismo de inferencia no sigue estrictamente la regla

composicional de inferencia y la salida es siempre numérica, incluso cuando las entradas son

difusas.

Modelo Takagi–Sugeno–Kang (TSK)

Los investigadores japoneses Takagi y Sugeno, con la posterior incorporación de Kang,

propusieron un tipo de sistema difuso que en lugar de emplear reglas completamente

lingüísticas, utiliza como consecuente una función de las variables de estrada del sistema. Este

tipo de sistemas se conoce como modelos Takagi–Sugeno–Kang (TSK), modelos Takagi–Sugeno

40

(TS) o de forma más simplificada, modelos Sugeno. Una regla típica de un sistema TSK tiene la

forma:

Regla 𝑟 ∶ 𝑆𝑖 𝑥1 𝑒𝑠 𝐴1𝑟 𝑦 𝑥2 𝑒𝑠 𝐴2

𝑟 𝑦 … 𝑦 𝑥𝑛 𝑒𝑠 𝐴𝑛𝑟 𝑒𝑛𝑡𝑜𝑛𝑐𝑒𝑠 𝑦𝑟 𝑒𝑠 𝑔𝑟(𝒙) (1.16)

donde 𝑥𝑖 , i = 1..n, son las entradas del sistema e 𝑦𝑟 es la salida inferida por la regla 𝑟. Los

elementos 𝐴𝑖𝑟 son los conjuntos difusos del antecedente de la regla 𝑟, definidos en los

universos de discurso de sus entradas asociadas. La consecuencia inferida a partir de la regla se

calcula con la función 𝑔𝑟(𝒙), dependiente de las entradas del sistema.

La función consecuente, 𝑔𝑟(𝒙), puede escogerse libremente, aunque los consecuentes

más utilizados en este tipo de sistemas son los polinomios de grado 0 y de grado 1. La salida de

un sistema TSK se calcula mediante la suma ponderada o el promedio ponderado del efecto

individual de todas sus reglas. La suma ponderada es la suma de los valores obtenidos por la

función consecuente, ponderadas por el grado de activación de cada una de las reglas. El

promedio ponderado consiste en dividir la suma ponderada por el sumatorio de las fuerzas de

activación de las reglas. La salida aplicando la suma ponderada o el promedio ponderado, se

obtiene mediante la aplicación de las ecuaciones (1.17) ó (1.18), respectivamente.

𝑦 = 𝑤𝑟𝑦𝑟𝑅𝑟=1 (1.17)

𝑦 = 𝑤 𝑟𝑦𝑟𝑅

𝑟=1

𝑤 𝑟𝑅𝑟=1

(1.18)

La estructura de un sistema difuso TSK, es ligeramente distinta de la estructura típica

vista en los apartados anteriores. Dispone como todo sistema difuso de un motor de inferencia

y una base de conocimiento, pero como las entradas al sistema son siempre numéricas, y su

efecto sobre las salidas se calcula directamente mediante la aplicación de las ecuaciones

anteriores, no es necesaria la fuzificación.

La salida de cada una de las reglas es un valor numérico, de forma que tampoco se

requiere defuzificación para generar la salida del sistema. No obstante, es imprescindible algún

mecanismo para agregar todas las conclusiones parciales de las reglas en una única salida. Para

ello se utilizan la suma ponderada o el promedio ponderado. Aunque es muy común nombrar a

esta operación como defuzificación, sobre todo al promedio ponderado que se le suele

denominar defuzificación centro promedio, esto no es estrictamente correcto, ya que su

entrada no es un conjunto difuso.

Los sistemas difusos TSK son una poderosa herramienta para el modelado de sistemas

complejos y altamente no lineales, ya que son aproximadores universales tanto de la función

41

como de su derivada. Además, si se utiliza como consecuente un polinomio de orden 1

completo, es decir, con el término afín distinto de cero, un sistema TSK también puede

aproximar de forma universal la 2ª derivada de una función. La utilización en los sistemas TSK

de un consecuente polinómico permite aproximar funciones con gran precisión y con un

número mucho menor de reglas que los sistemas de tipo Mamdani. No obstante, este aumento

de precisión se consigue a costa de empeorar la interpretabilidad de las reglas.

1.2. Sistema propulsor

La hélice es un órgano mecánico giratorio que produce una impulsión sobre el aparato

en que va montada. Cuando la hélice va instalada delante del motor que la hace girar, o del

aparato, se llama hélice tractora. Si va detrás, se conoce como hélice propulsora.

1.2.1. Conocimientos fundamentales

Las hélices se componen de un cubo o núcleo central y de unas palas, con superficies

helicoidales al funcionar, que están unidas a él. El cubo o núcleo gira movido por el motor.

Como la hélice esta dentro de la atmosfera, al girar produce una cierta presión sobre el aire. La

reacción del aire sobre la hélice da lugar a una traslación de todo el conjunto (hélice, motor,

avión) en el sentido del eje del giro, que dependerá de la inclinación media de las palas con

respecto a dicho eje. En funcionamiento normal dicha inclinación produce un movimiento de

avance, pero si se puede variar la inclinación, la impulsión hacia adelante puede desaparecer, e

incluso invertirse dando un empuje de retroceso o frenado [5].

Las hélices actuales tienen, en general, 2, 3 o 4 palas. (Se han llegado a ensayar de 10

palas). Cada pala puede admitirse que está constituida por una serie de infinitas alas

elementales (de envergadura diferencial) yuxtapuestas. Los perfiles de estas alas elementales

constituyen las secciones sucesivas de una pala, cortando la hélice paralelamente al eje de

rotación. Como es natural, las características de una hélice dependen: de la velocidad del avión

en la dirección del eje de la hélice; del numero de vueltas que da la hélice, en la unidad de

tiempo; del diámetro de la hélice; del numero de palas; y de los ángulos que forman las cuerdas

de los perfiles con el plano de rotación.

Al girar, la hélice avanza. El avance en una revolución se llama paso efectivo de la

hélice. La trayectoria el helicoidal. Si lo que avanza es 𝑝 y el radio de la sección que

consideramos es 𝑟, el ángulo de la trayectoria helicoidal desarrollado (ɸ) se puede calcular por

la ecuación (1.19):

42

𝑡𝑔ɸ =𝑝

2𝑟𝜋 (1.19)

El paso efectivo es menor que el paso geométrico, que es el avance que tendrá la

sección considerada si se moviera en un medio rígido, es decir, el que describirá la cuerda

geométrica del perfil. Hay otro paso, llamado paso aerodinámico, que es el que describirá la

línea de sustentación nula del perfil. En conjunto, los tres pasos pueden representarse como se

indica en la Figura 1.17.

El paso a lo largo de una pala puede ser uniforme o variable, aunque, normalmente, es

variable. Si el paso geométrico fuese uniforme, los ángulos de ataque sucesivos irían

disminuyendo, siendo menores cuanto más cerca del extremo exterior de la pala estuvieran las

secciones. La mayoría de las hélices no tienen un paso geométrico uniforme.

Los perfiles básicos de las palas, que más se suelen usar, son el Clark-Y y el R.A.F.-6

como se muestra en la Figura 1.18. Sin embargo, se han hecho pruebas con otros perfiles, tales

como el USA 35B y los N.A.C.A. 2R200; 6400; 4400 (para la mitad interior) y 2400-34 (para la

mitad exterior), y, algunas veces, cuando los extremos de las palas se acercan a la velocidad del

sonido, se han utilizado, en el 25% exterior de las palas, perfiles tales como los de las series

N.A.C.A. 16, para altas velocidades.

Figura 1.17 Pasos característicos de una hélice.

En los ensayos efectuados con los perfiles Clark-Y y R.A.f.-6 se ha visto que el

rendimiento máximo, con el primero, llega a ser alrededor de un 3% mayor que con el segundo.

Sin embargo, el segundo es superior al primero, para el despegue. El Clark-Y es ventajoso para

pequeños ángulos de ataque, y el R.A.F.-6 para grandes ángulos de ataque.

43

Figura 1.18 Perfiles básicos de las palas en una hélice.

Cerca del cubo o núcleo central deben emplearse perfiles relativamente gruesos,

porque, en esa zona, los efectos de las fuerzas centrifugas y los momentos de flexión son

elevados. Afortunadamente, las fuerzas aerodinámicas, en dicha parte, tienen menor

importancia, por lo que, aunque los perfiles sean peores, desde el punto de vista aerodinámico,

no afectan demasiado a la tracción. Es posible utilizar el mismo perfil base, pero aumentando el

espesor e y haciendo que la sección resultante sea biconvexa.

En las características de una hélice, después del diámetro lo más importante es el paso.

Actualmente se suele dar, por los laboratorios experimentales, el paso geométrico

correspondiente a la sección situada a 0.75R, 0.7R o 2/3R, siendo R el radio de la hélice. La

relación entre este paso y el diámetro de la hélice se llama paso relativo. Llamando 𝑟 al radio de

un sección, el paso geométrico seria: 2𝑟𝜋 . 𝑡𝑔ɸ. Para la sección correspondiente al radio 0.75R,

por ejemplo, dicho paso sería:

2𝜋 . 0.75𝑅 . 𝑡𝑔ɸ (1.20)

y el paso relativo:

2𝜋 .0.75𝑅 .𝑡𝑔ɸ

2𝑅 = 0.75 .𝜋 . 𝑡𝑔ɸ = 2.356 . 𝑡𝑔ɸ (1.21)

Los perfiles aerodinámicos que componen una hélice están sujetos a las mismas leyes y

principios que cualquier otro perfil aerodinámico, por ejemplo un ala. Cada uno de estos

perfiles tiene un ángulo de ataque, respecto al viento relativo de la pala que en este caso es

cercano al plano de revolución de la hélice, y un paso (igual al ángulo de incidencia).

El giro de la hélice, que es como si se hicieran rotar muchas pequeñas alas, acelera el

flujo de aire hacia el borde de salida de cada perfil, a la vez que deflecta este hacia atrás (lo

mismo que sucede en un ala). Este proceso da lugar a la aceleración hacia atrás de una gran

masa de aire, movimiento que provoca una fuerza de reacción que es la que propulsa el avión

hacia adelante. En la Figura 1.19 se ilustran lo ángulos de la hélice.

44

Figura 1.19 Ángulos de la hélice.

Las hélices se clasifican básicamente en hélices de paso fijo y hélices de paso variable.

Se denomina paso de la hélice al ángulo que forma la cuerda de los perfiles de las palas con el

plano de rotación de la hélice.

1.2.2. Hélice de paso fijo

En este tipo de hélices, el paso está impuesto por el mejor criterio del diseñador del

aeroplano y no es modificable por el piloto. Este paso es único para todos los regímenes de

vuelo, lo cual restringe y limita su eficacia; una buena hélice para despegues o ascensos no es

tan buena para velocidad de crucero, y viceversa. Una hélice de paso fijo es como una caja de

cambios con una única velocidad; compensa su falta de eficacia con una gran sencillez de

funcionamiento [6].

En aviones equipados con motores de poca potencia, la hélice suele ser de diámetro

reducido, y está fijada directamente como una prolongación del cigüeñal del motor; las RPM. de

la hélice son las mismas que las del motor. Con motores más potentes, la hélice es más grande

para poder absorber la fuerza desarrollada por el motor; en este caso entre la salida del motor

y la hélice se suele interponer un mecanismo reductor y las RPM de la hélice difieren de las

RPM del motor, este tipo de acoplamientos se ilustran el Figura 1.20.

45

Figura 1.20 Acoplamientos de hélice de paso fijo.

1.2.3. Hélice de paso variable

Este tipo de hélice, permite al piloto ajustar el paso, acomodándolo a las diferentes

fases de vuelo, con lo cual obtiene su rendimiento óptimo en todo momento. El ajuste se realiza

mediante la palanca de paso de la hélice, la cual acciona un mecanismo que puede ser

mecánico, hidráulico o eléctrico. En algunos casos, esta palanca solo tiene dos posiciones: paso

corto (menor ángulo de las palas) y paso largo (mayor ángulo de las palas), pero lo más común

es que pueda seleccionar cualquier paso comprendido entre un máximo y un mínimo.

Para entender cómo funciona el paso variable, partimos de: (1) La mayoría de los

motores de combustión interna obtienen su máxima potencia en un punto cercano al máximo

de RPM. (2) La potencia requerida para volar de forma económica a velocidad de crucero es

usualmente menor a la potencia máxima.

El paso corto, ver Figura 1.21, implica menor ángulo de ataque de la pala y por tanto

menor resistencia inducida, por lo que la hélice puede girar más libre y rápidamente,

permitiendo el mejor desarrollo de la potencia del motor. Esto le hace el paso idóneo para

maniobras en las que se requiere máxima potencia: despegue y ascenso, aunque no es un paso

adecuado para régimen de crucero. Este paso es como las marchas cortas (1ª, 2ª) de la caja de

cambios de un automóvil, que se emplean para arrancar o subir cuestas empinadas pero no son

eficientes para viajar por autopista. Con estas marchas el motor de un automóvil alcanza

rápidamente su máximo de RPM, lo mismo que el motor de un avión con paso corto en la

hélice.

46

El paso largo, ver Figura 1.21, supone mayor ángulo de ataque y por ello mayor

resistencia inducida, lo que conlleva menos RPM en la hélice y peor desarrollo de la potencia

del motor, pero a cambio se mueve mayor cantidad de aire. Con este paso, decrece el

rendimiento en despegue y ascenso, pero sin embargo se incrementa la eficiencia en régimen

de crucero. Volviendo al ejemplo de la caja de cambios, este paso es como las marchas largas

(4ª, 5ª), que son las más adecuadas para viajar por autopista pero no para arrancar o subir una

cuesta empinada. Con estas marchas, el motor del automóvil no desarrolla sus máximas RPM,

pero se obtiene mejor velocidad con un consumo más económico, exactamente lo mismo que

un avión con la hélice puesta en paso largo.

En algunos manuales, se identifica el paso corto con velocidades pequeñas del avión

debido a que las maniobras en las cuales está indicado este paso (despegue, ascenso) implican

baja velocidad en el avión. Por la misma razón se identifica el paso largo con altas velocidades

(crucero) [6].

Figura 1.21 Hélice de paso variable.

47

Capítulo 2

Prototipo

Este capítulo muestra la construcción de un prototipo para producir un movimiento en

las palas de la hélice lo cual repercute en el ángulo de ataque y el paso. De igual forma se

presenta la instalación de la parte electrónica y el sistema de propulsión.

2.1. Sistema electrónico

En el armado del sistema electrónico se comprenden la implementación de

movimiento para el sistema de control, el sistema de radio control y el sistema de alimentación

eléctrica. Para esta etapa se utilizan materiales y equipo de acuerdo a lineamientos de

aeromodelismo con los que cuenta el Laboratorio de Sistemas Dinámicos Controlables. En la

implementación de movimiento para el sistema de control se utiliza un servomotor A6030 de la

marca Spektrum que se muestra en la Figura 2.1 [7].

Figura 2.1 Servomotor Spektrum A6030.

48

Las especificaciones de este tipo de servomotores son:

Tipo: Standard/Digital

Dimensiones: 40*20*37 mm

Peso: 52 g

Torque: 20 Kg-cm @6 V

Velocidad: 0.15 sec/60° @6 V

Engranaje: Metálico de titanio

Voltaje de operación: 4.8 a 6.0 V (4 o 5 celdas)

A este servomotor se le aplica el controlador difuso ya que se le adapta un mecanismo

de piñón-cremallera como se muestra más adelante en la sección 2.2. El objetivo es mandar un

determinado PWM para que el paso de la hélice cambie en función a la altura que alcance la

aeronave y la presión que existe sobre la parte frontal de la misma.

Otro elemento utilizado es el motor brushless (sin escobillas) 480B BL Outrunner

Motor, 960Kv Reverse Shaft, ver Figura 2.2, el cual es el encargado de dar el giro a la hélice, es

decir, es el motor que entrega las RPM a las que trabaja la hélice ya que esta acoplado de forma

directa.

Figura 2.2 Motor brushless.

De a cuerdo a sus especificaciones el motor gira a un máximo de 11520 RPM @ 12v y a

un mínimo de 6720 RPM @ 7v. La palabra brushless se puede traducir como "sin escobillas", las

escobillas son los elementos que hacen contacto en el colector de un motor común. En los

motores de DC más pequeños, son de una aleación de cobre y en motores más grandes son de

un compuesto a base de carbón. Estos motores carecen de colector y escobillas o carbones. En

49

vez de funcionar en DC funcionan en AC, la mayoría se alimentan con una señal trifásica, esta

señal idealmente debería ser sinusoidal, pero en la práctica son pulsos, haciendo que la señal

sea un continua pulsante o bien una continua con mucho componente de AC sin embargo se los

clasifica como de DC porque al igual que los motores comunes tienen imanes permanentes.

Los circuitos reguladores de velocidad (ESC) son los encargados de hacer funcionar el

motor, en el caso de radiocontrol, lo que hacen es medir el tiempo de 1ms a 2ms como un

servo estándar y transformarlo en un máximo y mínimo de RPM para el motor.

Tienen básicamente dos formas de operar, puede ser seteado a una cierta cantidad de

vueltas, supongamos 7000 RPM, para la cual debería entregar cierta corriente programada. Si la

carga aumenta, como podría ser el caso de un rotor de helicóptero, entonces el regulador,

debería entregar más corriente para que se mantengan esas 7000 RPM, el regulador controla la

forma del pulso contraelectromotriz (EMF) y así ajusta la corriente de salida. La otra forma, la

cual es la más común y que usa la mayoría es que el motor inyecta un cierto valor de corriente y

luego mide cual es la velocidad del motor al medir el EMF, de esta forma se auto ajusta [13].

El circuito regulador de velocidad utilizado con el motor brushless antes mencionado

es el 30-Amp Pro Switch-Mode BEC Brushless ESC ilustrado en la figura 2.3.

Figura 2.3 Regulador de velocidad 30-Amp Pro Switch-Mode BEC Brushless.

Otro de los dispositivos que se utilizan es el receptor y el transmisor de radio, los

cuales sirven para controlar el avión desde tierra. Se utiliza un control especializado para

aeromodelos de gran escala aeromodelismo de la misma marca de los servomotores, Spektrum.

Este control cuenta con emisor (5-Channel DX5e) y receptor (AR500 5-Channel sport receiver),

los cuales se muestran en la Figura 2.4. Este control tiene la principal característica de que

trabaja en modulación DSM2/DSMX, tecnología de Spektrum para garantizar un buena

comunicación, el sistema de radio transmite simultáneamente en dos frecuencias, creando

50

doble ruta de RF, y el receptor que se tiene es doble, uno para cada frecuencia del transmisor.

Esta redundancia, mas el hecho de que cada uno de los receptores se encuentra en una

posición ligeramente diferente la cual expone a cada uno a un ambiente de RF diferente, crea

un enlace de RF a prueba de errores en todas condiciones [7].

(a) Transmisor de RF para control del avión. (b) Receptor de RF para control del avión.

Figura 2.4 Control RF para el avión (Spektrum DX7).

Las Especificaciones del transmisor son:

No. de canales: 5

Modulación: DSM2

Banda: 2.4 GHz

Características de programación: Aviones y Helicópteros

Las Especificaciones del receptor son:

No. de canales: 5

Modulación: DSM2

Banda: 2.4 GHz

Tamaño: 21.6 x 30.1 x 12.3 mm

Peso: 7 g

Rango de voltaje: 3.5-9.6 V

Resolución: 2048

Tamaño de antena Principal: 30 mm (2). Secundaria: 30 mm(2)

51

El receptor cuenta con las 5 salidas de los canales de control, en estas salidas se

conectan los servos que se van a controlar. Las 5 salidas son:

AILE (Aileron) En este canal se conecta el servo A6030 para prueba manual del mecanismo.

GEAR Este canal es usado cuando el avión tiene tren de aterrizaje plegable

RUDD (Rudder) En este canal se conectan servos que controlan al timón.

ELEV (Elevators) En este canal se conectan servos que controlan los elevadores.

THRO (Throttle) En este canal se conecta el motor brushless.

2.2. Sistema mecánico

En base a la hélice de paso variable que se ilustra en la Figura 2.5, de dos palas con un

diámetro de 30 cm, el cambio de paso se utiliza para optimizar el rendimiento del motor de

avión principalmente cuando se vuela a velocidad crucero. Esta hélice contiene un mecanismo

interno que permite por medio de un anillo de giro independiente de la hélice, jalar y/o

empujar con un movimiento lineal en el eje horizontal para aumentar o reducir el paso de las

palas. Se puede regular el paso con un tope y unos tornillos esclavos que se tiene en la tapa,

estos mecanismos se muestran en la Figura 2.6. El diseño de esta hélice y el mecanismo es de

patente mexicana de los años 70's [8]

a) Paso corto. b) Paso largo.

Figura 2.5 Hélice de paso variable.

52

La hélice de paso variable tiene un desplazamiento lineal de 7.5mm para producir el

cambio de paso corto a paso largo.

Figura 2.6 Mecanismo de la hélice de paso variable.

En base a las características previamente mencionadas se opto por construir un

mecanismo piñón-cremallera, ver Figura 2.7, ya que permite transformar un movimiento

circular (del servomotor) en un movimiento lineal utilizando una rueda llamada piñón y una

pieza rectilínea llamada cremallera.

El piñón es una pieza dentada circular que gira sobre su propio eje. La cremallera, que

es realmente un engrane recto o plano, puede tener dientes rectos para acoplarse con un

engrane recto, o dientes en ángulo, para acoplarse con un engrane helicoidal. Cuanto más

rápidamente gira la rueda, más rápidamente se desplaza la cremallera [9].

53

Figura 2.7 Mecanismo piñom-cremallera.

Por cada vuelta completa que realice el piñón, la cremallera se desplazará linealmente

tantos dientes como tenga el piñón. Por tanto se desplazará una distancia (𝑑):

𝑑 =𝑧

𝑛, (2.1)

donde: 𝑑 = distancia recorrida por la cremallera 𝑧 = no. de dientes del piñón 𝑛 = no. de dientes por centímetro de la cremallera

Se consiguió un piñón y una cremallera en un deshuesadero de componentes

electrónicos, ver Figura 2.8. La cremallera cuenta con 8 dientes por cm (n) y el piñón tiene un

total de 93 dientes.

En base a la ecuacion (2.1) se calcula la distancia que recorrera la cremallera al dar una

vuelta completa el piñón, lo cual da como resultado una distancia de 11.625cm. A este

resultado aplicamos una sencilla regla de tres para calcular el número de grados necesarios

para producir un desplazamiento lineal de 7.5mm tomando en consideración que 360° equivale

a los 11.625cm calculados. Como resultado se obtiene un desplazamiento angular de 23.22°. Se

decidió hacer girar el servomotor 23° para no forzar el mecanismo hasta sus topes mecánicos.

54

Figura 2.8 Piñón y cremallera.

Una vez que se obtuvo la cantidad de grados que es necesario mover el servomotor

para llevar a la hélice del paso corto al paso largo, se continuo con la elaboración de piezas para

el prototipo, para lo cual se utilizo Nylamid, por su fácil maquinabilidad y por su peso reducido.

2.3. Conjunción y prueba del prototipo

La cremallera fue montada sobre un extremo de una placa delgada de Nylamid, ver

Figura 2.9, por medio de 3 tornillos de 1/8 de pulgada, la cual desliza por unas canaletas

maquinadas del mismo material, ver Figura 2.10. En el extremo contrario a la cremallera, está

unida al anillo de la hélice otra pequeña placa para realizar la acción de empujar o jalar y así

provocar el cambio de paso como se ilustra en la Figura 2.11.

También se utilizaron dos placas de aluminio; en la primer placa se fijó el motor

brushless, el cual controla las RPM de la hélice, la segunda placa se utilizó para fijar el

servomotor que hará girar el piñón los 23° necesarios para efectuar el cambio de paso como se

observa en la Figura 2.12.

Las dos placas de metal están unidas a un pedazo de metal por medio de tornillos de

1/4 de pulgada para asegurar su correcta posición como se ilustra en la Figura 2.13

55

Figura 2.9 Cremallera montada en placa de Nylamid.

a) Vista superior frontal.

b) Vista inferior.

Figura 2.10 Canaletas por donde desliza la placa que contiene a la cremallera.

56

Figura 2.11 Placa que sujeta al anillo de la hélice. Placa de sujeción

Figura 2.12 Placas de aluminio que sujetan al servomotor y al motor

brushless.

57

Figura 2.13 Sujeción de la placas de aluminio.

2.14 Ángulo que da soporte al prototipo.

58

Para la práctica colocación del prototipo en cualquier superficie plana y evitar

accidentes con la hélice al ser accionado el motor brushless., se soldó un ángulo de pulgada y

media para dar soporte al sistema, ver Figura 2.14.

El prototipo final se muestra en la Figura 2.15, donde se puede apreciar en a) la vista

frontal, en b) la vista superior, en c) la vista lateral derecha y en d) la vista lateral izquierda.

a) Vista frontal. b) Vista superior.

c) Vista lateral derecha. d) Vista lateral izquierda.

Figura 2.15 Diversas vistas del prototipo.

59

Capítulo 3

Diseño e implementación del

controlador difuso

En este capítulo se desarrolla el diseño del controlador difuso en base a un sistema

difuso tipo Mamdani. Se simula el controlador en las plataformas de LabVIEW y MATLAB para

observar su correcto funcionamiento y en la parte final del capítulo se muestra la

implementación del controlador difuso en un microcontrolador dsPIC30F4011.

3.1. Parámetros del controlador

El diseño del controlador difuso, se realiza en base a un sistema difuso tipo Mamdani,

por la fácil inclusión del conocimiento de expertos en forma de reglas lingüísticas para la

manipulación de la hélice de paso variable, así como la facilidad que muestra para trabajar con

entradas y salidas reales. Como T-norma se utiliza el producto.

3.1.1 Conjuntos difusos y funciones de pertenencia

Las entradas que se proponen implementar son un sensor de altura que se simula

como el sensor 1 ya que la altura a la que se encuentra el planeador es un factor determinante

para cambiar de paso de la hélice, así como un sensor de presión del aire sobre el planeador

como sensor 2 para ajustar el paso correcto.

Cada entrada o sensor se representa por 5 funciones de pertenencia; dos funciones

trapezoidales a los extremos para limitar los valores de 0 y 5 (volts), así como tres funciones

60

triangulares en el centro con una relación de proporcionalidad a las entradas de voltaje de los

potenciómetros, lo cual resulta en un universo de discurso entre -1.25 y 6.25 como se muestra

en la Figura 3.1.

Figura 3.1 Conjuntos difusos de entrada s1.

Se definen cinco conjuntos difusos de salida PWM como cinco funciones de

pertenencia triangulares, los cuales se encuentran entre los centros: 2980 y 33941 que

corresponde al valor que será enviado al servomotor para ajustar el paso de la hélice como se

ilustra en la Figura 3.2. Los valores pico de las funciones de pertenencia, es decir donde se

encuentran los centros son; 2980 que equivale a una posición de 90° en el servo, 3083.5,

3187,3290.5 y 3394 que equivale a 113°.

Figura 3.2 Conjuntos difusos de salida PWM.

1 En la sección 3.4.3. se especifica porqué de los valores del los conjuntos difusos de salida.

61

3.1.2 Variables lingüísticas

A los conjuntos de entradas difusas se le asignaron cinco etiquetas lingüísticas

correspondientes a las cinco funciones de pertenencia que tiene cada entrada. La variable

lingüística para la primera entrada s1 se le asigno el nombre de sensor1 y a la entrada s2 se le

asigno el nombre de sensor2.

sensor1 = Pot1= s1 = altura; sensor2 = Pot2 = s2 = presión del aire

0v = NG (etiqueta lingüística Negativo Grande)

1.25v = NP (etiqueta lingüística Negativo Pequeño)

2.5v = Z (etiqueta lingüística Zero)

3.75v = PP (etiqueta lingüística Positivo Pequeño)

5v = PG (etiqueta lingüística Positivo Grande)

De forma gráfica la variable lingüística sensor1, así como las etiquetas lingüísticas

correspondientes a los conjuntos difusos de entrada s1 se pueden observar en la figura 3.3.

Figura 3.3 Variable y etiquetas lingüísticas de la entrada s1.

Para los conjuntos de salida PWM se asigna la variable lingüística Duty y las mismas

etiquetas lingüísticas que a las entradas como se muestra a continuación:

62

PWM =Duty

2980 = NG (etiqueta lingüística Negativo Grande)

3083.5 = NP (etiqueta lingüística Negativo Pequeño)

3187 = Z (etiqueta lingüística Zero)

3290.5 = PP (etiqueta lingüística Positivo Pequeño)

3394 = PG (etiqueta lingüística Positivo Grande)

De forma gráfica la variable lingüística Duty, así como las etiquetas lingüísticas

correspondientes a los conjuntos difusos de salida PWM se pueden observar en la figura 3.4.

Figura 3.4 Variable y etiquetas lingüísticas de la salida PWM.

3.1.3 Reglas difusas

La Tabla de reglas difusas, ver Tabla 3.1, se define en el presente trabajo como una

tabla sintética para probar el controlador difuso sobre la hélice en donde las entradas como se

mencionó anteriormente son dos potenciómetros que entregan valores entre 0 y 5 volts. La

salida difusa es el valor del Duty que es asignado al valor del PWM del servomotor. Para asignar

salidas difusas a Duty se parte de que el sensor 1 representa mayor peso a comparación del

63

sensor 2 en el cambio de paso de la hélice ya que la altura es determinante en el control de la

hélice.

Tabla 3.1 Base de Reglas Duty Sensor 2

NG NP Z PP PG

Sen

sor

1

NG NG NG NG NG NG

NP NG NG NG NG NP

Z NP NP NP Z Z

PP Z Z PP PP PP

PG PP PP PP PG PG

Debido a la mecánica del prototipo, se tiene que invertir el sentido de giro del

servomotor para el correcto cambio de paso, por lo cual solo se modifico la Tabla 3.1 de bases

de reglas, lo cual da como resultado la Tabla 3.2.

Tabla 3.2 Base de Reglas modificada debido a restricciones mecánicas.

Duty Sensor 2

NG NP Z PP PG

Sen

sor

1

NG PG PG PG PG PG

NP PG PG PG PG PP

Z PP PP PP Z Z

PP Z Z NP NP NP

PG NP NP NP NG NG

3.2. Simulación del controlador en LabVIEW

Una vez determinada la estructura del controlador difuso, se simula el mismo en el

Toolkit “Fuzzy System Designer” de LabVIEW para analizar su comportamiento y comparar

resultados con el algoritmo desarrollado en lenguaje C que se muestra en la sección 3.4. La

ubicación de este Toolkit dentro de LabVIEW se ilustra en la Figura 3.5 [12].

Dentro del Toolkit se construyen las funciones de pertenencia para cada variable de

entrada previamente definida en la sección 3.1. En la Figura 3.6 se ilustran las funciones de

pertenencia para la entrada del sensor1. A su vez la salida Duty también se construye con los

valores previamente definidos en la sección 3.1 como se ilustra en la Figura 3.7. Las reglas son

definidas en base a la Tabla 3.2 con una conectiva de antecedente AND producto (a), un

64

consecuente de implicación mínimo (Mamdani) (b) como se menciono al principio del presente

capítulo y un método de defuzificación de los más empleados, el centro de área (c) como se

ilustra en la Figura 3.8.

Figura 3.5 Toolkit “Fuzzy System Designer”

Figura 3.6 Construcción de las funciones de pertenencia del sensor1.

65

Figura 3.7 Construcción de las funciones de pertenencia de la salida Duty.

Figura 3.8 Elaboración de la tabla de reglas.

Para realizar la simulación del controlador en LabVIEW, en la pestaña Test System se

asignan valores a las entradas sensor1 y sensor2 para monitorear el comportamiento del

sistema. En la Figura 3.9 se ilustra una prueba del sistema donde las entradas son 0 y como

salida se obtiene 3393.97.

66

Figura 3.9 Prueba del sistema en LabVIEW.

En la Figura 3.9, de igual forma se puede observar en la parte inferior el número de

reglas que son activadas, así como el peso de cada una en la decisión tomada. Para el caso de la

entradas igual a 0 la regla que se dispara es la 1, es decir cuando sensor1 y sensor2 son NG la

salida Duty es PG como en la Tabla de reglas 3.2.

En la ventana de simulación se puede observar una curva tridimensional, ver Figura

3.10, que representa la relación de 2-entradas 1-salida. Si se quiere observar un grafica más

suave es necesario incrementar el número de muestras de las entradas desde la ventana de

simulación (Number of input X samples). A partir de esta curva se puede deducir que la entrada

1, es decir el sensor1, tiene mayor peso puesto que representa al sensor de altura.

67

Figura 3.10 Superficie de mapeo del controlador difuso en LabVIEW.

3.3. Simulación del controlador en MATLAB

Con el fin de tener una simulación del controlador difuso en un lenguaje de

programación de alto nivel, similar al que será implementado posteriormente en el

dsPIC30F4011, se utiliza MATLAB para comprobar el controlador. MATLAB ofrece comandos

relacionados directamente al control difuso por lo que la programación se facilita de una

manera considerable. El código completo se encuentra en el apéndice A.

Al ejecutar el programa, se piden dato por dato las entradas del controlador, es decir,

los potenciómetros. Los valores deben ser un número cualquiera entre 0 y 5 que equivale al

rango de voltaje que se definió previamente en el presente capítulo, como se ilustra en la

Figura 3.11. Una vez asignados los valores a cada entrada, el programa entrega la salida u, ver

Figura 3.12, que será programada en el dsPIC directamente al ciclo de trabajo del PWM que

mueve el servomotor, es decir el Duty.

68

a) Asignación del valor del sensor 1. b) Asignación del valor de sensor 2.

Figura 3.11 Asignación de valores a entradas del controlador.

Figura 3.12 Valor de la señal de control (Duty).

69

Al igual que LabVIEW, MATLAB tiene un Toolbox que permite simular de manera

gráfica un controlador difuso por medio del FIS Editor. Este Toolbox se abre al escribir la palabra

fuzzy en el Command Window de MATLAB, el cual se puede observar en la Figura 3.13.

Figura 3.13 FIS Editor.

En la ventana principal del FIS Editor es posible modificar parámetros importantes del

controlador, tales como; el método de implicación, el método AND, el tipo de fuzificación, entre

otros. Se creó un controlador tipo Mamdani con dos entradas y una salida al igual que en

LabVIEW.

Las entradas se designaron con el mismo nombre, sensor 1 y sensor2 con cinco

funciones de pertenencia cada una y con un universo de discurso de -1.25 a 6. La salida se

nombra Duty con el mismo universo de discurso que en LabVIEW, es decir de 2876.5 a 3497.5

con cinco funciones de pertenencia triangulares con centros equidistantes.

70

Figura 3.14 Editor de Reglas de FIS Editor.

La base de reglas se elaboró en función a la Tabla 3.2, que se muestra en la Figura 3.14.

El Toolbox contiene un visualizador de reglas al cual se le pueden asignar valores de entrada

para obtener una salida en base a la estructura del controlador. De manera de comprobación se

utilizaron los valores mostrados en la Figura 3.12 como entrada, el resultado se muestra en la

Figura 3.15.

71

Figura 3.15 Simulación del controlador difuso en el FIS Editor.

Otra característica del FIS Editor es que permite ver la superficie de mapeo

correspondiente a las entradas y salida del controlador como LabVIEW, esta superficie que se

crea, ver Figura 3.16, es prácticamente idéntica a la observada en la Figura 3.10 por lo cual se

demuestra que los resultados de las simulaciones son satisfactorias.

72

Figura 3.16 Superficie de mapeo del controlador difuso en MATLAB.

3.4. Implementación del controlador difuso

Una vez simulado y observado el correcto funcionamiento del controlador difuso en

LabVIEW y MATLAB se desarrolla un algoritmo en lenguaje C programado en el compilador C de

CCS para su implementación en un dsPIC30F4011.

73

3.4.1 Antecedentes MCU, DSP y DSC

Los microcontroladores clásicos, denominados de forma resumida MCU, son circuitos

integrados que contienen un procesador digital complejo junto a diversos periféricos auxiliares

que facilitan el desarrollo de las aplicaciones a las que se dedican. De forma resumida puede

decirse que los DSP son microcontroladores dotados de los recursos físicos y lógicos necesarios

para poder soportar aplicaciones específicas del procesamiento digital de señales.

Las instrucciones aritméticas complejas de los MCU, ver Figura 3.17, se ejecutan en

varios ciclos, mientras que las de los DSP solo precisan uno. En los DSP siempre se dispone de

conversores AD rápidos y precisos. Dado el carácter marcadamente matemático de los

programas para DSP, estos están preparados para ser programados con lenguajes de alto nivel,

como C. La velocidad y el rendimiento de los DSP son muy superiores a los habituales en los

MCU. [10]

(a) (b)

Figura 3.17- En (a), fotografía de un microcontrolador convencional o MCU, en (b) un DSP.

Se puede definir un procesador digital de señales o DSP como un procesador monochip

diseñado para resolver un conjunto de operaciones matemáticas sobre una señal continua o

analógica del mundo real, como sonidos e imágenes, expresada digitalmente como

corresponde al sistema representado en la Figura 3.18. Este procesador de señales se ha

convertido en una de las más poderosas herramientas tecnológicas en las que se sustentaran la

ciencia y la ingeniería del siglo XXI.

74

Figura 3.18 El procesamiento digital de señales básicamente se descompone en 3 etapas: conversión de la señal analógica en digital (CAD), procesamiento de la señal digi- tal y la conversión de la señal procesada a una forma analógica (CDA).

Los DSP pueden asemejarse a los clásicos microcontroladores, pero incorporando

arquitecturas y recurso especiales para poder controlar de forma optima los requerimientos

específicos y los algoritmos manejados en el procesamiento digital de señales analógicas.

Las aplicaciones modernas mezclan las funciones típicas MCU con las de

procesamiento digital de señales (DSP). Esta situación ha impulsado a Microchip a fabricar un

circuito hibrido MCU/DSP, cuyo manejo es similar a los clásicos microcontroladores pero que

incluyen las principales prestaciones de los DSP. Así ha nacido el Controlador Digital de Señales,

abreviadamente DSC (Digital Signal Controller), que reúne las características de un

microcontroladores PIC de16 bits y las de un DSP de gama baja.

Los DSC son unos dispositivos que combinan la arquitectura y la programación de los

microcontroladores PIC de 16 bits con los recursos hardware software necesario para soportar

las prestaciones fundamentales de los DSP.

La primera generación de DSC, denominada dsPIC30F, constituyó un intento por parte

de Microchip de facilitar el acercamiento al mundo del procesamiento digital de señales a sus

usuarios de MCU de 8 y16 bits. Con esta intención se ha mantenido el entorno de la

arquitectura y juego de instrucciones de los MCU tradicionales, pero añadiendo la funcionalidad

y los principales requisitos de los DSP, para facilitar la transición a sus clientes habituales.

Posteriormente, la segunda generación de DSC, llamada dsPIC33F, ha potenciado las

capacidades, el número de periféricos y el rendimiento, permitiendo acceder a campos de

aplicación más complejos.

dsPIC es un nombre genérico que se utiliza para referirse a los Controladores Digitales

de Señales (DSC) que ha diseñado Microchip Technology Inc. Para facilitar a los usuarios de sus

microcontroladores PIC la transición al campo de las aplicaciones de los Procesadores Digitales

de Señales (DSP) [10,11].

75

3.4.2 dsPIC30F4011

El modelo seleccionado es el dsPIC30F4011 de 40 pines con empaquetado físico PDIP

(Plastic Dual Inline Package) como se ilustra en la Figura 3.19. Algunos de los rasgos más

característicos del microcontrolador son:

Arquitectura Harvard modificada

83 instrucciones básicas

Ancho de instrucciones de 24 bits y un ancho de datos de 16 bits

48KB en su memoria de programa

2 KB en memoria RAM

1 KB en memoria EEPROM

Velocidad de operación de hasta 30 MIPS

16 registros de trabajo de 16 bits

Instrucciones DSP son de 1 ciclo

16-bit Compare/PWM funciones de salida

6 PWM canales de salida

10-bit Convertidor Analógico Digital (ADC)

Figura 3.19 Pin diagram dsPIC30F4011 40-Pin PDIP.

Una de las razones por la cual fue seleccionado el dsPIC30F4011 es por el voltaje de

operación, que es de 5 volts a diferencia del voltaje de operación de la familia de los dsPIC33F

que es de 3.3 volts. El ADC de 10 bits es suficiente para obtener una buena lectura de los

76

potenciómetros y la práctica programación en un lenguaje de alto nivel, para este caso lenguaje

C es otra garantía para implementar el controlador difuso en un microcontrolador

dsPIC30F4011.

3.4.3 Implementación en el dsPIC30F4011

El objetivo principal del programa que se desarrolla en el compilador PIC C de CCS es

primeramente leer dos potenciómetros por medio de los canales AN2 y AN3 del ADC, los cuales

serán tratados como los sensores de altura y presión del aire. Una vez capturados estos datos,

se procede a obtener el valor de pertenencia en cada conjunto difuso correspondiente a cada

entrada, es decir sensor 1 y sensor2.

Al realizar el proceso de fuzificación, el valor resultante es el que será asignado al

registro de duty que cambia el PWM para mover el servomotor en función a la tabla de reglas

difusas para conseguir el cambio de paso deseado de la hélice.

Para la programación del controlador se utiliza un oscilador de cristal de 4 MHz lo que

permite trabajar como máximo a 16MIPS y a una frecuencia interna del dsPIC de hasta 64 MHz

con la configuración del fusible XTPLL16 que multiplica la frecuencia del cristal por 16,

mejorando de forma considerable la velocidad de procesamiento.

La frecuencia a la que trabaja el servomotor Spektrum que se describe en la sección 2.1

es de 45.45 Hz, es decir el periodo de la señal PWM es de 22ms. La duración del pulso para

mover el servo de 0° a 180° es de 0.68ms a 2.3ms lo que equivale a un periodo de trabajo de

1.62ms. En base a los 23° que se tiene que mover el servomotor para recorrer de forma lineal

los 7.5mm se establecen los centros de las funciones de pertenencia o membresía de la salida

difusa.

Como las funciones de pertenencia de salida son triangulares con centros

equidistantes, los valores que toman estos centros son obtenidos en relación a un origen en

90°, esto con la finalidad de no forzar al servomotor al llevarlo a uno de sus extremos ya sea 0°

o 180°. El valor inicial es de 1.49ms para 90°. Para obtener los siguientes periodos para llevar el

servomotor a 95.75°, 101.5°, 107.25° y finalmente 113° se realiza una regla de tres como la que

se muestra en la ecuación 3.1 donde x equivale al incremento en el periodo de trabajo cada

5.75°.

.81𝑚𝑠 =90° 𝑥=5.75°

(3.1)

77

De la ecuación 3.1 se obtiene 𝑥, que equivale a 0.05175ms. Esto da como resultado

que las duraciones de los pulsos para 90°, 95.75°, 101.5°, 107.25° y 113° sean 1.49ms,

1.54175ms, 1.5935°, 1.64525ms y 1.697ms respectivamente.

Una vez obtenidos los valores a los cuales el servomotor tiene que trabajar para

efectuar un movimiento angular de 23°, es necesario adaptar estos valores a un registro del

dsPIC que equivale al duty del PWM.

Para obtener 1.49 ms en el duty que corresponden a 90° en el servomotor se utiliza la

ecuación 3.2.

𝑑𝑢𝑡𝑦 =𝑡∗𝐹𝑜𝑠𝑐

4∗𝑝𝑟𝑒𝑒𝑠𝑐𝑎𝑙𝑒𝑟 , (3.2)

en donde:

t= tiempo en ms,

Fosc=frecuencia de operación del sistema = 64MHz,

Preesacaler=división del Timer_2 utilizado como comparador de PWM = 8.

De la ecuación 3.2 y los datos proporcionados, se obtiene como resultado 2980 en el

duty para mover el servo motor a 90° y tener ahí nuestra posición inicial u origen. De la misma

manera se calculan los valores necesarios para los siguientes cuatro centros de los conjuntos

difusos de salida donde 113° corresponde a 3394, 107.25° = 3290.5, 101.5° = 3187 y 95.75° =

3083.5.

A la salida del controlador el duty tiene una variación de 414 unidades, entre 2980 y

3394, que producen el recorrido lineal de 7.5mm, lo que da como resultado que por cada

unidad en el duty exista un desplazamiento lineal igual a 18. 1159 µm.

Como parte final de la implementación se elabora un sistema embebido como se

ilustra en la Figura 3.20, en el se integran el microcontrolador dsPIC30F4011, dos

potenciómetros que simulan los sensores de altura y presión del aire, un conector de

alimentación de la tarjeta, un conector de alimentación del servomotor, una pantalla de cristal

liquido (LCD) y un conector para el servomotor.

78

Cabe señalar que la tarjeta desarrollada se toma en consideración como una tarjeta de

prueba y no la tarjeta que será implementada de manera final en un planeador. La LCD se utiliza

para monitorear el correcto funcionamiento del controlador difuso haciendo diversas

comparaciones con las simulaciones en LabVIEW y MATLAB, por lo cual en la versión final la LCD

no será necesaria.

Figura 3.20 Sistema embebido

79

Capítulo 4

Resultados

En el presente capitulo se dan a conocer los resultados obtenidos de la

implementación del controlador difuso en un dsPIC30F4011 para comprobar su desempeño. A

su vez, se hace una comparación con las simulaciones previamente realizadas en LabVIEW y

MATLAB para visualizar el correcto funcionamiento del controlador.

Las pruebas se realizaron de manera de comprobación en el laboratorio debido a que

el fin particular de este trabajo es diseñar e implementar un controlador difuso para la hélice de

paso variable.

La Figura 4.1 muestra en funcionamiento la tarjeta desarrollada donde el monitoreo de

las entradas se visualiza en el LCD. La entrada del sensor1 que corresponde a la altura se

muestra como “e” en el LCD, a su vez la entrada del sensor 2 que corresponde a la presión del

aire se muestra como “d” en la primera línea. El valor que será asignado al duty del PWM en el

dsPIC se muestra en valor flotante de lado izquierdo y en valor entero de lado derecho en la

segunda línea del LCD.

En la Figura 4.2 se ilustra la medición del PWM por medio de un osciloscopio marca

Tektronix para comprobar el correcto ancho de pulso que será enviado al servomotor. En a) se

puede observar que el duty tiene un valor de 3083 lo cual corresponde a un ancho de pulso de

1.54175ms como se puede observar en b).

80

Figura 4.1 Sistema embebido en funcionamiento.

Figura 4.2 Medición del ancho de pulso.

81

En la Figura 4.3 se ilustra la primera prueba realizada con el motor brushless apagado,

es decir, que la hélice no tiene giro alguno para poder visualizar el cambio de paso de forma

clara. En a) se muestra la hélice con paso corto y en b) se muestra el paso largo.

a) Paso corto. b) Paso largo.

.

Figura 4.3 Prueba del sistema con motor brushless apagado.

En la Figura 4.4 se ilustra la primera prueba realizada con el motor brushless encendido

girando a su máxima velocidad, es decir, 11520 RPM @ 12v. Como se puede observar en a), las

palas de la hélice se ven más delgadas por el efecto de giro donde se representa el paso corto, a

comparación de b), donde las palas se aprecian más grandes, es decir el paso largo de la hélice

donde se deja pasar la mayor cantidad de aire lo que produce un mayor desplazamiento lineal

con las misma RPM.

82

a) Paso corto. b) Paso largo.

.

Figura 4.4 Prueba del sistema con motor brushless encendido.

Una vez realizadas las primeras pruebas y observado que el funcionamiento del

mecanismo es el adecuado para cambiar el paso de la hélice de forma proporcional al duty, se

elabora una tabla comparativa, ver Tabla 4.1, de los resultados experimentales y los resultados

simulados en LabVIEW y MATLAB de los centros de los conjuntos difuso, es decir, valores de 0,

1.25, 2.5, 3.75 y 5 para las entradas, con el fin de comprobar el desempeño del controlador

difuso.

83

Tabla 4.1. Comparación de resultados experimentales y simulados con valores de entrada en los centros de los conjuntos difusos.

MATLAB LabVIEW

e=s1 d=s2 Entero Flotante

5 4.975 2980 2980 2980 2980.08

3.748 4.975 3083 3083.6 3083.8 3083.73

2.497 4.975 3187 3187.3 3187.5 3187.27

1.256 4.975 3293 3293.3 3293.4 3292.52

0 4.975 3393 3393.3 3394 3393.97

5 3.748 2980 2980 2980.3 2980.33

3.748 3.748 3083 3083.7 3083.8 3083.74

2.497 3.748 3188 3188 3188.3 3187.87

1.256 3.748 3392 3392 3392 3392.03

0 3.748 3394 3394 3394 3393.97

5 2.497 3083 3083.4 3083.5 3083.5

3.748 2.497 3084 3084.3 3084.6 3084.25

2.497 2.497 3290 3290.9 3291 3290.69

1.256 2.497 3093 3093 3393 3393.24

0 2.497 3394 3394 3394 3393.97

5 1.256 3083 3083.4 3083.5 3083.5

3.748 1.256 3186 3186.2 3186.3 3186.43

2.497 1.256 3290 3290.8 3291 3290.69

1.256 1.256 3393 3393 3393 3393.24

0 1.256 3394 3394 3394 3393.97

5 0 3083 3083.5 3083.5 3083.5

3.748 0 3187 3187 3187.3 3187.15

2.497 0 3290 3290.7 3291 3290.69

1.256 0 3392 3392 3393 3393.23

0 0 3393 3393 3394 3393.97

ENTRADAS SALIDA (duty)

volts Lenguaje C (dsPIC)

La Tabla 4.1, se elaboró en base al los datos mostrados en el LCD del sistema

embebido. Los mismos datos que se visualizan en la LCD se capturan como entradas en las

simulaciones de LabVIEW y MATLAB para obtener la salida correspondiente. En función de la

Tabla de 25 reglas difusas previamente declarada, se observa que la salida difusa cambia a sus 5

estados NG, NP, Z, PP y PG de forma proporcional al valor del sensor1 y el sensor 2.

En la Tabla 4.2 se muestran la comparación de resultados experimentales y simulados

con valores aleatorios diferentes a los centros de los conjuntos difusos de las entradas, de

84

manera que se pueda tener un panorama más amplio del desempeño del controlador

implementado.

Tabla 4.2 Comparación de resultados con valores aleatorios diferentes a los centros de

los conjuntos difusos de entrada.

MATLAB LabVIEW

e=s1 d=s2 Entero Flotante

4.877 4.613 2992 2992.8 2992.9 2991.19

4.687 3.435 3031 3031.5 3031.6 3030.9

3.279 4.203 3124 3124.3 3124.4 3123.6

2.829 1.5 3252 3252.3 3252.5 3252.27

2.346 0.747 3305 3305.9 3306 3305.17

1.871 2.761 3330 3330.1 3330.3 3329.66

1.612 3.279 3340 3340.9 3341.1 3341.57

1.163 4.222 3354 3354.9 3355 3354.8

0.777 4.452 3359 3359.5 3359.5 3359.76

0.874 1.871 3394 3394 3394 3393.94

ENTRADAS SALIDA (duty)

volts Lenguaje C (dsPIC)

Para tener una mayor perspectiva del movimiento lineal que se produce para cambiar

el paso de la hélice, en la Figura 4.5 se muestran las posiciones de la hélice cuando el duty toma

los cinco valores correspondientes a los centros de la salida difusa, es decir, 2980, 3085.5, 3187,

3290.5 y 3394.

85

a) Duty = 2980 =NG. b) Duty = 3083.5 = NP.

c) Duty = 3187 = Z. d) Duty = 3290.5 = PP.

86

e) Duty = 3394 = PG.

Figura 4.5 Cinco posiciones principales de la hélice de paso variable.

87

Capítulo 5

Conclusiones y trabajo futuro

En este ultimo capitulo se dan a conocer las conclusiones y propuestas de trabajo

futuro sobre el sistema implementado.

5.1. Conclusiones

Los resultados mostrados en el capítulo 4 demuestran que el controlador difuso

diseñado e implementado en el presente trabajo se comporta de manera satisfactoria en el

control de paso de la hélice cuando las entradas provienen de dos potenciómetros que varían la

señal de entrada entre 0 y 5 volts.

El prototipo mecánico construido cumplió con el objetivo de producir un movimiento

lineal de 7.5mm en base a un movimiento angular proveniente del servomotor al que se le

aplico el controlador difuso de 23°, con lo cual se obtienen 414 posiciones para el cambio de

paso de la hélice, que equivale a una resolución de 18. 1159 µm por unidad en el duty. Este

prototipo fue necesario para poder comprobar el correcto funcionamiento del controlador en

un sistema real.

El algoritmo del controlador difuso que se desarrolló en lenguaje C y cuya

implementación se llevo a cabo en un dsPIC30F4011, demostró tener un desempeño óptimo

para la variación de paso de la hélice.

La simulación del controlador difuso en el Toolkit “Fuzzy System Designer” de LabVIEW

permitió observar de forma gráfica el comportamiento del sistema, lo cual dio como resultado

una superficie de control donde se puede monitorear la salida del controlador en base a las

entradas provenientes de dos potenciómetros.

88

La simulación del controlador difuso en MATLAB fue necesaria para establecer una

comparación con los resultados experimentales y los datos obtenidos en la simulación de

LabVIEW debido a que, la programación en MATLAB es de alto nivel, así como el lenguaje C, con

lo cual se demostró la funcionalidad del controlador en un software con estructura similar al

algoritmo implementado a diferencia de la programación grafica de LabVIEW.

La simulación del controlador difuso en el Fuzzy Logic Toolbox de MATLAB permitió

observar de forma gráfica el comportamiento del sistema con otra plataforma diferente a

LabVIEW, lo cual dio como resultado una superficie de control prácticamente exacta en ambos

casos, así se demuestra el correcto funcionamiento del controlador en lenguajes de

programación gráficos.

La implementación del algoritmo de control en un sistema embebido para el control de

la hélice de paso variable mostró un comportamiento excelente para las pruebas de

laboratorio, en donde se monitoreo en base a una LCD la salida del duty para el PWM del

servomotor y en base a esta salida se pudo obtener una tabla comparativa con las simulaciones

en MATLAB y LabVIEW para establecer el adecuado funcionamiento del controlador.

De manera general el proyecto realizado en la estadía, cumple con la expectativa de

realizar el diseño y la implementación de un controlador difuso en un dsPIC30F4011 para una

hélice de paso variable en pruebas de laboratorio.

5.2. Trabajo futuro

El trabajo de tesis se puede ampliar con diversos trabajos a futuro, esto con la finalidad

de poder implementar el controlador difuso en un planeador eléctrico.

Es necesario analizar de forma detallada el mecanismo para poder ajustarlo a un

planeador que se tenga en el Laboratorio de Sistemas Dinámicos Controlables, esto con el fin de

poder hacer pruebas reales ya que en el presente trabajo solo se hicieron pruebas de

laboratorio. Para esto se necesita considerar el tipo de material, debido a que el peso es un

factor importante a considerar en la aeronave.

La implementación de los sensores de altura y de presión del aire sobre la aeronave en

el sistema embebido, son indispensables para poder realizar pruebas reales en un planeador,

cabe resaltar que las pruebas necesarias para probar la fiabilidad del controlador ya fueron

realizadas con éxito en el laboratorio, por lo cual es cuestión de calibrar los sensores para su

correcto funcionamiento. En dado caso que las entradas de voltaje cambien respecto al diseño

elaborado del controlador, el código de programación es bastante amigable, por tal motivo la

89

modificación de unas cuantas líneas o parte de ellas será necesario para ajustar los nuevos

valores que se requieran.

Otro trabajo que se puede realizar para tener la comparación del rendimiento del

controlador difuso es obtener el modelo matemático de la hélice para poder así involucrar de

manera completa los elementos que repercuten en el cambio de paso y así determinar si el

controlador implementado es lo suficientemente eficiente para trabajar este tipo de hélices con

las entradas propuestas de altura y presión del aire.

90

Bibliografía

[1] Passino K., Yurkovich S. Fuzzy Control. Addison-Wesley, 1998.

[2] Barragán P.A. J. Síntesis de Sistemas de Control Borroso Estables por Diseño. PhD tesis,

Departamento de Ingeniería Electrónica, de Sistemas Informáticos y Automática,

Universidad de Huelva, 2009.

[3] Oscal T. C., Yao-Chou L., and Hwai-Tsu C. Fuzzy reasoning processor for camera image autofocus. Visual Communications and Image Processing’95, (1995) 347–354.

[4] Vélez V. M. A. Metodología para mantener la interpretabilidad en el modelado utilizando

sistemas borrosos. PhD tesis, Departamento de Ingeniería Electrónica, de Sistemas

Informáticos y Automática, Universidad de Huelva, 2011.

[5] Ordoñez R. R. C. Aplicación técnica de la aerodinámica. México DF.

[6] Muñoz M. A., Nociones básicas de Vuelo. España, 2002.

[7] DX5e 5-Channel Full Range DSM2 2.4GHz Radio System, SPEkTRUM Radio users´s guide, 2008.

[8] Flores S. G. Prototipo de Vehículo aéreo no tripulado. Universidad Politécnica de Pachuca, 2011.

[9] Krar, Chek. Tecnología de las Máquinas Herramienta. Alfaomega, 2002.

[10] Angulo U. J. M., Etxebarria R. A., Angulo M. I., and Trueba P. I. dsPIC Diseño práctico de aplicaciones. Mc Graw Hill, 2008. [11] Benito U. M. Apuntes de: Sistemas embebidos. Universidad de Murcia, 2009.

[12] LabVIEW PID and Fuzzy Logic Toolkit User Manual, National Instruments, 2009.

[13] Circuitos electrónicos de Radio Control, http://www.e-radiocontrol.com.

91

Apéndice A

Códigos de Programación

A.1. Código de MATLAB

%% Controlador Difuso clear all close all clc disp(' Controlador Difuso ' ); disp(' '); a=input ('Valor de sensor1 (0-5 v): '); b=input ('Valor de sensor2 (0-5 v): '); %Conjuntos difusos de sensor1 s1NG=trapmf (a, [-1.25, -1.25, 0, 1.25]); s1NP=trapmf (a, [0, 1.25, 1.25, 2.5]); s1Z=trapmf (a, [1.25, 2.5, 2.5, 3.75]); s1PP=trapmf (a, [2.5, 3.75, 3.75, 5]); s1PG=trapmf (a, [3.75, 5, 6.25, 6.25]); %Conjuntos difusos de sensor2 s2NG=trapmf (b, [-1.25, -1.25, 0, 1.25]); s2NP=trapmf (b, [0, 1.25, 1.25, 2.5]); s2Z=trapmf (b, [1.25, 2.5, 2.5, 3.75]); s2PP=trapmf (b, [2.5, 3.75, 3.75, 5]); s2PG=trapmf (b, [3.75, 5, 6.25, 6.25]); %FAM (centros MF)

92

T= [3394, 3394, 3394, 3394, 3394; 3394, 3394, 3394, 3394, 3290.5; 3290.5, 3290.5, 3290.5, 3187, 3187; 3187, 3187, 3083.5, 3083.5, 3083.5; 3083.5, 3083.5, 3083.5, 2980, 2980]; sensor1= [s1NG s1NP s1Z s1PP s1PG]; %en i sensor2= [s2NG s2NP s2Z s2PP s2PG]; %en j num=0; den=0; for i=1:5 for j=1:5 prod (i,j)=sensor1(i) * sensor2(j); %implicación producto area (i,j)=207*(prod(i,j)-(prod(i,j)^2/2)); %Area bajo MF num1 (i,j)=T (i,j)*area(i,j); %Matriz de fuerza a partir de los valores de entrada num=num1 (i,j)+num; %Sumatoria Numerador den=area (i,j)+den; %Sumatoria Denominador end end %Salida u=num/den

A.2. Código del dsPIC30F4011

/************************** CONTROLADOR DIFUSO *****************************/ #include <30F4011.h> // Microcontrolador a utilizar #device adc=10 // Resolución del ADC #include <math.h> // Librerías #FUSES XT_PLL16 // XT Crystal Oscillator mode with 16X PLL #FUSES PR // Primary Oscillator #FUSES NOPUT // No Power Up Timer #FUSES NOBROWNOUT // No brownout reset #FUSES NOPROTECT // Code not protected from reading #FUSES NOWDT // No Watch Dog Timer #FUSES MCLR // Master Clear pin enabled

93

#use delay (clock=64000000) // Frecuencia de trabajo #define LCD_ENABLE_PIN PIN_D0 // Configuración del LCD #define LCD_RS_PIN PIN_D2 #define LCD_RW_PIN PIN_D3 #define LCD_DATA4 PIN_F1 #define LCD_DATA5 PIN_F4 #define LCD_DATA6 PIN_F5 #define LCD_DATA7 PIN_F6 #include <lcd.c> #define ADC_TAD_MUL_1 0x0100 /************************* DEFINICION DE FUNCIONES ***************************/ void iniciaFAM(); // Matriz de memoria asociativa difusa // sensor1 MF float s1_NG(float x); float s1_NP(float x); float s1_Z(float x); float s1_PP(float x); float s1_PG(float x); // sensor2 MF float s2_NG(float x); float s2_NP(float x); float s2_Z(float x); float s2_PP(float x); float s2_PG(float x); // MF triangular y trapezoidal float trimf(float a, float b, float c, float x); float trapmf(float a, float b, float c, float d, float x); /************************** ***VARIABLES GLOBALES *****************************/ float sensor1,sensor2; int16 ang1, ang2; unsigned int16 duty; float defuzzy;

94

float32 h=0,num=0,den=0; int i=0,j=0,k=0; float pos[4][3],FAM[5][5]; int cont=0; float xs1[5]; float xs2[5]; /************************** PROGRAMA PRINCIPAL *****************************/ void main() setup_timer2(TMR_INTERNAL | TMR_DIV_BY_8,0xABDF); //periodo de 22ms para servos setup_compare(2, COMPARE_PWM | COMPARE_TIMER2); setup_adc_ports(sAN2|sAN3|VSS_VDD); //setup_adc(ADC_CLOCK_DIV_2|ADC_TAD_MUL_1); #asm mov #0x0101, W4; mov W4,0x02A4; mov #0x80E0, w4; mov w4, 0x02A0; #endasm set_tris_B(0x0F); // Configuración de puertos set_tris_D(0x00); set_tris_F(0x00); lcd_init(); iniciaFAM(); while(k==0) num=0; den=0; cont=0; for (i=0;i<=4;i++) // Limpiar arreglos xs1[i]=0; xs2[i]=0; // sensor1 & sensor2 set_adc_channel(2); // sensor1=Altura por canal 2 delay_us(5); ang1=read_adc(); sensor1= (5.0 * ang1 / 1023.0); // valor entre 0 y 5 resolución de 10 bits delay_us(5); set_adc_channel(3); // sensor2=Presión del aire por canal 3

95

delay_us(5); ang2=read_adc(); sensor2= (5.0 * ang2 / 1023.0); // Evaluación del grado de pertenencia xs1[0]=s1_NG(sensor1); xs1[1]=s1_NP(sensor1); xs1[2]=s1_Z(sensor1); xs1[3]=s1_PP(sensor1); xs1[4]=s1_PG(sensor1); xs2[0]=s2_NG(sensor2); xs2[1]=s2_NP(sensor2); xs2[2]=s2_Z(sensor2); xs2[3]=s2_PP(sensor2); xs2[4]=s2_PG(sensor2); for (i=0;i<=4;i++) if (xs1[i]>0) for (j=0;j<=4;j++) if (xs2[j]>0) pos[cont][0]=xs1[i]; // posición xs1 pos[cont][1]=xs2[j]; // posición xs2 pos[cont][2]=FAM[i][j]; // posición de salida "centro MF" cont++; for (i=0;i<=3;i++) h= pos[i][0] * (pos[i][1]); num+= pos[i][2] * 207 * ( h-( h * h / 2.0)); // x+=y is x=x+y "Sumatoria" den+= 207 * ( h-( h * h)/ 2.0); defuzzy= num / den; // Flotante if(defuzzy>3394) // Se establecen límites máximo y mínimo duty=(int16)3394; // Entero de 16 bits, resolución del Duty else if(defuzzy<=2980) duty=(int16)2980; else duty=(int16)defuzzy;

96

set_pwm_duty(2,duty); // Periodo del ciclo de trabajo lcd_gotoxy(1,1); printf(lcd_putc,"s1=%0.3fs2=%0.3f",sensor1,sensor2); lcd_gotoxy(1,2); printf(lcd_putc,"u=%.1f d=%4ld",defuzzy,duty); delay_ms(10); // periodo de muestreo // MF triangular float trimf(float a, float b, float c, float x) if(x>=a && x<=b) return (x-a)/(b-a); else if (x>=b && x<=c) return (c-x)/(c-b); else return 0; // MF Trapezoidal float trapmf(float a, float b, float c, float d, float x) if(x>=a && x<=b) return (x-a)/(b-a); else if (x>=b && x<=c) return 1; else if (x>=c && x<=d) return (d-x)/(d-c); else return 0; // sensor1 (Altura) float s1_NG(float x) return trapmf(-1.25,-1.25,0,1.25,x); float s1_NP(float x) return trimf(0,1.25,2.5,x); float s1_Z(float x) return trimf(1.25,2.5,3.75,x);

97

float s1_PP(float x) return trimf(2.5,3.75,5,x); float s1_PG(float x) return trapmf(3.75,5,6.25,6.25,x); // sensor2 (Presión del aire) float s2_NG(float x) return trapmf(-1.25,-1.25,0,1.25,x); float s2_NP(float x) return trimf(0,1.25,2.5,x); float s2_Z(float x) return trimf(1.25,2.5,3.75,x); float s2_PP(float x) return trimf(2.5,3.75,5,x); float s2_PG(float x) return trapmf(3.75,5,6.25,6.25,x); // BASE DE REGLAS SALIDA: centros de MF void iniciaFAM() // sensor1 (FILAS) – sensor2 (COLUMNAS) // NG NP Z PP PG FAM[0][0]=3394; FAM[0][1]=3394; FAM[0][2]=3394; FAM[0][3]=3394; FAM[0][4]=3394; //NG FAM[1][0]=3394; FAM[1][1]=3394; FAM[1][2]=3394; FAM[1][3]=3394; FAM[1][4]=3290.5; //NP FAM[2][0]=3290.5;FAM[2][1]=3290.5;FAM[2][2]=3290.5;FAM[2][3]=3187; FAM[2][4]=3187; //Z FAM[3][0]=3187; FAM[3][1]=3187; FAM[3][2]=3083.5;FAM[3][3]=3083.5;FAM[3][4]=3083.5; //PP FAM[4][0]=3083.5;FAM[4][1]=3083.5;FAM[4][2]=3083.5;FAM[4][3]=2980; FAM[4][4]=2980; //PG