1-Introducción Al MatLab

56
Centro de Estudios Energéticos Departamento de Ingeniería Mecánica Dirección de Investigación y Postgrado UNEXPO Vicerrectorado de Puerto Ordaz Introducción al MatLab y Simulink Introducción al MatLab y Simulink Elaborado por: Prof. Edgar Gutiérrez, Ing. MSc. http://edgar-gutierrez.blogspot.com/

description

manual

Transcript of 1-Introducción Al MatLab

Centro de Estudios EnergéticosDepartamento de Ingeniería Mecánica

Dirección de Investigación y PostgradoUNEXPO Vicerrectorado de Puerto Ordaz

Introducción al MatLab y Simulink

Introducción al MatLab y Simulink

Elaborado por: Prof. Edgar Gutiérrez, Ing. MSc.http://edgar-gutierrez.blogspot.com/

Centro de Estudios EnergéticosDepartamento de Ingeniería Mecánica

Dirección de Investigación y PostgradoUNEXPO Vicerrectorado de Puerto Ordaz

Contenidos:• Introducción al Curso.• Fundamentos del MatLab.• Gráficas con MatLab.• Algebra Lineal.• Integración y Diferenciación Numérica.• Raíces de Ecuaciones no Lineales.• Resolución de Ecuaciones Diferenciales.• Simulink de MatLab.

Introducción al MatLab y Simulink

Centro de Estudios EnergéticosDepartamento de Ingeniería Mecánica

Dirección de Investigación y PostgradoUNEXPO Vicerrectorado de Puerto Ordaz

Contenidos:• Introducción al Curso.• Fundamentos del MatLab.• Gráficas con MatLab.• Algebra Lineal.• Integración y Diferenciación Numérica.• Raíces de Ecuaciones no Lineales.• Resolución de Ecuaciones Diferenciales.• Simulink de MatLab.

Introducción al MatLab y Simulink

Centro de Estudios EnergéticosDepartamento de Ingeniería Mecánica

Dirección de Investigación y PostgradoUNEXPO Vicerrectorado de Puerto Ordaz

Objetivos de la Asignatura:

• Conocer las potencialidades de MatLab enresolución de problemas de ingeniería.

• Resolver problema del cálculo integral ydiferencial usando MatLab.

• Resolver ecuaciones diferenciales ordinariasy parciales con MatLab.

• Resolver ecuaciones diferenciales usandoSimulink de MatLab.

Introducción al MatLab y Simulink

Introducción.

Centro de Estudios EnergéticosDepartamento de Ingeniería Mecánica

Dirección de Investigación y PostgradoUNEXPO Vicerrectorado de Puerto Ordaz

Introducción.

• Bibliografía. Javier García de Jalón, José Ignacio Rodríguez, Jesús Vidal.

Aprenda Matlab 7.0 Como si Estuviera en Primero.Escuela Técnica Superior de Ingenieros Industriales.

Shoichiro Nakamura. Análisis Numérico y VisualizaciónGráfica con MatLab. Prentice Hall.

The Math Works inc. Simulink - Dynamic Simulation forMatlab ‘USING SIMULINK’.

Katsuhiko Ogata. Ingeniería de Control Moderno. PrenticeHall.

Introducción al MatLab y Simulink

Centro de Estudios EnergéticosDepartamento de Ingeniería Mecánica

Dirección de Investigación y PostgradoUNEXPO Vicerrectorado de Puerto Ordaz

• Evaluación.

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

Introducción al MatLab y Simulink

Introducción.

Centro de Estudios EnergéticosDepartamento de Ingeniería Mecánica

Dirección de Investigación y PostgradoUNEXPO Vicerrectorado de Puerto Ordaz

Contenidos:• Introducción al Curso.• Fundamentos del MatLab.• Gráficas con MatLab.• Algebra Lineal.• Integración y Diferenciación Numérica.• Raíces de Ecuaciones no Lineales.• Resolución de Ecuaciones Diferenciales.• Simulink de MatLab.

Introducción al MatLab y Simulink

Centro de Estudios EnergéticosDepartamento de Ingeniería Mecánica

Dirección de Investigación y PostgradoUNEXPO Vicerrectorado de Puerto Ordaz

Fundamentos del MatLab.

Introducción al MatLab y Simulink

MATLAB es un entorno de programación orientado al cálculo numérico. Especialmente indicado para:

