MATLAB-ARCHIVO-ZN1

March 25, 2018 | Author: Wilmar Pedro Ramos Hinojosa | Category: Applied Mathematics, Physics & Mathematics, Mathematics, Systems Science, Mathematical Objects


Comments



Description

SIMULACIÓN ARCHIVO ZN1.m 1.-DESCRIPCIÓN DEL PROBLEMA En el informe siguiente describe la sintonización de un controlador mediante primer método de ZIEGLER-NICHOLS (LAZO ABIERTO). En el archivo ZN1.m se define una curva que se tomará como la respuesta a una entrada en escalón de una desconocida planta proceso. La respuesta obtenida de la supuesta planta de proceso a una entrada escalón es la siguiente: Una curva de respuesta en S puede caracterizarse por 2 constantes: el tiempo de retardo L y la constante de tiempo T. Así, la función de transferencia del sistema se aproxima por una función de primer orden con una ganancia estática K y una constante de tiempo T con un tiempo de retraso L, de la forma: C ( s ) Ke  Ls  U ( s ) Ts  1 Con las siguientes rectas se puede obtener las constantes. se obtiene % de manera experimental la respuesta de la planta a una % entrada en escalón.m 2. Kp= 1.5 Y Td= 0. % Fichero de ajuste empírico de reguladores PID % (c) David Huarac Rojas % Departamento de Electricidad y Electrónica. Si la planta no tiene integradores % ni polos complejos dominantes ( lo que es frecuente en % procesos químicos.24. por no disponer de una identificación previa.2*T/L. UNCP % Pulse una tecla para continuar pause clc echo on % En esta práctica se va a sintonizar un regulador PID % según el PRIMER METODO de ZIEGLER-NICHOLS (LAZO ABIERTO).25 Y T=1. Ti= 2*L Kp=6. Ti=0. % Se trata controlar rápidamente una planta de la que se desconoce % su dinámica.65 Con estos valores se puede sintonizar el controlador PID para la planta de proceso para ver su respuesta en el programa siguiente del archivo Z1N.Se puede aproximar las constantes según la gráfica: L=0.5*L y Td=0. % % PLANTA % ________ % Escalón | | Respuesta % -------> | ? |--------> % | | % -------- . % En los dos métodos de Ziegler-Nichols se pretende obtener % un sobreimpulso máximo del 25 % ante una entrada escalón % En el primer método de Ziegler-Nichols. Ti Y Td. que suelen estar constituidos por % factores de primer orden en serie ) entonces la respuesta % tiene forma de una S.3 Con estos valores se puede calcular las constantes de Kp.-PROGRAMA DE SINTONIZACIÓN EN LAZO ABIERTO. denp. % La función de transferencia del sistema se aproxima. denp=[1 9 27 27]. % La respuesta al escalón en lazo abierto será clf step(nump. de la forma % -Ls % e % G(s)= K --------% Ts + 1 % Pulse una tecla para continuar pause % Sobre la gráfica de la respuesta anterior debe obtener los valores % de T y L ( Nótese que la ganancia estática es K=1 ) % Con estos valores. T % Para determinar ambas constantes tómese gráficamente % la recta tangente a la curva de respuesta en el punto de inflexión. los parámetros del controlador PID sugeridos por % Ziegler-Nichols son: % Kp= 1.^ |___| | | | % | -------| % | | % | | % | | . t=[0:0. L % .grid.2*T/L Ti= 2*L Td= 0.un retraso puro . pues. title ('Resp escalón lazo abierto') disp(' ') disp(' ') disp('Vea la respuesta en lazo abierto al escalón en la Figura del menú WINDOWS') disp(' ') disp(' ') echo on % La curva de respuesta de la planta tiene forma de S y puede % caracterizarse por 2 constantes: % .t).5*L % para un regulador PID de función de transferencia : % Gc(s)= Kp(1 + Td·s + 1/ Ti s) = (KpTdTi s^2 + KpTi s + Kp) / Tis % Calcule los parámetros del regulador y obtendremos la respuesta al escalón % para el sistema en lazo cerrado % % CONTROL PLANTA % ___ ________ % + | | | | % --->( )--->|PID|--->| G(s) |----> % .una constante de tiempo.% Pulse una tecla para continuar pause % echo off nump=27.01:5]. % por una función de primer orden con una ganancia estática K y % una constante de tiempo T con un tiempo de retraso L . title ('Respuesta al escalón') disp(' ') disp(' ') disp('Para ver la respuesta al escalón abra la Figura en el menu WINDOWS') disp(' ') disp(' ') disp('Pulse una tecla para continuar') pause % % % clg subplot(2.title('Entrada escalón') subplot(2. plot(t.den.t).grid.integral(1)=1*0. % Y la función de transferencia del sistema en lazo cerrado [num.escalon).den. Ti=input('Introduzca el tiempo integral Ti = ').1) % La entrada es un escalón escalon=ones(1.1. manipi= (Kp/Ti)*integral. plot(t.grid. Kp*Ti. for i=1:length(t)-1 integral(i+1)= integral(i) + error(i+1)*0.2.t).2. plot(t.2. Td=input('Introduzca el tiempo derivativo Td = '). manip=manipp + manipd + manipi . % La función de transferencia en lazo abierto será numg=conv(numc.nump).title('Señal de error') derivada= diff(error).den]=feedback(numg.title('Señal de control') disp(' ') clc .error).respesc).1.deng.2) % La respuesta al escalón será respesc=step(num.4) plot(t. denc=[Ti.2.-1).1.den) clf % La respuesta al escalón será step(num. title ('Resp escalón') subplot(2.denp). end manipp= Kp*error.manip). deng=conv(denc.3) % La señal de error error=escalon-respesc'. manipd= Kp*Td*derivada./diff(t). derivada(length(t))=derivada(length(t)-1). integral=[]. i=0.grid. Kp] .1.length(t)).% -------------------------echo off Kp=input('Introduzca la constante proporcional Kp = '). % La función de transferencia del regulador es numc=[Kp*Td*Ti.grid. subplot(2. 0].grid. disp(' ') disp(' ') disp('La función de transferencia del sistema realimentado es') printsys(num. No es posible conseguir un ajuste % perfecto.. Lucas ! 3. % ¡ Hasta luego. Foxboro... ya que la identificación hecha de la planta es bastante % rupestre. Ti y Td se ingresaran al ejecutar el programa anterior. Siemens.EJECUCIÓN DEL PROGRAMA CON LOS VALORES CALCULADOS PARA EL PID Con los valores calculados de Kp.disp(' ') disp(' ') disp('Vea en la Figura la evolución de la señal de error') disp('y la señal de salida del controlador') disp(' ') disp(' ') echo on % Bastantes reguladores industriales (Honeywell. que mostraran los resultados siguientes: ..) % llevan este ajuste (o uno de Ziegler-Nichols modificado) de manera % automática % Obsérvese que sin tener ningún conocimiento previo de la planta % se regula razonablemente bien. La respuesta a valores calculados sería las siguientes gráficas . m 1. que provoque la oscilación del sistema a dicho valor se le conoce como ganancia crítica Kcr con Ti=Inf y Td=0. Para la sintonización se buscará un valor de ganancia proporcional.-DESCRIPCIÓN DEL PROBLEMA En el informe siguiente describe la sintonización de un controlador mediante el segundo método de ZIEGLER-NICHOLS (LAZO CERRADO).m se define una función de transferencia: G(s)= 400/s(s^2+30 s+200) que se tomará como un función de transferencia desconocida de la planta de proceso. Vamos a tantear valores: Kcr=20 .SIMULACIÓN ARCHIVO ZN2. En el archivo ZN2. Kcr=50 Kcr=10 . Kcr=15 Con Kcr=15 se puede notar. que empieza a oscilar la respuesta y se puede aproximar que el periodo Pcr=0. Con las siguientes ecuaciones se obtendrá las constantes de ganancia proporcional.29 Td= 0.58seg.125*Tc Td=0. Kp= 0.5*Tc Ti=0. constante tiempo de derivación y constante de tiempo de integración de un CONTROLADOR PID.6*Kc Kp=9 Ti=0.0725 . ya que es % inestable en lazo abierto % La planta tiene una función de transferencia % G(s)= 400 / s ( s^2 + 30 s + 200) % nump=400. Kc . UNCP % Pulse una tecla para continuar pause clc echo on % En esta práctica se va a sintonizar un regulador PID % según el SEGUNDO METODO de ZIEGLER-NICHOLS (estabilidad % límite en lazo cerrado) % Se trata controlar una planta complicada. printsys(nump. y % utilizando únicamente la acción proporcional.-PROGRAMA DE SINTONIZACIÓN EN LAZO CERRADO (ZN2.^ |___| |s(s^2+30s+200)| | % | -------------| % | | % | | % | | % ---------------------------------% % Pulse una tecla para continuar pause % clc % A continuación. en la forma % Gc(s)= Kp(1 + Td·s + 1/ Ti s) = (KpTdTi s^2 + KpTi s + Kp) / Tis % se anulan la acción integral ( Ti=inf ) y derivativa ( Td=0 ).denp) % % % Pulse una tecla para continuar pause % clc % Partiendo de un regulador PID . % Esta ganancia es la ganancia crítica. Tc % echo off . se aumenta la ganancia % del controlador hasta que el sistema % presente una oscilación mantenida ante una entrada escalón. Kc % % CONTROL PLANTA % ___ ______________ % + | | | 1 | % --->( )--->| P |--->|--------------|----> % . debe encontrar esta ganancia crítica.m 2.Con estos constantes calculadas se obtendrá la respuesta de un del PID con el archivo ZN2. % de manera empírica y obtener de manera gráfica el valor % del período de la oscilación límite. denp=[ 1 30 200 0].m) % Fichero de ajuste empírico de reguladores PID % (c) David Huarac Rojas % Departamento de Electricidad y Electronica. K=0.1. denc=1. ajustaremos el % controlador.denp). Kp*Ti.grid. % while K > 15 | K < 15 % % K=input('Introduzca la ganancia K = '). Ti=input('Introduzca el tiempo integral Ti = ').1.den) clf .nump.deng.den]=feedback(numg. disp(' ') disp(' ') disp('La función de transferencia del sistema realimentado es') printsys(num.denp). deng=conv(denc. denc=[Ti. 0]. disp(' ') disp(' ') disp('La función de transferencia del sistema realimentado es') printsys(num.t). % La función de transferencia del regulador es numc=[Kp*Td*Ti.-1).den.1.nump). % La función de transferencia en lazo abierto será numg=conv(numc.deng.deng]=series(numc.-1). title ('Respuesta al escalón') disp(' ') disp(' ') disp('Para ver la respuesta al escalón abra la Figura en el menu WINDOWS') disp(' ') end % disp('Pulse una tecla para continuar') pause echo on % Ahora que ya ha encontrado la oscilación límite. Td=input('Introduzca el tiempo derivativo Td = '). step(num.den]=feedback(numg. % Y la función de transferencia del sistema en lazo cerrado [num.1:10].den) % clf % La respuesta al escalón será t=[0:0.1.denc. % Y la función de transferencia del sistema en lazo cerrado [num.6*Kc Ti=0. % Según las fórmulas de Ziegler-Nichols. los parámetros del controlador PID % sintonizado son: % Kp= 0. % La función de transferencia en lazo abierto será [numg. numc=K.5*Tc Td= 0. % Gc(s)= Kp(1 + Td·s + 1/ Ti s) = (KpTdTi s^2 + KpTi s + Kp) / Tis echo off Kp=input('Introduzca la constante proporcional Kp = ').125*Tc % Introduzca los parámetros del PID sintonizado y vea la respuesta al % escalón que se obtiene. Kp] . % La respuesta al escalón será step(num.escalon).1.grid. plot(t./diff(t). subplot(2. % No le pida peras al olmo. title ('Respuesta al escalón') disp(' ') disp(' ') disp('Para ver la respuesta al escalón abra la Figura en el menu WINDOWS') disp(' ') disp(' ') disp('Pulse una tecla para continuar') pause % % % clf subplot(2.grid. pero % el transitorio es breve y no existe error estacionario.title('Señal de control') disp(' ') disp(' ') disp(' ') disp('Vea en la Figura la evolución de la señal de error') disp('y la señal de salida del controlador') disp(' ') disp(' ') echo on % Observar que la respuesta tiene un sobreimpulso elevado.den.respesc).error).2.2.title('Señal de error') derivada= diff(error). title ('Resp escalón') subplot(2.t).4) plot(t.den.manip).grid. i=0.grid. manip=manipp + manipd + manipi . Ti y Td.1.1) % La entrada es un escalón escalon=ones(1. plot(t.2.grid.t). ya que en lazo abierto esta % planta es imposible de controlar % 3.integral(1)=1*0. . plot(t. derivada(length(t))=derivada(length(t)-1).3) % La señal de error error=escalon-respesc'. for i=1:length(t)-1 integral(i+1)= integral(i) + error(i+1)*0. manipd= Kp*Td*derivada. end manipp= Kp*error. manipi= (Kp/Ti)*integral. integral=[].title('Entrada escalón') subplot(2.length(t)).2.-EJECUCIÓN DEL PROGRAMA CON LOS VALORES CALCULADOS PARA EL PID Al ejecutar el programa anterior en matlab se ingresaran los valores calculados de Kp.2) % La respuesta al escalón será respesc=step(num. Las respuestas se pueden apreciar en la siguiente figura: .
Copyright © 2024 DOKUMEN.SITE Inc.