domingo, 26 de febrero de 2012

Como obtengo un Sistema Invariante en el Tiempo?....


Para entender cuando un sistema es lineal e invariante en el tiempo, es decir es LTI,  las condiciones iniciales deben ser cero. Para ver como varía un sistema, se estudiará un ejemplo de  lacorriente en un circuito.

En este caso, supongamos entonces que se tiene un circuito cerrado con una resistencia de 1 Ohmio en serie con una inductancia de 1 H, alimentados por una fuente de V(t) = B*U(t).

Al aplicar la L.V.K y resolver la ecuación diferencial correspondiente, se obtiene que la corriente en el circuito está dada por:



En donde depende entonces de dos factores: Io [Corriente inicial] y B [Entrada de la Fuente].
Entonces para descubrir como afecta el sistema cada uno de ellos y cual combinación acertada puede hacer que el sistema no varíe en el tiempo, probaremos con cuatro casos y observaremos en una gráfica el comportamiento del sistema.

1) Io=1 , B=1 --> Con condiciones iniciales de corriente y con respuesta forzada en la fuente.

Usando el siguiente código de Matlab:

format long
t=0:0.000025:6;

io=1;
b=1;

dep_io=io.*exp(-t);
dep_b=b-b.*exp(-t);
i=dep_io+dep_b;

%subplot(3,1,1)
plot(t,dep_io,'--r',t,dep_b,'-.b',t,i,'g')
h=legend('Dependiente_Io','Dependiente_B','I_Total',3);
set(h,'Interpreter','none','Location','East')
grid on
axis([0 6 0 1.1])
title('CORRIENTE I [  Io=1 / B=1  ]')
xlabel('Tiempo[s]')
ylabel('Corriente [A)')


Se obtiene la siguiente gráfica:


 2) Io=1, B=2 --> Con condiciones iniciales de corriente y respuesta forzada de fuente mayor.

En un script bastante similar al anterior, pero modificando los valores de Io, B y el tamaño de los ejes para observar bien la gráfica.

format long
t=0:0.000025:6;

io=1;
b=2;

dep_io=io.*exp(-t);
dep_b=b-b.*exp(-t);
i=dep_io+dep_b;

plot(t,dep_io,'--c',t,dep_b,'-.b',t,i,'g')
h=legend('Dependiente_Io','Dependiente_B','I_Total',3);
set(h,'Interpreter','none','Location','East')
grid on
axis([0 6 0 2.1])
title('CORRIENTE I [  Io=1 / B=2  ]')
xlabel('Tiempo[s]')
ylabel('Corriente [A)')

 Se obtiene:


3) Io=0 , B=1 ---> Sin condiciones iniciales de corriente y con respuesta forzada de fuente

Con:

format long
t=0:0.000025:6;

io=0;
b=1;

dep_io=io.*exp(-t);
dep_b=b-b.*exp(-t);
i=dep_io+dep_b;

plot(t,dep_io,'--c',t,dep_b,'-.b',t,i,'g')
h=legend('Dependiente_Io','Dependiente_B','I_Total',3);
set(h,'Interpreter','none','Location','East')
grid on
axis([0 6 0 1.1])
title('CORRIENTE I [  Io=0 / B=1  ]')
xlabel('Tiempo[s]')
ylabel('Corriente [A)')

Se obtiene:


En donde la curva de corriente total (verde) oculta a la dependiente de B (azul oscuro) puesto que es la misma y la dependiente de Io (aguamarina) se encuentra sobre el eje x por ser igual a cero.

4) Io=0 , B=2 --> Sin condiciones iniciales de corriente y respuesta forzada de fuente mayor.

Con:

format long
t=0:0.000025:6;

io=0;
b=2;

dep_io=io.*exp(-t);
dep_b=b-b.*exp(-t);
i=dep_io+dep_b;

plot(t,dep_io,'--c',t,dep_b,'-.b',t,i,'g')
h=legend('Dependiente_Io','Dependiente_B','I_Total',3);
set(h,'Interpreter','none','Location','East')
grid on
axis([0 6 0 2.1])
title('CORRIENTE I [  Io=0 / B=2  ]')
xlabel('Tiempo[s]')
ylabel('Corriente [A)')

Se obtiene:

En donde ocurre el mismo fenómeno en la gráifca descrito en el numeral anterior.


De manera que cuando las condiciones iniciales son diferentes de cero, no se considera al sistema LTI; mientras que si son cero se considera LTI puesto que su respuesta sólo depende de la entrada "input B" referente al voltaje de fuente.

domingo, 12 de febrero de 2012

Operando una función infinita...

Respondiendo al ejercicio planteado de graficar tres diferentes situaciones de una función infinita, he elegido como mi función:     x(t) = 3cos(2t).
A través de la ejecución del siguiente script de Matlab se obtienen dos figuras cada una con dos gráficas para un total de 4 gráficas.

1 - Gráfica de x(t)
2 - Gráfica de y(t) = Una constante A + x(t)
3 - Gráfica de z(t) = x(t) + v(t) ; donde v(t) es una función infinita con un periodo igual a N veces enteras el periodo de x(t)
4 - Gráfica de q(t) = x(t) + u(t) ; donde u(t) es una función infinita con un periodo diferente a x(t) pero no necesariamente un múltiplo de este.

Se usan 3 funciones que deben ser previamente guardadas en el directorio de Matlab para la correcta ejecución del programa y son descritas al final del script.


%SCRIPT:

t=0:5:100;  %Vector tiempo

%Grafico funcion x(t)
x=f_cost(t);
figure
subplot(2,1,1)
plot(t,x)
grid on
title('Funcion x(t) = 3cos(2t)')
xlabel('t')
ylabel('x')


a=5; %Constante para sumar

%Grafico funcion y(t)
y=a+f_cost(t);
subplot(2,1,2)
plot(t,y)
grid on
xlabel('t')
ylabel('y')
title('Funcion y(t) = a + 3cos(2t) // a = 5 ')

w=2;
%Frecuencia angular w=2=2PI/T  -->  T=2PI/2=PI
%Para V(t) --> To=nT = 4PI ---> w=2PI/4PI = 0.5

%Grafico funcion z(t)
v=fv_cost(t);
z=x+v;
figure
subplot(2,1,1)
plot(t,z)
grid on
xlabel('t')
ylabel('z')
title('Funcion z(t) = x(t) + v(t) // v(t) = 3cos(0.5t)')

%Grafico funcion q(t)
u=fu_cost(t);
q=x+u;
subplot(2,1,2)
plot(t,q)
grid on
title('Funcion q(t) = x(t) + u(t) // u(t) = 3cos(3t)')
xlabel('t')
ylabel('q')

%Se obtiene como resultado dos ventanas (usualmente aparecen una sobre otra)
%cada una contiene dos graficas.

 ----------------------------------//

%FUNCIONES PREVIAS:

FUNCION f_cost.m

function [ x ] = f_cost( t )
x=3*cos(t.*2);
end


FUNCION fv_cost.m

function [ v ] = fv_cost( t )
v=3*cos(t.*0.5);
end


FUNCION fu_cost.m

function [ u ] = fu_cost( t )
u=3*cos(t.*3);
end

-----------------------------//

Se obtienen las siguientes imágenes:



 Eso es todo por ahora, habrá mas cada vez que aprenda algo nuevo....