– Análisis numérico.– Cálculo matricial.– Procesamiento de señales.– Gráficos.

MATLAB = MATrix LABoratoryCreado en las universidades de New Mexico y Stanford (en Fortran) para teoría de matrices y álgebra lineal.En 1984 se crea Mathworks y se reescribe en C.

¿Qué es MatLab?.

Centro de Estudios EnergéticosDepartamento de Ingeniería Mecánica

Dirección de Investigación y PostgradoUNEXPO Vicerrectorado de Puerto Ordaz

Fundamentos del MatLab.

Introducción al MatLab y Simulink

Blocksets ToolboxesMATLABSIMULINK

ENTORNO GRÁFICO ENTORNO CLÁSICO

MatLab, Toolboxes, Simulink y Blocksets.

Centro de Estudios EnergéticosDepartamento de Ingeniería Mecánica

Dirección de Investigación y PostgradoUNEXPO Vicerrectorado de Puerto Ordaz

Fundamentos del MatLab.

Introducción al MatLab y Simulink

Inicializando MatLab.

Command Window

Command History

Launch Pad

Al hacer click en el icono ,se abre la siguiente ventana:

Centro de Estudios EnergéticosDepartamento de Ingeniería Mecánica

Dirección de Investigación y PostgradoUNEXPO Vicerrectorado de Puerto Ordaz

Fundamentos del MatLab.

Introducción al MatLab y Simulink

Entorno de Trabajo.

Command Window

Command History

Launch Pad

Centro de Estudios EnergéticosDepartamento de Ingeniería Mecánica

Dirección de Investigación y PostgradoUNEXPO Vicerrectorado de Puerto Ordaz

Fundamentos del MatLab.

Introducción al MatLab y Simulink

Entorno de Trabajo.Workspace

Current Dirtectory

Centro de Estudios EnergéticosDepartamento de Ingeniería Mecánica

Dirección de Investigación y PostgradoUNEXPO Vicerrectorado de Puerto Ordaz

Fundamentos del MatLab.

Introducción al MatLab y Simulink

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 ansMATLAB permite utilizar en cualquier momento variables:

>> eCinetica=10>> ePotencial=20>> eTotal=eCinetica+ePotencial

Centro de Estudios EnergéticosDepartamento de Ingeniería Mecánica

Dirección de Investigación y PostgradoUNEXPO Vicerrectorado de Puerto Ordaz

Fundamentos del MatLab.

Introducción al MatLab y Simulink

MatLab Funciona como una Calculadora.Ejemplo:

>> a=4/3 EnterEl 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

Centro de Estudios EnergéticosDepartamento de Ingeniería Mecánica

Dirección de Investigación y PostgradoUNEXPO Vicerrectorado de Puerto Ordaz

Fundamentos del MatLab.

Introducción al MatLab y Simulink

Características de las variables.• No es necesario definir previamente las variables.• Son sensibles a mayúsculas o minúsculas.• Máximo número de caracteres: 31 • Deben comenzar por letra, seguida de letra, número o guión de

subrayado. NO SE PUEDEN UTILIZAR SIGNOS DE PUNTUACIÓN EN LAS VARIABLES.

• La variables definidas por defectos son: ans respuesta por defecto. i,j representan el número imaginario puro. inf representa infinito. NaN representa a las indeterminaciones del tipo 0/0. pi 3,1415927 eps muestra el épsilon de la máquina (número más pequeño) realmax número real positivo más grande que es utilizable realmin número real positivo más pequeño que es utilizable

Centro de Estudios EnergéticosDepartamento de Ingeniería Mecánica

Dirección de Investigación y PostgradoUNEXPO Vicerrectorado de Puerto Ordaz

Fundamentos del MatLab.

Introducción al MatLab y Simulink

Visualización de las Variables.Desde Command Window: >>whos

Name Size Bytes Class

eCinetica 1x1 8 double arrayePotencial 1x1 8 double arrayeTotal 1x1 8 double array

Grand total is 3 elements using 24 bytes

Desde Workspace:

Centro de Estudios EnergéticosDepartamento de Ingeniería Mecánica

Dirección de Investigación y PostgradoUNEXPO Vicerrectorado de Puerto Ordaz

Fundamentos del MatLab.

Introducción al MatLab y Simulink

Eliminar Variables.>>clear nombreVariable Elimina la variable nombreVariable>>clear all (ó clear) Elimina todas las variables Ejemplo:

