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])