Вы находитесь на странице: 1из 111

Curso Matlab/Simulink en la toma FIN PUCV

Sesin 1
Agustn 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 Trabajo


Command Window
Ventana de Comandos Ingreso de operaciones Muestra de resultados

Primer Paso:

Conocer El ambiente de Trabajo


Workspace
Variables en uso Propiedades de formato Tamao Valores mn y max

Primer Paso:

Conocer El ambiente de Trabajo


Command History
Historial de comandos ingresados separados por sesin

Primer Paso:

Conocer El ambiente de Trabajo


Current 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 uso


Aritmtica:

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

Nociones generales de uso


Asignacin 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 Matrices
Experiencia: En la seccin de uso aritmtico se ejecut:

Vea que sucede si se reemplaza . por ,

Vectores y Matrices
En 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 Matrices
Una 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 Matrices
Experiencia: 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 matrices


Operaciones punto a punto
Adems 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 tiles
clear 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 tiles
Load 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: Derivacin
diff(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: Simplificacin
A 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 jacobiana


Se 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.

Grficas
Existen 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.

Actividad
Grafique 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: Stem
Se usa normalmente para graficar seales en tiempo discreto, se utiliza de igual forma que Plot.

Grficas: Polares

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

Grficas: 3D
STEM3():

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 : 3D
MESHGRID(): Superficies en 3 dimensiones. Se crea una malla y se define una funcin que depende de X e Y

Grficas: 3D

Mnimos y Mximos
Muchas 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 estndar
Usualmente 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 PUCV


Sesin 2
Agustn Valencia Gonzlez Ing. Civil Electrnica LABSEI

Sumatoria
Muchas 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.

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

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

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

Programacin de Scripts

Programacin de Scripts
Se 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 Funciones
Las 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 Funciones
La 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 Funciones
Actividad: 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-Files
Es 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 Gibbs
Modelacin 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 2Orden


Para 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 Realimentado
Se tiene un sistema dado a anlisis:
+

Ejemplo Control Automtico

Sistema LTI 2Orden


Obtener:
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 2Orden


Help:
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 Nyquist


Experiencia: 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 Races


Experiencia: 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 PUCV


Sesin 3
Agustn 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 pasos


Experiencia: 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 pasos


Tip: 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: SimPowerSystems
Simpowersystems 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: SimPowerSystems
Experiencia: 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: SimPowerSystems
Observar: 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 atencin


Ahora saben todo lo necesario para seguir aprendiendo !!

La nica limitante para saber ms es la magnitud de su curiosidad


Taller 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

Вам также может понравиться