You are on page 1of 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. 2. 3.

INTRODUCCIN................................................................................................................... 3 FUNCIONES MATEMTICAS COMUNES .......................................................................... 4 CARACTERSTICAS DE LA VENTANA DE COMANDOS ................................................. 6 3.1. 3.2. 3.3. CMO UTILIZAR EL WORKSPACE ....................................................................................... 6 FORMATOS DE NMEROS ................................................................................................. 6 GESTIN DE DIRECTORIOS ............................................................................................... 6

4. 5. 6.

M-FILES ................................................................................................................................ 7 OPERACIONES CON VECTORES ...................................................................................... 9 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.

AYUDA................................................................................................................................ 22 8.1. 8.2. EL COMANDO HELP ........................................................................................................ 22 LA VENTANA DE AYUDA................................................................................................... 22

9.

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 asin (x) atan (x) atan2(x,y) cos (x) sin (x) tan (x) exp (x) log(x) log10 (x) rem(x,y) unwrap(x) roots(x) fzero('f(x)',n) (ej.- f(x)= 'x^2+x+3' ) sqrt(x) angle (x) real(x) imag(x) Valor absoluto de x. Si x es un nmero complejo, abs(x) nos da su mdulo arco coseno de x arco seno de x arco tangente de x. Devuelve un ngulo entre -90 y 90 arco tangente de x entre y. Devuelve un ngulo entre 0 y 360 coseno de x seno de x tangente de x exponencial ex logaritmo neperiano de x logaritmo en base 10 de x resto de la divisin x / y sita el ngulo x entre pi y -pi halla las races del polinomio x encuentra la solucin de la ecuacin f(x)=0; n es el valor por donde empieza a iterar para hallar la solucin. raz cuadrada de x ngulo de x parte real de 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 como unidad imaginaria

La constante pi viene definida por defecto en MATLAB

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 < p. 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 2.1991 0.3142 0.6283 2.8274 0.9425 1.2566 1.5708 1.8850 Columns 8 through 11 2.5133 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.8090 0.3090 0.5878 0.3090 0.8090 0.9511 1.0000 0.9511 Columns 8 through 11 0.5878 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] X = primero : ultimo X=primero:incremento:ultimo X=linspace(primero, ultimo,n) X=logspace(primero, ultimo,n) Crea un vector con los elementos espeficados 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

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); plot(x,y) subplot(2,1,2); plot(x,z) %La ventana Figure se dividir en dos; selecionamos la primera %Representamos y=sin(x) %Ahora selecionamos la segunda %Representamos z=cos(x)

1 0.5 0 -0.5 -1 1 0.5 0 -0.5 -1 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7

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 b g r c m y k w Por ejemplo: plot( x, y, 'rx', x, z, 'o--') Color Azul Verde Rojo Cyan Magenta Amarillo Negro Blanco Smbolo . O x + * s d p Marca Puntos Crculos cruces ms estrellas cuadrados diamantes pentagramas Smbolo : -. -Estilo de lnea lnea continua lnea punteada puntos y rayas discontinua

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

1.5

Representacin de las funciones seno y coseno

1 s e t n e i d n e p e d s e l b a i r a v 0.5 sen(x)

cos(x)

-0.5 -1

variable Z variable Y 0 1 2 3 4 variable independiente 5 6

-1.5

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] ); nos definira

F ( s) =

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 2 5 0 1 1

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) pause nichols (planta) pause nyquist (planta) % Diagrama de Nyquist desde w = - hasta w = + % Diagrama de Black % Diagrama de Bode

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

1 0.5 s i x A g a m I

-0.5 -1

-1.5 -4

-3

-2 Real Axis

-1

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; wn=1:10; sgrid(zeta,wn) % Nos muestra rectas de pendiente zeta y % circunferencias de radio wn zoom % Definimos x y wn

18

UPCo ICAI - DEA

MATLAB & SIMULINK Manual de referencia

Y ahora hallamos la ganancia necesaria para obtener los polos [gan,polos]=rlocfind(planta) 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) [num,den]=pade(T, n) minreal(sistema) Halla la ganancia esttica del sistema Devuelve el numerador y denominador de una aproximacin de Pade de e-TS, de orden n Simplifica la funcin de transferencia de sistema % Aparece un cursor en la ventana del % lugar de las races

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 de herramientas de MATLAB. Nos aparecern dos ventanas: una con las libreras de Simulink, y otra en blanco donde construiremos nuestro nuevo modelo. , en la barra

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 _ 10

S +1 S + 3S + 5

Salida

Fig 10. Diagrama de bloques del sistema de control

24

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 R13 = 7.5 C / kW C2= 2.5 min kW / C R23 = 10 C / kW
6

C3= 3.5 min kW / C R30 = 15 C / kW

Las ecuaciones que nos describen este sistema son:

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

MATLAB & SIMULINK Manual de referencia

[T3] 1/15 [T1] 1 s 1/60 [T1]

[T3] 1/25 [T2] 1 s 1/60 [T2]

[T3] 1/7.5 [T1]

[T3] 1/10 [T2] 1 s 1 Out

1/3. [T3] 1/15 1 In

1/60

[T3]

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.52710-9 = 3 (en segundos) Pg ( s ) S + 0.0032S 2 + 2.257310 - 6 S + 2.35210-10


30

UPCo ICAI - DEA

MATLAB & SIMULINK Manual de referencia

Una vez modelado el sistema,

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

You might also like