Matlab en La Toma

download Matlab en La Toma

of 111

description

Apuntes usados en el Taller de Matlab en la toma 2011 de la Facultad de ingeniería de la PUCV, en el marco de las movilizaciones estudiantiles.

Transcript of Matlab en La Toma

Curso Matlab/Simulink en la toma FIN PUCVSesin 1Agustn Valencia Gonzlez Ing. Civil Electrnica LABSEI

Contenidos Qu es y para que sirve Matlab/Simulink? Manejo y operatoria de vectores y matrices Comandos tiles Ejemplos de clculos simblicos Tipos de grficas Mnimos, Mximos, Sumatorias, Desviacion estndar, etc. Programacin de Scripts .m y funciones Aplicacin de conceptos en el anlisis de un sistema LTI de segundo orden Conceptos Bsicos de simulink Algunos Toolboxes. Ejemplos prcticos

Qu es Matlab? Matrix Laboratory Trabajo con matrices y vectores Tamao depende slo de la mquina Permite trabajo con simblicos Ampliamente usado en ciencia e ingeniera

Qu es Simulink? Suite complementaria a Matlab Anlisis y simulacin de sistemas fsicos y matemticos. Lineales y no lineales De tiempo continuo y discreto Trabajo en base a diagramas en bloque

Aplicaciones Procesamiento Digital de Seales (DSP) Ingeniera Aeroespacial Inteligencia Artificial, Redes Neuronales y Lgica Difusa Comunicaciones Mquinas Elctricas Y SEP Control Adaptivo y Robusto Mquinas de estado y FPGAs Finanzas Etctera

Aplicaciones Xilinx ISE (FPGA,CPLD) Comsol (modelacin de fenmenos fsicos) Solidworks (Ing. Mecnica) SystemVue (Comunicaciones, FPGA) LabView (Instrumentacin Virtual) Multisim (Simulacin de Circuitos)

Primer Paso:

Conocer El ambiente de TrabajoCommand Window Ventana de Comandos Ingreso de operaciones Muestra de resultados

Primer Paso:

Conocer El ambiente de TrabajoWorkspace Variables en uso Propiedades de formato Tamao Valores mn y max

Primer Paso:

Conocer El ambiente de TrabajoCommand History Historial de comandos ingresados separados por sesin

Primer Paso:

Conocer El ambiente de TrabajoCurrent Folder Explorador de archivos Permite abrir directamente desde matlab archivos utilizables Para llamar a funciones, necesariamente el script debe estar en la carpeta actual. .m, .mat, .mdl, .txt, etc.

Nociones generales de usoAritmtica:

Observar: Formato de punto flotante doble exactitud por defecto Decimales . Ingreso directo

Nociones generales de usoAsignacin de variables

Observar: En Matlab no es necesario gestionar memoria. Asignacin directa para variables numricas. Declaracin de simblicos. Uso de ; al final de cada comando

Vectores y Matrices Un vector es una matriz de 1xN (fila) o Nx1 (columna) Definicin:

Vectores y Matrices

Experiencia: En Command Window ejecute: >> help rand >> doc rand

Vectores y MatricesExperiencia: En la seccin de uso aritmtico se ejecut:

Vea que sucede si se reemplaza . por ,

Vectores y MatricesEn efecto, en este caso , se utiliza para ingresar varios comandos de una sola vez. Cuando , est dentro de *+ indica separacin de columnas en un vector/matriz

Vectores y MatricesUna vez entendido el trabajo con vectores, la utilizacin de matrices es trivial.

As como se utiliza , para separar columnas dentro de *+ , para separar filas se utilizar ;.

Vectores y Matrices

Notar que en verdad no es necesario el uso de , para separar las columnas, un simple espacio en blanco har que matlab interprete el valor siguiente en otra columna

Vectores y MatricesExperiencia: Ejecute >> magic (3) (utilice help para entender la funcin)

>>rand(3,3) (idem)

Operaciones con vectores y matrices Recordar Algebra I , Algebra Lineal. Si se ha asignado variables, basta con sumar/restar las variables mismas

Operaciones con vectores y matrices

