Está en la página 1de 24

Introduccin a Matlab y Simulink o

Regulacin Automtica o a Ingeniero en Electrnica. Curso 2006/2007. o Javier Aracil y Fabio GmezEstern o

1.

Introduccin o

Matlab es un programa de gran aceptacin en ingenier destinado realizar clculos o a a tcnicos cient e cos y de propsito general. En l se integran operaciones de clculo, o e a visualizacin y programacin, donde la interaccin con el usuario emplea una notacin o o o o matemtica clsica. a a Los usos y aplicaciones t picos de Matlab son: Matemticas y clculo. a a Desarrollo de algoritmos. Adquisicin de datos. o Modelado, simulacin y prototipado. o Anlisis y procesado de datos. a Grcos cient a cos y de ingenier a. Desarrollo de aplicaciones. El tipo bsico de variable con el que trabaja Matlab es una matriz que no requiere a ser dimensionada previamente en la declaracin. Una de las caracter o sticas ms interea santes consiste en que el algebra vectorial y matricial se expresa con la misma sintaxis que las operaciones aritmticas escalares. Por ejemplo, en lenguaje C, para realizar la e suma de dos variables enteras o reales b y c, escribiremos:

a=b+c;

Mientras que en Matlab, emplearemos la misma sentencia tanto si b y c son enteros, reales, vectores o matrices. 1

2.

Componentes de Matlab
Matlab consta de cinco partes fundamentales:

1. Entorno de desarrollo. Se trata de un conjunto de utilidades que permiten el uso de funciones Matlab y cheros en general. Muchas de estas utilidades son interfaces grcas de usuario. Incluye el espacio de trabajo Matlab y la ventana a de comandos. 2. La librer de funciones matemticas Matlab. Se trata de un amplio cona a junto de algoritmos de clculo, comprendiendo las funciones ms elementales a a como la suma, senos y cosenos o la aritmtica compleja, hasta funciones ms e a sosticadas como la inversin de matrices, el clculo de autovalores, funciones de o a Bessel y transformadas rpidas de Fourier. a 3. Grcos. Matlab dispone de un conjunto de utilidades destinadas a visualizar a vectores y matrices en forma de grcos. Existe una gran cantidad de posibilia dades para ajustar el aspecto de los grcos, destacando la visualizacin tridia o mensional con opciones de iluminacin y sombreado, y la posibilidad de crear o animaciones. 4. El interfaz de aplicacin de Matlab (API). Consiste en una librer que o a permite escribir programas ejecutables independientes en C y otros lenguajes, accediendo, mediante DLLs, a las utilidades de clculo matricial de Matlab. a

De estos cuatro puntos, en este cap tulo trataremos, de forma somera, los dos primeros. Los ejemplos que se presentan en este texto, se han desarrollado para la versin de o Matlab 7.0. ellos no impide que puedan funcionar con otras versiones del programa. Concretamente, para la versin 6.5 y posteriores est prcticamente garantizado el o a a funcionamiento. Sin embargo, hay que sealar que algunos complementos de Matlab no aparecen n incluidos en la instalacin bsica del mismo, por tanto un programa que funciona en o a un ordenador con la versin 7.0 instalada, puede fallar en otro ordenador con la misma o versin. o La gestin de complementos de Matlab se realiza mediante lo que se denominan o toolboxes (paquetes de herramientas). Un Toolbox de Matlab es un conjunto de funciones y algoritmos de clculo especializados en un area de conocimiento: nanzas, a tratamiento de seales, teor de sistemas, etc. Para el desarrollo del curso es necesario n a 2

tener instalado, aparte del sistema bsico de Matlab, el denominado Control System a Toolbox.

3.

Simulink

Simulink es una aplicacin que permite construir y simular modelos de sistemas o f sicos y sistemas de control mediante diagramas de bloques. El comportamiento de dichos sistemas se dene mediante funciones de transferencia, operaciones matemticas, a elementos de Matlab y seales predenidas de todo tipo. n Simulink dispone de una serie de utilidades que facilitan la visualizacin, anlio a sis y guardado de los resultados de simulacin. Simulink se emplea profusamente en o ingenier de control. a En el presente curso trabajaremos con la versin 6.0, que viene incluida en el paquete o de Matlab 7.0. Su instalacin es opcional, por tanto debemos seleccionar la opcin o o correspondiente al instalar el programa

