Está en la página 1de 31

Universidad Pontificia Comillas

E.T.S.I I.C.A.I
Departamento de Electrnica y Automtica

Manual de referencia de

MATLAB & SIMULINK

Febrero 2000
Adolfo Anta Martnez
Juan Luis Zamora Macho
Ramn Rodrguez Pecharromn

UPCo
ICAI - DEA

MATLAB & SIMULINK


Manual de referencia

Tabla de Contenidos

1.

INTRODUCCIN ...................................................................................................................3

2.

FUNCIONES MATEMTICAS COMUNES ..........................................................................4

3.

CARACTERSTICAS DE LA VENTANA DE COMANDOS..................................................6


3.1.

CMO UTILIZAR EL WORKSPACE .......................................................................................6

3.2.

FORMATOS DE NMEROS ..................................................................................................6

3.3.

GESTIN DE DIRECTORIOS ................................................................................................6

4.

M-FILES.................................................................................................................................7

5.

OPERACIONES CON VECTORES ......................................................................................9

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.

TOOLBOX DE CONTROL .................................................................................................16


7.1 REPRESENTACIN DE UN SISTEMA ......................................................................................16
7.2 FUNCIONES ESPECFICAS....................................................................................................17
7.3 LTIVIEW...........................................................................................................................20

8.

9.

AYUDA ................................................................................................................................22
8.1.

EL COMANDO HELP .........................................................................................................22

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

MATLAB & SIMULINK


Manual de referencia

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

Por supuesto, se puede sobreescribir el nombre de una variable:


iva =0.13;
(el programa no nos avisar de que esa variable ya existe) .
Para borrar todas las variables, existe el comando clear: tecleando clear iva borrara
esta variable , pero si escribimos slo clear, borrar todo lo que hay en memoria; por
desgracia, una vez eliminadas, las variables no se pueden recuperar.
Podemos recuperar cualquier instruccin escrita previamente pulsando la tecla del
cursor

. Para detener la ejecucin de cualquier instruccin, hay que pulsar la

combinacin de teclas Ctrl+C.


3

UPCo
ICAI - DEA

MATLAB & SIMULINK


Manual de referencia

2. Funciones matemticas comunes


MATLAB incluye ciertas funciones que nos permiten realizar clculos ms
complejos que sumar y restar. Para usar estas funciones, se procede de igual manera
que en una calculadora programable; por ejemplo, para realizar una operacin que
incluya una raz cuadrada escribimos:
x = 3 - sqrt (5/6) * 2
x=
1.1743
Una lista breve de las funciones de MATLAB sera:

FUNCIONES HABITUALES
abs(x)
acos(x)1

Valor absoluto de x. Si x es un nmero complejo, abs(x) nos da


su mdulo
arco coseno de x

asin (x)

arco seno de x

atan (x)

arco tangente de x. Devuelve un ngulo entre -90 y 90

atan2(x,y)

arco tangente de x entre y. Devuelve un ngulo entre 0 y 360

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)

sita el ngulo x entre pi y -pi

roots(x)

halla las races del polinomio x

fzero('f(x)',n)

encuentra la solucin de la ecuacin f(x)=0; n es el valor por


donde empieza a iterar para hallar la solucin.

(ej.- f(x)= 'x^2+x+3' )


sqrt(x)

raz cuadrada de x

angle (x)

ngulo de x

real(x)

parte real de x

imag(x)

parte imaginaria de x

MATLAB trabaja nicamente en radianes.

UPCo
ICAI - DEA

MATLAB & SIMULINK


Manual de referencia

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

La constante pi viene definida por defecto en MATLAB

como unidad imaginaria

UPCo
ICAI - DEA

MATLAB & SIMULINK


Manual de referencia

3. Caractersticas de la ventana de comandos


