Documentos de Académico
Documentos de Profesional
Documentos de Cultura
ManualMatlab PDF
ManualMatlab PDF
E.T.S.I I.C.A.I
Departamento de Electrnica y Automtica
Manual de referencia de
Febrero 2000
Adolfo Anta Martnez
Juan Luis Zamora Macho
Ramn Rodrguez Pecharromn
UPCo
ICAI - DEA
Tabla de Contenidos
1.
INTRODUCCIN................................................................................................................... 3
2.
3.
3.2.
3.3.
4.
M-FILES ................................................................................................................................ 7
5.
6.
7.
8.
9.
AYUDA................................................................................................................................ 22
8.1.
8.2.
LA VENTANA DE AYUDA................................................................................................... 22
SIMULINK ........................................................................................................................... 23
9.1 INTRODUCCIN .................................................................................................................. 23
9.2 CONSTRUCCIN DEL MODELO............................................................................................. 24
9.3 SIMULACIN ...................................................................................................................... 27
9.4 MODELADO DE UN SISTEMA FSICO ...................................................................................... 28
UPCo
ICAI - DEA
1. Introduccin
MATLAB es una aplicacin destinada a clculos matemticos, si bien dispone de
ciertas funciones destinadas a temas ms especficos, como por ejemplo la ToolBox
de control, que facilita el estudio de sistemas dinmicos y su regulacin.
Adems, existe un complemento de MATLAB llamado SIMULINK, que nos permite un
enfoque ms grfico de los sistemas de control.
Al ejecutar MATLAB, aparecer una ventana en blanco, llamada ventana de
comandos. La forma de trabajar con MATLAB es como con cualquier calculadora:
4*2 [ pulsamos enter]
ans =
8
A su vez, podemos usar variables para realizar nuestros clculos:
precio = 17;
iva =0.16;
precio_total =17 * (1+iva)
precio_total =
19.7200
Acabamos de crear tres variables, cuyo valor se guardar en memoria. En las dos
primeras sentencias se incluye un punto y coma al final, con lo que el resultado no
aparecer por pantalla. El nombre que elijamos para nuestras variables tiene algunas
restricciones: no pueden tener un espacio intermedio, se distinguen maysculas de
minsculas, y deben empezar por una letra.
Si queremos ver las variables que tenemos definidas, teclearemos el comando who:
who
Your variables are:
iva
precio
precio_total
UPCo
ICAI - DEA
FUNCIONES HABITUALES
abs(x)
acos(x)1
asin (x)
arco seno de x
atan (x)
atan2(x,y)
cos (x)
coseno de x
sin (x)
seno de x
tan (x)
tangente de x
exp (x)
exponencial ex
log(x)
logaritmo neperiano de x
log10 (x)
logaritmo en base 10 de x
rem(x,y)
resto de la divisin x / y
unwrap(x)
roots(x)
fzero('f(x)',n)
raz cuadrada de x
angle (x)
ngulo de x
real(x)
parte real de x
imag(x)
parte imaginaria de x
UPCo
ICAI - DEA
Es recomendable trabajar con atan2 en vez de atan, pues si la parte real del nmero
complejo es negativa, el ngulo quedar en el segundo o tercer cuadrante. Por
ejemplo:
180/pi*atan(-2/3)
ans =
-33.6901
180/pi*atan(2/-3)
ans =
-33.6901
180/pi*atan2(-2,3)
ans =
-33.6901
180/pi*atan2(2,-3)
ans =
146.3099
Para la funcin atan los nmeros complejos -2+3j y 2-3j tienen la misma fase; atan2,
sin embargo, nos da el ngulo correcto. Se ha multiplicado por 180/pi para obtener el
resultado en grados2.
Para definir un nmero complejo, se puede usar i o j
indistintamente:
c1=-1+2j
c1 =
-1.0000 + 2.0000i
c1=-1+2i
c1 =
-1.0000 + 2.0000i
UPCo
ICAI - DEA
UPCo
ICAI - DEA
4. M-files
Cuando realizamos clculos simples, es habitual escribir las instrucciones en la
ventana de comandos. Sin embargo, cuando se van a realizar una serie de
operaciones ms complicadas y de forma repetitiva, se utilizan los llamados M-Files;
son ficheros de texto donde tecleamos las instrucciones de MATLAB. Para crear un
nuevo archivo M, hacemos clic en File\New\M-File; nos aparecer una ventana en
blanco para editar el archivo. Por ejemplo:
% Mi primer programa en MATLAB3
comp1=-2+3i;
comp2=-10+5i;
comp=comp1+comp2;
modulo=abs(comp)
fase=unwrap(180/pi*phase(comp))
Una vez guardado el archivo (con el nombre trabajo.m, por ejemplo), nos bastar
teclear su nombre en MATLAB, y se ejecutar directamente:
trabajo
modulo =
14.4222
fase =
140.0267
Supongamos que queremos que este programa sirva no slo para los complejos
comp1 y comp2. Para ello, bastar con borrar las dos primeras lneas del programa
anterior. Ahora tendremos que definir antes el valor de comp1 y comp2 (si no,
MATLAB nos dar un error diciendo que las variables comp1 y comp2 no estn
definidas):
comp1=-3+2i;
comp2=-10+j;
trabajo
modulo =
13.3417
fase =
160.7222
UPCo
ICAI - DEA
Tambin podamos hacer que el programa pidiese los nmeros complejos al usuario
(pues ste no tiene por qu saber qu es comp1 y comp2):
comp1=input('Introduzca el primer nmero complejo -> ');
comp2=input('Introduzca el segundo nmero complejo -> ');
comp=comp1+comp2;
modulo=abs(comp)
fase=unwrap(180/pi*phase(comp))
UPCo
ICAI - DEA
0.3142
0.6283
0.9425
1.2566
1.5708
1.8850
Columns 8 through 11
2.1991
2.5133
2.8274
3.1416
Tal como hemos visto, para crear un vector fila es necesario escribir entre corchetes
los elementos, separados por un espacio o una coma
Si ahora escribimos sin (x), hallaremos el seno de todos los valores de x:
y=sin(x)
y=
Columns 1 through 7
0
0.3090
0.5878
0.8090
0.9511
1.0000
0.9511
Columns 8 through 11
0.8090
0.5878
0.3090
0.0000
Para manejar un nico elemento del vector, por ejemplo seno(0.5*pi), nos referiremos
a l como el elemento 6 del vector y:
y(6)
ans =
1
Si queremos utilizar los 5 primeros elementos, escribiremos y(1:5), y para tomar del
elemento 7 al ltimo teclearemos y(7:end)
En caso de querer representar la funcin seno(x), necesitaramos bastantes ms de 11
elementos para obtener una grfica aceptable. Escribir 1000 elementos resultara
bastante tedioso. Como era de suponer, existe una forma automtica de crear un
vector. La instruccin es: x= (valor_inicial:incremento:valor_final). Por ejemplo:
X=(0:0.01:pi);
UPCo
ICAI - DEA
X = primero : ultimo
X=primero:incremento:ultimo
X=linspace(primero, ultimo,n)
X=logspace(primero, ultimo,n)
De igual manera, se pueden crear matrices, escribiendo un "; " para indicar que es una
fila distinta:
x= [ 2 3 ; 2 5 ]
x=
2 3
2 5
10
UPCo
ICAI - DEA
6. Representaciones grficas
6.1 La funcin plot
Para representar grficos en dos dimensiones, es habitual utilizar el comando
plot(eje x, eje y). Por ejemplo, si quisisemos representar la funcin seno:
x = (0:0.01:2*pi);
y = sin(x);
plot (x,y)
Debera aparecernos una ventana del tipo Figure:
11
UPCo
ICAI - DEA
z = cos(x);
plot(x,y,x,z)
Tambin podemos dividir la ventana en varias partes con el comando subplot (m,n,i).
La ventana Figure se dividir en una matriz de m por n pequeas ventanas, y se
seleccionar la ventana i-sima. Por ejemplo:
subplot(2,1,1);
plot(x,y)
%Representamos y=sin(x)
subplot(2,1,2);
plot(x,z)
%Representamos z=cos(x)
1
0.5
0
-0.5
-1
1
0.5
0
-0.5
-1
12
UPCo
ICAI - DEA
Color
Smbolo
Marca
Smbolo
Estilo de lnea
Azul
Puntos
lnea continua
Verde
Crculos
lnea punteada
Rojo
cruces
-.
puntos y rayas
Cyan
ms
--
discontinua
Magenta
estrellas
Amarillo
cuadrados
Negro
diamantes
Blanco
pentagramas
Por ejemplo:
plot( x, y, 'rx', x, z, 'o--')
13
UPCo
ICAI - DEA
Para fijar una cuadrcula en la ventana Figure, basta con teclear grid on. Para
quitarla, escribimos grid off.
Se puede tomar valores de una grfica con la instruccin ginput. Una vez
tecleado ginput, nos aparecer la ventana Figure, y con el ratn haremos clic en
el punto que queramos conocer. Despus pulsaremos enter y el valor de las
coordenadas del punto aparecern en la ventana de comandos de MATLAB.
14
UPCo
ICAI - DEA
1.5
1
s
et
n
ei
d
n
e
p
e
d
s
el
b
ai
r
a
v
0.5
cos(x)
sen(x)
-0.5
-1
-1.5
variable Z
variable Y
0
3
4
variable independiente
15
UPCo
ICAI - DEA
7. Toolbox de control 4
7.1 Representacin de un sistema
El primer problema que se nos plantea es la definicin de un sistema. Los
sistemas se suelen expresar en forma de funcin de transferencia. sta se puede
expresar como cociente de polinomios, con la instruccin tf : escribiremos entre
corchetes los coeficientes de numerador y denominador (en sentido descendente de
las potencias de la variable s).
planta = tf ( [ 1 1] , [3 2 5] );
F ( s) =
nos definira
1+ S
3 S + 2 S + 5
2
den =
3
Teclear ctrldemo para ver una demostracin de las posibilidades que ofrece esta Toolbox
El argumento 'v' se incluye para obtener numerador y denominador en forma de vectores
16
UPCo
ICAI - DEA
p=
-0.3333 + 1.2472i
-0.3333 - 1.2472i
k=
[]
El coeficiente k representa el trmino independiente, que valdr 0 siempre que el
orden del numerador sea inferior al del denominador.
Es decir, F(s) tambin se puede expresar como:
F ( s) =
0.1667 - j 0.0891
0.1667 + j 0.0891
+
S + 0.3333 - j 1.2472 S + 0.3333 + j 1.2472
% Diagrama de Bode
pause
nichols (planta)
% Diagrama de Black
pause
nyquist (planta)
17
UPCo
ICAI - DEA
Mf =
Inf
wu =
1.8258
wo =
NaN
En este caso, no tenemos margen de fase, y por tanto no existe la pulsacin de cruce
(el trmino NaN significa Not-A-Number).
Existen tambin funciones para dibujar el lugar de las races:
rlocus(planta)
1.5
1
0.5
si
x
A
g
a
m
I
-0.5
-1
-1.5
-4
-3
-2
-1
Real Axis
% Definimos x y wn
wn=1:10;
sgrid(zeta,wn)
zoom
18
UPCo
ICAI - DEA
[num,den]=pade(T, n)
minreal(sistema)
19
UPCo
ICAI - DEA
7.3 LTIVIEW
Todo lo que hemos visto hasta ahora se puede hacer con un nico comando de
forma ms intuitiva. Para ello, tecleamos ltiview. Nos aparecer la siguiente pantalla:
Funciones de
transferencia
20
UPCo
ICAI - DEA
Al seleccionar una de estas opciones, nos aparecer un punto en la grfica; para ver
cul es el valor en concreto, es necesario mantener pulsado el ratn en ese punto.
21
UPCo
ICAI - DEA
8. Ayuda
Existen demasiados comandos en MATLAB para poder recordarlos. Para
facilitarnos la labor, se ha creado un archivo de ayuda al cual podemos recurrir en todo
momento.
, en la barra de herramientas.
22
UPCo
ICAI - DEA
9. Simulink
9.1 Introduccin
Simulink es una extensin de MATLAB para la simulacin de sistemas dinmicos.
Al ser un entorno grfico, resulta bastante sencillo de emplear. Para ejecutar Simulink,
podemos teclear simulink desde MATLAB, o bien hacer clic en el icono
, en la barra
de herramientas de MATLAB.
Nos aparecern dos ventanas: una con las libreras de Simulink, y otra en blanco
donde construiremos nuestro nuevo modelo.
23
UPCo
ICAI - DEA
S +1
S + 3S + 5
10
_
24
Salida
UPCo
ICAI - DEA
25
UPCo
ICAI - DEA
26
UPCo
ICAI - DEA
9.3. Simulacin
Para simular el sistema ya construido, elegimos Start del men Simulation. En
este men tambin hay otras opciones; la nica que usaremos es Parameters:
27
UPCo
ICAI - DEA
Y ( s)
salida
.
=
U ( s ) entrada
UPCo
ICAI - DEA
1
3
2
Datos:
Potencia inyectada en bloque 3
Temperatura controlada en bloque 3
C1= 2 min kW / C
R13 = 7.5 C / kW
R23 = 10 C / kW
Pg ( s ) = C3 T3 ( s )s +
1
1
1
(T3 ( s ) - T2 ( s )) +
(T3 ( s ) - T1 ( s )) +
(T3 ( s ) - T0 ( s ))
R32
R31
R30
1
(T3 ( s ) - T1 ( s )) = C1T1 ( s )s
R31
1
(T3 ( s ) - T2 ( s )) = C2 T2 ( s )s
R32
Representando estas ecuaciones en un modelo de Simulink, nos queda:
No se ha considerado el efecto de una posible perturbacin, pues hemos de definir una nica entrada y salida
29
UPCo
ICAI - DEA
[T3]
1
1/15
[T1]
1/60
[T1]
[T3]
1/25
[T2]
1
s
1/60
[T2]
[T3]
1/7.5
[T1]
[T3]
1
1/10
Out
[T2]
1/3.
[T3]
1/15
1/60
1
s
[T3]
1
In
T3 ( s )
0.004762S 2 + 8.46610 -6 S + 3.52710-9
= 3
(en segundos)
Pg ( s ) S + 0.0032S 2 + 2.257310 - 6 S + 2.35210-10
30
UPCo
ICAI - DEA
nuestro sistema real. Para ello, seleccionamos todos los bloques, pulsando en una
esquina y arrastrando hasta englobar a todos los elementos (no con la opcin
Edit/Select all). Despus hacemos clic en Edit/Create subsystem, que debera
aparecer habilitada. Debera quedarnos una ventana as:
31