2. La aplicación¶
2.1. Estructura del código¶
El código fue realizado utilizando una combinación de programación estructurada y programación orientada a objetos. En la siguiente imagen se observa un esquema que representa la jerarquía del programa:
En la primera columna se encuentra el archivo main o principal, el cual se encarga de la creación de la ventana gráfica y del llamado de los archivos «handlers», los cuales se observan en la columna dos (Análisis, Entonación, Lógica difusa y Simulación), los archivos «handler» tienen la tarea de manejar la interfaz gráfica y hacer de enlace entre el usuario y las rutinas.
Los archivos de rutinas se observan en la tercera columna, su función es la de realizar los cálculos necesarios que solicite el usuario por medio de la interfaz gráfica.
2.2. Interfaz gráfica¶
La interfaz gráfica fue realizada utilizando PySide2, las funciones de Laboratorio Virtual fueron separadas en pestañas. En las siguientes imágenes se señalan cada uno de los componentes que integran cada función.
2.2.1. Función de análisis¶
Pestañas de funciones
Selector de representación
Coeficientes de la función de transferencia
Agregado de Delay
Discretización del proceso
Datos del análisis
Botón para realizar el análisis
Pestañas de gráficas
Gráfica con Matplotlib
Barra de herramientas de la gráfica
Matrices de estados
2.2.2. Función de entonación de controladores PID¶
Función de entonación automática
Resolución de los sliders
Sliders de ganancias
Sliders de tiempo y coeficiente N
Gráfica con PyQtGraph
Carga del archivo CSV
Separador del archivo CSV
SPAN de la variable del proceso
SPAN de la entrada al proceso (EFC)
Slider para ajustar $t_1$
Gráfica de la variable del proceso
Gráfica de la entrada al proceso (EFC)
2.2.3. Función de diseño de controladores difusos¶
Número de entradas y salidas
Selección de esquema de control
Botón para iniciar el diseño
Botón para cargar un diseño
Botones para salvar los diseños
Botón para exportar el diseño a FIS
Pestañas para el diseño
Información general
Estructura de entradas y salidas
Esquema de control
Número de entrada/salida
Nombre de la entrada/salida
Número de etiquetas
Rango de la entrada/salida
Método de defuzzificacion
Número de etiqueta
Nombre de la etiqueta
Tipo de función de membresía
Definición de la función de membresía
Gráfica de las funciones de membresía
Lista de reglas
Lógica de las premisas
Etiquetas de las entradas
Opción para negar la entrada
Etiquetas de las salidas
Peso de la salida
Botón para agregar una regla
Botón para cambiar una regla
Botón para eliminar una regla
Botón para crear el controlador y realizar pruebas
Activación de reglas de forma gráfica para las entradas
Slider para asignar entrada
Valor de entrada
Activación de reglas de forma gráfica para las salidas
Valor de salida
Respuesta del controlador
Barra indicadora de altura (para dos entradas)
2.2.4. Función de simulación de sistemas de control¶
Pestañas de simulación
Esquema de control
Barras de configuración
Botón para simular
Gráfica de respuesta del sistema
Gráfica de la señal de control
Barra de configuración general
Selección del esquema de control
Tiempo de simulación
Valor del setpoint
Setpoint avanzado (variable)
Barra de configuración avanzada
Orden del atraso por PADE
Activación del filtro para la derivada
Selección del método de Runge-Kutta
Tolerancia relativa para el paso variable
Tolerancia absoluta para el paso variable
Máximo incremento del tamaño de paso
Mínimo decremento del tamaño de paso
Factor de seguridad para el paso variable
Botón para reiniciar la configuración
Barra de bloques adicionales
Activación del sensor
Numerador del sensor
Denominador del sensor
Activación del accionador
Numerador del accionador
Denominador del accionador
Activación del saturador
Límite inferior del saturador
Límite superior del saturador
Barra de configuración del controlador
Controlador difuso
Ganancia proporcional del PID
Ganancia integral del PID
Ganancia derivativa del PID
Coeficiente N