3.1. Cmo utilizar el Workspace
Todas las variables que hemos definido se guardan en el Workspace, que no es
ms que el espacio de memoria que utiliza MATLAB.
Aparte de crear y borrar variables, resulta til guardar sesiones de trabajo, es decir,
todas las instrucciones que hemos tecleado en la ventana de instrucciones. Para ello,
al inicio de la sesin tecleamos diary <nombre del fichero>. Podemos elegir el tipo de
archivo, si bien es recomendable que ste sea de texto (por ejemplo, diary
c:\regulacin\resumen.txt). Para que deje de grabar la sesin teclearamos diary off.
Tambin podemos guardar nicamente el valor de algunas variables:
save c:\regulacin\datos x y
Aqu no es necesario aadir la extensin, y MATLAB crear el fichero con extensin
.mat. Las variables x e y han de estar previamente definidas.
Para recuperar las variables guardadas teclearemos:
load datos

3.2. Formatos de nmeros


Se habr observado que por defecto todos los nmeros nos aparecen con cuatro
decimales. Se puede cambiar el formato de salida seleccionando el men
File\Preferences. Cabe destacar que, con el formato que aparece por defecto, algunos
nmeros pueden aparecer por pantalla como 0.0000, aunque realmente no son 0 (sino
3.510-7, por ejemplo).

3.3. Gestin de directorios


Por defecto, al arrancar MATLAB empezamos en el directorio matlab\bin,
mientras que nuestros ficheros (M-files o modelos de SIMULINK) suelen estar en otras
carpetas.
Para "movernos" en MATLAB, usaremos los comandos tpicos de MS-DOS: cd
para acceder a un directorio, dir para ver el contenido de un directorio, cd.. para salir
de una directorio.

UPCo
ICAI - DEA

MATLAB & SIMULINK


Manual de referencia

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

El smbolo % indica que esa lnea es comentario.

UPCo
ICAI - DEA

MATLAB & SIMULINK


Manual de referencia

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

MATLAB & SIMULINK


Manual de referencia

5. Operaciones con vectores


Hasta ahora, todas las variables utilizadas eran escalares. Por supuesto, tambin se
pueden definir vectores. Por ejemplo, queremos hallar el valor de seno (x) para
0 < x < . Como es imposible hallar todos los valores (hay infinitos puntos), debemos
definir una serie de valores de x. Si tomamos 11 puntos, definiremos x de la forma:
x=[0 0.1*pi 0.2*pi 0.3*pi 0.4*pi 0.5*pi 0.6*pi 0.7*pi 0.8*pi 0.9*pi pi]
x=
Columns 1 through 7
0

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);

%Esta instruccin nos crea un vector x con valor inicial x, valor


%final pi, y la diferencia entre elementos consecutivos es 0.01*pi

UPCo
ICAI - DEA

MATLAB & SIMULINK


Manual de referencia

Es muy recomendable escribir el "; " al final de la sentencia, pues si no aparecern


cada uno de los elementos del vector por pantalla: 0, 0.01pi, 0.02pi , y as hasta pi.
Las diferentes formas de crear un vector aparecen resumidas en la siguiente tabla:
Construcciones bsicas de vectores
X = [2 2*pi sqrt(2) 2-3j]

Crea un vector con los elementos espeficados

X = primero : ultimo

Crea un vector empezando en primero,


incrementando una unidad en cada elemento,
acabando en el elemento ultimo
En este caso, el incremento no es 1 sino que es
fijado por nosotros
Crea un vector empezando en primero, acabando
en ultimo, con n elementos
Crea un vector logartmico

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

MATLAB & SIMULINK


Manual de referencia

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:

Fig 1. Representacion grfica de funciones con el comando plot

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

MATLAB & SIMULINK


Manual de referencia

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);

%La ventana Figure se dividir en dos; selecionamos la primera

plot(x,y)

%Representamos y=sin(x)

subplot(2,1,2);

%Ahora selecionamos la segunda

plot(x,z)

%Representamos z=cos(x)

1
0.5
0
-0.5
-1

1
0.5
0
-0.5
-1

Fig 2. Representacin de varias grficas con subplot

12

UPCo
ICAI - DEA

MATLAB & SIMULINK


Manual de referencia

