Documentos de Académico
Documentos de Profesional
Documentos de Cultura
net
www.fullengineeringbook.net
INTRODUCCIN RPIDA
A MATLAB Y SIMULINK
PARA CIENCIA E INGENIERA
www.fullengineeringbook.net
www.fullengineeringbook.net
INTRODUCCIN RPIDA
A MATLAB Y SIMULINK
PARA CIENCIA E INGENIERA
www.fullengineeringbook.net
www.fullengineeringbook.net
Reservados todos los derechos.
E-mail: ediciones@diazdesantos.es
Internet://http:www.diazdesantos.es/ediciones
ISBN: 84-7978-596-9
Depsito legal: M. 43.971-2003
ndice
Presentacin ...........................................................................................
XI
1
1
1
2
3
5
7
8
9
11
11
12
13
16
16
17
17
18
18
19
19
19
20
21
www.fullengineeringbook.net
VII
VIII
NDICE
25
25
25
27
27
28
29
30
31
31
31
31
32
35
35
36
38
38
40
40
40
41
41
44
45
45
47
48
51
51
51
51
52
53
57
59
62
67
72
33
www.fullengineeringbook.net
NDICE
IX
74
78
80
6. SIMULINK ......................................................................................
6.1. Introduccin a Simulink .........................................................
6.2. Construccin de un modelo muy sencillo ..............................
6.3. Solucin Simulink de una ecuacin diferencial .....................
6.4. Simulacin dinmica de un ecualizador ................................
81
81
85
86
88
BIBLIOGRAFA .....................................................................................
93
95
www.fullengineeringbook.net
www.fullengineeringbook.net
Presentacin
www.fullengineeringbook.net
XI
www.fullengineeringbook.net
1
Primeros pasos en MatLab
1.1. INTRODUCCIN
MatLab, desde las primeras versiones dispuso de help y demo, para iniciacin rpida. La informacin suministrada a travs de los mens de estas ayudas, correspondientes a las ltimas versiones, crecieron de forma exponencial, siendo de utilidad prctica disponer de un libro resumen de MatLab, en
donde se encuentren los comandos de uso ms frecuente, a la vez que se muestren sus aplicaciones prcticas en ejercicios, desde lo ms sencillo, hasta otros
de mayor complejidad.
Este Captulo es adecuado para principiantes absolutos, y de afianzamiento
a los ya iniciados.
www.fullengineeringbook.net
1.2. COMENZANDO
Al arrancar MatLab, presenta una pantalla dividida en varias ventanas,
configurables desde Desktop Layout del menu de View; en una de las ventanas estar el cursor parpadeando a la derecha de >>, es la ventana de comandos desde donde se ejecutan los mismos, las otras son informativas:
>> 3 + 4
ans =
7
>> 3*5
ans =
15
>> 15/3
ans =
5
1
>> 15\3
ans =
0.2000
>> 23
ans =
8
>> sin(2*pi*30/360)
ans =
0.5000
www.fullengineeringbook.net
>> t = t(:)
t =
1
4
7
10
>> A = 2*t; B = 2;
>> who
Your variables are:
t
>> whos
Name
t
A
B
Size
1 4
1 4
1 l
Bytes
32
32
8
Class
double array
double array
double array
www.fullengineeringbook.net
En el espacio de trabajo se crearon 3 variables, 2 de 4 elemenos, y una de 1
elemento, de modo que son 9 elementos a 8 bytes por elemento, lo que hace un
total de 72 bytes.
A partir de la versin 6, release 12, MatLab incorpor workspace, potenciando la capacidad de whos.
1.4. VARIABLES
En MatLab no es necesario hacer declaraciones previas acerca de las variables. El contenido de las variables de caracteres ha de ir delimitado por el
signo '.
>> numero_de_visitantes = 25
numero_de_visitantes =
25
Nombre='Pepe';
size (Nombre)
% Variable de caracteres.
ans =
1
www.fullengineeringbook.net
La lista de los nombres reservados se obtiene por medio de iskeyword:
iskeyword
ans =
'break'
'case'
'catch'
'continue'
'else'
'elseif'
'end'
'for'
'function'
'global'
'if'
'otherwise'
'persistent'
'return'
'swirch'
'try'
'while'
>> if = 5
??? if = 5
Error: Expected a variable, function, or constant, found=.
Los nombres de las variables pueden ser tan extensos como se quiera, pero
MatLab slo reconoce los 31 primeros caracteres.
Las variables se eliminan del espacio de trabajo con el comando clear:
clear
clear variables
clear global
clear functions
clear all
clear pipo*
www.fullengineeringbook.net
>> help format
www.fullengineeringbook.net
>> format Long e
>> sqrt (2)
ans =
1.41421356237310e+00
>> format short
>> A= [10000 0.0001]
ans =
1. 0e+04 *
1.0000
0.0000
>> format short g
>> A
A =
10000
>> format rat
>> A
0.0001
A =
10000 1/10000
1.6. PROGRAMAS
MatLab acepta comandos directos, para inmediatamente producir el resultado o ejecutar una serie de comandos almacenados en un archivo, con la extensin .m.
Un archivo.m, consiste en una secuencia de sentencias MatLab, posiblemente incluyendo referencias a otros archivo.m, o recursivamente a s mismo.
A estos archivos los llamamos programas MatLab, en ingls scripts. Las variables de los programas se mantienen en el espacio de trabajo, pudiendo ser invocadas en cualquier momento para ver su contenido.
En una sentencia, lo que sigue a % no se ejecuta, se considera un comentario.
Si se desea construir una tabla con inversos, cuadrados y races cuadradas
de 1 a 10, se edita un archivo, Numeros.m, con cualquier editor, tal como
el bloc de notas del sistema operativo, o con el editor propio de MatLab, segn:
% ----------------Numeros.m ----------------------------------x=1:10; % Crea un vector de 1 a 10 de 1 en 1. Vector en lnea.
x=x';
% Transposicin. Vector en columna.
x=[x,1../x,x.2,sqrt(x)]; % Matriz de 4 columnas.
% ------------------------------------------------------------
www.fullengineeringbook.net
El programa se invoca ejecutando Numeros. Como en el programa todas
las sentencias se finalizaron con ;, no se muestra ningn valor numrico. Al
ejecutar x, se obtendr la tabla desada:
>> Numeros
>> x
x =
1.0000
2.0000
3.0000
4.0000
5.0000
6.0000
7.0000
8.0000
9.0000
10.0000
1.0000
1.0000
0.5000
4.0000
0.3333
9.0000
0.2500
16.0000
0.2000
25.0000
0.1667
36.0000
0.1429
49.0000
0.1250
64.0000
0.1111
81.0000
0.1000 100.0000
1.0000
1.4142
1.7321
2.0000
2.2361
2.4495
2.6458
2.8284
3.0000
3.1623
1.7. FUNCIONES
El otro tipo de archivos utilizado por MatLab son las funciones, cuya primera caracterstica es que sus variables son locales en su entorno y no definidas
en el espacio de trabajo, ni en otras funciones.
Buena parte de la potencia de MatLab se basa en su extenso conjunto de
funciones, las bsicas y las distribuidas de forma separada para aplicaciones especficas, MatLab toolboxes, y otras que desarrollan los usuarios.
Las funciones toman unas variables de entrada para calcular unos datos de
salida, sea:
Fun( x ) =
1
1
+
5
2
( x 1) + 0,1 ( x 3)2 + 0, 2
www.fullengineeringbook.net
Para evaluar Fun grficamente, se lanza con las siguientes instrucciones:
6
2
www.fullengineeringbook.net
1.7.1. Reglas de construccin de funciones
10
% Creacin directa de F.
F =
@Fun
>> feval(F,2)
ans =
-3.2576
www.fullengineeringbook.net
-3.2576
>> Fun(2)
ans =
-3.2576
>> F(2)=@cos
F =
@Fun
@cos
11
www.fullengineeringbook.net
N! = N (N 1)!
definiendo 1! como 1.
La funcin Factorial.m, toma un nmero de entrada, y suministra como salida su factorial:
function f = Factorial(N)
% Esta funcin calcula el factorial de la parte
% entera de un nmero.
n = fix(N); % n toma la parte entera de N.
if n > 1
f = n*Factorial(n 1);
else
f = 1;
end
12
+0.7071i
>> exp(2i)
www.fullengineeringbook.net
ans =
-0.4161 + 0.9093i
>> A = (3 + 4i)*(2 j)
A =
10. 0000 + 5.0000i
>> r = real(A)
r =
10
>> I = imag(A)
I =
5
>> r = abs(A)
r =
11.1803
>> Angulo = angle(A)
13
Angulo =
0.4636
>> Angulo = atan2(imag(A),real(A))
0.4636
>> Aa = r*exp(Angulo*i)
Aa =
10.0000 + 5.0000i
www.fullengineeringbook.net
3 5 7 8 9
3.1623
10.0000
31.6228
100.000
>> y = x.2
y =
0
>> a = [x;y]
16
% Crear una matriz anexando
% vectores.
14
a =
0
0
1
1
2
4
3
9
4
16
>> A = a'
A =
0
1
2
3
4
0
1
4
9
16
B = [A; 5 25]
B =
0
1
2
3
4
5
0
1
4
9
16
25
www.fullengineeringbook.net
>> C = reshape(B,3,4)
% Reconfigurar la matriz B
% con 3 lneas y 4 columnas.
C =
0
1
2
3
4
25
0
1
4
9
16
50
>> C(2,:)=[]
%
%
%
%
C =
0
2
3
25
0
4
9
50
>> C(:,3) = []
C =
0
2
3
25
9
50
>> A = [1 2; 3 5]
A =
1
3
2
5
% Eliminar la 3a columna,
% 0 4.
>> A2
15
% Diferencia entre y .
ans =
7
18
12
31
>> A.2
ans =
1
9
4
25
>> 1../A
ans =
1.0000
0.3333
0.5000
0.2000
>> det(A)
ans =
www.fullengineeringbook.net
-1
>> inv(A)
ans =
-5.0000
3.0000
2.0000
-1.0000
% Equivalente a y = x.2
y =
4
16
18
19
% Equivalente a y = x2
16
1. 10. POLINOMIOS
Sea el polinomio p = x2 5x + 6, con vector de coeficientes C:
>> C = [1 -5 6];
-5
www.fullengineeringbook.net
>> polyval(C,5)
ans =
6
-3
17
www.fullengineeringbook.net
Si se conocen los numeradores, las races de los denominadores y los trminos independientes, se pueden generar los polinomios:
>> [p1,p2] = residue(r,s,t)
p1 =
5
-20
-5
p2 =
es decir, 10x 20
18
-2.5000
4.0000
4.0000
2.0000
>> polyint(p2,2)
ans =
0.3333
-2.5000
Equivalente a:
1 3 5 3
x x + 4x + 2
3
2
www.fullengineeringbook.net
1.10.5. Interpolacin polinomial
x = [2 4 6];
y = power(x,2);
de
y5 = interp1(x,y,5)
y5 =
26
>> y5c = interp1(x,y,5,'cubic')
y5c =
24.8750
>> y5s = interp1(x,y,5,'spline')
y5s =
25
% Interpolacin cbica.
19
1.11. matlabpath
El path de MatLab, llamado matlabpath, establece el camino para
buscar variables, programas y funciones de MatLab que sean llamados directamente desde la ventana de comandos, o durante la ejecucin de programas.
Al invocar un comando, MatLab lo busca, y ejecuta el que primero coincida con el nombre invocado, segn el siguiente orden:
1.
2.
3.
4.
1. 12. lookfor
lookfor aplicado a una variable de caracteres, busca esos caracteres en la
primera lnea de comentarios de los archivo.m encontrados en el matlabpath.
www.fullengineeringbook.net
>> lookfor Fun.m
Fun.m: %---------------- Fun.m --------------------
1.13. LATEX
La funcin latex(A) devuelve la representacin LATEX de una expresin
simblica:
>> syms x
>> A = taylor(exp(x))
A =
1 - x + 1/2*x2 - 1/6*x3 + 1/24*x4 - 1/120*x5
>> pretty(A)
2
3
4
5
1 - x + 1/2 x - 1/6 x + 1/24 x - 1/120 x
>> latex(A)
ans =
1 - x + 1/2\,{x}{2}-1/6\,{x}{3}+1/24\,{x}{4}{\frac{1}{120}}\,
{X}^{5}
20
0.0290
0.0160
0.0400
0.0502
www.fullengineeringbook.net
7.3161e + 05
29
>> datenum(date)
7.3161e + 05
21
www.fullengineeringbook.net
-1.2835e + 03
0.1934
0.6822
>> Y=round(X)
Y =
0
0
0
1
0
1
0.3028
0.5417
22
>>
>>
>>
>>
>>
>>
save mi_archivo
clear
who
load mi_archivo
who
0.1934
0.6822
0.3028
0.5417
>> Y
Y =
0
0
0
1
0
1
www.fullengineeringbook.net
>> A=[1.5 2.49; 0.2 9.99]
A =
1.5
0.2
2.49
9.99
>> ceil(A)
ans =
2
3
1 10
>> floor(A)
ans =
1
0
2
9
23
www.fullengineeringbook.net
www.fullengineeringbook.net
2
Clculo simblico
2.1. INTRODUCCIN
MatLab se caracteriz desde un principio por ser muy potente en clculo
numrico, mientras que el clculo simblico fue incorporado como una toolbox,
cuando MathWorks, empresa que comercializa MatLab, se extendi internacionalmente.
La Symbolic Math Toolbox es una coleccin de herramientas para MatLab,
que se utilizan para manejar y resolver expresiones simblicas.
Las herramientas simblicas disponibles ms usadas son; combinar, simplificar, factorizar, derivar, integrar, lmites, resolucin de sistemas de ecuaciones algebraicas o diferenciales, transformaciones integrales, la mayora de
las operaciones del lgebra lineal...
Estas herramientas de clculo simblico son parte del programa Maple V,
comercializado por Waterloo Maple Software Inc.
www.fullengineeringbook.net
25
26
% M, variable numrica.
M =
1
4
3
2
>> N=sym(M)
% N, variable simblica.
N =
[1, 3]
[4, 2]
>> syms a b c d
>> Mat=[a,b;c,d]
% Definicin de simblicos.
Mat =
[a, b]
[c, d]
>> det(Mat)
ans =
a*d-b*c
>> M=(a-b)/(c+d)
www.fullengineeringbook.net
M =
(a-b)/(c+d)
>> pretty(M)
a - b
c + d
Para la simplificacin y transformaciones de expresiones se utilizan los operadores collect, expand, horner, factor, simple y simplify, algunos de los cuales se aplican en lo que sigue.
1/2
2 15
1/2
/5 sin(15
/2 t) exp(3/2 t)
80
70
60
50
40
30
20
10
0
10
3
0
t
CLCULO SIMBLICO
27
2/5 15
1/2
1/2
(- 3/2 t)
sin(1/2 15
t) e
www.fullengineeringbook.net
>> y
Y=
2*15^(1/2)/5*sin(15^(1/2)/2*t)*exp(-3/2*t)
>>
>>
>>
>>
dy=diff(y);
dy=simplify(dy);
dy=factor(dy);
pretty(dy)
1/2
1/2
1/2
- 3/5 exp(-3/2 t) (-5 cos(1/2 15 t)+15
sin(1/2 15 t))
28
1/2
1/2
sin(1/2 15
t)+15
1/2
t))
60
40
20
0
20
40
60
80
100
3
0
t
www.fullengineeringbook.net
x+ y= 5
x y = 1
ezx = 7,389
>> syms x y z
>> [x,y,z]=solve(x+y-5,x-y+1,exp(x*z)-7.389)
x =
2
y =
3
z =
1/2*log(7389/1000)
>> z=double(z)
z =
1.0000
CLCULO SIMBLICO
29
www.fullengineeringbook.net
yc =
2/5*15^(1/2)*exp(-3/2*t)*sin(1/2*15^(1/2)*t)
30
(s) = 0 f (t) e st dt
www.fullengineeringbook.net
(s + a)
----------2
2
(s + a) + w
>> L1=laplace(exp(-t),t,s)
L1 =
1/(l+s)
>> pretty(L1)
1
---1 + s
La transformada inversa se ejecuta sobre expresiones de la variable compleja s, para volver al dominio del tiempo.
>> I=ilaplace(L,s,t)
I =
cos(w*t)*exp(-a*t)
>> I1=ilaplace(Ll,s,t)
I1 =
exp(-t)
CLCULO SIMBLICO
31
2.5. LMITES
>> limit(1/x,x,0,'left')
ans =
-inf
www.fullengineeringbook.net
2
exp(-8) - exp(-8) (x - 8) + 1/2 exp(-8) (x - 8)
>> pretty(taylor(f,x,3))
2
1 - x + 1/2 x
32
ans =
[addtable, fourier, fouriercos, fouriersin, hankel, hilbert,...
invfourier, invhilbert, invlaplace, invmellin, ...
laplace, mellin, savetable]
>> maple('laplace(y(t)=t^2+sin(t),t,s)')
ans =
laplace(y(t),t,s) = 2/s^3+1/(s^2+1)
>> M1=maple('invlaplace((s+1)/(s*(s^2+s+1)),s,t)')
M1 =
1+1/3*exp(-1/2*t)*3^(1/2)*sin(1/2*3^(1/2)*t)-exp(-1/2*t)*...
cos(1/2*3^(1/2)*t)
www.fullengineeringbook.net
con condiciones iniciales:
y (0) = 3
y (0) = 0
se procede con las siguientes instrucciones:
>> maple('eq:=diff(y(t),t$2)+3*diff(y(t),t)+6*y(t)=0')
ans =
eq := diff(y(t),'$'(t,2))+3*diff(y(t),t)+6*y(t) = 0
>> maple('ini:=y(0)=0,D(y)(0)=3')
ans =
ini := y(0) = 0, D(y)(0) = 3
>> maple('Sol:=dsolve({eq,ini},{y(t)})')
ans =
Sol := y(t) = 2/5*15^(1/2)*exp(-3/2*t)*sin(1/2*15^(1/2)*t)
CLCULO SIMBLICO
33
www.fullengineeringbook.net
ans =
34
1
y (t ) = (e 4 t 1) e 3t
4
www.fullengineeringbook.net
3
Sentencias de control de flujo
3.1. input
La forma de input, se indica en los ejemplos siguientes, segn se trate de
variables literales o numricas:
www.fullengineeringbook.net
>> R=input('> Cul es tu nombre ? ','s')
> Cual es tu nombre ? Pepe
>> ['Hola',R]
ans =
Hola Pepe
>> ['Hola';R]
Hola
Pepe
>> P=input('> Dime el radio de la rueda ? ')
> Dime el radio de la rueda ? 5
>> P+1
ans =
6
35
36
==
~=
<
>
<=
>=
Igual
No igual
Menor que
Mayor que
Menor que o igual
Mayor que o igual
www.fullengineeringbook.net
En la primera de las siguientes instrucciones se responde con hola, ya
que es verdad que 'a' es igual a 'a'. En la segunda esto se obvia, dado que la
condicin es falsa.
>> if 'a'=='a', 'hola', end
ans =
hola
>> if 'a'=='b', 'hola', end
37
if condicin 1
Ejecucin de instrucciones si la condicin 1 es verdad
elseif condicin 2
Ejecucin de instrucciones si la condicin 2 es verdad
elseif condicin 3
Ejecucin de instrucciones si la condicin 3 es verdad
else
Ejecucin de instrucciones si ninguna condicin es
verdad
end
www.fullengineeringbook.net
38
Condicin
Comandos
end
www.fullengineeringbook.net
>> Tabla
>> D
D =
1.0000
2.0000
3.0000
1.0000
0.5000
0.3333
1.0000
4.0000
9.0000
1.0000
1.4142
1.7321
39
1.0000
0.5000
0.3333
1.0000
4.0000
9.0000
1.0000
1.4142
1.7321
www.fullengineeringbook.net
40
1.0000
0.5000
0.3333
1.0000
4.0000
9.0000
1.0000
1.4142
1.7321
3.5. continue
Si aparece un continue en un lazo for end o while end, el clculo
pasa a la siguiente iteracin del end de ese bucle.
www.fullengineeringbook.net
3.6. break
4
Grficos en MatLab
www.fullengineeringbook.net
fplot. Para representacin de funciones: fplot('Fun',[-pi pi]).
plot. Representacin de x frente a y: plot(x,y).
plotyy. Representacin en los ejes opuestos de ordenadas: plotyy
(x1,y1,x2,y2).
plotmatrix. Matriz de representaciones: plotmatrix(x,y).
bar. Representacin con barras: bar(x,y,ancho,tipo).
stairs. Representacin en escalones: stairs(x,y).
errorbar. Representacin acompaada de un parmetro de desviacin:
errorbar(x,y,e).
stem. Representacin discreta: stem(x,y).
pie. Representacin en tarta: pie(x).
plot3. Representacin en 3-d: plot3(x,y,z).
semilogy. Representacin semilogartmica en el eje y: semilogy
(x,y).
semilogx. Representacin en el eje x: semilogx(x,y).
loglog. Representacin logartmica en los dos ejes: loglog(x,y).
En las Figuras 4.1 y 4.2, se representan los principales tipos de grficos
mencionados.
41
42
4 >> subplot(221)
>> fplot(Fun,[pi pi])
2
>> subplot(222)
>> stairs(x,Fun(x),*)
2
4
6
2
>> subplot(223)
>> plot(x,Fun(x),:.)
0
www.fullengineeringbook.net
5
>> subplot(222)
4 >> errorbar(x,Fun(x),e)
>> subplot(221)
>> bar(x,Fun(x),x,.2)
2
0
0
2
4
6
2
>> subplot(223)
>>stem(x,Fun(x))
120
150
90 0,5
0,4 60
0,3
0,2
180
330
210
240
5
2
30
270
300
GRFICOS EN MATLAB
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
43
x=-pi:.25:pi;
subplot(221),
fplot('fun',[-pi pi])
axis([-pi pi -6 6])
subplot(222),
stairs(x,fun(x),*-)
axis([-pi pi -5 5])
subplot(223),
plot(x,fun(x),':.')
axis([-pi pi -5 5])
subplot(224),
plotyy(x,fun(x),x,x.^2)
subplot(221),
bar(x,fun(x),0.2)
axis([-pi pi -5 5])
e=rand(length(x),1)
subplot(222),
errorbar(x,fun(x),e)
axis([-pi pi -6 6])
subplot(223),
stem(x,fun(x))
axis([-pi pi -5 5])
subplot(224),
polar(x,sin(2*x).*cos(2*x))
x=[-3:.1:4]';
y=Fun(x);
y1=sin(x);
y2=tan(x);
A=[y,y1,y2];
plotmatrix(x,A,'h-')
www.fullengineeringbook.net
Ttulo del grfico
6
Funcin
4
2
0
2
Seno de X
4
1
Seno de X
0,5
0
0,5
1
20
Tangente de X
0
20
3
0
1
Eje de las X
44
35
30
25
20
15
10
5
0
1
1
0,5
0,5
0,5
0,5
1
www.fullengineeringbook.net
>> t = 0:pi/l00:l0*pi;
>> plot3(cos(t).*exp(-0.05*t),sin(t).*exp(-0.05*t),t);
to de fecha es un nmero del 0 al 28, 29 posibilidades de expresar las fechas, vase help datetick.
GRFICOS EN MATLAB
6%
45
a=[1 3 5 7]
pie(a,a==a(2))
19%
44%
31%
www.fullengineeringbook.net
>>
>>
>>
>>
46
5
4
3
y=sin(x) e - x
y= sin(x) e - x
1
0
1
2
3
4
5
10
10
Eje de las X
Distancia m
4.4. LAPRINT
www.fullengineeringbook.net
Al incluir cuadros grficos procedentes de MatLab, en textos LATEX, escalados ya con resizebox o scalebox, suele haber recortes indeseados y
desproporcin en los textos de los cuadros grficos en los documentos finales.
6
4
2
0
2
4
6
1
8
1
GRFICOS EN MATLAB
47
LaPrint es un archivo, laprint.m, cuya versin ms reciente puede obtenerse en www.uni-kassel.dr/~linne, que reemplaza todas las anotaciones
de una figura de MatLab por marcas, salvando la figura como un archivo.eps,
a la vez que crea un archivo.tex, para reproducir la figura original, usando
epsfig y psfrag, de modo que la figura incorporada en el documento final sea
idntica, incluidas sus fuentes de texto, a la figura original en MatLab.
Para utilizar laprint.m, es necesario copiarlo a cualquier carpeta del
matlabpath. Una vez que se ha construido el cuadro grfico en MatLab, se
ejecuta laprint.m en la ventana de MatLab. El archivo.tex producido,
se inserta en el documento LATEX, en donde convenga, y el archivo.eps
en la carpeta correspondiente.
4.5. ESTILOS DE LNEAS, MARCAS Y COLORES
Los estilos de lneas, marcas y colores se presentan en la Tabla 4.1.
Smbolo
b
g
r
c
m
y
k
w
Color
Azul
Verde
Rojo
Cian
Magenta
Amarillo
Negro
Blanco
Smbolo
Marca
Smbolo
o
x
+
*
s
d
M
<
>
p
h
o
x
+
*
Estilo de lnea
Continua
Punteada
Trazo-Punto
Trazo-Trazo
www.fullengineeringbook.net
En la Figura 4.8 se muestra un ejemplo de modificacin de atributos de lneas como son: color de lnea, grueso...
% ----------------Lineas.m------------------------------------t=linspace(-4*pi,4*pi,1000);
y=sin(t).*exp(-.25*abs(t));
z=cos(t).*exp(-.25*abs(t));
plot(t,y,'LineWidth',2,'Color','k'), grid
axis([-4*pi,4*pi,-.7,1])
text(2,sin(2).*exp(-.25*abs(2)),...
'\fontsize{16}\leftarrow sin(t)\cdote^{-0.25\cdotabs(t)}
')
48
xlabel('\fontsize{l5} t')
ylabel('\fontsize{l5} sin(t)\cdote^{-0.25\cdotabs(t)}')
hold on
a=plot(t,z);
text(0.25,cos(0.25).*exp(-.25*abs(0.25)),...
'\fontsize{14}\leftarrow cos(t)\cdote^{-0.25\cdotabs(t)}
')
set(a,'LineWidth',0.5,'Color','k')
t1=-11;
y1=sin(t1).*exp(-.25*abs(t1));
t2=0;
y2=cos(t2).*exp(-.25*abs(t2));
line([t1 t2],[y1 y2],'LineWidth',8,'Color',[1 0 1])
cos(t)e0,25 abs(t)
0,8
0,6
sin(t)e 0,25abs(t)
0,4
0,2
www.fullengineeringbook.net
0
0,2
0,4
0,6
10
0
t
10
4.6. area
area es una funcin anloga a plot, rellena el espacio comprendido entre 0 y una lnea grfica. En la Figura 4.9, se rellena la superficie limitada entre
0 y Fun(x), grfico superior, y entre 5 y Fun(x), grfico inferior:
GRFICOS EN MATLAB
49
6
4
subplot(211)
area(x,Fun(x))
2
0
2
4
6
2
6
4
2
subplot(212)
area(x,Fun(x),5)
0
2
4
6
2
www.fullengineeringbook.net
33%
a=[3 5 7 9 12];
pie3(a,a==a(4))
8%
14%
25%
19%
Valor destacado
www.fullengineeringbook.net
5
Aplicaciones de clculo numrico
www.fullengineeringbook.net
>> A=quad(F,0,5)
A =
-10.0814
52
>> x=fminbnd(F,0,3)
x =
2.0351
www.fullengineeringbook.net
Sea el sistema
= 7, 389
x+y=5
x y = 1
e z x
53
www.fullengineeringbook.net
En este caso, se llama a la funcin a minimizar, pHAjusMin, suministrando a continuacin los valores iniciales de los parmetros a minimizar, siendo
opcional aadir una variable de opciones, seleccionables con optimset.
La aplicacin y funcionamiento de fminsearch se comprende fcilmente con el siguiente ejemplo de ajuste de datos experimentales a una funcin,
ecuacin (5.1).
En el proceso de lodos activos, la tasa de crecimiento de los lodos es funcin del pH, datos experimentales.
Las reacciones de biodegradacin, actividad microbiana, transcurren a un
pH ptimo, prximo a la neutralidad y disminuyen hasta anularse, al separarse
a zonas agresivas, como son las zonas de pHs cidos o alcalinos.
El efecto del pH en la velocidad especfica de generacin de lodos se representa adecuadamente por una funcin tipo campana:
( pH ) =
1
1 + 10
pk1 pH
+ 10 pH pk2
(5.1)
Las constantes pk1 y pk2, se calculan por ajuste de datos, representando los
valores en los que (pH), tiene el valor de 0,5.
54
1
0,9
pk1 = 5,2036
0,8
pk2 = 10,1128
0,7
(pH)
0,6
0,5
0,4
0,3
0,2
0,1
0
10
12
14
pH
www.fullengineeringbook.net
% --------------- pHAjus.m ---------------------------clear,clf
global pH mu
pH=[O 1 2 3 4 5 6 7 8 9 10 11 12 13 14]';
mu=[O .01 .02 .04 .12 .4 .8 1 .96 .9 .6 .05 .01 ...
.01 0]';
pk=fminsearch('pHAjusMin',[3 10]);
plot(pH,mu,'*')
hold on
pHc=0:.1:14;
muc=1../(1+1O..(pk(1)-pHc)+10..(pHc-pk(2)));
plot(pHc,muc,'-')
mu1=1../(1+10..(pk(1)-pk(1))+10..(pk(1)-pk(2)));
mu2=1../(1+10..(pk(1)-pk(2))+10..(pk(2)-pk(2)));
line([pk(1) pk(1)],[0 mu1],'Color','k')
line([pk(2) pk(2)],[0 mu2],'Color','k')
text(1,0.85,'pk1 = '), text(2.5,.85,num2str(pk(1)))
text(1,0.75,'pk2 = '), text(2.5,.75,num2str(pk(2)))
xlabel('pH'),
ylabel('\mu(pH)'), grid, hold off
%--------------------------------------------------------
55
global pH mu
pk1=p(1);
pk2=p(2);
muc=1../(1+10..(pk1-pH)+10..(pH-pk2));
q=sum((mu-muc).2);
%--------------------------------------------------
Se invoca a la funcin FUN, en la que se define la ecuacin de ajuste, XO representa los valores iniciales de partida, X e Y son los datos experimentales, LI
representa el lmite inferior de los valores de los parmetros a calcular, LS es el
lmite superior, y Opciones es un conjunto de valores en los que se definen
parmetros del clculo, siendo opcional su especificacin.
A continuacin se muestra un ejemplo de la utilizacin de lsqcurvefit:
www.fullengineeringbook.net
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
x=[-pi*2:.5:pi*2]';
A=2; B=.2;
y=A*sin(x).*exp(-B*x);
r=rand(length(x),1)-0.5;
Y=y+r;
Opciones=optimset('Display','iter','Diagnostics','on',...
'TolX',1e-29,'TolFun',1e-29,'LargeScale','on',...
'MaxFunEvals',100)
est=lsqcurvefit('AjusNlFun',[0 0],x,Y,[-5 -5],[10 5],...
Opciones)
Ac=est(1); Bc=est(2);
xc=linspace(x(1),x(length(x)));
yc=Ac*sin(xc).*exp(-Bc*xc);
plot(x,y,'o'),
hold on, plot(xc,yc,'-'), hold off
text(0,5,'A='),
text(1,5,num2str(A))
text(0,4,'B='),
text(1,4,num2str(B))
text(4,5,'Ac='), text(5,5,num2str(Ac))
text(4,4,'Bc='), text(5,4,num2str(Bc))
xlabel('X'),
ylabel('A.sen X e{-BX}')
56
A= 2
Ac=2,096
B=0,2
Bc=0,19176
Asen Xe BX
3
2
1
0
1
2
3
8
0
X
www.fullengineeringbook.net
Figura 5.2. Ajuste de datos con Isqcurvefit.
En el ajuste de datos experimentales a funciones es frecuente probar con polinomios, para ello MatLab desarroll la funcin polyfit, cuya utilizacin se
muestra en el ejemplo siguiente.
30
25
Ac=0,95551
Bc= 4,6119
Cc= 5,6322
x 2+5x+6
20
15
10
5
0
5
8
3
x
57
x=linspace(-8,2,10)';
A=1;
B=5;
C=6;
y=A*x.2+B*x+C;
Y=y+5*rand(length(x),1)-2.5;
Est=polyfit(x,Y,2); xx=x(l):0.1:x(length(x));
plot(x,y,'*',xx,Est(1)*xx.2+Est(2)*xx+Est(3))
text(-5,20,'Ac='),
text(-4.5,20,num2str(Est(1)))
text(-5,18,'Bc='),
text(-4.5,18,num2str(Est(2)))
text(-5,16,'Cc='),
text(-4.5,16,num2str(Est(3)))
www.fullengineeringbook.net
58
(5.2)
(5.3)
y' = z
(5.4)
www.fullengineeringbook.net
>>
>>
>>
>>
t=sym('t');
y=('2*15(1/2)/5*sin(15(1/2)/2*t)*exp(-3/2*t)');
dy=diff(y);
subs(y,t,-pi)
ans =
34.1795
>> subs(dy,t,-pi)
ans =
276.0593
59
250
Funcin y derivada
200
150
100
y
50
0
50
100
0
Tiempo
www.fullengineeringbook.net
En el siguiente listado se muestra el programa de definicin de las ecuaciones a integrar:
function dy=Ecudif(t,y)
-------------------- Ecudif.m ----------------------------%
y''+3y'+6y=0
% es equivalente al sistema:
%
z'=-3z-6y
%
y'=z
%----------------------------------------------------------dy(1)=-3*y(1)-6*y(2);
% y(1)=z
dy(2)=y(1);
% y(2)=y
dy=[dy(1);dy(2)];
%-----------------------------------------------------------
60
d y1
= 1 (t, y1 , y2 , yn )
dt
d y2
= 2 (t, y1 , y2 , yn )
dt
M
d yn
= n (t, y1 , y2 , yn )
dt
2
2
www.fullengineeringbook.net
h
q
rk = h tk + , yk + k
2
2
sk = h (tk + h, yk + r )
pk + 2 qk + 2 rk + sk
6
61
N=(x(length(x))-x(1))/h;
Ne=length(y0);
for I=1:N
T=t(I);
Y=y(I,:);
for J=1:Ne
p=h*feval(f,T,Y');
q=h*feval(f,T+h/2,Y'+p/2);
r=h*feval(f,T+h/2,Y'+q/2);
s=h*feval(f,T+h,Y'+r);
end
t(I+1)=t(1)+h*I ;
Inc=(p+2*q+2*r+s)/6;
y(I+1,:)=y(I,:)+Inc;
end
y=spline(t,y',x);
y=[reshape(y,Ne,length(x))]';
t=x;
%-------------------------------------------------------------
www.fullengineeringbook.net
function dy=ecudif(t,y)
dy(1)=2*t;
dy(2)=3*t.2;
dy(3)=4*t.3;
dy(4)=cos(t);
dy=[dy(1);dy(2);dy(3);dy(4)];
% Presentacin de resultados.
t2
0.0000
1.0000
4.0000
9.0000
16.0000
25.0000
t3
0.0000
1.0000
8.0000
27.0000
64.0000
125.0000
t4
seno(t)
0.0000
0.0000
1.0000
0.8415
16.0000
0.9093
81.0000
0.1411
256.0000 -0.7568
625.0000 -0.9589
62
X
V
Qi
Qe
h
www.fullengineeringbook.net
Figura 5.5. Esquema general de un sistema dinmico.
L
h
Qe
Qi
V
H
A
63
(5.5)
es un coeficiente que depende de la altura de lmina h [m], y de la profundidad del tanque H [m], segn la ecuacin (5.6).
= 0, 405 +
0, 003
h2
1 + 0, 55
h
( H + h)2
(5.6)
(5.7)
www.fullengineeringbook.net
La altura de la lmina ser el volumen total de agua entre la seccin, menos
la altura del rebosadero, segn la ecuacin (5.8):
h=
V
H
A
(5.8)
64
www.fullengineeringbook.net
65
%
subplot(313); plot(T,X,'*-'),
axis([t0 tff 590 603])
ylabel('Volumen del Agua (m3)'),xlabel('Tiempo (Minutos)')
%
%---------------------------------------------------------
La funcin que calcula el estado del sistema, volumen del tanque, es:
function dX=VerteX(t,X)
%--------------------- VerteX.m--------------------------%
%
Clculo del volumen del tanque
%--------------------------------------------------------%
%
global A H L Qe1 Qe2 Qe3 tf
%
%
Clculo del caudal de salida
%--------------------------------------------------------%
Y=VerteY(t,X); U=Y(1,1);
%
%
Variacin de volumen del tanque
%---------------------------------------------------------
www.fullengineeringbook.net
Caudales (m3 /h)
150
100
50
0
0
10
12
14
16
18
20
10
12
14
16
18
20
10
12
Tiempo (Minutos)
14
16
18
20
10
5
0
600
595
590
66
%
dX=U-Y(1,2);
%
%---------------------------------------------------------
www.fullengineeringbook.net
67
s
2
1+ s
2
1
www.fullengineeringbook.net
e s
2 s 2 6 s + 12
2 s 2 + 6 s + 12
En procesos qumicos en los que ocurren tiempos muertos, como en una colunma de rectificacin o retrasos hidrulicos, es ms til la aproximacin menos comn:
e s
1
s + 1
n
La aproximacin ms sencilla de aplicar, a la vez que provoca error mnimo, salvo en los instantes iniciales, es la primera aproximacin mencionada.
y( s ) 1 2 s
=
x(s) 1 + s
2
(5.9)
68
Siendo:
x(s)
y(s)
y' = x x'
2
2
2
( x y) x'
(5.10)
2
( x (t ) y(t )) dt x (t )
www.fullengineeringbook.net
x(t)
2/
x(t- )
f (0) se suele despreciar, ya que nicamente tiene influencia en los momentos iniciales. La aproximacin para el clculo de derivadas se muestra en la
69
Figura 5.9, en donde a representa una variable a la que se le calcula su derivada, representando b su derivada.
a
1+0,01 s
b = 100 a b dt
www.fullengineeringbook.net
Este es un procedimiento aproximado para obtener la derivada de una funcin a travs de su integral.
Para visualizacin rpida de la aproximacin del clculo de variables retrasadas y derivadas, se elabora un programa de demostracin en el que la funcin de entrada es el tiempo al cuadrado, y la funcin retrasada, el tiempo al
cuadrado retrasado en tres unidades.
En el programa principal, RetraLan.m se definen los parmetros de operacin, tiempo, retraso, condicin inicial, integrador, la representacin grfica
y la tabla de resultados numricos.
%------------------RetraLan.m ---------------------t=0:.1:12;
global tau
tau=3;
y10=0; y20=0;
[t,y]=odegil4('Retraso',t,[y10 y20],0.01);
Y=y(:,1); Yr=y(:,2);
subplot(211),plot(t,Y),
grid
axis([0 12 -2 145])
ylabel('\fontsize{12} t2')
subplot(212),plot(t,Yr), grid
70
axis([0 12 -3 82])
ylabel('\fontsize{12} (t-3)2')
xlabel('\fontsize{12} t)
T=t(1):t(length(t));
Yn=round(spline(t,Y,T));
Ynr=round(spline(t,Yr,T));
[T Yn Ynr]
%---------------------------------------------------
www.fullengineeringbook.net
>> RetraLan
ans =
t
t2 (t-3)2
0
0
0
1
1
-1
2
4
-1
3
9
-1
4
16
0
5
25
4
6
36
9
7
49
16
8
64
25
9
81
36
10
100
49
11
121
64
12
144
81
71
t2
100
50
0
0
10
12
6
t
10
12
80
(t3)2
60
40
20
0
0
www.fullengineeringbook.net
En el programa principal se hizo uso de la funcin spline, para obtener
datos interpolados. Su sintaxis es:
Yn=spline(X,Y,Xn)
1.5000
2.5000
3.5000
4.5000
2.2500
6.2500
12.2500
20.2500
>> Y= X.2
Y =
0.2500
>> Xn=1:5
Xn=
1
2
3
4
>> Yn=spline(X,Y,Xn)
Yn =
1
16
25
72
www.fullengineeringbook.net
Y=mX+b
(5.11)
=YmXb
Elevando al cuadrado la desviacin, y extendiendo al conjunto de datos, se
obtiene el sumatorio de las desviaciones al cuadrado:
2 = Y 2 + m2 X 2 + N b2 2 m X Y 2 b Y + 2 m b X
Los coeficientes se determinan de las condiciones del mnimo:
d 2
= 2 m X 2 2 X Y 2 b X
dm
d 2
= 2 N b 2 Y + 2 m X
db
73
Y X 2 X X Y
N X 2 ( X )2
(5.12)
N X Y X Y
N X 2 ( X )2
(5.13)
m=
El grado de bondad del ajuste se analiza mediante el coeficiente de correlacin, cuya expresin general toma la forma de:
r=
(Yc Y )2
(Y Y ) 2
N X Y X Y
( N X ( X )2 ) ( N Y 2 ( Y )2 )
2
(5.14)
www.fullengineeringbook.net
Los datos con los que se va a trabajar se guardarn en un archivo separado,
con nombre alusivo a su contenido, formando una matriz a la que se la denomina datos, en cuya primera columna estn las X, y en la segunda las Y:
74
SY=sum(Y);
SY2=sum(Y.2);
SXY=sum(X.*Y);
b=(SY*SX2-SX*SXY)/(N*SX2-SX2);
m=(N*SXY-SX*SY)/(N*SX2-SX2);
r=(N*SXY-SX*SY)/((N*SX2-SX2)*(N*SY2-SY2)).5;
Yc=m*X+b;
plot(X,Y,'*',X,Yc,'-')
text(1.5,15,'r='),
text(2,15,num2str(r))
text(1.5,17,'b='),
text(2,17,num2str(b))
text(1.5,19,'m='),
text(2,19,num2str(m))
xlabel('X'),
ylabel(Y)
%---------------------------------------------------
22
20
m= 1,975
18
b= 4,4372
16
r= 0,99502
www.fullengineeringbook.net
14
12
10
8
6
75
C R x (1 x )
[ x + R (1 x )]2
(5.15)
en donde:
x Fraccin molar del componente ms voltil del lquido.
y Fraccin molar del componente ms voltil del vapor.
R Constante, que indica la posicin del mximo en la representacin y-x.
C Constante, que indica el valor del mximo en la representacin y-x.
Si en la fraccin de la ecuacin (5.15) se divide numerador y denominador
por (1 x)2, se obtiene:
www.fullengineeringbook.net
x
1 x
yx =
2
x + R
1 x
C R
(5.16)
x
1 x
A U
(U + R)2
U
D
(5.17)
76
R
U
+
A
A
(5.18)
1
1
=
A RC
b=
R
=
A
R
RC
www.fullengineeringbook.net
Deshaciendo los cambios hechos, los coeficientes de el ecuacin (5.15) son:
1
bm
b
R=
m
C=
77
.0553 .2170
.0568 .2199
.0620 .2356
.0753 .2824
.0864 .3152
.1120 .3840
.1209 .4082
.1553 .4881
.1779 .5361
.1992 .5693
.2390 .6421
.2718 .6712
.2852 .6836
.3440 .7493
.3978 .7874
.4528 .8161
.5295 .8601
.5753 .8689];
%----------------------------------------------x=datos(:,1); y=datos(:,2);
D=yx; U=x./(1x); V=sqrt(U./D);
est=polyfit(U,V,1);
m=est(1); b=est(2);
subplot(221), plot(x,y,'o-')
subplot(222), plot(U,V,'o',U,m*U+b,'-')
C=1/(b*m); R=b/m;
www.fullengineeringbook.net
V=(U/(yx))0,5
m= 1,152
b= 0,55015
R= 0,47756
C= 1,5779
1,5
0,5
0,2
0,4
0,6
0,8
U=x/(1x)
1,2
0,8
0,6
0,4
0,2
0,05
0,1
0,15
0,2
0,25
0,3
x
0,35
0,4
0,45
0,5
0,55
78
yc=x+C*R*x.*(1-x)./(x+R*(1-x)).2;
subplot(212),plot(x,y,'o',x,yc,'-')
%-----------------------------------------------
www.fullengineeringbook.net
>> t=[0:0.001:0.5]';
>> size(t)
ans =
501
79
y=x+3 rand(length(t),1)
ans =
256
2
1
5
4
3
www.fullengineeringbook.net
0
1
2
0
Potencia Espectral
0,05
0,1
Tiempo (seg.)
2
1
0
1
2
0
0,05
0,1
Tiempo (seg.)
x 10 4
6
5
4
3
2
1
0
50
100
150
Frecuencia
200
250
80
>>
>>
>>
>>
>>
>>
>>
>>
xlabel('Tiempo')
subplot(222),
plot(t(l:50),y(1:50))
ylabel('y=x+3rand')
xlabel('Tiempo')
subplot(212),
plot(f,P(1:256))
axis([ 0 500 0 70000])
ylabel('Potencia espectral')
xlabel('Frecuencia')
En la Figura 5.13 se muestran las variables relacionadas en los clculos expuestos, destacando claramente las potencias espectrales en las frecuencias
buscadas sobre el rizado de la lnea de base.
5.8. EVITANDO LA DIVISIN POR CERO Y REBOSE
La exactitud con que funciona MatLab es eps, cuyo valor es 2,2204 1016.
Al dividir una expresin por una variable x, que en un proceso de clculo
tomase el valor 0, provoca un warning Divide by zero. Este inconveniente
se obvia mediante:
x=x+(x==O)*eps;
www.fullengineeringbook.net
Este procedimiento nicamente cambia el valor de x, cuando su valor es 0,
asignndole el valor de eps.
Los nmeros ms grande y ms pequeo, en valor absoluto, que utiliza MatLab son realmax y realmin, de valores 1,7977 10308 y 2,2251 10308, respectivamente.
Para evitar que una variable x, no exceda de un valor lmite dado de saturacin o rebose, X, se procede segn:
x=x.*(abs(x) < X)+X.*(abs(x)>X);
6
Simulink
www.fullengineeringbook.net
82
Simulink soporta sistemas lineales y no lineales, continuos, discretos e hbridos. Simulink viene con muchos ejemplos a modo de demos para facilitar su
uso.
www.fullengineeringbook.net
En la Figura 6.1 se presentan los mens de las libreras que suministran conjuntos de bloques operacionales, cuyos contenidos se muestran en las Figuras 6.2, a 6.8, con los que se compondrn los modelos deseados.
SIMULINK
83
www.fullengineeringbook.net
84
www.fullengineeringbook.net
SIMULINK
85
www.fullengineeringbook.net
1. Desde la ventana de comandos de MatLab se ejecuta simulink, o se
activa pulsando sobre su icono en la barra de tareas, obtenindose la
ventana de libreras de Simulink
2. De la ventana de libreras se consigue la ventana de construccin del
modelo, pulsando File, New, Model, con lo que se obtiene una
nueva ventana vaca, para construir ah el modelo deseado.
3. Se despliega Sources de la ventana de libreras. Se arrastra o copia
Clock a la ventana del modelo. Clock suministrar t, tiempo continuo.
4. Se abre la ventana Math de la ventana de libreras, y se copia Gain,
ganancia, a la ventana del modelo. Gain se coloca delante de Clock.
Para conectar Gain a Clock, se posiciona el ratn en el ngulo de salida de Clock, manteniendo pulsado el botn izquierdo del ratn, se
desplaza a la entrada de Gain. De este modo Clock y Gain quedan
unidos. Pulsando dos veces sobre Gain se seleciona su valor a 2. La salida de Gain es su entrada multiplicada por su valor seleccionado. La
salida de Clock suministra t, y la salida de Gain suministra 2 t.
5. Pueden ponerse comentarios informativos donde se desee haciendo doble click en el lugar elegido para pasar a modo texto. Para cambiar tamaos y tipos de letra, se coloca el puntero del ratn encima del texto, al
pulsar el botn derecho se accede a Propiedades del texto.
86
6. Desplegando Continuous de la ventana de libreras, se copia Integrator a la ventana del modelo. Se une la salida de Gain con la
entrada de Integrador. Pulsando dos veces sobre Integrador, se
abre una ventana de propiedades del bloque integrator, en este caso
nicamente se selecciona la condicin inicial a 0, valor por defecto.
7. La salida del integrator, es la integral de su entrada, por tanto, con l se
logra el objetivo buscado, t2.
8. Para ver la integracin conseguida, es necesario llevar esa salida a un
visualizador, X Y graph, que se halla en la librera Sinks, desde
donde se copia a la ventana del modelo, cuyas entradas corresponden a
las salidas del reloj, X, y del integrador, Y.
9. Los mtodos y parmetros de integracin, son seleccionables desde la
ventana del modelo en Simulation parameters, del men Simulation.
10. Para ejecutar la simulacin se activa Start del men Simulation
de la ventana del modelo. Para ver el resultado grfico se pulsa dos veces en X Y graph.
11. Para llevar variables del modelo de simulacin al entorno MatLab, se
utiliza el mdulo To workspace de la librera Sinks. Este mdulo
se conecta en la salida del bloque del que se desea guardar sus datos;
pulsando dos veces sobre este mdulo, se accede a la asignacin del
nombre de la variable y al formato en que se desean guardar los datos.
www.fullengineeringbook.net
SIMULINK
87
www.fullengineeringbook.net
88
www.fullengineeringbook.net
Qi(t)
Ci(t)
Volumen
de seguridad
Variacin
de volumen
Volumen
inicial
V(t)
C(t)
Q
C(t)
SIMULINK
89
(6.1)
dt
V
dt V
(6.2)
(6.3)
www.fullengineeringbook.net
El volumen del lquido en el ecualizador estar dado por:
V = V (0) + Qv
2 t
T
sin
0
(6.4)
2
Qv T
1 cos
t
T
2
(6.5)
90
Figura 6.13. Esquema Simulink para el clculo de la evolucin del volumen contenido
en un ecualizador con caudal variable.
El bloque Mux permite conducir por una lnea varias seales. En el ejemplo,
Mux se utiliza para realizar operaciones en los bloques f(u), y para representar varias seales en un grfico.
2500
Qi
Q
Volumen
www.fullengineeringbook.net
2000
1500
1000
500
20
40
60
80
100
120
Tiempo, (Horas)
Figura 6.14. Resultado grfico del clculo de la evolucin del volumen contenido
en un ecualizador con caudal variable.
SIMULINK
91
www.fullengineeringbook.net
Figura 6.15. Esquema Simulink para el clculo del volumen y composicin
de un ecualizador, con alimentacin de caudal y concentracin variables.
92
400
350
300
250
200
150
100
www.fullengineeringbook.net
50
20
40
60
80
100
120
Tiempo (Horas)
140
160
180
200
Bibliografa
[1] Brian D. Hanhn. Essential MatLab for scientists and engineers. Buterworth-Heinemann. (2002).
[2] Brian D. Hunt. A guide to MatLab for beginners and experienced users.
Cambridge Univ. Press. (2001).
[3] Duane Hanselman, Bruce R. Littlefield. Mastering MatLab 6. The MatLab
curriculum series. Prentice Hall. (2000).
[4] James B. Dabney; Thomas L. Harman. Mastering simulink 4 S/E. The
MatLab curriculum series. Prentice Hall. (2001).
[5] Edward B. Magrab. Engineers guide to MatLab. Prentice Hall. (2000).
[6] Rudra Pratrap. Getting starting with MatLab, Version 6: Quick introduction. Oxford University Press. (2001).
[7] Stephen J. Chapman. MatLab programming for engineers. Brooks-Cole
Pub. Co. (2001)
[8] Gil Rodrguez M. Clculos avanzados en procesos de descontaminacin de
aguas. Consejo Superior de Investigaciones Cientficas. (2003).
www.fullengineeringbook.net
93
www.fullengineeringbook.net
ndice alfabtico
..., 21
LATEX, 19, 45
TEXtos en grficos, 45
continue, 40
conv, 16
date, 20
datenum, 20
datestr, 20
www.fullengineeringbook.net
Ajuste de datos, 56
Ajuste lineal, 72
angle, 12
ans, 12
area, 48
ascii, 22, 23
atan2, 13
axes, 44
axis, 43, 44
datetick, 44
datevec, 20
deconv, 16
demo, 1
Derivadas, 27, 67
de polinomios, 17
det, 15, 26
diary, 23
diff, 27, 32
double, 28
dsolve, 29, 32
bar, 41
bar3, 46
Bazin, ecuacin, 63
break, 40
case, 40
ceil, 22
clear, 5
clf, 44, 54
clock, 20
Color, 47, 48
Complejos, nmeros, 12
conj, 12, 79
else, 36, 37
elseif, 37
eps, 80
errorbar, 41
etime, 21
ezplot, 27
factor, 27
95
96
Factorial, 11
feval, 10
fft, 78
fix, 11
floor, 22
fminbnd, 52
fmins, 51
fminsearch, 53
fontsize, 45, 48
for-end, 10, 38
format, 5, 6
fplot, 41
Fracciones simples, desarrollo, 17
Funciones del tiempo, 20
function, 8
fzero, 62
global, 10, 69
grid, 8
gtext, 44
www.fullengineeringbook.net
help, 1, 9
hold on/off, 44
if else end, 36
ilaplace, 30
imag, 12
inline, 11
input, 35
int, 27
integrador, 86
Integrales, 27
de polinomios, 18
interp1, 18
Interpolacin
cubic, 18
polinomial, 18
spline, 18, 71
inv, 15
invlaplace, 33
keywords, 4
now, 20
num2str, 57
ode113, 57
ode15s, 57
ode23, 57
ode23s, 57
ode23t, 57
ode23tb, 57
ode45, 57
odegil4, 57, 60
optimset, 55
Orden de ejecucin, 19
otherwise, 40
path, 19
pie, 41
plot, 8, 41
plot3, 41
NDICE ALFABTICO
plotmatrix, 41, 43
plotyy, 41
polar, 43
Polinomios, 16
poly, 16
polyder, 17
polyfit, 56
polyint, 18
polyval, 16
power, 15
pretty, 26
quad, 51
quadl, 51
rand, 21
rat, 5
real, 12
realmax, 80
realmin, 80
recursion, 11
reshape, 14
residue, 17
Retrasos, 67
return, 9
root, 16
round, 29, 70
Runge-Kuta, 57, 59
97
Simblico, clculo, 25
simplify, 27
size, 4
solve, 28
spline, 71
sqrt, 6, 7, 21
stairs, 41
stem, 41
subplot, 43, 44
subs, 58
sum, 55
switch, 40
sym, 25
syms, 26
taylor, 19, 31
text, 44, 54, 55
title, 44
Transposicin, 7
variables, 3
Vector, 13
Vertedero, 63
www.fullengineeringbook.net
save, 21
scripts, 9
semilogx, 41
semilogy, 41
short, 5
what, 21
which, 19
while-end, 38
who, 2, 3
whos, 2, 3
workspace, 2
xlabel, 44
ylabel, 44
www.fullengineeringbook.net
www.fullengineeringbook.net
www.fullengineeringbook.net