4.
4.1.

El entorno de trabajo de Matlab


Ayuda en l nea

Si se ha seleccionado la la opcin correspondiente en la instalacin de Matlab, poo o dremos acceder a la ayuda en l nea en todo momento pulsando la tecla F1. Dicha documentacin est organizada con un o a ndice en forma de arbol y mediante herramien tas de navegacin como hiperv o nculos. Es sumamente recomendable su uso, tanto a modo de introduccin como de referencia para temas espec o cos. Si se desea conocer la documentacin espec o ca asociada a un comando de Matlab, entonces se teclear a >> doc nombre_comando en la l nea de comandos de Matlab.

4.2.

Organizacin de ventanas o

La gura 1 muestra la organizacin por defecto de ventanas que nos encontramos o cuando arrancamos Matlab por primera vez. Las ventanas que en ella aparecen, de arriba a abajo son: en la parte izquierda, la estructura del directorio donde nos encontramos, y debajo de ella la historia de los comandos que se han tecleado en el pasado; en la mitad derecha nos encontramos, arriba, la ventana de edicin de programas Matlab o (que se escriben en un lenguaje propio de Matlab y se almacenan en cheros .m), y debajo la l nea de comandos, donde se sita el cursor para teclear comandos de Matlab. u

Figura 1: Entorno de trabajo Matlab. Inicialmente trabajaremos con la l nea de comandos de Matlab.

4.3.

Operaciones bsicas en l a nea de comandos

Como se ha dicho previamente, en Matlab todos los objetos son matrices. Un escalar no es ms que una matriz 1 1. En la l a nea de comandos, podemos asignar un nombre simblico para identicar una matriz. o >> a=[10; 20; -15]; % Asignacion

Esto es una asignacin de un vector de columna que llevar el nombre a. A su o a derecha aparece un comentario, que tiene su utilidad cuando redactemos programas en 4

Matlab. Los objetos pueden crearse en cualquier momento. Para ello basta con asignarles un valor mediante una asignacin, como en el ejemplo previo. Los identicadores emo pleados para designar matrices son de libre eleccin, con la salvedad de que no pueden o comenzar por un nmero, ni contener espacios en blanco. u Una vez creado un objeto de Matlab, ste pasa a formar parte del espacio de e trabajo ocupando una porcin la memoria. Por tanto, a veces, tras horas de trabajo o con Matlab, necesitaremos eliminar los objetos que ya no se utilicen. Para ello se emplea el comando clear.

>> clear a; % Borra a de la memoria >> clear; % Borra todos los objetos del espacio de trabajo En las sentencias previas, aparece el signo ; al nal de cada comando. Este s mbolo sirve para separar unos comandos de otros. Por ejemplo, cuando escribimos varios comandos en una sola l nea, estos deben aparecer separados por punto y coma. Adems, si escribimos un comando aislado (sin ;) y pulsamos ENTER, Matlab proa porcionar siempre una salida en respuesta al comando: a >> a=[10;20;-15] a = 10 20 -15 Sin embargo, si escribimos el comando seguido de ;, no se mostrar en pantalla la a respuesta. Cuando los comandos forman parte de un programa es conveniente emplear ; para evitar desbordar la pantalla con informacin innecesaria. o

4.4.

Sintaxis de vectores y matrices

Las matrices (y vectores como caso particular de las mismas) se expresan en Matlab empleando corchetes ([ ]); separando las las por espacios o comas (,) y las columnas por ;. De este modo, se puede crear un objeto matriz del siguiente modo: >> mat=[1 2 3; 4 5 6; 7 8 9] 5

mat = 1 4 7 2 5 8 3 6 9

Cuando se trata de un escalar, podemos prescindir de los corchetes >> rad=3.1415; Los elementos de las matrices pueden ser reales o complejos. En este ultimo caso se emplea la letra i para representar el valor 1. Como ejemplo crearemos el vector la v = [2 + 3i, 5i, 3]. >> v=[2+3i, -5i, 3] v = 2.0000 + 3.0000i

0 - 5.0000i

3.0000

