SlideShare una empresa de Scribd logo
1 de 7
Descargar para leer sin conexión
Práctica




INTRODUCCIÓN A MATLAB-SIMULINK
Ingeniería de Sistemas y Automática




   Ángel M. Cuenca Lacruz

   Julián J. Salt Llobregat




                              1
1. Objetivo.

     El objetivo de esta práctica es familiarizarse con una herramienta científica de grandes
prestaciones como es MATLAB/SIMULINK, que es preciso conocer pues se trata de un
estándar en el cálculo científico actual. El alumno podrá utilizarla opcionalmente a lo largo
del curso para analizar y simular diversos sistemas continuos y discretos. La sintaxis de los
comandos escritos en este entorno se ha transmitido hasta las aplicaciones de simulación
interactiva que será muy utilizada durante este curso, por lo que conviene conocerla.

    Para llevar a cabo el objetivo se propondrán sencillos ejercicios que ayudarán al alumno a
adquirir destreza ante dicha aplicación científica.


2. MATLAB.

     MATLAB está integrada por funciones aritméticas, comandos, librerías de funciones,
gráficos y macros/funciones de usuario.

     Una de sus características más relevantes es que está orientada a matrices (MATrix
LABoraty), es decir, todas las variables se definen como matrices en las que los tipos no es
necesario que se especifiquen. Se trata de un lenguaje interpretado. En concreto, MATLAB es
capaz de trabajar con enteros, reales, complejos y cadenas de caracteres. Además dispone de
variables predefinidas (como la variable pi, entre otras) y de una serie de comandos
específicos que se irán viendo progresivamente a lo largo de la práctica y durante el curso.

    Para entrar en el programa hemos de hacer los siguientes pasos: Inicio – UPVNet –
Aplicaciones Científicas – Matlab – Matlab 6.5.1. Una vez dentro de la aplicación vamos a
empezar introduciendo una serie de datos (el símbolo >> es el prompt de la aplicación):

    >> A=[1 2 3; 4 5 6; 7 8 9]
    >> B=[1 2 3
         456
          7 8 9]
    >> C=[13; 14; 15; 16];

     Fijarse como la matriz A y la B son iguales, ya que la forma de definirlas es equivalente.
Fijarse también en el efecto del ; al final de toda la introducción de la variable C.

    Combinemos ahora las variables anteriores:

    >> A=[A; [10 11 12]]
    >> D=[A C]

    Comprobemos el resultado de las siguientes instrucciones, las cuales nos sirven para
acceder a diferentes elementos de la matriz D:

    >> D(2,3)
    >> D(2,:)
    >> D(:,2)
    >> D(1:2, 3:4)
                                              2
Trabajemos ahora con diferentes comandos relativos a variables y veamos sus
consecuencias:
    >> who
    >> whos
    >> save prueba.mat A
    >> clear A
    >> whos
    >> load prueba.mat
    >> whos

    Para saber más de cada comando presentado (y de otros cualesquiera) utiliza la orden
help seguida del nombre del comando a consultar. La orden help es de gran utilidad puesto
que hace un breve resumen del uso del comando, así como informa de la sintaxis a utilizar. El
símbolo ? de la barra de menú también conduce a un help, el cual es más interactivo y útil
cuando se busca la existencia o no de cierto comando.

    Informarse de cuáles son los operadores aritméticos y de relación que usa MATLAB.
Para ello teclea help ops. Después comprobar el efecto de estas instrucciones:

    >> A+B
    >> A*B
    >> C’
    >> A<5
    >> A>5

  Hágase lo mismo con help lang en el que se encuentran los constructores que usa
MATLAB.

    • Ejercicio 1: En base a dichos constructores impleméntese una sencilla macro de
        ejemplo que realice el factorial de un número pedido al usuario. Para realizarla es
        necesario un editor ascii. MATLAB cuenta con uno, el cual se habilita al teclear la
        orden edit. Por tanto, implementar la macro dentro del editor y después guardarla con
        el nombre factorial.m. Seguidamente teclear en el prompt el nombre factorial para
        habilitar dicha macro. Observar que el resultado es correcto.

     Además de la macros, MATLAB permite implementar funciones. Tanto las macros como
las funciones sirven para automatizar la ejecución sucesiva de varios comandos, pero se
diferencian en que las funciones permiten parámetros de entrada y salida (cosa que no hacen
las macros). Por tanto, dependiendo del uso que se les quiera dar, se utilizarán unas u otras.

    • Ejercicio 2: Se propone pasar a función la macro anterior, de tal forma que tenga un
        parámetro de entrada (número a calcular su factorial) y otro de salida (resultado del
        factorial). Guardarla como factorial2.m y llamarla desde el prompt. Observar que el
        resultado es correcto.




                                              3