clear a Elimina la variable aclear Elimina todas las variables

Comentarios y Signos de Puntuación.El punto y coma ; impide mostrar los resultados parciales. También permite combinar varias instrucciones en la misma línea:>> alfa=2;beta=1;gamma=alfa+beta

La como separa pero muestra los resultados en pantalla. Se pueden añadir comentarios con % ante del comentario

Centro de Estudios EnergéticosDepartamento de Ingeniería Mecánica

Dirección de Investigación y PostgradoUNEXPO Vicerrectorado de Puerto Ordaz

Fundamentos del MatLab.

Introducción al MatLab y Simulink

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.

Centro de Estudios EnergéticosDepartamento de Ingeniería Mecánica

Dirección de Investigación y PostgradoUNEXPO Vicerrectorado de Puerto Ordaz

Fundamentos del MatLab.

Introducción al MatLab y Simulink

Comando Help.A la ayuda de MatLab mediante una interface gráfica 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

Centro de Estudios EnergéticosDepartamento de Ingeniería Mecánica

Dirección de Investigación y PostgradoUNEXPO Vicerrectorado de Puerto Ordaz

Fundamentos del MatLab.

Introducción al MatLab y Simulink

Comando Help.>>Help Tabla de contenidos de los documentos de ayudaHELP topics:Documents\MATLAB - (No table of contents file)matlab\general - General purpose commands.matlab\ops - Operators and special characters.matlab\lang - Programming language constructs.matlab\elmat - Elementary matrices and matrix manipulation.matlab\randfun - Random matrices and random streams.matlab\elfun - Elementary math functions.matlab\specfun - Specialized math functions.matlab\matfun - Matrix functions - numerical linear algebra.matlab\datafun - Data analysis and Fourier transforms.matlab\polyfun - Interpolation and polynomials.matlab\funfun - Function functions and ODE solvers....kernel\embedded - xPC Target Embedded Option

Centro de Estudios EnergéticosDepartamento de Ingeniería Mecánica

Dirección de Investigación y PostgradoUNEXPO Vicerrectorado de Puerto Ordaz

Fundamentos del MatLab.

Introducción al MatLab y Simulink

Comando Help.Ayuda de un tópico en particular:>>Help elfunElementary 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.

acosd - Inverse cosine, result in degrees.acosh - Inverse hyperbolic cosine.tan - Tangent.tand - Tangent of argument in degrees.tanh - Hyperbolic tangent.atan - Inverse tangent.atand - Inverse tangent, result in degrees.atan2 - Four quadrant inverse tangent.atanh - Inverse hyperbolic tangent.sec - Secant.secd - Secant of argument in degrees.sech - Hyperbolic secant.asec - Inverse secant.asecd - Inverse secant, result in degrees.

Centro de Estudios EnergéticosDepartamento de Ingeniería Mecánica

Dirección de Investigación y PostgradoUNEXPO Vicerrectorado de Puerto Ordaz

Fundamentos del MatLab.

Introducción al MatLab y Simulink

Comando Help.asech - Inverse hyperbolic secant.csc - Cosecant.cscd - Cosecant of argument in degrees.csch - Hyperbolic cosecant.acsc - Inverse cosecant.acscd - Inverse cosecant, result in degrees.acsch - Inverse hyperbolic cosecant.cot - Cotangent.cotd - Cotangent of argument in degrees.coth - Hyperbolic cotangent.acot - Inverse cotangent.acotd - Inverse cotangent, result in degrees.acoth - Inverse hyperbolic cotangent.hypot - Square root of sum of squares.

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

Nota: Los ángulos en las funciones trigonométrica deben estar en radianes. Para usar el argumento en degradante (grados decimales) se agrega la letra d a la función. Ejemplo: sin(x) es sind(x).

Centro de Estudios EnergéticosDepartamento de Ingeniería Mecánica

Dirección de Investigación y PostgradoUNEXPO Vicerrectorado de Puerto Ordaz

Fundamentos del MatLab.

Introducción al MatLab y Simulink

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. …

Centro de Estudios EnergéticosDepartamento de Ingeniería Mecánica

Dirección de Investigación y PostgradoUNEXPO Vicerrectorado de Puerto Ordaz

Fundamentos del MatLab.

Introducción al MatLab y Simulink