El acceso a elementos de una matriz previamente denida puede realizarse especificando la la y columna del elemento que nos interesa entre parntesis e >> mat(2,3) ans = 6 Adems, dentro de estos parntesis podemos indicar variables u operaciones ms coma e a plejas, lo que da una gran potencia al desarrollo de algoritmos. Una vez denidos los objetos con sus identicadores, podemos realizar operaciones aritmticas entre ello con total simplicidad. Para las operaciones vectoriales y matrie ciales, Matlab vericar la coherencia de las dimensiones de los operandos y si no hay a producir error producir un resultado con las dimensiones adecuadas. a a >> v1=[2+3i, -5i, 3]; >> v2=[0, 1, 7]; >> v3=v1+2*v2+[1, 1, 1] v3= 3.0000 + 3.0000i 3.0000 - 5.0000i 6

18.0000

4.5.

Operaciones bsicas con Matlab a

La siguiente tabla ilustra las bsicas aritmticas y lgicas que podemos realizar con a e o Matlab. Expresin en Matlab Operacin o o + Suma aritmtica e Resta aritmtica o cambio de signo e * Multiplicacin aritmtica o e / Divisin o ^ Elevar un nmero a una potencia u < Relacin "menor que" o > Relacin "mayor que" o <= Relacin "menor o igual que" o >= Relacin "mayor o igual que" o == Relacin "igual que" o ~= Relacin "distinto que" o & producto lgico (operacin y) o o | suma lgica (operacin .o") o o ~ negacin (operacin "no") o o Cuadro 1: Operaciones aritmticas y lgicas de en Matlab. e o Todas estas operaciones se aplican indistintamente a escalares, vectores y matrices, y se pueden emplear de dos modos diferentes: en primer lugar, Matlab funciona directamente como una calculadora, para lo cual tecleamos expresiones en l nea de comandos para obtener inmediatamente el resultado de las mismas: >> 12*24.8 ans = 297.6000 As mismo se pueden emplear las operaciones dentro de otras expresiones ms amplias, a logrando as escribir expresiones matemticas de cualquier complejidad. a >> x1=-b+sqrt(b^2-4*a*c)/(2*a);

4.6.

Funciones en Matlab

Buena parte de las operaciones que se realizan con Matlab, son llamadas a funciones. Las funciones procesan informacin, por lo que poseen datos de entrada y de salida, o 7

que pueden ser matriciales. Los datos de entrada se especican entre parntesis, y si son e varios separados por comas. Por ejemplo, la siguiente funcin calcula la ra cuadrada o z de su unico valor de entrada, que es el vector la [4, 2]. >> sqrt([4 2]) ans = 2.0000 1.4142 Las funciones son programas escritos por el usuario o incorporados en el paquete bsico a de Matlab. Entre estas ultimas destacan las siguientes funciones: Nombre sin sinh cos cosh tan tanh cot coth sec sech csc csch asin asinh acos acosh atan atan2 Funcin o Seno Seno hiperblico o Coseno Coseno hiperblico o Tangente Tangente hiperblica o Cotangente Cotangente hiperblica o Secante Secante hiperblica o Cosecante Cosecante hiperblica o Arcoseno (inversa del seno) Inversa del seno hiperblico o Arcocoseno (inversa del coseno) Inversa del coseno hiperblico o Arcotangente (inversa de la tangente) Arcotangente de cuatro cuadrantes Cuadro 2: Funciones elementales de Matlab: Trigonometr a. Nombre Funcin o exp Exponencial log Logaritmo natural (base e) log2 Logaritmo en base 2 log10 Logaritmo en base 10 sqrt Ra cuadrada z Cuadro 3: Funciones elementales de Matlab: Exponenciales.

Nombre Funcin o fix Redondear hacia cero floor Redondear hacia menos innito ceil Redondear hacia ms innito a round Redondear hacia el entero ms cercano a mod Mdulo de la divisin entera o o rem Resto de la divisin entera o Cuadro 4: Funciones elementales de Matlab: Ajuste y redondeo. Nombre inv det eig eye zeros ones length size Funcin o Matriz inversa Determinante Autovalores Matriz traspuesta Crear una matriz identidad dado el nmero de las/columnas u Crear una matriz de ceros dado el nmero de las/columnas u Crear una matriz de unos dado el nmero de las/columnas u Longitud de un vector Dimensiones de una matriz

Cuadro 5: Funciones elementales de Matlab: Operaciones matriciales.

4.7.

Operaciones lgicas o

Algunas de las operaciones y funciones presentadas no devuelven un valor numrico e o matricial como resultado. En su lugar, evalan si cierta condicin es verdadera o u o falsa. En estos casos, el valor devuelto por la funcin equivaldr a 1 si la condicin se o a o cumple, y 0 si no. A modo de ejemplo comprobaremos si una variable x se encuentra en un intervalo determinado >> x=5 >> (x>=0)&(x<=10) % Intervalo [0,10] ans = 1 >> (x>7)&(x<10) % Intervalo (7,10) ans = 0 Las operaciones lgicas se emplearn sobre todo para implementar bifuraciones y bucles o a en los programas Matlab. 9

Nombre Funcin o clear Elimina todas las variables del espacio de trabajo clear x Elimina la variable x del espacio de trabajo who Lista las variables del espacio de trabajo Cuadro 6: Funciones elementales de Matlab: Espacio de trabajo.

4.8.

Operaciones de rango

En Matlab existe un operador de gran utilidad que no tiene parangn en otros o lenguajes de programacin: el operador de rango (:). Para ilustrar su utilidad, baste o indicar que si se desea crear un vector con todos los nmeros enteros entre 1 y 10, u podemos emplear la expresin 1:10. o >> a=1:10 a = 1

10

En general, para secuencias no enteras o no crecientes la sintaxis del operador de rango es valor_minimo : incremento : valor_maximo Por ejemplo, para generar todos los nmeros entre 1 y 2 en incrementos de 0.2 esu cribiremos >> a=1:0.2:2 a = 1.0000

1.2000

1.4000

1.6000

1.8000

2.0000

Una segunda aplicacin del operador de rango es el acceso a submatrices o subveco tores. Supongamos que hemos denido la matriz mat anteriormente mencionada: >> mat=[1 2 3; 4 5 6; 7 8 9]; Para acceder a la submatriz comprendida entre los elementos (2, 1) y (3, 2) bastar con a escribir 10

>> mat(2:3,1:2) ans = 4 5 7 8 Adems, se puede prescindir de alguno de los extremos de este operador cuando se a emplea en el acceso a vectores y matrices. Por ejemplo, si se desea mostrar todos los elementos menos los 3 primeros de un vector: >> a(4:) >> a(4:end) Por otro lado, si lo que deseamos es obtener los 3 ultimos elementos del vector a, escribiremos >> a((length(a)-2):end)

4.9.

Almacenamiento en archivos

Matlab permite almacenar en el disco las variables del espacio de trabajo. De este modo es posible parar una sesin de trabajo y continuar en otro momento sin volver a o repetir clculos. La orden ms comn para almacenar datos es save, que puede usarse a a u de varias maneras. En la tabla siguiente se presenta un resumen. Operacin realizada. o Crea el archivo de nombre matlab.mat en la carpeta actual. Dicho archivo contiene todas las variables que existen en ese momento en entorno Matlab. save nombrearchivo Crea el archivo de nombre en nombrearchivo.mat en la carpeta actual. Dicho archivo contiene todas las variables que existen en ese momento en el entorno Matlab. save nombrearchivo x y z Crea el archivo de nombre nombrearchivo.mat en la carpeta actual. Dicho archivo contiene unicamente las variables x, y y z. Para recuperar las variables almacenadas en un chero previamente creado emplearemos principalmente la funcin load. La siguiente tabla ilustra tres operaciones o t picas de recuperacin de datos. o 11 Orden save

Operacin realizada. o Lee toda las variables del archivo de nombre matlab.mat de la carpeta actual. Si alguna de las variables del disco tiene nombre coincidente con otra que previamente existe en Matlab se producir la destruccin de la varia o able existente para dejar su sitio a la variable del disco. load nombrearchivo Igual que en el caso anterior, pero leyendo del archivo nombrearchivo.mat de la carpeta actual. load nombrearchivo x y z Igual que el anterior pero leyendo unicamente las variables x, y y z.

Orden load

4.10.

Grcas en Matlab a

Las posibilidades de Matlab a la hora de crear grcos de todo tipo son vast a simas. Para tener una visin general de ellas se recomienda al lector un recorrido por la ayuda o en l nea partir del comando >> doc plot En este punto veremos los pasos bsicos para crear una grca a partir de una tabla a a de valores (x, y). Concretamente, trazaremos la parbola de ecuacin a o y = 2x2 + 3x 1 en el intervalo [3, 3]. Toda grca de Matlab ha de ser creada a partir de una nube de puntos, que en el a caso bidimensional consiste en una serie de valores de las coordenadas x y otra serie del mismo tamao de valores de y. Cada pareja (x,y) formada a partir de ambas series n ser un punto de la grca. Para ello crearemos dos vectores de igual tamao n. El a a n primer vector ser x, para las coordenadas de los puntos, a partir de una divisin a o sucientemente na del eje de abcisas: >> x=-3:0.1:3; y a continuacin creamos el vector y, sabiendo que en el grco el elemento i-simo del o a e dicho vector formar un punto (x, y) con el elemento i-simo del vector x. Por tanto, a e 12

se ha de crear un vector y de n componentes, segn la frmula u o yi = 2x2 + 3xi 1 i i = 1...n

Esto se obtiene en Matlab con un slo comando, sin necesidad de bucles: o >> y=2x.^2+3x-1; Obsrvese el . antes de la exponenciacin. Esto evita que el trmino x^2, al ser x un e o e vector, se calcule como el producto escalar de x por s mismo. Finalmente, creados los vectores, creamos la grca y la etiquetamos con los siguientes comandos: a >> >> >> >> plot(x,y); % El orden de los parametros es importante grid; % Visualizar una malla xlabel(Eje x); % Etiqueta eje x ylabel(Eje y); % Etiqueta eje y

Obteniendo el grco de la gura: a


30 25 20 15 Eje y 10 5 0 5 3

0 Eje x

Figura 2: Grco resultante. a

Es muy recomendable consultar la ayuda para conocer las opciones en cuanto a tipos y colores de l nea, tratamiento de ejes (comando axis), etiquetado (comandos xlabel, legend, text), etc. 13

5.

Control System Toolbox

El Control System Toolbox es un componente opcional en la instalacin de Matlab o que consta de una serie de funciones, objetos, bloques Simulink y herramientas destinados a la asistencia en el anlisis y diseo de sistemas de control. El objeto fundamental a n con el que trabajaremos es la funcin de transferencia. Para ilustrar sus propiedades o y el algebra asociada, estudiaremos un ejemplo sencillo de control. Considrese el sistema realimentado de la gura 3. Dicho sistema est formado por e a tres bloques independientes: G1 (s), que representa el controlador, G2 (s), que corresponde a la planta a controlar, y G3 (s), la funcin de transferencia del sensor con el o que se mide la salida del sistema. Los valores de las tres funciones son:

1 s + 0,5 3 G2 (s) = 2 s + 2s + 1 40 G3 (s) = 2 s + 5s + 40 Supongamos que deseamos calcular la funcin de transferencia en bucle cerrado de o dicho sistema, y a continuacin trazar su diagrama de Bode. Lo primero que debemos o conocer es cmo denir una funcin de transferencia en el entorno Matlab. o o G1 (s) = Un polinomio en s se representa en Matlab como un vector cuyos elementos son los coecientes del polinomio por orden de exponente descendente: por ejemplo, s2 2s + 1 se dene en Matlab como el vector [1 2 1]. Por tanto, para denir una funcin de o transferencia en Matlab necesitamos dos vectores. A partir de ellos, con la funcin tf o construiremos las funcin de transferencia del ejemplo: o >> G1=tf([1],[1 0.5]); >> G2=tf([3],[1 2 1]); >> G3=tf([40],[1 5 40]); Lo ms interesante de esos objetos es la posibilidad de realizar operaciones matemticas a a entre ellos. Para ilustrar esto, calcularemos la funcin de transferencia del sistema o realimentado en bucle cerrado, desde la referencia hasta la salida. Sabiendo que dicha funcin tiene la forma o Y (s) G1 (s)G2 (s) Gbc (s) = = , R(s) 1 + G1 (s)G2 (s)G3 (s) teclearemos en Matlab simplemente 14

>> Gbc=G1*G2/(1+G1*G2*G3) Transfer function: 3s^5+22.5s^4+163.5s^3+331.5s^2+247.5s+60 ---------------------------------------------------------------s^8+10s^7+75.25s^6+262.3s^5+471.5s^4+594.5s^3+570.3s^2+321.3s+70 lo que nos muestra la estructura de la funcin de transferencia en bucle cerrado Gbc (s), o que podr ser utilizada a partir de ahora en llamadas a funciones, como las que trazan a los diagramas de Bode (funcin bode) y Nyquist (funcin nyquist). o o

r(t) +  e

Ed E d d d  Tm

u G1 (s)

y(t) G2 (s)

G3 (s)

'

Figura 3: Sistema de Control realimentado

5.1.

Operaciones con polinomios

El Control System Toolbox permite, adems de lo explicado, realizar ciertas opa eraciones con polinomios almacenados en forma de vector, que son muy interesantes dentro de la teor del control automtico. Por ejemplo, podemos calcular el producto a a de dos polinomios en s mediante la funcin conv y a partir de ellos calcular el producto o (cascada) de dos funciones de transferencia: >> >> >> >> >> num1=[1]; den1=[1 0 0.5]; num2=[3]; den2=[1 2 1]; num_producto=conv(num1,num2); den_producto=conv(den1,den2); G12=tf(num_producto,den_producto)

en este caso el resultado del clculo ser igual al producto de las funciones G1 (s) y a a G2 (s), que como sabemos, tambin se obtendr a partir de las deniciones anteriores, e a, 15

escribiendo >> G12=G1*G2 Por otra parte, para obtener las ra ces de un polinomio denido en Matlab como un vector, se emplea la funcin roots: o >> roots([1 2 -1 ]) ans = -2.4142 0.4142

5.2.

Herramientas numricas y grcas e a

Dada una funcin de transferencia, ya sea de bucle abierto o cerrado, existen en el o Control System Toolbox operaciones numricas y grcas de gran utilidad a la hora de e a analizar la estabilidad y otras propiedades. Algunas de ellas aparecen en la siguiente tabla Comando Operacin realizada. o evalfr Evala la magnitud y fase de una funcin de transferencia en la u o frecuencia especicada. bode Traza el diagrama logar tmico de Bode de una funcin de transfero encia dada. Adems presenta interesantes opciones de visualizacin a o como son los mrgenes de ganancia y fase. a nyquist Traza el diagrama de Nyquist de una funcin de transferencia dada. o rlocus Traza el lugar de las ra ces al realimentar negativamente con una ganancia K (variable) la funcin de transferencia dada. o margin Calcula, sobre el diagram de Bode, los mrgenes de fase y ganancia a de una funcin de transferencia y las frecuencias de corte. o pzmap Muestra en una grca del plano complejo la ubicacin de los polos a o y los ceros de una funcin de transferencia dada. o Como ejemplo, se obtendr el diagrama de Bode de la funcin de transferencia a o (estable) 1 G(s) = 2 s + 0,1s + 0,5 y se calcularn los mrgenes de fase y ganancia. Para ello tecleamos a a

16

>> G1=tf([1],[1 0.1 0.5]) >> bode(G1); >> margin(G1); y el resultado aparece representado en la gura 4.
40 30 20 Magnitude (dB) 10 0 10 20 30 40 0 45 Phase (deg) 90 135 180 Bode Diagram Gm = Inf dB (at Inf rad/sec) , Pm = 7.02 deg (at 1.22 rad/sec)

10

10 Frequency (rad/sec)

10

Figura 4: Diagrama logar tmico de Bode.

Por ultimo, volveremos a la funcin Gb c(s) calculada para analizar su estabilidad. o Para ello extraemos su denominador tecleando >> pol=Gbc.den{1} pol = 1.0000 10.0000 75.2500 262.2500 471.5000 594.5000 570.2500 321.2500 70.0000 y a partir de ah evaluamos sus ra mediante ces >> roots(pol) ans = -2.5301 + 5.8437i -2.5301 - 5.8437i -2.3763 17

-0.0317 -0.0317 -1.0000 -1.0000 -0.5000

+ + -

1.2049i 1.2049i 0.0000i 0.0000i

Al estar todas las ra en el semiplano izquierdo, deducimos que el sistema en bucle ces cerrado es estable. Otro modo de vericar esto es trazando el diagrama polocero de Gbc , mediante la instruccin pzmap(Gbc). El resultado se muestra en la gura 5. o
6 PoleZero Map 0.4 0.56 0.28 0.2 0.14 0.09 0.04 6 5 4 3 2 Imaginary Axis 0.8 2 1 0 1 2 0.8 2 3 4 0.56 0.4 2.5 2 0.28 1.5 Real Axis 0.2 1 0.14 0.09 0.5 0.04 4 5 60

6 3

Figura 5: Diagrama polocero de la funcin de transferencia en bucle cerrado Gbc (s). o

6.

El entorno de trabajo de Simulink

Simulink es una herramienta de gran utilidad para la simulacin de sistemas dinmio a cos. Principalmente, se trata de un entorno de trabajo grco, en el que se especican a las partes de un sistema y su interconexin en forma de diagrama de bloques. De nuevo, o se trata de una herramienta ampl sima que adems se complementa con numerosos ela ementos opcionales. Por tanto, nos limitaremos a dar unas pinceladas de los elementos ms utiles en Regulacin Automtica. a o a Adems de las capacidades de simulacin de las que est dotado Simulink, cona o a viene destacar que contiene cmodas utilidades de visualizacin y almacenamiento de o o resultados de simulacin. o 18

6.1.

Uso de Simulink

En primer lugar, lanzaremos la aplicacin escribiendo simulink en la l o nea de comandos de Matlab, o abriendo desde el Explorador de Windows cualquier chero con extensin .mdl. En el primero de los casos se abrir la ventana de la gura 6. Esta o a

Figura 6: Ventana navegacin de bloques de Simulink (Simulink Library Browser). o ventana inicial no est destinada a crear modelos de simulacin; su funcin principal a o o consiste en navegar por la enorme librer de bloques disponibles para el modelado. a En ella distinguimos dos partes: la izquierda contiene una visin en forma de arbol o de todos los Toolboxes instalados que contienen bloques Simulink. La amplitud de este arbol depender de las opciones que hayamos activado al seleccionar Matlab. a De todos los nodos del arbol nos interesan, de momento, los denominados Simulink y Control System Toolbox. Cabe mencionar adems, por su inters, los bloques Real Time a e Workshop destinados a generar automticamente cdigo de control para determinadas a o plataformas Hardware comerciales. La parte derecha de la ventana de la gura 6 muestra los bloques Simulink contenidos en el Toolbox o nodo de la parte izquierda de la ventana. Estos bloques se deben arrastrar sobre el espacio de trabajo de Simulink para la creacin de modelo a o simular. Por ultimo, cabe indicar que en la parte superior de la ventana de inicio de Simulink hay varias herramientas como la bsqueda de un bloque determinado a partir de su u nombre, que nos pueden resultar bastante utiles. 19

6.2.

El espacio de trabajo de Simulink

Si pulsamos en el icono superior izquierdo de la ventana de la gura 6 (pgina en a blanco), se abre una ventana blanca sobre la que iniciaremos la creacin de un modelo o de simulacin. Dicha ventana se muestra en la gura 7. o

Figura 7: Espacio de trabajo de Simulink. En el espacio de trabajo de Simulink crearemos un modelo insertando los bloques correspondientes. Concretamente realizaremos la simulacin del sistema de control repo resentado en la gura 3. En lugar de emplear las deniciones en Matlab de las funciones de transferencia presentadas en el apartado anterior (empleando la funcin tf), creareo mos las funciones de transferencia directamente sobre el diagrama de bloques. En primer lugar, hemos de insertar tres bloques de tipo Funcin de Transferencia o en el modelo. Para ello tecleamos la palabra transfer en el campo de bsquedas en la u parte superior de la ventana de navegacin y el buscador localizar el bloque llamado o a Transfer Fcn, que cuelga del nodo Simulink, como se muestra en la gura 8. Una vez localizado el bloque Transfer Fcn arrastraremos dicho bloque hacia el espacio de trabajo de Simulink. El arrastre de bloques se realiza seleccionando el icono del bloque con el botn izquierdo del ratn, y manteniendo ste pulsado se desplazar el o o e a cursor hasta la ventana del modelo. Repetiremos la operacin tres veces, para reproducir la estructura de la gura 3, o dando lugar a la ventana mostrada en la gura 9. Una vez insertados los bloques de las funciones de transferencia, les asignamos nombres espec cos (G1,G2 y G3) editando el texto al pie de cada icono, y les damos valores a dichas funciones, para que coincidan con los parmetros de las funciones a G1 (s), G2 (s) y G3 (s) denidas anteriormente. Con este n, haremos doble click sobre cada bloque de funcin de transferencia, y o 20

Figura 8: Ubicacin del bloque Transfer Fcn. o en la ventana que se abre en cada caso, introduciremos los vectores de coecientes de los polinomios numerador y denominador de cada funcin de transferencia. La gura 10 o muestra la ventana donde se introducen los parmetros de G1 (s). a Una vez conguradas las tres funciones de transferencia las conectaremos entre s con arreglo a la estructura de interconexin de bloques de la gura 3. Para ello o empleamos las siguientes operaciones:

21

Figura 9: Bloques de funcin de transferencia en Simulink. o

Figura 10: Introduccin de los parmetros de G1 (s) = 1/(s + 0,5). o a Procedimiento. Para conectar las salidas de un bloque a la entrada de otro, hacer click con el botn izqdo. del ratn en el o o bloque origen. Pulsar y mantener la tecla CTRL y hacer de nuevo click sobre el bloque destino. Conectar bloques (II) Tambin se puede extraer un cable de seal haciendo e n click en el saliente derecho del bloque origen y prolongar la seal (pulsando y manteniendo el botn izquierdo n o del ratn) hasta llegar a la parte izquierda del bloque o destino. Bifurcar cables Un cable de seal (que lleva la salida de un bloque n hacia otro bloque), puede bifurcarse para distribuir la seal a varios bloques pulsando con el botn derecho en n o cualquier punto del cable. Sumar o restar seales Las seales procedentes de salidas de los bloques se n n pueden sumar o restar entre s mediante el bloque sumador, que se ubica fcilmente tecleando Sum en la a ventana de navegacin de Simuink. o 22 Operacin o Conectar bloques (I)

Tras una serie de operaciones de los tipos indicados en la tabla anterior, logramos construir la estructura de realimentacin de la gura 11. En esta gura hemos aadido o n dos bloques nuevos: Step y Scope. Ambos pertenecen, respectivamente, a los nodos Simulink/Sources y Simulink/Sinks que sern comentados en el siguiente apartado. a

Figura 11: Modelo completo.

6.3.

Fuentes y sumideros de se al n

Los bloques de suma y resta de seales y los de funciones de transferencia, funcionan n como procesadores de seal. Sin embargo, en las simulaciones han de existir fuentes de n seal externas, pues lo que se pretende en general es ver cmo responden determinados n o sistemas a est mulos exteriores. En nuestro ejemplo necesitamos una seal externa para generar una referencia a n seguir por el sistema controlado. Esta referencia debe ser, lgicamente, cambiante con o el tiempo. En nuestro caso emplearemos una seal de tipo escaln, que se implementa, n o con sus parmetros espec a cos, mediante el bloque Step. Bloques como ste, que slo e o tienen salidas y ninguna entrada, se localizan en el arbol de navegacin de Simulink en o el nodo Simulink/Sources. Por otro lado, existen bloques con entradas y sin ninguna salida: nodos sumidero. Uno de ellos es el empleado en nuestro modelo para visualizar la salida del sistema: Scope. Los bloques de este tipo se ubican en el arbol de navegacin de Simulink en el o nodo Simulink/Sinks. A modo de referencia, la tabla 7 muestra algunas fuentes de seal de uso comn (non u do Simulink/Sources), mientras que la tabla 8 muestra algunos de los bloques sumidero (Simulink/Sinks) ms comunes. a 23

Funcin o Marcas de tiempo de la simulacin. Util para trazar grcas o a con los resultados. Sin Seal senoidal parametrizable. n Step Seal en escaln n o Constant Seal de valor constante. n Signal generator Permite elegir entre un conjunto de seales predenidas. n Random Number Generacin de ruido blanco congurable. o From Workspace Seal generada a partir de una variable del espacio de trabajo n de Matlab. Cuadro 7: Fuentes de seal en Simulink. n

Elemento Clock

Elemento Scope XY Graph To Workspace

Funcin o Grca 2D para visualizar las seales frente al tiempo durante a n la simulacin. o Grca 2D para visualizar un grco X-Y creado a partir de a a dos seales de entrada. n Almacena las muestras de la seal de entrada en una variable n (vector) del espacio de trabajo de Matlab. Cuadro 8: Sumideros de seal en Simulink. n

24

También podría gustarte