Introduccion a matlab y simulink

11,530 views

Published on

Published in: Technology
1 Comment
0 Likes
Statistics
Notes
  • Be the first to like this

No Downloads
Views
Total views
11,530
On SlideShare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
256
Comments
1
Likes
0
Embeds 0
No embeds

No notes for slide

Introduccion a matlab y simulink

  1. 1. MATLAB Y SIMULINK MATLAB (abreviatura de MATrix LABoratory, "laboratorio de matrices") es un software matemático que ofrece un entorno de desarrollo integrado (IDE) con un lenguaje de programación propio (lenguaje M). Está disponible para las plataformas Unix, Windows y Apple Mac OS X. Entre sus prestaciones básicas se hallan: la manipulación de matrices, la representación de datos y funciones, la implementación de algoritmos, la creación de interfaces de usuario (GUI) y la comunicación con programas en otros lenguajes y con otros dispositivos hardware. El paquete MATLAB dispone de dos herramientas adicionales que expanden sus prestaciones, a saber, Simulink (plataforma de simulación multidominio) y GUIDE (editor de interfaces de usuario - GUI). Además, se pueden ampliar las capacidades de MATLAB con las cajas de herramientas (toolboxes); y las de Simulink con los paquetes de bloques (blocksets). 1. Transformada de Laplace Matlab permite obtener transformadas y antitransformadas de Laplace mediante su módulo de matemática simbólica. Procedimiento:  Declarar una variable simbólica con la instrucción syms.  Obtener la transformada para una expresión definida utilizando la variable simbólica anterior. Instrucciones de Matlab correspondientesa cada una de las transformadas:  laplace: transformada de Laplace  ilaplace: transformada inversa de Laplace Para calcular transformadas de Laplace, MATLAB utiliza el comando laplace(f(t)) que se encuentra en el toolbox simbólico. Por defecto la variable de integración es 't' y sólo es necesario definir las variables y constantes simbólicas que se utilicen por medio del comando sym. Para calcular la transformada inversa de Laplace, MATLAB utiliza el comando ilaplace(f(s)), siendo s la variable independiente por deecto. Este comando devuelve el resultado en
  2. 2. función de 't', también aquí es necesario definir las variables y constantes simbólicas que se utilicen por medio del comando sym. Ejemplo 1: Calcular la transformada de Laplace de 𝑓( 𝑡) = 4 − 4𝑒−0.5𝑡 %------------------------------------------------------------------------ %REG.AUTOMATICA Y MATLAB %En este ejemplo calcularemos la transformada de Laplace de una función %------------------------------------------------------------------------ % Primero definimos la variable t syms t; % Luego introducimos la función que queremos transformar f=(4-4*exp(-0.5*t)); %introducimos el comando laplace ans=laplace(f) % para arreglar el resultado pretty(ans) 4/s-4/(s+1/2) El primer resultado nos lo da el matlab directamente, si queremos que se vea mejor utilizamos el comando pretty(ans)
  3. 3. Ejemplo 2: Calcular la transformada inversa de la siguiente función 𝐹( 𝑠) = 𝑠+5 𝑠2+3𝑠+2 %------------------------------------------------------------------------ %REG.AUTOMATICA Y MATLAB %En este ejemplo veremos como se calcula la antitransformada de una función %------------------------------------------------------------------------ % Definimos la variable s syms s %introducimos la función que queremos antitranformar f=(s+5)/(s^2+3*s+2); %Aplicamos el comando ilaplace ans=ilaplace(f) ans=ilaplace(f) ans = -3*exp(-2*t)+4*exp(-t) La antitransformada de la función dada 2. Función de Transferencia Existen dos maneras básicas de representar la función de transferencia en Matlab: A. Usando el comando tf: Para introducir una FT del tipo 𝐺( 𝑠) = 𝑌(𝑠) 𝑋(𝑠) , usando el comando tf, escribir >>G=tf(num,den)
  4. 4. donde num y den son vectores representando los coeficientes de los polinomios n(s) y d(s), respectivamente. El resultado de la variable W es un objeto del tipo TF, conteniendo el numerador y el denominador. Ejemplo: Tenemos 2 sistemas (sys1, sys2) cuyas FT son 𝐺1( 𝑠) = 𝑠2+2𝑠+3 𝑠3+4𝑠2 +5𝑠+6 y 𝐺2( 𝑠) = 3𝑠2 2𝑠2+6𝑠+3 %------------------------------------------------------------------------ % REG.AUTOMATICA Y MATLAB % En este ejemplo introduciremos las Fdts de los sistemas sys1, sys2 % mediante el comando tf(num,den) %------------------------------------------------------------------------ %Definicion del sistema sys1: num1=[1 2 3];% Aqui se define la variable vector del numerador den1=[1 4 5 6]; % y del denominador. sys1=tf(num1,den1); % Creacion del sistema sys1 %Definicion del sistema sys2: num2=[3 0 0]; % Atencion con los ceros den2=[2 6 3]; sys2=tf(num2,den2); % Visualizacion de las Fdts sys1 sys2 Transfer function: s^2 + 2 s + 3 --------------------- s^3 + 4 s^2 + 5 s + 6 Transfer function: 3 s^2 --------------- 2 s^2 + 6 s + 3 B. Mediante modelosZPK (Zero-Pole-Gain) Una forma alternativa de representar la Fdt, es mediante la factorización del numerador y del denominador:
  5. 5. 𝐻( 𝑠) = ( 𝑠 − 𝑧1) …(𝑠 − 𝑧 𝑚) ( 𝑠 − 𝑝1)… (𝑠 − 𝑝𝑛 ) La ventaja de esta forma es que los ceros (z) y los polos (k) de la FdT son fáciles de visualizar. La sintaxis para especificar este tipo de modelos es: >>H=zpk(z,p,k) donde, z: Son los ceros de la FT en forma de vector. p: Son los polos de la FT en forma de vector. k: Es la ganancia del sistema. Ejemplo: Tenemos 2 sistemas (sys1, sys2) cuyas FT son 𝐺1( 𝑠) = −2𝑠 ( 𝑠−2)(𝑠2−2𝑠+2) y 𝐺1( 𝑠) = ( 𝑠+1)(𝑠+3) 𝑠( 𝑠+2)(𝑠+4) % %------------------------------------------------------------ % REG.AUTOMATICA Y MATLAB % En este ejemplo introduciremos las FDTs G1(s) y G2(s) % como modelos zpk (zero-pole-gain) %-------------------------------------------------------------- % G1(s) % Primero definimos los ceros: z=[0]; % Despues los polos: p=[1-i;1+i;2]; % y la ganancia k=[-2] % Finalmente el comando G1=zpk(z,p,k); % G2(s) z=[-1 -3]; p=[0 -2 -4]; k=1 G2=zpk(z,p,k); % Visualizacion G1 G2 G1(s)= Zero/pole/gain: -2 s -------------------- (s-2) (s^2 - 2s + 2) G2(s)= Zero/pole/gain: (s+1) (s+3) ------------- s (s+2) (s+4)
  6. 6. C. Pasar de ZPK a TF La función zp2tf convierte la función cero-polo-ganancia: 𝐻( 𝑠) = 𝐾 ( 𝑠 − 𝑧1)… (𝑠 − 𝑧 𝑚) ( 𝑠 − 𝑝1) …(𝑠 − 𝑝𝑛) En la función de transferencia polinómica: 𝐻( 𝑠) = 𝑏0 𝑠 𝑛 + 𝑏1 𝑠 𝑛−1 + ⋯+ 𝑏 𝑛−1 𝑠 + 𝑏 𝑛 𝑎0 𝑠 𝑚 + 𝑎1 𝑠 𝑚−1 + ⋯+ 𝑏 𝑚−1 𝑠+ 𝑏 𝑚 Su sintaxis es: [num,den]=zp2tf(z,p,k) Ejemplo: Transformar la siguiente función ZPK a TF 𝐺( 𝑠) = ( 𝑠+1)(𝑠+3) 𝑠( 𝑠+2)(𝑠+4) % %------------------------------------------------------------ % REG.AUTOMATICA Y MATLAB % En este ejemplo introduciremos la FDT G(s) %-------------------------------------------------------------- % Primero definimos los ceros: z=[-1;-3]; % Despues los polos: p=[0;-2;-4]; % y la ganancia k=1; % Finalmente el comando [num,den]=zp2tf(z,p,k); % Para visualizarlo como FT G=tf(num,den) G(s)= s^2 + 4 s + 3 ----------------- s^3 + 6 s^2 + 8 s C. Pasar de TF a ZPK La función tf2zp convierte la función de transferencia: 𝐻( 𝑠) = 𝑏0 𝑠 𝑛 + 𝑏1 𝑠 𝑛−1 + ⋯+ 𝑏 𝑛−1 𝑠 + 𝑏 𝑛 𝑎0 𝑠 𝑚 + 𝑎1 𝑠 𝑚−1 + ⋯+ 𝑏 𝑚−1 𝑠+ 𝑏 𝑚
  7. 7. En la función de transferencia cero-polo-ganancia: 𝐻( 𝑠) = 𝐾 ( 𝑠 − 𝑧1)… (𝑠 − 𝑧 𝑚) ( 𝑠 − 𝑝1) …(𝑠 − 𝑝𝑛) Su sintaxis es: [z,p,k]=tf2zp(num,den) Ejemplo: Transformar la siguiente función TF a ZPK 𝐺( 𝑠) = 𝑠2−2𝑠+3 𝑠3−3𝑠2−5𝑠 % %------------------------------------------------------------ % REG.AUTOMATICA Y MATLAB % En este ejemplo introduciremos la FDT G(s) %-------------------------------------------------------------- % Primero definimos el numerador: num=[1,-2,-3]; % Despues el denominador: den=[1,-3,-5,0]; % Finalmente el comando [z,p,k]=tf2zp(num,den); % Para visualizarlo como FT G=zpk(z,p,k) G(s)= Zero/pole/gain: (s-3) (s+1) --------------------- s (s-4.193) (s+1.193) 3. Diagramas de Bloque Para hacer mucho más fácil la reducción de los diagramas de bloque utilizaremos la herramienta Simulink incluida en MatLab. Ejemplo:
  8. 8. Primeramente entramos en MatLab y hacemos click en la barra en el icono de Simulink:. Una vez en el programa seleccionamos File – New – Model Creamos el modelo que queremos representar: 1- Inserta la entrada (In1) y la salidad (Out1) desplegando Commmonly Used Blocks. De igual forma inserta el punto de suma arrastrándolo a la derecha. 2- Para insertar una función de transferencia, despliega Continuous y selecciona Transfer Fcn y arrastrala a la derecha. 3- Doble click sobre el bloque y puedes cambiar los valores del numerador y denominador. 4- Para invertir el bloque de posición selecciona Format – Flip Block. 5- Para unir con flechas selecciona un extremo y arrastra hasta el siguiente. 6- El resultado debe ser así:
  9. 9. Guardamos el proyecto, en este caso “Prueba” en el directorio que él nos indica. Luego escribimos en Matlab el comando [num,den]=linmod('Prueba') % %------------------------------------------------------------ % REG.AUTOMATICA Y MATLAB % Reducción de Diagraas de Bloque %-------------------------------------------------------------- % Primero el comando [num,den]=linmod('Prueba'); % Finalmente el comando para vizualizarlo G=tf(num,den) Transfer function: s^3 + 4.885e-015 s^2 - s + 6 ------------------------------ s^4 + 4 s^3 + 4 s^2 - 12 s + 9

×