Sunteți pe pagina 1din 56

Centro de Estudios Energticos

Departamento de Ingeniera Mecnica


Direccin de Investigacin y Postgrado
UNEXPO Vicerrectorado de Puerto Ordaz

Introduccin al MatLab y
Simulink

Elaborado por: Prof. Edgar Gutirrez, Ing. MSc.


http://edgar-gutierrez.blogspot.com/

Introduccin al MatLab y Simulink

Centro de Estudios Energticos


Departamento de Ingeniera Mecnica
Direccin de Investigacin y Postgrado
UNEXPO Vicerrectorado de Puerto Ordaz

Contenidos:

Introduccin al Curso.
Fundamentos del MatLab.
Grficas con MatLab.
Algebra Lineal.
Integracin y Diferenciacin Numrica.
Races de Ecuaciones no Lineales.
Resolucin de Ecuaciones Diferenciales.
Simulink de MatLab.
Introduccin al MatLab y Simulink

Centro de Estudios Energticos


Departamento de Ingeniera Mecnica
Direccin de Investigacin y Postgrado
UNEXPO Vicerrectorado de Puerto Ordaz

Contenidos:

Introduccin al Curso.
Fundamentos del MatLab.
Grficas con MatLab.
Algebra Lineal.
Integracin y Diferenciacin Numrica.
Races de Ecuaciones no Lineales.
Resolucin de Ecuaciones Diferenciales.
Simulink de MatLab.
Introduccin al MatLab y Simulink

Centro de Estudios Energticos


Departamento de Ingeniera Mecnica
Direccin de Investigacin y Postgrado
UNEXPO Vicerrectorado de Puerto Ordaz

Objetivos de la Asignatura:

Introduccin.

Conocer las potencialidades de MatLab en


resolucin de problemas de ingeniera.
Resolver problema del clculo integral y
diferencial usando MatLab.
Resolver ecuaciones diferenciales ordinarias
y parciales con MatLab.
Resolver ecuaciones diferenciales usando
Simulink de MatLab.
Introduccin al MatLab y Simulink

Centro de Estudios Energticos


Departamento de Ingeniera Mecnica
Direccin de Investigacin y Postgrado
UNEXPO Vicerrectorado de Puerto Ordaz

Introduccin.

Bibliografa.
Javier Garca de Jaln, Jos Ignacio Rodrguez, Jess Vidal.
Aprenda Matlab 7.0 Como si Estuviera en Primero.
Escuela Tcnica Superior de Ingenieros Industriales.
Shoichiro Nakamura. Anlisis Numrico y Visualizacin
Grfica con MatLab. Prentice Hall.
The Math Works inc. Simulink - Dynamic Simulation for
Matlab USING SIMULINK.
Katsuhiko Ogata. Ingeniera de Control Moderno. Prentice
Hall.

Introduccin al MatLab y Simulink

Centro de Estudios Energticos


Departamento de Ingeniera Mecnica
Direccin de Investigacin y Postgrado
UNEXPO Vicerrectorado de Puerto Ordaz

Introduccin.

Evaluacin.
Examen 1 (50 %): MatLab.
Examen 2 (50 %): Simulink.

Introduccin al MatLab y Simulink

Centro de Estudios Energticos


Departamento de Ingeniera Mecnica
Direccin de Investigacin y Postgrado
UNEXPO Vicerrectorado de Puerto Ordaz

Contenidos:

Introduccin al Curso.
Fundamentos del MatLab.
Grficas con MatLab.
Algebra Lineal.
Integracin y Diferenciacin Numrica.
Races de Ecuaciones no Lineales.
Resolucin de Ecuaciones Diferenciales.
Simulink de MatLab.
Introduccin al MatLab y Simulink

Centro de Estudios Energticos


Departamento de Ingeniera Mecnica
Direccin de Investigacin y Postgrado
UNEXPO Vicerrectorado de Puerto Ordaz

Fundamentos del MatLab.

Qu es MatLab?.
MATLAB es un entorno de programacin orientado al clculo
numrico. Especialmente indicado para:
Anlisis numrico.
Clculo matricial.
Procesamiento de seales.
Grficos.
MATLAB = MATrix LABoratory
Creado en las universidades de New Mexico y Stanford (en
Fortran) para teora de matrices y lgebra lineal.
En 1984 se crea Mathworks y se reescribe en C.
Introduccin al MatLab y Simulink

Centro de Estudios Energticos


Departamento de Ingeniera Mecnica
Direccin de Investigacin y Postgrado
UNEXPO Vicerrectorado de Puerto Ordaz

Fundamentos del MatLab.

MatLab, Toolboxes, Simulink y Blocksets.

Blocksets

SIMULINK

ENTORNO GRFICO

MATLAB

Toolboxes

ENTORNO CLSICO

Introduccin al MatLab y Simulink

Centro de Estudios Energticos


Departamento de Ingeniera Mecnica
Direccin de Investigacin y Postgrado
UNEXPO Vicerrectorado de Puerto Ordaz

