Está en la página 1de 10

CURSO DE MATLAB B�SICO

M�DULO 10 CIRCUITOS EL�CTRICOS

1. CIRCUITOS SIMPLES RESISTIVOS

Se tiene un circuito que arroja el sigiuente sistema de ecuaciones:

9i1-6i2-5i3=50
-i1+i2+0=5
0+i2-8i3=0

Se debe encontrar i1, i2 e i3:

El sistema est� expresado como Ax=b con:

A=|9 -6 -5|
|-1 1 0|
|0 1 -8|

x=|i1|
|i2|
|i3|

b=|50|
|5 |
|0 |

Para encontrar las corrientes digite x=A\b.

�Bastante ayuda la que presta esta herramienta!

-------------------------------------------------------------------------
2. SE�ALES B�SICAS

EL IMPULSO UNITARIO

IMPULSO= [zeros(9,1);1; zeros(10,1)];

Graf�quelo con

plot(IMPULSO);
plot(IMPULSO,'.');
stem(IMPULSO);

Realice una comparaci�n de ellos.

Note como el valor del impulso no aparece en el teimpo 0. C�mo lo graficar�a


ubicando el impulso en tiempo cero?

EL ESCALON
ESCALON = [zeros(9,1);ones(11,1)];
plot(ESCALON,'.');
stem(ESCALON);

Como lo graficar�a ubicando el escal�n en tiempo cero.

LA RAMPA

t=(-9:1:10)';
RAMPA =[zeros(9,1); t(10:20)];
plot(t,RAMPA,'.');
stem(t,RAMPA);

Eso le da una idea para graficar las anteriores en el dominio del tiempo.

LA FUNCION SINC(X)

x = linspace(-5,5);
y = sinc(x);
plot(x,y)

OTRA SE�AL B�SICA

Pruebe el siguiente comando

Fs = 10000;
t = 0:1/Fs:1.5;
x = sawtooth(2*pi*50*t);
plot(t,x), axis([0 0.2 -1 1])

�C�mo se llama la se�al generada?

RELACI�N ENTRE EL ESCAL�N Y EL IMPULSO

Obtenga la funci�n escalon integrando el impulso

plot(cumsum(IMPULSO));

cumsum es una suma acumulada ( recuerde que una integral es una suma acumulada).

Ahora Obtenga la funci�n impulso, derivando el escal�n

Para diferenciar utilice el comando diff, pero tenga en cuenta que el vector
generado tiene un elemento menos que el original, asi que si quiere graficar contra
el tiempo tiene que quitarle un elemento al vector de tiempo.

RELACI�N ENTRE EL ESCAL�N Y LA RAMPA

Obtenga la funci�n rampa, integrando el escal�n

-------------------------------------------------------------------

3. COMBINACI�N DE FUNCIONES SENOIDALES

En este paso trataremos de establecer la periodicidad de una se�al que es sumatoria


de varias se�ales senoidales.
Definamos un vector de tiempos:

t=[0:.0001:.02];

Ahora definamos las funciones senoidales

f1=100;f2=300;f3=600;
x1=sin(2*pi*f1*t);
x2=2*sin(2*pi*f2*t+pi/3);
x3=5*sin(2*pi*f3*t+pi/6);
plot(t,x1,t,x2,t,x3)

Luego calculemos la suma de todas y verifiquemos si es peri�dica la suma.

x=x1+x2+x3;
figure
plot(t,x)

Ahora var�e los valores de f1, f2 y f3 para que la funci�n x no sea peri�dica.

-------------------------------------------------------------------

4. ENERG�A Y POTENCIA DE SE�ALES

Generemos un pulso rectangular entre -pi y pi.

t=[-pi:pi/100:pi];
x = square(t);
plot(x)

Ahora calculemos la energia.

E=cumsum(x.^2);
plot(t,E)

�Cuanto da la potencia?

-------------------------------------------------------------------

5. convoluci�n

La convoluci�n se denota con el signo "*" y conceptualmente corresponde a


multiplicaciones y sumas (integrales) desplazadas en el tiempo.

La convoluci�n puede ser unidimensional (para se�ales) o bidimensional


(para matrices e im�genes).

Realizar convoluciones en Matlab es muy sencillo


se utiliza la funci�n "conv", la sintaxis es "conv(X1,X2)"

Defina 3 vectores

A=[0 0 0 1 1 1 0 0 0]
B=[0 0 1 1 1 1 1 0 0]
C=[0 0 0 0 1 0 0 0 0]

Realice las siguiente convoluciones


C1=A*B
C2=B*A
C3=A*C

Graf�que simult�neamente C1 y C2 y compruebe si la convoluci�n es conmutativa

Grafique A y C3 y verifique como el impulso es el m�dulo de la convoluci�n


(es decir, al realizar la convoluci�n de una se�al con el impulso, se produce
la misma se�al, es por eso que el impulso se utiliza como una se�al elemental
que sirve para representar otras se�ales)

