Академический Документы
Профессиональный Документы
Культура Документы
a
MATLAB
© 2004
2
Índice general
2. Introducción a MatLab.Parte II 19
2.1. Gráficos ............................................................................................... 19
2.2. Programando en MatLab ............................................................ 23
2.2.1. Bucles y estructuras condicionales ................................. 23
2.3. Funciones ........................................................................................ 25
3
4 ÍNDICE GENERAL
Capı́tulo 1
1.1. Introducción
En estas notas se pretende realizar una introducción muy básica a MAT-
LAB, orientada fundamentalmente al estudio de sistemas de control. En
l´ıneas generales, MATLAB es un sistema interactivo basado en matrices para
cálculos cientı́ficos y de ingenierı́a. Desde el punto de vista del control, MAT-
LAB se puede considerar un entorno matemático de simulación que puede
utilizarse para modelar y analizar sistemas. Sirve para estudiar sistemas con-
tinuos, discretos, lineales y no lineales.
MATLAB constituye un entorno abierto, para el cual numerosas paque-
tes especı́ficos adicionales (toolboxes) han sido desarrollados. En el caso que
nos ocupa se utilizará fundamentalmente la ’Control System Toolbox’ . Estos
paquetes especı́ficos adicionales están constituidos por un conjunto de fun-
ciones que pueden ser llamadas desde el programa y mediante las cuales se
pueden realizar multitud de análisis.
Las notas se centrarán fundamentalmente en aquellos aspectos y funciones
que más interés tengan desde el punto de vista de control, instando al lector
a que busque en el manual de usuario cualquier información adicional que
desee. Para el desarrollo de las mismas se ha utilizado tanto la experiencia
programando en MATLAB de los autores, como una serie de referencias
básicas.
El núcleo fundamental de MATLAB se encuentra en los subdirectorios
BIN y MATLAB. En BIN se encuentran los programas ejecutables. El sub-
directorio MATLAB contiene los ficheros .m (aunque serán explicados poste-
riormente, comentamos brevemente que consisten en ficheros escritos a base
de comandos de MATLAB y que realizan una función determinada), que
contienen las funciones básicas para el funcionamiento de MATLAB. En este
5
6 CAPÍTULO 1. INTRODUCCIÓN A MATLAB. PARTE I
sentido, es necesario comentar que MATLAB cuenta con dos tipos básicos
de funciones:
Las llamadas built-in functions: Son funciones que MATLAB tiene
incorporadas internamente y por tanto no son accesibles al usuario.
Funciones m functions: Son funciones cuyo código es accesible. Las que
se encuentran en el subdirectorio MATLAB son las básicas para el funciona-
miento del sistema.
Las toolboxes se suelen instalar en forma de subdirectorios en el disco
duro, colgando del subdirectorio TOOLBOX(en la versión WINDOWS). En
ellos se encuentran también funciones .m orientadas al control de sistemas.
Además, se pueden incorporar otros toolboxes (SIGNAL PROCESSING, RO-
BUST CONTROL, etc), e incluso funciones propias del usuario.
En el caso de las versiones para WINDOWS, el arranque del programa
se realiza ’pinchando’ con el ratón en el icono correspondiente. Para obtener
información adicional se aconseja mirar el manual de usuario.
1.2. Entorno
Una vez arrancado MATLAB, aparece el prompt o l´ınea de comandos
del sistema ( ). Este es el momento de comentar la existencia del coman-
do más famoso de cualquier aplicación: help. Introduciendo este comando
aparecerán todas las citadas built-in functions, las contenidas en el subdi-
rectorio MATLAB y todas aquellas contenidas en los subdirectorios incluidos
en el PATH(ver cuadro1.1).
Para obtener información sobre cualquiera de las funciones se introduce
help nombre-función. Ejemplo: help cos (cos es una función que calcula
el coseno de un número). Una cuestión importante a tener en cuenta es
que MATLAB distingue entre mayúsculas y minúsculas. En este sentido,
los nombres de función se introducirán en minúsculas. El comando demo
permite obtener una demostración de las ’capacidades’ del sistema.
Aritméticos:
• Suma: +
• Resta: -
• Multiplicación: *
• División : /
1.3. VARIABLES Y OPERADORES 9
• Potencia: ∧
>> a=100;
>> b=2;
>> c=a
c=
100
>> d=a*b
d=
200
pi : π
√
i, j : −1
inf: ∞
clock: Reloj.
date : Fecha.
Las variables a las que se asignan resultados, as´ı como las variables de
entorno, se almacenan en el ’espacio de trabajo’(workspace).
El comando who muestra las variables existentes en el entorno generadas
por el usuario (pero no las variables especiales). El formato de salida puede
modificarse usando format (short, long etc).
>>v=[77 69 11 88]
v=
77 69 11 88
>>v(2)
ans =
69
>>v(2:3)
ans =
69 11
p=[ 1 2 3 4] ;
roots(p)
p2=poly([-1 -2]);
ps=polyval(p,s)
1.5. Matrices
El elemento básico en MATLAB es una matriz compleja de doble preci-
sión, de forma que abarca realmente todo tipo de datos (desde números reales
hasta complejos) y de estructuras de datos (escalares, vectores y matrices).
As´ıpor ejemplo, se pueden introducir:
A=[ 1 0 2; 2 2 0; 0 0 1]
A partir de esta representación se pueden comentar varias cosas:
>> A=[ 1 0 2; 2 2 0; 0 0 1]
A=
1 0 2
2 2 0
0 0 1
>> size(A)
ans =
3 3
Suma: +
Resta: -
Multiplicación: *
Potencia: ∧
Traspuesta: ’
14 CAPÍTULO 1. INTRODUCCIÓN A MATLAB. PARTE I
det : determinante.
inv: inversa.
norm: norma.
conj: conjugada.
Ejemplo:
>> A
A=
1 0 2
2 2 0
0 0 1
ans =
2
1.6. FUNCIONES AVANZADAS 15
ans =
ans =
1.0000 0 -2.0000
-1.0000 0.5000 2.0000
0 0 1.0000
B =
>> D=A*B
D=
Ejemplo: Fichero .m
A=[1 2 3; 4 5 6] B=[1 2; 3 4 ; 5 6]
C=A*B Producto de A por B
T=inv(C)^2 Cuadrado de la inversa de C
Tt=T’ Traspuesta de T
>> prueba
A =
1 2 3
4 5 6
1.7. FICHEROS SCRIPTS 17
B=
1 2
3 4
5 6
C=
22 28
49 64
T=
4.2191 -1.8580
-3.2515 1.4321
Tt =
4.2191 -3.2515
-1.8580 1.4321
18 CAPÍTULO 1. INTRODUCCIÓN A MATLAB. PARTE I
Capı́tulo 2
Introducción a MatLab.Parte II
2.1. Gráficos
Para dibujar gráficos es preciso generar la tabla de valores correspon-
diente. Para ello MatLab dispone de dos funciones, linspace y logspace, que
permiten generar vectores de puntos espaciados de forma lineal o logar´ıtmica
respectivamente.
Para poner t´ıtulo tanto a la figura como a los ejes coordenados existen
una serie de funciones:
19
20 CAPÍTULO 2. INTRODUCCIÓN A MATLAB.PARTE II
title(’Tı́tulo de la figura’).
0.8
0.6
0.4
0.2
eje y
−0.2
−0.4
−0.6
−0.8
−1
−30 −20 −10 0 10 20 30
eje x
x = linspace(-8*pi,8*pi,100);
y = sin(x)./x; ./ representa division elemento
a elemento de dos vectores
Por otro lado, Matlab permite realizar gráficas en tres dimensiones (3D).
Las gráficas en 3D se definen mediante vectores o matrices de datos en función
de que se dibuje una l´ınea o una superficie.
Usaremos los siguientes comandos, además de los previamente comenta-
dos para gráficas 2D:
40
20
eje z
0
1
0.8
0.6
0.4
0.2
−0.2
−0.4
−0.6 −10
−6 −8
eje y −4
−0.8 −2
0
4 2
−1 6
8
10
eje x
figure; plot3(sin(t),cos(t),t,’b’,10*sin(t),cos(t)/2,t,’r’);
22 CAPÍTULO 2. INTRODUCCIÓN A MATLAB.PARTE II
1.2
0.8
0.6
eje z
0.4
0.2
−0.2
−0.4
4
2 4
2
0
0
−2
−2
−4 −4
eje y
eje x
x=linspace(-pi,pi,50);
y=linspace(-pi,pi,50);
[X,Y]=meshgrid(x,y);
z=sin(1.1*(X.^2+Y.^2))./(X.^2+Y.^2);
2.2. PROGRAMANDO EN MATLAB 23
figure; surf(x,y,z);
for:
Sintaxis:
for variable = expresion
hacer algo;
end
for i=10:-1:1
kk(11-i)=i ;
end
Método 1:
t1=clock;
for i=1: 10000,
a(i)=log(i);
end;
e1=etime(clock,t1)
Método 2:
while:
Permite bucles condicionales. Su sintaxis es:
while expresion,
hacer algo,
end;
rand(normal);
a=rand(2);
while max(real(eig(a)))>=0,
a=rand(2);
end;
eig(a)
La sintaxis es la siguiente:
if expresion1,
hace algo,
hace otras cosas,
elseif expresion2,
hace algo,
hace otras cosas,
else
hace algo,
end
else y elseif son opcionales, no as´ı end que es obligatorio para acabar
la instrucción. Se puede usar break para salir de un bucle si se cumple la
condición incluida en el if.
2.3. Funciones
Además de los script-files, hay otro tipo de ficheros .m: los ficheros de
funciones.
A diferencia de los scripts anteriores, se le pueden pasar argumentos y
pueden devolver resultados. Por tanto utilizan variables que se pasan por
valor. La mayor´ıa de los ficheros contenidos en las diferentes ’toolboxes’ son
funciones. La sintaxis de todas las funciones almacenadas en ficheros .m es
la siguiente:
function[sal1,sal2,...] =nombre_fichero(ent1,ent2,...)
Comentarios adicionales para el help
comandos de MATLAB
la varianza de un vector de 3D
[media,varianza] = funcion(vector)
-------------------------
function media = med(x,n)
subfuncion
media = sum(x)/n;
>>[m,v]=funcion([6,4])
m =
v =