Está en la página 1de 13

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:

REPRESENTACION EN ESPACIO DE ESTADO


0.2

Amplitude

0.15
0.1
0.05
0

20

40

60

80

100

120

Time (seconds)

Respuesta al escalon obtenida mediante RUNGE-KUTTA

Velocidad (m/s)

0.2
0.15
0.1
0.05
0

20

40

60
Tiempo(s)

80

100

120

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 RUNGEKUTTA')
ylabel('Velocidad (m/s)')
xlabel('Tiempo(s)')

Resultados obtenidos:
control proporcional-Integral-derivativo, kp=800,ki=40, kd=1

Velocidad (m/s)

10

10

Tiempo(s) (seconds)

Resapuesta al Controlador discretizado obtenida mediante RUNGE-KUTTA

Velocidad (m/s)

10

0.5

1.5
Tiempo(s)

2.5

También podría gustarte