Fundamentos del MatLab.

Inicializando MatLab.
Al hacer click en el icono

,se abre la siguiente ventana:

Command Window

Launch Pad

Command History
Introduccin al MatLab y Simulink

Centro de Estudios Energticos


Departamento de Ingeniera Mecnica
Direccin de Investigacin y Postgrado
UNEXPO Vicerrectorado de Puerto Ordaz

Fundamentos del MatLab.

Entorno de Trabajo.

Command Window

Launch Pad

Command History
Introduccin al MatLab y Simulink

Centro de Estudios Energticos


Departamento de Ingeniera Mecnica
Direccin de Investigacin y Postgrado
UNEXPO Vicerrectorado de Puerto Ordaz

Fundamentos del MatLab.

Entorno de Trabajo.

Workspace

Current Dirtectory

Introduccin al MatLab y Simulink

Centro de Estudios Energticos


Departamento de Ingeniera Mecnica
Direccin de Investigacin y Postgrado
UNEXPO Vicerrectorado de Puerto Ordaz

Fundamentos del MatLab.

MatLab Funciona como una Calculadora.


Desde el prompt de MATLAB >>, se introducen las
operaciones a realizar:
>> 3+6
>> 5*5-4/3+2^2
Qu ocurre al pulsar ENTER?
El resultado aparece en la variable ans
MATLAB permite utilizar en cualquier momento variables:
>> eCinetica=10
>> ePotencial=20
>> eTotal=eCinetica+ePotencial
Introduccin al MatLab y Simulink

Centro de Estudios Energticos


Departamento de Ingeniera Mecnica
Direccin de Investigacin y Postgrado
UNEXPO Vicerrectorado de Puerto Ordaz

Fundamentos del MatLab.

MatLab Funciona como una Calculadora.


Ejemplo:
>> a=4/3 Enter
El resultado mostrado es el siguiente:
>> a =
1.3333
Si se quiere el resultado en forma directa, se obtiene:
>> 4/3 Enter
El resultado es:
>> ans =
1.3333
Introduccin al MatLab y Simulink

Centro de Estudios Energticos


Departamento de Ingeniera Mecnica
Direccin de Investigacin y Postgrado
UNEXPO Vicerrectorado de Puerto Ordaz

Fundamentos del MatLab.

Caractersticas de las variables.

No es necesario definir previamente las variables.


Son sensibles a maysculas o minsculas.
Mximo nmero de caracteres: 31
Deben comenzar por letra, seguida de letra, nmero o guin de
subrayado. NO SE PUEDEN UTILIZAR SIGNOS DE PUNTUACIN
EN LAS VARIABLES.
La variables definidas por defectos son:
ans respuesta por defecto.
i,j representan el nmero imaginario puro.
inf representa infinito.
NaN representa a las indeterminaciones del tipo 0/0.
pi 3,1415927
eps muestra el psilon de la mquina (nmero ms pequeo)
realmax nmero real positivo ms grande que es utilizable
realmin nmero real positivo ms pequeo que es utilizable
Introduccin al MatLab y Simulink

Centro de Estudios Energticos


Departamento de Ingeniera Mecnica
Direccin de Investigacin y Postgrado
UNEXPO Vicerrectorado de Puerto Ordaz

Fundamentos del MatLab.

Visualizacin de las Variables.


Desde Command Window:
>>whos
Name

Size

Bytes

Class

eCinetica
1x1
8 double array
ePotencial
1x1
8 double array
eTotal
1x1
8 double array
Grand total is 3 elements using 24 bytes

Desde Workspace:

Introduccin al MatLab y Simulink

Centro de Estudios Energticos


Departamento de Ingeniera Mecnica
Direccin de Investigacin y Postgrado
UNEXPO Vicerrectorado de Puerto Ordaz

Fundamentos del MatLab.

Eliminar Variables.
>>clear nombreVariable
>>clear all ( clear)

Elimina la variable nombreVariable


Elimina todas las variables

Ejemplo:
clear a
clear

Elimina la variable a
Elimina todas las variables

Comentarios y Signos de Puntuacin.


El punto y coma ; impide mostrar los resultados parciales.
Tambin permite combinar varias instrucciones en la misma lnea:
>> alfa=2;beta=1;gamma=alfa+beta
La como separa pero muestra los resultados en pantalla. Se
pueden aadir comentarios con % ante del comentario
Introduccin al MatLab y Simulink

Centro de Estudios Energticos


Departamento de Ingeniera Mecnica
Direccin de Investigacin y Postgrado
UNEXPO Vicerrectorado de Puerto Ordaz

Fundamentos del MatLab.

Comando save y load.


Save NombreArchivo.mat
Guarda las variables del Workpace en un archivo de nombre:
NombreArchivo.mat. Si no se da el nombre del archivo. las variable
se guardan en el archivo matlab.mat.
Load NombreArchivo.mat
Carga las variables guardadas en el workpace mediante el
comando save.

Introduccin al MatLab y Simulink

Centro de Estudios Energticos