6.2 Estilos de lnea, marcas y colores


Es posible modificar el color y estilo de las grficas. Para ello, existen ciertos
parmetros que admite la funcin plot, y han de introducirse como un tercer
argumento, despus de cada par de variables.
Smbolo

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--')

Fig 3. Estilos de lnea y colores con la funcin plot

13

UPCo
ICAI - DEA

MATLAB & SIMULINK


Manual de referencia

6.3 Fijar rejillas, ejes, y etiquetas

Para fijar una cuadrcula en la ventana Figure, basta con teclear grid on. Para
quitarla, escribimos grid off.

Podemos escribir los nombres de los ejes y de la grfica:


title('Representacin de las funciones seno y coseno'), xlabel ('variable
independiente'), ylabel ('variables dependientes')

Podemos escribir en el grfico con la funcin gtext:


gtext('cos(x)')
Al pulsar enter nos aparecer la ventana Figure; con el ratn podemos decidir
dnde situar el texto

Existe tambin el comando legend, cuya funcin es similar a la de gtext:


legend (variable Y, variable Z)
El cuadro de la leyenda se puede situar donde queramos, arrastrandolo con el
ratn.

Tambin se puede cambiar los ejes, con el comando axis:


La estructura a escribir es: axis ([xmin xmax ymin ymax])
axis([0 2*pi -1.5 1.5])
Para volver al autoescalado, teclearemos axis auto. Otra forma de ampliar o
reducir las grficas es usando la funcin zoom. Los comandos zoom y legend no
pueden estar activos a la vez, pues los dos responden al clic del ratn.

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.

Despus de todas estas operaciones, la grfica resultante es:

14

UPCo
ICAI - DEA

MATLAB & SIMULINK


Manual de referencia

Representacin de las funciones seno y coseno


1.5

variables dependientes

0.5

cos(x)

sen(x)

-0.5

-1

-1.5

variable Z
variable Y
0

3
4
variable independiente

Fig 4. Edicin de figuras en MATLAB

15

UPCo
ICAI - DEA

MATLAB & SIMULINK


Manual de referencia

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

De esta representacin, podemos quedarnos nicamente con el numerador y/o


denominador:
[num,den] = tfdata (planta , ' v ' )5
num =

den =
3

u obtener los polos y ceros del sistema:


[z,p,k] = tf2zp (num,den);
z=
-1
p=
-0.3333 + 1.2472i
-0.3333 - 1.2472i
k=
0.3333
, donde k no es la ganancia esttica, sino la que se obtiene al expresar la funcin de
transferencia en forma de polos y ceros.
Tambin podemos obtener la descomposicin en fracciones simples:
[r, p, k] = residue (num,den)
r=
0.1667 - 0.0891i
0.1667 + 0.0891i
4
5

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

MATLAB & SIMULINK


Manual de referencia

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

7.2 Funciones especficas


Existen diversos comandos en MATLAB para dibujar grficos de respuesta en
frecuencia:
bode (planta)

% Diagrama de Bode

pause
nichols (planta)

% Diagrama de Black

pause
nyquist (planta)

% Diagrama de Nyquist desde w = - hasta w = +

Si no incluyesemos la instruccin pause, nos aparecer nicamente la ltima grfica


(el diagrama de nyquist en nuestro ejemplo); de esta manera, nos mostrar el primer
diagrama, y no pasar al siguiente hasta pulsar cualquier tecla.
Si queremos dibujar un diagrama para unas pulsaciones determinadas, es necesario
definirse previamente el vector de pulsaciones w:
w = logspace (-2, 3, 1001); % Creamos vector w, con valor inicial en 10-2, valor
% final = 103, con 1001 puntos
bode (planta,w)
Podemos hallar tambin los mrgenes de ganancia y/o fase y pulsaciones asociadas:
[ganancia, fase] =bode (planta);
[Mg,Mf,wu,wo]=margin (ganancia,fase,w)
Mg =
7.3343

17

UPCo
ICAI - DEA

MATLAB & SIMULINK


Manual de referencia

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

Fig 5. Lugar de las races de la funcin de transferencia "planta"

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)

