Monografias.com > Ingeniería
Descargar Imprimir Comentar Ver trabajos relacionados

Introduccion a Matlab y Simulink




Enviado por Carlos Gomero



    Monografias.com

    o a
    o
    o
    o ia a
    e e a
    o o
    a

    a
    o
    o
    a
    a
    a
    o a
    ´
    e
    Introducción a Matlab y Simulink

    Regulación Automatica
    Ingeniero en Electr´nica. Curso 2006/2007.
    Javier Aracil y Fabio G´mez–Estern
    1.
    Introducción
    Matlab es un programa de gran aceptación en ingeniera destinado realizar calculos
    tecnicos cientificos y de proposito general. En ´l se integran operaciones de calculo,
    visualización y programación, donde la interacción con el usuario emplea una notación
    matematica clasica.

    Los usos y aplicaciones ipicos de Matlab son:

    Matematicas y calculo.

    Desarrollo de algoritmos.

    Adquisición de datos.

    Modelado, simulación y prototipado.

    Analisis y procesado de datos.

    Graficos cientificos y de ingenieraia.

    Desarrollo de aplicaciones.

    El tipo basico de variable con el que trabaja Matlab es una matriz que no requiere
    ser dimensionada previamente en la declaración. Una de las caracteraisticas mas intere-
    santes consiste en que el algebra vectorial y matricial se expresa con la misma sintaxis
    que las operaciones aritmaticas escalares. Por ejemplo, en lenguaje C, para realizar la
    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

    Monografias.com

    2.
    a
    ia
    a a
    e a
    o a
    a
    a
    a
    a o
    o
    o ia
    a
    o
    o a a
    n
    o a
    o
    o
    o
    a ´
    n ia
    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 ficheros en general. Muchas de estas utilidades son
    interfaces graficas de usuario. Incluye el espacio de trabajo Matlab y la ventana
    de comandos.
    2. La libreria de funciones matematicas Matlab. Se trata de un amplio conjunto de algoritmos de calculo, comprendiendo las funciones mas elementales
    como la suma, senos y cosenos o la aritmatica compleja, hasta funciones mas
    sofisticadas como la inversion de matrices, el calculo de autovalores, funciones de
    Bessel y transformadas rapidas de Fourier.
    3. Graficos. Matlab dispone de un conjunto de utilidades destinadas a visualizar
    vectores y matrices en forma de graficos. Existe una gran cantidad de posibilidades para ajustar el aspecto de los graficos, destacando la visualización tridimensional con opciones de iluminación y sombreado, y la posibilidad de crear
    animaciones.
    4. El interfaz de aplicación de Matlab (API). Consiste en una libreria que
    permite escribir programas ejecutables independientes en C y otros lenguajes,
    accediendo, mediante DLLs, a las utilidades de calculo matricial de Matlab.
    De estos cuatro puntos, en este cap´itulo trataremos, de forma somera, los dos
    primeros.
    Los ejemplos que se presentan en este texto, se han desarrollado para la version de
    Matlab 7.0. ellos no impide que puedan funcionar con otras versiones del programa.
    Concretamente, para la version 6.5 y posteriores esta practicamente garantizado el
    funcionamiento.
    Sin embargo, hay que señalar que algunos complementos de Matlab no aparecen
    incluidos en la instalación basica del mismo, por tanto un programa que funciona en
    un ordenador con la version 7.0 instalada, puede fallar en otro ordenador con la misma
    version.
    La gestion de complementos de Matlab se realiza mediante lo que se denominan
    toolboxes (paquetes de herramientas). Un Toolbox de Matlab es un conjunto de fun-
    ciones y algoritmos de calculo especializados en un area de conocimiento: ?nanzas,
    tratamiento de señales, teor´ de sistemas, etc. Para el desarrollo del curso es necesario
    2

    Monografias.com

    a
    4.
    o

    n
    o
    o
    ia
    o
    o

    o

    a ´ ´
    o

    tener instalado, aparte del sistema basico de Matlab, el denominado Control System
    Toolbox.
    3.
    Simulink
    Simulink es una aplicación que permite construir y simular modelos de sistemas
    isicos y sistemas de control mediante diagramas de bloques. El comportamiento de
    dichos sistemas se de?ne mediante funciones de transferencia, operaciones matematicas,
    elementos de Matlab y señales predefinidas de todo tipo.

    Simulink dispone de una serie de utilidades que facilitan la visualización, anali-
    sis y guardado de los resultados de simulación. Simulink se emplea profusamente en
    ingeniera de control.

    En el presente curso trabajaremos con la version 6.0, que viene incluida en el paquete
    de Matlab 7.0. Su instalación es opcional, por tanto debemos seleccionar la opción
    correspondiente al instalar el programa

    El entorno de trabajo de Matlab
    4.1.
    Ayuda en inea
    Si se ha seleccionado la la opción correspondiente en la instalación de Matlab, po-
    dremos acceder a la ayuda en inea en todo momento pulsando la tecla F1. Dicha
    documentación esta organizada con un indice en forma de arbol y mediante herramien-
    tas de navegación como hiperv´inculos. Es sumamente recomendable su uso, tanto a
    modo de introducción como de referencia para temas especificos. Si se desea conocer
    la documentación especifica asociada a un comando de Matlab, entonces se teclear´

    >> doc nombre_comando

    en la inea de comandos de Matlab.

    3

    Monografias.com

    o
    4.3.
    a
    no es mas que una matriz 1 × 1. En la l´
    o
    l´ u

    a l´
    o
    o
    4.2.
    Organización de ventanas
    La figura 1 muestra la organización por defecto de ventanas que nos encontramos
    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 encon-
    tramos, 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 edición de programas Matlab
    (que se escriben en un lenguaje propio de Matlab y se almacenan en ficheros .m), y
    debajo la inea de comandos, donde se sit´a el cursor para teclear comandos de Matlab.

    Figura 1: Entorno de trabajo Matlab.

    Inicialmente trabajaremos con la inea de comandos de Matlab.

    Operaciones basicas en inea de comandos

    Como se ha dicho previamente, en Matlab todos los objetos son matrices. Un escalar
    inea de comandos, podemos asignar un nombre
    simb´lico para identi?car una matriz.
    >> a=[10; 20; -15];
    % Asignacion
    Esto es una asignación de un vector de columna que llevar´ el nombre a. A su
    derecha aparece un comentario, que tiene su utilidad cuando redactemos programas en

    4

    Monografias.com

    o
    o
    u
    e

    a
    Matlab.

    Los objetos pueden crearse en cualquier momento. Para ello basta con asignarles
    un valor mediante una asignación, como en el ejemplo previo. Los identi?cadores em-
    pleados para designar matrices son de libre elección, con la salvedad de que no pueden
    comenzar por un n´mero, ni contener espacios en blanco.

    Una vez creado un objeto de Matlab, ´ste pasa a formar parte del espacio de
    trabajo ocupando una porción la memoria. Por tanto, a veces, tras horas de trabajo
    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´imbo-
    lo sirve para separar unos comandos de otros. Por ejemplo, cuando escribimos var-
    ios comandos en una sola inea, estos deben aparecer separados por punto y coma.
    Ademas, si escribimos un comando aislado (sin ‘;’) y pulsamos ENTER, Matlab pro-
    porcionar´ siempre una salida en respuesta al comando:

    >> a=[10;20;-15]
    a =
    10
    20
    -15

    Sin embargo, si escribimos el comando seguido de ‘;’, no se mostrar´ en pantalla la
    respuesta. Cuando los comandos forman parte de un programa es conveniente emplear
    ‘;’ para evitar desbordar la pantalla con información innecesaria.
    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

    Monografias.com

    reales o complejos. En este ultimo caso se
    ´
    Los elementos de las matrices pueden serv
    e
    a e a
    e
    a a
    mat =
    1
    4
    7
    2
    5
    8
    3
    6
    9
    Cuando se trata de un escalar, podemos prescindir de los corchetes

    >> rad=3.1415;

    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 definida puede realizarse especif-
    icando la ?la y columna del elemento que nos interesa entre par´ntesis

    >> mat(2,3)
    ans =
    6

    Ademas, dentro de estos par´ntesis podemos indicar variables u operaciones mas com-
    plejas, lo que da una gran potencia al desarrollo de algoritmos.

    Una vez definidos los objetos con sus identi?cadores, podemos realizar operaciones
    aritmaticas entre ello con total simplicidad. Para las operaciones vectoriales y matri-
    ciales, Matlab veri?car´ la coherencia de las dimensiones de los operandos y si no hay
    producir´ error producir´ un resultado con las dimensiones adecuadas.

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

    Monografias.com

    a
    +
    *
    a e o
    o o
    e
    e
    o e
    o
    ^
    <
    >
    =
    ==
    ~=
    &
    |
    ~
    u
    o
    o
    o
    o
    o
    o
    o
    o
    o
    e o

    i a
    i
    4.5.
    Operaciones basicas con Matlab
    La siguiente tabla ilustra las basicas aritmaticas y logicas que podemos realizar con
    Matlab.
    Expresion en Matlab Operación
    Suma aritmatica
    Resta aritmatica o cambio de signo
    Multiplicación aritmatica
    /
    Division
    Elevar un n´mero a una potencia
    Relación "menor que"
    Relación "mayor que"
    Relación "menor o igual que"
    Relación "mayor o igual que"
    Relación "igual que"
    Relación "distinto que"
    producto logico (operación ‘‘y’’)
    suma logica (operación .o")
    negación (operación "no")

    Cuadro 1: Operaciones aritmaticas y logicas de en Matlab.

    Todas estas operaciones se aplican indistintamente a escalares, vectores y matrices,
    y se pueden emplear de dos modos diferentes: en primer lugar, Matlab funciona directa-
    mente como una calculadora, para lo cual tecleamos expresiones en inea 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 mas amplias,
    logrando as´ escribir expresiones matematicas de cualquier complejidad.

    >> 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 información, por lo que poseen datos de entrada y de salida,

    7

    Monografias.com

    e
    o iz
    ´
    a
    ´
    o
    o
    o
    o
    o
    o
    o
    o
    o
    o
    iz
    que pueden ser matriciales. Los datos de entrada se especi?can entre par´ntesis, y si son
    varios separados por comas. Por ejemplo, la siguiente función calcula la ra´ cuadrada
    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 basico
    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
    Función
    Seno
    Seno hiperb´lico
    Coseno
    Coseno hiperb´lico
    Tangente
    Tangente hiperb´lica
    Cotangente
    Cotangente hiperb´lica
    Secante
    Secante hiperb´lica
    Cosecante
    Cosecante hiperb´lica
    Arcoseno (inversa del seno)
    Inversa del seno hiperb´lico
    Arcocoseno (inversa del coseno)
    Inversa del coseno hiperb´lico
    Arcotangente (inversa de la tangente)
    Arcotangente de cuatro cuadrantes
    Cuadro 2: Funciones elementales de Matlab: Trigonometr´ia.

    Nombre Función
    exp
    log
    log2
    log10
    sqrt
    Exponencial
    Logaritmo natural (base e)
    Logaritmo en base 2
    Logaritmo en base 10
    Ra´ cuadrada

    Cuadro 3: Funciones elementales de Matlab: Exponenciales.

    8

    Monografias.com

    o

    eye
    zeros
    ones
    a
    a
    o o
    o
    o
    u
    u
    u
    o
    e
    u
    o
    o
    Nombre Función
    fix
    floor
    ceil
    round
    mod
    rem

    Nombre
    inv
    det
    eig

    length
    size
    Redondear hacia cero
    Redondear hacia menos in?nito
    Redondear hacia mas in?nito
    Redondear hacia el entero mas cercano
    Modulo de la division entera
    Resto de la division entera

    Cuadro 4: Funciones elementales de Matlab: Ajuste y redondeo.

    Función
    Matriz inversa
    Determinante
    Autovalores
    Matriz traspuesta
    Crear una matriz identidad dado el n´mero de ?las/columnas
    Crear una matriz de ceros dado el n´mero de ?las/columnas
    Crear una matriz de unos dado el n´mero de ?las/columnas
    Longitud de un vector
    Dimensiones de una matriz
    Cuadro 5: Funciones elementales de Matlab: Operaciones matriciales.
    4.7.
    Operaciones logicas
    Algunas de las operaciones y funciones presentadas no devuelven un valor num´rico
    o matricial como resultado. En su lugar, eval´an si cierta condición es verdadera o
    falsa. En estos casos, el valor devuelto por la función equivaldr´ a 1 si la condición se
    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> (x>7)&(x> a=1:10
    a =
    1
    2
    3
    4
    5
    6
    7
    8
    9
    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 n´meros entre 1 y 2 en incrementos de 0.2 es-
    cribiremos

    >> a=1:0.2:2
    a =
    1.0000
    1.2000
    1.4000
    1.6000
    1.8000
    2.0000
    Una segunda aplicación del operador de rango es el acceso a submatrices o subvec-
    tores. Supongamos que hemos definido 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
    escribir

    10

    Monografias.com

    a
    ´
    o
    a a u
    save
    o
    ´
    o
    t´ o
    >> mat(2:3,1:2)
    ans =
    4
    7
    5
    8
    Ademas, se puede prescindir de alguno de los extremos de este operador cuando se
    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 sesion de trabajo y continuar en otro momento sin volver a
    repetir calculos. La orden mas com´n para almacenar datos es save, que puede usarse
    de varias maneras. En la tabla siguiente se presenta un resumen.
    Orden

    save nombrearchivo
    Operación realizada.
    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.
    Crea el archivo de nombre en nombrearchi vo.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 nombrearchi vo.mat en la carpeta actual. Dicho archivo
    contiene unicamente las variables x, y y z.

    Para recuperar las variables almacenadas en un fichero previamente creado em-
    plearemos principalmente la función load. La siguiente tabla ilustra tres operaciones
    ipicas de recuperación de datos.

    11

    Monografias.com

    load
    o
    a o
    ´
    a
    a
    o

    a a
    o
    a
    n
    a a n
    a o
    a e
    e
    Orden

    load nombrearchivo
    Operación realizada.
    Lee toda las variables del archivo de nombre
    matlab.mat de la carpeta actual. Si alguna
    de las variables del disco tiene nombre co-
    incidente con otra que previamente existe en
    Matlab se producir´ la destrucción de la vari-
    able existente para dejar su sitio a la variable
    del disco.
    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.
    4.10.
    Graficas en Matlab
    Las posibilidades de Matlab a la hora de crear graficos de todo tipo son vast´isimas.
    Para tener una vision general de ellas se recomienda al lector un recorrido por la ayuda
    en inea partir del comando

    >> doc plot

    En este punto veremos los pasos basicos para crear una grafica a partir de una tabla
    de valores (x, y). Concretamente, trazaremos la par´bola de ecuación

    y = 2×2 + 3x – 1
    en el intervalo [-3, 3].

    Toda grafica de Matlab ha de ser creada a partir de una nube de puntos, que en el
    caso bidimensional consiste en una serie de valores de las coordenadas x y otra serie
    del mismo tamaño de valores de y. Cada pareja (x,y) formada a partir de ambas series
    sera un punto de la grafica. Para ello crearemos dos vectores de igual tamaño n. El
    primer vector sera x, para las coordenadas de los puntos, a partir de una division
    su?cientemente ?na del eje de abcisas:

    >> x=-3:0.1:3;

    y a continuación creamos el vector y, sabiendo que en el grafico el elemento i-´simo del
    dicho vector formar´ un punto (x, y) con el elemento i-´simo del vector x. Por tanto,

    12

    Monografias.com

    Ejey
    u o
    i
    >>
    >>
    >>
    >>
    o
    e e
    i
    a
    a
    a

    se ha de crear un vector y de n componentes, seg´n la f´rmula
    yi = 2×2 + 3xi – 1
    i = 1 …n
    Esto se obtiene en Matlab con un s´lo comando, sin necesidad de bucles:

    >> y=2x.^2+3x-1;

    Obs´rvese el ‘.’ antes de la exponenciación. Esto evita que el t´rmino x^2, al ser x un
    vector, se calcule como el producto escalar de x por s´ mismo. Finalmente, creados los
    vectores, creamos la grafica y la etiquetamos con los siguientes comandos:

    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 grafico de la figura:

    30

    25

    20

    15

    10

    5

    0
    -5
    -3
    -2
    -1
    0
    Eje x
    1
    2
    3
    Figura 2: Grafico resultante.

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

    13

    Monografias.com

    5.
    o
    n
    o
    ´
    e a
    o
    s + 2s + 1
    s + 5s + 40
    o
    transferencia en Matlab necesitamos dos vectores. A partir de ellos, con la función tf
    o
    o
    o o
    o
    a
    o
    o
    ,
    Control System Toolbox

    El Control System Toolbox es un componente opcional en la instalación de Matlab
    que consta de una serie de funciones, objetos, bloques Simulink y herramientas destina-
    dos a la asistencia en el analisis y diseño de sistemas de control. El objeto fundamental
    con el que trabajaremos es la función de transferencia. Para ilustrar sus propiedades
    y el algebra asociada, estudiaremos un ejemplo sencillo de control.

    Consid´rese el sistema realimentado de la figura 3. Dicho sistema esta formado por
    tres bloques independientes: G1 (s), que representa el controlador, G2 (s), que corre-
    sponde a la planta a controlar, y G3 (s), la función de transferencia del sensor con el
    que se mide la salida del sistema. Los valores de las tres funciones son:
    G1 (s) =
    1
    s + 0,5
    3
    G2 (s) = 2
    40
    G3 (s) = 2

    Supongamos que deseamos calcular la función de transferencia en bucle cerrado de
    dicho sistema, y a continuación trazar su diagrama de Bode. Lo primero que debemos
    conocer es como definir una función de transferencia en el entorno Matlab.

    Un polinomio en s se representa en Matlab como un vector cuyos elementos son los
    coe?cientes del polinomio por orden de exponente descendente: por ejemplo, s2 – 2s + 1
    se de?ne en Matlab como el vector [1 – 2 1]. Por tanto, para definir una función de
    construiremos las función de transferencia del ejemplo:

    >> G1=tf([1],[1 0.5]);
    >> G2=tf([3],[1 2 1]);
    >> G3=tf([40],[1 5 40]);

    Lo mas interesante de esos objetos es la posibilidad de realizar operaciones matematicas
    entre ellos. Para ilustrar esto, calcularemos la función de transferencia del sistema
    realimentado en bucle cerrado, desde la referencia hasta la salida. Sabiendo que dicha
    función tiene la forma
    Gbc (s) =
    Y (s)
    R(s)
    =
    G1 (s)G2 (s)
    1 + G1 (s)G2 (s)G3 (s)
    teclearemos en Matlab simplemente

    14

    Monografias.com

    o
    a
    o o
    e
      d
      d
    – T m
    d  d  
    >>
    >>
    >>
    >>
    >>
    ia
    o
    a ia
    e
    >> 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 función de transferencia en bucle cerrado Gbc (s),
    que podr´ ser utilizada a partir de ahora en llamadas a funciones, como las que trazan
    los diagramas de Bode (función bode) y Nyquist (función nyquist).
    r(t) + E

    E
    G1 (s)
    u
    E
    G2 (s)
    y(t)
    E
    G3 (s)
    '
    Figura 3: Sistema de Control realimentado
    5.1.
    Operaciones con polinomios
    El Control System Toolbox permite, ademas de lo explicado, realizar ciertas op-
    eraciones con polinomios almacenados en forma de vector, que son muy interesantes
    dentro de la teor´ del control automatico. Por ejemplo, podemos calcular el producto
    de dos polinomios en s mediante la función conv y a partir de ellos calcular el producto
    (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 calculo sera igual al producto de las funciones G1 (s) y
    G2 (s), que como sabemos, tambion se obtendr´ia, a partir de las definiciones anteriores,

    15

    Monografias.com

    5.2.
    evalfr
    bode
    rlocus
    margin
    pzmap
    o
    e a
    o
    e a
    o
    u o
    o
    a o
    a
    o
    o
    a
    o
    a o
    o
    a o
    G(s) = 2
    a
    escribiendo

    >> G12=G1*G2

    Por otra parte, para obtener las ra´ices de un polinomio definido en Matlab como un
    vector, se emplea la función roots:

    >> roots([1 2 -1 ])
    ans =
    -2.4142
    0.4142

    Herramientas num´ricas y graficas

    Dada una función de transferencia, ya sea de bucle abierto o cerrado, existen en el
    Control System Toolbox operaciones num´ricas y graficas de gran utilidad a la hora de
    analizar la estabilidad y otras propiedades. Algunas de ellas aparecen en la siguiente
    tabla

    Comando Operación realizada.
    Eval´a la magnitud y fase de una función de transferencia en la
    frecuencia especi?cada.
    Traza el diagrama logar´itmico de Bode de una función de transfer encia dada. Ademas presenta interesantes opciones de visualización
    como son los m´rgenes de ganancia y fase.
    nyquist Traza el diagrama de Nyquist de una función de transferencia dada.
    Traza el lugar de las ra´ices al realimentar negativamente con una
    ganancia K (variable) la función de transferencia dada.
    Calcula, sobre el diagram de Bode, los m´rgenes de fase y ganancia
    de una función de transferencia y las frecuencias de corte.
    Muestra en una grafica del plano complejo la ubicación de los polos
    y los ceros de una función de transferencia dada.

    Como ejemplo, se obtendr´ el diagrama de Bode de la función de transferencia
    (estable)
    1
    s + 0,1s + 0,5
    y se calcular´n los m´rgenes de fase y ganancia. Para ello tecleamos

    16

    Monografias.com

    Magnitude(dB)
    Phase(deg)
    40
    0
    ´ o
    i
    >> G1=tf([1],[1 0.1 0.5])
    >> bode(G1);
    >> margin(G1);

    y el resultado aparece representado en la figura 4.

    Bode Diagram
    Gm = Inf dB (at Inf rad/sec) , Pm = 7.02 deg (at 1.22 rad/sec)
    30
    20
    10
    0
    -10
    -20
    -30
    -40

    -45

    -90

    -135
    -180
    -1
    10
    0
    10
    1
    10
    Frequency (rad/sec)

    Figura 4: Diagrama logar´itmico de Bode.

    Por ultimo, volveremos a la función Gb c(s) calculada para analizar su estabilidad.
    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´ices mediante

    >> roots(pol)
    ans =
    -2.5301 + 5.8437i
    -2.5301 – 5.8437i
    -2.3763

    17

    Monografias.com

    ImaginaryAxis
    +
    +
    o
    6.
    o
    o a
    a
    a ´ o a
    a o a
    o o
    o
    -0.0317
    -0.0317
    -1.0000
    -1.0000
    1.2049i
    1.2049i
    0.0000i
    0.0000i
    -0.5000

    Al estar todas las ra´ices en el semiplano izquierdo, deducimos que el sistema en bucle
    cerrado es estable. Otro modo de veri?car esto es trazando el diagrama polo–cero de
    Gbc , mediante la instrucción pzmap(Gbc). El resultado se muestra en la figura 5.
    6
    0.4
    Pole-Zero Map
    0.28
    0.2
    0.14
    0.09
    0.04
    6
    5
    4

    2
    0.56

    0.8
    4
    3
    2
    1

    0

    1
    -2

    -4
    0.8

    0.56
    2
    3
    4
    -6
    -3
    0.4
    -2.5
    -2
    0.28
    -1.5
    0.2
    -1
    0.14
    0.09
    -0.5
    0.04
    5
    6 0
    Real Axis

    Figura 5: Diagrama polo–cero de la función de transferencia en bucle cerrado Gbc (s).

    El entorno de trabajo de Simulink

    Simulink es una herramienta de gran utilidad para la simulación de sistemas din´mi-
    cos. Principalmente, se trata de un entorno de trabajo grafico, en el que se especi?can
    las partes de un sistema y su interconexion en forma de diagrama de bloques. De nuevo,
    se trata de una herramienta ampl´isima que ademas se complementa con numerosos el-
    ementos opcionales. Por tanto, nos limitaremos a dar unas pinceladas de los elementos
    mas utiles en Regulación Automatica.

    Ademas de las capacidades de simulación de las que esta dotado Simulink, con-
    viene destacar que contiene comodas utilidades de visualización y almacenamiento de
    resultados de simulación.

    18

    Monografias.com

    o l´
    o
    o
    a o o
    ia
    o ´
    ´ a
    ´
    o
    o
    ´
    u
    ´
    6.1.
    Uso de Simulink
    En primer lugar, lanzaremos la aplicación escribiendo simulink en la inea de co-
    mandos de Matlab, o abriendo desde el Explorador de Windows cualquier fichero con
    extension .mdl. En el primero de los casos se abrir´ la ventana de la figura 6. Esta

    Figura 6: Ventana navegación de bloques de Simulink (Simulink Library Browser).

    ventana inicial no esta destinada a crear modelos de simulación; su función principal
    consiste en navegar por la enorme libreria de bloques disponibles para el modelado.

    En ella distinguimos dos partes: la izquierda contiene una vision en forma de arbol
    de todos los Toolboxes instalados que contienen bloques Simulink. La amplitud de
    este arbol dependera de las opciones que hayamos activado al seleccionar Matlab.
    De todos los nodos del arbol nos interesan, de momento, los denominados Simulink y
    Control System Toolbox. Cabe mencionar ademas, por su interes, los bloques Real Time
    Workshop destinados a generar automaticamente c´digo de control para determinadas
    plataformas Hardware comerciales.

    La parte derecha de la ventana de la figura 6 muestra los bloques Simulink con-
    tenidos 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 creación de modelo a
    simular.

    Por ultimo, cabe indicar que en la parte superior de la ventana de inicio de Simulink
    hay varias herramientas como la b´squeda de un bloque determinado a partir de su
    nombre, que nos pueden resultar bastante utiles.

    19

    Monografias.com

    6.2.
    a
    o
    o
    o
    o
    o
    u
    o
    o e
    o
    El espacio de trabajo de Simulink
    Si pulsamos en el icono superior izquierdo de la ventana de la figura 6 (p´gina en
    blanco), se abre una ventana blanca sobre la que iniciaremos la creación de un modelo
    de simulación. Dicha ventana se muestra en la figura 7.
    Figura 7: Espacio de trabajo de Simulink.
    En el espacio de trabajo de Simulink crearemos un modelo insertando los bloques
    correspondientes. Concretamente realizaremos la simulación del sistema de control rep-
    resentado en la figura 3. En lugar de emplear las definiciones en Matlab de las funciones
    de transferencia presentadas en el apartado anterior (empleando la función tf), creare-
    mos las funciones de transferencia directamente sobre el diagrama de bloques.
    En primer lugar, hemos de insertar tres bloques de tipo Función de Transferencia
    en el modelo. Para ello tecleamos la palabra transfer en el campo de b´squedas en la
    parte superior de la ventana de navegación y el buscador localizar´ el bloque llamado
    Transfer Fcn, que cuelga del nodo Simulink, como se muestra en la figura 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 boton izquierdo del raton, y manteniendo ´ste pulsado se desplazar´ el
    cursor hasta la ventana del modelo.
    Repetiremos la operación tres veces, para reproducir la estructura de la figura 3,
    dando lugar a la ventana mostrada en la figura 9.
    Una vez insertados los bloques de las funciones de transferencia, les asignamos
    nombres especificos (G1,G2 y G3) editando el texto al pie de cada icono, y les damos
    valores a dichas funciones, para que coincidan con los parametros de las funciones
    G1 (s), G2 (s) y G3 (s) definidas anteriormente.
    Con este ?n, haremos doble click sobre cada bloque de función de transferencia, y
    20

    Monografias.com

    o
    o
    i
    Figura 8: Ubicación del bloque Transfer Fcn.
    en la ventana que se abre en cada caso, introduciremos los vectores de coe?cientes de
    los polinomios numerador y denominador de cada función de transferencia. La figura 10
    muestra la ventana donde se introducen los parametros de G1 (s).
    Una vez configuradas las tres funciones de transferencia las conectaremos entre
    s´ con arreglo a la estructura de interconexion de bloques de la figura 3. Para ello
    empleamos las siguientes operaciones:
    21

    Monografias.com

    o
    o
    o
    e n
    n
    o
    n
    n
    n n
    i
    a
    o
    Figura 9: Bloques de función de transferencia en Simulink.

    Figura 10: Introducción de los parametros de G1 (s) = 1/(s + 0,5).
    Operación
    Conectar bloques (I)
    Procedimiento.
    Para conectar las salidas de un bloque a la entrada de
    otro, hacer click con el boton izqdo. del raton en el
    bloque origen. Pulsar y mantener la tecla CTRL y hacer
    de nuevo click sobre el bloque destino.
    Conectar bloques (II) Tambion se puede extraer un cable de señal haciendo
    click en el saliente derecho del bloque origen y prolongar la señal (pulsando y manteniendo el boton izquierdo
    del raton) hasta llegar a la parte izquierda del bloque
    destino.
    Bifurcar cables
    Un cable de señal (que lleva la salida de un bloque
    hacia otro bloque), puede bifurcarse para distribuir la
    señal a varios bloques pulsando con el boton derecho en
    cualquier punto del cable.
    Sumar o restar señales Las señales procedentes de salidas de los bloques se
    pueden sumar o restar entre s´ mediante el bloque
    sumador, que se ubica f´cilmente tecleando Sum en la
    ventana de navegación de Simuink.
    22

    Monografias.com

    o n
    a
    n
    n
    n
    n o
    n
    o
    n o
    e o
    ´ o
    ´ o
    n u
    a
    Tras una serie de operaciones de los tipos indicados en la tabla anterior, logramos
    construir la estructura de realimentación de la figura 11. En esta figura hemos añadido
    dos bloques nuevos: Step y Scope. Ambos pertenecen, respectivamente, a los nodos
    Simulink/Sources y Simulink/Sinks que seran comentados en el siguiente apartado.

    Figura 11: Modelo completo.
    6.3.
    Fuentes y sumideros de señal
    Los bloques de suma y resta de señales y los de funciones de transferencia, funcionan
    como procesadores de señal. Sin embargo, en las simulaciones han de existir fuentes de
    señal externas, pues lo que se pretende en general es ver como responden determinados
    sistemas a estimulos exteriores.

    En nuestro ejemplo necesitamos una señal externa para generar una referencia a
    seguir por el sistema controlado. Esta referencia debe ser, logicamente, cambiante con
    el tiempo. En nuestro caso emplearemos una señal de tipo escalon, que se implementa,
    con sus parametros especificos, mediante el bloque Step. Bloques como ´ste, que s´lo
    tienen salidas y ninguna entrada, se localizan en el arbol de navegación de Simulink en
    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 navegación de Simulink en el
    nodo Simulink/Sinks.

    A modo de referencia, la tabla 7 muestra algunas fuentes de señal de uso com´n (no-
    do Simulink/Sources), mientras que la tabla 8 muestra algunos de los bloques sumidero
    (Simulink/Sinks) mas comunes.

    23

    Monografias.com

    Clock
    Sin
    o
    n
    n o
    n
    o ´ a
    n
    o
    n
    n
    Scope
    o
    a n
    o
    a a
    n
    n
    n
    Elemento

    Step
    Constant
    Función

    con los resultados.
    Señal senoidal parametrizable.
    Señal en escalon
    Señal de valor constante.
    Marcas de tiempo de la simulación. Util para trazar graficas
    Signal generator Permite elegir entre un conjunto de señales predefinidas.
    Random Number Generación de ruido blanco configurable.
    From Workspace Señal generada a partir de una variable del espacio de trabajo
    de Matlab.

    Cuadro 7: Fuentes de señal en Simulink.
    Elemento

    XY Graph

    To Workspace
    Función
    Grafica 2D para visualizar las señales frente al tiempo durante
    la simulación.
    Grafica 2D para visualizar un grafico X-Y creado a partir de
    dos señales de entrada.
    Almacena las muestras de la señal de entrada en una variable
    (vector) del espacio de trabajo de Matlab.

    Cuadro 8: Sumideros de señal en Simulink.

    24

    Nota al lector: es posible que esta página no contenga todos los componentes del trabajo original (pies de página, avanzadas formulas matemáticas, esquemas o tablas complejas, etc.). Recuerde que para ver el trabajo en su versión original completa, puede descargarlo desde el menú superior.

    Todos los documentos disponibles en este sitio expresan los puntos de vista de sus respectivos autores y no de Monografias.com. El objetivo de Monografias.com es poner el conocimiento a disposición de toda su comunidad. Queda bajo la responsabilidad de cada lector el eventual uso que se le de a esta información. Asimismo, es obligatoria la cita del autor del contenido y de Monografias.com como fuentes de información.

    Categorias
    Newsletter