Departamento de Ingeniera Mecnica
Direccin de Investigacin y Postgrado
UNEXPO Vicerrectorado de Puerto Ordaz

Fundamentos del MatLab.

Comando Help.
A la ayuda de MatLab mediante una interface grfica se puede
acceder desde el men siguiendo la ruta: Help>Product Help
A la ayuda tambien se
accede desde el
espacio de trabajo
(Commands Windows)
usando:
>> help

>> help topico


>> help funcion
Introduccin al MatLab y Simulink

Centro de Estudios Energticos


Departamento de Ingeniera Mecnica
Direccin de Investigacin y Postgrado
UNEXPO Vicerrectorado de Puerto Ordaz

Fundamentos del MatLab.

Comando Help.
>>Help

Tabla de contenidos de los documentos de ayuda

HELP topics:
Documents\MATLAB
matlab\general
matlab\ops
matlab\lang
matlab\elmat
matlab\randfun
matlab\elfun
matlab\specfun
matlab\matfun
matlab\datafun
matlab\polyfun
matlab\funfun
...
kernel\embedded

- (No table of contents file)


- General purpose commands.
- Operators and special characters.
- Programming language constructs.
- Elementary matrices and matrix manipulation.
- Random matrices and random streams.
- Elementary math functions.
- Specialized math functions.
- Matrix functions - numerical linear algebra.
- Data analysis and Fourier transforms.
- Interpolation and polynomials.
- Function functions and ODE solvers.
- xPC Target Embedded Option
Introduccin al MatLab y Simulink

Centro de Estudios Energticos


Departamento de Ingeniera Mecnica
Direccin de Investigacin y Postgrado
UNEXPO Vicerrectorado de Puerto Ordaz

Fundamentos del MatLab.

Comando Help.
Ayuda de un tpico en particular:
>>Help elfun
acosd
Elementary math functions.

Trigonometric.
sin
- Sine.
sind
- Sine of argument in degrees.
sinh
- Hyperbolic sine.
asin
- Inverse sine.
asind
- Inverse sine, result in degrees.
asinh
- Inverse hyperbolic sine.
cos
- Cosine.
cosd
- Cosine of argument in degrees.
cosh
- Hyperbolic cosine.
acos
- Inverse cosine.

acosh
tan
tand
tanh
atan
atand
atan2
atanh
sec
secd
sech
asec
asecd

- Inverse cosine, result in degrees.


- Inverse hyperbolic cosine.
- Tangent.
- Tangent of argument in degrees.
- Hyperbolic tangent.
- Inverse tangent.
- Inverse tangent, result in degrees.
- Four quadrant inverse tangent.
- Inverse hyperbolic tangent.
- Secant.
- Secant of argument in degrees.
- Hyperbolic secant.
- Inverse secant.
- Inverse secant, result in degrees.

Introduccin al MatLab y Simulink

Centro de Estudios Energticos


Departamento de Ingeniera Mecnica
Direccin de Investigacin y Postgrado
UNEXPO Vicerrectorado de Puerto Ordaz

Fundamentos del MatLab.

Comando Help.
asech
csc
cscd
csch
acsc
acscd
acsch
cot
cotd
coth
acot
acotd
acoth
hypot

- Inverse hyperbolic secant.


Exponential.
- Cosecant.
exp
- Exponential.
- Cosecant of argument in degrees.
expm1 - Compute exp(x)-1 accurately.
- Hyperbolic cosecant.
log
- Natural logarithm.
- Inverse cosecant.
log1p
- Compute log(1+x) accurately.
- Inverse cosecant, result in degrees. log10
- Common (base 10) logarithm.
- Inverse hyperbolic cosecant.
log2
- Base 2 logarithm and dissect floating point number.
- Cotangent.
pow2
- Base 2 power and scale floating point number.
- Cotangent of argument in degrees. realpow - Power that will error out on complex result.
- Hyperbolic cotangent.
reallog - Natural logarithm of real number.
- Inverse cotangent.
realsqrt - Square root of number greater than or equal to zero.
- Inverse cotangent, result in degrees. sqrt
- Square root.
- Inverse hyperbolic cotangent.
nthroot - Real n-th root of real numbers.
- Square root of sum of squares.
nextpow2 - Next higher power of 2.

Nota: Los ngulos en las funciones trigonomtrica deben estar en radianes. Para usar el
argumento en degradante (grados decimales) se agrega la letra d a la funcin. Ejemplo:
sin(x) es sind(x).
Introduccin al MatLab y Simulink

Centro de Estudios Energticos


Departamento de Ingeniera Mecnica
Direccin de Investigacin y Postgrado
UNEXPO Vicerrectorado de Puerto Ordaz

Fundamentos del MatLab.