3. SIMULINK.

     SIMULINK es un paquete gráfico para el diseño asistido por ordenador de sistemas
físicos (CACSD). Para entrar en él se debe teclear el comando simulink en el prompt de
MATLAB o bien pinchar en el botón que lo representa en la barra de menú.

     Al entrar en SIMULINK se abre una ventana. Se trata de la librería de SIMULINK, la
cual está compuesta por diferentes elementos enmarcados bajo diversas categorías. Así, en la
categoría Simulink se encuentra, entre otras, las subcategorías siguientes: sources (fuentes),
sinks (sumideros), discrete (sistemas discretos lineales), continuous (sistemas continuos
lineales), nonlinear (sistemas continuos no lineales) y math (elementos matemáticos).

    Para empezar a diseñar un esquema SIMULINK se ha de abrir una ventana nueva (icono
superior izquierda de la librería SIMULINK). Para realizar dicho diseño uniremos diferentes
elementos de la librería, tras ser arrastrados con el ratón hacia la ventana del modelo. En dicha
ventana del modelo es interesante mencionar la opción Simulation de la barra de menú, ya que
dentro de ésta está la opción Parameters, la cual nos servirá para definir los parámetros de
simulación de nuestro modelo. En concreto, en la pestaña Solver tenemos los siguientes
parámetros de relevancia:

    -   Start time y Stop time: parámetros de inicio y fin de simulación.

    -   Type: indica el tipo de sistema a simular (variable-step para sistemas continuos y
        fixed-step para sistemas discretos). En el caso de variable-step se habilita los cuadros
        max step size e initial step size (por defecto a auto) que marcan el periodo de
        muestreo máximo e inicial (respectivamente) a utilizar para la simulación, y los
        cuadros relative tolerance y absolute tolerance que fijan la tolerancia elegida para la
        ejecución de los algoritmos de simulación utilizados (cuadro que está a la derecha de
        Type). En el caso de fixed step se habilita el cuadro de fixed step size que define el
        periodo de muestreo del sistema discreto (por defecto a auto).

    Para una información más detallada de estos parámetros hacer uso del help de la ventana
Simulation parameters.

    • Ejercicio 3:
         a) Montar un esquema SIMULINK que conste de un generador de señales (signal
           generator) y un visualizador de señal (scope). Define los parámetros de ambos
           elementos, de tal forma que el generador de señal genere una onda senoidal de
           amplitud la unidad y de frecuencia 2 Hertz, y el visualizador mantenga sus
           parámetros por defecto. Ejecutar la simulación indicando un max step size e initial
           step size a 0.01 y observar la salida en el visualizador.

         b) Añade a ese esquema otro enlace compuesto por una ganancia (gain) y otro
           visualizador (este se puede obtener pinchando el ratón con el botón derecho sobre
           el scope que ya tenemos y, tras ello, arrastrar al lugar que queramos). Simula el
           esquema dándole diferentes valores (negativos, positivos y nulo) a la ganancia.
           Observa los resultados que presentan los visualizadores.


                                               4
c) Implementa ahora un esquema en el que la salida que proviene directamente del
           generador y la proveniente del amplificador salgan por el mismo visualizador. Para
           ello ayúdate de un multiplexador de señal (mux). Obtén también la salida en una
           variable llamada yout, a través de un bloque to workspace. Simula el sistema y
           observa que la salida del visualizador y la correspondiente a plotear la variable
           yout desde el prompt de MATLAB (comando plot(yout)) son idénticas.
           Comprueba las características de la variable yout desde el entorno MATLAB. Haz
           uso de los comandos grid y zoom para la visualización de la variable ploteada.


4. MATLAB-SIMULINK PARA EL CONTROL DE PROCESOS CONTINUOS Y
   DISCRETOS.

La herramienta Matlab junto con Simulink nos permite simular de manera sencilla sistemas de
control de diversa naturaleza. En esta parte de la práctica se va a mostrar cómo hacerlo
posible. Para ello se van a considerar sistemas continuos y discretos, presentándolos en
diferentes configuraciones (bucle abierto (ba) y bucle cerrado (bc)).

•   Ejercicio 4: Sistemas Continuos en ba.

En este ejercicio el objetivo es simular la respuesta en ba del modelo de primer orden
continuo de una red RC (visto en clase de teoría) ante varias entradas diferentes (impulso,
escalón y rampa). Para ello tendrás que formar en primer lugar un esquema Simulink como el
que se muestra a continuación:


                                        1
                                      0.1s+1
                   Pulse             RC=0.1                ba
                 Generator3



                                        1
                                      0.1s+1
                   Step1             RC=0.1                ba1




                                        1
                                      0.1s+1
                    Ramp             RC=0.1                ba2