Comando Exit, Quit, Version, clock, date.>>quitTermina la sección de matlab (usado en interface unix o linux)>>exitTambién cierra el matllab.

>>versionRetorna la versión de matlab que esta usando.

>>clockRetorna un vector con los datos:

[año mes día hora minutos seg].>>dateRetorna la fecha en el formato: día-mes-año.

Centro de Estudios EnergéticosDepartamento de Ingeniería Mecánica

Dirección de Investigación y PostgradoUNEXPO Vicerrectorado de Puerto Ordaz

Fundamentos del MatLab.

Introducción al MatLab y Simulink

Formatos de los Números.Para definir el formato numérico de la ventana Command Windos o el editor de variable se ejecuta: File>Preferences…>Command Windos> Numeric format

Centro de Estudios EnergéticosDepartamento de Ingeniería Mecánica

Dirección de Investigación y PostgradoUNEXPO Vicerrectorado de Puerto Ordaz

Fundamentos del MatLab.

Introducción al MatLab y Simulink

Formatos de los Números.short formato de coma fija con 4 decimales (por defecto)long formato de coma fija con 15 decimalesrat Aproxima por un número racionalshort e Notación científica 4 decimaleslong e Notación científica 15 decimalesshort g La mejor entre fija y exponencial de 4 decimaleslong g La mejor entre fija y exponencial de 15 decimalesHex 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 través de Preferences…, se puede hacer por comando:>> format long; %Se define el formato long

Centro de Estudios EnergéticosDepartamento de Ingeniería Mecánica

Dirección de Investigación y PostgradoUNEXPO Vicerrectorado de Puerto Ordaz

Fundamentos del MatLab.

Introducción al MatLab y Simulink

Vectores.

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)

X= 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7

Centro de Estudios EnergéticosDepartamento de Ingeniería Mecánica

Dirección de Investigación y PostgradoUNEXPO Vicerrectorado de Puerto Ordaz

Fundamentos del MatLab.

Introducción al MatLab y Simulink

Manipulación de Vectores.X = 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7

X= 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7

X(3:5)

X(8)

Para calcular la longitud del vector: length(X)= max(size(X)Para calcular el tamaño de la matriz: size(X)Se pueden construir nuevos vectores a partir de los anteriores:Y = X(3:end) Desde columna 3 al finalPar = X(2:2:end) Columnas pares desde la 2 al finalImpar = X(1:2:end) Columnas impares desde 1 al finalTranspuesta = X’ Vector transpuesto

Centro de Estudios EnergéticosDepartamento de Ingeniería Mecánica

Dirección de Investigación y PostgradoUNEXPO Vicerrectorado de Puerto Ordaz

Fundamentos del MatLab.

Introducción al MatLab y Simulink

Vector Fila y Vector Columna.X = 0 1 2 3 4 5 6 7

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

1234567

El vector transpuesto de un vector fila es un vector columna: >> X=X’

El vector columna también 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: MultiplicaciónA*B: Multiplicación vectorial A.*B: Multiplicación de cada elementoA./B: División de cada elemento sum(A): Suma elementos (a0+a1+a2+...+an )prod(A): Multiplica todos los elementos del vector (a0*a1*a2*….*an )

Centro de Estudios EnergéticosDepartamento de Ingeniería Mecánica

Dirección de Investigación y PostgradoUNEXPO Vicerrectorado de Puerto Ordaz

Fundamentos del MatLab.

Introducción al MatLab y Simulink

Matriz

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];ó>>A=[1 2 34 5 66 7 8];

A1 2 34 5 67 8 9

A(1,:)

A(:,1)

A(2,3)

La transpuesta de la matriz se puede calcular por:>> B=A’;Significa que:B(columna, fila)

Centro de Estudios EnergéticosDepartamento de Ingeniería Mecánica

Dirección de Investigación y PostgradoUNEXPO Vicerrectorado de Puerto Ordaz

Fundamentos del MatLab.

Introducción al MatLab y Simulink

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,yen dos matrices X,Y que almacena las coordenadas x,y en el plano resultado del producto cartesiano de x,y.

Centro de Estudios EnergéticosDepartamento de Ingeniería Mecánica

Dirección de Investigación y PostgradoUNEXPO Vicerrectorado de Puerto Ordaz

Fundamentos del MatLab.

Introducción al MatLab y Simulink