Comando Help.
Complex.
abs
- Absolute value.
angle
- Phase angle.
complex - Construct complex data from real and imaginary parts.
conj
- Complex conjugate.
imag
- Complex imaginary part.
real
- Complex real part.
unwrap
- Unwrap phase angle.
isreal
- True for real array.
cplxpair - Sort numbers into complex conjugate pairs.
Rounding and remainder.
fix
- Round towards zero.
floor
- Round towards minus infinity.
ceil
- Round towards plus infinity.
round
- Round towards nearest integer.
mod
- Modulus (signed remainder after division).
rem
- Remainder after division.
sign
- Signum.
Introduccin al MatLab y Simulink

Centro de Estudios Energticos


Departamento de Ingeniera Mecnica
Direccin de Investigacin y Postgrado
UNEXPO Vicerrectorado de Puerto Ordaz

Fundamentos del MatLab.

Comando Exit, Quit, Version, clock, date.


>>quit
Termina la seccin de matlab (usado en interface unix o linux)
>>exit
Tambin cierra el matllab.
>>version
Retorna la versin de matlab que esta usando.
>>clock
Retorna un vector con los datos:
[ao mes da hora minutos seg].
>>date
Retorna la fecha en el formato: da-mes-ao.
Introduccin al MatLab y Simulink

Centro de Estudios Energticos


Departamento de Ingeniera Mecnica
Direccin de Investigacin y Postgrado
UNEXPO Vicerrectorado de Puerto Ordaz

Fundamentos del MatLab.

Formatos de los Nmeros.


Para definir el formato numrico de la ventana Command Windos o el editor de
variable se ejecuta: File>Preferences>Command Windos> Numeric format

Introduccin al MatLab y Simulink

Centro de Estudios Energticos


Departamento de Ingeniera Mecnica
Direccin de Investigacin y Postgrado
UNEXPO Vicerrectorado de Puerto Ordaz

Fundamentos del MatLab.

Formatos de los Nmeros.


short
long
rat
short e
long e
short g
long g
Hex

formato de coma fija con 4 decimales (por defecto)


formato de coma fija con 15 decimales
Aproxima por un nmero racional
Notacin cientfica 4 decimales
Notacin cientfica 15 decimales
La mejor entre fija y exponencial de 4 decimales
La mejor entre fija y exponencial de 15 decimales
Hexadecimal

Nota: Hay otros formatos que se pueden revisar en el manual de


usuario que tiene matlab.
Para definir el formato no es necesario hacerlo a travs de
Preferences, se puede hacer por comando:
>> format long; %Se define el formato long
Introduccin al MatLab y Simulink

Centro de Estudios Energticos


Departamento de Ingeniera Mecnica
Direccin de Investigacin y Postgrado
UNEXPO Vicerrectorado de Puerto Ordaz

Fundamentos del MatLab.

Vectores.
X= 0

0.1

0.2

0.3

0.4

0.5

0.6

0.7

Formas de definir un vector:


Directamente:

>>x=[0 0.1*pi 0.2*pi 0.3*pi 0.4*pi 0.5*pi 0.6*pi 0.7*pi];

>>x=[0,0.1*pi,0.2*pi,0.3*pi,0.4*pi,0.5*pi,0.6*pi,0.7*pi];

Formas compactas:
>>x=[primero:incremento:ultimo];
>>x=[0:0.1*pi:0.7*pi]; ( >> x=0:0.1*pi:0.7*pi)
>>x=linspace(primero,ultimo,numeroElementos);
>>x=linspace(0,0.7*pi,8);
>>x=logspace(10ValorInicial,10ValorFinal,numElement)
Introduccin al MatLab y Simulink

Centro de Estudios Energticos


Departamento de Ingeniera Mecnica
Direccin de Investigacin y Postgrado
UNEXPO Vicerrectorado de Puerto Ordaz

Fundamentos del MatLab.

Manipulacin de Vectores.
X= 0

0.1

0.2

0.3

0.4

0.5

0.6

0.7
X(8)

X= 0

0.1

0.2

0.3

0.4

0.5

0.6

0.7

X(3:5)

