Vous êtes sur la page 1sur 43

Introducción a Matlab.

Parte I.

Ing. Eliana Ormeño M. M.Sc.


INTRODUCCIÓN
Ingeniería en Mantenimiento Eléctrico
Control y Automatización I

Manejo y operaciones con Biblioteca de funciones


vectores y matrices matemáticas

Visualización Gráfica
Ambiente de trabajo MATLAB
Interface Gráfica-usuario

El lenguaje “convencional”

Lenguaje

2
FAMILIA DE PRODUCTOS MATLAB
Extensiones del Matlab
•Compilador
•Biblioteca matemática C
Ingeniería en Mantenimiento Eléctrico

MATLAB Toolboxes
Control y Automatización I

•Sistemas de control
•Comunicaciones
SIMULINK •Financiero
•Identificación de sistemas en el
dominio de la frecuencia
•Lógica difusa
•Análisis espectral de orden alto
•Procesamiento de imágenes
•Modelos de control predictivo
Extensiones del Simulink •Redes neuronales
•Real-time Workshop •Optimización de sistemas
•Stateflow •Ecuaciones diferenciales parciales
•Diseño de control convecional
•Control robusto
Blocksets
•Procesamiento de señales
•DSP •Estadísticas
•Diseño de control no lineal •Matemática simbólica
•Comunicaciones •Identificación de sistemas
•Sistemas de potencia •Base de datos
•Punto-fijo

3
¿Qué es MatLab?, MATrix LABoratory
Ingeniería en Mantenimiento Eléctrico
Control y Automatización I

▪ Permite realizar cálculos numéricos con vectores y


matrices.
▪ Puede también trabajar con números escalares,
tanto reales como complejos.
▪ Una de las capacidades más atractivas es la de
realizar una amplia variedad de gráficos en dos y
tres dimensiones.
▪ Tiene diversos toolboxs para diferentes áreas
predeterminados.

4
Control y Automatización I
Ingeniería en Mantenimiento Eléctrico

folder
Current

Windows
Command

History
Command
Workspace

5
Command Windows: Donde se ejecutan todas las
instrucciones y programas. Se escribe la instrucción
Ingeniería en Mantenimiento Eléctrico
Control y Automatización I

o el nombre del programa y se presiona “Enter”.


Command History: Muestra los últimos comandos
ejecutados en Command Windows. Se puede
recuperar el comando haciendo doble click.
Current folder: Indica el directorio donde se esta
trabajando
Workspace: Para ver las variables que se están
usando y sus dimensiones.
Help: Ayuda de MatLab (también se puede usar
desde comand windows).
Details: Da detalles de los archivos guardados en el
current folder. 6
La ayuda es lo más importante de MatLab,
Ingeniería en Mantenimiento Eléctrico

▪ help nombre_comando
Control y Automatización I

▪ help nombre_toolbox

Algunas importantes son


▪ help graph2d
▪ help graph3d
▪ help specgraph
▪ help save

Podemos ver ejemplos hechos con matlab


poniendo demo.
7
OCT16
FEB17
La ayuda es lo más importante de MatLab,
Ingeniería en Mantenimiento Eléctrico
Control y Automatización I

▪ Para saber más: http://www.mathworks.com/

▪ http://www.mathworks.com/access/helpdesk/
help/toolbox/compiler/compiler.shtml

▪ Esta última hace referencia a los compiladores


de c de matlab, los mex files

8
Ingeniería en Mantenimiento Eléctrico

Constante numéricas
Control y Automatización I

Números enteros: 0 35 -48

Números reales: 2.0 -35.2 48.45


Utilizando la letra E a continuación de un nº con punto
decimal [2.2250e-308 1.7e+308]

Números complejos: 2+3i 4*j i,j=(-1)½

9
Operaciones aritméticas elementales:
Ingeniería en Mantenimiento Eléctrico
Control y Automatización I

Primero exponenciaciones, luego divisiones y


multiplicaciones por último sumas y restas.
10
Variables
Ingeniería en Mantenimiento Eléctrico

▪ Es la etiqueta que identifica una porción de


Control y Automatización I

memoria.
▪ MatLab diferencia entre mayúsculas y
minúsculas.

11
Variables
Ingeniería en Mantenimiento Eléctrico

Para ver las variables definidas en un instante


Control y Automatización I

determinado se teclea:
>> who o bien >> whos
Para eliminar alguna variable se ejecuta
>> clear variable1 variable2

12
Formatos:
Ingeniería en Mantenimiento Eléctrico
Control y Automatización I

por defecto MatLab tiene formato corto pero se


puede elegir entre los siguientes formatos.

>> format long (14 cifras significativas)


>> format short (5 cifras significativas)
>> format short e (notación exponencial)
>> format long e (notación exponencial)
>> format rat (aproximación racional)

