L1 Introducción a Matlab y Simulink.pdf

Embed Size (px)

Citation preview

  • Lab. No.1 Introduccin al matlab y simulink.

    Control Automtico Control Analgico IE. PhD. FRANCISCO E. MORENO GARCIA

    1

    UNIVERSIDAD FRANCISCO DE PAULA SANTANDER FACULTAD DE INGENIERIA

    CONTROL AUTOMATICO CONTROL ANALOGICO

    LABORATORIO No. 1 Introduccin al Matlab y simulink

    INSTRUCCIONES 1- Las actividades de laboratorio y talleres debern ser desarrollados en grupos de hasta 2 (dos)

    alumnos. 2- Las tcnicas y herramientas didcticas que se empleen en los laboratorios tiene como finalidad el

    refuerzo, la conformacin y ejecucin de los diferentes aspectos que hacen parte de la asignatura. De forma que el alumno desarrolle un pensamiento flexible, dinmico, audaz, independiente, persistente, divergente y original en su formacin como profesional.

    OBJETIVOS

    Hacer uso de los comandos de Matlab y simulink para familiarizarse con su uso. Usar el simulink para crear diferentes funciones de transferencia as como una herramienta

    capaz de usarse para la simulacin de sistemas.

    REFERENCIAS

    Andrew Knight Basics of MATLAB and Beyond. Chapman and Hall/CRC; 1 edition, 1999. Hanselman, D.; Littlefield, B. MATLAB 5: Verso do Estudante, Guia do Usurio, Makron

    Books, 1999. White Robert: Computational Mathematics: Models, Methods, and Analysis with MATLAB

    and MPI. Chapman and Hall/CRC; 1 edition, 2003. http://www.mathworks.com

    1. MATLAB

    Graficar la siguiente funcin

    f (t) = 3Sen t + 2Cos t

    donde = 2pif y f = 2 Hz. Defina el vector t para valores de [0 0.01 0.02 0.03 ....... 2];

    Sugerencia: Defina la funcin f como la suma de 2 funciones, f1 y f2, por ejemplo. Despus grafique con el comando plot(t, f, t, f1, t, f2)

    Utilizar matrices para encontrar las corrientes de malla del siguiente circuito

  • Lab. No.1 Introduccin al matlab y simulink.

    Control Automtico Control Analgico IE. PhD. FRANCISCO E. MORENO GARCIA

    2

    Sugerencia: Defina la funcin f como la suma de 2 funciones, f1 y f2, por ejemplo. Despus grafique con el comando plot(t, f, t, f1, t, f2)

    Utilizar matrices para encontrar las corrientes de malla del siguiente circuito

    Otras caractersticas importantes de Matlab estn relacionadas con funciones polinomiales como son: Races de polinomios, multiplicacin, suma y divisin de polinomios, as como evaluacin y derivada de los mismos.

    Races de polinomios. En Matlab un polinomio se representa por un vector fila cuyos componentes son los coeficientes del polinomio en orden descendente. Por ejemplo el polinomio

    x4 + 3x3 + 0x2 + 5x + 4

    se representa en Matlab por:

    p = [1 3 0 5 4] p =

    1 3 0 5 4

    Dado el polinomio, las races se encuentran con el comando roots:

    x = roots(p)

    x =

    -3.3407 0.5021 + 1.2460i 0.5021 - 1.2460i -0.6635

    Las races, por convencin, son vectores columna; el comando poly se utiliza para la obtencin del polinomio a partir de sus races, as, para las races anteriores

    polinom = poly(x)

    polinom =

    Las ecuaciones de malla son:

    15i1 5i2 = 20

    -5i1 + 10i2 = 0

  • Lab. No.1 Introduccin al matlab y simulink.

    Control Automtico Control Analgico IE. PhD. FRANCISCO E. MORENO GARCIA

    3

    1.0000 3.0000 0.0000 5.0000 4.0000

    Multiplicacin de polinomios. Considrese el producto de dos polinomios:

    a(x) = x3 + 3x2 + 2x 1 b(x) = 2x3 4x2 + 3x + 6

    El producto est dado por el comando conv:

    a = [1 3 4 -1]; b = [2 -4 3 6]; c = conv(a, b)

    c =

    2 2 -1 -3 34 21 -6

    Este resultado corresponde con 2x6 + 2x5 x4 3x3 + 34x2 + 21x 6

    Adicin de polinomios No existe un comando especial para la suma de polinomios, se trabaja con la suma estndar de vectores. Para los polinomios anteriores, se tiene

    d = a + b d =

    3 -1 7 5

    esto es, d(x) = 3x3 x2 + 7x + 5

    Cuando los polinomios son de diferente orden, debern agregarse ceros para ajustar el orden de los polinomios, por ejemplo

    e = c + [0 0 0 d] e =

    2 2 -1 0 33 28 -1

    que corresponde con e(x) = 2x6 + 2x5 x4 + 33x2 + 28x 1

    Divisin de polinomios. Cuando haya necesidad de dividir dos polinomios, se utiliza el comando deconv,

    Usando los polinomios anteriores para dividir el polinomio c entre el polinomio b

    [resul, residuo] = deconv(c, b)

    resul = 1 3 4 -1

    residuo = 0 0 0 0 0 0 0

    Como era de esperarse, el resultado es el polinomio a sin residuo, puesto que la divisin es exacta.

    Derivada de un polinomio. Matlab tiene el comando polyder para derivar un polinomio, como ejemplo, derivemos los polinomios a y b anteriormente dados,

  • Lab. No.1 Introduccin al matlab y simulink.

    Control Automtico Control Analgico IE. PhD. FRANCISCO E. MORENO GARCIA

    4

    g = polyder([1 3 4 -1]), h = polyder(b)

    g = 3 6 4

    h = 6 -8 3

    Evaluacin de polinomios. Puede ser til evaluar un polinomio y posteriormente graficarlo, para ello se utiliza el comando polyval, ejemplo

    x = -1:0.01:3; poli = [2 3 -7 5]; f = polyval(poli, x); plot(x, f);grid;title('Grfica de 2x^3+3x^2-7x+5') xlabel('x');ylabel('poli(x)');

    Aqu, se genera el vector x con 100 puntos que comienzan en 1 y terminan en 3. Posteriormente se evala el polinomio 2x3 + 3x2 7x + 5 y el resultado se almacena en f. La grfica del polinomio se muestra en la siguiente figura.

    Funciones Las funciones de matlab son muchas, pero consideraremos aqu solo las bsicas como: abs(), sin(), asin(), angle(), exp(), log(x), log10(), sqrt() e imag().

    Valor absoluto de un nmero

    a = 2 + j * 3; b = -4; abs(a)

    ans = 3.6056

    Funcin Seno y seno inverso (El ngulo debe estar en radianes)

    f = sin(pi/3), fi = asin(f)*180/pi

  • Lab. No.1 Introduccin al matlab y simulink.

    Control Automtico Control Analgico IE. PhD. FRANCISCO E. MORENO GARCIA

    5

    f = 0.8660

    fi = 60.0000

    ngulo de un nmero

    teta = 180*angle(a)/pi

    teta = 56.3099

    Exponencial de un nmero

    exp(-2)

    ans = 0.1353

    Logaritmo natural

    log(ans)

    ans = -2

    Raz cuadrada

    sqrt(875)

    ans = 29.5804

    Obtencin de la parte imaginaria de un nmero complejo

    imag(a)

    ans = 3

    Otras funciones son cos(), acos, tan(), atan(), real(), conj()

    Operadores matriciales

    Los siguientes signos se utilizan en las operaciones matriciales: + Suma - Resta * Multiplicacin

  • Lab. No.1 Introduccin al matlab y simulink.

    Control Automtico Control Analgico IE. PhD. FRANCISCO E. MORENO GARCIA

    6

    ^ Potencia Transpuesta conjugada

    Operadores relacionales y lgicos

    Los siguientes operadores relacionales y lgicos se utilizan en Matlab: < Menor que Mayor que >= Mayor que o igual a == Igual ~= No igual & AND | OR ~ NOT

    Observe que = se utiliza en una sentencia de asignacin, mientras que == se emplea en una relacin.

    Caracteres especiales

    En Matlab se utilizan los siguientes caracteres especiales: [ ] Utilizado para formar matices y vectores ( ) Precedencia de operacin aritmtica , Separa elementos y argumentos de funcin ; final de filas, suprime la impresin : Generacin de vectores ! Ejecucin de orden del sistema operativo % Comentarios

    2. SIMULINK

    El simulink es un toolbox de Matlab que permite simular sistemas de control por medio de diagramas de bloque. Para iniciar el simulink, entramos a Matlab, y en el espacio de trabajo de Matlab se teclea simulink, como se muestra en la siguiente pantalla

  • Lab. No.1 Introduccin al matlab y simulink.

    Control Automtico Control Analgico IE. PhD. FRANCISCO E. MORENO GARCIA

    7

    Al dar un Enter () al comando de la pantalla anterior se abre la ventana Simulink Library Browser y se nos muestra las bibliotecas que contiene, y que son:

    Simulink Aerospace Blockset CDMA Reference Blockset Communications Blockset Constrol System ToolboxEtc.

    Como se ve en la siguiente pantalla:

    La presentacin de las bibliotecas podra cambiar dependiendo de las que se hayan instalado en cada computadora. La figura tambin nos muestra en la parte superior, cuatro iconos: para crear un nuevo espacio de trabajo, para abrir un modelo ya existente, para fijar la pantalla de bibliotecas de forma que siempre permanezca visible y por ltimo, el icono para bsqueda de bibliotecas. Cada una de las bibliotecas de simulink contiene un cierto nmero de bloques. Hay dos formas de accesar a los bloques componentes de cada biblioteca, oprimiendo sobre el signo + de la biblioteca de simulink, por ejemplo,

  • Lab. No.1 Introduccin al matlab y simulink.

    Control Automtico Control Analgico IE. PhD. FRANCISCO E. MORENO GARCIA

    8

    Cada bloque de la biblioteca contiene un subconjunto de bloques que son usados para formar la simulacin deseada. Al hacer doble clic sobre cualquiera de ellos se nos muestran los componentes del bloque en cuestin, por ejemplo, al seleccionar el bloque de Continuous, se obtiene

    Llevaremos a cabo una simulacin simple para efecto de aplicar un poco de lo que se ha visto, para ello, abrimos el men File, New y seleccionamos Model, para crear la ventana (Work Space de Simulink) donde efectuaremos una simulacin. Tambin se puede abrir esta ventana dando un doble click sobre el primer icono de la parte superior izquierda de la ventana Simulink Library Browser.

  • Lab. No.1 Introduccin al matlab y simulink.

    Control Automtico Control Analgico IE. PhD. FRANCISCO E. MORENO GARCIA

    9

    Cierre la ventana de Continuous, y en la biblioteca de simulink haga doble clic sobre Sources para tener accesibles sus componentes, arrastre con el ratn el componente de Sine Wave (Seal senoidal) a la ventana de trabajo de Simulink. Puede, si as lo desea, cerrar la ventana correspondiente a componentes de Sources, y posteriormente abrir la de Sinks, para arrastrar el componente Scope (Osciloscopio) hacia la misma ventana, hasta ahora se tiene lo siguiente

    Una vez conectados, como en la ventana anterior, haga doble clic sobre el Scope para abrir la pantalla que se muestra en la figura anterior. Al iniciar la simulacin, oprimiendo el icono indicado en la figura anterior, en la pantalla del osciloscopio aparecer la seal correspondiente; como se muestra en la parte izquierda de la siguiente figura. La figura de la parte derecha se obtiene al oprimir el icono de autoescala del osciloscopio.

    Para cambiar las caractersticas de la onda senoidal, haga doble clic sobre el componente de Sine Wave (Seal Senoidal) sobre la ventana de trabajo, pueden realizarse cambios en la frecuencia, amplitud, fase etc.

    Use y observe los iconos del osciloscopio para aumentar y disminuir el tamao de la grfica, cambiar los ajustes del osciloscopio, imprimir y mantener los ejes. Si gusta salve el modelo anterior.

    Realizaremos ahora la simulacin de la Funcin de Transferencia (tf) de un sistema de lazo abierto. Abra una nueva ventana de trabajo y arrastre los componentes Step de las bibliotecas

  • Lab. No.1 Introduccin al matlab y simulink.

    Control Automtico Control Analgico IE. PhD. FRANCISCO E. MORENO GARCIA

    10

    correspondientes, de forma que se tenga un Step de la Ventana Sources, un Transfer Fcn de la ventana Continuous y un Scope de la ventana Sinks como se muestra en la ventana de trabajo siguiente

    Haga doble clic sobre el componente Transfer Fcn y realice los cambios siguientes para obtener la funcin de transferencia deseada, en Numerator coloque los coeficientes del Numerator de tf entre corchetes y separados por espacios, en Denominator haga lo mismo y en Absolute tolerance la dejamos en auto una vez hecho esto haga clik sobre Apply y Ok.

    Al terminar de realizar el modelo y ejecutar la simulacin deber observar la siguiente seal del Osciloscopio

    Cambiemos ahora los parmetros de la simulacin para que la seal se inicie en cero. Haga doble click sobre el componente Step y aparece la ventana Block Parameters:Step y cambie el Step time de 1 a 0, para que el escaln inicie en tiempo cero y Final value permanece en uno para que el escaln siga con el valor de uno como se muestra en la figura siguiente

  • Lab. No.1 Introduccin al matlab y simulink.

    Control Automtico Control Analgico IE. PhD. FRANCISCO E. MORENO GARCIA

    11

    Oprima el botn OK y ejecute de nuevo la simulacin y observe los cambios en la seal dada por el osciloscopio, la cual debe ser de la siguiente forma

    Salve la simulacin del modelo abriendo File Save del men de la ventana de trabajo y abrase una nueva ventana de trabajo para crear el siguiente diagrama compuesto por elementos arrastrados desde la ventana Sources Step, desde la ventana Math Operations arrastrando Sum, desde la ventana Continuous Transfer Fcn y de la ventana Sinks Scope haciendo las conexiones pertinentes y calibrndolos apropiadamente tenemos el modelo de la ventana siguiente.

  • Lab. No.1 Introduccin al matlab y simulink.

    Control Automtico Control Analgico IE. PhD. FRANCISCO E. MORENO GARCIA

    12

    Cambie los parmetros de la simulacin utilizando su Men de la ventana anterior para ajustar el eje del tiempo con la opcin Configuration Parameters y en la ventana que nos proporciona como se muestra en seguida:

    Modelamiento de Ecuaciones

    El simulink puede ser usado para modelar ecuaciones diferenciales.

  • Lab. No.1 Introduccin al matlab y simulink.

    Control Automtico Control Analgico IE. PhD. FRANCISCO E. MORENO GARCIA

    13

    Se desea modelar la siguiente ecuacin diferencial

    la seal u es como se muestra.

    Lo primero es despejar la derivada de mayor orden

    El diagrama en el simulink quedara como se muestra.

  • Lab. No.1 Introduccin al matlab y simulink.

    Control Automtico Control Analgico IE. PhD. FRANCISCO E. MORENO GARCIA

    14

    TABLA 1. Ordenes de Matlab y Funciones Matriciales

  • Lab. No.1 Introduccin al matlab y simulink.

    Control Automtico Control Analgico IE. PhD. FRANCISCO E. MORENO GARCIA

    15

    TALLER EXTRACURRICULAR COMPLEMENTARIO DE REFUERZO

    Ejercicio 1: Resuelva la siguiente ecuacin diferencial. Modele el sistema y obtenga la respuesta en el tiempo para una entrada escaln de magnitud 2.

  • Lab. No.1 Introduccin al matlab y simulink.

    Control Automtico Control Analgico IE. PhD. FRANCISCO E. MORENO GARCIA

    16

    Ejercicio 2: Resolver los siguientes ejemplos de simulaciones: a) En Lazo Abierto para la Funcin de Transferencia

    con entrada de un escaln unitario que inicie en un tiempo de dos segundos.

    b) En Lazo Cerrado con Retroalimentacin unitaria para la Funcin de Transferencia

    con entrada de un escaln de valor 2 que empiece en tiempo cero