Documentos de Académico
Documentos de Profesional
Documentos de Cultura
MATLAB
Autores: Dr. Pedro Arafet Padilla
MSc. Hugo Domnguez Abreu
Dr. Francisco Chang Muma
Segunda edicin
Tabla de contenidos
1.- Introduccin
9.13.-Transformada de Laplace..................................................................................................56
10.- Solucin de sistemas lineales................................................................................................57
Glosario de funciones, comandos y constantes que se mencionan 64
1.- Introduccin
1.1 El programa MATLAB.
MATLAB es el nombre abreviado de MATrix LABoratory. Es un programa para realizar
clculos con vectores y matrices. Como caso particular puede tambin trabajar con nmeros
escalares, tanto reales como complejos. Una de las capacidades ms atractivas es la de realizar
una amplia variedad de grficos en dos y tres dimensiones. MATLAB tiene tambin un lenguaje
de programacin propio. Es, para muchos, el paquete ms usado en ingeniera en la actualidad.
Numerosas firmas y grupos en el mundo hacen macros o juegos de funciones y comandos
poderosos, por supuesto a partir de algunos de los que se vern aqu, que se conocen en el mundo
con el nombre de toolbox, y que resuelven problemas de ramas especficas, tales como el control
automtico, control no lineal, identificacin, grficos, matemtica simblica, estadsticas, redes
neuronales, lgica fuzzy, procesamiento de seales, etc., y todos los aos aparecen nuevos y
mejores.
31.4159
3.1416e+001
31.41592653589793
3.141592653589793e+001
403f6a7a2955385e
3550/113
31.42
Los formatos adicionales: format compact (suprime una lnea posterior) y format loose (pone
una lnea posterior) controlan el espacio por encima y por debajo de la presentacin del nmero.
format + , visualiza el signo del nmero.
format short es el asumido.
7
Suma
Resta
Multiplicacin
Divisin izquierda
Divisin derecha
Potencia
A=
1 2 3
4 5 6
7 8 9
Se puede referir a un elemento de la matriz A, por ejemplo, A(i, j). Se trata del elemento de la fila
i y la columna j.
Los elementos de la matriz pueden ser, en general, expresiones:
x = [1 sqrt (23) 2 3*[a(1, 1) 3] ]
Interesante:
x = [1 2 3]
x (5) = - 2 entonces:
x = [ 1 2 3 0 - 2]
Grandes matrices pueden construirse a base de pequeas:
A = [A; 10 11 12] lo que produce
A= 1 2 3
4 5 6
7 8 9
10 11 12
Pequeas matrices pueden extraerse de grandes:
10
A = A(1: 3, 1: 2) Produce una matriz con las tres primeras filas y las dos primeras columnas de
A.
B = A(2, :) extrae la segunda fila de A.
ra
ta
ta
B = A(: , 3:5) extrae las columnas 3 , 4 y 5 de A.
Supongamos A = 1
5
0
3
2
6
0
4
3
7
0
2
4
8
0
1
B=2
6
B = A (:, 3) produce B = 3
7
0
2
B = A (1:3, :) produce B = 1 2 3 4
5 6 7 8
0 0 0 0
B = A (:) produce B = [1 2 3 4 5 6 7 8 0 0 0 0 3 4 2 1]
Se pueden generar vectores
y = m : n : p genera un vector con los elementos desde m hasta p con un incremento n. n puede
ser negativo. Si el incremento no se especifica se asume uno.
Permiten hacer cosas como stas:
x = 0: 0.2: 1;
y = exp(-x).*sin(x);
[x, y] produce
ans =
0
0
si X = 1 entonces Y = 0
2
2
3
3
2.4.3 Producto
Slo se puede resolver si las matrices son conformes al producto.
Si A = [1 2 3
y
x = [- 1
4 5 6
0
7 8 0]
2]
b = A*x resulta
b=5
8
-7
Por supuesto que pi*x = -3.1416
0.0000
6.2832
2.4.4 Inversa
B = inv (A) calcula la matriz inversa de A cuadrada no singular.
2.4.5 Divisin
Existen dos smbolos para dividir matrices / y \.
12
0
0
0
-1
-0.5
0.5
2.4.7 Determinante
B = det(A) calcula la determinante de A cuadrada.
A2 A3
.....
2!
3!
logm(A) = B de manera que A = e B
sqrtm(A) = B de manera que B*B = A
expm(A) B e A I A
zeros(m, n)
rand(m, n)
diag(V, K)
diag(V)
triu(A)
tril(A)
rot90(A)
rot90(A, k)
fliplr(A)
flipud(A)
reshape (A, m, n)
Un ejemplo sera:
1
1
B 1
0
0
1 1 0 0
1 1 0 0
1 1 0 0
0 0 4 0
0 0 0 4
2.9 Polinomiales
poly permite encontrar los coeficientes del polinomio caracterstico de una matriz, por ejemplo:
A = [1 2 3
4 5 6
7 8 9];
r=
16. 1168
- 1. 1168
0
Existen otras funciones:
polyval (p, x)
conv(p1, p2)
deconv(p1, p2)
polyfit(x, y, n)
16
Los ficheros con datos tipo ASCII pueden ser cargados en el espacio de trabajo de MATLAB,
como una matriz rectangular de elementos numricos, en este caso MATLAB crea una variable
cuyo nombre coincidir con el nombre del fichero.
17
diary-files. Otra forma de salvar o recuperar lo realizado en una sesin de trabajo es usando el
comando diary. Esto permite almacenar en un fichero editable todos los comandos y funciones
utilizados en una sesin de MATLAB. Como salida puede ser utilizado un nombre de fichero con
cualquier extensin.
Para esto lo primero que hay que hacer es teclear diary seguido del nombre del fichero, por
ejemplo, diary seccion1.out. Despus de esto todos los comandos y funciones que sean llamados,
las sealizaciones de error, en caso de que stas existan, las respuestas de MATLAB, es decir,
todo, ser almacenado en este fichero, hasta tanto se termine la sesin o se teclee diary off. Es
posible adicionar cualquier otra sesin y para esto se teclea diary on, a partir de aqu todas las
operaciones que se realicen sern aadidas al fichero ya existente.
Este comando es muy til, ya que a travs de l es posible recordar o repetir los comandos
empleados en una sesin anterior. Adems, el fichero creado podr ser editado en cualquier editor
de textos e, incluso, puede ser convertido en un fichero .m (m-file), siempre que se eliminen las
lneas de error o todos los comandos y funciones que no sean necesarios para el fichero m-file
que se desee crear.
Mex-files. Son ficheros con extensin .mex y pueden ser llamados por los lenguajes Fortran y C.
El uso de estos ficheros requiere de alguna experiencia con el MATLAB y alguna paciencia.
posible, adems, crear otras carpetas y entonces se debe establecer el camino correspondiente.
Esto se puede realizar (desde la versin 5.0) utilizando la opcin Set Path del submen File para
abrir la ventana del Path Browser. En esta ventana se puede agregar un camino de bsqueda
ejecutando la opcin Add to Path del submen Path.
Tambin se puede establecer el camino desde la ventana de comandos usando el comando
addpath.
Veamos un ejemplo. Si el usuario cre una carpeta con el nombre carpeta dentro de la carpeta
MATLABR11 (versin 5.3) y ah almacena sus ficheros, debe establecer el camino de la
siguiente forma:
addpath c:\matlabr11\carpeta
Tambin se puede escribir cd c:\matlabr11\carpeta
Este camino establecido valdr durante esa sesin de trabajo, pues al terminarla no se mantiene.
Si se quisiera mantener para sesiones futuras se debe ejecutar la opcin Save Path del submen
File del Path Browser o, desde la ventana de comandos, ejecutar save path.
echo
Es un switch. Normalmente cuando se ejecuta un fichero .m los comandos no se imprimen en
pantalla, aunque a veces puede ser conveniente que se muestren para corregir errores. Para
ficheros comandos echo on muestra los comandos hasta que se encuentre un echo off.
echo nombre de fichero cambia el estado de echo en ese fichero.
echo on all muestra todos los comandos del fichero.
echo off all oculta los comandos.
pause Produce una pausa hasta que se oprime retorno.
20
Raz cuadrada
Valor absoluto, si es complejo devuelve la magnitud, si es un texto devuelve
los valores en ASCII.
Compleja conjugada
Parte entera
Parte imaginaria
Parte real
Redondea al entero inferior
Signo de funcin
Resto de la divisin Ej. rem(5,2) = 1
Seno
Coseno
Tangente
Arcoseno
Arcocoseno
Arcotangente
Arcotangente en los cuatro cuadrantes
Exponencial
Logaritmo natural
Logaritmo vulgar
Estas funciones operan sobre un escalar o sobre cada elemento de una matriz.
Valor mayor
Valor menor
Suma
cumsum
prod
cumprod
mean
std
median
sort
Suma acumulativa
Producto de los elementos
Producto acumulativo
Valor medio
Desviacin estndar
Devuelve el valor central
Ordena de forma ascendente.
Menor que
Menor o igual que
igual a
desigual a
mayor o igual a
mayor que
Esta comparacin se hace elemento a elemento y resulta en una matriz donde sus elementos son 0
cuando es falso y 1 cuando es verdadero.
Una funcin interesante y muy til es la funcin find.
Su sintaxis es find (condicin) y encuentra los ndices de la matriz donde se cumple la condicin.
Supongamos:
A = [2 4 5 7 4]
B = find (A/2 = = fix (A/2) ) produce un vector con los ndices de los elementos que son pares,
es decir:
B = [1 2 5 ]
Dos funciones tiles para generar vectores son:
linspace(a, b, n) Genera un vector linealmente espaciado de a hasta b con n puntos.
a
b
logspace(a, b, n) Genera un vector con espaciado logartmico desde 10 hasta 10 de
longitud n.
and
or
not
or exclusivo
Estas operaciones, igual que las de comparacin, producen vectores y matrices con elementos del
tipo 0 - 1, del mismo tamao que los operandos, con uno si la condicin es verdadera y cero si es
falsa.
22
Ejemplo:
x = [0 5 3 7]
y = [ 0 2 8 7]
m = (x > y) & (x > 4)
m = [0 1 0 0]
n=x|y
n = [0 1 1 1]
Est claro que, como el resultado de estas operaciones es un vector con elementos del tipo 0-1,
ste se puede usar para extraer los elementos deseados. Por ejemplo:
x((x >y) & (x > 4))
ans =
5
24
6. Instrucciones estructuradas
6.1 Instruccin if.
if <condicin>
< secuencia de instrucciones 1>
[else
< secuencia de instrucciones 2>]
end
Si la condicin es cierta se ejecuta la secuencia de instrucciones 1, si es falsa se ejecuta (de
existir) la secuencia de instrucciones 2. Los corchetes indican que es opcional la escritura.
Ejemplo. Escribir una funcin que calcule el promedio de cada columna de una matriz.
function y = mean (x)
% Se trata del promedio. Para vectores devuelve el promedio, que es un escalar.
% Para matrices devuelve un vector fila que contiene los promedios de cada columna.
[m, n] = size (x);
if m = = 1
m = n;
end
y = sum(x)/m;
26
disp('1. Sinusoide');
disp('2. Cosinusoide');
disp('3. Cosinusoide');
n = input ('Teclee la opcin ');
t = 0:0.01:9;
switch n
case 1
plot(t, sin(t));
case {2, 3}
plot(t, cos(t));
otherwise
disp ('No sea bobo');
end
if a(i) = = 0
disp('Hay un cero al menos');
else
disp('No hay ceros');
end
end
end
disp(alumno(p).nombre)
Una desventaja del uso de registros en MATLAB es que se pierden las bondades que posee con el
trabajo de matrices. Note que fue necesario usar un algoritmo para buscar el ms viejo y no se
pudo usar, por ejemplo, la funcin max.
29
7.- Grficos
7.1 Grficos de una lnea en el plano
Existen varios tipos de grficos dependiendo del papel usado.
plot(x, y)
grfica lineal x - y.
loglog(x, y)
grfica loglog x - y
semilogx(x, y)
grfica eje x logartmico
semilogy(x, y)
grfica eje y logartmico
polar (theta, rho)
grfica polar
Se pueden adornar los grficos.
title ('Texto')
xlabel ('Texto')
ylabel ('Texto')
grid
text (x, y, 'Texto')
gtext ('Texto')
grid funciona como un switch. Si est puesta la malla la quita y viceversa. grid on la pone y grid
off la quita. Existen muchos comandos en MATLAB que funcionan de esta forma.
Si y es un vector, entonces plot (y) traza la grfica de y contra el ndice de y.
Si x y z son vectores de la misma longitud, entonces plot (x, z) traza la grfica de z contra x.
Por ejemplo
wt = 0 : 0.1 : 4 * pi;
y = sin(wt);
plot(wt, y) % Produce la grfica del sen(wt)
% de 0 a 4*pi radianes.
grid
title(Sen x)
hold Mantiene o no la ventana grfica para trazar otro grfico. Es un switch, de manera que
30
y - yellow
r - red
m - magenta
b - blue
31
c - cyan
w - white
g
k
- green
- black
wt = 0 : 0.1 : 4 * pi;
plot(wt, sin(wt), b, wt, cos(wt),r);
legend(sen x, cos x) % Destaca el %
color de cada grfica
grid
32
sen x
y ex /10
x
x = -10:0.01:10;
subplot (2, 2, 1);
plot(x, sin(x)); grid
title(sen(x))
subplot(2, 2, 2); grid
plot(x, cos(x)); grid
title(cos(x))
subplot(2, 2, 3); grid
plot(x, sin(x)./x); grid
title(sen(x) / x)
subplot(2, 2, 4); grid
plot(x, exp(x/10)); grid
title(exp(x/10))
posterior, pues sera muy difcil hacerlo cuando la escritura se realiz con comandos, por
ejemplo, como text o gtext, es decir, en lugar de escribir text(2, 3, 'velocidad') se recomienda
escribir v = text(2,3,'velocidad').
A partir de la versin 5.3 se pueden realizar muchas acciones sobre los grficos directamente
desde la ventana grfica, por ejemplo, facilidades de edicin, salvar, imprimir, etc
t = 0:pi/50:10*pi;
plot3(sin(t), cos(t), t);
grid on
Con plot3 se pueden realizar muchas de las acciones que se realizan con plot, por ejemplo, el
trazado de varias lneas.
34
[x, y] = meshgrid(0:.2:2,0:.2:2);
z = x + y;
mesh(x, y, z)
axis([0 2 0 2 0 3]);
colormap([0 0 0;0 0 0;0 0 0])%Esto
% da el color negro
sta sera la grfica despus de rotada convenientemente (180 grados) alrededor del eje z .
35
[x,y] = meshgrid(0:.2:2,0:.2:2);
z=2*ones(length(x),length(y));
mesh(x,y,z)
axis([0 2 0 2 0 3]);
colormap([0 0 0;0 0 0;0 0 0])
[y,z] = meshgrid(0:.2:2,0:.2:2);
x=ones(length(y),length(z));
mesh(x,y,z)
axis([0 2 0 2 0 3]);
colormap([0 0 0;0 0 0;0 0 0])
36
[x, y, z] cylinder([2,0],20);
surf(x, y, z)%surf rellena la
%superficie.
colormap([1 0 0; 1 0 0; 1 0 0])
% Color rojo
37
[x, y, z]=cylinder([1,1],20);
surf(x, y, z)
colormap([1 0 0;1 0 0;1 0 0])
% Color rojo
sta sera la grfica despus de rotada convenientemente (180 grados) alrededor del eje z, que es
el vertical.
[x, y, z] = sphere(20);
mesh(x, y ,z)
axis equal % Traza los ejes de igual
%longitud en perspectiva
38
[x, y] = meshgrid(-10:.2:10,
0:.2:10);
z=x.^2;
mesh(x, y, z)
colormap([0 0 1;0 0 1;0 0 1])
xlabel('x');
ylabel('y');
zlabel('z');
[x,y] = meshgrid(-10:.5:10,-10:.5:10);
z=x.^2+y.^2;
mesh(x, y, z)
colormap([0 0 1;0 0 1;0 0 1])
xlabel('x');
ylabel('y');
zlabel('z');
Ejemplo 6.- Trazado de una semiesfera de radio 1, con centro en el origen, sin usar la funcin
sphere.
39
inter=-0.7:.1:0.7;
[x,y] = meshgrid(inter,inter);
z=sqrt(1-x.^2-y.^2);
mesh(x,y,z)
xlabel('x')
ylabel('y')
zlabel('z')
axis equal
40
-x/2
=0
en el intervalo [5, 5]
x=-5:0.01:5;
plot(x, fun(x))
grid
La nica raz en ese intervalo podra calcularse usando la funcin ginput y luego hacer click con
el mouse en el cero de la funcin y el problema estara resuelto. Sin embargo, podemos usar la
funcin fzero.
fzero('fun',[-5 5])
Cuando se usa un intervalo en el segundo parmetro, la funcin debe cambiar de signo en los
extremos del intervalo.
El segundo parmetro no tiene que ser un intervalo, puede ser un solo nmero, entonces fzero
encuentra la raz ms cercana a ese valor de x. Por ejemplo se pudo haber escrito
41
fzero('fun', 4)
fzero('prueba', x, tol) calcula la raz ms prxima a x con una tolerancia tol para el error.
Si la ecuacin fuera un polinomio igualado a cero, la solucin se podra encontrar de una forma
mucho ms sencilla:
Veamos dos ejemplos:
Ejemplo 1 Calcular las races de la ecuacin
x 3 2x 2 5x 6 0
Se resuelve segn:
roots([1 2 5 6])
ans =
3.0000
-2.0000
1.0000
Ejemplo 2 Calcular las races de la ecuacin
x 2 1 0
Se resuelve segn:
v=[1 0 -1];
roots(v)
ans =
-1.0000
1.0000
42
1
2
en el intervalo 0 x 1
x = -1:0.01:2;
plot(x, prueba(x))
Lo primero que se va a hacer es calcular la integral definida de esta funcin entre dos valores de
la abscisa x. En ingls, al clculo numrico de integrales definidas se le llama quadrature.
Sabiendo eso, no resulta extrao el comando con el cual se calcula el rea comprendida bajo la
funcin entre los puntos 0 y 1 (obsrvese que el nombre de la funcin a integrar se pasa entre
apstrofos, como cadena de caracteres):
area = quad ('prueba', 0, 1)
area =
29.8583
La funcin quad8() utiliza un mtodo de orden superior (Newton-Cotes), mientras que la funcin
dblquad() realiza integrales definidas dobles. Ver el help o los manuales on-line para ms
43
informacin.
De manera que
h = 0 .001;
x = 0:h:2*pi;
y = diff(sin(x))/h %es una aproximacin a cos(x.)
Pudiramos comprobarlo con
x(0) = 0
en el intervalo t = [0 10]
Matlab resuelve los sistemas de ecuaciones obteniendo un vector resultado, de manera que
estamos obligados a realizar un cambio de variables con el fin de que las soluciones sean los
componentes de ese vector resultado:
y (1) = y
y(2) = x
Las ecuaciones quedaran como
y' (1) = y(2)
y' (2) = 1- y(2) - y(1)
Ahora creamos la funcin yprima = f2do (t, y).
function yprima = f2do (t, y)
yprima (1) = y(2);
yprima (2) = 1- y(1) - y(2);
yprima = yprima';
La ltima lnea es producto de que yprima debe ser un vector columna.
Ahora podemos usar esta funcin en el siguiente programa
45
46
produce
produce
x^3-6*x^2+11*x-6
x^3-6*x^2+11*x-6
Si hacemos
syms a b
y= exp(a+b);
expand(y)
produce
exp(a)*exp(b)
y = sin(a+b);
expand(y)
produce
sin(a)*cos(b)+cos(a)*sin(b)
La funcin horner transforma un polinomio a la forma de Horner, tal como est la funcin h
47
vista anteriormente.
factor descompone en factores las expresiones en que ello es posible.
simplify es una funcin poderosa que simplifica expresiones algebraicas y trascendentes.
Veamos
syms x y
simplify (log(x*y))
simplify (exp(x) * exp(y))
simplify(cos(x)^2 + sin(x)^2)
produce
produce
produce
log(x) + log(y)
exp(x +y)
1
[ 1/2/a*(-b-(b^2-4*a*c)^(1/2))]
Pudo haberse escrito sin la especificacin de la variable x.
Como se ve la ecuacin se escribi como cadena. Se puede evitar la cadena, pero deben
declararse las variables simblicas. El mismo problema se pudo resolver segn:
syms a b c x
solve(a*x^2+b*x+c)
Y se obtendra el mismo resultado.
Tambin se pueden resolver sistemas de ecuaciones. Como por ejemplo:
s = solve('x^2-y^2 = x', 'x +y = -1');
La solucin se ofrece en una estructura s con dos campos x e y. Para ver las soluciones se debe
escribir:
s.x
s.y
2a 1
4a 3
El resultado sera: x=
a ( 2a 1)
5a 3
a ( 2a 1)
49
Se trata de
lim
ln(x )
x x
y 0
y 2 ay 1
(y a) 2
syms a
limit((y^2 - a*y + 1)/(y - a)^2, y, 0)
El resultado sera:
1/a^2
El resultado sera
y = x-1/6*x^3
que son los 5 primeros trminos de la serie, conociendo que algunos son 0.
x 2 1 dx
syms x
int(1/(x^2+1))
ans =
atan(x)
Tambin se puede escribir
int(<f(x, y)>, y)
52
sen(xy) dy
0
syms x y
int(sin(x*y), y, 0, pi/2)
El resultado sera
-(cos(1/2*pi*x)-1)/x
Est claro que se pueden integrar tambin matrices. Veamos el siguiente ejemplo.
Ejemplo 4.- Calcular
sen(t )
t
dt
a
syms t a
A = [1 t; sin(t) a];
int (A)
ans =
[
t, 1/2*t^2]
[ -cos(t), a*t]
Se pueden calcular integrales mltiples
Ejemplo4.-Calcular
x * sin(y)dydx
00
int(int(x*sin(y),0,pi),0,pi)
El resultado sera
54
syms x
y = sin(x)/x;
ezplot(y,[-15 15]);
axis([-15 15 -0.5 1])
GRID
55
sen x
x
9.13.-Transformada de Laplace.
Se puede obtener la transformada de Laplace de funciones del tiempo. De forma asumida la
respuesta se brinda en la variable s. Las variables deben declararse con el comando syms.
Ejemplo 1. Encontrar la transformada de Laplace de f(t) = sen (at).
syms t a
F = laplace (sin(a*t))
F=
a/(s^2+a^2)
Se pueden usar tambin las llamadas funciones sym, tales como Heaviside (escaln) y Dirac
(impulso).
Ejemplo 2. Calcular la transformada de Laplace de f(t) = t2 u(t-1).
syms t
F = laplace (t^2*sym ('Heaviside (t-1)' ))
F=
exp(-s)/s+2*exp(-s)/s^2+2*exp(-s)/s^3
Se pudiera ejecutar la funcin simplify y obtener una respuesta ms compacta.
simplify (F)
ans =
exp(-s)*(s^2+2*s+2)/s^3
Ejemplo 3. Calcular la transformada de Laplace de f(t) = u(t) u(t-1).
F = laplace (sym ('Heaviside(t) - Heaviside(t-1)' ) ) % t debi declararse como syms
F=
1/s-exp(-s)/s
De igual forma existe la transformada inversa para la cual se usa la funcin ilaplace. Algo similar
existe con Fourier para la que existen las funciones fourier e ifourier. Lo mismo sucede con la
transformada z, pues existen las funciones ztrans e iztrans.
56
transfer function.
state space.
cociente de dos polinomios descompuestos en factores (polos y ceros).
a una entrada
s 2 s 1
0 t 0
u ( t ) 2 0 t 2
0.5 t 2
G (s)
58
grid
Si se hubiera escrito lsim (num, den, u, t) en la lnea 6, se hubiera trazado la grfica directamente.
Ahora se puede usar la funcin respulso dando los 6 parmetros: num, den, a, b, c y d. Por
ejemplo
y = respulso ([1 1], [1 2 1], 5, 1, 2, 20);
Ejemplo 5. Escribir un fichero comando para analizar la respuesta de un sistema lineal de 2do.
orden, con funcin de transferencia G(s)=1/(s2+as+1), a un escaln unitario, variando el
parmetro a.
%Anlisis de la respuesta de un sistema de 2do. orden, con funcin de transferencia
%G(s)=1/(s2+as+1), a un escaln unitario, variando el parmetro a.
num = [1];
t = 0:0.1:30;
b = 0;
for a = 0.5:0.5:6
b = b+1;
den = [1 a 1];
subplot (3, 4, b);
y= step(num, den, t);
plot (t, y);
axis ([0 30 0 2]);
grid;
text (5,1.5,'a=');
text (11,1.5, num2str(a));
end
Ejemplo 6. Encontrar la respuesta a escaln del circuito RLC que se muestra, suponiendo el
voltaje e como la entrada y el voltaje en el condensador como la salida.
R
i
e
Circuito RLC
Vc
Vc (s)
1
E (s) LC s 2 RC s 1
LC
d 2 v c (t)
dt 2
dv c ( t )
d 2 v c ( t ) dv c ( t )
,
es
decir,
RC
v c ( t ) e( t )
v c (t ) 1
dt
dt
dt 2
61
di
R
1
1
i( t ) v c ( t ) e( t )
dt
L
L
L
dv c i( t)
dt
C
y suponemos todos los parmetros unitarios se obtendra el modelo de estado segn:
1 1
A
1 0
1
B
0
C 0 1 D 0
t = 0:0.1:10;
A=[-1 1;1 0];
B=[1;0];
C=[0 1];
D=[0];
sys = ss (A, B, C, D);
y = step (sys, t);
plot (t, y);
grid
Veremos algunos ejemplos ms donde introduciremos algunos comandos.
Ejemplo 8. Dado el sistema cuya funcin de transferencia se describe ms abajo, determine los
polos y los ceros y sitelos en el plano complejo s.
G (s)
3s 2 5s 7
s 4 3s 3 4s 2 2.5s 0.8
numG = [3 5 7];
denG = [1 3 4 2.5 0.8];
[z, p, k] = tf2zp (numG, denG); % z, p y k son los ceros, polos y ganancia respectivamente.
pzmap (numG, denG); % Traza los ceros y los polos en el plano s.
% pzmap (p, z) Tiene el mismo resultado que la lnea anterior.
z y p son los vectores de los ceros y los polos respectivamente.
Ejemplo 9. Dado el sistema cuya ft se muestra, encuentre la expansin en fracciones parciales y
su respuesta a impulso.
G (s)
3s 2
3
2s 4s 2 5s 1
den = [2 4 5 1];
[z, p, k] = tf2zp (num, den);
[res, pol, otro] = residue (num, den); % Se obtienen los residuos, los polos y posible trmino
%no fraccionario.
impulse (sys); % Se obtiene directamente la grfica de la respuesta a impulso.
MATLAB permite establecer, por comandos, la realimentacin negativa.
Ejemplo 10. Encontrar la respuesta a escaln del sistema que se muestra.
U(s)
Y(s)
+
G(s)
H(s)
donde
G (s)
4s 1
2
5s 3s 2
H (s)
s6
2
s 4s 11
63
det, 13
diag, 14
diary, 18
diff, 44, 50, 51
Dirac, 56
disp, 18, 19, 27, 28, 29
dsolve, 53, 54, 61
E
echo, 20
else, 26, 28
eps, 9
eval, 24
exist, 25
exit, 8
exp, 21
expand, 47
expm, 13
eye, 13, 14
ezplot, 55
G
grid, 30, 32, 33, 34, 41, 44,
46, 55, 57, 59, 60, 61, 62
gtext, 30, 34, 46
H
Heaviside, 56
help, 6, 19, 43
hold, 30
horner, 47
I
F
factor, 47, 48
feedback, 63
figure, 31
find, 22
fix, 21, 22
fliplr, 14
flipud, 14
flops, 8
for, 4, 27, 28, 58, 59, 60
format, 7
format bank, 7
format compact, 7
format hex, 7
format long, 7
format long e, 7
format loose, 7
format rat, 7
format short, 7
format short e, 7
fourier, 56
function, 17, 25, 26, 41,
43, 44, 45, 57, 59
fzero, 41, 42
if, 4, 26, 28
ifourier, 56
ilaplace, 56
imag, 21, 32
impulse, 57
inf, 9, 50
input, 18, 19, 27, 28
int, 52, 53
inv, 12, 13
iztrans, 56
L
laplace, 56
legend, 32, 44
length, 21
limit, 50
linspace, 22
load, 8, 10, 17
log, 21
log10, 21
loglog, 30
logm, 13
logspace, 22
lookfor, 6
ls, 8
lsim, 57, 58, 59, 63
ltiview, 63
M
max, 21
mean, 22
median, 22
mesh, 34, 35, 36, 37, 39,
40
meshgrid, 34, 35, 36, 39,
40
min, 21
more, 7
N
nan, 9
not, 22
num2str, 19, 60
O
ode, 44
ode23, 44, 45
ode45, 46
ones, 13, 14, 36, 58, 59
or, 22
otherwise, 26, 27
P
Path, 20
Path Browser, 20
pause, 20
pi, 9
plot, 19, 27, 30, 31, 32, 33,
34, 41, 43, 44, 45, 46,
57, 58, 59, 60, 61, 62
plot3, 34
polar, 30
poly, 15
polyfit, 16
polyval, 16
pretty, 47
prod, 22
pwd, 8
pzmap, 62
sum, 21
switch, 4, 7, 20, 26, 27, 30
syms, 47, 48, 49, 50, 51,
52, 53, 55, 56
quad, 43
quad8, 43
quit, 8
rand, 14
real, 7, 21, 32
rem, 21
reshape, 14
residue, 62
roots, 15, 42
rot90, 14
round, 21
S
save, 8, 17, 19, 20
semilogx, 30
semilogy, 30
Set Path, 20
shg, 8
sign, 21
simplify, 47, 48, 56
sin, 2, 7, 11, 18, 19, 21, 27,
30, 32, 33, 34, 40, 41,
44, 47, 48, 49, 50, 51,
52, 53, 54, 55, 56, 58, 61
size, 21
solve, 48, 49, 61
sort, 22
sqrt, 10, 19, 21, 25, 40
sqrtm, 13
ss, 57, 62
ss2tf, 58
ss2zp, 58
std, 22
step, 57, 60, 61, 62, 63
stepfun, 59
str2mat, 23
subplot, 32, 33, 60
tan, 21
taylor, 51
text, 30, 34, 60
tf, 57, 58, 61, 63
tf2ss, 58
tf2zp, 58, 62
title, 30, 33, 57
tril, 14
triu, 14
type, 8
W
what, 8
while, 4, 27
who, 8
whos, 8
workspace, 8
X
xlabel, 30, 33, 39, 40, 57
xor, 22
Y
ylabel, 30, 33, 39, 40, 57
Z
zeros, 14
zlabel, 39, 40
zp2ss, 58
zp2tf, 58
zpk, 57
ztrans, 56