3.2.3.1. Archivo de rutinas que contiene las clases FuzzyController y FISParser¶
Archivo que contiene las clases FuzzyController y FISParser, para administrar el controlador difuso y cargar y exportar archivos .fis respectivamente
-
class
rutinas_fuzzy.FISParser(file, InputList=None, OutputList=None, RuleEtiquetas=None)[fuente]¶ Clase para cargar y exportar archivos .fis, para cargar los archivos FIS las funciones get_system, get_vars,get_var y get_rules fueron tomadas de yapflm:
Yet Another Python Fuzzy Logic Module: https://github.com/sputnick1124/yapflm
Para obtener los datos necesarias del .fis, de allí, se aplica la función fis_to_json para completar el parsin. En el caso de la exportación, se realiza utilizando la función json_to_fis
-
__init__(file, InputList=None, OutputList=None, RuleEtiquetas=None)[fuente]¶ Constructor de la clase, inicializa las variables a utilizar y selecciona entre cargar el fis o exportarlo dependiendo de las variables con las que se cree el objeto
- Parámetros
file (str) – Dirección del archivo a cargar o exportar
inputlist (list, opcional) – Lista de variables de entrada, defaults to None
OutputList (list, opcional) – Lista de variables de entrada, defaults to None
RuleEtiquetas (list, opcional) – Lista con la información necesaria para crear las reglas, defaults to None
-
fis_to_json()[fuente]¶ Función para completar la creación del controlador a partir de un archivo .fis
- Devuelve
Conjunto de entradas, salidas y reglas
- Tipo del valor devuelto
tuple(list)
-
-
class
rutinas_fuzzy.FuzzyController(inputlist, outputlist, rulelist=[])[fuente]¶ Clase para administrar el controlador difuso, a partir de la misma se puede crear el controlador difuso e ir creandolo de forma programática por medio de la interfaz grafica definida en Ui_VentanaPrincipal.py y manejada en FuzzyHandler.py
-
__init__(inputlist, outputlist, rulelist=[])[fuente]¶ Se utiliza para inicializar el controlador con las entradas y salidas del mismo, en caso de que se envié el parametro opcional, rulelist, se crea el controlador a partir de las reglas suministradas y queda listo para usar
- Parámetros
inputlist (list) – Lista de variables de entrada
outputlist (list) – Lista de variables de salida
rulelist (list, opcional) – Lista de reglas, defaults to []
-
agregar_regla(window, Etiquetasin, Etiquetasout, lógica)[fuente]¶ Función para crear una regla a partir de un set
- Parámetros
window (object) – Objeto que contiene a la ventana principal
Etiquetasin (list) – set de entrada
Etiquetasout (list) – set de salida
lógica (bool) – Lógica a utilizar
- Devuelve
Ultima regla agregada
- Tipo del valor devuelto
ObjectType
-
calcular_valor(inputs, outputs)[fuente]¶ Función para calcular las salidas del controlador dado sus entradas, esta función se utiliza en la funcionalidad de simulación de sistemas de control
- Parámetros
inputs (list) – Lista con los valores de entrada
outputs (list) – Lista vaciá del tamaño del numero de salidas
- Devuelve
Lista de valores de salida del controlador difuso
- Tipo del valor devuelto
list
-
cambiar_metodo(window, o, metodo)[fuente]¶ Función para cambiar el método defuzzificacion de una salida
- Parámetros
window (object) – Objeto que contiene a la ventana principal
o (str) – Numero de salida
metodo – Nombre del nuevo método de defuzzificacion
-
cambiar_nombre_input(window, i, nombre)[fuente]¶ Función para cambiar el nombre de una entrada
- Parámetros
window (object) – Objeto que contiene a la ventana principal
i (int) – Numero de entrada
nombre (str) – Nuevo nombre de la entrada
-
cambiar_nombre_output(window, o, nombre)[fuente]¶ Función para cambiar el nombre de una salida
- Parámetros
window (object) – Objeto que contiene a la ventana principal
o (int) – Numero de salida
nombre (str) – Nuevo nombre de la salida
-
cambiar_regla(window, Etiquetasin, Etiquetasout, index_rule, lógica)[fuente]¶ Función para cambiar una regla a partir de un nuevo set
- Parámetros
window (object) – Objeto que contiene a la ventana principal
Etiquetasin (list) – set de entrada
Etiquetasout (list) – set de salida
index_rule (int) – Indice indicando la regla a cambiar
lógica (bool) – Lógica a utilizar
- Devuelve
Regla cambiada
- Tipo del valor devuelto
ObjectType
-
cambio_etinombre_input(window, inputlist, i, n, old_name)[fuente]¶ Función para cambiar el nombre de una etiqueta en la entrada seleccionada
- Parámetros
window (object) – Objeto que contiene a la ventana principal
inputlist (list) – Lista de variables de entrada
i (int) – Numero de entrada
n (int) – Numero de etiqueta
old_name (str) – Nombre anterior
-
cambio_etinombre_output(window, outputlist, o, n, old_name)[fuente]¶ Función para cambiar el nombre de una etiqueta en la salida seleccionada
- Parámetros
window (object) – Objeto que contiene a la ventana principal
outputlist (list) – Lista de variables de salida
o (int) – Numero de salida
n (int) – Numero de etiqueta
old_name (str) – Nombre anterior
-
cambio_etiquetas_input(window, inputlist, i)[fuente]¶ Función para actualizar las etiquetas de entrada del controlador
- Parámetros
window (object) – Objeto que contiene a la ventana principal
inputlist (list) – Lista de variables de entrada
i (int) – Numero de entrada
-
cambio_etiquetas_output(window, outputlist, o)[fuente]¶ Función para actualizar las etiquetas de salida del controlador
- Parámetros
window (object) – Objeto que contiene a la ventana principal
outputlist (list) – Lista de variables de salida
o (int) – Numero de salida
-
crear_controlador()[fuente]¶ Función para crear el controlador difuso a partir de todas las reglas creadas
-
crear_etiquetas_input(inputlist)[fuente]¶ Función para crear las etiquetas de una entrada a partir de la lista de variables de entrada
- Parámetros
inputlist (list) – Lista de variables de entrada
-
crear_etiquetas_output(outputlist)[fuente]¶ Función para crear las etiquetas de una salida a partir de la lista de variables de salida
- Parámetros
outputlist (list) – Lista de variables de salida
-
crear_input(inputlist)[fuente]¶ Función para crear las variables de entrada a partir de la lista de variables de entrada
- Parámetros
inputlist (list) – Lista de variables de entrada
- Devuelve
Variables de entrada
- Tipo del valor devuelto
list
-
crear_output(outputlist)[fuente]¶ Función para crear las variables de salida a partir de la lista de variables de salida
- Parámetros
outputlist (list) – Lista de variables de salida
- Devuelve
Variables de de salida
- Tipo del valor devuelto
list
-
crear_plots_in(window, ni)[fuente]¶ Función para crear los objetos de graficacion de PyQtGraph de la entrada, el código para la obtención de los valores de salida y el graficado es una version altamente modificada de la función .view() de Scikit-Fuzzy. Las modificaciones realizadas fueron necesarias para cambiar matplotlib por PyQtGraph
- Parámetros
window (object) – Objeto que contiene a la ventana principal
ni (int) – Numero de entradas
-
crear_plots_out(window, no)[fuente]¶ Función para crear los objetos de graficacion de PyQtGraph de la salida, el código para la obtención de los valores de salida y el graficado es una version altamente modificada de la función .view() de Scikit-Fuzzy. Las modificaciones realizadas fueron necesarias para cambiar matplotlib por PyQtGraph
- Parámetros
window (object) – Objeto que contiene a la ventana principal
no (int) – Numero de salidas
-
crear_reglas(rulelistC)[fuente]¶ Función para crear las reglas a partir de una lista que contiene toda la información necesaria, esta lista es creada en FuzzyHandler.py:
Cada posición en la lista contiene un set de entradas, salidas y la lógica a utilizar (AND o OR), a su vez, cada set es una lista que posee en cada posición otra lista con la etiqueta, el numero de entrada/salida y si esta o no negada para el caso de las entradas, en caso de ser salida contiene el peso asignado
- Parámetros
rulelistC (list) – Lista con la información necesaria para crear las reglas
- Devuelve
Lista de reglas
- Tipo del valor devuelto
list
-
eliminar_regla(index_rule)[fuente]¶ Función para eliminar una regla
- Parámetros
index_rule (int) – Indice indicando la regla a eliminar
-
graficar_mf_in(window, i)[fuente]¶ Función para graficar las funciones de membresía de una entrada
- Parámetros
window (object) – Objeto que contiene a la ventana principal
i (int) – Numero de entrada
-
graficar_mf_out(window, o)[fuente]¶ Función para graficar las funciones de membresía de una salida
- Parámetros
window (object) – Objeto que contiene a la ventana principal
o (int) – Numero de salida
-
graficar_prueba_pyqtgraph(window, ni, no)[fuente]¶ Función para actualizar la grafica en función de las nuevas entradas, código tomado y modificado de la función .view() de Scikit-Fuzzy y adaptado para su uso con PyQtGraph
- Parámetros
window (object) – Objeto que contiene a la ventana principal
ni (int) – Numero de entradas
no (int) – Numero de salidas
-
graficar_respuesta_2d(window, inrange, no)[fuente]¶ Función para graficar la respuesta del controlador en caso de poseer una entrada
- Parámetros
window (object) – Objeto que contiene a la ventana principal
inrange (list) – Rango de la variable de entrada
no (int) – Numero de salidas
-
graficar_respuesta_3d(window, inrange1, inrange2, no)[fuente]¶ Función para graficar la superficie de respuesta del controlador en caso de poseer 2 entradas
- Parámetros
window (object) – Objeto que contiene a la ventana principal
inrange1 (list) – Rango de la variable de entrada uno
inrange2 (list) – Rango de la variable de entrada dos
no (int) – Numero de salidas
-
prueba_de_controlador(window, values, ni, no)[fuente]¶ Función para realizar la prueba del controlador
- Parámetros
window (object) – Objeto que contiene a la ventana principal
values (list) – Valores de entradas dados por el usuario con los sliders
ni (int) – Numero de entradas
no (int) – Numero de salidas
-
update_definicion_input(window, inputlist, i, n)[fuente]¶ Función para actualizar la definicion de una función de membresía en la entrada seleccionada
- Parámetros
window (object) – Objeto que contiene a la ventana principal
inputlist (list) – Lista de variables de entrada
i (int) – Numero de entrada
n (int) – Numero de etiqueta
-
update_definicion_output(window, outputlist, o, n)[fuente]¶ Función para actualizar la definicion de una función de membresía en la salida seleccionada
- Parámetros
window (object) – Objeto que contiene a la ventana principal
outputlist (list) – Lista de variables de salida
o (int) – Numero de salida
n (int) – Numero de etiqueta
-