Sistema de Riego Inteligente Borroso
Sistema de Riego Inteligente Borroso
Sistema de Riego Inteligente Borroso
basado en
MOMENTOS
EN ESTACIONES AHORRO DE AGUA
DE RIEGO
Ventajas:
• Eficiencia: Ofrece salidas de una forma veloz y precisa
• Simplicidad: Al utilizar conceptos parecidos a los usados por los humanos al
razonar, se puede conseguir que las reglas sean sencillas de forma que la
comunicación con el experto y las modificaciones de las mismas se pueden realizar
fácilmente.
• Estabilidad de los resultados: Capacidad de adelantarse en el tiempo a los
acontecimientos, estabilizando siempre el entorno físico que controla.
DESARROLLO DEL SISTEMA
Definición del sistema
Adquisición de Para adquirir el conocimiento lo que se suele hacer es entrevistar a un experto en el tema.
conocimiento Después de la entrevista, en la que se toman notas, se agrupa y organiza el conocimiento
obtenido de forma que se pueda utilizar por el sistema.
Para la primera versión, el objetivo era realizar un sistema pequeño con todas las
Conceptualización características del sistema total.
Para la salida se escogió el tiempo de apertura de los aspersores, puesto que el ángulo de
apertura no es suficiente.
Se utilizaron un conjunto de reglas con lógica borrosa, ya que los conceptos utilizados no
Formalización son nítidos, es decir, se mueven en torno a un rango de valores y no a valores binarios (uno
y cero) como la lógica clásica.
Diseño
• El sistema de reglas. Implementa el controlador fuzzy que toma las decisiones según las
entradas.
Identificación • La interfaz Java. Para poder mostrar el sistema de forma más sencilla, como no tenemos la
de las partes posibilidad de hacer una implementación hardware, la única manera de hacerlo es mediante
del sistema una simulación software.
Especificación
de las partes El sistema de reglas ha sido diseñado utilizando la información y las decisiones realizadas en la
del sistema fase anterior (estudio del conocimiento).
Herramientas:
• Descripción
• Verificación
• Síntesis
• Definición de operadores
• Generación de gráficas 2D y 3D
• Aprendizaje
Una vez definidos los conjuntos borrosos comenzamos el diseño de los dos motores de inferencia, uno para
la variable percepción solar, y otro para la variable final de salida, tiempo. La inferencia se realiza en base a
un sistema de reglas definido. La variable percepción solar se introduce en el motor general de la aplicación
como variable de entrada fuzzy que proviene de otro motor.
El sistema de reglas se modela con reglas del tipo IF THEN ELSE. De esta forma obtenemos el
comportamiento deseado para este sistema. Con estas reglas realizamos la inferencia del sistema y
ajustamos el comportamiento del controlador.
En estas reglas se ve el uso de los diferentes operadores, ya que dependiendo de su definición los
resultados de cada regla variarán. Por ejemplo, en el caso de la lógica del producto, la definición de los
operadores y del tipo defuzzyficación tendría este aspecto:
Al ejecutar las reglas con unas determinadas variables de entrada y la definición de una de las lógicas,
vemos que la evaluación de las reglas varía
Una vez de definida la base de
reglas, realizada la inferencia y
habiendo pasado por la
defuzzyficación, para ver los
resultados estudiamos las gráficas
en 3D que nos facilita el propio
programa Xfuzzy. Según la familia
que usemos para la definición de
operadores, obtendremos un
resultado u otro
Para implementar el sistema se ha utilizado Borland JBuilder con el JDK 1.5. También se ha creado un
proyecto en Eclipse, ya que éste es de libre distribución por lo que el código será más accesible.
Cabe destacar que para conseguir un ahorro óptimo de agua en el riego, objetivo del desarrollo del
sistema, se ha incluido en ésta parte una matización del tiempo de riego que da la clase que describe el
sistema difuso según la cantidad de agua disponible en un depósito del que se supone que regará. Con esto
queremos simular lo que ocurre cuando el agua de las reservas pasa un cierto límite y se imponen
restricciones en el riego.
Como detalles de implementación, destacar que todas las inferencias son realizadas por las clases Java
generadas por la herramienta XFuzzy. Aparte de la interfaz gráfica, diseñada para visualizar de manera
precisa la evolución del entorno, se han tomado algunas consideraciones a la hora de modelar ciertos
aspectos. Debido a que es un sistema software, hemos tenido que simular algunos parámetros
climatológicos, como es la humedad relativa de la tierra, dado que a falta de sensor hardware, eran
necesarios estos datos. Para ello, y de manera empírica, se ha calibrado el ajuste del encharcamiento de la
tierra para obtener uno datos bastante aproximados.
Diagrama de paquetes de
la Aplicación
Nuestra Aplicación se divide en tres paquetes fundamentales, que son SistemaRegadio, lógica y
JMathPlot. La interacción de los paquetes se realiza de acuerdo al siguiente diagrama.
Diagrama de Casos de Uso de la Aplicación
• el diagrama de Casos de Uso de la aplicación, donde quedan reflejadas el
conjunto de interacciones que el usuario puede tener con el sistema, ya sea en la
Simulación Instantánea, Diaria o Mensual.
La implementación de la clase que describe
el sistema difuso
• (SistemaRegadio_logica.java) contiene varias clases abstractas y
concretas: para implementar los comparadores, operadores, conjuntos,
reglas e inferencia.
Clases abstractas:
• InnerMembershipFunction
• InnerOperatorset
Clases concretas:
• InnerConclusion
• MF_xfl_bell
• OP_Operador
PRUEBA
• Es la clase encargada de “crear” la aplicación, posee el método main() y es la clase que
crea el panel de pestañas, el hilo de eventos de reloj, que se disparará cada décima de
segundo. También crea un menú, utilizado sobretodo para poder cambiar el tipo de la
lógica borrosa que se esté utilizando.
• hiloEventosReloj
• tareaMinuto
• pestañaInstantánea
• pestañaDia
• pestañaMes
• Reloj
• RelojCronómetro
• Vista2D
• panelSlider
• HoraRiego
• AumDis
• jMathPlot
Pruebas
Las pruebas del sistema nos han servido para poder ajustar determinados aspectos visuales,
facilitando el manejo al usuario.
Se introdujo un contador de minutos de riego, que llevase la cuenta del tiempo de ejecución
del riego. De esta forma, al igualar o superar el tiempo inferido, el sistema detiene el riego.
1. Ejecución de las pruebas
2. Resultados
• Verano
• Otoño
• Invierno
• Primavera
CONCLUSIONES