Solicitud de Información de Matrices>> size(A) Muestra un vector que almacena [fila columna]>> length(A) Equivalente a max(size(A))>> ndims Dimensión de la matriz (2 para 2D y 2 para 3D)>> numel(A) Número de elementos de la matriz A>> max(A) Vector fila con los máximos valores de cada columna>> min(A) Vector fila con los mínimo valores de cada columnaEjemplo: >> length(A)

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

2 3 ans =4 5 6

Centro de Estudios EnergéticosDepartamento de Ingeniería Mecánica

Dirección de Investigación y PostgradoUNEXPO Vicerrectorado de Puerto Ordaz

Fundamentos del MatLab.

Introducción al MatLab y Simulink

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 División (inv(A)*B)>> A/B División (A*inv(B))>> rank(B) Rango>> trace(A) Traza (suma de las diagonales)>> [AutoVector,AutoValor]= eig(A) Auto valores>> A=[A; V] Añade (el vector V) una fila a A>> A=[A V’] Añade (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.

Centro de Estudios EnergéticosDepartamento de Ingeniería Mecánica

Dirección de Investigación y PostgradoUNEXPO Vicerrectorado de Puerto Ordaz

Fundamentos del MatLab.

Introducción al MatLab y Simulink

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 extensión!) desde el Espacio de Trabajo (commanwindows).

• Es un archivo ASCII pero MATLAB dispone de un editor propio, que facilita la edición 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.

Centro de Estudios EnergéticosDepartamento de Ingeniería Mecánica

Dirección de Investigación y PostgradoUNEXPO Vicerrectorado de Puerto Ordaz

Fundamentos del MatLab.

Introducción al MatLab y Simulink

Operaciones Lógicas de Relación

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)

Centro de Estudios EnergéticosDepartamento de Ingeniería Mecánica

Dirección de Investigación y PostgradoUNEXPO Vicerrectorado de Puerto Ordaz

Fundamentos del MatLab.

Introducción al MatLab y Simulink

Comandos de Programación en MatLab

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

Control de flujo

Las funciones de control de flujo son las siguientes:

Centro de Estudios EnergéticosDepartamento de Ingeniería Mecánica

Dirección de Investigación y PostgradoUNEXPO Vicerrectorado de Puerto Ordaz

Fundamentos del MatLab.

Introducción al MatLab y Simulink

Comandos de Programación en MatLabIf-elseif-else-end

Permiten ejecutar distintas instrucciones en función de una serie de relaciones:

if a<=0operación_1;

elseif (b>0)&(a>0)operación_2;

.elseoperación_3;

end

Centro de Estudios EnergéticosDepartamento de Ingeniería Mecánica

Dirección de Investigación y PostgradoUNEXPO Vicerrectorado de Puerto Ordaz

Fundamentos del MatLab.

Introducción al MatLab y Simulink

Comandos de Programación en MatLabfor-endRepiten un grupo de instrucciones un número fijo de veces:

for n=1:4Operaciones;

end

Nota: No utilizar i,j como índices

Centro de Estudios EnergéticosDepartamento de Ingeniería Mecánica

Dirección de Investigación y PostgradoUNEXPO Vicerrectorado de Puerto Ordaz

Fundamentos del MatLab.

Introducción al MatLab y Simulink

Comandos de Programación en MatLabwhile-endRepiten un grupo de instrucciones mientras se cumpla la condición.

a=0while a<10

a=a+1end

Centro de Estudios EnergéticosDepartamento de Ingeniería Mecánica

Dirección de Investigación y PostgradoUNEXPO Vicerrectorado de Puerto Ordaz

Fundamentos del MatLab.

Introducción al MatLab y Simulink

Comandos de Programación en MatLabShitch-case-otherwise-endEjecuta una expresión que tiene varios casos posibles. Excelente para crear menú o selección de casos.

swich expresióncase expresion_caso,

algumentos;case {expresion1,expresion2,...},

algumentos;...otherwise,

algumentos;end

Centro de Estudios EnergéticosDepartamento de Ingeniería Mecánica

Dirección de Investigación y PostgradoUNEXPO Vicerrectorado de Puerto Ordaz

Fundamentos del MatLab.

Introducción al MatLab y Simulink

Comandos de Programación en MatLabbreakTermina la ejecución de un ciclo while.continuePara el control a la próxima iteración del ciclo For o While.

Centro de Estudios EnergéticosDepartamento de Ingeniería Mecánica