Recuerda que las entradas al sistema puedes encontrarlas en la librería Sources. Configura
correctamente cada una para hacer posible su funcionalidad, según las definiciones vistas en
teoría. Si lo necesitas, haz uso del botón de ayuda (Help), el cual se encuentra en la ventana
que surge tras dar doble click sobre el bloque seleccionado. Por otro lado, el bloque que
define al modelo lo podrás obtener en la librería Continuous y las respuestas las podrás ver
con el bloque Scope de la librería Sinks.

                                               5
En segundo lugar, para hacer esto con órdenes de Matlab debes recurrir a la orden impulse
(para el impulso) y step (para escalón). Para rampa no existe una orden asociada en Matlab.
Introduce los valores del modelo en estos casos de la siguiente manera: impulse(1,[0.1 1]).
Comprueba que las respuestas obtenidas ahora coinciden con las obtenidas anteriormente con
Simulink.
• Ejercicio 5: Sistemas Continuos en bc.

En este ejercicio el objetivo es simular la respuesta en bc del modelo de primer orden
continuo de la red RC del ejercicio anterior para una referencia escalón unitario. Se va a
considerar el modelo en bc y en bc con ganancia de realimentación. Para ello tendrás que
formar en primer lugar un esquema Simulink como el que se muestra a continuación:


                                                           1
                                                         0.1s+1
             Step3                                    Transfer Fcn3     bc1




                                                               1
                                    5
                                                           0.1s+1
              Step2                 Gain1               Transfer Fcn2     bc




Recuerda que los bloques Sum (nudo sumador) y Gain (ganancia) los puedes encontrar en la
librería Math.

En segundo lugar, para hacer esto con órdenes de Matlab debes recurrir fundamentalmente a
la orden feedback. Si haces un help de feedback verás que esta orden trata con modelos
definidos como funciones de transferencia (fdt). Por tanto, lo primero es definir el modelo de
la red RC como una fdt por medio de la orden tf (consúltala con help). Después ya, recurre a
feedback para definir el modelo en bc e introdúcele un escalón unitario. En definitiva, debes
seguir estos pasos desde el prompt de Matlab:

                                     sys1 = tf(1,[0.1 1])
                                     sys = feedback(sys1,1)
                                     step(sys)

Repítelo ahora para el caso de tener una ganancia de realimentación de valor 5.


•   Ejercicio 6: Sistemas Discretos en ba y bc.

El objetivo en este ejercicio es discretizar la fdt continua considerada en los ejercicios
anteriores y simular el comportamiento en ba y bc del sistema discreto resultante. Para ello
has de seguir los mismos pasos que en los ejercicios precedentes teniendo en cuenta que:
                                                  6
a) En Simlink: el bloque que define al modelo ahora lo podrás obtener en la librería
   Discrete. Para utilizarlo correctamente, primero tienes que discretizar el sistema continuo.
   Utiliza la orden c2d desde Matlab, la cual te devolverá el sistema discreto a introducir en
   el bloque de Simulink.. Si le haces un help verás que hay diferentes métodos de
   discretización y que debes elegir un periodo de muestreo (T). Considera el método de
   ZOH (Zero Order Hold) y un T=0.01 seg. Recuerda que la fdt continua ya la tienes
   definida del ejercicio anterior (sys1).

b) En Matlab: en vez de utilizar impulse y step utiliza dimpulse y dstep, que son las órdenes
   especificas para sistemas discretos.

Para finalizar, comprueba que si en los diagramas de bloques de Simulink hechos en los
ejercicios 4 y 5 (de sistemas continuos) antepones un bloque ZOH al modelo del sistema
(definido al periodo T considerado), las respuestas coinciden con las de este ejercicio 6.




                                              7

Más contenido relacionado

La actualidad más candente

Guia rapida de matlab (comandos basicos, graficacion y programacion)
Guia rapida de matlab (comandos basicos, graficacion y programacion)Guia rapida de matlab (comandos basicos, graficacion y programacion)
Guia rapida de matlab (comandos basicos, graficacion y programacion)morones.om
 
Utp sirn_sl8 sistemas difusos i 2013-3
 Utp sirn_sl8 sistemas difusos i 2013-3 Utp sirn_sl8 sistemas difusos i 2013-3
Utp sirn_sl8 sistemas difusos i 2013-3jcbenitezp
 
Variables y constantes en matlab
Variables y constantes en matlabVariables y constantes en matlab
Variables y constantes en matlabAngel Apugllon
 
Introduccion y operaciones basicas (matlab)
Introduccion y operaciones basicas (matlab)Introduccion y operaciones basicas (matlab)
Introduccion y operaciones basicas (matlab)Gino Pannillo
 
Utp i_ay_se_sistemas difusos i 2013-3
 Utp i_ay_se_sistemas difusos i 2013-3 Utp i_ay_se_sistemas difusos i 2013-3
