3.2.2.2. Archivo de rutinas para la función de entonación de PID utilizando data de un CSV

Archivo que contiene todas las rutinas necesarias para la funcionalidad de identificación de modelo y tunning con csv

rutinas_CSV.actualizar_Datos(self, Kc, t0, t1, t2, kp, ki, kd)[fuente]

Función para mostrar los resultados obtenidos del modelo en un TextEdit

Parámetros
  • Kc (float) – Ganancia del proceso

  • t0 (float) – Tiempo del inicio del escalón

  • t1 (float) – Tiempo del inicio de la respuesta del proceso ante el escalón

  • t2 (float) – Tiempo en el que el proceso alcanza el 63% de su valor final respecto al cambio

  • kp (float) – Ganancia proporcional

  • ki (float) – Ganancia integral

  • kd (float) – Ganancia derivativa

rutinas_CSV.auto_tuning_method_csv(self, k_proceso, tau, alpha, metodo)[fuente]

Función para obtener las ganancias del controlador PID a partir de los parametros del modelo de primer orden obtenidos de una respuesta escalón, las formulas son las dadas por Ziegler-Nichols y Cohen-Coon para una respuesta escalón en lazo abierto

Parámetros
  • k_proceso (float) – Ganancia del proceso

  • tau (float) – Constante de tiempo del proceso

  • alpha (float) – Tiempo muerto o delay del proceso

  • metodo (str) – Método a utilizar

Devuelve

Ganancias kp, ki y kd

Tipo del valor devuelto

tuple(float, float, float)

rutinas_CSV.calcular_modelo(self, dict_data, indexTime, indexVp, indexEFC, MinVP, MaxVP, MinEFC, MaxEFC)[fuente]

Función para calcular los parametros del modelo de primer orden

Parámetros
  • dict_data (dict) – Diccionario con la data procesada del csv

  • indexTime (int) – Indice que identifica al tiempo

  • indexVp (int) – Indice que identifica a Vp

  • indexEFC (int) – Indice que identifica al EFC

  • MinVP (float) – Limite inferior de Vp

  • MaxVP (float) – Limite superior de Vp

  • MinEFC (float) – Limite inferior de EFC

  • MaxEFC (float) – Limite superior de EFC

Devuelve

Datos del modelo de primer orden, recta tangente y puntos asociados a la recta

Tipo del valor devuelto

tuple(float, float, float, float, float, float, float, float, float)

rutinas_CSV.calculos_manual(self, GraphObjets, Kc, t0, t1, t2, slop, y1)[fuente]

Función para recalcular el controlador PID a partir de los datos del modelo de primer orden con el nuevo tiempo t1, ademas, se grafica la data del csv junto con algunos parametros de la identificación del modelo y la nueva recta

Parámetros
  • GraphObjets (list) – Lista de objetos de graficacion

  • Kc (float) – Ganancia del proceso

  • t0 (float) – Tiempo del inicio del escalón

  • t1 (float) – Tiempo del inicio de la respuesta del proceso ante el escalón

  • t2 (float) – Tiempo en el que el proceso alcanza el 63% de su valor final respecto al cambio

  • slop (float) – Pendiente de la recta de identificación

  • y1 (float) – Punto y1 de la recta de identificación, en este punto se encuentra el mayor cambio respecto al tiempo

rutinas_CSV.entonar_y_graficar(self, dict_data, Kc, tau, y1, y2, t0, t1, t2)[fuente]

Función para calcular el controlador PID a partir de los datos del modelo de primer orden, ademas, se graficá la data del csv junto con algunos parametros de la identificación del modelo

Parámetros
  • dict_data (dict) – Diccionario con la data procesada del csv

  • Kc (float) – Ganancia del proceso

  • tau (float) – Constante de tiempo del proceso

  • y1 (float) – Punto y1 de la recta de identificación, en este punto se encuentra el mayor cambio respecto al tiempo

  • y2 (float) – Punto y2 de la recta de identificación

  • t0 (float) – Tiempo del inicio del escalón

  • t1 (float) – Tiempo del inicio de la respuesta del proceso ante el escalón

  • t2 (float) – Tiempo en el que el proceso alcanza el 63% de su valor final respecto al cambio

Devuelve

Lista de objetos de gráficas y lista de parametros de la recta para el modelado

Tipo del valor devuelto

tuple(list[ObjectType, ObjectType, ObjectType, ObjectType, ObjectType, ObjectType, ObjectType, ObjectType], list[float, float, float, float, float, float])

rutinas_CSV.procesar_csv(self, csv_data)[fuente]

Función para procesar la data del archivo csv, se crea una nueva data en un diccionario, se normalizan las escalas con el span y se transforma el tiempo a segundos. Para la transformación de tiempo a segundos los formatos aceptados son:

hh:mm:ss

mm:ss

ss

En cualquiera de los casos se llevara a segundos y se restara el tiempo inicial para que empiece en cero.

Parámetros

csv_data (numpyArray) – Data del csv

Devuelve

Data extraida del archivo CSV asi como indices, máximos y mínimos de la data

Tipo del valor devuelto

tuple(dict, list[int, int, int, float, float, float, float])