Académique Documents
Professionnel Documents
Culture Documents
OBJETIVO
Este curso bsico de MATLAB tiene como objetivo principal de que el estudiante se inicie en el uso de esta herramienta computacional que es bsica en toda ingeniera a nivel Mundial. Los conocimientos bsicos que debe de tener el estudiante son los de Algebra Lineal. Este curso puede ser cubierto fcilmente en 6 horas realizando todos los ejercicios que se muestran. Con este curso bsico, el estudiante debe de ser capaz de seguir aprendiendo el MATLAB de manera autodidacta.
INTRODUCCION El nombre de MATLAB proviene de la contraccin de los trminos MATrix LABoratory y fue inicialmente concebido para proporcionar fcil acceso a las libreras LINPACK y EISPACK, las cuales representan hoy en da dos de las libreras ms importantes en computacin y clculo matricial. MATLAB es un entorno de computacin y desarrollo de aplicaciones totalmente integrado orientado para llevar a cabo proyectos en donde se encuentren implicados elevados clculos matemticos y la visualizacin grfica de los mismos. MATLAB integra anlisis numrico, clculo matricial, proceso de seal y visualizacin grfica en un entorno completo donde los problemas y sus soluciones son expresados del mismo modo en que se escribiran tradicionalmente, sin necesidad de hacer uso de la programacin tradicional. En los medios universitarios MATLAB se ha convertido en una herramienta bsica, tanto para los profesionales e investigadores de centros docentes, como una importante herramienta para el dictado de cursos universitarios, tales como sistemas e ingeniera de control, lgebra lineal, proceso digital de imagen, seal, etc. En el mundo industrial MATLAB est siendo utilizado como herramienta de investigacin para la resolucin de complejos problemas planteados en la realizacin y aplicacin de modelos matemticos en ingeniera. Los usos ms caractersticos de la herramienta los encontramos en reas de computacin y clculo numrico tradicional, teora de control automtico, estadstica, anlisis de series temporales para el proceso digital de seal. MATLAB es la disponibilidad de los toolboxes especializados. Estos son paquetes especializados, orientados a ingenieros, cientficos y otros tipos de profesionales tcnicos. Para iniciar MATLAB, seleccionamos el programa MATLAB de un men del sistema.
Manuel Madrigal
y aparece la siguiente ventana de MATLAB, que dice que MATLAB est esperando que introduzcamos un comando. Esta ventana puede cambiar en funcin de la versin.
Manuel Madrigal
Para salir de MATLAB, use quit o exit. El comando clc despeja la ventana de comandos, y el comando clf borra la figura actual y por tanto despeja la ventana de grficos. El comando clear no afecta a las ventanas, pero si borra todas las variables de la memoria Para ver algunas de las capacidades de MATLAB, usar el comando demo, que inicia el MATLAB EXPO, un entorno grfico de demostracin que ilustra algunos tipos de operaciones que se pueden realizar con MATLAB. Para abortar un comando en MATLAB, mantener presionada la tecla de control y oprima c (Ctrl. + c). Esto ocasiona un interrupcin local dentro del MATLAB. Para acceder al men de ayuda se debe usar el comando help. El simbolo denota el prompt de MATLAB y no se escribe al entrar instrucciones. El ; al final de la instruccin omite el eco o salida a la pantalla. Para el presente curso seguir todos los comandos que en este curso se presentan, pues solamente con la prctica se puede llegar a aprender el MATLAB.
Manuel Madrigal
COMANDOS BASICOS EN MATLAB Suma 2+3 ans = 5 Resta 3-0.01 ans = 2.9900 Divisin 4/9.5 ans = 0.4211 Multiplicacin y operaciones 4/2*(12+2) ans = 28 Uso de variables x=2 x = 2 y=4.6 y = 4.6000 z=x*y z = 9.2000 Nmeros complejos i % por default MATLAB usa la i para nmero complejo ans = 0 + 1.0000i sqrt(-1) % sqrt significa raz cuadrada ans = 0 + 1.0000i x=2+3i
Manuel Madrigal
x = 2.0000 + 3.0000i 1/x ans = 0.1538 - 0.2308i Magnitud de fasor x x = 2.0000 + 3.0000i abs(x) % obtiene la magnitud de la variable x ans = 3.6056 angle(x) % obtiene el ngulo de la variable x en radianes ans = 0.9828 Angulo de fasor angle(x)*180/pi % forma de obtener el ngulo en grados ans = 56.3099 pi % variable que reconoce MATLAB como ans = 3.1416 Vectores v=[1 2 3+i] v = 1.0000 2.0000
3.0000 + 1.0000i
v=[1;2;3+i] v = 1.0000 2.0000 3.0000 + 1.0000i Matrices A=[1 2 3;2 0 1; A = 1.0000 2.0000 2.0000 0 2.0000 1.0000 2 1 3+2i] 3.0000 1.0000 3.0000 + 2.0000i
Manuel Madrigal
B=[1 2 3;3 4 1] B = 1 2 3 3 4 1 Multiplicacin de matrices N C=[1 0 0;2 3 1;2 3 1]; Cx=[1 0 0;2 1 0; 2 3 1]; N=C*Cx = 1 0 0 10 6 1 10 6 1
v v = 1.0000 2.0000 3.0000 + 1.0000i x=N*v x = 1.0000 25.0000 + 1.0000i 25.0000 + 1.0000i Inversa de una matriz A A = 1.0000 2.0000 2.0000 inv(A) ans = 0.0411 - 0.1096i 0.6027 - 0.2740i -0.0822 + 0.2192i Transpuesta de una matriz v v = 1.0000 2.0000 3.0000 + 1.0000i transpose(v) ans = 2.0000 0 1.0000 3.0000 1.0000 3.0000 + 2.0000i
Manuel Madrigal
1.0000 B B = 1 3 2 4 3 1
2.0000
3.0000 + 1.0000i
transpose(B) ans = 1 3 2 4 3 1 N N = 1 10 10 0 6 6 0 1 1
transpose(N) ans = 1 10 0 6 0 1
10 6 1
Transpuesta conjugada de una matriz v v = 1.0000 2.0000 3.0000 + 1.0000i v' ans = 1.0000 A=[2+i 2-3i;1 2+i] A = 2.0000 + 1.0000i 1.0000 A' ans = 2.0000 - 1.0000i 2.0000 + 3.0000i
2.0000
3.0000 - 1.0000i
Manuel Madrigal
>>A=[1 2 0;3 2 1;0 -1 2] A= 1 2 3 2 0 -1 >> eig(A) ans = -0.8662 3.6554 2.2108 0 1 2 % valores caractersticos de la matriz A
Manuel Madrigal
Funciones trigonomtricas Las funciones trigonomtricas son en radianes sin(3.2) ans = -0.0584 cos(pi) ans = -1 tan(pi/4) ans = 1.0000 exp(-2) ans = 0.1353 log(pi/4*2) ans = 0.4516 cosh(2+i) ans = 2.0327 + 3.0519i % seno de 3.2 rad
% coseno de pi rad.
% tangente
% exponencial e-2
% logaritmo
% coseno hiperblico
Manuel Madrigal
OPERACIONES CON MATRICES v v = 1.0000 2.0000 3.0000 + 1.0000i Cuadrado elemento a elemento v.^2 ans = 1.0000 4.0000 8.0000 + 6.0000i Divisin por 2 elemento a elemento v./2 ans = 0.5000 1.0000 1.5000 + 0.5000i Cuadrado de la matriz N N N = 1 10 10 N^2 ans = 1 80 80 0 42 42 0 7 7 0 6 6 0 1 1
0 36 36
0 1 1
Manuel Madrigal
10
ans = 0.5000
1.0000
1.5000
2.0000
Manuel Madrigal
11
x=-3:0.5:2 % crea vector con valores de 3 a 2 con intervalos de 0.5 x = Columns 1 through 7 -3.0000 -2.5000 -2.0000 -1.5000 -1.0000 -0.5000 Columns 8 through 11 0.5000 1.0000 t t = 0 t(2) ans = 1 t(5) ans = 4 B B = 1 3 B(2,2) ans = 4 B(:,1) ans = 1 3 B(2,:) ans = 3 size(B) ans = 2 size(t) ans = 1 2 4 3 1 % obtiene el valor del elemento en la posicin 2,2, de la matriz B 1 2 3 4 5 % obtiene el valor del elemento en la posicin 2 de t
1.5000
2.0000
% obtiene todos los valores del rengln 2 4 1 % obtiene la dimensin de la matriz B que es de orden 2X3 3 % obtiene la dimensin del vector t, que es de orden 1X6 6
Manuel Madrigal
12
A=[1 2 3 4;2 3 4 5; 0 1 2 3;0 9 0 8]; A A = 1 2 3 4 2 3 4 5 0 1 2 3 0 9 0 8 A(1,3) ans = 3 A(:,2) ans = 2 3 1 9 A(2:3,2:3) ans = 3 4 1 2 A(1,:) ans = 1
Manuel Madrigal
13
AYUDAS EN MATLAB help HELP topics: MATLAB\general MATLAB\ops MATLAB\lang MATLAB\elmat MATLAB\elfun MATLAB\specfun .. Ayuda de un tpico en especial help elfun Elementary math functions. Trigonometric. sin sinh asin asinh cos cosh .. Ayuda de una funcin en particular help sin SIN Sine. SIN(X) is the sine of the elements of X. General purpose commands. Operators and special characters. Programming language constructs. Elementary matrices and matrix manipulation. Elementary math functions. Specialized math functions.
Sine. Hyperbolic sine. Inverse sine. Inverse hyperbolic sine. Cosine. Hyperbolic cosine.
Overloaded methods help sym/sin.m help inv INV Matrix inverse. INV(X) is the inverse of the square matrix X. A warning message is printed if X is badly scaled or nearly singular. See also SLASH, PINV, COND, CONDEST, NNLS, LSCOV. Overloaded methods
Manuel Madrigal
14
Operators and special characters. Arithmetic operators. plus - Plus uplus - Unary plus minus - Minus uminus - Unary minus mtimes - Matrix multiply times - Array multiply mpower - Matrix power power - Array power mldivide - Backslash or left matrix divide mrdivide - Slash or right matrix divide ldivide - Left array divide rdivide - Right array divide kron - Kronecker tensor product Relational operators. eq - Equal ne - Not equal lt - Less than gt - Greater than le - Less than or equal ge - Greater than or equal Logical operators. and - Logical or - Logical not - Logical xor - Logical any - True if all - True if
+ + * .* ^ .^ \ / .\ ./ kron
AND & OR | NOT ~ EXCLUSIVE OR any element of vector is nonzero all elements of vector are nonzero
Special characters. colon - Colon paren - Parentheses and subscripting paren - Brackets paren - Braces and subscripting punct - Decimal point punct - Structure field access punct - Parent directory punct - Continuation
: ( ) [ ] { } . . .. ...
Manuel Madrigal
15
punct punct punct punct punct punct transpose ctranspose horzcat vertcat subsasgn subsref subsindex
Separator , Semicolon ; Comment % Invoke operating system command ! Assignment = Quote ' Transpose .' Complex conjugate transpose ' Horizontal concatenation [,] Vertical concatenation [;] Subscripted assignment ( ),{ },. Subscripted reference ( ),{ },. Subscript index
Bitwise operators. bitand - Bit-wise AND. bitcmp - Complement bits. bitor - Bit-wise OR. bitmax - Maximum floating point integer. bitxor - Bit-wise XOR. bitset - Set bit. bitget - Get bit. bitshift - Bit-wise shift. Set operators. union unique intersect setdiff setxor ismember -
Set union. Set unique. Set intersection. Set difference. Set exclusive-or. True for set member.
Manuel Madrigal
16
GRAFICACION EN MATLAB Ejemplo 1: Graficar la funcin y = sin( x)e 0.4 x x=0:0.05:10; y=sin(x).*exp(-0.4*x); plot(x,y); xlabel(x);ylabel(y); Ejemplo 2: Graficar la funcin z = cos( p ) + i sin( 2 p )e 0.05 p + 0.01 p p=0:0.05:8*pi; z=cos(p)+i*sin(2*p).*exp(-0.05*p)+0.01*p; plot(real(z),imag(z)); xlabel(Re(z));ylabel(Im(z)); Ejemplo 3: Graficar la funcin y = sin( x)e 0.4 x con diferente tipo de lnea x=0:0.05:10; y=sin(x).*exp(-0.4*x); plot(x,y,+); xlabel(x);ylabel(y); Ejemplo 4: Graficar la funcin y = sin( x)e 0.4 x con grid x=0:0.05:10; y=sin(x).*exp(-0.4*x); plot(x,y); xlabel(x);ylabel(y); grid Ejemplo 5: Graficar la funcin y = sin(3t )e 0.3t con titulo y grid t=0:0.05:pi+0.01; y=sin(3*t).*exp(-0.3*t); polar(t,y); title(Grafica en polar); grid Ejemplo 6: Uso del subplot clear all; % limpia variables clf; % limpia todas las graficas t=0:0.3:30; g1=sin(t); g2=t.*sin(t); g3=t.*sin(t).^2; g4=t.^2.*sin(t).^2; subplot(2,2,1);
Manuel Madrigal
17
10
20
30
10
20
30
30
1000 800
20
10
0 0 10 20 30
0 0 10 20 30
Ejemplo 7: Diferente forma de graficacin clf x = 0:0.1:4; y = sin(x.^2).*exp(-x); stem(x,y) % diferente forma de graficar grid
0.35 0.3 0.25 0.2 0.15 0.1 0.05 0 -0.05 -0.1 -0.15 0 0.5 1 1.5 2 2.5 3 3.5 4
Manuel Madrigal
18
ARCHIVOS .m EN MATLAB Los ejemplos anteriores se pueden ejecutar usando archivos .m edit Aparece un editor en donde se puede escribir los comandas a ejecutar en MATLAB, por ejemplo escribir: % este es un ejemplo de archivo .m x=0:0.05:10; y=sin(x).*exp(-0.4*x); plot(x,y); xlabel(x);ylabel(y); En el men FILE guardar el archivo como ejemplo1.m, y despus en la pantalla del MATLAB ejecutar dicho ejemplo: ejemplo1
Manuel Madrigal
19
PROGRAMACION EN MATLAB En los siguientes ejemplos usar archivos .m -----------------------------% programa simple para uso de ciclo FOR clear all n=4; m=3; for j=1:m for k=1:n A(j,k)=j*k; end end --------------------------------% ejemplo ciclo WHILE clear all tol=1e-5; iter=0; x=[1 2 3 4 5]; while max(abs(x))>tol x=x/2; iter=iter+1; end iter [max(abs(x)) tol] ----------------------------------------------------------%ejemplo sentencia IF clear all n=10; if n>15 a=0; else a=1; end a ----------------------------------------------------------% ejemplo switch
Manuel Madrigal
20
clear all nombre='paty'; switch nombre case 'jose' disp('se trata de Jose'); case 'paty' disp('se trata de Paty'); otherwise disp('no se trata de Jose ni Paty'); end ----------------------------------------------------------% Ejemplo multiplicacion matrix por % vector de orden 3X3 clear all x=[1;2;3]; A=[1 2 3;4 5 6;7 8 9]; for k=1:3 m=0; for j=1:3 m=A(k,j)*x(j)+m; end B(k)=m; end B A*x ------------------------------
Manuel Madrigal
21
FUNCIONES EN MATLAB Las funciones se guardan como archivos .m -----------------------------function y=evaluar1(a,b,c,x) y=a*x^2+b*x+c; -----------------------------Nota: Importante guardar el archivo como evaluar1.m Forma de llamar a la funcin evaluar1 m=evaluar1(1,2,3,0.1) m = 3.2100 ----------------------------------------------------------function [x,y]=evaluar2(a,b,t) x=exp(-a*t).*sin(t); y=exp(-b*t).*sin(t); -----------------------------Evaluacin de la funcin evaluar2 t=0:0.2:10; [x,y]=evaluar2(1,2,t); plot(t,x,t,y); -----------------------------Mas graficas en MATLAB Ejemplo 1 Grafica en tres dimensiones (plot3) clear all clf t=0:0.1:20; r=exp(-0.2*t); x=r.*cos(0.5*pi*t); y=r.*sin(0.5*pi*t); z=t; plot3(x,y,z); xlabel('X'); ylabel('Y'); zlabel('Z');
Manuel Madrigal
22
grid
20
15
10
Ejemplo 2: Grafica de mallas (meshgrid y mesh) clear all clf xa=[-2:0.2:2]; ya=[-2:0.2:2]; [x,y]=meshgrid(xa,ya); z=x.*exp(-x.^2-y.^2); mesh(x,y,z); title('Grafica en tercera dimension'); xlabel('X'); ylabel('Y'); zlabel('Z');
Manuel Madrigal
23
Ejemplo 3 Grafica de contornos (contour, clabel) clear all clf xa=[-2:0.2:2]; ya=[-2:0.2:2]; [x,y]=meshgrid(xa,ya); z=x.*exp(-x.^2-y.^2); h=contour(x,y,z); clabel(h); title('Grafica de contorno'); xlabel('X'); ylabel('Y');
Grafica de contorno 2 1.5 -0.1 1 0.5 -0.4 0 -0.5 -1 -1.5 -2 -2 -0.2 0.2 Y 0 0.1
-1.5
-1
-0.5
0 X
0.5
1.5
Ejemplo 4 Grafica en tres dimensiones y contornos (meshc) clear all clf xa=[-2:0.2:2]; ya=[-2:0.2:2]; [x,y]=meshgrid(xa,ya); z=x.*exp(-x.^2-y.^2); meshc(x,y,z); title('Grafica en tercera dimension'); xlabel('X'); ylabel('Y'); zlabel('Z');
Manuel Madrigal
24
Ejemplo 5 Grafica en tres dimensiones (surf) clear all clf xa=[-2:0.2:2]; ya=[-2:0.2:2]; [x,y]=meshgrid(xa,ya); z=x.*exp(-x.^2-y.^2); surf(x,y,z); title('Grafica en tercera dimension'); xlabel('X'); ylabel('Y'); zlabel('Z');
Manuel Madrigal
25
clear all clf xa=[-2:0.2:2]; ya=[-2:0.2:2]; [x,y]=meshgrid(xa,ya); z=x.*exp(-x.^2-y.^2); surfl(x,y,z); colormap(pink); title('Grafica en tercera dimension'); xlabel('X'); ylabel('Y'); zlabel('Z');
Programa Demo de MATLAB El MATLAB ofrece un programa interactivo de demostracin. Este programa ofrece todo tipo de herramientas con las que cuenta el MATLAB, por ejemplo uso de matrices, formas de graficacin, libreras, entre muchas cosas ms. Es recomendable ver este Demo a menudo. La forma de ejecutar el Demo es: demo
Manuel Madrigal
26
SOLUCION DE PROBLEMAS CON AYUDA DEL MATLAB Ejemplo: Resolver el siguiente sistema de ecuaciones lineales
3x + 2 y 3z = 4 2x y = 0 x + 10 y + z = 2
Este sistema se puede agrupar de la forma:
3 2 3 x 4 2 1 0 y = 0 1 10 1 z 2
de esta manera usando el MATLAB para encontrar los valores de x,y, z es: A=[3 2 -3;2 -1 0;1 10 1] A= 3 2 -3 0 1 2 -1 1 10 b=[4;0;-2] b= 4 0 -2 w=inv(A)*b w= -0.0286 -0.0571 -1.4000 As se tiene que
Manuel Madrigal
27
x = Ax + bu
Donde x es la variable de estado. Ejemplo: Encontrar la corriente del siguiente circuito, si R=0.2 ohms, L=0.03 H, v(t)=1.1cos(t)
v(t)
i(t)
di (t ) R 1 = i (t ) + v(t ) dt L L
Solucin: Se representa a la ecuacin diferencial en una funcin -----------------------------function didt=ecua_est(t,cor) v=1.1*cos(t); L=0.03; R=0.2; didt=-R/L*cor+1/L*v; -----------------------------Forma de resolver la ecuacin diferencial de la funcin ecua_est. Para este caso se utiliza la funcin ode23 de MATLAB clear all t0=0; % tiempo inicial de integracin tf=10; % tiempo final de integracin c_i=0; % condicin inicial de la variable de estado [t,cor]=ode23('ecua_est',[t0 tf],c_i); % uso de ode23 para solucin plot(t,cor);
La grafica corresponde a i (t ) .
Manuel Madrigal
28
-----------------------------Ejemplo: Encontrar la corriente del siguiente circuito, si R1=0.2 ohms, L1=0.03 H, R2=0.1 ohms, L2=0.04 H, v(t)=1.1cos(t)
L1 v(t) i1(t) R1
L2 i2(t) R2
v = L1
di1 R1 dt L = 1 di2 R1 dt L2
R1 i1 1 L1 + L v R1 + R2 i2 1 0 L2
Representada en una funcin de MATLAB: -----------------------------function dXdt=ecua_est2(t,X) v=1.1*cos(t); L1=0.03; R1=0.2; L2=0.04; R2=0.1; A=[-R1/L1 R1/L1 R1/L2 -(R1+R2)/L2]; b=[1/L1 0]; U=v; dXdt=A*X+b*U; ----------------------------- clear all t0=0; tf=10; c_i=[0;0]; [t,cor]=ode23('ecua_est2',[t0 tf],c_i);
Manuel Madrigal
29
Ejemplo: Factor de Potencia vs Capacitor Para el seguiste sistema, obtener el voltaje y el factor de potencia en el punto indicado. Utilizar valores de reactancia capacitiva Xc de 10 a 100 ohms. Considerar: Vs = 440 volts Zs = 1+j0.2 ohms ZL = 10+j20 ohms
Zs I Vs
V ZL
Xc
I=
VS XCZL ZS + XC + ZL
V = VS Z S I
De esta manera la potencia aparente esta dada por
S = VI * = P jQ
Por tanto el PF dado por:
FP =
P S
Qcap =
XC
Manuel Madrigal
30
clear all Zs=1+i*0.2; Vs=440; ZL=10+i*20; c=1; for Xc=10:1:100 I=Vs/(Zs-i*Xc*ZL/(-i*Xc+ZL)); V=Vs-Zs*I; S=V*conj(I); FP(c)=real(S)/norm(S); Xcap(c)=Xc; Vcap(c)=abs(V); Qcap(c)=abs(V)^2/Xc; c=c+1; end subplot(311); plot(Xcap,FP); xlabel('Xc en ohms'); ylabel('Factor de potencia en P'); grid subplot(312); plot(Xcap,Vcap); xlabel('Xc en ohms'); ylabel('Voltaje en P [V]'); grid subplot(313); plot(Xcap,Qcap/1000); xlabel('Xc en ohms'); ylabel('Potencia del capacitor [KVAR]'); grid ------------ fin de programa --------------------------------
Manuel Madrigal
31
0.2 10
20
30
40
50 60 Xc en ohms
70
80
90
100
Voltaje en P [V]
428 10
20
30
40
50 60 Xc en ohms
70
80
90
100
20 15 10 5
0 10
20
30
40
50 60 Xc en ohms
70
80
90
100
Manuel Madrigal
32
Ejemplo: Mtodo del gradiente para encontrar el mnimo de una funcin no lineal f(x).
Este mtodo consiste en, a partir de un punto inicial x(k), avanzar en direccin contraria al gradiente (x f(x)) utilizando la siguiente ecuacin recursiva:
x ( k +1) = x ( k ) ( k ) x f x ( k )
donde: x(k) = = x f(x) = x(k+1) =
(k)
( )
Punto inicial Longitud de paso Gradiente de f(x) Nuevo punto (punto mejorado)
(k ) =
T f (x ) x f (x ) x T f (x ) H x f (x ) x
Donde H es el Hessiano de la funcin. De aqu que aparezca el siguiente algoritmo para encontrar el mnimo de una funcin no lineal mediante el mtodo del gradiente. Algoritmo: Paso 1: Paso 2: Paso 3: Seleccionar un punto inicial, x(0). Hacer k = 1. Calcular g ( k ) = x f x ( k ) y (k), hacer x ( k +1) = x ( k ) ( k ) g ( k )
( )
Si ||g || (prcticamente cero) el proceso termina. En caso contrario, hacer k = k+1. Regresar al paso 2.
(k)
Solucin:
( )
Manuel Madrigal
33
(0) =
(g ) g (g ( 0 ) ) T H g ( 0 )
(0) T
( 0)
(6
k=1
x ( 2)
(5.268
0.998 x ( 21) = 1
f(x(21)) 0
1 x* = 1
f(x*) = 0
---------- Programa en MATLAB para la solucin de este ejemplo -------------% % % % % % Ejemplo: Resolver en sistema: min f(x)=x1^2+9x2^2+2x1-18x2+10 mediante el metodo del gradiente
Manuel Madrigal
34
x1 = X0(1); x2 = X0(2); g = [2*x1+2;18*x2-18]; H = [2 0;0 18]; alfa = transpose(g)*g/(transpose(g)*H*g); X = X0-alfa*g; X0 = X; k = k+1; error=norm(g); end x1 = X(1) x2 = X(2) g f = x1^2+9*x2^2+2*x1-18*x2+10 error k --------------- final del programa -----------------Ejemplo: Frecuencia de resonancia La frecuencia de resonancia en un circuito LC esta dada por aquella frecuencia que iguala a la reactancia capacitivo con la reactancia inductiva, esto es:
XC = XL
Por tanto:
1 = 2fL 2fC
Despejando la frecuencia
f =
1 2 LC
A esta frecuencia se le conoce como frecuencia de resonancia. Ejemplo: sea L=10 mH y C=10 F. Encontrar la frecuencia de resonancia, as como respuesta a la frecuencia de 300 a 700Hz si estos dos elementos estn en paralelo. --------------- Programa en MATLAB ------------------clear all L=0.01; C=10e-6; fres=1/(sqrt(L*C)*2*pi)
Manuel Madrigal
35
cont=1; for f=300:700 XL(cont)=i*2*pi*f*L; XC(cont)=-i/(2*pi*f*C); XLC(cont)=XL(cont)*XC(cont)/(XL(cont)+XC(cont)); cont=cont+1; end f=300:700; subplot(211); plot(f,imag(XL),f,imag(XC)); xlabel('Frecuencia [Hz]'); ylabel('Impedancia [ohms]'); title('Impedancia capacitiva e inductiva'); grid subplot(212); plot(f,imag(XLC)); xlabel('Frecuencia [Hz]'); ylabel('Impedancia [ohms]'); title('Impedancia del paralelo Xc y XL'); grid --------------- fin del programa -------------------------->> ejemplo3 fres = 503.2921
Manuel Madrigal
36
350
400
450
600
650
700
x 10
2 Impedancia [ohms]
-1
-2 300
350
400
450
600
650
700
Manuel Madrigal
37