Documentos de Académico
Documentos de Profesional
Documentos de Cultura
TutorialMatlab PDF
TutorialMatlab PDF
1. VARIABLES Y FUNCIONES
1.1 OPERADORES
x +y Suma
xy Diferencia
x*y Producto
x/y Divisin
x ^y Potencia
Ejemplos:
>> v = 3
>> x = v + 6
>> y = v ^5 / 4
>> x = 2*3^5 + (5-3)* 8
1
1.2 VECTORES
Ejemplos:
>>Vector2 = [5:10]
Vector2 = 5 6 7 8 9 10 % elementos de 5 a 10 en pasos de 1 (por defecto)
Un vector columna se representa con sus elementos separados por punto y coma.
Ejemplo:
Vector =
2
3
2.5
4.5
8
2
1.3 MATRICES
Ejemplo:
>>A = [1 3 5; 4 7 9; 4 2 10]
A=
1 3 5
4 7 9
4 2 10
Ejemplos:
>> A(2,3)
ans =
9
>> B = A'
B=
1 4 4
3 7 2
5 9 10
>> eye(3)
3
ans =
1 0 0
0 1 0
0 0 1
>> C=B(:,2:3)
C=
4 4
7 2
9 10
>> D = B(1:2,:)
D=
1 4 4
3 7 2
>> size(D)
ans =
2 3
1.4 FUNCIONES
FUNCIONES TRIGONOMTRICAS
Directas Inversas
sin(x) asin(x)
cos(x) acos(x)
tan(x) atan(x)
csc(x) acsc(x)
sec(x) asec(x)
cot(x) acot(x)
FUNCIONES HIPERBLICAS
sinh(x) asinh(x)
cosh(x) acosh(x)
tanh(x) atanh(x)
csch(x) acsch(x)
sech(x) asech(x)
coth(x) acoth(x)
FUNCIONES EXPONENCIALES Y LOGARTMICAS
exp(x) Funcin exponencial base e
log10(x) Logaritmo decimal
4
log(x) Logaritmo natural
sqrt(x) Raz cuadrada
abs(x) Valor absoluto
NMEROS COMPLEJOS
abs(z) Mdulo del complejo z
angle(z) Argumento del complejo z
conj(z) Conjugado del complejo z
real(z) Parte real del complejo z
imag(z) Parte imaginaria del complejo z
factorial(n) n! = n(n-1)(n-2)(n-3)..3.2.1
Ejemplos:
x 2 + 2 x 5
a) y = e para x = 2.5
>> y = exp(sqrt(x^2+2*x-5))
>> x = 30*pi/180
>> y = 2*sin(5*x) + 3*cos(2*x)
c) y = log 3 x + 5 + ln(x2)
>> y = log10(x + 5)^(1/3) + log(x^2)
5
2. POLINOMIOS
Los comandos usados por Matlab para trabajar con polinomios son:
Ejemplos:
p=
1 -9 26 -24
>> x = 2.5;
>> p = [1 0 -3 5 -2.8];
>> y = polyval(p,x)
y=
4.0750
>> c = [1 0 -3 1 -5 2];
>> r = roots(c)
r=
-2.1716
1.8905
-0.0575 + 1.1076i
-0.0575 - 1.1076i
0.3960
6
d) Calcular el polinomio interpolador de segundo orden que pasa por los puntos (-
1,4), (0,2) y (1,6)
p=
3.0000 1.0000 2.0000
e) Calcular 1 x + 1+ x = 4
>> s = solve('sqrt(1-x)+sqrt(1+x)=4')
s=
4*i*3^(1/2)
-4*i*3^(1/2)
>> eval(s)
s(1)=6.9281i s(2)=-6.9281
% x = 4/7, y = 9/7
2 4 1
g) Calcular el determinante de la matriz: 3 2 5
1 3 6
% d = -153
7
3. REPRESENTACIN GRFICA
Matlab ofrece diversas formas de representacin grfica.
Ejemplos:
8
c) barh(x,y)
d) Ejecutar
>> bar(x,y,g)
e) y =
10 8 6
2 5 8
6 0 9
5 8 7
9 4 2
>> plot(x,y,r*)
x=linspace(0,2,30);
y=sin(x.^2);
plot(x,y)
text(1,0.8,'y=sin(x^2)');
hold on
z=log(sqrt(x));
plot(x,z)
text(1,-0.1,'y=log(sqrt(x))')
10
xlabel('Eje x')
ylabel('Eje y')
title('Grfico senoidal y logartmico')
Ejemplos:
x = [0:0.1:2*pi];
y = sin(x);
z = cos(x);
subplot(121);
plot(x,y)
title(sen(x))
subplot(122);
plot(x,z)
title(cos(x))
11
b) Graficar en dos subgrficas dos fila y una columna:
x = [0:0.1:2*pi];
y = sin(x);
z = cos(x);
subplot(211);
plot(x,y)
title(sen(x))
hold on
subplot(212);
plot(x,z)
title(cos(x))
subplot (221);
fplot(sin(x),[-2*pi 2*pi]);
subplot (222);
fplot(cos(x),[-2*pi 2*pi]);
subplot (223);
fplot(csc(x),[-2*pi 2*pi -10 10]);
subplot (224);
fplot(sec(x),[-2*pi 2*pi -10 10]);
12
d) Graficar en diferentes escalas
x = 0:0.01:3;
y = abs(exp(-0.5*x).*sin(5*x));
subplot(221);
plot(x,y)
title(normal)
hold on
subplot(222)
loglog(x,y)
title(logaritmica)
subplot(223)
semilogx(x,y)
title(semilogaritmico en eje x)
subplot(224)
semilogy(x,y)
title(semilogaritmico en eje y)
13
14
4. CLCULO NUMRICO
4.1 Lmites
Ejemplos:
lim f ( x + h) f ( x)
a) Hallar f (x) = si f(x) = cos(x)
h0 h
syms h n x
limit ((cos( x + h) cos( x)) / h, h,0 )
ans =
-sin(x)
lim 3 + 2n 4
b) Hallar el lmite de la sucesin:
n 7 + 3n
ans =
16/81
lim x
c) Hallar
x 0 x
ans = -1
15
lim x
d) Hallar
x 0+ x
Ejemplos:
lim x 2 + x
a) ,
x 2 3 + 1 + 4x
lim sen[(ax)] 2
b)
x0 x2
>> syms x a
>> limit((x-(2+x)^(1/2))/(-3+(1+4*x)^(1/2)),2)
ans = 9/8
>> limit(sin(a*x)^2/x^2,x,0)
ans = a^2
4.2 Derivadas
16
Ejemplos:
>> syms x
>> f = sin (5 x )
>> diff (f)
ans = 5 cos (5 x )
b) g ( x) = e x cos( x)
>> g = exp(x) cos(x)
>> diff (g)
ans = exp(x)*cos(x)-exp(x)*sin(x)
c = sym(5)
diff(c)
ans = 0
Ejemplos:
f
a) Hallar la derivada de la funcin f(t) = sen(st):
t
>> syms s t
>> f = sin(s*t)
>> diff(f,t)
ans = cos(s*t)*s
f
b) Hallar la derivada con respecto a s:
s
>> diff(f,s)
ans = cos(s*t)*t
17
2 f
c) Hallar la segunda derivada de f con respecto a t:
t 2
>> diff(f,t,2)
ans = -sin(s*t)*s^2
>> f = x ^ n
>> F = diff(f)
F=x^n*n/x
>> simplifity (F)
= x ^ (n-1) n
e) f(x) = log(sen(2x))
>> syms x
>> diff(log(sin(2*x)))
ans = 2*cos(2*x)/sin(2*x)
Ejemplos:
f(x,y) = sen(xy)+cos(xy2)
Calcular:
f
a)
x
>> syms x y
>> f = sin(x*y)+cos(x*y^2)
>> diff(f,x)
ans = cos(x*y)*y-sin(x*y^2)*y^2
f
b)
y
>> diff(f,y)
ans = cos(x*y)*x-2*sin(x*y^2)*x*y
2 f
c)
x 2
>> diff(diff(f,x),x)
ans = -sin(x*y)*y^2-cos(x*y^2)*y^4
18
2 f
d)
y 2
>> diff(diff(f,y),y)
Ans = -sin(x*y)*x^2-4*cos(x*y^2)*x^2*y^2-2*sin(x*y^2)*x
2 f
e)
xy
>> diff(diff(f,x),y)
Ans = -sin(x*y)*x*y+cos(x*y)-2*cos(x*y^2)*x*y^3-2*sin(x*y^2)*y
4.3 INTEGRALES
f ( x, y)dxdy Int(int(f(x,y),x),y)
b d Int(int(f(x,y),x,a,b),y,c,d))
f ( x, y)dxdy
a c
Ejemplos:
a) Hallar la integral de x n dx
c) >> int(1/(a+u^2))
ans = 1/a^(1/2)*atan(u/a^(1/2))
d) >> f = sin(a*teta+b)
>> int(f)
ans = -1/a cos(a teta + b)
19
e)
0
exp( x ^ 2)dx
ax 2
f) e dx
Ejemplos:
a) a ln(bx)dx
>> syms a b x
>> int(a*log(b*x),x)
Ans = a*x*log(b*x)-a*x
b) a ln(xy)dxdy
>> int(int(a*log(x*y),x),y)
ans = a*y*x*log(x*y)-2*a*x*y
1
c) a ln( xy)dx
0
>> int(a*log(x*y),x,0,1)
Ans = a*log(y)-a
1 3
d)
0 2
a ln( xy)dxdy
>> int(int(a*log(x*y),x,2,3),y,0,1)
Ans = -2*a*log(2)+3*a*log(3)-2*a
20
5. DINMICA DE SISTEMAS
5.1. SISTEMAS
1
5.2 MODELO MATEMTICO
2
simples. El modelo as obtenido se conoce como Modelo de Caja Blanca, o
Modelo Interno
Para un sistema continuo de una nica entrada y una nica salida, el modelo
empleado corresponde a una ecuacin diferencial ordinaria de coeficientes
constantes:
dnx dx d mu du
a n n + ... + a1 + a 0 x(t ) = bm m + ... + b1 + b0 u (t )
dt dt dt dt
Por su parte, un sistema discreto de una nica entrada y una nica salida,
tendr por modelo una ecuacin de diferencias finitas ordinaria de coeficientes
constantes:
x1 a11 a12 a13 x1 (t ) x1 (k + 1) a11 a12 a13 x1 (k )
x = a a 22 a 23 x 2 (t ) x (k + 1) = a a 22 a 23 x 2 (k )
2 21 2 21
x3 a31 a 32 a33 x3 (t ) x (k + 1) a31 a 32 a33 x3 (k )
3
3
5.3 SISTEMA MECNICO
Leyes de Modelo:
dx d2 x
FK = Kx , FB = B , F = ma = m 2
dt dt
Ecuacin dinmica:
d2 x dx dx
m 2 + B( o - i ) + K(x 0 - x i ) = 0
dt dt dt
Ecuacin diferencial:
d 2 x0 dx dx
m 2 + B o + Kx 0 = B i + Kx i
dt dt dt
ei = Voltaje de entrada
4
eo = Voltaje de salida
R = Resistencia
L = Inductancia
C = Capacitancia
di 1 1
+ Ri + idt = e i ,
C
(1) L (2) idt = e o
dt C
Q = Caudal estable
qi = Variacin del caudal de entrada
qo = Variacin del caudal de salida
H = Altura estable
h = Variacin de la altura
C = Capacitancia del tanque
R = Resistencia hidrulica
dh dh h
(1) C = qi qo , (2) RC + h = Rqi , qo =
dt dt R
5
5.6 SISTEMA TRMICO
d d
(1) C = hi ho , (2) RC + = Rhi , ho =
dt dt R
6
6. TRANSFORMADA DE LAPLACE
L [f(t)]= 0 f (t )e st dt
st Ae st A
L [f(t)] = 0 Ae dt =
s 0
=
s
= F ( s)
A A
L [f(t)] = 0 Ate dt = e st = 2 = F ( s)
st
s 0 s
A
L [f(t)] = 0 Ae e dt = A e ( a + s )t =
at st
= F (s)
0
s+a
Aw
L [f(t)] = 0 Asen( wt )e dt = A sen( wt )e st =
st
= F ( s)
0
s + w2
2
7
6.5 DERIVACIN
L dt f (t ) = sF (s) f (0)
d
d2
L dt 2 f (t ) = s 2 F (s) sf (0) f ' (0)
d
y f (0) = f (t ) cuando t = 0
'
Donde f(0) = f(t) cuando t = 0,
dt
6.6 INTEGRACIN
F ( s)
L 0 f (t )dt =
t
>> laplace(f(t))
Ejemplos:
a) f(t) = cos(wt)+sen(wt)
>> syms w t
>> laplace(cos(w*t)+sin(w*t))
ans =
s/(s^2+w^2)+w/(s^2+w^2)
b) f(t) = 3t + 2t2
>> laplace((3*t)+2*t^2)
ans =
3/s^2+4/s^3
8
ans =
3/(s+2)-2/(s-5)
Q( s ) r1 r2
F ( s) = = + + ..... + K
P( s) s p1 s p 2
[r,p,k] = residue(num,den)
Donde num es un vector compuesto por los coeficientes del polinomio del
denominador y den es un vector compuesto por los coeficientes del polinomio
del numerador.
Ejemplo:
s+2
F ( s) =
s 2 + 2s + 2
>> num = [1 2] ;
>> den = [1 2 2];
>> [r,p,k]=residue(num,den)
r=
0.5000 - 0.5000i
0.5000 + 0.5000i
p=
-1.0000 + 1.0000i
-1.0000 - 1.0000i
k=
[]
9
Las fracciones parciales son:
Q( s ) r1 r2 rn
F ( s) = = + n 1
+ ..... + +K
P( s ) n
( s p1) n
( s p 2) ( s pn)
Ejemplo:
s+2 s+2
F ( s) = =
s + 2s + 1 ( s + 1) 2
2
>> num = [1 2] ;
>> den = [1 2 1];
>> [r,p,k]=residue(num,den)
% r = [1 1 ], p = [-1 -1], k = [ ]
1 1
F ( s) = +
(s + 1) 2
(s + 1)
Ejemplo:
d2y dy
2
+ 3 + 2 y(t ) = 5, condiciones iniciales y(0) = -1, y ' (o) = 2
dt dt
10
b) Despejando Y(s),
s2 s + 5 s2 s + 5
Y ( s) = =
s( s 2 + 3s + 2) s( s + 1)(s + 2)
1.5 5 2.5
Y (s) = +
s + 2 s +1 s
11
7. FUNCIN DE TRANSFERENCIA
sistema
Y ( s ) b0 + b1 s + ... + bm s m
G (s) = =
X ( s) a 0 + a1 s + ...a n s n
En Matlab:
Ejemplo:
d 2
Ecuacin diferencial: T (t ) = J
dt 2
( s) 1
Funcin de transferencia: G ( s ) = =
T (s) Js 2
12
7.1 DIAGRAMA EN BLOQUES
ei i C eo
b) Para la resistencia
e eo
e R = Ri, i = i
R
para el condensador
1
C
eo = idt
c)Transformada de Laplace
Ei ( s) E o ( s)
I ( s) = ,
R
1
Eo (s) = I (s)
sC
d) Estructura
Ei(s) Eo(s)
I(s)
+
1/R 1/sC
Ei(s) - Eo(s)
13
7.2 TIPOS DE ESTRUCTURAS
G(s)
G(s) = G1(s)*G2(s)*G3(s)
Matlab
G1 = tf (num1,den1);
G2 = tf (num2,den2);
G3 = tf (num3,den3);
Gs = G1*G2*G3
tambin puede ser:
Gs = series(G1,G2,G3)
+
G1(s) Y(s)
X(s)
+
G1(s) +
G1(s)
G(s) = G1(s)+G2(s)+G3(s)
14
Matlab
G1 = tf (num1,den1);
G2 = tf (num2,den2);
G3 = tf (num3,den3);
Gs = G1+G2+G3
tambin puede ser :
Gs = parallel(G1,G2,G3)
E(s)
+
G(s)
C(s)
R(s) - B(s)
Realimentacin
H(s)
B(s)
Gla = = G (s) * H (s)
E ( s)
C (s) G( s) * E ( s)
Glc = = , donde, E(s) = R(s) - B(s) = R(s) - C(s) * H(s)
R( s) R(s)
Reemplazando,
C ( s) G(s)
Glc = = ,
R(s) 1 + G (s) H ( s)
Caso especial:
E(s)
+
G(s)
C(s)
R(s) - B(s)
Realimentacin
C (s) G( s)
Gla = G ( s ), Glc = = , H(s) = 1
R( s) 1 + G (s)
15
Matlab:
Ejemplo:
C (s)
G( s) =
R( s)
G1=tf(1,[1 4])
H1=tf(1,[1 0])
% Realimentacin de G1 y H1
Glc1=feedback(G1,H1)
s
Respuesta: Glc1 = 2
s + 4s + 1
% Estructura serie
G2=tf(1,[1 2])
G4=Glc1*G2
s
Respuesta: G4 =
s + 6s + 9s + 2
3 2
% Segunda realimentacin
H2=1/2
Glc2=feedback(G4,H2)
s
Respuesta: Glc 2 =
s + 6 s + 9 .5 s + 2
3 2
16
% Segunda estructura serie
G3=tf(1,[1 0])
G5=Glc2*G3
s
Respuesta: G5 =
s + 6 s + 9 .5 s 2 + 2 s
4 3
% Tercera realimentacin
Glc=feedback(G5,1)
s
Respuesta: Glc =
s + 6 s + 9.5s 2 + 3s
4 3
7.3 ESTABILIDAD
s 4 + 6 s 3 + 9.5s 2 + 3s = 0
s 2 + 3s + 2
G( s) =
s 3 + 6 s 2 + 5s + 1
Matlab:
17
>> den=[1 6 5 1];
>> polos=roots(den)
% polos = -5.0489, -0.6431, -0.3080
ceros = zero(Gs)
polos = pole(Gs)
Esto es,
7.3.3 ESTABILIDAD
Con base en la grfica de polos y ceros (eje x los reales, eje y los imaginarios)
de la funcin de transferencia en lazo cerrado:
Ejemplo:
s 2 + 3s + 2
Glc( s ) =
s 3 + 6 s 2 + 5s + 6
Matlab:
18
El sistema tiene tres polos: un polo real y dos polos complejos conjugados.
Como todos los polos estn en el semiplano izquierdo, el sistema es estable.
>> step(Glc)
19
7.3.5 ERROR DE ESTADO ESTACIONARIO
lim
Ess = 1 Glc = 1 valor final
s0
Ejemplo:
lim s 2 + 3s + 2
Ess = 1 = 1 0.333 = 0.666
s 0 s 3 + 6 s 2 + 5s + 6
Ejemplo:
s 2 + 3s + 6
Para: Glc =
s 3 + 6 s 2 + 5s + 6
lim s 2 + 3s + 6
Ess = 1 = 11 = 0
s 0 s 3 + 6 s 2 + 5s + 6
20
8. SIMULINK
8.1 INTRODUCCIN
Los elementos bsicos son lneas y bloques. Los bloques estn agrupados en:
Sources, Links, Discrete, Continuos, Math, etc., tal como aparecen en la
ventana anterior. Cada bloque tiene entradas y salida para realizar su
interconexin. Por ejemplo, haga clic en Discrete y luego clic en Discrete
Transfer Fcn y arrastre el bloque a la ventana en blanco. Si quiere modificar la
funcin de transferencia del bloque haga doble clic en l y digite los
coeficientes del numerador y denominador en la nueva ventana que aparece.
Para la funcin 1/(z2 +2z +4) con tiempo de muestreo de 1 seg, quedara:
21
8.3 SISTEMAS DE CONTROL
22
Por ltimo se debe simular el sistema. Para ello se configura la seal de
entrada, en este caso la funcin paso. Dar doble clic y asignar los siguientes
parmetros: Step time=0, Inicial value=0, Final value=1, Sample time=0. Para
simular el sistema de control se escoge del men Simulation Start o el icono
.y luego se hace doble clic en Scope para ver su respuesta o salida del
sistema. Para observar adems la entrada se puede colocar otro Scope a la
salida de Step y se puede probar para varios pasos variando su amplitud,
tiempo de inicio y tiempo de iniciacin del paso. Para observar mejor la
23
(1) Leyes de Newton
24
8.5 EXTRAER MODELO LINEAL
Como segundo paso se debe obtener el modelo lineal de Matlab del motor.
Para esto, borre el bloque Scope y cmbielo por Out obtenido de la librera de
Signals&Systems. Haga lo mismo para Step cambindolo por In de esta misma
librera. Los bloques In y Out definen la entrada y salida del sistema que le
gustara extraer. Salve este modelo. El sistema quedar as:
25
Como tercero y ltimo paso, despus de desarrollado el modelo y salvarlo por
ejemplo con el nombre MotorDcVel.mdl se ejecutan los siguientes comandos:
26
MATLAB APLICADO A INGENIERA 1
9. PROGRAMACIN
9.1 SUBSISTEMAS
% CONTROL DE UN MOTOR DC
[num, den]=linmod('ControlMotor')
Glazo_abierto = tf(num, den)
Respuesta:
MATLAB APLICADO A INGENIERA 2
% CONTROL DE UN MOTOR DC
[num, den]=linmod('ControlMotor')
Glazo_cerrado= tf(num, den)
Respuesta:
Respuesta:
Ejemplo:
d2y dy
2
+ 3 + 6 y = 4t y ' '+3 y '+6 y = 4t y ' ' = 4t 3 y '6 y
dt dt
Diagrama Simulink:
Respuestas:
MATLAB APLICADO A INGENIERA 4
Ejemplo:
DE MATLAB A SIMULINK
>> t = 0:0.001:0.999;
>> t = t;
>> x = exp(t)
Al ejecutarse Simulink toma los datos entregados por Matlab. No olvidar colocar
condicin inicial y(0) = 3 en el integrador.
DE SIMULINK A MATLAB
Ejemplo:
En Matlab:
>> plot(t,y)
9.5 EJERCICIOS
Ejercicio1:
Ejercicio2:
dh
A = q (t ) K h
dt
MATLAB APLICADO A INGENIERA 8
Diagrama Simulink:
Ecuaciones:
d 2h i 2 di
(1) m = mg (2) L = V iR
dt 2 h dt
Valores:
Diagrama simulink:
Controlador:
zeros=[-11.5+7.9i, -11.5-7.9i]
polos=[0 -1000]
ganancia=-3.3057e+004
Planta:
MATLAB APLICADO A INGENIERA 10
dVol dh
=A = bV a h
dt dt
Diagrama simulink:
MATLAB APLICADO A INGENIERA 12
Controlador:
Planta:
Ecuaciones:
Condiciones iniciales:
Vo=100 m/sg; = 30
MATLAB APLICADO A INGENIERA 14
MATLAB APLICADO A INGENIERA 15
Ecuacin:
Valores:
Diagrama simulink:
MATLAB APLICADO A INGENIERA 16
9.6.1 FUNCTION
Ejemplo:
En la ventana de edicin:
function p = fun1(x)
% Definicin de una funcin simple
p = x^3 2*x+cos(x)
>> fun1(3*pi/2)
ans=
95.2214
Ejemplo:
radical = sqrt(b^2-4*a*c);
x1= (-b+radical) / (2*a);
x2= (-b-radical) / (2*a);
el archivo es cuadratica.m
>> [x1,x2]=cuadratica(1,2,3)
x1 =
-1.0000 + 1.4142i
x2 =
-1.0000 - 1.4142i
MATLAB APLICADO A INGENIERA 18
fval:
feval(F,arg1,arg2,)
Ejemplo:
o tambin:
9.6.2 GLOBAL
Normalmente cada funcin de Matlab definida como un archivoM contiene sus
variables como variables locales, esto es, su efecto es al interior de este archivo
independientemente de otros archivos. Es posible definir otras variables que tenga
efecto en otros archivos-M con variables globales usando el comando global con
la siguiente sintaxis:
9.6.3 FOR
MATLAB APLICADO A INGENIERA 19
caso1:
for i= 1:n
comandos
end
caso2:
for i=n:-0.2:1
comandos
end
caso 3:
for i=1:m
for i=n
comandos
end
end
Ejemplo:
suma=0;
for i=1:2:100
suma=suma+i;
end
disp('El resultado es: ')
display(suma)
Ejemplo:
M=[1 2 -2 4; 0 -3 1 0; 2 -1 4 3];
% numero de filas
m=length(M(:,1));
% numero de columnas
n=length(M(1,:));
suma=0;
MATLAB APLICADO A INGENIERA 20
for i=1:m
for j=1:n
suma=M(i,j)+suma;
end
end
display(suma)
9.6.4 WHILE
Mientras se ejecuta una condicin se ejecutan los comandos o sentencias.
while condicin
sentencias
end
Ejemplo:
Ejemplo:
Gz=tf(1,[0.4 0.3]);
Gzc=zpk(1,[-1 0.2],0.5);
SIGA=1;
pause
clc
disp(' ');
disp('LOS POLOS DEL SISTEMA SON : ');
Polos = pole(Glc)
disp('QUE TIENEN MAGNITUDES Y ANGULOS DE :');
Mag = abs(Polos)
Ang1 = angle(Polos);
Ang = Ang1*180/pi
if (Mag(1)<1)&(Mag(2)<1)
disp('EL SISTEMA ES ESTABLE');
else
disp('EL SISTEMA ES INESTABLE');
end
disp(' ');
disp('PARA SEGUIR OPRIMA ENTER');
pause
Ejemplo:
Genere una tabla que suministre los inversos, cuadrados y races cuadradas del 1
al 5
i=0;
while i<5
i=i+1;
A(i)=i;
B(i)=1/i;
C(i)=i^2;
D(i)=sqrt(i);
end
E=[A',B',C',D']
E=
9.6.5 IF
caso 1:
if condicin
sentencias
end
caso 2:
if condicin1
bloque1
elseif condcin2
bloque2
elseif condicin3
bloque3
else % sino cumple condiciones anteriores
bloque4
end
Operadores de relacin:
Operadores lgicos:
& AND
OR
NOT
xor XOR
Ejemplo:
disp(' ')
disp('Desaprobado')
end
% Otra forma
Ejemplo:
9.6.6 SWITCH
switch expresin
MATLAB APLICADO A INGENIERA 24
case expresin1
bloque1
case expresin2
bloque2
.........................
otherwise
bloque3
Ejemplo:
switch n
case 1
num = input('ENTRE NUMERADOR DE LA PLANTA : num = ');
den = input('ENTRE DENOMINADOR DE LA PLANTA : den = ');
disp('LA FUNCION DE TRANSFERENCIA DE LA PLANTA ES : Gp(s) = ');
Gp = tf(num,den)
disp(' ');
case 2
Z = input('Entre vector de ceros : Z = ');
P = input('Entre vector de polos : P = ');
K = input('Ganancia es igual a : K = ');
disp('LA FUNCION DE TRANSFERENCIA DE LA PLANTA ES : Gp(s) = ');
Gp = zpk(Z,P,K)
end
9.6.7 INPUT
9.6.8 DISP
disp(Universidad de Colombia)
MATLAB APLICADO A INGENIERA 25
9.6.9 FIND
Para el ejemplo del movimiento del pndulo, calcular por programacin el ngulo
para un tiempo dado.
%Programa en Matlab
g=9.8;
w=2;
L=0.6;
B=0.08;
m=w/g;
%Para correr el simulink tiene que en K>>movpendulo y luego correrlo
disp('Realice la simulacion y de return para ejecutar')
keyboard
a=length(t);
tf=t(a);
delta=tf/a;
%calcular el angulo para un tiempo T dado
T=input('Entre el tiempo de T: ');
i=find(t <(T+delta) & t >(T-delta));
disp('El desplazamiento angular es de: ')
AngR=teta(i(2))
AngG=AngR*180/pi
Ecuaciones dinmicas:
dv1
f (t ) = m1 + k (v1 v 2)dt
dt
dv 2
0 = m2 + k (v 2 v1) dt + bv 2
dt
Ecuaciones de Laplace:
V1 V 2
F ( s ) = m1sV 1 + k
s
V 2 V1
0 = m 2 sV 2 + k + bV 2
s
F V1 V 2
V1 = k
m1s m1s 2
V1 V 2
V 2(m2 s + b) = k
s
Programa en Simulink:
MATLAB APLICADO A INGENIERA 27
Programa:
for i=1:d
if den(i)<10e-6
den(i)=0;
else
den(i)=den(i);
MATLAB APLICADO A INGENIERA 28
end
end
%***************************************************************
Gs=tf(num,den);
clc
disp('***********************************************************')
display(Gs)
disp('***********************************************************')
disp(Oprima tecla Enter)
pause
Gs=poly2sym(num,'s')/poly2sym(den,'s');
syms t
%f(t)=1 Nt
ft=1*heaviside(t);
Fs=laplace(ft);
V2s=Gs*Fs;
v2t=ilaplace(V2s);
v2=vpa(v2t,3)
t=1.0;
v2=eval(v2)
% 0.060
Ecuacin dinmica:
dc(t )
V = Fci (t ) Fc(t ) KVc(t )
dt
dc(t )
V = Fci (t ) ( F + KV )c(t )
dt
V dc(t ) F
+ c(t ) = ci (t )
F + KV dt F + KV
Constante de tiempo:
MATLAB APLICADO A INGENIERA 29
V
=
F + KV
F
Ke =
F + KV
0 = Fci(0)-Fc(0)-KVc(0)
Programa en Matlab:
% Programa principal
F=1;
V=5;
K=0.2;
ci0=1.25;
c0=solve('F*ci0-F*c0-K*V*c0=0');
c0=eval(c0)
%Constante de tiempo
tau=V/(F+K*V)
% tau=2.5 minutos
%Ganancia en estado estacionario
Ke=F/(F+K*V)
% Ke=0.5
MATLAB APLICADO A INGENIERA 30
case 2
r=input('valor pendiente de la rampa=');
[t,y]=ode45('rplineal',Rango,Inicio);
plot(t,r*t,t,y/K,'r')
case 3
A=input('Amplitud del seno=');
w=input('Frecuencia del seno=');
[t,y]=ode45('splineal',Rango,Inicio);
disp('Amplitud del perfil de la respuesta')
K*A/sqrt(1+(w*tau)^2)
disp('Fase de la respuesta respecto a la entrada')
atan(-w*tau)
plot(t,A*sin(w*t),t,y,'r')
end
Programa en Simulink:
MATLAB APLICADO A INGENIERA 31
Parmetros:
Ecuaciones dinmicas:
dv1
f (t ) = m1 + k1 (v1 v 2)dt + (v1 v 2)b1
dt
dv 2
0 = m2 + k1 (v 2 v1)dt + (v 2 v1)b1 + k 2 v 2dt + b2v 2
dt
Ecuaciones de Laplace:
K1
F ( s) = m1sV 1 + (V 1 V 2) + (V 1 V 2)b1
s
k1 k2
0 = m2sV 2 + (V 2 V 1) + (V 2 V 1)b1 + V 2 + b2V 2
s s
1 k1 1 k1 + b1s
V1 = F ( s) (V 1 V 2)( + b1) = F (V 1 V 2)( )
m1s s m1s s
1
GUIDE MATLAB
INTRODUCCIN
Inicio
CONTROL DESCRIPCIN
Push Button Genera una accin
Slider Representa un rango de valores
Radio Button Representa una opcin
Check Box Indica el estado de una opcin
Edit Text Para editar texto
Static text Muestra un string de texto
Pop-up Menu Provee una lista de opciones
Listbox Lista deslizable
Toggle Button Genera una accin on, off
Axes Para graficar
Panel Visualiza grupo de controles
Button Grup Es un panel exclusivo para radio buttons
y toggle buttons
ActiveX Control Despliega controles ActiveX en Gui
celsius1=eval(get(handles.celsius,'string'));
%Para convertir celsius a kelvin
kelvin1=celsius1 + 273.15;
Notar que siempre se obtienen los datos a travs de los identificadores handles.
5
set(handles.kelvin,'string',kelvin1);
Ejemplo: ConvTemperatura.fig
% Adicionamos
% Para leer el dato colocado en celsius
celsius1=eval(get(handles.celsius,'string'));
%Para convertir celsius a kelvin y fehrenheit
kelvin1=celsius1 + 273.15;
fahrenheit1=1.8*celsius1 + 32;
%Para escribir datos en los Edit Text
set(handles.kelvin,'string',kelvin1);
set(handles.fahrenheit,'string',fahrenheit1);
% Adicionamos
% Para leer el dato colocado en kelvin
kelvin1=eval(get(handles.kelvin,'string'));
%Para convertir kelvin a celsius y fehrenheit
celsius1=kelvin1 - 273.15;
fahrenheit1=(kelvin1-273.15)*1.8 + 32;
%Para escribir datos en los Edit Text
set(handles.celsius,'string',celsius1);
set(handles.fahrenheit,'string',fahrenheit1);
% Adicionamos
% Para leer el dato colocado en fahrenheit
fahrenheit1=eval(get(handles.fahrenheit,'string'));
%Para convertir fahrenheit a celsius y kelvin
celsius1=(fahrenheit1-32)*5/9;
kelvin1=(fahrenheit1-32)*5/9 + 273.15;
%Para escribir datos en los Edit Text
7
set(handles.celsius,'string',celsius1);
set(handles.kelvin,'string',kelvin1);
Ejemplo: Grafica1.fig
8
% Rangos de tiempo
t1=str2num(get(handles.TiempoInicial,'string'));
t2=str2num(get(handles.TiempoFinal,'string'));
% Vector tiempo
t=linspace(t1,t2,200);
% Valor de la frecuencia
frec=str2num(get(handles.Frecuencia,'string'));
% graficar funcin seno
y=sin(2*pi*frec*t);
plot(t,y);
Ejemplo: Slider.fig
% Rangos de tiempo
t1=str2num(get(handles.TiempoInicial,'string'));
t2=str2num(get(handles.TiempoFinal,'string'));
% Vector tiempo
t=linspace(t1,t2,200);
% Valor de la frecuencia
frec=str2num(get(handles.Frecuencia,'string'));
% Barra de desplazamiento
editamin=get(handles.Barra,'Min');
editamax=get(handles.Barra,'Max');
%Chequear si el valor de frecuencia es numerico
if isnumeric(frec)&lenght(frec)==1&frec>=editamin&frec<=editamax
set(handles.Barra,'Value',frec)
elseif frec<editamin
set(gcbo,'string',editamin);
set(handles.Barra,'Value',editamin);
frec=editamin;
elseif frec>editamax
set(gcbo,'string',editamax);
set(handles.Barra,'value',editamax);
frec=editamax
end
set(handles.Frecuencia,'string',get(gcbo,'value'));
% Rangos de tiempo
t1=str2num(get(handles.TiempoInicial,'string'));
11
t2=str2num(get(handles.TiempoFinal,'string'));
% Vector tiempo
t=linspace(t1,t2,200);
frec=get(gcbo,'value');
y=sin(2*pi*frec*t);
plot(t,y);
Ejemplo: Calculadora.fig
Calculadora.m
textString=get(handles.Res,'String');
textString=strcat(textString,'1');
set(handles.Res,'String',textString)
Ejemplo: Paralelogramo.fig
14
15
set(handles.Ang4,'string',angulo);
longitud=num2str(d);
set(handles.Long4,'string',longitud);
Ejemplo: ClaculoMasa.fig
17
% --------------------------------------------------------------------
function unitgroup_SelectionChangeFcn(hObject, eventdata, handles)
% hObject handle to unitgroup (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
if (hObject == handles.english)
set(handles.text4, 'String', 'lb/cu.in');
set(handles.text5, 'String', 'cu.in');
set(handles.text6, 'String', 'lb');
else
set(handles.text4, 'String', 'kg/cu.m');
set(handles.text5, 'String', 'cu.m');
set(handles.text6, 'String', 'kg');
end
% --------------------------------------------------------------------
function initialize_gui(fig_handle, handles, isreset)
% If the metricdata field is present and the reset flag is false, it means
% we are we are just re-initializing a GUI by calling it from the cmd line
% while it is up. So, bail out as we dont want to reset the data.
if isfield(handles, 'metricdata') && ~isreset
return;
end
19
handles.metricdata.density = 0;
handles.metricdata.volume = 0;
Ejemplo: FigPopupmenu
Menu editor:
22
% --------------------------------------------------------------------
function FileMenu_Callback(hObject, eventdata, handles)
% hObject handle to FileMenu (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% --------------------------------------------------------------------
function OpenMenuItem_Callback(hObject, eventdata, handles)
file = uigetfile('*.fig');
if ~isequal(file, 0)
open(file);
end
% --------------------------------------------------------------------
function PrintMenuItem_Callback(hObject, eventdata, handles)
printdlg(handles.figure1)
% --------------------------------------------------------------------
function CloseMenuItem_Callback(hObject, eventdata, handles)
selection = questdlg(['Close ' get(handles.figure1,'Name') '?'],...
['Close ' get(handles.figure1,'Name') '...'],...
'Yes','No','Yes');
23
if strcmp(selection,'No')
return;
end
delete(handles.figure1)
Ejemplo: Mensajes.fig
La funcin strcmp compara dos strings y si son iguales retorna el valor 1 (true).
Clear elimina todas los valores de workspace, clc limpia la pantalla y close all
cierra todos los Guide. Ntese que la secuencia 'Si','No','No' termina en 'No'; con
esto se logra que la parte No del cuadro de pregunta est resaltado. Si terminara
en 'Si', la parte Si del cuadro de pregunta se resaltara.
1
Manual de Interfaz Grfica de Usuario en Matlab
Por: Diego Orlando Barragn Guerrero
26
Ejemplo: Listbox.fig
Comandos utilizados:
find_System('Type','Nombre_simulink')
open_system(Nombre_simulink)
set_param(Nombre_simulink/Nombre_bloque)
PROGRAMA EN SIMULINK:
PROGRAMA EN GUIDE:
31
PROGRAMA EN MATLAB:
%--------------------------------------------------------------
onda=get(hObject,'Value');
if onda==1
set_param('simu/Signal Generator','Waveform','sine');
set_param(gcs,'simulationCommand','Start');
elseif onda==2
set_param('simu/Signal Generator','Waveform','square');
set_param(gcs,'simulationCommand','Start');
elseif onda==3
set_param('simu/Signal Generator','Waveform','sawtooth');
set_param(gcs,'simulationCommand','Start');
else
set_param('simu/Signal Generator','Waveform','random');
set_param(gcs,'simulationCommand','Start');
end
%---------------------------------------------------------------
%-------------------------------------------------------------------
f=get(hObject,'string');
set_param('simu/Signal Generator','Frequency',f);
set_param('Simulationcommand','Start');
%-------------------------------------------------------------------
33
msica.mdl
audio.fig (archivos.wav)
34
El Slider debe estar en Max= 10.0 y Min=0.0 para que se pueda escuchar el
cambio de volumen.
Audio.m
Ejemplo: ActiveX
Circulo.m
%--------------------------------------
c=get(handles.slider1,'Value');
RadioInicial=(1/c)*handles.activex1.radius;
handles.activex1.Radius=RadioInicial;
handles.activex1.Label=['Radio=',num2str(handles.activex1.Radius)];
refresh(handles.figure1);