1-Introducción Al MatLab

* The preview only display some random pages of manuals. You can download full content via the form below.

The preview is being generated... Please wait a moment!
  • Submitted by: José Rosario
  • File size: 813.2 KB
  • File type: application/pdf
  • Words: 4,950
  • Pages: 56
Report / DMCA this file Add to bookmark

Description

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

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

Introducción al MatLab y Simulink

Centro de Estudios Energéticos Departamento de Ingeniería Mecánica Dirección de Investigación y Postgrado UNEXPO 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éticos Departamento de Ingeniería Mecánica Dirección de Investigación y Postgrado UNEXPO 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éticos Departamento de Ingeniería Mecánica Dirección de Investigación y Postgrado UNEXPO Vicerrectorado de Puerto Ordaz

Objetivos de la Asignatura:

Introducción.

• Conocer las potencialidades de MatLab en resolución de problemas de ingeniería. • Resolver problema del cálculo integral y diferencial usando MatLab. • Resolver ecuaciones diferenciales ordinarias y parciales con MatLab. • Resolver ecuaciones diferenciales usando Simulink de MatLab. Introducción al MatLab y Simulink

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.

• 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ón Gráfica con MatLab. Prentice Hall.  The Math Works inc. Simulink - Dynamic Simulation for Matlab ‘USING SIMULINK’.  Katsuhiko Ogata. Ingeniería de Control Moderno. Prentice Hall.

Introducción al MatLab y Simulink

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.

• Evaluación. Examen 1 (50 %): MatLab. Examen 2 (50 %): Simulink.

Introducción al MatLab y Simulink

Centro de Estudios Energéticos Departamento de Ingeniería Mecánica Dirección de Investigación y Postgrado UNEXPO 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éticos Departamento de Ingeniería Mecánica Dirección de Investigación y Postgrado UNEXPO Vicerrectorado de Puerto Ordaz

Fundamentos del MatLab.

¿Qué es MatLab?. 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 LABoratory Creado 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. Introducción al MatLab y Simulink

Centro de Estudios Energéticos Departamento de Ingeniería Mecánica Dirección de Investigación y Postgrado UNEXPO Vicerrectorado de Puerto Ordaz

Fundamentos del MatLab.

MatLab, Toolboxes, Simulink y Blocksets.

Blocksets

SIMULINK

ENTORNO GRÁFICO

MATLAB

Toolboxes

ENTORNO CLÁSICO

Introducción al MatLab y Simulink

Centro de Estudios Energéticos Departamento de Ingeniería Mecánica Dirección de Investigación 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 Introducción al MatLab y Simulink

Centro de Estudios Energéticos Departamento de Ingeniería Mecánica Dirección de Investigación y Postgrado UNEXPO Vicerrectorado de Puerto Ordaz

Fundamentos del MatLab.

Entorno de Trabajo.

Command Window

Launch Pad

Command History Introducción al MatLab y Simulink

Centro de Estudios Energéticos Departamento de Ingeniería Mecánica Dirección de Investigación y Postgrado UNEXPO Vicerrectorado de Puerto Ordaz

Fundamentos del MatLab.

Entorno de Trabajo.

Workspace

Current Dirtectory

Introducción al MatLab y Simulink

Centro de Estudios Energéticos Departamento de Ingeniería Mecánica Dirección de Investigación 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 Introducción al MatLab y Simulink

Centro de Estudios Energéticos Departamento de Ingeniería Mecánica Dirección de Investigación 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 Introducción al MatLab y Simulink

Centro de Estudios Energéticos Departamento de Ingeniería Mecánica Dirección de Investigación y Postgrado UNEXPO Vicerrectorado de Puerto Ordaz

Fundamentos del MatLab.

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 Introducción al MatLab y Simulink

Centro de Estudios Energéticos Departamento de Ingeniería Mecánica Dirección de Investigación y Postgrado UNEXPO Vicerrectorado de Puerto Ordaz

Fundamentos del MatLab.

Visualización 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:

Introducción al MatLab y Simulink

Centro de Estudios Energéticos Departamento de Ingeniería Mecánica Dirección de Investigación 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 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 Introducción al MatLab y Simulink

Centro de Estudios Energéticos Departamento de Ingeniería Mecánica Dirección de Investigación 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.

Introducción al MatLab y Simulink

Centro de Estudios Energéticos Departamento de Ingeniería Mecánica Dirección de Investigación y Postgrado UNEXPO Vicerrectorado de Puerto Ordaz

Fundamentos del MatLab.

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 Introducción al MatLab y Simulink

Centro de Estudios Energéticos Departamento de Ingeniería Mecánica Dirección de Investigación 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 Introducción al MatLab y Simulink

Centro de Estudios Energéticos Departamento de Ingeniería Mecánica Dirección de Investigación y Postgrado UNEXPO Vicerrectorado de Puerto Ordaz

Fundamentos del MatLab.

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

Introducción al MatLab y Simulink

Centro de Estudios Energéticos Departamento de Ingeniería Mecánica Dirección de Investigación 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 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). Introducción al MatLab y Simulink