Utp i_ay_se_sistemas difusos i 2013-3jcbenitezp
 
Manual Matlab 2008
Manual Matlab 2008Manual Matlab 2008
Manual Matlab 2008AxL Sanchez
 
Curso matlab
Curso matlabCurso matlab
Curso matlabklon1234
 
Práctica 1 introducción al matlab
Práctica 1  introducción al matlabPráctica 1  introducción al matlab
Práctica 1 introducción al matlabRafael Duran
 
Taller2 lab stats_matlab
Taller2 lab stats_matlabTaller2 lab stats_matlab
Taller2 lab stats_matlabNar Dy
 
Wiioa programacionysimulacionavanzada
Wiioa programacionysimulacionavanzadaWiioa programacionysimulacionavanzada
Wiioa programacionysimulacionavanzadajcbp_peru
 

La actualidad más candente (20)

matlab
matlabmatlab
matlab
 
Practica1
Practica1Practica1
Practica1
 
Guia rapida de matlab (comandos basicos, graficacion y programacion)
Guia rapida de matlab (comandos basicos, graficacion y programacion)Guia rapida de matlab (comandos basicos, graficacion y programacion)
Guia rapida de matlab (comandos basicos, graficacion y programacion)
 
Tema 1
Tema 1Tema 1
Tema 1
 
Utp sirn_sl8 sistemas difusos i 2013-3
 Utp sirn_sl8 sistemas difusos i 2013-3 Utp sirn_sl8 sistemas difusos i 2013-3
Utp sirn_sl8 sistemas difusos i 2013-3
 
Variables y constantes en matlab
Variables y constantes en matlabVariables y constantes en matlab
Variables y constantes en matlab
 
1 Entorno
1 Entorno1 Entorno
1 Entorno
 
Introduccion y operaciones basicas (matlab)
Introduccion y operaciones basicas (matlab)Introduccion y operaciones basicas (matlab)
Introduccion y operaciones basicas (matlab)
 
Utp i_ay_se_sistemas difusos i 2013-3
 Utp i_ay_se_sistemas difusos i 2013-3 Utp i_ay_se_sistemas difusos i 2013-3
Utp i_ay_se_sistemas difusos i 2013-3
 
TIPOS DE DATOS MATLAB
TIPOS DE DATOS MATLABTIPOS DE DATOS MATLAB
TIPOS DE DATOS MATLAB
 
Manual Matlab 2008
Manual Matlab 2008Manual Matlab 2008
Manual Matlab 2008
 
Tutorial matlab
Tutorial matlabTutorial matlab
Tutorial matlab
 
Apuntes matlab
Apuntes matlabApuntes matlab
Apuntes matlab
 
Curso matlab
Curso matlabCurso matlab
Curso matlab
 
Diapositivas matlab
Diapositivas matlabDiapositivas matlab
Diapositivas matlab
 
Robot angular en matlab
Robot angular en matlabRobot angular en matlab
Robot angular en matlab
 
Diapositivas matlab
Diapositivas matlabDiapositivas matlab
Diapositivas matlab
 
Práctica 1 introducción al matlab
Práctica 1  introducción al matlabPráctica 1  introducción al matlab
Práctica 1 introducción al matlab
 
Taller2 lab stats_matlab
Taller2 lab stats_matlabTaller2 lab stats_matlab
Taller2 lab stats_matlab
 
Wiioa programacionysimulacionavanzada
Wiioa programacionysimulacionavanzadaWiioa programacionysimulacionavanzada
Wiioa programacionysimulacionavanzada
 

Destacado

Clase 3 - Esquemas de Control
Clase 3 - Esquemas de ControlClase 3 - Esquemas de Control
Clase 3 - Esquemas de ControlUNEFA
 
Compensadores adelanto retraso
Compensadores adelanto retrasoCompensadores adelanto retraso
Compensadores adelanto retrasophoenix5559
 
Libros libres, gratuitos, oa y buscadores
Libros libres, gratuitos, oa y buscadoresLibros libres, gratuitos, oa y buscadores
Libros libres, gratuitos, oa y buscadoresJulio Alonso Arévalo
 
Bill gatesdicea losadolescentes12
Bill gatesdicea losadolescentes12Bill gatesdicea losadolescentes12
Bill gatesdicea losadolescentes12creacionesdanae
 
Conclusiones del análisis de revistas. práctica 1.
Conclusiones del análisis de revistas. práctica 1.Conclusiones del análisis de revistas. práctica 1.
Conclusiones del análisis de revistas. práctica 1.maria_4gplaza
 
Programación Sonica 24 Setiembre 2012 2
Programación Sonica 24 Setiembre 2012 2Programación Sonica 24 Setiembre 2012 2
Programación Sonica 24 Setiembre 2012 2Miguel Vega Loyola
 
