Anda di halaman 1dari 55

TUTORIAL DE MATLAB

ESPECIALIZACIN EN AUTOMATIZACIN
INDUSTRIAL
2016-II
UNIVERSIDAD PEDAGGICA Y TECNOLGICA DE
COLOMBIA

Matlab
MATLAB (Matrix Laboratory) es un
lenguaje de alto nivel y un ambiente
interactivo Creado por MathWorks.
Est diseado para realizar rpida y
eficientemente tareas matemticas
computacionalmente intensivas.
Clculos numricos con vectores,
matrices;
escalares
reales
o
complejos; cadenas de caracteres y
estructuras
de
informacin
complejas.
Amplia variedad de grficos en dos
y tres dimensiones.
Ing. Maria L. Pinto, Ing. Camilo
Sanabria

Toolbox
Dispone de un cdigo bsico y de varias libreras especializadas toolboxs

http://www.mathworks.com/products/

Ing. Maria L. Pinto, Ing. Camilo


Sanabria

Ing. Maria L. Pinto, Ing. Camilo


Sanabria
http://www.mathworks.com/products/

Toolbox para Ingeniera

Ing. Maria L. Pinto, Ing. Camilo


Sanabria

Toolbox para Control

Ing. Maria L. Pinto, Ing. Camilo


Sanabria

http://www.mathworks.com/academia/student_version/
Ing. Maria L. Pinto, Ing. Camilo
Sanabria

5
2
4
Ing. Maria L. Pinto, Ing. Camilo
Sanabria

Ing. Maria L. Pinto, Ing. Camilo


Sanabria

Empezando.
Definicin de una variable:
>> v=10

v=
10
>> x=2;y=5; z=y-x; w=x*y;
>>
Ing. Maria L. Pinto, Ing. Camilo
Sanabria

10

Empezando.
Definicin de una variable:
>> v=10
v=
10
>> x=2;y=5; z=y-x; w=x*y;
Borrar espacio de trabajo: clc
>>
Borrar variables: clear
Para borrar una variable especfica:
>> clear v
Ing. Maria L. Pinto, Ing. Camilo
Sanabria

11

Empezando.
>> v=10

v=
10
>> V=15
V=
15
>> c=V-v
c=
5
>>

Matlab nota la diferencia entre


maysculas y minsculas
Ing. Maria L. Pinto, Ing. Camilo
Sanabria

12

Empezando.
Operaciones matemticas:
Con la flecha hacia arriba y enter
Para que no aparezca la operacin, terminar con

>> a=10; b=4; c=a*b^2


c=
160
>> a=10; b=4; c=a*b^2;
>>
Ing. Maria L. Pinto, Ing. Camilo
Sanabria

13

Empezando
Definicin de una variable:
>> v=10
Creacin de un vector fila:
>> A=[1,2,3,4,5]
Creacin de un vector columna:
>> B=[1;2;3;4;5]

Transponer un vector fila:


>> C=[2,4,6]'
Ing. Maria L. Pinto, Ing. Camilo
Sanabria

14

Empezando.
Creacin de una matriz:
>> M = [1 , 2 , 3 ; 4 , 5 , 6 ; 7 , 8 , 9 ]
Creacin de un matriz con decimales:
>> Md = [1 , 2.02 , 3 ; 4 , 5 , 6 ; 7 , 8 , 9 ]
Creacin de un matriz con notacin cientfica :
>> Mc = [1 , 2.02 , 3e15 ; 4 , 5e-15 , 6 ; 7e-1 , 8 , 9 ]
Definir cifras significativas
>> format long
>> format rat

Ing. Maria L. Pinto, Ing. Camilo


Sanabria

15

Empezando.
Variables definidas:
Ans
i
>> 4+5
>> i
ans =
ans =
0
9
>> 34*434
ans =

j
>> j
ans =
0

1i

1i

14756
Ing. Maria L. Pinto, Ing. Camilo
Sanabria

>> format long


>> pi
ans =
3.141592653589793
>>
Inf y NaN
>> c=23/0
c=
Inf
>> d=0/0
d=
NaN
16