Para calcular la longitud del vector: length(X)= max(size(X)


Para calcular el tamao de la matriz: size(X)
Se pueden construir nuevos vectores a partir de los anteriores:
Y = X(3:end) Desde columna 3 al final
Par = X(2:2:end) Columnas pares desde la 2 al final
Impar = X(1:2:end) Columnas impares desde 1 al final
Transpuesta = X Vector transpuesto
Introduccin al MatLab y Simulink

Centro de Estudios Energticos


Departamento de Ingeniera Mecnica
Direccin de Investigacin y Postgrado
UNEXPO Vicerrectorado de Puerto Ordaz

Fundamentos del MatLab.

Vector Fila y Vector Columna.


X= 0

El vector fila se puede definir por: >> X=1:8


El vector transpuesto de un vector fila es un vector
X= 0
columna: >> X=X
1
2
3
4
5
6
7

El vector columna tambin se puede crear de la siguiente


forma:
>> X=[1:8]

>> X(:,1)=1:8

Otras operaciones con Vectores:


A+1: Suma de un escalar
2*A: Multiplicacin
A*B: Multiplicacin vectorial
A.*B: Multiplicacin de cada elemento
A./B: Divisin de cada elemento
sum(A): Suma elementos (a0+a1+a2+...+an )
prod(A): Multiplica todos los elementos del vector (a0*a1*a2*.*an )
Introduccin al MatLab y Simulink

Centro de Estudios Energticos


Departamento de Ingeniera Mecnica
Direccin de Investigacin y Postgrado
UNEXPO Vicerrectorado de Puerto Ordaz

Fundamentos del MatLab.

Matriz
A

1 2 3
4 5 6
7 8 9

A(1,:)
A(2,3)

A(:,1)
Cada elemento de una matriz esta representado por: A(fila, columna)
La matriz A se puede definir de la siguiente manera:
>> A=[1 2 3; 4 5 6; 6 7 8];

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


La transpuesta de la matriz

se puede calcular por:


>>A=[1 2 3
>> B=A;
4 5 6
Significa que:
6 7 8];
B(columna, fila)
Introduccin al MatLab y Simulink

Centro de Estudios Energticos


Departamento de Ingeniera Mecnica
Direccin de Investigacin y Postgrado
UNEXPO Vicerrectorado de Puerto Ordaz

Fundamentos del MatLab.

Matrices Especiales
>> zeros(filas,columnas) Matriz nula
>> ones(filas,columnas)
Matriz unidad
>> eye(filas,columnas)
Matriz identidad
>> hilb(n)
Matriz de Hilbelt
>> diag(A)
Vector diagonal de la matriz A
>>rand(filas,columnas) Matriz aleatoria uniforme entre 0,1
>>randn(filas,columnas)Matriz aleatoria gaussiana med. 0,
var1
>>[X,Y]=meshgrid(x,y) Transforma el dominio de los x,y
en dos matrices X,Y que almacena las coordenadas x,y en el
plano resultado del producto cartesiano de x,y.
Introduccin al MatLab y Simulink

Centro de Estudios Energticos


Departamento de Ingeniera Mecnica
Direccin de Investigacin y Postgrado
UNEXPO Vicerrectorado de Puerto Ordaz

Fundamentos del MatLab.

Solicitud de Informacin de Matrices


>>
>>
>>
>>
>>
>>

size(A) Muestra un vector que almacena [fila columna]


length(A) Equivalente a max(size(A))
ndims Dimensin de la matriz (2 para 2D y 2 para 3D)
numel(A) Nmero de elementos de la matriz A
max(A) Vector fila con los mximos valores de cada columna
min(A) Vector fila con los mnimo valores de cada columna

Ejemplo:

>> length(A)

>>A = [1 2 3;4 5 6]
>>size(A)
ans =
2
3

ans =
3
>> max(A)
ans =
4

Introduccin al MatLab y Simulink

Centro de Estudios Energticos


Departamento de Ingeniera Mecnica
Direccin de Investigacin y Postgrado
UNEXPO Vicerrectorado de Puerto Ordaz

Fundamentos del MatLab.

Operaciones con Matrices


>> 2*A
Escalar por matriz
>> A-B
Sumas y Restas
>> A*B
Producto
>> det(A)
Determinante
>> inv(A), A^-1
Inversa de A
>> A\B
Divisin (inv(A)*B)
>> A/B
Divisin (A*inv(B))
>> rank(B)
Rango
>> trace(A)
Traza (suma de las diagonales)
>> [AutoVector,AutoValor]= eig(A)
Auto valores
>> A=[A; V]
Aade (el vector V) una fila a A
>> A=[A V]
Aade (el vector V) una columna a A
>> B= A(2:3, 1:3) Genera una submatriz B con las dos ultimas filas de A
>> disp(A) Muestra la matriz A en pantalla.
>> disp(Hola ) Muestra en patantalla la cadena Hola.
Introduccin al MatLab y Simulink

Centro de Estudios Energticos


Departamento de Ingeniera Mecnica
Direccin de Investigacin y Postgrado
UNEXPO Vicerrectorado de Puerto Ordaz

Fundamentos del MatLab.

Archivos *.m (script)


Son grupos de instrucciones de MATLAB que se
ejecutan en bloque.
Evitan realizar tareas repetitivas.
Para ejecutar este archivo (fichero), basta con llamarlo
(sin extensin!) desde el Espacio de Trabajo (comman
windows).
Es un archivo ASCII pero MATLAB dispone de un
editor propio, que facilita la edicin por que resalta las
funciones fundamentales de matlab.
Las instrucciones del archivo se pueden pegar en
espacio de trabajo para que se ejecuten por parte.
Introduccin al MatLab y Simulink

Centro de Estudios Energticos


Departamento de Ingeniera Mecnica
Direccin de Investigacin y Postgrado
UNEXPO Vicerrectorado de Puerto Ordaz

Fundamentos del MatLab.

Operaciones Lgicas de Relacin


Mayor que: >
Menor que: <
Mayor o igual que: >=
Menor o igual que: =<
Igual que: ==
Distinto que: =
And: &
Or: |
Not:

Ejemplo:
>> Vector=[1 2 3 4 5 6];
>> Vector>3
>> Vector==2
>>(Vector>3)&(Vector<6)

Introduccin al MatLab y Simulink

Centro de Estudios Energticos


Departamento de Ingeniera Mecnica
Direccin de Investigacin y Postgrado
UNEXPO Vicerrectorado de Puerto Ordaz

Fundamentos del MatLab.

Comandos de Programacin en MatLab


Control de flujo
Las funciones de control de flujo son las siguientes:

If-elseif-else-end
For-end
Parfor-end (ciclo paralelo al ciclo for)
While-end
Switch-Case-otherwise-end
Break
Continue

Introduccin al MatLab y Simulink

Centro de Estudios Energticos


Departamento de Ingeniera Mecnica
Direccin de Investigacin y Postgrado
UNEXPO Vicerrectorado de Puerto Ordaz

Fundamentos del MatLab.

Comandos de Programacin en MatLab


If-elseif-else-end
Permiten ejecutar distintas instrucciones en funcin de
una serie de relaciones:
if a<=0
operacin_1;
elseif (b>0)&(a>0)
operacin_2;
.
else
operacin_3;
end
Introduccin al MatLab y Simulink

Centro de Estudios Energticos


Departamento de Ingeniera Mecnica
Direccin de Investigacin y Postgrado
UNEXPO Vicerrectorado de Puerto Ordaz

Fundamentos del MatLab.

Comandos de Programacin en MatLab


for-end
Repiten un grupo de instrucciones un nmero fijo de
veces:
for n=1:4
Operaciones;
end

Nota: No utilizar i,j como ndices

Introduccin al MatLab y Simulink

Centro de Estudios Energticos


Departamento de Ingeniera Mecnica
Direccin de Investigacin y Postgrado
UNEXPO Vicerrectorado de Puerto Ordaz

Fundamentos del MatLab.

Comandos de Programacin en MatLab


while-end
Repiten un grupo de instrucciones mientras se cumpla la
condicin.
a=0
while a<10
a=a+1
end

Introduccin al MatLab y Simulink

Centro de Estudios Energticos


Departamento de Ingeniera Mecnica
Direccin de Investigacin y Postgrado
UNEXPO Vicerrectorado de Puerto Ordaz

Fundamentos del MatLab.

Comandos de Programacin en MatLab


Shitch-case-otherwise-end
Ejecuta una expresin que tiene varios casos posibles.
Excelente para crear men o seleccin de casos.
swich expresin
case expresion_caso,
algumentos;
case {expresion1,expresion2,...},
algumentos;
...
otherwise,
algumentos;
end
Introduccin al MatLab y Simulink

Centro de Estudios Energticos


Departamento de Ingeniera Mecnica
Direccin de Investigacin y Postgrado
UNEXPO Vicerrectorado de Puerto Ordaz

Fundamentos del MatLab.

Comandos de Programacin en MatLab


break
Termina la ejecucin de un ciclo while.
continue
Para el control a la prxima iteracin del ciclo For o While.

Introduccin al MatLab y Simulink

Centro de Estudios Energticos


Departamento de Ingeniera Mecnica
Direccin de Investigacin y Postgrado
UNEXPO Vicerrectorado de Puerto Ordaz

Fundamentos del MatLab.

Creacin de Funciones por el Usuario


Se crean similarmente a los script y se guardan en un
archivo *.M
Se comunican con MATLAB a travs de las variables que
se pasan a la funcin.
Su estructura es:
function[VarSalida]= NombrFun(VarEntrada)
Se edita la funcin con el editor de archivos *.M y se graba.
El nombre de la funcin, NombrFun, y el nombre del
archivo deben coincidir. Es decir, el archivo debe llamarse
NombrFun.m
Introduccin al MatLab y Simulink

Centro de Estudios Energticos


Departamento de Ingeniera Mecnica
Direccin de Investigacin y Postgrado
UNEXPO Vicerrectorado de Puerto Ordaz

Fundamentos del MatLab.

Creacin de Funciones por el Usuario


El nombre est limitado a 31 caracteres y debe comenzar por una
letra.
El nombre no es sensible a las letras maysculas / minsculas, en
Windows.
La primera lnea: DECLARACIN DE FUNCIN (debe contener la
palabra function).
Las siguientes lneas son comentarios y sirven para explicar el
funcionamiento cuando se solicita a travs de help NombrFun.
Las variables definidas dentro de una funcin son locales. Para
acceder a ellas desde el espacio de trabajo, hay que definirlas
como variables globales:
global Variable1 Variable2
Se pueden agrupar para formar una TOOLBOX personalizada.
Introduccin al MatLab y Simulink

Centro de Estudios Energticos


Departamento de Ingeniera Mecnica
Direccin de Investigacin y Postgrado
UNEXPO Vicerrectorado de Puerto Ordaz

Fundamentos del MatLab.

Creacin de Funciones por el Usuario


Ejemplo: Calculo de volumen de un cubo (V=L^3).
La funcin se puede escribir como:

function v=vCubo(x)
%Calcula el volumen de un cubo
%Donde v es el volumen del cubo
%y x el lado
v=x.*x.*x.*x;

La funcin se debe guardar con el nombre de vCubo.m y


para llamarla se procede como:
>> x=1:5
>> V=vCubo(x)
Introduccin al MatLab y Simulink

Centro de Estudios Energticos


Departamento de Ingeniera Mecnica
Direccin de Investigacin y Postgrado
UNEXPO Vicerrectorado de Puerto Ordaz

Fundamentos del MatLab.

Creacin de Funciones por el Usuario


El resultado de la operacin es:

>>v =
1

16

81 256 625

El comando type, muestra el


contenido del archivo.
Ejemplo: Si se ejecuta:

>>type vCubo.m

>>type vCubo

Si se ejecuta:

>> help vCubo

Se mustrar:

Se mostrar en la siguiente
lnea:
Calcula el volumen de un cubo
Donde v es el volumen del cubo
y x el lado

function v=vCubo(x)
%Calcula el volumen de un cubo
%Donde v es el volumen del cubo
%y x el lado
v=x.*x.*x.*x;

Introduccin al MatLab y Simulink

Centro de Estudios Energticos


Departamento de Ingeniera Mecnica
Direccin de Investigacin y Postgrado
UNEXPO Vicerrectorado de Puerto Ordaz

Fundamentos del MatLab.

Creacin de Funciones por el Usuario


El comando return produce un retorno o salida de una
funcin. Normalmente ste comando se usa para forzar
una salida fcil de la funcin.
Ejemplo:
function d = det(A)
if isempty(A)
d = 1;
return
else
...
end
Introduccin al MatLab y Simulink

Centro de Estudios Energticos


Departamento de Ingeniera Mecnica
Direccin de Investigacin y Postgrado
UNEXPO Vicerrectorado de Puerto Ordaz

Fundamentos del MatLab.

Como Dividir un Comando Largo en dos Lneas


Cuando un la lnea de instruccin en muy larga, esta se
puede dividir utilizando la manca de continuidad .
Ejemplo:
function v = vEsfera(r)
v = (4/3)*3.141592653589793*r
.*r.*r;
Ejemplo:
function y = f1(x)
y = (2*x.^3+7*x.^2+3*x-1)./(x.^2-3*x
+5*exp(-x));
Introduccin al MatLab y Simulink

Centro de Estudios Energticos


Departamento de Ingeniera Mecnica
Direccin de Investigacin y Postgrado
UNEXPO Vicerrectorado de Puerto Ordaz

Fundamentos del MatLab.

Archivos de Entrada y Salidas


En matlab se pueden guardar datos en archivos del tipo
ASCII.
fopen: Abre un archivo para escritura o lectura. La
estructura es la siguiente:
fid = fopen(nombreArchivo,permisos)
Donde fid es una variable que almacena el resultado de la
operacin, y si sta variable toma el valor de -1, significa
que no pudo abrir el archivo. nombreArchivo es una
cadena alfanumrica que almacena el nombre y extensin
del archivo y permisos es una cadena que especifica el
tipo de archivo.
Introduccin al MatLab y Simulink

Centro de Estudios Energticos


Departamento de Ingeniera Mecnica
Direccin de Investigacin y Postgrado
UNEXPO Vicerrectorado de Puerto Ordaz

Fundamentos del MatLab.

Archivos de Entrada y Salidas


Los permisos son:
'r' abre un archivo existente para lectura
'w' abre un nuevo archivo para escritura, borra contenido existente.
'a' abre o crea un archivo para escritura, donde los datos se
escriben al final del archivo
'r+' abre (no crea) un archivo para escritura y lectura
'w+' abre o crea un archivo para lectura o escritura, donde se
descrata el contenido existente
'a+' abre o crea un archivo para lectura o escritura, lo datos se
copian al final
'W' abre un archivo para escritura sin limpiardo automticamente
'A' abre un archivo para anexar datos sin limpiardo automticamente
Introduccin al MatLab y Simulink

Centro de Estudios Energticos


Departamento de Ingeniera Mecnica
Direccin de Investigacin y Postgrado
UNEXPO Vicerrectorado de Puerto Ordaz

Fundamentos del MatLab.

Archivos de Entrada y Salidas


fclose: Cierra el archivo que se abri con fopen. La estructura es
la siguiente:
st = fclose(fid)
Donde st es una variable que almacena el resultado de la
operacin, y si sta variable toma el valor de 0 (o tambin 1,2 3,
etc) significa que el cierre del archivo fue correcto y si toma el
valor de -1 significa que no se pudo cerrar el archivo.
Si se tiene varios archivo y se quieren cerrar todos, se ejecuta:
st = fclose(all)
La variable de salida st es un vector que toma los valore de
0,1,2,3, segn el nmero de archivos.

Introduccin al MatLab y Simulink

Centro de Estudios Energticos


Departamento de Ingeniera Mecnica
Direccin de Investigacin y Postgrado
UNEXPO Vicerrectorado de Puerto Ordaz

Fundamentos del MatLab.

Funciones de Lectura y Escritura de Archivo


fprintf: Permite escribir en un archivo abierto por fopen. La
estructura es la siguiente:
count = fprintf(fid,format,A,)
Donde cont es una variable que almacena el resultado de la
operacin, y si sta variable es -1 significa que no se pudo
realizar la operacin. fid es la variable que almacena el archivo
de entrada, el cual si se omite, significa que la salida se hace en
pantalla. format es una cadena que especifica el formato de
presentacin de la salida y A las variables a escribir en el archivo
(o pantalla)
El formato (format) se escribe siguiendo la estructura:
Indica el
Especifica el formato de
% 12.5e
inicio del
las variables
formato
Ancho del campo

Precisin

Introduccin al MatLab y Simulink

Centro de Estudios Energticos


Departamento de Ingeniera Mecnica
Direccin de Investigacin y Postgrado
UNEXPO Vicerrectorado de Puerto Ordaz

Fundamentos del MatLab.

Archivos de Entrada y Salidas


Los especificadores son los siguientes:
Especificadores
%c
%d
%e
%E

Descripcin
Carcter simple
Notacin decimal
Notacin cientfica (Usa el carcter e para especificar el x10)
Notacin cientfica (Usa el carcter E para especificar el x10)

%f
%g
%G
%i
%o
%s
%u
%x

Notacin de punto fijo (nmero real)


El ms compacto entre of %e y %f.
Mismo que %g, pero usa E para la notacin cientfica
Notacin decimal (signed)
Notacin octal
Cadena de carcter
Notacin decimar
Notacin hexadecimal (una los caracteres af)

%X

Notacin hexadecimal (una los caracteres AF)


Introduccin al MatLab y Simulink

Centro de Estudios Energticos


Departamento de Ingeniera Mecnica
Direccin de Investigacin y Postgrado
UNEXPO Vicerrectorado de Puerto Ordaz

Fundamentos del MatLab.

Archivos de Entrada y Salidas


Hay otros especificadores especiales:
Carcter

Descripcin

\b

Retroceso (Backspace)

\f

Avance de

\n

Pasa a la otra lnea (salto de lnea)

\r

Retorno del carro

\t

Tabulador horizontal

\\

Barra invertida

\'' or ' (dos comillas simples)

Comilla simple

%%

Carcter porcentaje (%)

Introduccin al MatLab y Simulink

Centro de Estudios Energticos


Departamento de Ingeniera Mecnica
Direccin de Investigacin y Postgrado
UNEXPO Vicerrectorado de Puerto Ordaz

Fundamentos del MatLab.

Archivos de Entrada y Salidas


Ejemplo de escritura de archivo:
x = 0:.1:1;
y = [x; exp(x)];
fid = fopen('exp.txt', 'wt');
fprintf(fid, '%6.2f %12.8f\n', y);
fclose(fid)

El archivo de salida es:


0.00
0.10
...
1.00

1.00000000
1.10517092
2.71828183

Introduccin al MatLab y Simulink

Centro de Estudios Energticos


Departamento de Ingeniera Mecnica
Direccin de Investigacin y Postgrado
UNEXPO Vicerrectorado de Puerto Ordaz

Fundamentos del MatLab.

Funciones de Lectura y Escritura de Archivo


fscanf: Lee una data desde un archivo, cuyo archivo se debe abrir con
fopen. La estructura es la siguiente:

A = fscanf(fid,format)
Donde A es una matriz donde se almacenan los datos ledos del archivo
fid.
[A, count] = fscanf(fid,format,size)
Esta estructura lee la cantidad de dato especificado por size, y en la
variable count se almacena un nmero que indica si la lectura del archivo
se ha realizado correctamente (-1 indica que el archivo no se ha ledo
correctamente). Size puede tomar los siguientes valores:
n
inf
[m,n]

lee n cantidad de nmeros, carcter o cadenas


Leer hasta el final del archivo
Leer una la cantidad de mxn nmero, carcter o cadena. La lectura es matricial
donde m es el nmero de columnas y n el nmero de filas. m no puede ser inf.
Introduccin al MatLab y Simulink

Centro de Estudios Energticos


Departamento de Ingeniera Mecnica
Direccin de Investigacin y Postgrado
UNEXPO Vicerrectorado de Puerto Ordaz

Fundamentos del MatLab.

Funciones de Lectura y Escritura de Archivo


Ejemplo:
Dado el archivo exp.txt con los siguientes datos:
0.00 1.00000000
0.10 1.10517092
...
1.00 2.71828183
La estructura del programa para leer el archivo debe ser la siguiente:
fid = fopen('exp.txt', 'r');
a = fscanf(fid, '%g %g', [2 inf]); % Hay dos filas columnas.

a = a';

fclose(fid)

Nota: Para lectura de archivos binarios se usa la funcin fread y para


escribir archivos binarios se usa fwrite.
Introduccin al MatLab y Simulink