Practico7 120602194116-phpapp01
Practico7 120602194116-phpapp01Practico7 120602194116-phpapp01
Practico7 120602194116-phpapp01Ramiro Randisi
 
Como conseguir financiacion tic energía madrid 2012 ii (1)
Como conseguir financiacion tic energía madrid 2012 ii (1)Como conseguir financiacion tic energía madrid 2012 ii (1)
Como conseguir financiacion tic energía madrid 2012 ii (1)CLopezosa
 
Las cámaras fotográficas duneska
Las cámaras fotográficas duneskaLas cámaras fotográficas duneska
Las cámaras fotográficas duneskaDUN GOMEZ
 
Actividad de emprendimiento hector escobar
Actividad de emprendimiento hector escobarActividad de emprendimiento hector escobar
Actividad de emprendimiento hector escobarkerro26
 
Desarrollo sostenible
Desarrollo sostenibleDesarrollo sostenible
Desarrollo sosteniblegabief
 

Destacado (20)

Clase 3 - Esquemas de Control
Clase 3 - Esquemas de ControlClase 3 - Esquemas de Control
Clase 3 - Esquemas de Control
 
Compensadores adelanto retraso
Compensadores adelanto retrasoCompensadores adelanto retraso
Compensadores adelanto retraso
 
Libros libres, gratuitos, oa y buscadores
Libros libres, gratuitos, oa y buscadoresLibros libres, gratuitos, oa y buscadores
Libros libres, gratuitos, oa y buscadores
 
Poemas gpo. 415
Poemas gpo. 415Poemas gpo. 415
Poemas gpo. 415
 
Andar caminos....
Andar caminos.... Andar caminos....
Andar caminos....
 
Bill gatesdicea losadolescentes12
Bill gatesdicea losadolescentes12Bill gatesdicea losadolescentes12
Bill gatesdicea losadolescentes12
 
Amigo libro
Amigo libroAmigo libro
Amigo libro
 
Conclusiones del análisis de revistas. práctica 1.
Conclusiones del análisis de revistas. práctica 1.Conclusiones del análisis de revistas. práctica 1.
Conclusiones del análisis de revistas. práctica 1.
 
Diabetes
DiabetesDiabetes
Diabetes
 
Biblioteca
BibliotecaBiblioteca
Biblioteca
 
Programación Sonica 24 Setiembre 2012 2
Programación Sonica 24 Setiembre 2012 2Programación Sonica 24 Setiembre 2012 2
Programación Sonica 24 Setiembre 2012 2
 
Antología
AntologíaAntología
Antología
 
Practico7 120602194116-phpapp01
Practico7 120602194116-phpapp01Practico7 120602194116-phpapp01
Practico7 120602194116-phpapp01
 
POWERPOINT 1ª EVALUACIÓN
POWERPOINT 1ª EVALUACIÓN POWERPOINT 1ª EVALUACIÓN
POWERPOINT 1ª EVALUACIÓN
 
Como conseguir financiacion tic energía madrid 2012 ii (1)
Como conseguir financiacion tic energía madrid 2012 ii (1)Como conseguir financiacion tic energía madrid 2012 ii (1)
Como conseguir financiacion tic energía madrid 2012 ii (1)
 
Las cámaras fotográficas duneska
Las cámaras fotográficas duneskaLas cámaras fotográficas duneska
Las cámaras fotográficas duneska
 
Actividad de emprendimiento hector escobar
Actividad de emprendimiento hector escobarActividad de emprendimiento hector escobar
Actividad de emprendimiento hector escobar
 
grasa en alimentos
grasa en alimentosgrasa en alimentos
grasa en alimentos
 
Desarrollo sostenible
Desarrollo sostenibleDesarrollo sostenible
Desarrollo sostenible
 
El aire
El aireEl aire
El aire
 

Similar a 15894 pr cctica-3-introducciun-al-matlab-simulink

Similar a 15894 pr cctica-3-introducciun-al-matlab-simulink (20)

38555282 manual-simulink
38555282 manual-simulink38555282 manual-simulink
38555282 manual-simulink
 
Programacion grafica simulab programa .pptx
Programacion grafica simulab programa .pptxProgramacion grafica simulab programa .pptx
Programacion grafica simulab programa .pptx
 
Uiii tema10-equipo cam
Uiii tema10-equipo camUiii tema10-equipo cam
Uiii tema10-equipo cam
 
Practica1
Practica1Practica1
Practica1
 
Practica 5 simulink-5156
Practica 5 simulink-5156Practica 5 simulink-5156
Practica 5 simulink-5156
 
Matlab
MatlabMatlab
Matlab
 
