Documentos de Académico
Documentos de Profesional
Documentos de Cultura
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.
REPRESENTACIONES GRFICAS...................................................................................11
6.1 LA FUNCIN PLOT ...............................................................................................................11
6.2 ESTILOS DE LNEA, MARCAS Y COLORES ..............................................................................12
6.3 FIJAR REJILLAS, EJES, Y ETIQUETAS ....................................................................................13
7.
8.
9.
AYUDA ................................................................................................................................22
8.1.
8.2.
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:
Esta grfica se puede ampliar, reducir , cambiar su color y copiar para utilizarla en otro
documento.
Si ya tenamos abierta una ventana Figure, al usar plot, desaparecer la grfica
anterior sin previo aviso. Para evitarlo, aadiremos una nueva ventana tecleando
figure en MATLAB. Es posible dibujar ms de una grfica en una ventana, escribiendo
plot(eje x1, eje y1, eje x2, eje y2,...); por ejemplo:
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
variables dependientes
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
Imag Axis
0.5
-0.5
-1
-1.5
-4
-3
-2
-1
Real Axis
Con este grfico, es posible disear para obtener unos polos determinados. Para
obtener mayor precisin, es conveniente dibujar una rejilla radial:
zeta=0:0.1:1;
% Definimos 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.
En cada uno de los grupos que aparecen en la fig. 3, estarn los bloques necesarios
para simular nuestro sistema de control. Por ejemplo, haciendo doble clic en Linear
aparecer la siguiente ventana:
23
UPCo
ICAI - DEA
S +1
S + 3S + 5
10
_
24
Salida
UPCo
ICAI - DEA
Se har de igual manera para la constante (Gain) y el punto de suma (Sum), en el que
pondremos +Cada bloque tiene en sus extremos una o varias flechas. Al situarnos con el ratn en
esas flechas, el puntero pasa a ser una cruz. Para conectar los bloques, arrastramos
hasta la flecha del siguiente bloque.
Ahora necesitamos poner la referencia. Para ello, hacemos doble clic en el grupo
Sources, y elegimos Step. Lo arrastramos hasta la ventana donde tenemos el modelo.
Para cambiar los valores del escaln, y el tiempo en que ste se produce, hacemos
doble clic en el bloque. Por defecto, el escaln es unitario y se da en t=1.
Por ltimo, para ver la salida (o cualquier otra seal) hay varias posibilidades. Las dos
ms utilizadas son los bloques Scope y To Workspace (en el grupo Sinks).
El bloque Scope nos permite ver el comportamiento de una seal mientras se simula.
Por el contrario, To Workspace guarda la seal en memoria, para poder dibujarla
despus de la simulacin (con el comando plot) o guardarla en un fichero de datos
.mat.
25
UPCo
ICAI - DEA
La orientacin por defecto de los bloques es "a derechas" (la entrada est en la
izquierda, la salida en la derecha). Esto se puede cambiar seleccionando el bloque y
pulsando Ctrl+R o en el men Format/Rotate Block.
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:
Si queremos ver la salida, hacemos doble clic en el bloque Scope. Nos aparecer la
siguiente pantalla:
27
UPCo
ICAI - DEA
En la barra de herramientas existen varios iconos: los tres primeros fijan el tipo de
zoom (ampliar eje x y eje y, slo eje x o solo eje y ). El cuarto icono (con el smbolo de
los prismticos) har que aparezca en pantalla la grfica completa. El quinto nos
guarda la configuracin de los ejes para posteriores simulaciones, y el ltimo nos
permite fijar los ejes, y la cantidad de datos que queremos guardar.
Y ( s)
salida
.
=
U ( s ) entrada
28
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
1/60
[T1]
[T1]
[T3]
1/25
1/60
[T2]
[T2]
[T3]
1/7.5
[T1]
[T3]
1
1/10
Out
[T2]
1/3.
[T3]
1/60
[T3]
1/15
1
In
Para construir el modelo de una forma ms clara, se han utilizado Tags o etiquetas
(que se encuentran en Connections)
El trmino 1/60 corresponde al cambio de unidades de minutos a segundos
T3 ( s )
0.004762S 2 + 8.46610 6 S + 3.527109
= 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