Centro de Estudios Energéticos Departamento de Ingeniería Mecánica Dirección de Investigación 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. … Introducción al MatLab y Simulink

Centro de Estudios Energéticos Departamento de Ingeniería Mecánica Dirección de Investigación y Postgrado UNEXPO Vicerrectorado de Puerto Ordaz

Fundamentos del MatLab.

Comando Exit, Quit, Version, clock, date. >>quit Termina la sección de matlab (usado en interface unix o linux) >>exit También cierra el matllab. >>version Retorna la versión de matlab que esta usando. >>clock Retorna un vector con los datos: [año mes día hora minutos seg]. >>date Retorna la fecha en el formato: día-mes-año. Introducción al MatLab y Simulink

Centro de Estudios Energéticos Departamento de Ingeniería Mecánica Dirección de Investigación y Postgrado UNEXPO Vicerrectorado de Puerto Ordaz

Fundamentos del MatLab.

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

Introducción al MatLab y Simulink

Centro de Estudios Energéticos Departamento de Ingeniería Mecánica Dirección de Investigación y Postgrado UNEXPO Vicerrectorado de Puerto Ordaz

Fundamentos del MatLab.

Formatos de los Números. 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 número racional Notación científica 4 decimales Notación científica 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 través de Preferences…, se puede hacer por comando: >> format long; %Se define el formato long Introducción al MatLab y Simulink

Centro de Estudios Energéticos Departamento de Ingeniería Mecánica Dirección de Investigación 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) Introducción al MatLab y Simulink

Centro de Estudios Energéticos Departamento de Ingeniería Mecánica Dirección de Investigación y Postgrado UNEXPO Vicerrectorado de Puerto Ordaz

Fundamentos del MatLab.

Manipulación 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 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 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 Introducción al MatLab y Simulink

Centro de Estudios Energéticos Departamento de Ingeniería Mecánica Dirección de Investigación y Postgrado UNEXPO Vicerrectorado de Puerto Ordaz

Fundamentos del MatLab.

Vector Fila y Vector Columna. X= 0

1

2

3

4

5

6

7

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 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ón A*B: Multiplicación vectorial A.*B: Multiplicación de cada elemento A./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 ) Introducción al MatLab y Simulink

Centro de Estudios Energéticos Departamento de Ingeniería Mecánica Dirección de Investigación 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) Introducción al MatLab y Simulink

Centro de Estudios Energéticos Departamento de Ingeniería Mecánica Dirección de Investigación 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. Introducción al MatLab y Simulink

Centro de Estudios Energéticos Departamento de Ingeniería Mecánica Dirección de Investigación y Postgrado UNEXPO Vicerrectorado de Puerto Ordaz

Fundamentos del MatLab.

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 columna

Ejemplo:

>> length(A)

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

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

Introducción al MatLab y Simulink

5

6

Centro de Estudios Energéticos Departamento de Ingeniería Mecánica Dirección de Investigación 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 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. Introducción al MatLab y Simulink

Centro de Estudios Energéticos Departamento de Ingeniería Mecánica Dirección de Investigación 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 extensión!) desde el Espacio de Trabajo (comman windows). • 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. Introducción al MatLab y Simulink

Centro de Estudios Energéticos Departamento de Ingeniería Mecánica Dirección de Investigación y Postgrado UNEXPO Vicerrectorado de Puerto Ordaz

Fundamentos del MatLab.

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)

Introducción al MatLab y Simulink

Centro de Estudios Energéticos Departamento de Ingeniería Mecánica Dirección de Investigación y Postgrado UNEXPO Vicerrectorado de Puerto Ordaz

Fundamentos del MatLab.

Comandos de Programación 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

Introducción al MatLab y Simulink

Centro de Estudios Energéticos Departamento de Ingeniería Mecánica Dirección de Investigación y Postgrado UNEXPO Vicerrectorado de Puerto Ordaz

Fundamentos del MatLab.

Comandos de Programación en MatLab If-elseif-else-end Permiten ejecutar distintas instrucciones en función de una serie de relaciones: if a<=0 operación_1; elseif (b>0)&(a>0) operación_2; . else operación_3; end Introducción al MatLab y Simulink

Centro de Estudios Energéticos Departamento de Ingeniería Mecánica Dirección de Investigación y Postgrado UNEXPO Vicerrectorado de Puerto Ordaz

Fundamentos del MatLab.

Comandos de Programación en MatLab for-end Repiten un grupo de instrucciones un número fijo de veces: for n=1:4 Operaciones; end

Nota: No utilizar i,j como índices

Introducción al MatLab y Simulink

Centro de Estudios Energéticos Departamento de Ingeniería Mecánica Dirección de Investigación y Postgrado UNEXPO Vicerrectorado de Puerto Ordaz

Fundamentos del MatLab.

Comandos de Programación en MatLab while-end Repiten un grupo de instrucciones mientras se cumpla la condición. a=0 while a<10 a=a+1 end

Introducción al MatLab y Simulink

