Laboratorio 4: Implementación de controladores
LABORATORIO 4.-
IMPLEMENTACIÓN DE CONTROLADORES DIGITALES
1. OBJETIVO. Proporcionar los conceptos necesarios para la implementación de controladores digitales basados en ecuaciones de diferencias bajo el entorno Matlab-Simulink. 2. MATERIALES Y EQUIPOS - Matlab 2015 o superior. - Simulink. - Toolbox Simulink Desktop Real-Time. 3. FUNDAMENTO TEÓRICO En la computadora se elabora el software, de acuerdo con los objetivos del control por computadora (software de control). El software que realiza las tareas de adquisición de datos, maneja los registros de datos y de configuración de los dispositivos de entrada y salida permitiendo recoger y entregar datos a través de estos. Realiza tareas como: ejecución del algoritmo de control, linealización, cambio de escala, filtrado, etc. El esquema básico de un sistema de control por computadora se muestra en la Figura 1.
Figura 1. Sistema de control por computadora
Los dispositivos de entrada, son utilizados por la computadora para leer los datos medidos del proceso. Estos datos corresponden a los valores de las variables físicas del mismo, que pueden ser: señales discretas (estado de contactos o interruptores), o señales analógicas (valor de la presión, flujo, temperatura, pH, etc.). Curso: Control por Computadora
1
Laboratorio 4: Implementación de controladores Los dispositivos de salida son utilizados por la computadora para entregar al proceso las señales requeridas (variables de control) para que la variable controlada alcance el valor deseado. Las variables de control pueden ser señales discretas o señales analógicas. La etapa de procesamiento de datos, ejecuta las tareas propias del controlador mediante algoritmos previamente programados que pueden ser algoritmos de convencionales de tipo PID, ON/OFF, algoritmos de control avanzado, etc. Las tareas de comunicación, se utilizan para dar a conocer al usuario del sistema las condiciones de todo el proceso. A su vez, son requeridas para poder modificar a voluntad las condiciones de trabajo de la planta. La interfaz de comunicación, adecúa las señales entregadas por el computador digital a los diferentes dispositivos de comunicación que se tiene en el sistema de control. Los dispositivos de comunicación son necesarios para llevar a cabo la relación entre el usuario (operador) y el sistema de control. En este laboratorio se utilizará el software Matlab-Simulink para la implementación y ejecución de algoritmos de control (solución de ecuaciones de diferencias). 4. IMPLEMENTACIÓN DE ECUACIONES DE DIFERENCIA EN EL ENTORNO SIMULINK. El entorno de trabajo Simulink, permite la programación y ejecución de ecuaciones de diferencias de manera secuencial de varias formas, siendo una de las más efectivas, las funciones embebidas de Matlab (MATLAB Function). Para facilitar el manejo de este tipo de funciones, en el Ejemplo 1 se desarrolla la solución de una ecuación de diferencias para una entrada determinada con condiciones iniciales nulas. EJEMPLO 1. Haciendo uso de Simulink, implementar y simular la ecuación diferencial discreta:
Para una entrada: 2.5
U(t)
1.5
0.5
0
1
Curso: Control por Computadora
2
3
4
6
7
8
9
10
2
Laboratorio 4: Implementación de controladores SOLUCIÓN 1. El vector u(t) se implementará en un script *.m, para un tiempo de 10 segundos. Con dos pulsos: el primero unitario en el segundo 2 y otro de valor 2 en el segundo 7, considerando un tiempo de simulación de 10 segs y un periodo de muestreo de 1 seg. para la definición de este vector se tiene: t=(0.01:0.01:10)'; u(1:200)=0; u(201:300)=1; u(301:700)=0; u(701:800)=2; u(801:900)=0; u(901:1000)=0; u=u'; plot (t,u) [t u]
2. Bajo el entorno de Matlab, abrir Simulink, crear un nuevo modelo e incluir una función embebida de Matlab (MATLAB Function) del menú User-Defined Functions,
3. Para la inclusión del vector u(t) en el modelo, se introduce el bloque: From Workspace del menú sources, como data introducir [t u], asimismo para la salida colocar un bloque scope y un bloque mux. El programa debe quedar como sigue:
Figura 2. Diagrama de bloques del Ejemplo 1
En “Scope” Configuration Properties en la ficha Logging dar un check a la opción Log data to workspace y dar un nombre a la variable, por ejemplo Datos. 4. Ingresar al MATLAB Function, la implementación de la ecuación de diferencias es: function y
= fcn(u)
persistent yant; if isempty(yant) yant = 0; end y = yant+2*u; yant = y;
Curso: Control por Computadora
3
Laboratorio 4: Implementación de controladores Se genera una variable de tipo persistente
y(t 1) condicionada a tener un valor de cero
solamente en su estado vacío para que no se actualice en cero para cada iteración. 5. Ejecutar el programa, analizar los resultados. Con los datos enviados al workspace, obtener una gráfica en la que se muestre la respuesta de y(t) ante la entrada u(t) (Figura 3)
Figura 3. Respuesta y(t) ante una entrada u(t) del Ejemplo 1
5. IMPLEMENTACION DE CONTROLADORES DIGITALES REPRESENTADOS POR ECUACIONES DE DIFERENCIA. Haciendo uso de funciones embebidas, en el Ejemplo 2 se propone la implementación de un controlador PI básico, posteriormente se presenta una simulación para una determinada planta. EJEMPLO 2. Dado un controlador PI analógico, implementar la elaboración de la variable de control digital u(kt), en una computadora utilizando el método de rediseño digital.
SOLUCIÓN 1.
Utilizar un método de aproximación basado en FT. Para este ejemplo se utiliza el método de Diferencias en Retroceso: s'
z1 zT
2. Reemplazando por , obtenemos las siguientes ecuaciones recursivas. Curso: Control por Computadora
4
Laboratorio 4: Implementación de controladores Error Acción proporcional Acción integral Ley de control 3.
Utilizando una función embebida de Matlab, la implementación es la siguiente: function u_act = fcn(SP,Kp,Ki,Kd,ym) % Periodo de muestreo T=0.01; % Condiciones iniciales persistent e_ant u_ant; if isempty(e_ant) e_ant=0; u_ant=0; end e_act = SP-ym; Prop=(e_act-e_ant)*Kp; Int=e_act*Ki*T; u_act=u_ant+Prop+Int; % Variables almacenadas para la siguiente iteración. e_ant=e_act; u_ant=u_act;
4.
Implementar el diagrama de bloques mostrado en la Figura 4, en el que se muestra la simulación del controlador para un modelo discreto de la planta.
Figura 4. Simulación de controlador con MATLAB Function
Curso: Control por Computadora
5
Laboratorio 4: Implementación de controladores EJERCICIOS PROPUESTOS EJERCICIO 1. Dado un controlador PID analógico, implementar la elaboración de la variable de control digital en una computadora utilizando un método de rediseño digital. Gc (s) K p (1
1 Td s) Ti s
En este caso utilizar el método de aproximación de Diferencias en Retroceso, con el objetivo de comparar el diseño de este controlador, con el PI del ejemplo 2. s'
a) Reemplazar
z1 zT
para obtener ecuaciones resultantes para el PID por operación derivada: (2 puntos)
e[k] SP y[k] ;
Error
dAp[k] Kp *(e[k] e[k 1]);
Diferencia proporcional
dAd[k]
Kd
[e[k] 2e[k 1] e[k 2]];
T
Diferencia derivativa
dAi[k] (Ki *T )* e[k];
Diferencia integral
u[k] dAp[k] dAd[k] dAi[k] u[k 1];
Acción final.
Solución
Curso: Control por Computadora
6
Laboratorio 4: Implementación de controladores
FUNCIÓN EMBEBIDA - MATLAB: function u_act = fcn(SP,Kp,Ki,Kd,ym) % Factor de ponderación T=0.01; % Condiciones iniciales persistent e_ant e_ant2 u_ant u_ant2; if isempty(e_ant) e_ant=0; e_ant2=0; u_ant=0; u_ant2=0; end e_act= SP-ym; %Acción Proporcional Prop = Kp*(e_act - e_ant2); %Acción Integrativa Int = Ki*(T/2)*(e_act + 2*e_ant + e_ant2); %Acción Derivativa Der = (2*Kd/T)*(e_act - 2*e_ant + e_ant2); %Acción Mixta Mix = Ki*(Kd/Kp)*(e_act - e_ant2); %Salida del bloque u_act = u_ant2 + Prop + Int + Der + Mix; % Variables almacenadas para la siguiente iteración. e_ant2 = e_ant; u_ant2 = u_ant; e_ant = e_act; u_ant = u_act;
b) Implementar el controlador en una función embebida de Matlab, simular su comportamiento con un modelo discreto de la planta representado por: 𝑧 + 0.5 𝐺𝑝 (𝑧) = (𝑧 − 1)(𝑧 − 0.8)
Curso: Control por Computadora
7
Laboratorio 4: Implementación de controladores c) Calcular los coeficientes de sintonización para cumplir los siguientes requerimientos
mp 10% ess 0 ENTRADA DE REFERENCIA (SET POINT) - ESCALÓN: [R(t) = 1(t): AMPLITUD: 1u
Luego de realizar las pruebas necesarias se obtuvo: 𝐾𝑃 = 0.019 𝐾𝑖 = 0.01 𝐾𝑑 = 0 Con un: 𝑚𝑝 = 9.96% 𝑒𝑠𝑠 = 0
Curso: Control por Computadora
8
EJERCICIO 2. Considerando la siguiente representación de un PID analógico en serie:
a) Obtener las ecuaciones resultantes para controlador PID digital utilizando la aproximación de Tustin: (3 puntos) s'
2z 1 Tz 1
FUNCIÓN EMBEBIDA - MATLAB: function u_act = fcn(SP,Kp,Ki,Kd,ym) % Factor de ponderación T=0.01; % Condiciones iniciales persistent e_ant e_ant2 u_ant u_ant2; if isempty(e_ant) e_ant=0;
Curso: Control por Computadora
9
e_ant2=0; u_ant=0; u_ant2=0; end e_act= SP-ym; %Acción Proporcional Prop = Kp*(e_act - e_ant2); %Acción Integrativa Int = Ki*(T/2)*(e_act + 2*e_ant + e_ant2); %Acción Derivativa Der = (2*Kd/T)*(e_act - 2*e_ant + e_ant2); %Acción Mixta Mix = Ki*(Kd/Kp)*(e_act - e_ant2); %Salida del bloque u_act = u_ant2 + Prop + Int + Der + Mix; % Variables almacenadas para la siguiente iteración. e_ant2 = e_ant; u_ant2 = u_ant; e_ant = e_act; u_ant = u_act;
b) Implementar el controlador en una función embebida de Matlab con el modelo discreto de la planta del Ejercicio 1. (2 puntos)
Luego de realizar las pruebas necesarias se obtuvo: 𝐾𝑃 = 0.015 𝐾𝑖 = 0.0002 𝐾𝑑 = 0.00001 Con un: 𝑚𝑝 = 5.53% 𝑒𝑠𝑠 = 0
Curso: Control por Computadora
10
ENTRADA DE REFERENCIA (SET POINT) - ESCALÓN: [R(t) = 1(t): AMPLITUD: 1u
c) Implementar un controlador PID por partes que se representa según las siguientes ecuaciones: (2 puntos) e[k] SP ym[k] ;
Error
Ap[k] Kp * e[k];
Acción proporcional
Ad[k]
Kd
(e[k] e[k 1]);
T
Acción derivativa
Ai[k] (e[k]*T )* Ki Ai[k 1];
Acción integral
Ai[k 1] Ai;
Ai anterior
u[k] Ap[k] Ad[k] Ai[k];
Ley de control
Curso: Control por Computadora
11
function u_act = fcn(SP,Kp,Ki,Kd,ym) % Factor de ponderación T=0.01; % Condiciones iniciales persistent e_ant u_ant Int_ant; if isempty(e_ant) e_ant=0; u_ant=0; Int_ant=0; end e_act= SP-ym; %Diferencia Proporcional Prop = Kp*(e_act); %Diferencia Integrativa Int = (e_act*T)*Ki + Int_ant; Int_ant = Int; %Diferencia Derivativa Der = (Kd/T)*(e_act - e_ant); %Salida del bloque u_act = Prop + Int + Der; % Variables almacenadas para la siguiente iteración. Int_ant = Int; e_ant = e_act; u_ant = u_act;
Curso: Control por Computadora
12
d) Mediante el uso de gráficas, mostrar el comportamiento de los controladores con el modelo discreto de la planta dado. Mostrar la respuesta de la variable de control u[k] y la respuesta a la salida del sistema.
Curso: Control por Computadora
13
Comparación de salidas de cada contralador y variables de control
e) Describir comentarios y conclusiones de la implementación de este tipo de controladores.
El control PID en aproximación de Tustin tiene el mismo comportamiento sin importar el método de aproximación que se utilice para el cambio de dominio.
Se puede apreciar que el comportamiento del PID por partes con el PID por aproximación de Tustin es distinto si se desea utilizar los mismos valores de Kp, Ki y Kd. Sin embargo, se puede despejar un factor de conversión para que el comportamiento sea similar. Si bien se puede notar que, para la planta dada, un PID diferencial con retroceso (con Kd muy bajo) es preferible a un PI de la misma estructura, esto no implica que siempre sea así. El análisis depende netamente de la planta a trabajar.
Se puede notar que el controlador en aproximación de tustin es más sensible al error, esto debido a que depende de 2 tiempos anteriores.
Curso: Control por Computadora
14
ESCUELA DE POSGRADO Curso: Control por Computadora
Tema: Laboratorio 4 Implementación de Controladores
Presentado por: ARENAS OVIEDO, ALVARO
Docente: Dr. Javier Sotomayor -2018-
Curso: Control por Computadora
15