Introducción a MATLAB y Simulink



Documentos relacionados
Manual de Introducción a SIMULINK

1) Como declarar una matriz o un vector.

Centro de Capacitación en Informática

MICROSOFT EXCEL Introducción: Qué es y para qué sirve Excel2007? TECNOLOGIA/ INFORMATICA: MS-EXCEL

Instructivo de Microsoft Excel 2003

Figura 1 Abrir nueva hoja de cálculo

Simulación de sistemas con Simulink

PRÁCTICA 2: MODELADO DE SISTEMAS

CASO PRÁCTICO DISTRIBUCIÓN DE COSTES

La ventana de Microsoft Excel

APUNTES DE WINDOWS. Windows y sus Elementos INSTITUTO DE CAPACITACIÓN PROFESIONAL. Elementos de Windows

Manual Impress Impress Impress Impress Impress Draw Impress Impress

Práctica 1ª: Introducción a Matlab. 1er curso de Ingeniería Industrial: Ingeniería de Control

Reservas - Rooming List

MATERIAL 2 EXCEL 2007

Un kilobyte (KB) son 1024 bytes, un Megabyte (MB) son 1024 KB, un Gigabyte son 1024 Mb

Matlab para Análisis Dinámico de Sistemas

Comenzando con MATLAB

Para ingresar a la aplicación Microsoft PowerPoint 97, los pasos que se deben seguir pueden ser los siguientes:

Cálculo Simbólico también es posible con GeoGebra

Instalación del programa PSPP y obtención de una distribución de frecuencias.

Manejo de Libros. Marzo 2011 Manejo de Libros Diapositiva 1

MACROS Y FORMULARIOS

Capítulo 9. Archivos de sintaxis

LABORATORIO Nº 2 GUÍA PARA REALIZAR FORMULAS EN EXCEL

Uso del simulador Modelsim

MATLAB en 30 minutos

generar columnas de texto y números disponer texto en columnas paralelas (para traducciones por ejemplo) situar imágenes junto a textos.

1.- MENU DE CONTROL O MENU VENTANA: permite cerrar la ventana cambiarla de tamaño y pasar a otra ventana

Introducción a Matlab.

GUÍA RÁPIDA DE TRABAJOS CON ARCHIVOS.

CLASE 12.-INSERTAR COLUMNAS

Para ingresar a la aplicación Microsoft Word 97, los pasos que se deben seguir pueden ser los siguientes:

Índice general de materias LECCIÓN 7 74

Manual de OpenOffice Impress

OBTENER DATOS EXTERNOS

Dando nuestros primeros pasos con 3DS Max. 1. Objetivos

Elementos de Microsoft Word

Tutorial de Introducción a la Informática Tema 0 Windows. Windows. 1. Objetivos

= C18+C19+C20+C21+C22 = SUMA(C18:C22) Con este sencillo ejemplo hemos querido demostrar que las funciones nos permiten simplificar los cálculos.

Para crear formularios se utiliza la barra de herramientas Formulario, que se activa a través del comando Ver barra de herramientas.

AUTOR CARLOS EDUARDO BUENO VERGARA JORGE ARMANDO BUENO VERGARA USO DE LOS OBJETOS DEL PROGRAMA. Dfd INFORMÁTICA II PROFESOR. JOSÉ FRANCISCO AMADOR

Una breve introducción a Excel c

PRÁCTICAS DE GESTIÓN GANADERA:

Microsoft Access proporciona dos métodos para crear una Base de datos.

CAPÍTULO 4. EL EXPLORADOR DE WINDOWS XP

GUÍA BÁSICA DE USO DEL SISTEMA RED

Integrador, realimentación y control

Ahora comencemos!... Las operaciones matemáticas fundamentales pueden realizarse de forma rápida y sencilla con Miicrosofftt Excell.

A continuación, se detalla el uso de los accesorios más comunes:

Módulo 8: Ofimática básica. Unidad didáctica 4: Introducción y modificación de datos. Access

MANEJANDO FICHEROS Y CARPETAS

Este botón situado en la barra de título de la ventana de la aplicación, nos da acceso a un menú mediante el cual podemos, entre otras opciones:

Introducción a MATLAB y SIMULINK para Control

Informática I Notas del curso

PROGRAMA INFORMÁTICO PARA LA CUMPLIMENTACIÓN DE RECETAS EN FORMATO XML VERSIÓN: 1.0