% Nos muestra rectas de pendiente zeta y


% circunferencias de radio wn

zoom

18

UPCo
ICAI - DEA

MATLAB & SIMULINK


Manual de referencia

Y ahora hallamos la ganancia necesaria para obtener los polos


[gan,polos]=rlocfind(planta)

% Aparece un cursor en la ventana del


% lugar de las races

Select a point in the graphics window


selected_point =
-1.0554 + 1.4078i
gan =
4.3339
polos =
-1.0557 + 1.4131i
-1.0557 - 1.4131i

Otras funciones tiles de esta Toolbox son:


dcgain(sistema)

Halla la ganancia esttica del sistema

[num,den]=pade(T, n)

Devuelve el numerador y denominador de una


aproximacin de Pade de e-TS, de orden n
Simplifica la funcin de transferencia de sistema

minreal(sistema)

Para empezar a simular con nuestra funcin de transferencia, existen numerosas


funciones en MATLAB(step, impulse), si bien lo ms sencillo es utilizar SIMULINK o
LTIVIEW.

19

UPCo
ICAI - DEA

MATLAB & SIMULINK


Manual de referencia

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

Fig 6. Pantalla del LTIVIEW


Tipo de grfica

En el recuadro Workspace nos aparecen todas las funciones de transferencia


que hemos definido. Para seleccionar una de ellas, hacemos doble clic. En Plot Type,
podemos elegir el tipo de grfica: ante un escaln, diagrama de Bode, Nyquist, lugar
de las races, etc; adems, al seleccionar uno de ellos, nos aparecer en Plot Options
varias posibilidades; por ejemplo, para un escaln, nos muestra el tiempo de
establecimiento, pico ,etc.; y para cualquier diagrama de respuesta en frecuencia,
podemos ver el margen de fase y ganancia de nuestra planta.

20

UPCo
ICAI - DEA

MATLAB & SIMULINK


Manual de referencia

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.

Fig 7. Anlisis de sistemas con LTIVIEW

21

UPCo
ICAI - DEA

MATLAB & SIMULINK


Manual de referencia

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.

8.1. El comando help


Para recurrir a la ayuda, basta con teclear help nombre_de_funcin. Si escribimos help
a secas, nos aparecer una lista de categoras de las funciones disponibles. Por
ejemplo:
help sqrt
SQRT Square root.
SQRT(X) is the square root of the elements of X. Complex
results are produced if X is not positive.
See also SQRTM
El comando help nos muestra una pequea descripcin de la funcin, y tambin una
serie de comandos relacionados (en este caso sqrtm, que nos permite hacer races
cuadradas de matrices).
Aunque en la ayuda aparezca la funcin en maysculas, al usarla hemos de escribirla
en minscula (pues SQRT dara error).
Si no conocemos en concreto el nombre de la funcin, podemos usar el comando
lookfor:
lookfor complex
nos mostrar todas las funciones relacionadas con nmeros complejos.
Tambin es til el comando demo , que nos mostrar una pantalla con demostraciones
de todas las posibilidades que ofrece MATLAB.

8.2. La ventana de ayuda


Existe una ventana especfica para la ayuda de MATLAB. Para que aparezca,
escribimos helpwin o hacemos clic en el icono

, en la barra de herramientas.

La ventana contiene un listado de todas las categoras de MATLAB. Haciendo clic en


cualquiera de ellas, pasaremos a una pantalla donde aparecen todas las funciones de
esa categora. El botn Tips nos describe brevemente cmo usar la ayuda.

22

UPCo
ICAI - DEA

MATLAB & SIMULINK


Manual de referencia

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.

Fig 8. Libreras de Simulink

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

MATLAB & SIMULINK


Manual de referencia

Fig 9. Contenido de la librera Linear

9.2. Construccin del modelo

Supongamos que se tiene el siguiente sistema de control:


ref

S +1
S + 3S + 5

10
_