Dirección de Investigación y PostgradoUNEXPO Vicerrectorado de Puerto Ordaz

Fundamentos del MatLab.

Introducción al MatLab y Simulink

Creación de Funciones por el UsuarioSe crean similarmente a los script y se guardan en un archivo *.MSe comunican con MATLAB a través de las variables que se pasan a la función.

Su estructura es:function[VarSalida]= NombrFun(VarEntrada)

Se edita la función con el editor de archivos *.M y se graba. El nombre de la función, NombrFun, y el nombre del archivo deben coincidir. Es decir, el archivo debe llamarse NombrFun.m

Centro de Estudios EnergéticosDepartamento de Ingeniería Mecánica

Dirección de Investigación y PostgradoUNEXPO Vicerrectorado de Puerto Ordaz

Fundamentos del MatLab.

Introducción al MatLab y Simulink

Creación 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 mayúsculas / minúsculas, en

Windows.• La primera línea: DECLARACIÓN DE FUNCIÓN (debe contener la

palabra function).• Las siguientes líneas son comentarios y sirven para explicar el

funcionamiento cuando se solicita a través de help NombrFun.• Las variables definidas dentro de una función 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.

Centro de Estudios EnergéticosDepartamento de Ingeniería Mecánica

Dirección de Investigación y PostgradoUNEXPO Vicerrectorado de Puerto Ordaz

Fundamentos del MatLab.

Introducción al MatLab y Simulink

Creación de Funciones por el UsuarioEjemplo: Calculo de volumen de un cubo (V=L^3).La función se puede escribir como:function v=vCubo(x)%Calcula el volumen de un cubo%Donde v es el volumen del cubo%y x el ladov=x.*x.*x.*x;La función se debe guardar con el nombre de vCubo.m y para llamarla se procede como:>> x=1:5>> V=vCubo(x)

Centro de Estudios EnergéticosDepartamento de Ingeniería Mecánica

Dirección de Investigación y PostgradoUNEXPO Vicerrectorado de Puerto Ordaz

Fundamentos del MatLab.

Introducción al MatLab y Simulink

Creación de Funciones por el UsuarioEl resultado de la operación es:>>v =

1 16 81 256 625

Si se ejecuta:>> help vCubo

Se mostrará en la siguiente línea:Calcula el volumen de un cuboDonde v es el volumen del cuboy x el lado

El comando type, muestra el contenido del archivo.Ejemplo: Si se ejecuta:>>type vCubo.mó>>type vCuboSe mustrará:function v=vCubo(x)%Calcula el volumen de un cubo%Donde v es el volumen del cubo%y x el ladov=x.*x.*x.*x;

Centro de Estudios EnergéticosDepartamento de Ingeniería Mecánica

Dirección de Investigación y PostgradoUNEXPO Vicerrectorado de Puerto Ordaz

Fundamentos del MatLab.

Introducción al MatLab y Simulink

Creación de Funciones por el UsuarioEl comando return produce un retorno o salida de una función. Normalmente éste comando se usa para forzar una salida fácil de la función.Ejemplo:

function d = det(A)if isempty(A)

d = 1;return

else...end

Centro de Estudios EnergéticosDepartamento de Ingeniería Mecánica

Dirección de Investigación y PostgradoUNEXPO Vicerrectorado de Puerto Ordaz

Fundamentos del MatLab.

Introducción al MatLab y Simulink

Como Dividir un Comando Largo en dos LíneasCuando un la línea de instrucción 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));

Centro de Estudios EnergéticosDepartamento de Ingeniería Mecánica

Dirección de Investigación y PostgradoUNEXPO Vicerrectorado de Puerto Ordaz

Fundamentos del MatLab.

Introducción al MatLab y Simulink

Archivos de Entrada y SalidasEn 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 operación, y si ésta variable toma el valor de -1, significa que no pudo abrir el archivo. nombreArchivo es una cadena alfanumérica que almacena el nombre y extensión del archivo y permisos es una cadena que especifica el tipo de archivo.

Centro de Estudios EnergéticosDepartamento de Ingeniería Mecánica

Dirección de Investigación y PostgradoUNEXPO Vicerrectorado de Puerto Ordaz

Fundamentos del MatLab.

Introducción al MatLab y Simulink

Archivos de Entrada y SalidasLos 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 automáticamente'A' abre un archivo para anexar datos sin limpiardo automáticamente