13
Variables predefinidas:
Ingeniería en Mantenimiento Eléctrico
Control y Automatización I

▪ i = (-1)½
▪ pi = π
▪ Inf= ∞
▪ NaN= cálculos indefinidos
▪ date = valor de la fecha actual
▪ rand = genera números aleatorios [0 1]
▪ etc.

14
Tipos de ficheros
Ingeniería en Mantenimiento Eléctrico
Control y Automatización I

▪ Ficheros .m
Son ficheros texto ASCII estándar; se guardan con
nombre.m

Hay 2 tipos: de comandos (script) y de funciones


(function).
Las funciones propias del MATLAB están en
ficheros.m en forma precompilada o en ficheros
fuente legibles. Éstas últimas pueden ser
copiadas y modificadas
15
▪ Ficheros .mat
Ingeniería en Mantenimiento Eléctrico

Ficheros de datos binarios, se crean con el


Control y Automatización I

comando save; se cargan con el comando load


sólo se pueden leer con el MATLAB pues tienen
un formato especial.

▪ Ficheros .mex
Programas en FORTRAN o en C que pueden ser
llamados desde MATLAB

16
Control y Automatización I
Ingeniería en Mantenimiento Eléctrico

Ficheros scripts o de comandos:

17
Ficheros scripts o de comandos:
Ingeniería en Mantenimiento Eléctrico

▪ Se crean mediante un editor de textos que


Control y Automatización I

produzca un formato ASCII;


▪ Se almacenan en el directorio de trabajo con un
nombre y extensión .m.
▪ Se les llama con el nombre (sin extensión) desde
la pantalla de comandos.
▪ Los comandos del script tienen acceso a todas las
variables del espacio de trabajo, y todas las
variables creadas en él pasan a formar parte del
espacio de trabajo.
▪ Se inicia con una o varias líneas de comentarios y
a continuación líneas de comandos.
18
OCT16
FEB17
Comandos de entrada y salida:
Ingeniería en Mantenimiento Eléctrico
Control y Automatización I

▪ input: permite introducir datos.


prompt = ' Teclee valor de a ';
x = input(prompt)
y = x*10

▪ disp: muestra un texto por pantalla.

a='Hola Mundo'
disp(a)

19
Funciones de MatLab:
Ingeniería en Mantenimiento Eléctrico
Control y Automatización I

nombre(argumento)

▪ sqrt (x) raíz cuadrada.


▪ abs(x) módulo de x.
▪ conj(z) conjugado de un complejo.
▪ real(z), parte real e imaginaria de z.
imag(z)
▪ exp(x) calcula 𝑒 𝑥 .
▪ log(x) (en base e).
▪ log10(x) (en base 10).
▪ a^x a elevada al exponente x.
20
Funciones de MatLab:
Ingeniería en Mantenimiento Eléctrico
Control y Automatización I

nombre(argumento)

▪ sin(x) asin(x)
▪ cos(x) acos(x)
▪ tan(x) atan(x)
▪ angle(z) da el ángulo de complejo z
▪ rem(x,y) resto de x/y
▪ round(x) redondea al entero mayor
▪ sign(x) da el signo de x
21
Ejercicio 1.
Ingeniería en Mantenimiento Eléctrico
Control y Automatización I

▪ Crear un archivo nombre.m (m-file)


Grabarlo con un nombre representativo.
Ej: control_p1.m

▪ En este archivo vamos a ejecutar y guardar


algunos de los comandos básicos.

22
Ejercicio 1.1 Calcular el valor de la expresión.
Ingeniería en Mantenimiento Eléctrico
Control y Automatización I

42.1768 + 234
J = 10
2 − 10247
Ejercicio 1.2 Calcular el valor de la expresión.