Operaciones con vectores y matricesOperaciones punto a puntoAdems Matlab ofrece un tipo de operacin que se ejecuta coordenada a coordenada, contrariamente a lo que indica el algebra de matrices (esto no tiene sentido para operaciones de suma y resta).

Genere dos matrices de igual dimensiones y ejecute: >> a .* b >> a./ b

Operaciones bsicas

Funciones Trigonomtricas

Funciones Exponenciales

Funciones de Redondeo

Operaciones Matriciales

Comandos tilesclear all : Elimina todas las variables del workspace clear x : Elimina x del workspace who: Lista las variables presentes en el workspace clc: Limpia el command window close: Cierra todas las ventanas emergentes de Matlab

Save nombrearchivo: Crea un archivo nombrearchivo.mat en la carpeta actual con todas variables que existen en ese momento en el entorno.

Comandos tilesLoad nombrearchivo: Carga al entorno las variables del archivo nombrearchivo. Tip: cuidar no destruir variables existentes del mismo nombre. Load nombrearchivo x y z: Carga desde Nombrearchivo.mat las variables x y z

Es importante que el archivo del cual se quieren cargar datos est presente en la carpeta actual.

Simblicos: Derivacindiff(f,x)Donde f es la funcin, y X la variable simblica respecto de la cual se deriva. Debe declararse primeramente los simblicos antes de operar con ellos. No es necesario declarar como simblico una funcin que contendr simblicos ya declarados.

Simblicos: Derivacin

Simblicos: Derivadas de Orden Superior

Simblicos: Integrales indefinidas

int ( f, x )Se comprueba que la integral de la derivada de f es en verdad f.El comando funciona !

Simblicos: Integrales Definidas

Se calcula igual que una integral indefinida y al final del comando se agregan los lmites de integracin.

Simblicos: SimplificacinA veces se obtienen resultados complicados de entender a simple vista incluso ejecutando pretty . En los casos en que la expresin es simplificable puede ejecutarse el comando simple() para hacer un poco ms legible y amigable a la vista.

Simblicos: Simplificacin

Simblicos y Matrices: Clculo de la matriz jacobianaSe ingresa un vector de la funcin vectorial, y un vector respecto de las variables de las cuales se derivar. Luego con la funcin jacobian( f, v ) se obtiene el jacobiano, donde f es la funcin vectorial y v las variables respectivas.

GrficasExisten diversos tipos de grficos generables desde Matlab, aqu sern vistos los de mayor uso, pero el estudiante ya es capaz de leer docs y helps y aprender por s mismo.

PLOT() Utilizable para grficas 2D de tiempo continuo, en general se toman puntos y matlab interpola entre ellos, pero con una gran resolucin este efecto es menor a la vista.

Grficas: PLOT()Experiencia: Generar un vector de tiempo Generar un vector fila aleatorio Ambos del mismo tamao, para posteriormente asignarlos como ejes x e y de una grfica de ruido blanco.

Grficas: PLOT()

Grficas: PLOT()Ttulo, etiquetado ejes y leyenda de curva.

ActividadGrafique x = sin(0.3t + 1.34) Y = cos(0.56t - 0.76) En una misma ventana aadiendo ttulo, leyenda a los ejes, nombre a las curvas y con grilla. Aydese con help.

Actividad

Diferencias en la manera de plotear dos seales en una misma ventana. Elija usted cual prefiere.

Actividad

Grficas: StemSe usa normalmente para graficar seales en tiempo discreto, se utiliza de igual forma que Plot.

Grficas: Polares

Grficas : 3DPLOT3(): Curvas en 3 dimensiones Se define una variable independiente y tres vectores que dependen de ella.

Grficas: 3DSTEM3():

SURF(): Superficies en 3 dimensiones. Se genera una matriz de malla de variables X e Y, luego una tercera variable en funcin de las anteriores.

Grficas : 3DMESHGRID(): Superficies en 3 dimensiones. Se crea una malla y se define una funcin que depende de X e Y

Grficas: 3D

Mnimos y MximosMuchas veces para el anlisis del comportamiento del sistema en cuestin, ser necesario obtener mximos y mnimos, por lo que se propone la siguiente situacin. Actividad Generar una funcin y=sinc(x) y obtener valores mximos y mnimos de y.