Centro de Estudios EnergéticosDepartamento de Ingeniería Mecánica

Dirección de Investigación y PostgradoUNEXPO Vicerrectorado de Puerto Ordaz

Fundamentos del MatLab.

Introducción al MatLab y Simulink

Archivos de Entrada y Salidasfclose: 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 operación, y si ésta variable toma el valor de 0 (o también 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,… según el número de archivos.

Centro de Estudios EnergéticosDepartamento de Ingeniería Mecánica

Dirección de Investigación y PostgradoUNEXPO Vicerrectorado de Puerto Ordaz

Fundamentos del MatLab.

Introducción al MatLab y Simulink

Funciones de Lectura y Escritura de Archivofprintf: 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 operación, y si ésta variable es -1 significa que no se pudo realizar la operación. 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 presentación de la salida y A las variables a escribir en el archivo (o pantalla)El formato (format) se escribe siguiendo la estructura:

% 12.5eAncho del campo

Indica el inicio del formato

Precisión

Especifica el formato de las variables

Centro de Estudios EnergéticosDepartamento de Ingeniería Mecánica

Dirección de Investigación y PostgradoUNEXPO Vicerrectorado de Puerto Ordaz

Fundamentos del MatLab.

Introducción al MatLab y Simulink

Archivos de Entrada y SalidasLos especificadores son los siguientes:

Especificadores Descripción%c Carácter simple%d Notación decimal %e Notación científica (Usa el carácter e para especificar el x10)%E Notación científica (Usa el carácter E para especificar el x10)%f Notación de punto fijo (número real)%g El más compacto entre of %e y %f.%G Mismo que %g, pero usa E para la notación científica%i Notación decimal (signed)%o Notación octal %s Cadena de carácter%u Notación decimar%x Notación hexadecimal (una los caracteres a–f)%X Notación hexadecimal (una los caracteres A–F)

Centro de Estudios EnergéticosDepartamento de Ingeniería Mecánica

Dirección de Investigación y PostgradoUNEXPO Vicerrectorado de Puerto Ordaz

Fundamentos del MatLab.

Introducción al MatLab y Simulink

Archivos de Entrada y SalidasHay otros especificadores especiales:

Carácter Descripción\b Retroceso (Backspace)\f Avance de\n Pasa a la otra línea (salto de línea)\r Retorno del carro\t Tabulador horizontal\\ Barra invertida

\'' or '‘ (dos comillas simples) Comilla simple%% Carácter porcentaje (%)

Centro de Estudios EnergéticosDepartamento de Ingeniería Mecánica

Dirección de Investigación y PostgradoUNEXPO Vicerrectorado de Puerto Ordaz

Fundamentos del MatLab.

Introducción al MatLab y Simulink

Archivos de Entrada y SalidasEjemplo 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 1.000000000.10 1.10517092...1.00 2.71828183

Centro de Estudios EnergéticosDepartamento de Ingeniería Mecánica

Dirección de Investigación y PostgradoUNEXPO Vicerrectorado de Puerto Ordaz

Fundamentos del MatLab.

Introducción al MatLab y Simulink

Funciones de Lectura y Escritura de Archivofscanf: 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 leídos 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 número que indica si la lectura del archivo se ha realizado correctamente (-1 indica que el archivo no se ha leído correctamente). Size puede tomar los siguientes valores:

n lee n cantidad de números, carácter o cadenasinf Leer hasta el final del archivo[m,n] Leer una la cantidad de mxn número, carácter o cadena. La lectura es matricial

donde m es el número de columnas y n el número de filas. m no puede ser inf.

Centro de Estudios EnergéticosDepartamento de Ingeniería Mecánica

Dirección de Investigación y PostgradoUNEXPO Vicerrectorado de Puerto Ordaz

Fundamentos del MatLab.

Introducción al MatLab y Simulink

Funciones de Lectura y Escritura de ArchivoEjemplo:Dado el archivo exp.txt con los siguientes datos:

0.00 1.000000000.10 1.10517092...1.00 2.71828183

fid = fopen('exp.txt', 'r');a = fscanf(fid, '%g %g', [2 inf]); % Hay dos filas columnas.a = a';fclose(fid)

La estructura del programa para leer el archivo debe ser la siguiente:

Nota: Para lectura de archivos binarios se usa la función fread y para escribir archivos binarios se usa fwrite.