Para un sistema lineal, se tiene una entrada x(t), una salida y(t) y una funci�n de
transferencia h(t).

Ya sabemos que la respuesta de un sistema ante un impulso, caracteriza el sistema


y se denota como h(t).

Se puede demostrar que

x(t)*h(t)=y(t)

Es decir que la entrada convolucionada con la respuesta al impulso


genera la salida.

Ejercicio

Se tiene que la respuesta al impulso de un sistema "h1"


y se alimenta con una entrada "x1". Hallar la salida

Ub�quese en el directorio

C:\...\Curso_matlab\modulo10_2010_II

Carge los archivos "h1.mat" y "x1.mat". ( �recuerda como hacerlo? )

Graf�quelos (�qu� tipo de se�ales son?)


Obtenga la salida para dicho sistema.
Grafique los primeros 3000 datos e interprete los resultados.

-------------------------------------------------------------------

6. Funciones de Transferencia, representadas por trasformadas

Recuerde que usualmente se representan las funciones de transferencia a trav�s


de ecuaciones diferenciales (en el dominio del tiempo) y
o tambi�n con transformadas (en el dominio de la frecuencia)
las cuales convierten a la convoluci�n en una multiplicaci�n.
(Laplace y Fourier)

de tal manera que:

x(t)*h(t)=y(t)

Se transforma en:
X(s)H(s)=Y(s) (Laplace)
X(jw)H(jw)=Y(jw) (Fourier)

La may�sculas significan que se hizo la tranformaci�n.

Se puede despejar H(s) obteniendo:

Y(s)
H(s)= ------- (Laplace)
X(s)

Y(jw)
H(jw)= ------- (Fourier)
X(jw)

Cada uno de los t�rminos Y,X representa un polinomio con derivadas

Los coeficientes del polinomio de Y se representan con la letra B, y este polinomio


se relaciona con los ceros del sistema.

Al polinomio de X se le representa con la letra A, el cual se relaciona


con los polos del sistema.

Para el siguiente sistema

2
2s + 3s -4
H(s)= -------------------------
3 2
3s - 2s + 5s + 1

El polinomo en B es [2 3 -4]
El polinomo en A es [3 -2 5 1]

Encuentre los ceros de la funci�n

Encuentre los polos de la funci�n.

-------------------------------------------------------------------

7 Respuesta al impulso (impulse) y al escal�n (step)

Si se poseen los polinomios "B" y "A", Matlab, muestra la


respuesta al impulso con la funci�n "impulse"

Para el sistema continuo de la secci�n anterior:


B=[2 3 -4]
A=[3 -2 5 1]

La respuesta al impulso se obtiene as�:

SYS= tf(B,A)
[Y,T] = impulse(SYS)
plot(T,Y)

Y la respuesta el escal�n, as�:

[Y,T] = step(SYS)
figure
plot(T,Y)

-------------------------------------------------------------------

8. Diagrama de polos y ceros o plano complejo

Para el siguiente sistema

2
2s + 3s -4
H(s)= -------------------------
3 2
3s - 2s + 5s + 1

B=[2 3 -4]
A=[3 -2 5 1]

Se puede encontrar el patr�n de polos y ceros del sistema as�:

SYS= tf(B,A)

pzmap(SYS),sgrid

La funci�n sgrid es opcional.

-------------------------------------------------------------------
9. Impedancia compleja

Se tiene una funci�n de impedancia

s + 2
Z(s) =13---------------
2
s + 2s + 26
Para encontrar la gr�fica de impedancia compleja en 3D se hace lo siguiente:

clear all
close all
clc
sigma=linspace(-15,15,31);
omega=linspace(-10,10,21);
[X,Y]=meshgrid(sigma,omega);
Z=13*abs((2+X+j*Y)./((X+j*Y).^2+2*(X+j*Y)+26));
colormap(hsv)
s=[-5 3 8];
surfl(X,Y,Z,s);

�M�s sencillo que hacerlo manualmente!

-------------------------------------------------------------------

10. Series de Fourier

El espectro de Fourier es sencillo de calcular, para ello se emplea la funci�n


periodogram (no es la �nica). Veamos como se emplea esta funci�n el an�lisis de
circuitos.

Empecemos creando un vector de tiempo y una se�al (tomemos la se�al creada en el


punto 3 de este m�dulo)

clear all
close all
clc
Fs=4096;
t=[0:1/Fs:.02];
f1=100;f2=200;f3=300;
x1=3*sin(2*pi*f1*t);
x2=2*sin(2*pi*f2*t+pi/3);
x3=5*sin(2*pi*f3*t+pi/6);
plot(t,x1,t,x2,t,x3)
x=x1+x2+x3;
figure
plot(t,x)

Calcule el espectro de fourier:

[Pxx,f]=periodogram(x,[],1024,Fs);
figure
plot(f,Pxx)

