Matlab_and_simulink_teoria.ppt

download Matlab_and_simulink_teoria.ppt

of 106

description

Presentación sobre programación en Matlab y Simulink realmente útil para principiantes en el tema.

Transcript of Matlab_and_simulink_teoria.ppt

  • Fundamentos Bsicosde Matlab-LCA-Fundamentos de informticaFRRO

  • Mi nombre es:

    Arce, Gerardo.

  • Clases:1 Teora Matlab & Simulink.3 Practica Matlab.3 Practica Simulink.1 Consulta del TPF.8

  • Como regularizar:Entregar todas las prcticas.9 de Matlab.5 de Simulink.Presentar el TPF y defenderlo (individual).Responder de 5 a 8 preguntas tericas.

    Todo en un tiempo menor a 10min ya que todos tienen derecho a rendir el mismo da.

  • Practicas de Matlab:N 1: Manejo de Matrices.N 2: Manejo de Nmeros Complejos.N 3: Manejo de Archivos *.MN 4: Programacin (Resolucin de sistema 3x3).N 5: Programacin (Ley de OHM).N 6: Programacin (De tabla papel a digital).N 7: Programacin (Maximizacin de las utilidades).N 8: Programacin (Resolucin de 2 mallas elctricas).N 9: Programacin (Utilizando la herramienta creada en la prctica N 6, resolver 3 curvas).

  • Practicas de Simulink:N 1: Calculo de desfasage.N 2: Mxima resistencia.N 3: Maximizacin de rea.N 4: Diagrama de M y Q (Sistema simtrico).N 5: Diagrama de M y Q (Sistema asimtrico).

  • Trabaja Practico Final (TPF) :Es individual y nico (No hay grupos).Se deber resolver el problema que se plantea.Entregar una memoria de calculo similar a la que se expresa en las practicas.

  • Teora:El da de la entrega del TPF adems de defenderlo y presentar todas las practicas se deber rendir teora.Contestar rpidamente de 5 a 8 preguntas tericas que abarcan todo lo dado.

  • Recuperatorio:En el caso de fallar en cualquiera de las 3 pautas.Practicas. + (Preguntas)TPF. + (Defensa) + (WORD)Teora. (de 5 a 8 preguntas)En el recuperatorio solo se le tomar lo fallo o que falto.

  • Qu es Matlab?Una herramienta para hacer clculos matemticos que utiliza como elemento bsico la matriz.Un lenguaje de programacin:interactivo: rdenesavanzado pero fcil de utilizar: archivos.mPlataforma de desarrollo: toolboxes

  • Ventajas del MatlabSu programacin requiere menos tiempo que otros lenguajes como FORTRAN, C, Pascal, etc.Utiliza un lenguaje ms cercano a la matemtica.Permite definir fcil y rpidamente nuevas funciones que se incorporan a Matlab (mediante el toolboxes)Grandes capacidades grficas.

  • Qu se puede realizar?Anlisis de datosPolinomiosGrficos 2D Grficos 3D (No vamos a llegar a dar).Ajuste de curvasInterpolacinAnlisis numrico

  • Espacio de trabajoAl ejecutarse Matlab se crea una ventana de trabajo que corresponde al lugar desde donde se interacciona con Matlab:El smbolo denota que se esta esperando una ordenMatlab recuerda las rdenes ya dadas y los valores de cualquier variable (en el espacio de trabajo):recordar rdenes previas: y . Editar: y recordar variables: escribir su nombre

  • Espacio de trabajoFunciones para el manejo de las variables en el espacio de trabajo:who lista las de las memorias del espacio de trabajowhos lista las memorias del espacio de trabajo con informacin de su tamaosave almacena las memorias en un archivo de extensin *.matload recupera variables almacenadas en el discoclear borra las variables del espacio de trabajo

  • Funciones bsicasSuma: +resta: -multiplicacin: *divisin: \ /potencia: ^

  • Comentarios tilesEvala expresiones de izquierda a derecha:1 potencias, 2 multiplicaciones y divisiones, y 3 sumas y restas.Nombres de variables o memorias:Siempre debe comenzar con una letra, seguidas de letras o nmeros si se lo desea.Slo se recuerdan los primeros 17 dgitos de una memoria.Distingue maysculas y minsculas; al final de lnea no imprime el resultado.A partir del smbolo % se considera comentario.

  • Comentarios tilesans almacena el resultado por defectoSi una orden es demasiado larga, se escriben ... seguido de enter para continuar en la siguiente lnea, no en todos los casos es posible usar este comando.Matlab se interrumpe con ctrl-cMatlab se cierra con el comando quit

  • Variables predefinidasans Nombre de la variable por defecto usado en los resultadospi Nmero eps El ms pequeo de los nmeros que al sumarle 1 da un nmero en coma flotante mayor que 1inf InfinitoNaN Indefinidoi,j i=j=sqrt(-1)realmin Nmero real positivo ms pequeo que se puede usar 2.2251e-308realmax Nmero real positivo ms grande que se puede usar 1.7977e+308

  • Formatos de visualizacin

  • Caractersticas CientficasFunciones matemticas

    Nmeros complejos

  • Funciones matemticas

  • Funciones matemticas

  • Nmeros complejosSolvees una funcin que resuelve sistemas del tipo x^3+2*x^2+3*x+x+5=0El nmero imaginario puro se representa por i o jCualquier nmero seguido de i representa un nmero imaginarioHay funciones especficas para su manejo:real(x)imag(x)conj(x)angle(x), etc.

  • Manejo de arraysArrays simplesDireccionamiento de arraysConstruccin de arraysFunciones con arraysMatemticas de arrays con escalaresMatemticas entre arraysOrientacin del arrayResumen de operaciones con arrays

  • Arrays simplesPara crear un array en Matlab:Comienza por un corchete de apertura [Los valores separados por espacios o por comasFinaliza con un corchete de cierre ]Ejemplo:x = [23 45 12 2+3i -2i]

  • Direccionamiento de arraysPara acceder a elementos individuales se utilizan subndices entre parntesisEjemplo: x = [1 2 3;4 5 6;7 8 9] x(2,3)ans =8 x(6)ans =8

  • Direccionamiento de arraysPara direccionar un bloque de elementos, Matlab proporciona la notacin de dos puntos: primero:incremento:ltimoEjemplo: x = [1 2 3;4 5 6;7 8 9]x(2:6) ans = 4 7 2 5 8x(2:2:6) ans = 4 2 8

  • Direccionamiento de arraysPara direccionar elementos aislados se utiliza un array de ndicesEjemplo: x=[23 45 12 2+3i -2i 32 12]; x([4 1 2])ans =2+3i 23 45 x([1 4 7])ans =23 2+3i 12

  • Construccin de arraysExisten varias formas de crear arraysNotacin de dos puntosFuncin linspace linspace(primero,ltimo,nvalores)Funcin logspacelogspace(expo1,expo2,nvalores)

  • Funciones con arraysLas funciones se aplican a los elementos individuales de los arraysEjemplo: x = [0 pi/4 pi/2 3*pi/4 pi] sin(x) ans = 0 0.7071 1.0000 0.7071 0.0000 cos(x) ans = 1.0000 0.7071 0.0000 -0.7071 -1.0000

  • Operaciones de arrays con escalaresLa suma, resta, multiplicacin y divisin por un escalar simplemente aplica la operacin a todos los elementos del arrayEjemplo: x = [1 2 3 4 5 6]; 4*x-7 ans = -3 1 5 9 13 17

  • Cuando dos arrays tienen la misma longitud, la suma y la resta se aplican sobre la base de elemento a elementoPara multiplicar o dividir dos arrays elemento a elemento se utilizan los operandos: .* , ./ y .\ ejemplo: (a./b=b.\a)Para la potencia elemento a elemento se utiliza .^ Operaciones entre arrays

  • Resumen de operaciones con arraysa=[a1 ... an], b=[b1 ... bn], c=escalar

  • lgebra matricial

    Manipulacin matricial

    Matrices especialeslgebra matricial

  • Matlab originariamente fue diseado para simplificar el clculo del lgebra linealPara definir una matriz se distinguen las filas por ; o se introduce enterA. es la matriz transpuesta de AA es la traspuesta conjugada de Adet(A) calcula el determinante de A inv(A) es la inversa de Arank(A) devuelve el rango de la matriz Anorm(A) calcula la normal de Apoly(A) obtiene el polinomio caracterstico de la matriz Algebra matricial

  • Los elementos de una matriz se indican con su fila y columna: A(columna, fila)Con los dos puntos (:) se puede seleccionar toda la fila o columna: A(:,1), B(2,:)find(x) transforma una matriz en una sucesin de valores del tipo columna.size(x) devuelve el tamao en filas y columnas.Manipulacin matricial

  • Matriz de ceros: zeros(n,m)Matriz de unos: ones(n,m)Matriz aleatoria con distribucin uniforme (entre 0 y 1): rand(n,m)Matriz aleatoria con distribucin normal (media 0 y varianza 1): randn(n,m)Matriz identidad: eye(n)Matrices especiales

  • Operaciones relacionales

    Operaciones lgicos

    Funciones relacionales y lgicas

    Operaciones y funciones

  • Operadores relacionalesEfectan la comparacin, elemento a elemento, entre dos matrices y dan como resultado una matriz cuyos elementos son 1 si la relacin es cierta y 0 si es falsa.

  • Operadores lgicosOperadores lgicos:

  • Funciones relacionales y lgicas

  • Qu son?Para qu sirven?Tipos de archivos.mCaractersticas de funcionesEjemplo de funcinPasos que sigue Matlab

    Archivos .m

  • Matlab permite crear funciones nuevas en forma de archivos con extensin *.m y almacenadosUn archivo *.m es una secuencia de rdenes de Matlab que puede contener, incluso, referencias a otros archivo *.mLos archivo *.m son textos ASCII creados con cualquier editor o procesador de textoQu son?

  • Automatizar secuencias de rdenes que se utilizan de forma repetitiva Proporcionar extensibilidad a Matlab con la posibilidad de aadir nuevas funciones cuya utilizacin no difiere de las que incluye originalmente ToolboxPara qu sirven?

  • Archivos predefinidos:SenoCosenoTangenteetcArchivos propios:Son un compendio de funciones predefinidas ya sea matrices, vectores, senos, cosenos, etc. que generan un programa nuevo y especificoTipos de archivos *.m

  • El nombre de la funcin y del archivo debe ser el mismoEsta se ejecuta desde el entorno de Matlab por primera vezSon capaces de generar programas emergentes y trabajar en un entorno fuera del Matlab para nosotros pero los clculos siguen siendo ejecutados dentro del MatlabCaractersticas de funciones

  • Al dar por ejemplo, la orden: matlabComprueba si matlab es una variableComprueba si matlab es una funcin de MatlabBusca en el actual directorio si existe un archivo con el nombre matlab.mBusca, en los directorios especificados en la variable path, el archivo matlab.mPor ultimo lo ejecuta

    Pasos que sigue Matlab

  • Bucle for

    Bucle while

    Estructuras if-else

    Control de flujo

  • La forma general es:for n=1:5 x(n)=n*2 endLos comandos entre las sentencias for y end se ejecutan una vez hasta llegar a su fin pudiendo tambin utilizar una matriz como rango de evaluacinResultado:x = 2x = 2 4x = 2 4 6x = 2 4 6 8x = 2 4 6 8 10Bucle for

  • La forma general es: while expresin de veracidad comandos endLos comandos entre las sentencias while y end se ejecutan mientras todos los elementos a evaluar sean verdaderosBucle while

  • n=1; while n
  • La forma general es: if expresin comandos,resultado endTambin if expresin N1 comandos N1,resultado N1 elseif expresin N2 comandos N2,resultado N2else comandos N3,resultado N3endEstructuras if-else-end

  • a Tolerancia 0.25 [Watts]k Potencia que dicipa la recistencia [Watts]p Potenciasa=0.25k=1p=1.5if p
  • Polinomios

    Funciones para polinomios

    Polinomios

  • Los polinomios en Matlab son representados por vectores filas conteniendo los coeficientes en orden decrecienteEjemplo: x4 - 12x3 + 0x2 + 25x +116p=[1 -12 0 25 116]Polinomios

  • Races del polinomio: roots(p)Polinomio asociado a unas races: poly(p)Multiplica dos polinomios: conv(p1,p2)Divide dos polinomios: deconv(p1,p2)Clculo de derivadas: polyder(p)Evaluacin de polinomios: polyval(p,n)Desarrollo en fracciones parciales: residue(p)Funciones para polinomios

  • Comando plotTipos de lneas y coloresAadir rejillas y etiquetasGestin de los ejesManipulando grficos 2DOtros tipos de grficos 2DGrficos 2D

  • Es el comando ms utilizado para grficos en 2DRepresenta grficamente conjuntos de arrays de datos:Elige automticamente los ejes apropiadosPor defecto, conecta los datos mediante lneas rectas

    Comando plot

  • Dibujar la funcin y=sin(x) en donde x es un array distrubuido uniformemente ente 30 valores de [0 a 2]

    x=linspace(0,2*pi,30) y=sin(x) plot(x,y)Ejemplo del comando plot

  • Dibujar la funcin y=sin(x) y z=cos(x)

    x=linspace(0,2*pi,30) y=sin(x) z=cos(x) plot(x,y,x,z)

    o tambien

    x=linspace(0,2*pi,30) y=sin(x) z=cos(x) W=[y;z] plot(x,W)Ejemplo de superposicin de graficas

  • Tipos de lneas y coloresColoresyAmarillomMagentacCyanrRojogVerdebAzulwBlancokNegro

    Tipos de lneas.PuntosoCrculosxMarcas x+Marcas +*Marcas *-Lnea continua:Lnea punteada-.Lneas y puntos--Lneas discontinuas

  • Dibujar la funcin y=sin(x) y z=cos(x)

    x=linspace(0,2*pi,30) y=sin(x) z=cos(x) plot(x,y,'r*',x,z,'b:')Ejemplo de colores y linas

  • Aadir rejillas: grid Etiquetar eje x: xlabel(texto)Etiquetar eje y: ylabel(texto)Aadir ttulo: title(texto)Texto en un punto especifico : text(x,y,texto)Texto en un punto especifico determinado por el MOUSE: gtext(texto)Leyenda: legend(var1,....,varn)

    Aadir rejillas y etiquetas

  • Dibujar la funcin y=sin(x) y z=cos(x)

    x=linspace(0,2*pi,30) x=linspace(0,2*pi,30); y=sin(x); plot(x,y); z=cos(x); plot(x,y,'r*', x,z,'b:',2/3*pi, sin(2/3*pi),'mo') grid xlabel('Intervalo 2 Pi') ylabel('valores de Seno y Coseno') title('SENO y COSENO') text(2/3*pi,sin(2/3*pi),' (2.09,0.87)') legend('Seno','Coseno')Ejemplo de rejillas y etiquetas

  • Comandos de programacinBOTONES (PUSHBUTTONS)BOTONES DE SELECCIN (CHECK BOXES)TEXTO (LABEL)BOTONES DE OPCIN (RADIO BUTTONS)BARRAS DE DESPLAZAMIENTO (SCROLLING BARS O SLIDERS)CAJAS DE SELECCIN DESPLEGABLES (POP-UP MENUS)CAJAS DE TEXTO EDITABLES (EDITABLE TEXTBOXES)MARCOS (FRAMES)

  • BOTONES (PUSHBUTTONS)Funcion: boton_calculo = uicontrol(gcf,... 'Style','push',... 'Position',[10 10 100 25],... 'String','Calcular',... 'CallBack','a+b');

  • BOTONES DE SELECCIN (CHECK BOXES)a=0,b=0,c=0,d=0,e=0,f=0,Box_01 = uicontrol(gcf,...'Style','checkbox',...'Units','normalized','Position',[0.4 0.600 0.25 0.05],...'String','valor $5',...'CallBack',['a=b;if a==0,b=5;else a==5,b=0;end;b']);

    Box_02 = uicontrol(gcf,...'Style','checkbox',...'Units','normalized','Position',[0.4 0.550 0.25 0.05],...'String','valor $4',...'CallBack',['c=d;if c==0,d=4;else c==4,d=0;end;d']);

    Box_03 = uicontrol(gcf,...'Style','checkbox',...'Units','normalized','Position',[0.4 0.500 0.25 0.05],...'String','valor $10',...'CallBack',['e=f;if e==0,f=10;else e==10,f=0;end;f']);

    boton_calculo = uicontrol(gcf,...'Style','push',...'Units','normalized','Position',[0.4 0.450 0.25 0.05],...'String','Calcular',...'CallBack','b+d+f');

  • TEXTO (LABEL)BOTONES DE OPCIN (RADIO BUTTONS)% Definir el texto de ttulo para este grupo de controlestxt_01 = uicontrol(gcf,...'Style','text','String','Tolerancia de la resistencia',...'Units','normalized','Position',[0.4 0.60 0.25 0.05]);% Definir la propiedad TickDir In con radiobutton (defecto)tol=5td_5 = uicontrol(gcf,...'Style','radio', 'String','+/- 5%',...'Units','normalized','Position',[0.4 0.55 0.25 0.05],...'Value',1,...'CallBack','set(td_5,''Value'',1),set(td_10,''Value'',0),set(td_15,''Value'',0),1,0,0,tol=5');% Definir la propiedad TickDir Out con radiobuttontd_10 = uicontrol(gcf,...'Style','radio','String','+/- 10%',...'Units','normalized','Position',[0.4 0.50 0.25 0.05],...'Value',0,...'CallBack','set(td_5,''Value'',0),set(td_10,''Value'',1),set(td_15,''Value'',0),0,1,0,tol=10');% Definir la propiedad TickDir Out con radiobuttontd_15 = uicontrol(gcf,...'Style','radio','String','+/- 15%',...'Units','normalized','Position',[0.4 0.45 0.25 0.05],...'Value',0,...'CallBack','set(td_5,''Value'',0),set(td_10,''Value'',0),set(td_15,''Value'',1),0,0,1,tol=15');

  • BARRAS DE DESPLAZAMIENTO (SCROLLING BARS O SLIDERS)barra_01 = uicontrol(gcf,...'Style','slider',...'Units','normalized','Position',[0.4 0.55 0.35 0.05],...'Min',0,'Max',20000,'Value',5,...'CallBack',['a=num2str(get(barra_01,''Val''))']);

  • CAJAS DE SELECCIN DESPLEGABLES (POP-UP MENUS)popcol = uicontrol(gcf,...'Style','popup',...'String','CINCO|DIEZ|QUINCE|VEINTE',...'Units','normalized','Position',[0.4 0.55 0.35 0.05],...'CallBack',['pop=[5,10,15,20];',...'a=pop(get(popcol,''Value''))']);

  • CAJAS DE TEXTO EDITABLES (EDITABLE TEXTBOXES)MARCOS (FRAMES)ft_dir = uicontrol(gcf,...'Style','frame',...'Units','normalized','Position',[0.38 0.49 0.24 0.20]);

    valor_01 = uicontrol(gcf,...'Style','edit',...'BackgroundColor','white',...'FontSize',9,'FontName','Arial',...'String',[400],...'Units','normalized','Position',[0.4 0.60 0.20 0.05],...'CallBack','r=valor_01')

    boton_calculo = uicontrol(gcf,...'Style','push',...'Units','normalized','Position',[0.4 0.52 0.20 0.05],...'String','Calcular',...'CallBack','r*3');

  • Simulink:Este programa se basa en la utilizacin de comandos en sistemas de bloques, cada bloque ejecuta un comando matemtico.

  • Esta ventana muestra las distintas galeras donde se encuentran los comandos de bloques.En este curso no profundizaremos en todas las galeras ni en todos los comandos ya que por razones de tiempo y necesidad de uso solo utilizaremos los sistemas de bloques ms necesarios para Ingeniera Elctrica.

  • Comenzaremos con lagalera Simulink:

  • La galera SOUCES:Los bloques que se encuentran dentro son los bloques de entrada, los generadores de seales.

  • Constant

    Este bloque se utiliza para ingresar constantes.Constant value: Aqu se ingresa la contante.

  • Ingresar Signal Generator

  • Clock and Digital Clock

  • Ingresar Constante

  • Ramp

  • Sine Wave

  • From File and From Workspace

  • La galera SINKS: Los bloques que se encuentran dentro son los que registran las salidas graficando o guardando en memorias.

  • Scope

  • XY Graph

  • Display

  • To File and To Workspace

  • Stop Simulation

  • La galera CONTINUOUS: Integrator and Derivatrive

  • La galera MATH: Sum

  • Product

  • Math Function

  • Math Function

  • Function

    Este bloque aplica a la seal de entrada el comando de valor absoluto.Este bloque entrega el signo de la seal de entrada.Ej: +20 +1 0 0 -20 -1Este bloque acta como un sistema digital interactuando con 0 y 1.

  • Function

    Este bloque compara las seales digitales o anlogas pero con un resultado digital.Este bloque une dos seales trasformndolas en complejas para luego poder resolver cualquier calculo de complejo sobre una seal nica.Este bloque separa a la seal compleja en dos seales comunes.

  • Function

    Este bloque convierte una seal polar en una rectangular.Este bloque convierte una seal rectangular en una polar.Este bloque resuelve sistemas.

  • La galera FUNCTION AND TABLES:FCN

  • MATLAB Fcn Bloque de funcin En el parmetro MATLAB function: se coloca el nombre del archivo de extencion *.m generado en Matlab,Output width: es el valor de multiplicacin final de la salida.

  • Funcin que se genera en el editor de Matlab Resultado visualizado con el SCOPE

  • La galera SIGNAL & SYSTEMS:Estos bloques se utilizan para trasmitir una seal de un lado al otro a travs estos bloques.Es muy til cuando los sistemas se vuelven muy complejos y se necesita una seal determinada From & GOTO

  • MUX & DEMUXEstos bloques sirven para unir seales y para separarlas. IN & OUTEstos bloques son utilizados en la conformacin de subsistemas.

  • Power System Blockset:Esta librera, este programas es realmente extenso con una gran capacidad para realizar diversos tipos de sistemas elctricos y de de control, pero para comenzar a interiorizarnos con el programa poco a poco y debido a que este apunte esta dedicado para alumnos de Ing. Elctrica los smbolos que utilizaremos son fciles de reconocer.

  • Electrical Sources:Esta librera nos proporciona los distintos tipos de fuentes que necesitemos para desarrollar sistemas elctricos bsicos.

  • Elements:Esta librera nos proporciona los distintos tipos de elementos tales como resistencias, capacitores, inductancias, transformadores, etc.

  • Diodos motores y medidores:

    Esta nos proporciona diodos, transistores, etc.Esta nos proporciona distintos tipos de motores asincrnicos monofsicos trifsicos, etc.Esta nos da un voltmetro y un ampermetro.

  • Ejemplo de un circuito