tercera tarealdcd.pdf
Post on 09-Jan-2016
222 Views
Preview:
TRANSCRIPT
-
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
top related