Matlab (1)
Matlab (1)Matlab (1)
Matlab (1)
 
2_LenguajeMATLAB
2_LenguajeMATLAB2_LenguajeMATLAB
2_LenguajeMATLAB
 
Copiade documento(2)
Copiade documento(2)Copiade documento(2)
Copiade documento(2)
 
Ici rtu-unidad 3- tema 10
Ici rtu-unidad 3- tema 10Ici rtu-unidad 3- tema 10
Ici rtu-unidad 3- tema 10
 
Tutorial de MatLab
Tutorial de MatLabTutorial de MatLab
Tutorial de MatLab
 
Logica-difusa-simulink-casos
Logica-difusa-simulink-casosLogica-difusa-simulink-casos
Logica-difusa-simulink-casos
 
Practica1 Matlab Operadores Básicos
Practica1 Matlab Operadores BásicosPractica1 Matlab Operadores Básicos
Practica1 Matlab Operadores Básicos
 
Utp sirn_2014-2 lab3
 Utp sirn_2014-2 lab3 Utp sirn_2014-2 lab3
Utp sirn_2014-2 lab3
 
Apuntes matlab
Apuntes matlabApuntes matlab
Apuntes matlab
 
Utp ia_2014-2 lab3
 Utp ia_2014-2 lab3 Utp ia_2014-2 lab3
Utp ia_2014-2 lab3
 
Utp sirn_2015-2 lab3
 Utp sirn_2015-2 lab3 Utp sirn_2015-2 lab3
Utp sirn_2015-2 lab3
 
Intro simulink
Intro simulinkIntro simulink
Intro simulink
 
1. guia 1 introduccion a matlab
1. guia 1   introduccion a matlab1. guia 1   introduccion a matlab
1. guia 1 introduccion a matlab
 
Respuesta en frecuencia
Respuesta en frecuenciaRespuesta en frecuencia
Respuesta en frecuencia
 