Mnimos y mximos

Desviacin estndarUsualmente en anlisis de seales se suele calcular la desvacin estndar de una secuencia (seal discreta en el tiempo), pues esta corresponde al valor RMS (root-mean-square) de la misma.

Desviacin estndar

Curso Matlab/Simulink en la toma FIN PUCVSesin 2Agustn Valencia Gonzlez Ing. Civil Electrnica LABSEI

SumatoriaMuchas veces es necesario sumar todos los elementos de un vector, para esto se usa el comando sum(x) siendo x un vector (columna o fila da igual)

Sumatoria

Si x fuese una matriz la orden sum(x) entregar vector fila que contiene la suma de todas las columnas respectivas.

Promediomean(x): Entrega el promedio de un vector de largo cualquiera.

Programacin de ScriptsQu es un script? Guin, es un archivo con instrucciones a ejecutar secuencialmente, es una manera de automatizar tareas.

Programacin de ScriptsEn Matlab: Procesos Funciones Archivos .m (En la literatura M-files) Uso de Editor Run / Debug

Programacin de Scripts

Programacin de ScriptsSe escriben las mismas funciones que en el Command Window , y al ejecutar el script (F5) se ejecutarn todas secuencialmente. Actividad. Volvamos al ejemplo de las dos grficas simultneas, pero ahora programe un script que realice todas las tareas.

Programacin de Scripts

Programacin de FuncionesLas funciones son scripts las cuales pueden ser llamadas desde el Command Window, o bien desde otros scripts/funciones. Tambin son archivos de extensin .m que poseen un encabezado que las declara como funciones y los parmetros de los cuales Depende.

Programacin de FuncionesLa forma de programarla: function [out1 out2 out3] = NombreFuncion(in1 in2 in3) Cdigo propio de la funcin; La forma de llamarla: >> NombreFuncion(VarEntrada) O bien >> [var salida] = NombreFuncion(VarEntrada)

Programacin de FuncionesActividad: Haciendo uso de los funciones ya vistas, genere una funcin que devuelva la sumatoria, promedio y desviacin estndar de un vector cualquiera.

Programacin de Funciones

Programacin M-FilesEs til: For () While() If() Switch() Clc Close Input()

Muy parecido a lenguaje C , usted ya tiene la capacidad de leer helps y aprender por s mismo

Ejemplo Seales y Sistemas

Fenmeno de GibbsModelacin de un escaln (u onda cuadrada) a travs de una Serie de Fourier.

Ejemplo Seales y Sistemas

Fenmeno de Gibbs

Ejemplo Seales y Sistemas

Fenmeno de Gibbs

Ejemplo Control Automtico

Sistema LTI 2OrdenPara entender el siguiente ejemplo: Control System Toolbox Internet y Google son tus amigos Conceptos bsicos de Sistemas Simplificacin de diagramas en bloque Respuesta Escaln

Ejemplo Control Automtico

Sistema RealimentadoSe tiene un sistema dado a anlisis:+

-

Ejemplo Control Automtico

Sistema LTI 2OrdenObtener: Simplificacin del sistema a un solo bloque Grfica respuesta escaln Tiempo de asentamiento Overshoot (%) Valor en estado estacionario Diagrama de polos y ceros

Ejemplo Control Automtico

Sistema LTI 2OrdenHelp: tf zpk feedback step pzmap

Ejemplo Control Automtico

Sistema LTI 2Orden

Ejemplo Control Automtico

Sistema LTI 2Orden

Ejemplo Control Automtico

Sistema LTI 2Orden

Ejemplo Control Automtico

Sistema LTI 2Orden

Ejemplo Control Automtico

Sistema LTI 2Orden

Ejemplo Control Automtico

Diagramas de Bode y NyquistExperiencia: Obtener los diagrama de Bode de Magnitud y Fase, y el diagrama de Nyquist del sistema del ejemplo anterior.

Ejemplo Control Automtico

Diagramas de Bode y Nyquist

Ejemplo Control Automtico

Diagramas de Bode y Nyquist

Ejemplo Control Automtico:

Lugar Geomtrico de RacesExperiencia: Obtener el diagrama del lugar geomtrico de races del sistema del ejemplo.