Manual básico BSCW. 1. Acceder al espacio de trabajo. Hacer clic en Acceder a su área de trabajo.

Vamos a ver las dos formas básicas de arrancar PowerPoint.

Descarga Automática. Manual de Usuario. Operador del Mercado Ibérico de Energía - Polo Español Alfonso XI, Madrid

NORMA (SEPA) 22/11/2013

1 MANUAL DE INSTALACIÓN

MANUAL BÁSICO DE WRITER

Otros tipos de Consultas

Guía N 1: Fundamentos básicos(i)

reemplaza menú archivo y esta situado en la esquina superior izquierda de estos programas de

ÍNDICE. Acceso a nivel de agencias...3. Organización por carpetas...4. Descarga de facturas desde el portal...5. Búsquedas de facturas...

PROYECTO EDUCATIVO LA CALERA

Ofimática Aplicada. Elaborado por: Lic. Ronald Méndez

Recursos de Aprendizaje

Servicio de Informática Vicerrectorado de Tecnologías de la Información y la Comunicación

Operación de Microsoft Word

Planilla de cálculo. Módulo II - OpenOffice.org Calc

RAPID TYPING. Qué es?

INSTRUCCIÓN DE SERVICIO NOCIONES BÁSICAS PARA DIAGRAMAS DE FLUJO. MICROSOFT VISIO

Tema 3: Vectores y matrices. Conceptos básicos

EDWIN KÄMMERER ORCASITA INGENIERO ELECTRÓNICO

6.1. Conoce la papelera

Operación de Microsoft Excel. Guía del Usuario Página 79. Centro de Capacitación en Informática

Hoja1!C4. Hoja1!$C$4. Fila