Fig 10. Diagrama de bloques del sistema de control

24

Salida

UPCo
ICAI - DEA

MATLAB & SIMULINK


Manual de referencia

Para construirlo en Simulink, seguiremos los siguientes pasos:


En el grupo Linear, elegimos el bloque Sum, y lo arrastramos hasta nuestra ventana
vaca.
Del mismo grupo, elegimos Transfer Fcn y Gain.
Para introducir los valores que tendrn los bloques, hacemos doble clic en cada uno
de ellos. Nos aparecer el cuadro de dilogo correspondiente:

Fig 11. Introduccin de valores para cada bloque

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

MATLAB & SIMULINK


Manual de referencia

El modelo en Simulink quedar como en la figura siguiente:

Fig 12. Modelo de Simulink del sistema de control

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.

Despus de construir el modelo, resulta conveniente guardarlo antes de empezar a


simular (Men File/Save as..). Los modelos de Simulink se guardan con extensin .mdl

26

UPCo
ICAI - DEA

MATLAB & SIMULINK


Manual de referencia

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:

Fig 13. Introduccin de los parmetros de la simulacin

En este recuadro elegimos las caractersticas de la simulacin. Las ms importantes


es Start time (que suele ser 0.0) y Stop time. sta ltima se tendr que ajustar a
nuestro sistema, pues por ejemplo un sistema mecnico es mucho ms rpido que
uno trmico, y necesitar menos tiempo para llegar al rgimen permanente.
Una vez empezada la simulacin, sta se puede parar o hacer una pausa (en el
mismo men Simulation/Stop y Simulation/Pause)

Si queremos ver la salida, hacemos doble clic en el bloque Scope. Nos aparecer la
siguiente pantalla:

27

UPCo
ICAI - DEA

MATLAB & SIMULINK


Manual de referencia

Fig 14. Visualizacin de la respuesta mediante el bloque Scope

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.

9.4 Modelado de un sistema fsico


No siempre disponemos de una funcin de transferencia, sino que tenemos un
conjunto de ecuaciones que nos describe el comportamiento de un sistema real.
Esta funcin de transferencia se podra obtener resolviendo el sistema de ecuaciones,
pero resulta ms sencillo utilizar Simulink. Para ello, nos construimos cada una de las
ecuaciones con bloques. Despus hemos de definir una entrada y una salida,
mediante los bloques In y Out, que aparecen en el gupo Connections, pues la funcin
de transferencia se representa como F ( s ) =

Y ( s)
salida
.
=
U ( s ) entrada

Guardamos el modelo, y despus, desde MATLAB, escribimos las siguientes


instrucciones:
>> [A,B,C,D]=linmod ('mi_planta'); %Donde 'mi_planta' es el nombre del archivo

28

UPCo
ICAI - DEA

MATLAB & SIMULINK


Manual de referencia

>> [num,den]=ss2tf (A,B,C,D);

Ejemplo:Intentaremos modelar el siguiente sistema trmico:

1
3
2

Datos:
Potencia inyectada en bloque 3
Temperatura controlada en bloque 3
C1= 2 min kW / C

C2= 2.5 min kW / C

R13 = 7.5 C / kW

R23 = 10 C / kW

Las ecuaciones que nos describen este sistema son:

Pg ( s ) = C3 T3 ( s )s +

C3= 3.5 min kW / C


R30 = 15 C / kW
6

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

MATLAB & SIMULINK


Manual de referencia

[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

Fig 15. Modelo de Simulink que representa el sistema trmico

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

Ahora escribimos en MATLAB:

>> [A,B,C,D]=linmod ('mi_planta');


>> [num,den]=ss2tf (A,B,C,D);
>> planta =tf(num,den)

La funcin de transferencia entre la potencia aportada al sistema y la temperatura a


controlar queda:

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

Una vez modelado el sistema,

MATLAB & SIMULINK


Manual de referencia

resulta conveniente crear un bloque que agrupe

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:

En este diagrama de bloques s se ha incluido la perturbacin.

31

También podría gustarte