Ejemplo Control Automtico:

Lugar Geomtrico de Races

Debugging y Performance Breakpoints Ejecucin por bloque Uso de disp(mensaje) antes/despus/dentro de iteraciones tic/toc (timer)

Curso Matlab/Simulink en la toma FIN PUCVSesin 3Agustn Valencia Gonzlez Ing. Civil Electrnica LABSEI

Simulink Ambiente grfico interactivo Trabajo basado en diagramas de bloques Disear, simular, implementar, y probar sistemas de control, procesamiento de seales, comunicaciones y muchos otros sistemas variantes en el tiempo.

Simulink

Cortesa de Diego Cceres Jerez

Revisar ejemplos incluidos: Help > Simulink Help > Simulink 3D Animation > Demos > Open

Simulink

Simulink Toolboxes Simulink (Bloques ms usados) Control System Toolbox (Sistemas LTI y no lineales) SimPowerSystems Toolbox (Mquinas Elctricas)

Simulink : Primeros pasosExperiencia: Modelar el sistema de Segundo Orden utilizado en la sesin anterior. Transfer Fcn (Continous) Sum (Math Operators) Step (Sources) Scope (Sinks)

Simulink : Primeros pasos

-

Editar funciones de transferencia Rotar realimentacin Cambiar signo sumador Step time

Simulink : Primeros pasos

Crtl + E : Configuracin de mtodos numricos Play Scope > Autoscale

Simulink : Primeros pasos

Simulink : Primeros pasosTip: Para la entrega de tareas imprimir estas grficas con fondo negro, es ciertamente antieconmico, por lo que se recomienda usar el bloque To workspace. Este bloque crea un struct en el workspace que contiene las variables de salida. Usando estas variables podemos generar plots que utilizan menos tinta a la hora de imprimir el informe.

Simulink : Primeros pasos

Concepto de struct Observar creacin del vector tout Explorar simout con el editor de variables plotear

Simulink : Primeros pasos

Simulink: SimPowerSystemsSimpowersystems es un toolbox orientado al anlisis de mquinas elctricas. Facilita el trabajo de modelar los sistemas ya que permite trabajar directamente con variables elctricas tangibles y ahorra la modelacin del sistema mediante ecuaciones diferenciales y su traspaso al dominio de Laplace.

Simulink: SimPowerSystems

Electrical Sources: Fuentes de alimentacin Elements: Componentes elctricos discretos Machines: Modelos de mquinas elctricas Measurements: Bloques que permiten mediciones Power Electronics: Componentes activos de electrnica de potencia Help ayuda de verdad

Simulink: SimPowerSystemsExperiencia: Modelacin de un generador sincrnico trifsico cuyo rotor gira gracias a un motor universal alimentado con corriente continua proveniente de una fuente trifsica rectificada. Medicin de formas de onda de corriente de armadura y de campo del motor y tensin de salida del generador. (Experimento Laboratorio de Conversin electromecnica)

Simulink: SimPowerSystems

Simulink: SimPowerSystemsObservar: Seleccin de buses Entrada torque motor salida torque generador Salida velocidad motor entrada velocidad generador Inversin de signo de giro por posicionamiento fsico (de frente) Setteo de puente rectificador a diodos (otras opciones) Resistencias en paralelo salida generador para no simular corto circuito Uso de HELP

Simulink: SimPowerSystems

Simulink: SimPowerSystems

Simulink: SimPowerSystems

Como en un motor universal el circuito de campo y el de armadura estn en serie, se comprueba que ambas corrientes son iguales.

Simulink: SimPowerSystems

Simulink: SimPowerSystems

Fin del taller Muchas gracias por su atencinAhora saben todo lo necesario para seguir aprendiendo !!

La nica limitante para saber ms es la magnitud de su curiosidadTaller Matlab en la Toma - FIN 2011 Agustn Valencia Gonzlez Alumno EIE PUCV

Fin del taller Muchas gracias por su atencin

El conocimiento no es un bien propio, comprtanlo y senlo en favor de la sociedad.Taller Matlab en la Toma - FIN 2011 Agustn Valencia Gonzlez Alumno EIE PUCV