Tercera tarealDCD.pdf

Embed Size (px)

Citation preview

  • Universidad de Oriente

    Ncleo de Anzotegui

    Postgrado en Ingeniera Elctrica

    Programa de Especializacin en Automatizacin e Informtica Industrial

    ASIGNACIN III DE DISEO DE CONTROL

    DIGITAL

    Realizado por:

    Adriana Mndez C.I 16.064.183

    Revisado por:

    Prof. Danilo Navarro

    Barcelona, Noviembre de 2.013

  • Modelacin de un sistema de Control de Marcha

    Reconocimiento Fsico y sistema de ecuaciones

    El modelo del sistema de control de marcha es relativamente simple. Si se desprecia la inercia de las ruedas, y si se asume que la friccin (la cual es proporcional a la velocidad del auto) es tal que se opone al movimiento del auto, entonces el problema se reduce al sistema simple de masa y resorte mostrado abajo.

    Usando la ley de Newton, las ecuaciones de modelado para este sistema son:

    donde u es el esfuerzo del motor. Para este ejemplo, asumamos que: m = 1000kg b = 50Nsec/m u = 10N

    Requerimientos de diseo

    El paso siguiente para modelar este sistema es incorporar algunos criterios de diseo. Cuando el motor proporciona una fuerza de 10 Newton, el auto alcanzar una velocidad mxima de 10 m/s (22 mph). Un auto debera poder acelerar hasta esa velocidad en menos de 5 segundos. Como este es slo un sistema de control de marcha, un 10% de sobrepico en la velocidad no har mucho dao. Un 2% de error de estado estacionario es tambin aceptable por la misma razn.

    Teniendo en mente lo anterior, hemos propuesto los siguiente criterios de diseo para este problema:

  • Tiempo de subida < 5 seg. Sobrepico < 10% Error de Estado Estacionario < 2%

    Representacin en Matlab

    1. Funcin de Transferencia

    Para hallar la funcin de transferencia del sistema continuo de arriba, necesitamos tomar la transformada de Laplace de las ecuaciones del modelo (1). Cuando se encuentra la funcin de transferencia, debe asumirse condiciones iniciales nulas. La transformada Laplace de las dos ecuaciones se muestra abajo

    Como nuestra salida es la velocidad, sustituyamos V(s) en trminos de Y(s)

    La funcin de transferencia del sistema es

    2. Desarrollo del Modelo de Simulacin Usando el Mtodo de Runge-Kutta

    A continuacin se presenta el algoritmo implementado. Ver archivo plantayRunge.M

    m=1000; b=50; u=10; num=[1]; den=[m b]; %FUNCION DE TRANSFERENCI DEL SISTEMA DE CONTROL DE MARCHA% SCM=tf(num,den) %RESPUESTA A LAZO ABIERTO% subplot(1,2,1) step(u*SCM) title('RESPUESTA A LAZO ABIERTO') % PASO 1. REPRESENTACION EN ESPACIO DE ESTADO PARA obtener la forma tpica que requiere el algoritmo de Runge-Kutta.% % A = [-b/m]; B = [1/m]; C = [1];

  • D = 0; step(A,u*B,C,D); title('REPRESENTACION EN ESPACIO DE ESTADO') %Aplicando el Metodo de Runge-Kutta% % PASO2. se escoge el paso de simulacin del sistema. Dado que el tiempo de crecimiento del sistema realimentado %es aproximadamente 40 segundos, para obtener muy buena precisin se puede dividir entre 1000 para obtener as %un paso de simulacin h = 0.04 %Aplicando el Metodo de Runge-Kutta% v(1)=0 tiemposim=120 h=0.04 for i=1:3000 k1=(u/m)-(b/m)*(v(i)) k2=(u/m)-(b/m)*(v(i)+(1/2)*(k1*h)) k3=(u/m)-(b/m)*(v(i)+(1/2)*(k2)*h) k4=(u/m)-(b/m)*(v(i)+k3*h) v(i+1)=v(i)+(1/6)*(k1+2*k2+2*k3+k4)*h end subplot(1,2,2) plot([0:3000]*h,v) title('Respuesta al escalon obtenida mediante RUNGE-KUTTA') ylabel('Velocidad (m/s)') xlabel('Tiempo(s)')

    Respuesta obtenida:

    0 20 40 60 80 100 1200

    0.05

    0.1

    0.15

    0.2REPRESENTACION EN ESPACIO DE ESTADO

    Time (seconds)

    Ampl

    itude

    0 20 40 60 80 100 1200

    0.05

    0.1

    0.15

    0.2Respuesta al escalon obtenida mediante RUNGE-KUTTA

    Vel

    ocid

    ad (m

    /s)

    Tiempo(s)

  • Control P Y PI

    Del mismo modo se desarrollo un algoritmo donde se representan varios controladores continuos. Ver archivo controlmarchacontinuio2.m

    m=1000; b=50; u=10; num=[1]; den=[m b]; %FUNCION DE TRANSFERENCI DEL SISTEMA DE CONTRoL DE MARCHA% SCM=tf(num,den) %RESPUESTA A LAZO ABIERTO% subplot(4,2,1) step(u*SCM) title('RESPUESTA A LAZO ABIERTO') % REPRESENTACION EN ESPACIO DE ESTADO% A = [-b/m]; B = [1/m]; C = [1]; D = 0; step(A,u*B,C,D); title('REPRESENTACION EN ESPACIO DE ESTADO') %Aplicando el Metodo de Runge-Kutta% v(1)=0 tiemposim=120 h=0.04 for i=1:3000 k1=(u/m)-(b/m)*(v(i)) k2=(u/m)-(b/m)*(v(i)+(1/2)*(k1*h)) k3=(u/m)-(b/m)*(v(i)+(1/2)*(k2)*h) k4=(u/m)-(b/m)*(v(i)+k3*h) v(i+1)=v(i)+(1/6)*(k1+2*k2+2*k3+k4)*h end subplot(4,2,2) plot([0:3000]*h,v) title('Resapuesta al escalon obtenida mediante RUNGE-KUTTA') ylabel('Velocidad (m/s)') xlabel('Tiempo(s)') % control proporcional continuo% kp=100; u=10; num=[kp]; den=[m b+kp]; t=0:0.1:20; subplot(4,2,3) step(u*num,den,t)

  • axis([0 20 0 10]) title('control proporcional, kp=100') ylabel('Velocidad (m/s)') xlabel('Tiempo(s)') %El sistema a lazo cerrado % subplot(4,2,4) kp=10000 [numc,denc]=cloop(kp*num,den,-1); t = 0:0.1:20; step(u*num,den,t) axis([0 20 0 10]) title('control proporcional, kp=10000') ylabel('Velocidad (m/s)') xlabel('Tiempo(s)') %control proporcional integral PI A LAZO CERRADO% kp = 600; ki = 1; m=1000; b=50; u=10; num=[kp ki]; den=[m b+kp ki]; t=0:0.1:20; subplot(4,2,5) step(u*num,den,t) title('control proporcional-Integral, kp=600,ki=1') ylabel('Velocidad (m/s)') xlabel('Tiempo(s)') axis([0 20 0 10]) % otra forma de obtener la respuesta del PI A LAZO CERRADO% num = [1]; den = [m b]; num1= [kp ki]; den1= [1 0]; num2=conv(num,num1); den2=conv(den,den1); [numc,denc]=cloop(num2,den2,-1); t=0:0.1:20; subplot(4,2,6) step(u*numc,denc,t) axis([0 20 0 10]) title('control proporcional-Integral, kp=600,ki=1') ylabel('Velocidad (m/s)') xlabel('Tiempo(s)') % control proporcional integral PI A LAZO CERRADO, variando kp=800 y ki=40% kp = 800; ki = 40; num = [1]; den = [m b]; num1= [kp ki]; den1= [1 0]; num2=conv(num,num1);

  • den2=conv(den,den1); [numc,denc]=cloop(num2,den2,-1); t=0:0.1:20; subplot(4,2,7) step(u*numc,denc,t) axis([0 20 0 10]) title('control proporcional-Integral, kp=800,ki=40') ylabel('Velocidad (m/s)') xlabel('Tiempo(s)')

    RESPUESTA OBTENIDA:

  • Diseo de Control Digital

    Diseo del Control de Marcha aplicando Runge-Kutta Se diseo un controlador PID continuo, donde la constante Kp=800, ki=40, y kd=1. Para ello, se uso el modulo de Matlab simulink Ver archivo controlmarcha1.mdl

    Ahora bien, usando la transformacin bilineal o tustin, donde:

    Se obtiene el siguiente controlador digital para un T=0.02

  • Respuesta del control continuo y digital

    Del mismo modo se procede a desarrollar el algoritmo para el controlador digital

    usando el mtodo Runge-Kutta en Matlab. Ver archivo controldiscreto.m

    m=1000; b=50; u=10; num=[1]; den=[m b];

  • %FUNCION DE TRANSFERENCIA DEL SISTEMA DE CONTROL DE MARCHA EN LAZO ABIERTO% SCM=tf(num,den) %RESPUESTA A LAZO ABIERTO% % PASO 1. REPRESENTACION EN ESPACIO DE ESTADO PARA obtener la forma tpica que requiere el algoritmo de Runge-Kutta.% % A = [-b/m]; B = [1/m]; C = [1]; D = 0; % control continuo Proporcional Integral Derivativo PID A LAZO CERRADO, kp=800 y ki=40 Y Kd=1% kp=800; ki=40; kd=1; numc=[kd kp ki]; denc=[m+kd b+kp ki]; subplot(1,2,1) t=0:0.1:20; step(u*numc,denc,t) axis([0 10 0 10]) title('control proporcional-Integral-derivativo, kp=800,ki=40, kd=1') ylabel('Velocidad (m/s)') xlabel('Tiempo(s)') %Aplicando el Metodo de Runge-Kutta% % PASO2. se escoge el paso de simulacin del sistema. Dado que el tiempo de crecimiento del sistema realimentado %es aproximadamente 4 segundos, para obtener muy buena precisin se puede dividir entre 1000 para obtener as %un paso de simulacin h = 0.004 %Aplicando el Metodo de Runge-Kutta% %GC(Z)=U(Z)/E(Z)=(850.4Z^2-899.6Z+50)/Z(Z-1) %Paso 3. se debe representar la funcin en Z del regulador discreto como una ecuacin en diferencias % DE DONDE SE DESPRENDE% %u(k)=u(k-1)+850.4*e(k)-899.6*e(k-1)+50*e(k-2) estado(1)=0 u_1=0 e_1=0 e_2=0 Setpoin=10 tiemposim=12 % tiempo global de simulacion% %COMO EL TIEMPO DE CRECIMIENTO ES PROXIMO A 4S,EL MISMO SE DIVIDE ENTRE 1000 %PARA OBTENER UNA BUENA PRECISION h=4/1000=0.004 h=0.004 Ts=1/50 % tiempo de muestreo% % el numero de siclo se determina por tiemposim/ts es igual 12/0.02=600 for k=1:600 salida=estado(k) % se mide la salida en un instante k%

  • e(k)=Setpoin-salida u(k)=u_1+850.4*e(k)-899.6*e_1+50*e_2 % control calculado en el instante k% u_1=u(k) e_2=e_1 e_1=e(k) clear x1 x1(1)=estado(k) %para la simulacion mediante Runge-Kutta utilizaremos pasos de %simulacion de h=0.004 h=0.004 %por lo tanto sera ts/h=0.02/0.004 for i=1:5 k1=(u(k)/m)-(b/m)*(x1(i)) k2=(u(k)/m)-(b/m)*(x1(i)+(1/2)*(k1*h)) k3=(u(k)/m)-(b/m)*(x1(i)+(1/2)*(k2)*h) k4=(u(k)/m)-(b/m)*(x1(i)+k3*h) x1(i+1)=x1(i)+(1/6)*(k1+2*k2+2*k3+k4)*h end estado(k+1)=x1(i+1) end subplot(1,2,2) plot([0:600]*h,estado) title('Resapuesta al Controlador discretizado obtenida mediante RUNGE-KUTTA') ylabel('Velocidad (m/s)') xlabel('Tiempo(s)') Resultados obtenidos:

    0 1 2 3 4 5 6 7 8 9 100

    5

    10control proporcional-Integral-derivativo, kp=800,ki=40, kd=1

    Tiempo(s) (seconds)

    Velo

    cida

    d (m

    /s)

    0 0.5 1 1.5 2 2.50

    5

    10Resapuesta al Controlador discretizado obtenida mediante RUNGE-KUTTA

    Vel

    ocid

    ad (m

    /s)

    Tiempo(s)

  • Reconocimiento Fsico y sistema de ecuacionesRequerimientos de diseoRepresentacin en Matlab1. Funcin de Transferencia