3sen(32º15' )
I= 3
42.1
23
Comandos de ayuda:
Ingeniería en Mantenimiento Eléctrico
Control y Automatización I

▪ help Busca ayuda para funciones en Command


Window
▪ lookfor Busca palabras en todas las entradas
de ayuda.
▪ what busca ficheros .m y .mat en el directorio
actual
▪ dir ficheros del directorio actual.
▪ type nombre_fichero Muestra el contenido
del fichero

24
Comandos de ayuda:
Ingeniería en Mantenimiento Eléctrico
Control y Automatización I

▪ delete nombre_fichero Borra el fichero


▪ cd cambia de directorio
▪ pwd indica el directorio actual
▪ which nombre_fichero india el directorio
donde esta
▪ ! Abre una ventana de MSDOS que se cierra
cuando volvemos a Matlab

25
▪ startup.m fichero de arranque al ejecutar
Ingeniería en Mantenimiento Eléctrico

matlab.
Control y Automatización I

▪ Para guardar en un fichero los comandos que


se ejecutan en una sesión se pone

>> diary nombre_fichero


...
>> diary off

▪ Para ejecutar el fichero guardado ejecutamos:


type nombre_fichero

26
27
Control y Automatización I
Ingeniería en Mantenimiento Eléctrico

end
FOR...END
Bucles anidados


orden
for k = a:paso:b

28
Ingeniería en Mantenimiento Eléctrico

Bucles anidados
Control y Automatización I

▪ FOR...END. Ejemplo.
%valores para el bucle
v_i = input('Introduce el valor incial: ')
v_f = input('Introduce el valor final: ')
incremento = 1

%Bucle
for k = v_i : incremento : v_f
disp(k*10)%cálculo correspondiente
end 29
Ingeniería en Mantenimiento Eléctrico

Estructuras de control condicionadas


Control y Automatización I

▪ Operadores relacionales y lógicos

Menor: < Menor o igual:<=


Mayor: > Mayor o igual: >=
Igual: == Distinto: ~=
O: | Y: & no: ~

El resultado de realizar operaciones relacionales o


lógicas será un 1 si es verdadera o un 0 si es falsa
30
Ingeniería en Mantenimiento Eléctrico

Estructuras de control condicionadas


Control y Automatización I

▪ IF...END

if (condicion1)

orden
end

31
Ingeniería en Mantenimiento Eléctrico

Estructuras de control condicionadas


Control y Automatización I

▪ IF...END. Ejemplo.

G=100*rand(1);
count=0;

if G < 50
count = count +1 ;
disp(G);
end
32
Ingeniería en Mantenimiento Eléctrico

Estructuras de control condicionadas


Control y Automatización I

▪ IF...ELSE...END

if (condicion1)
orden 1
else
orden 2
end

33
Ingeniería en Mantenimiento Eléctrico

Estructuras de control condicionadas


Control y Automatización I

▪ IF...ELSEIF...ELSE...END

if (condicion1)
orden 1
elseif (condicion2)
orden 2
else
orden 3
end
34
Ingeniería en Mantenimiento Eléctrico

Estructuras de control condicionadas


Control y Automatización I

▪ IF...ELSEIF...ELSE...END
age = input('Ingrese su edad: ') ;

if age<16
disp('Lo siento. Tendrá que esperar')
elseif age<18
disp('Puede obtener permiso provisional para conducir')
elseif age<70
disp('Puede obtener una licencia estándar')
else
disp('Los mayores de 70 requieren licencia especial')
end
35
Ingeniería en Mantenimiento Eléctrico

Estructuras de control condicionadas


Control y Automatización I

▪ WHILE....END

while (condicion1)

orden

end

36
Ingeniería en Mantenimiento Eléctrico

Ejercicio 2.
Control y Automatización I

Dado los lados de un triángulo a=2, b=3 y c que


varia de 2 a 10 en incrementos de 2.
▪ Determinar el perímetro del triángulo para
cada variación de c.
▪ Si el perímetro es igual a 11, mostrar: “El
perímetro es igual a 11”

37
Ingeniería en Mantenimiento Eléctrico

Ejercicio 2 (Solución).
Control y Automatización I

a = 2
b = 3

for c = 2:2:10
perimetro = a + b + c
if (perimetro==11)
disp('perimetro igual a 11')
end
end

38
Estructuras de control condicionadas
Ingeniería en Mantenimiento Eléctrico
Control y Automatización I

▪ SWITCH

switch expresion
case expresion_0
comandos_0 %que deben ejecutarse
case expresion_1
comandos_1 %que deben ejecutarse
case expresion_2
comandos_2 %que deben ejecutarse
otherwise
comandos %que deben ejecutarse
end

39
Estructuras de control condicionadas
Ingeniería en Mantenimiento Eléctrico
Control y Automatización I

▪ SWITCH. Ejemplo.
ciudad = input('Ingrese el nombre de una ciudad entre
comillas simples: ')

switch ciudad
case 'Guayaquil'
disp('Costo del boleto: $180')
case 'Quito'
disp('Costo del boleto: $150')
case 'Ibarra'
disp('Costo del boleto: $100')
otherwise
disp('No hay servicio a esa ciudad.')
end 40
41
Programación de funciones
Las funciones son herramientas genéricas creadas
Ingeniería en Mantenimiento Eléctrico
Control y Automatización I

por el usuario y pueden ser llamadas desde comand


window o cualquier archivo .m

Para programas funciones se debe:


▪ La primera línea es ejecutable y empieza por la
palabra function de la forma:
function arg_salida = nombre_funcion(arg_entrada)

▪ Se ingresan los comandos y los comentarios.


▪ El fichero debe guardarse con: nombre_funcion.m
▪ Para devolver el control al programa desde
cualquier punto de una función basta con escribir
la sentencia return
42
Control y Automatización I
Ingeniería en Mantenimiento Eléctrico

Programación de funciones. Ejemplo 3.

43

Vous aimerez peut-être aussi