Comandos de ayuda
F1
>> help
Comandos y caracteres especiales
>>help ops
Lista de comandos de programacin
>>help lang

Ayuda sobre el comando clear


>>help clear
Ing. Maria L. Pinto, Ing. Camilo
Sanabria

17

Definicin especial de vectores


>> v1=a:h:b
Define un vector-fila cuyas componentes van desde a hasta un
nmero c<b, en incrementos de h.
>> v1=1:1:10
v1 =
1
2
3
4

>> v1=1:0.5:3
v1 =
1.0000 1.5000
>>

2.0000

2.5000

10

3.0000

Ing. Maria L. Pinto, Ing. Camilo


Sanabria

18

Definicin especial de vectores


>> v2=linspace(a,b,n)
Define un vector de longitud n, particin regular del
intervalo [a,b] (como a:h:b, con h=(b-a/(n-1); la ltima
componente es =b).
>> v2=linspace(1,2,5)
v2 =
1.0000 1.2500
>>

1.5000

1.7500

2.0000

OJO: En MATLAB, los subndices de los


vectores y matrices comienzan siempre por 1.

Ing. Maria L. Pinto, Ing. Camilo


Sanabria

19

Definicin especial de vectores


Las componentes de un vector se designan mediante el
nmero de su subndice: v1(3)
>> v1(2)
ans =
1.5000
>>
>> v1(1:3)
ans =
1.0000 1.5000
>>

2.0000

Ing. Maria L. Pinto, Ing. Camilo


Sanabria

20

Definicin especial de matrices


>> A(1,:)

Creacin de una matriz diagonal 5x5:


>> Me = eye(5)

ans =

Ubicacin de un componente A(x,y)


>> A=[3,4,5;3,4,6;7,8,9]
A=
3
4
5
3
4
6
7
8
9

>> A(:,3)

ans =
5
6
9

>> A(2,3)=-1
A=

>> A(3,3)
ans =
9
Ing. Maria L. Pinto, Ing. Camilo
Sanabria

3
3
7

4
4
8

5
-1
9

21

Definicin especial de matrices


Vector conteniendo la diagonal principal de la matriz A:
>> dA=diag(A)
dA =
3
Diag(v): donde v es un vector matriz con la
4
diagonal principal = v y
9
ceros en el resto
>>
>> diag([1,2,3,4,5])
ans =
1 0 0 0 0
0 2 0 0 0
0 0 3 0 0
0 0 0 4 0
0 0 0 0 5
>>
Ing. Maria L. Pinto, Ing. Camilo
Sanabria

22

Definicin especial de matrices


zeros(n,m): matriz nxm con todas sus componentes iguales a cero
>> z=zeros(2,3)
zeros(n,m): matriz nxm con todas sus
z=
componentes iguales a uno
0
0
0
>> u=ones(2,3)
0
0
0
u=
>>
1
1
1
1
1
1
zeros(n) dem nxn
>>
>> z3=zeros(3)
Ones (n) dem nxn
z3 =
>> u3=ones(3)
0
0
0
u3 =
0
0
0
1
1
1
0
0
0
1
1
1
>>
1
1
1
Ing. Maria L. Pinto, Ing. Camilo
Sanabria

23

Definicin especial de matrices


>> A=[1,3;6,-8]

Matrices por bloques


[A,B] es la matriz (A B)

A=
1
6

3
-8

>> B=[2,6,-8;4,6,8]
B=
2
4

6
6

-8
8

3
-8

2
4

>> [A,B]
ans =
1
6
Ing. Maria L. Pinto, Ing. Camilo
Sanabria

6
6

-8
8
24

Definicin especial de matrices


>> B=[2,6,-8;4,6,8]

[A;B] es la matriz (A B) transpuesta (columna)


[ ] representa la matriz vaca (0x0)
A(:,3)=[] elimina la tercera columna de la matriz A

B=
2
4

6
6

-8
8

>> C=[1,2,4;4,-6,7]

C=

A(1,:)=[] elimina la primera fila de A

1
4

2
-6

4
7

>> [C;B]

ans =

Ing. Maria L. Pinto, Ing. Camilo


Sanabria

1
4
2
4

2
-6
6
6

4
7
-8
8

25

Polinomios
Se identifican con el vector-fila de sus coeficientes:
= 34 4 12.5 3 + 124 2 46+ 34
>>p=[34, -12.5, 124, -46, 34]
= 34 4 12.5 3 + 34
>>pp=[34, -12.5, 0, 0, 34]
roots(p) Calcula las races del polinomio p (es un vectorcolumna y, en general, calcula aproximaciones)
>> roots(p)
ans =
-0.0189 + 1.8343i
-0.0189 - 1.8343i
0.2027 + 0.5060i
0.2027 - 0.5060i
Ing. Maria L. Pinto, Ing. Camilo
Sanabria

26

Polinomios
Se identifican con el vector-fila de sus coeficientes:
= 34 4 12.5 3 + 124 2 46+ 34
>>p=[34, -12.5, 124, -46, 34]
= 34 4 12.5 3 + 34
>>pp=[34, -12.5, 0, 0, 34]
polyder(p) Derivada del polinomio p
>> polyder(p)
ans =
136.0000 -37.5000 248.0000 -46.0000
Ing. Maria L. Pinto, Ing. Camilo
Sanabria

27

Funciones matemticas especiales:


sin(x) -> funcin seno
cos(x)-> funcin coseno
tan(x) -> funcin tangente
log(x) -> funcin logaritmo neperiano
log10(x) -> funcin logaritmo decimal
exp(x) -> funcin exponencial
sqrt(x) -> funcin raz cuadrada
round(x) -> funcin redondeo hacia el entero mas prximo
abs(x) -> funcin valor absoluto

Ing. Maria L. Pinto, Ing. Camilo


Sanabria

28

Para guardar parmetros:


% Parmetros para motor controlado por corriente de armadura:
La = 0.5; %[H]
Ra = 1; %[Omh]
Km = 0.01; %[N.m/A]
Kb = 0.2; %[(s rad)/V]
J = 0.08; %[Kg m^2]
b = 0.2; %[(N m s)/(rad)]

Ing. Maria L. Pinto, Ing. Camilo


Sanabria

29

Ing. Maria L. Pinto, Ing. Camilo


Sanabria

30

Graficas bidimensionales
plot() crea un grfico a partir de vectores y/o columnas de
matrices, con escalas lineales sobre ambos ejes.
loglog() dem con escala logartmica en ambos ejes.

semilogx() dem con escala lineal en el eje de ordenadas y


logartmica en el eje de abscisas.
semilogy() dem con escala lineal en el eje de abscisas y
logartmica en el eje de ordenadas.

Ing. Maria L. Pinto, Ing. Camilo


Sanabria

31

Graficas bidimensionales
plotyy() dibuja dos funciones con dos escalas
diferentes para las ordenadas, una a la derecha y otra
a la izquierda de la figura.
title('ttulo') aade un ttulo al dibujo.
xlabel('tal') aade una etiqueta al eje de abscisas.
ylabel('cual')

Ing. Maria L. Pinto, Ing. Camilo


Sanabria

32

Graficas bidimensionales
Ejemplo:
>> x=0:1:100;
>> y=sin(x);
>> plot(y)
>>

Ing. Maria L. Pinto, Ing. Camilo


Sanabria

33

Graficas bidimensionales
Ejemplo:
>> x=0:1:100;
>> y=sin(x);
>> plot(x,y,'r')
y amarillo
m violeta
c celeste
r rojo
g verde
b azul
w blanco
k negro

Ing. Maria L. Pinto, Ing. Camilo


Sanabria

. punto
o circulo
x cruz
+ suma
- solido
* estrella
: punteado
-. punto y raya
-- a trazos
34

Ing. Maria L. Pinto, Ing. Camilo


Sanabria

35

Ing. Maria L. Pinto, Ing. Camilo


Sanabria

36

Graficas bidimensionales
Ejemplo:
>> x=-pi:pi/10:pi;
>> y=sin(x);
>> z=cos(x);
>> plot(x,y,'k-.',x,z,'r');
>> grid;
>> xlabel('eje x [unidades]');
>> ylabel('Funciones sin(x), cos(x)');
>> title('GRFICAS CON MATLAB')
>>

Ing. Maria L. Pinto, Ing. Camilo


Sanabria

37

Ing. Maria L. Pinto, Ing. Camilo


Sanabria

38

Graficas bidimensionales
SUBGRFICAS:
>> x=-pi:pi/10:pi;
>> y=sin(x);
>> z=cos(x);
>> w=exp(x);
>> v=sqrt(x.^2+3);
>> subplot(2,2,1); plot(x,y,'r'); grid; xlabel('eje x [rad]'); ylabel('sin(x)'); title('Grfica 1');
>> subplot(2,2,2); plot(x,z,'k-.'); grid; xlabel('eje x [rad]'); ylabel('cos(x)'); title('Grfica 2');
>> subplot(2,2,3); plot(x,w,'bo'); xlabel('eje x'); ylabel('Funcin exp(x)'); title('Grfica 3');
>> subplot(2,2,4); plot(x,v,'m+'); xlabel('eje x'); ylabel('Funcin raz cuadratica'); title('Grfica 4');
>>
Ing. Maria L. Pinto, Ing. Camilo
Sanabria

39

Ing. Maria L. Pinto, Ing. Camilo


Sanabria

40

Graficas bidimensionales
plot(x,y)
>> x=0:pi/100:4*pi; y=sin(x).*cos(x/3);
>> plot(x,y)

plot(x,A)
>> x=0:pi/100:4*pi;
>> A=[sin(x);sin(x/2);sin(x/3);sin(x/4)];
>> plot(x,A)

Ing. Maria L. Pinto, Ing. Camilo


Sanabria

41

Ing. Maria L. Pinto, Ing. Camilo


Sanabria

42

Graficas bidimensionales
ezplot(f)
>> ezplot('2*sin(x/2)*cos(3*x)',[0,pi/2])
ezpolar(f)
>> ezpolar('sin(2*t)*cos(3*t)',[0,pi])
ezmesh(f)
>> ezmesh('x*exp(-x^2 - y^2)')
ezcontour(f)
>> ezcontour('x*exp(-x^2 - y^2)')

Ing. Maria L. Pinto, Ing. Camilo


Sanabria

43

Ing. Maria L. Pinto, Ing. Camilo


Sanabria

44

Graficas bidimensionales
>>
>>
>>
>>

subplot(2,2,1);
subplot(2,2,2);
subplot(2,2,3);
subplot(2,2,4);

ezcontour('x*exp(-x^2 - y^2)');
ezmeshc('sin(u/2)*sin(v/2)');
ezmesh('x*exp(-x^2 - y^2)');
ezplot('sin(3*x)');

Ing. Maria L. Pinto, Ing. Camilo


Sanabria

45

Ing. Maria L. Pinto, Ing. Camilo


Sanabria

46

Funciones
Las funciones son ficheros con una estructura especial
function [variables de salida]=nombre(argumentos de entrada)

Ing. Maria L. Pinto, Ing. Camilo


Sanabria

47

Simulink

Ing. Maria L. Pinto, Ing. Camilo


Sanabria

48

Ing. Maria L. Pinto, Ing. Camilo


Sanabria

49

Ing. Maria L. Pinto, Ing. Camilo


Sanabria

50

Ing. Maria L. Pinto, Ing. Camilo


Sanabria

51

Ing. Maria L. Pinto, Ing. Camilo


Sanabria

52

Ing. Maria L. Pinto, Ing. Camilo


Sanabria

53

Conexin con hardware

Ing. Maria L. Pinto, Ing. Camilo


Sanabria

54

Referencias
Informacin de ayuda (comandos help) del
programa Matlab.
Tutoriales http://www.mathworks.com/products.

Ing. Maria L. Pinto, Ing. Camilo


Sanabria

55

Anda mungkin juga menyukai