Centro de Estudios Energéticos Departamento de Ingeniería Mecánica Dirección de Investigación y Postgrado UNEXPO Vicerrectorado de Puerto Ordaz

Fundamentos del MatLab.

Comandos de Programación en MatLab Shitch-case-otherwise-end Ejecuta una expresión que tiene varios casos posibles. Excelente para crear menú o selección de casos. swich expresión case expresion_caso, algumentos; case {expresion1,expresion2,...}, algumentos; ... otherwise, algumentos; end Introducción al MatLab y Simulink

Centro de Estudios Energéticos Departamento de Ingeniería Mecánica Dirección de Investigación y Postgrado UNEXPO Vicerrectorado de Puerto Ordaz

Fundamentos del MatLab.

Comandos de Programación en MatLab break Termina la ejecución de un ciclo while. continue Para el control a la próxima iteración del ciclo For o While.

Introducción al MatLab y Simulink

Centro de Estudios Energéticos Departamento de Ingeniería Mecánica Dirección de Investigación y Postgrado UNEXPO Vicerrectorado de Puerto Ordaz

Fundamentos del MatLab.

Creación de Funciones por el Usuario Se crean similarmente a los script y se guardan en un archivo *.M Se 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 Introducción al MatLab y Simulink

Centro de Estudios Energéticos Departamento de Ingeniería Mecánica Dirección de Investigación y Postgrado UNEXPO Vicerrectorado de Puerto Ordaz

Fundamentos del MatLab.

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. Introducción al MatLab y Simulink

Centro de Estudios Energéticos Departamento de Ingeniería Mecánica Dirección de Investigación y Postgrado UNEXPO Vicerrectorado de Puerto Ordaz

Fundamentos del MatLab.

Creación de Funciones por el Usuario Ejemplo: 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 lado v=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) Introducción al MatLab y Simulink

Centro de Estudios Energéticos Departamento de Ingeniería Mecánica Dirección de Investigación y Postgrado UNEXPO Vicerrectorado de Puerto Ordaz

Fundamentos del MatLab.

Creación de Funciones por el Usuario El resultado de la operación 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 línea: 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;

Introducción al MatLab y Simulink

Centro de Estudios Energéticos Departamento de Ingeniería Mecánica Dirección de Investigación y Postgrado UNEXPO Vicerrectorado de Puerto Ordaz

Fundamentos del MatLab.

Creación de Funciones por el Usuario El 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 Introducción al MatLab y Simulink

Centro de Estudios Energéticos Departamento de Ingeniería Mecánica Dirección de Investigación y Postgrado UNEXPO Vicerrectorado de Puerto Ordaz

Fundamentos del MatLab.

Como Dividir un Comando Largo en dos Líneas Cuando 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)); Introducción al MatLab y Simulink

Centro de Estudios Energéticos Departamento de Ingeniería Mecánica Dirección de Investigación 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 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. Introducción al MatLab y Simulink

Centro de Estudios Energéticos Departamento de Ingeniería Mecánica Dirección de Investigación 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 automáticamente 'A' abre un archivo para anexar datos sin limpiardo automáticamente Introducción al MatLab y Simulink

Centro de Estudios Energéticos Departamento de Ingeniería Mecánica Dirección de Investigación 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 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.

Introducción al MatLab y Simulink

Centro de Estudios Energéticos Departamento de Ingeniería Mecánica Dirección de Investigación 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 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: Indica el Especifica el formato de % 12.5e inicio del las variables formato Ancho del campo

Precisión

Introducción al MatLab y Simulink

Centro de Estudios Energéticos Departamento de Ingeniería Mecánica Dirección de Investigación 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

Descripción Carácter simple Notación decimal Notación científica (Usa el carácter e para especificar el x10) Notación científica (Usa el carácter E para especificar el x10)

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

Notación de punto fijo (número real) El más compacto entre of %e y %f. Mismo que %g, pero usa E para la notación científica Notación decimal (signed) Notación octal Cadena de carácter Notación decimar Notación hexadecimal (una los caracteres a–f)

%X

Notación hexadecimal (una los caracteres A–F) Introducción al MatLab y Simulink

Centro de Estudios Energéticos Departamento de Ingeniería Mecánica Dirección de Investigación y Postgrado UNEXPO Vicerrectorado de Puerto Ordaz

Fundamentos del MatLab.

Archivos de Entrada y Salidas Hay 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 (%)

Introducción al MatLab y Simulink

Centro de Estudios Energéticos Departamento de Ingeniería Mecánica Dirección de Investigación 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

Introducción al MatLab y Simulink

Centro de Estudios Energéticos Departamento de Ingeniería Mecánica Dirección de Investigación 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 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 inf [m,n]

lee n cantidad de números, carácter o cadenas Leer hasta el final del archivo 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. Introducción al MatLab y Simulink

Centro de Estudios Energéticos Departamento de Ingeniería Mecánica Dirección de Investigación 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 función fread y para escribir archivos binarios se usa fwrite. Introducción al MatLab y Simulink