EMPLEO NTIC`S II SEGUNDO SEMESTRE

Roberto Quejido Cañamero

Puede acceder a estas opciones a través del menú Inicio: Inicio/Configuración, o bien, a través del Icono Mi Pc situado en el Escritorio:

Bienvenido al sistema de Curriculum Digital CVDigital

Informática I (Grado en Matemáticas) Práctica 1 de Excel

2.2 Transformada de Laplace y Transformada Definiciones Transformada de Laplace

EDICIÓN Y FORMATO (II)

EJERCICIO 3: DOCUMENTO MAESTRO

Ofimática Aplicada UNIDAD II : HERRAMIENTAS DE ESCRITORIO WORD

GENERACIÓN DE TRANSFERENCIAS

OpenOffice.org Calc MANUAL CALC 1.INTRODUCCIÓN ENTORNO BARRAS DE MENÚ PERSONALIZACIÓN DE BARRAS... 4

Centro de Capacitación en Informática

TEMA 4: CORREO ELECTRÓNICO: OUTLOOK 2007 CORREO ELECTRÓNICO: OUTLOOK EJECUTAR EL ENTORNO DE TRABAJO GESTIÓN DE CORREO ELECTRÓNICO 3

Manual de Instrucciones

Tema 4: Empezando a trabajar con ficheros.m

La hoja de cálculo EXCEL. Conceptos básicos

MANUAL DE AYUDA MÓDULOS 2011 MACOS

Operación de Microsoft Excel

Manual Time One Software control de horarios

Microsoft Office XP Excel XP (I)

Práctica 0. Emulador XENON de la computadora CESIUS

Transcripción:

Introducción a MATLAB y Simulink por Ing. Miguel G. Alarcón Cátedra de Sistemas de Control Facultad de Ciencias Exactas y Tecnología Universidad Nacional de Tucumán

CONTENIDO INTRODUCCIÓN A MATLAB... 2 EL ENTORNO DE MATLAB... 2 DEFINICIÓN DE MATRICES DESDE TECLADO... 5 DEFINICIÓN DE FUNCIONES DE TRANSFERENCIA... 7 EJEMPLO 1:... 9 ÁLGEBRA DE BLOQUES - DETERMINACIÓN DE LA FT... 11 EJEMPLO 2:... 11 DESARROLLO EN FRACCIONES PARCIALES... 12 EJEMPLO 3:... 13 REPRESENTACIÓN DE POLOS Y CEROS... 13 EJEMPLO 4:... 13 RESPUESTA TRANSITORIA DE UN SISTEMA... 14 RESPUESTA AL ESCALÓN UNITARIO... 14 RESPUESTA AL IMPULSO UNITARIO... 14 EJEMPLO 5:... 14 RESPUESTA EN FRECUENCIA DE UN SISTEMA... 15 REPRESENTACIÓN LOGARITMICA... 16 REPRESENTACIÓN POLAR... 16 EJEMPLO 6:... 17 SIMULINK... 18 EJEMPLO 7:... 27 1

INTRODUCCIÓN A MATLAB MATLAB es el nombre abreviado de MATrix LABoratory. MATLAB es un programa para realizar cálculos numéricos con vectores y matrices. Como caso particular puede también trabajar con números escalares tanto reales como complejos, con cadenas de caracteres y con otras estructuras de información más complejas. Una de las capacidades más atractivas es la de realizar una amplia variedad de gráficos en dos y tres dimensiones. MATLAB tiene también un lenguaje de programación propio. MATLAB dispone de un código básico y de varias librerías especializadas (toolboxes). En estos apuntes se hará referencia exclusiva al código básico y al Control Systems Toolbox. MATLAB se puede arrancar como cualquier otra aplicación de Windows, haciendo doble click en el icono correspondiente en el escritorio o por medio del menú Inicio). SIMULINK es una función de MATLAB que permite el diseño y análisis de sistemas, a partir de representaciones gráficas como diagramas de bloques. EL ENTORNO DE MATLAB Al ingresar a MATLAB se visualizará una ventana, en la cual se podrán observar las siguientes partes principales: Barra de tareas: En la barra de tareas encontrará los comandos básicos de todo programa, nuevo, abrir, copiar, pegar, etc. Pero aparece un nuevo icono, el icono de SIMULINK el cual abre dicha función. Tambien es posible invocarla tipeando en la ventana de comandos simulink. Barra de direcciones: En la misma se podrá seleccionar la carpeta en la que se desea trabajar. Por defecto esta posicionada en C:\Mis Documentos\MATLAB. 2

Indicador de Estado: Indica el estado de operación de MATLAB puede indicar Ready o Busy esto avisa al usuario cuando el programa está listo para una nueva operación. Ventana de comandos: En la misma se ingresarán y visualizarán, por parte del usuario, las funciones y/o variables. 3

Carpeta Actual: En la misma se visualizan las subcarpetas, archivos y funciones contenidas en la carpeta seleccionada en la barra de direcciones. Espacio de Trabajo: En esta ventana se observan todas las variables activas en el espacio de trabajo, dichas variables podrán ser matrices, vectores, cadenas de caracteres, estructuras, etc. 4

Historial de Comandos: Se visualizan con fecha y hora las funciones u operaciones realizadas en la ventana de comandos. DEFINICIÓN DE MATRICES DESDE TECLADO Como en casi todos los lenguajes de programación, en MATLAB las matrices y vectores son variables que tienen nombres. Ya se verá luego con más detalle las reglas que deben cumplir estos nombres. Por el momento se sugiere que se utilicen letras mayúsculas para matrices y letras minúsculas para vectores y escalares (MATLAB no exige esto, pero puede resultar útil). Para definir una matriz no hace falta declararlas o establecer de antemano su tamaño (de hecho, se puede definir un tamaño y cambiarlo posteriormente). MATLAB determina el número de filas y de columnas en función del número de elementos que se proporcionan (o se utilizan). Las matrices se definen o introducen por filas; los elementos de una misma fila están separados por blancos o comas, mientras que las filas están separadas por caracteres punto y coma (;). Por ejemplo, el siguiente comando define una matriz A de dimensión (3 3): >> A=[1 2 3; 4 5 6; 7 8 9] La respuesta del programa es la siguiente: A = 1 2 3 4 5 6 7 8 9 A partir de este momento la matriz A está disponible para hacer cualquier tipo de operación con ella (además de valores numéricos, en la definición de una matriz o vector se pueden utilizar expresiones y funciones matemáticas). Por ejemplo, una sencilla operación con A es hallar su matriz traspuesta. 5

En MATLAB el apóstrofe (') es el símbolo de transposición matricial. Para calcular A' (traspuesta de A) basta teclear lo siguiente (se añade a continuación la respuesta del programa): >> A' ans = 1 4 7 2 5 8 3 6 9 Como el resultado de la operación no ha sido asignado a ninguna otra matriz, MATLAB utiliza un nombre de variable por defecto (ans, de answer), que contiene el resultado de la última operación. La variable ans puede ser utilizada como operando en la siguiente expresión que se introduzca. También podría haberse asignado el resultado a otra matriz llamada B: >> B=A' B = 1 4 7 2 5 8 3 6 9 Ahora ya están definidas las matrices A y B, es posible seguir operando con ellas. Por ejemplo, se puede hacer el producto B*A (deberá resultar una matriz simétrica): >> B*A ans = 66 78 90 78 93 108 90 108 126 En MATLAB se accede a los elementos de un vector poniendo el índice entre paréntesis (por ejemplo x(3) ó x(i)). Los elementos de las matrices se acceden poniendo los dos índices entre paréntesis, separados por una coma (por ejemplo A(1,2) ó A(i,j)). Las matrices se almacenan por columnas (aunque se introduzcan por filas, como se ha dicho antes), y teniendo en cuenta esto puede accederse a cualquier elemento de una matriz con un sólo subíndice. Por ejemplo, si A es una matriz (3 3) se obtiene el mismo valor escribiendo A(1,2) que escribiendo A(4). Invertir una matriz es casi tan fácil como trasponerla. A continuación se va a definir una nueva matriz A -no singular- en la forma: >> A=[1 4-3; 2 1 5; -2 5 3] A = 1 4-3 2 1 5-2 5 3 Ahora se va a calcular la inversa de A y el resultado se asignará a B. Para ello basta hacer uso de la función inv( ) (la precisión o número de cifras con que se muestra el resultado se puede cambiar con el menú File/Preferences/General): >>B=inv(A) B = 0.1803 0.2213-0.1885 0.1311 0.0246 0.0902-0.0984 0.1066 0.0574 6

Para comprobar que este resultado es correcto basta pre-multiplicar A por B; >> B*A ans = 1.0000 0.0000 0.0000 0.0000 1.0000 0.0000 0.0000 0.0000 1.0000 De forma análoga a las matrices, es posible definir un vector fila x en la forma siguiente (si los tres números están separados por blancos o comas, el resultado será un vector fila): >> x=[10 20 30] % vector fila x = 10 20 30 Por el contrario, si los números están separados por puntos y coma (;) se obtendrá un vector columna: >> y=[11; 12; 13] % vector columna y = 11 12 13 MATLAB tiene en cuenta la diferencia entre vectores fila y vectores columna. Por ejemplo, si se intenta sumar los vectores x e y se obtendrá el siguiente mensaje de error: >> x+y??? Error using ==> + Matrix dimensions must agree. Estas dificultades desaparecen si se suma x con el vector transpuesto de y: >> x+y' ans = 21 32 43 MATLAB considera vectores fila por defecto, como se ve en el ejemplo siguiente: >> x(1)=1, x(2)=2 x = 1 x = 1 2 DEFINICIÓN DE FUNCIONES DE TRANSFERENCIA En MATLAB una función de transferencia se describe de tres formas posibles: Utilizando dos vectores filas, cada uno de los cuales contiene los coeficientes del numerador y del denominador respectivamente. Para esto se utiliza la función tf (transfer function) cuya sintaxis es la siguiente: >>sys=tf(num,den) 7

Utilizando dos vectores columnas y un escalar, donde cada vector contendrá las posiciones de los ceros y polos respectivamente, y el escalar será el valor de la ganancia. Para ello se utiliza la función zpk, cuya sintaxis es la siguiente: >>sys=zpk(zeros,poles,gain) Utilizando cuatro matrices, cada matriz se corresponderá a las utilizadas en la representación mediante variables de estados. La función a utilizar es ss, la sintaxis: >>sys=ss(a,b,c,d) Muchas veces una función de transferencia que se especificó como una razón de polinomios debe convertirse a una forma que se especifica por los valores de los polos, ceros y un factor de ganancia o a la forma de variables de estados y viceversa. Para estas conversiones MATLAB permite utilizar las tres funciones antes vistas y además proporciona seis funciones específicas para cada conversión. tf2zp Convierte la función de transferencia expresada como una razón de polinomios, en la forma polos-ceros y la sintaxis es la siguiente: >>[z,p,k]=tf2zp(num,den) zp2tf Convierte una función de transferencia expresada en la forma polos-ceros, a una razón de polinomios, la sintaxis es la siguiente: >>[num,den]=zp2tf(z,p,k) tf2ss Convierte una function de transferencia expresada como una razón de polinomios, a la representación mediante variables de estados. La sintaxis es la siguiente: >>[A,B,C,D]=tf2ss(num,den) ss2tf Convierte una function de transferencia expresada en la forma variables de estados, a una razón de polinomios. La sintaxis: >>[num,den]=ss2tf(a,b,c,d) zp2ss Convierte una función de transferencia expresada en la forma polos-ceros, a la representación mediante variables de estados. La sintaxis es la siguiente: >>[A,B,C,D]=zp2ss(zeros,poles,gain) ss2zp Convierte una función de transferencia expresada en variables de estados, a la forma polosceros. La sintaxis es la siguiente: >>[z,p,k]=ss2zp(a,b,c,d) Como se observa las variables de salida se sitúan en el lado izquierdo de la línea de comando, y los argumentos de entrada se incluyen con la función en el lado derecho. 8

EJEMPLO 1: Dada la siguiente función de transferencia, ingrésela en MATLAB y encuentre la representación en variables de estados. ( ) ( ) ( )( )( ) Ingresando como razón de polinomios: >>num=[0 0 40 800]; >>den=[1 22 180 800]; >>Htf=tf(num,den) Transfer function: 40s+800 ------------------- s^3+22s^2+180s+800 Ingresando en la forma polos-ceros: >>zero=[-20]; >>poles=[-12.8-4.6-j6.4-4.6+j6.4]; >>k=40; >>Hzp=zpk(zero,poles,k) Zero/pole/gain: 40(s+20) ------------------------ (s+12.8)(s^2+9.2s+62.12) A partir de estas representaciones, se calculará las matrices de la representación en variables de estados, utilizando las funciones ss, tf2ss y zp2ss: >>Hss1=ss(Htf) a = x1 x2 x3 x1-22 -11.25-6.25 x2 16 0 0 x3 0 8 0 b = u1 x1 4 x2 0 x3 0 c = x1 x2 x3 y1 0 0.625 1.563 d = u1 y1 0 Continuous-time model. 9

>>Hss2=ss(Hzp) a = x1 x2 x3 x1-4.6 6.4 0 x2-6.4-4.6 1.614 x3 0 0-12.8 b = u1 x1 0 x2 0 x3 8 c = x1 x2 x3 y1 7.453 3.097 0 d = u1 y1 0 Continuous-time model. >>[A,B,C,D]=tf2ss(num,den) A = -22-180 -800 1 0 0 0 1 0 B = 1 0 0 C = 0 40 800 D = 0 >>[A1,B1,C1,D1]=zp2ss(zero,poles,k) A1 = -12.8000 0 0 7.2000-9.2000-7.8816 0 7.8816 0 B1 = 1 1 0 C1 = 0 0 5.0751 D1 = 0 10

Como se observa las representaciones en variables de estados difieren de acuerdo a qué forma se utiliza para el cálculo, esto es debido a que al tratarse de una transformación lineal dependerá del espacio de estados que se tome, MATLAB toma distintos espacios de estados para ss, tf2ss y zp2ss. Pero es importante recalcar que las representaciones son correctas. ÁLGEBRA DE BLOQUES - DETERMINACIÓN DE LA FT La función de transferencia de un grupo interconectado de bloques se puede determinar con las siguientes instrucciones: series Calcula la función de transferencia de dos bloques que se encuentran en cascada. Las sintaxis posibles son: >>sys=series(sys1,sys2) >>[num,den]=series(num1,den1,num2,den2) parallel Calcula la función de transferencia de dos bloques en paralelo. Las sintaxis posibles son: >>sys=parallel(sys1,sys2) >>[num,den]=parallel(num1,den1,num2,den2) cloop Calcula numerador y denominador de la función de transferencia del arreglo canónico con realimentación unitaria. La sintaxis es la siguiente: >>[num,den]=cloop(numg,deng,-1) Lazo negativo >>[num,den]=cloop(numg,deng,1) Lazo positivo feedback Calcula la función de transferencia del arreglo canonico con realimentación no unitaria. Las sintaxis son: >>sys=feedback(sysg,sysh,-1) Lazo negativo >>sys=feedback(sysg,sysh,1) Lazo positivo >>[num,den]=feedback(numg,deng,numh,denh,-1) Lazo negativo >>[num,den]=feedback(numg,deng,numh,denh,1) Lazo positivo EJEMPLO 2: Dado el siguiente diagrama de bloques, encuentre la función de transferencia ( ). r(t) + 0.4 + - -. 100. s(s+2) y(t). s. s(s+2) 1º Paso: Ingreso de las funciones de transferencia de los bloques >>G=tf([0 0 100],[1 2 0]); 11

>>H=tf([0 1 0],[1 2 0]); >>K=0,4; 2º Paso: Resolucion del primer arreglo canonico >>AC1=feedback(G,H,-1) Transfer function: 100 s^2 + 200 s --------------------------- s^4 + 4 s^3 + 4 s^2 + 100 s 3º Paso: Resolución de la cascada de bloques en el camino directo >>BS=series(K,AC1) Transfer function: 40 s^2 + 80 s --------------------------- s^4 + 4 s^3 + 4 s^2 + 100 s 4º Paso: Calculo de la funncion de transferencia >>TF=feedback(BS,1,-1) Transfer function: 40 s^2 + 80 s ---------------------------- s^4 + 4 s^3 + 44 s^2 + 180 s Otra manera de calcular la funcion de transferencia habría sido: >>[numtf,dentf]=cloop(bs.num{1},bs.den{1}) numtf = 0 0 40 80 0 dentf = 1 4 44 180 0 DESARROLLO EN FRACCIONES PARCIALES El comando para el desarrollo de una función, en la variable de Laplace, en fracciones parciales es residue y la sintaxis es la siguiente: >>[r,p]=residue(num,den) La salida p contiene los polos de la función y la salida r contiene los residuos a los polos correspondientes. 12

Imaginary Axis EJEMPLO 3: Dada la siguiente función, encuentre los residuos para realizar la expansión en fracciones parciales: ( ) >>[r,p]=residue([0 0 0 40 800],[1 22 180 800 0]) r = -0.2044-0.3978 + 0.4877i -0.3978-0.4877i 1.0000 p = -12.8306-4.5847 + 6.4290i -4.5847-6.4290i 0 REPRESENTACIÓN DE POLOS Y CEROS Para graficar los polos y ceros de una función de transferencia, MATLAB utiliza la función pzmap. Las posibles sintaxis son las siguientes: >>pzmap(sys1,sys2,..,sysn) >>pzmap(num1,den1,num2,den2,.,numn,denn) EJEMPLO 4: Para la función del ejemplo 3 realice la grafica de polos y ceros. >>pzmap([0 0 0 40 800],[1 22 180 800 0]) 8 Pole-Zero Map 6 4 2 0-2 -4-6 13-8 -20-18 -16-14 -12-10 -8-6 -4-2 0 Real Axis

RESPUESTA TRANSITORIA DE UN SISTEMA Respuestas transitorias (tales como respuesta a un salto o entrada escalón y respuesta impulsional) se utilizan frecuentemente para investigar las características en el dominio temporal de los sistemas. MATLAB permite calcular y visualizar dichas respuestas mediante el uso de funciones preestablecidas. RESPUESTA AL ESCALÓN UNITARIO La respuesta al escalón unitario se obtiene medianta la función step, dicha función posee distintas sintaxis de acuerdo a los datos que se deseen obtener y los datos ingresados. Si lo que se desea obtener es unicamente la grafica de la respuesta la sintaxis es: >>step(sys) En el caso de que se desee obtener los puntos que conforman la grafica para realizar una tabla de analisis, la sintaxis será: >>[y,t]=step(sys) RESPUESTA AL IMPULSO UNITARIO La respuesta al impulso unitario se obtiene mediante la función impulse, al igual que la función step esta posee diferentes sintaxis: Cuando solo se desea obtener la grafica de la respuesta: >>impulse(sys) Cuando se desean los valores para confeccionar una tabla: >>[y,t]=impulse(sys) EJEMPLO 5: Dada la siguiente función de transferencia calcule y grafique las respuestas al escalón y al impulso unitario: ( ) ( ) >>sys=tf([0 0 40 800],[1 22 180 800]); >>[yi,ti]=impulse(sys); %Calcula los puntos para la tabla >>[ye,te]=step(sys); %Calcula los puntos para la tabla >>impulse(sys) %Grafica la respuesta 14

>>figure %Abre una nueva ventana gráfica >>step(sys) %Grafica la respuesta RESPUESTA EN FRECUENCIA DE UN SISTEMA Con el termino respuesta en frecuencia, se quiere decir la respuesta en estado estacionario de un sistema a una entrada senoidal. En los metodos de respuesta en frecuencia, variamos la frecuencia de la señal de entrada en un cierto rango y estudimos la respuesta resultante. Una ventaja del metodo de la respuesta en frecuencia es que los test son en general simples y pueden hacerse de forma precsa mediante el empleo de generadores de ondas senoidales y buenos equipos de medida. 15

La función de transferencia senoidal, una función compleja dependiente de la frecuencia w, se caracteriza por su magnitud y angulo de fase, con la frecuencia como parametro. Hay dos representaciones comunmente utilizadas para las funciones de transferencia senoidales: Representación Logaritmica Representación Polar REPRESENTACIÓN LOGARITMICA Una función de transferencia senoidal se puede representar en dos diagramas separados, uno que da la magnitud respecto de la frecuencia y otro que da el angulo de fase tambien respecto a la frecuencia. Para el calculo y visualización de la respuesta en frecuencia en forma logaritmica MATLAB utiliza la función bode la cual proporciona las graficas correspondientes a la representación logaritmica o en caso de desear solo los valores de magnitud y angulo de fase tambien lo hace posible. Si lo que se desea es obtener la grafica de respuesta en frecuencia, la sintaxis es: >>bode(sys) Si se desea obtener las tablas de valores, la sintaxis es: >>[mag,fase,w]=bode(sys) Las matrices mag y fase contienen las magnitudes y los angulos de fase de la respuesta en frecuencia del sistema evaluados en los puntos de frecuencia utilizados por MATLAB (estos puntos tambien pueden ser especificados por el usuario). El angulo de fase se devuelve en grados. REPRESENTACIÓN POLAR Mientras que las representación logaritmica es una representación rectangular con dos diagramas separados, la representacion polar agrupa toda la información en un unico diagrama. Para la construccion de este diagrama es posible obrar de dos maneras diferentes: Realizar el diagrama polar a partir de los datos obtenidos de la función bode, para esto se debe convertir la información de fase a radianes y se utilizará la función grafica polar. Para esto la sintaxis será: >>frad=(fase(1,:).*pi)./180; >>polar(frad,mag(1,:)) Utilizar la función nyquist, a partir de cualquier función de transferencia la función nyquist permite al usuario calcular o vizualizar la respuesta en frecuencia. Si solo se desea obtener el diagrama polar, la sintaxis será: >>nyquist(sys) Si ademas se desea obtener la tabla de valores correspondientes: >>[real,imag,w]=nyquist(sys); 16

EJEMPLO 6: Dada la siguiente función de transferencia calcule y grafique, en forma logarítmica y en forma polar, la respuesta en frecuencia: ( ) ( ) >>sys=tf([0 0 40 800],[1 22 180 800]); >>[mag,fase,w]=bode(sys); >>frad=(fase(1,:).*pi)./180; >>bode(sys) >>figure >>polar(frad,mag(1,:)) >>figure >>nyquist(sys) 17

SIMULINK SIMULINK es un programa de simulación tanto continua como discreta que se encuentra en el entorno MATLAB. Por tanto para acceder a él basta con invocarlo desde la ventana de comandos de MATLAB, por supuesto asegurándose antes de encontrarse en el directorio de trabajo. La sintaxis será: >>simulink Una vez hecho esto aparece la ventana libreria de SIMULINK que tiene el siguiente aspecto: 18

Lo primero que se debe hacer es abrir una ventana de trabajo que puede ser nueva o existir previamente. Para el caso de que se desee crear un nuevo archivo de trabajo se procede como se indica en la figura. Con lo que obtendremos una ventana vacía como se observa en la siguiente figura: 19

Lo primero que podemos necesitar es una fuente de señal, entonces seleccionamos las fuentes (Sources) en la libreria de SIMULINK. Con esto aparecerá otra ventana con todas las fuentes de señal disponibles. En este ejemplo se selecciona con el ratón el generador de señales genérico (signal generator) y se arrastra hasta situarlo sobre la ventana de trabajo. Para poder ver la señal recurriremos a un sumidero de señal (Sinks) que seleccionaremos en la libreria de SIMULINK. Igual que antes aparecerá una ventana con todos los sumideros disponibles, de la que seleccionaremos el visor (Scope) y lo arrastraremos con el ratón hasta la ventana de trabajo. 20

Ya únicamente falta unir la fuente con el sumidero, lo que se hace pulsando con el ratón sobre la pequeña flecha de salida del bloque inicial y arrastrando hasta la flecha de llegada del bloque destino. Para ejecutar la simulación desplegar Simulation y Start. Ver el resultado de la simulación en el scope. Notar que existe una barra de opciones para realizar zoom en ambos ejes o hacer un autoajuste de escala (seleccionar el botón de prismáticos). 21

El scope está mostrando la onda de señal producida por el generador de señales. Pero es posible cambiar la señal. Basta con seleccionar con el ratón el bloque del generador de señales. A1 hacer esto aparece la pantalla del generador en la que se puede especificar el tipo de señal que se desea generar. De forma que si se modifica la frecuencia de la onda senoidal a 0.1 Hz y su amplitud a 2, por ejemplo, y se vuelve a lanzar la simulación se obtendrá la siguiente salida: 22

Pero SIMULINK ofrece además otras posibilidades, una de ellas es la de interaccionar con MATLAB. Por ejemplo, para pasar los resultados de la simulación a MATLAB basta con seleccionar otro sumidero (Sinks) del tipo correspondiente tal como se muestra en la figura (To Workspace). Para realizar una bifurcación situarse en la línea y pulsar <ctrl> junto con el botón izquierdo de ratón. Luego se abre las propiedades del bloque To Workspace y se especifica el nombre del vector en el que se quieren almacenar los resultados (senial), su dimensión máxima (inf) y el formato (Array). 23

Para poder representar los datos en MATLAB también será necesario otro vector con los tiempos en los que se ha tomado cada dato (Clock en Sources). Esto se puede realizar de dos maneras: Utilizar la fuente Clock y un nuevo bloque To Workspace como lo muestra la siguiente figura. 24

Configurar SIMULINK para que siempre envie al Workspace un arreglo con los valores del tiempo de medición. Esto se realiza ingresando a el menú Simulation->Configuration Parameters como lo muestra la figura: Donde se desplegará una nueva ventana y se deberá configurar en la sección Data Import/Export que se envie el tiempo hacia el Workspace, como se observa en la figura: 25

Una vez finalizada la simulación se podrán representar los datos utilizando comandos de MATLAB. Con lo que se obtendrán gráficas de MATLAB. En SIMULINK se pueden realizar simulaciones más complejas. Por ejemplo la de un sistema mecánico representado por su función de transferencia continua. En este caso existen varios bloques nuevos: a. Entradas escalón, rampa, generador de pulsos, senoidales (en Sources) b. Sumadores (Sum en Commonly used blocks): que suman o restan varias señales c. Constantes (Constant o Gain en Commonly used blocs): multiplican la señal por una constante. d. Funciones de transferencia (Transfer Fcn en Continuous): definen la señal de salida en función de la señal de entrada. Están expresadas como el cociente de la transformada de Laplace de la salida y la entrada, en la variable compleja s. Entre corchetes se introducen los coeficientes de numerador y del denominador. e. Multiplexor (Mux en Signal Routing): acepta varias señales de entrada y selecciona un salida multiplexada. Se suele utilizar para superponer en el scope varias señales a la vez. Seleccionando un bloque con el botón derecho del ratón se puede acceder a un menú con diversas opciones, entre ellas propiedades format, foreground color y background color para cambiar la orientación (Flip Block, Rotate Block, ) y edición del bloque. 26

EJEMPLO 7: Realiza el siguiente esquema de bloques y simular, obteniendo función de transferencia, diagrama polosceros, grafica de respuesta al escalón y graficas de respuesta en frecuencia. 1 In1 1 s 2+10s+50 Transfer Fcn 10 s+10 Transfer Fcn1 100 Gain1 1 Out1 0.5 Gain Una vez montado el sistema, establecidos los parámetros de simulación y guardado (en nuestro caso como ejemplo7.mdl) se puede comenzar la resolución. Para obtener la función de transferencia, graficar polos y ceros y obtener las graficas de respuesta en frecuencia; deberemos trabajar en MATLAB a partir de SIMULINK. Esto se logra mediante la función linmod cuya sintaxis es la siguiente: >>[num,den]=linmod( ejemplo7 ); Los vectores num y den corresponden a los coeficientes de los polinomios numerador y denominador respectivamente. Por lo tanto a partir de estos vectores se podrá graficar los diagramas solicitados: >>pzmap(num,den) >>figure >>step(num,den) 27

>>figure >>bode(num,den) >>figure >>nyquist(num,den) 28

Podemos corroborar la respuesta al escalón realizando la simulación en SIMULINK. Tal como se ha definido el sistema se obtiene la siguiente salida por el scope: SIMULINK permite también la realización de simulaciones en sistemas discretos. Estas simulaciones se hacen de forma muy similar a lo visto anteriormente. En el caso de simulaciones discretas habrá que poner especial atención en la especificación de los tiempos de muestreo y en su consistencia con los pasos de integración definidos. 29