15894 pr cctica-3-introducciun-al-matlab-simulink

  • 1. Práctica INTRODUCCIÓN A MATLAB-SIMULINK Ingeniería de Sistemas y Automática Ángel M. Cuenca Lacruz Julián J. Salt Llobregat 1
  • 2. 1. Objetivo. El objetivo de esta práctica es familiarizarse con una herramienta científica de grandes prestaciones como es MATLAB/SIMULINK, que es preciso conocer pues se trata de un estándar en el cálculo científico actual. El alumno podrá utilizarla opcionalmente a lo largo del curso para analizar y simular diversos sistemas continuos y discretos. La sintaxis de los comandos escritos en este entorno se ha transmitido hasta las aplicaciones de simulación interactiva que será muy utilizada durante este curso, por lo que conviene conocerla. Para llevar a cabo el objetivo se propondrán sencillos ejercicios que ayudarán al alumno a adquirir destreza ante dicha aplicación científica. 2. MATLAB. MATLAB está integrada por funciones aritméticas, comandos, librerías de funciones, gráficos y macros/funciones de usuario. Una de sus características más relevantes es que está orientada a matrices (MATrix LABoraty), es decir, todas las variables se definen como matrices en las que los tipos no es necesario que se especifiquen. Se trata de un lenguaje interpretado. En concreto, MATLAB es capaz de trabajar con enteros, reales, complejos y cadenas de caracteres. Además dispone de variables predefinidas (como la variable pi, entre otras) y de una serie de comandos específicos que se irán viendo progresivamente a lo largo de la práctica y durante el curso. Para entrar en el programa hemos de hacer los siguientes pasos: Inicio – UPVNet – Aplicaciones Científicas – Matlab – Matlab 6.5.1. Una vez dentro de la aplicación vamos a empezar introduciendo una serie de datos (el símbolo >> es el prompt de la aplicación): >> A=[1 2 3; 4 5 6; 7 8 9] >> B=[1 2 3 456 7 8 9] >> C=[13; 14; 15; 16]; Fijarse como la matriz A y la B son iguales, ya que la forma de definirlas es equivalente. Fijarse también en el efecto del ; al final de toda la introducción de la variable C. Combinemos ahora las variables anteriores: >> A=[A; [10 11 12]] >> D=[A C] Comprobemos el resultado de las siguientes instrucciones, las cuales nos sirven para acceder a diferentes elementos de la matriz D: >> D(2,3) >> D(2,:) >> D(:,2) >> D(1:2, 3:4) 2
  • 3. Trabajemos ahora con diferentes comandos relativos a variables y veamos sus consecuencias: >> who >> whos >> save prueba.mat A >> clear A >> whos >> load prueba.mat >> whos Para saber más de cada comando presentado (y de otros cualesquiera) utiliza la orden help seguida del nombre del comando a consultar. La orden help es de gran utilidad puesto que hace un breve resumen del uso del comando, así como informa de la sintaxis a utilizar. El símbolo ? de la barra de menú también conduce a un help, el cual es más interactivo y útil cuando se busca la existencia o no de cierto comando. Informarse de cuáles son los operadores aritméticos y de relación que usa MATLAB. Para ello teclea help ops. Después comprobar el efecto de estas instrucciones: >> A+B >> A*B >> C’ >> A<5 >> A>5 Hágase lo mismo con help lang en el que se encuentran los constructores que usa MATLAB. • Ejercicio 1: En base a dichos constructores impleméntese una sencilla macro de ejemplo que realice el factorial de un número pedido al usuario. Para realizarla es necesario un editor ascii. MATLAB cuenta con uno, el cual se habilita al teclear la orden edit. Por tanto, implementar la macro dentro del editor y después guardarla con el nombre factorial.m. Seguidamente teclear en el prompt el nombre factorial para habilitar dicha macro. Observar que el resultado es correcto. Además de la macros, MATLAB permite implementar funciones. Tanto las macros como las funciones sirven para automatizar la ejecución sucesiva de varios comandos, pero se diferencian en que las funciones permiten parámetros de entrada y salida (cosa que no hacen las macros). Por tanto, dependiendo del uso que se les quiera dar, se utilizarán unas u otras. • Ejercicio 2: Se propone pasar a función la macro anterior, de tal forma que tenga un parámetro de entrada (número a calcular su factorial) y otro de salida (resultado del factorial). Guardarla como factorial2.m y llamarla desde el prompt. Observar que el resultado es correcto. 3
  • 4. 3. SIMULINK. SIMULINK es un paquete gráfico para el diseño asistido por ordenador de sistemas físicos (CACSD). Para entrar en él se debe teclear el comando simulink en el prompt de MATLAB o bien pinchar en el botón que lo representa en la barra de menú. Al entrar en SIMULINK se abre una ventana. Se trata de la librería de SIMULINK, la cual está compuesta por diferentes elementos enmarcados bajo diversas categorías. Así, en la categoría Simulink se encuentra, entre otras, las subcategorías siguientes: sources (fuentes), sinks (sumideros), discrete (sistemas discretos lineales), continuous (sistemas continuos lineales), nonlinear (sistemas continuos no lineales) y math (elementos matemáticos). Para empezar a diseñar un esquema SIMULINK se ha de abrir una ventana nueva (icono superior izquierda de la librería SIMULINK). Para realizar dicho diseño uniremos diferentes elementos de la librería, tras ser arrastrados con el ratón hacia la ventana del modelo. En dicha ventana del modelo es interesante mencionar la opción Simulation de la barra de menú, ya que dentro de ésta está la opción Parameters, la cual nos servirá para definir los parámetros de simulación de nuestro modelo. En concreto, en la pestaña Solver tenemos los siguientes parámetros de relevancia: - Start time y Stop time: parámetros de inicio y fin de simulación. - Type: indica el tipo de sistema a simular (variable-step para sistemas continuos y fixed-step para sistemas discretos). En el caso de variable-step se habilita los cuadros max step size e initial step size (por defecto a auto) que marcan el periodo de muestreo máximo e inicial (respectivamente) a utilizar para la simulación, y los cuadros relative tolerance y absolute tolerance que fijan la tolerancia elegida para la ejecución de los algoritmos de simulación utilizados (cuadro que está a la derecha de Type). En el caso de fixed step se habilita el cuadro de fixed step size que define el periodo de muestreo del sistema discreto (por defecto a auto). Para una información más detallada de estos parámetros hacer uso del help de la ventana Simulation parameters. • Ejercicio 3: a) Montar un esquema SIMULINK que conste de un generador de señales (signal generator) y un visualizador de señal (scope). Define los parámetros de ambos elementos, de tal forma que el generador de señal genere una onda senoidal de amplitud la unidad y de frecuencia 2 Hertz, y el visualizador mantenga sus parámetros por defecto. Ejecutar la simulación indicando un max step size e initial step size a 0.01 y observar la salida en el visualizador. b) Añade a ese esquema otro enlace compuesto por una ganancia (gain) y otro visualizador (este se puede obtener pinchando el ratón con el botón derecho sobre el scope que ya tenemos y, tras ello, arrastrar al lugar que queramos). Simula el esquema dándole diferentes valores (negativos, positivos y nulo) a la ganancia. Observa los resultados que presentan los visualizadores. 4
  • 5. c) Implementa ahora un esquema en el que la salida que proviene directamente del generador y la proveniente del amplificador salgan por el mismo visualizador. Para ello ayúdate de un multiplexador de señal (mux). Obtén también la salida en una variable llamada yout, a través de un bloque to workspace. Simula el sistema y observa que la salida del visualizador y la correspondiente a plotear la variable yout desde el prompt de MATLAB (comando plot(yout)) son idénticas. Comprueba las características de la variable yout desde el entorno MATLAB. Haz uso de los comandos grid y zoom para la visualización de la variable ploteada. 4. MATLAB-SIMULINK PARA EL CONTROL DE PROCESOS CONTINUOS Y DISCRETOS. La herramienta Matlab junto con Simulink nos permite simular de manera sencilla sistemas de control de diversa naturaleza. En esta parte de la práctica se va a mostrar cómo hacerlo posible. Para ello se van a considerar sistemas continuos y discretos, presentándolos en diferentes configuraciones (bucle abierto (ba) y bucle cerrado (bc)). • Ejercicio 4: Sistemas Continuos en ba. En este ejercicio el objetivo es simular la respuesta en ba del modelo de primer orden continuo de una red RC (visto en clase de teoría) ante varias entradas diferentes (impulso, escalón y rampa). Para ello tendrás que formar en primer lugar un esquema Simulink como el que se muestra a continuación: 1 0.1s+1 Pulse RC=0.1 ba Generator3 1 0.1s+1 Step1 RC=0.1 ba1 1 0.1s+1 Ramp RC=0.1 ba2 Recuerda que las entradas al sistema puedes encontrarlas en la librería Sources. Configura correctamente cada una para hacer posible su funcionalidad, según las definiciones vistas en teoría. Si lo necesitas, haz uso del botón de ayuda (Help), el cual se encuentra en la ventana que surge tras dar doble click sobre el bloque seleccionado. Por otro lado, el bloque que define al modelo lo podrás obtener en la librería Continuous y las respuestas las podrás ver con el bloque Scope de la librería Sinks. 5
  • 6. En segundo lugar, para hacer esto con órdenes de Matlab debes recurrir a la orden impulse (para el impulso) y step (para escalón). Para rampa no existe una orden asociada en Matlab. Introduce los valores del modelo en estos casos de la siguiente manera: impulse(1,[0.1 1]). Comprueba que las respuestas obtenidas ahora coinciden con las obtenidas anteriormente con Simulink. • Ejercicio 5: Sistemas Continuos en bc. En este ejercicio el objetivo es simular la respuesta en bc del modelo de primer orden continuo de la red RC del ejercicio anterior para una referencia escalón unitario. Se va a considerar el modelo en bc y en bc con ganancia de realimentación. Para ello tendrás que formar en primer lugar un esquema Simulink como el que se muestra a continuación: 1 0.1s+1 Step3 Transfer Fcn3 bc1 1 5 0.1s+1 Step2 Gain1 Transfer Fcn2 bc Recuerda que los bloques Sum (nudo sumador) y Gain (ganancia) los puedes encontrar en la librería Math. En segundo lugar, para hacer esto con órdenes de Matlab debes recurrir fundamentalmente a la orden feedback. Si haces un help de feedback verás que esta orden trata con modelos definidos como funciones de transferencia (fdt). Por tanto, lo primero es definir el modelo de la red RC como una fdt por medio de la orden tf (consúltala con help). Después ya, recurre a feedback para definir el modelo en bc e introdúcele un escalón unitario. En definitiva, debes seguir estos pasos desde el prompt de Matlab: sys1 = tf(1,[0.1 1]) sys = feedback(sys1,1) step(sys) Repítelo ahora para el caso de tener una ganancia de realimentación de valor 5. • Ejercicio 6: Sistemas Discretos en ba y bc. El objetivo en este ejercicio es discretizar la fdt continua considerada en los ejercicios anteriores y simular el comportamiento en ba y bc del sistema discreto resultante. Para ello has de seguir los mismos pasos que en los ejercicios precedentes teniendo en cuenta que: 6
  • 7. a) En Simlink: el bloque que define al modelo ahora lo podrás obtener en la librería Discrete. Para utilizarlo correctamente, primero tienes que discretizar el sistema continuo. Utiliza la orden c2d desde Matlab, la cual te devolverá el sistema discreto a introducir en el bloque de Simulink.. Si le haces un help verás que hay diferentes métodos de discretización y que debes elegir un periodo de muestreo (T). Considera el método de ZOH (Zero Order Hold) y un T=0.01 seg. Recuerda que la fdt continua ya la tienes definida del ejercicio anterior (sys1). b) En Matlab: en vez de utilizar impulse y step utiliza dimpulse y dstep, que son las órdenes especificas para sistemas discretos. Para finalizar, comprueba que si en los diagramas de bloques de Simulink hechos en los ejercicios 4 y 5 (de sistemas continuos) antepones un bloque ZOH al modelo del sistema (definido al periodo T considerado), las respuestas coinciden con las de este ejercicio 6. 7