Академический Документы
Профессиональный Документы
Культура Документы
OBJETIVOS
REFERENCIAS
Andrew Knight Basics of MATLAB and Beyond. Chapman and Hall/CRC; 1 edition, 1999.
Fernandez del Busto y Ezeta, Ricardo., "Análisis y diseño de sistemas de control digital", Mc Graw
Hill, 2013, ISBN: 978-607-15-0773-0
http://www.mathworks.com
SESIÓN SIMULACIÓN
INTRODUCCIÓN
m(t) → m(kT),
e(t) → e(kT),
(2)
Reemplazando en (2) :
o sea que :
Ejemplo 1:
Encontrar la función de transferencia en lazo abierto y lazo cerrado del sistema dado, si el controlador PID
tiene como parámetros Kp=1, Ki = 0.2 y Kd = 0.5. La planta tiene una función de transferencia igual a :
PROGRAMA EN MATLAB
% OBTENER FUNCION DE TRANSFERENCIA
% tiempo de muestreo: T = 1 seg
T = 1;
% parámetros del controlador PID
Kp=1; Ki = 0.2; Kd = 0.5;
% Función de transferencia de la planta
Gps = zpk([ ], [0 -2], 1)
% Función de transferencia de planta + retenedor
Gz =c2d(Gps, T,'zoh')
Gz = tf (Gz)
% Función de transferencia del controlador PID
Ejemplo 2:
planta es:
Simulaci_on del PID anal_ogico considerando K = 1:1, Ti = 5:5, y Td = 0:2
Con_gure los blogues de la funci_on de transferencia discreta para que act_ue como
un controlador PID discreto de forma Posicional, tal como se muestra en la _gura
5.
Gra_que las variables obtenidas con comandos tal como se muestra en la _gura 6.
SESIÓN EXPERIMENTAL
INTRODUCCIÓN
Es importante tener presente las etapas y montajes ya desarrollado en las anteriores sesiones experimentales
de los laboratorios, porque a medida que el curso se vaya ejecutando también se va ir desarrollando el
sistema de control discreto del flujo volumétrico en un sistema de tanques en serie mediante el uso de un
arduino, según figura 1, diagrama del sistema de control SISO discreto.
Figura 1. Sistema de control discreto del flujo volumétrico en tanques serie para la unidad IPA1
Ya en este punto, se debe tener programado en un solo código de programación del arduino:
Subrutina para la adquisición de las dos (2) señales de voltaje del referencia R(s) por el canal A0 y la
retroalimentación Vretro(s) por el canal A1. De forma que se adquieran, se muestrean y se
almacenen en los respectivos registros de memoria del propio arduino uno.
El programa anterior funciona correctamente, pero tiene limitaciones en cuanto a su aplicación a un sistema
real. Para que se comporte como un PID de nivel industrial, hay que tener en cuenta otros parámetros; el
algoritmo del PID funciona mejor si se ejecuta a intervalos regulares, si se incorpora el concepto del tiempo
dentro del PID, se pueden llegar a simplificar los cálculos.
El problema:
Los PID principiantes, están diseñados para ejecutarse a periodos irregulares, esto puede traer 2 problemas:
- Se tiene un comportamiento inconsistente del PID, debido a que en ocaciones se lo ejecuta regularmente y a
veces no.
- Hay que realizar operaciones matemáticas extras para calcular los términos correspondientes a la parte
derivada e integral del PID, ya que ambos son dependientes del tiempo.
La solución:
Los resultados:
- Independientemente de cuán frecuente es llamada la función para calcular el PID, el algoritmo de control
será evaluado a tiempos regulares.
- Debido la expresión (int timeChange = (now - lastTime);) no importa cuado millis() se hace
cero nuevamente, ya que al tiempo actual, se le resta el tiempo transcurrido con anterioridad.
- Como el tiempo de muestreo ahora es constante, no necesitamos calcular permanentemente las constantes
de sintonización. Con lo cuál nos ahorramos cálculos cada vez que procesamos el PID.
- Tener en cuenta que es posible mejorar la gestión de los tiempos de muestreos mediante interrupciones,
pero queda a cargo de usted la implementación y prueba de este concepto.