Noten que aunque la gr�fica deber�a ser discreta (lineas) a aparece continua,
�puede explicar por qu�?
-------------------------------------------------------------------
11. Transformada de Fourier

Para calcular la transformada de Fourier empleamos una toolbox adicional que se


llama, matem�ticas simb�licas. Por medio de este toolbox se pueden hacer
operaciones matem�ticas con literales y luego evaluar las funciones reemplazando
las variables por un valor particular. Para m�s ingrese al bot�n start de MAtlab y
vaya a la opci�n Toolboxes y luego ingrese a la opci�n Symbolic Math y Help. Es una
herramienta muy poderosa.

Veamos como se calcular�a la transformada de Fourier de una funci�n cos(at):

syms t a % Esto define las variables t y wo como simb�licas

f = cos(a*t)

fourier(f)

Y la transformada inversa ser�:

syms a w real

f=pi*(dirac(a + w) + dirac(a - w))

ifourier(f)

�Reconoce la funci�n respuesta?

Por otro lado cuando se requiere calcular la transformada de Fourier num�ricamente


se emplean algoritmos que han sido optimizados con el fin de hacer el proceso de
c�lculo m�s eficiente y producto de ello es lo que se conoce como transformada
r�pida de Fourier ( FFT )

El calculo de la FFT es tan simple en Matlab como digitar FFT

Empecemos creando un vector de tiempo y una se�al:

clear all
close all
clc
Fs=4096; %Esto se conoce como frecuencia de muestreo
t=[0:1/Fs:.02];
f1=100;f2=300;
x1=3*sin(2*pi*f1*t);
x2=5*sin(2*pi*f2*t+pi/6);
plot(t,x1,t,x2)
x=x1+x2;
figure
plot(t,x)

Calcule la transformada r�pida de fourier:

y = fft(x);

Lo que se obtuvo aqu� fue X(F) - la representaci�n espectral de x(t)-

Examine los valores de "y" (mejor verlo en columna)

y'
Observe que "y" tiene coeficientes complejos.

�Quiere obtener el espectro de magnitud y fase?

m = abs(y);
p = unwrap(angle(y));

El comando unwrap corrige discontinuidades en el c�lculo del vector de �ngulos

Para dibujar la magnitud contra la frecuencia hacemos un vector

f = (0:length(y)-1);
figure
subplot(1,2,1)
plot(f,m)
set(gca,'XTick',[15 40 60 85]);

En la gr�fica de frecuencia la informaci�n relevante estar� posiblemente s�lo en la


mitad del vector encontrado, por esto podemos graficarlo con la mitad de los datos.

ff = f(1:length(f)/2);
mm = m(1:length(m)/2);
subplot(1,2,1)
plot(ff,mm)
set(gca,'XTick',[15 40 60 85]);

Analice los componentes del an�lisis espectral y comp�relos con la onda en el


dominio
del tiempo. D�nde es m�s f�cil encontrar las frecuencias de la se�al?

Podemos graficar la fase contra la frecuencia (convertida en grados).

subplot(1,2,2)
plot(f,p*180/pi)
set(gca,'XTick',[5 15 30 40 50]);

Finalmente grafiquemos la densidad espectral (PSD) de x(t), esto es [X(F)]^2, la


cual se puede calcular como X(F) multiplicada por la conjugada.

Py = y.* conj(y);
figure
plot(f,Py)

Recuerde que la densidad espectral es una funci�n par, por eso la gr�fica aparece
duplicada.

-------------------------------------------------------------------
12. Respuesta en frecuencia -Diagramas de Bode-

Partamos de un sistema representado por la siguiente funci�n de transferencia:

-2s
H(s)= --------------------------
(1+s/10) (1+s/20000)

Encontremos la respuesta en frecuencia del sistema

clear all
close all
w=logspace(-1,6,100);
num=-2*j*w;
den=(1+j*w/10).*(1+j*w/20000);
H=num./den;
HdB=20*log10(abs(H));
subplot(1,2,1)
semilogx(w,HdB)
xlabel('Frecuencia (rad/s)')
ylabel('|H(jw)|(dB)')

ang=unwrap(angle(H));
ang=ang*180/pi;
subplot(1,2,2)
semilogx(w,ang)
xlabel('Frecuencia (rad/s)')
ylabel('Angulo H(jw) (�)')

En la gr�fica se observa la respuesta en frecuencia, tanto de magnitud como de


fase; de acuerdo a �sta, �c�mo se podr�a claseificar el sistema? (Pasa-bjas, pasa-
altas, pasa-bandas, rechaza-bandas)

Otra forma de encontrar la respuesta en frecuencia es, partiendo de H(s), empleando


el comando freqs:

clear all
close all
w=logspace(-1,6,100);
num=[-2 0];
den=[1/(10*20000) (1/10+1/20000) 1];
freqs(num,den,w)

--------------------------------------------------------------------------------

Fin del m�dulo 10