Professional Documents
Culture Documents
TRABAJO N VII
Buscar un sistema de 2do orden y otro de 3er orden. Obtener la ecuacin diferencial que lo caracteriza y a partir de ella el modelo de estado en tiempo continuo. A partir de la ecuacin diferencial que caracteriza el comportamiento dinmico del sistema, discretizarla y obtener la funcin de transferencia. Simular los modelos en tiempo continuo y tiempo discreto y comprobar que los resultados son anlogos.
Sistema de 3er Orden: Para el ejemplo de un circuito de 3er orden, usaremos un circuito electrnico con tres elementos almacenadores de energa. Una bobina y dos condensadores, tal y como se muestra en la siguiente figura:
En primer lugar, aplicaremos las Leyes de tensin y de intensidad de Kirchhoff para obtener las ecuaciones que modelan el circuito:
Una vez obtenidas las ecuaciones, obtenemos el modelo de estado, cuyas variables de estado sern las tensiones en los condensadores Vc1 y Vc2, y la intensidad que circula por la bobina IL. La seal de entrada es proporcionada por la fuente de tensin de entrada y la variable de salida, ser la tensin en la resistencia R3.
Ahora pasamos a obtener la funcin de transferencia del sistema, apartir de las matrices A, B, C y D del sistema:
Obteniendo:
Donde:
( )
( )
( )
+ . )
( )
( )
Siendo:
=( + =
T= Tiempo de Muestreo
) )
( )
( ) ( )
= (0
1 0)
1( ) 2( ) 3( )
Una vez obtenidos los modelos en tiempo continuo y discreto, pasaremos a simularlos utilizando MATLAB, para comprobar como tanto en tiempo continuo como en discreto se obtienen los mismos resultados.
En primer lugar simularemos el sistema en tiempo continuo, frete a una seal de entrada de tipo escalon (step):
clc %%DAMOS VALORES A LAS CONSTANTES DEL CIRCUITO syms r1 r2 r3 c1 c2 l r1=30; r2=100; r3=1500; c1=0.1*10^(-6); c2=0.1*10^(-6); l=2.3*10^(-3); %%CREAMOS MATRICES DEL MODELO DEL SISTEMA A=[-1/(c1*r2) 1/(c1*r2) 1/c1; 1/(c2*r2) -(r2+r3)/(r2*r3*c2) 0; (-1/l) 0 -r1/l]; B=[0; 0; 1/l]; C=[0 1 0]; D=0; %%GENERAMOS EL SISTEMA sys=ss(A,B,C,D); %%VECTORES DE LA SIMULACION [y,t,x]=step(sys);
%PLOTEAMOS LA SIMULACION figure(1) plot(t,x(:,1)) axis([0, 0.001, 0.25, 1.6]) title('Respuesta a una funcion escalon') xlabel('tiempo (seg.)') ylabel('Tension (V)') gtext('X1 = Tension en C1') figure(2) plot(t,x(:,2)) axis([0, 0.001, 0.25, 1.4]) title('Respuesta a una funcion escalon') xlabel('tiempo (seg.)') ylabel('Tension (V)') gtext('X2 = Tension en C2') figure(3) plot(t,x(:,3)) axis([0, 0.001, -0.007, 0.007]) title('Respuesta a una funcion escalon') xlabel('tiempo (seg.)') ylabel('Intensidad (I)') gtext('X3 = Intensidad en L') figure(4) plot(t,y) axis([0, 0.001, 0.25, 1.4]) title('Respuesta a una funcion escalon') xlabel('tiempo (seg.)') ylabel('Tension (V)') gtext('Y = Tension en R3')
Y obtenemos cuatro graficas, las cuales representan la simulacin de las 3 variables y la salida frente a la funcin escalon:
Respuesta a una funcion escalon 1.6
1.4
0.8
0.6
0.4
0.1
0.2
0.3
0.7
0.8
0.9 x 10
1
-3
Respuesta a una funcion escalon 1.3 1.2 1.1 1 Tension (V) 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0 0.1 0.2 0.3 0.4 0.5 0.6 tiempo (seg.) 0.7 0.8 0.9 x 10 1
-3
X2 = Tension en C2
x 10 6
-3
2 Intensidad (I)
X3 = Intensidad en L
-2
-4
-6 0 0.1 0.2 0.3 0.4 0.5 0.6 tiempo (seg.) 0.7 0.8 0.9 x 10 1
-3
Respuesta a una funcion escalon 1.3 1.2 1.1 Y = Tension en R3 1 Tension (V) 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0 0.1 0.2 0.3 0.4 0.5 0.6 tiempo (seg.) 0.7 0.8 0.9 x 10 1
-3
Y obtenemos cuatro graficas, las cuales representan la simulacin de las tres variables y la salida frente a la funcin escalon:
X1 = Tension en C1
0.05
0.1
0.15
0.3
0.35
0.4
0.45
1.2
X2 = Tension en C2
Tension (V)
0.8
0.6
0.4
0.2
0.05
0.1
0.15
0.3
0.35
0.4
0.45
7 6 5 4 Intensidad (I) 3 2 1 0 -1 -2 -3
x 10
-3
X3 = Intensidad en L
0.05
0.1
0.15
0.3
0.35
0.4
0.45
1.2
Y = Tension en R3
Tension (V)
0.8
0.6
0.4
0.2
0.05
0.1
0.15
0.3
0.35
0.4
0.45
Se puede observar como tanto en la simulacin en tiempo continuo como en la de tiempo discreto, se obtiene el mismo resultado.
Sistema de 2do Orden Supongamos que pretendemos enviar un cohete al espacio atreves de la atmosfera. El cohete esta inicialmente en reposo y se le aplica una fuerza de propulsion para impulsarlo. Supongamos que la posicin del cohete con respecto al suelo es x. Aplicando la ley de Newton y realzando una suma de fuerzas tenemos: Fu mg k = m m + k = Fu mg
Y ahora suponemos que la seal de entrada al sistema u, es igual a la fuerza de propulsin necesaria, Fu/m g = u. Por tanto la ecuacin diferencial del sistema quedara: = k +u m =>
Ahora obtenemos el modelo de estado suponiendo como variables de estado ; X1 = posicin y X2 = velocidad. ( ) = x(t) = = =
=>
Ahora obtenemos la funcin de transferencia a partir de la ecuacin diferencial del sistema. Para esto simplemente se ha de obtener la transformada de Laplace de la ecuacin, considerando nulas las condiciones iniciales, agrupando elementos y obteniendo la relacin Y(s) / U(S). = => => ( )= ( )= ( ) ( ( ))
( )
( )
( )
+ . )
( )
( )
Siendo:
=( + =
T= Tiempo de Muestreo
= (0
0 1 1)
( ) ( )
( )
( )
Una vez obtenidos los modelos en tiempo continuo y discreto, pasaremos a simularlos utilizando MATLAB, para comprobar como tanto en tiempo continuo como en discreto se obtienen los mismos resultados. En primer lugar simularemos el sistema en tiempo continuo, frete a una seal de entrada de tipo escalon (step):
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%SIMULACION EN TIEMPO CONTINUO%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% clc %%DAMOS VALORES A LAS CONSTANTES DEL CIRCUITO syms k m T k=3; m=90; %%CREAMOS MATRICES DEL MODELO DEL SISTEMA A=[0 1; 0 -k/m]; B=[0; 1]; C=[0 1]; D=0; %%GENERAMOS EL SISTEMA sys=ss(A,B,C,D); %VECTORES DE SIMULACION [y,t,x]=step(sys); %%VECTORES DE LA SIMULACION [y,t,x]=step(sys); %PLOTEAMOS LA SIMULACION figure(1) plot(t,x(:,1)) title('Respuesta a una funcion escalon') xlabel('tiempo (seg.)') ylabel('Posicion') figure(2) plot(t,x(:,2)) title('Respuesta a una funcion escalon') xlabel('tiempo (seg.)') ylabel('Velocidad')
50
100
200
250
300
25
20 Velocidad
15
10
50
100
200
250
300
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%SIMULACION EN TIEMPO DISCRETO%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%Tiempo de muestreo T=0.01 %%CREAMOS MATRICES DEL MODELO DEL SISTEMA F=[1 T; 0 1-((k*T)/m)]; G=[0; T]; H=[0 1]; I=0; %%GENERAMOS EL SISTEMA ss_discreto=ss(F,G,H,J); %VECTORES DE SIMULACION [y,t,x]=step(ss_discreto); %%VECTORES DE LA SIMULACION [y,t,x]=step(ss_discreto); %PLOTEAMOS LA SIMULACION figure(1) plot(t,x(:,1)) title('Respuesta a una funcion escalon') xlabel('tiempo (seg.)') ylabel('Posicion (m)') figure(2) plot(t,x(:,2)) title('Respuesta a una funcion escalon') xlabel('tiempo (seg.)') ylabel('Velocidad(m/s)')
5 tiempo (seg.)
10
15
3.5
x 10
2.5 Velocidad(m/s)
1.5
0.5
5 tiempo (seg.)
10
15
En este caso no se corresponde con el resultado obtenido en tiempo continuo, supongo que ser debido a algn fallo a la hora de realizar el programa en MATLAB o al discretizar el modelo, pero son ya cerca de las 3.00 de la madrugada y no doy con el fallo.
Manuel Corrales Rodrguez Sistemas de Control Industrial 2 Grado Ingenieria en Electrnica Industrial