IntroMatlab

Embed Size (px)

DESCRIPTION

Matlab

Citation preview

  • Regulacin AutomticaIntroduccin a MATLAB

    J. Xabier Ostolaza ZamoraDepto. de Ingeniera de Sistemas y Automtica

    1

    dindice

    Antecedentes y Estructura del programaP t i d l i d t b j Presentacin del espacio de trabajo (Workspace) de Matlab. Tipos de variables.

    Operaciones con ectores matrices Operaciones con vectores y matrices Funciones Polinomiales G fi d di i Grficas en dos dimensiones

    Tipos de trazo, superposicin de grficas, leyendas Alternativas de Programacin Alternativas de Programacin

    Ficheros de procedimiento (Scripts) Funciones

    2

  • A t d tAntecedentes

    En los 60-70s se desarrollan unas potentes libreras de clculo matricial:potentes libreras de clculo matricial: LINPACK + EISPACK = LAPACK

    Cleve Moler facilita el uso de dichas Cleve Moler facilita el uso de dichas libreras mediante MATLAB MATLAB = MATrix LABoratory MATLAB = MATrix LABoratory

    Sistema de computacin en el que, El elemento bsico es un array que no El elemento bsico es un array que no

    requiere dimensionamiento Tiene siempre presente la facilidad de uso

    3

    p p

    E t t d l PEstructura del Programa

    MATLAB consta de 5 elementos: E i d T b j (W k ) Espacio de Trabajo (Workspace) Sistema grfico Lenguaje de Programacin estructuradaLenguaje de Programacin estructurada Enorme librera de funciones matemticas API Application Program Interface

    Adems, se pueden encontrar conjuntos de funciones que extienden MATLAB para la

    l i d bl fi resolucin de problemas especficos: TOOLBOXES, Simulink Symbolic Math Optimization

    4

    Simulink, Symbolic Math, Optimization,...

  • W k d M tl b (I)Workspace de Matlab (I)

    Es una ventana de terminal a travs de la que se desarrollan (habitualmente) las sesiones se desarrollan (habitualmente) las sesiones de Matlab Smbolo de sistema o prompt: p p Ayuda del sistema

    help % En el Workspace helpdesk % En formato .html helpwin % En formato .hlp help graph2d % Sobre grficos 2D help graph2d % Sobre grficos 2D help det % Sobre la funcin det lookfor determinant % Busca funciones que

    5

    qen su ayuda contengan determinant

    W k d M tl b (II)Workspace de Matlab (II)

    Comandos bsicos cd % Directorio actual de trabajoj cd c:\CursoPotencia % Cambia directorio. Debe ser el PRIMER COMANDO DE TODA SESIN

    dir % Contenido del directorio dir % Contenido del directorio what % Del directorio, muestra archivos de Matlab, esto es: .M, .MAT y .MEX

    who % Muestra las variables existentes en la sesin de Matlab

    path % Presenta el path de trabajo de Matlab, donde busca los archivos

    quit % cierra la sesin de Matlab !---- % ejecuta comando del sistema

    6

    ! % ejecuta comando del sistema operativo

  • W k d M tl b (III)Workspace de Matlab (III)

    Variables Definiciones Longitud mx nombre: 31 caracteres Definiciones. Longitud mx. nombre: 31 caracteres

    a=1 % Matriz 11 de no complejo. Imag(a)=0 A=[2+3i 4.1,2]; % Vector 13. Ojo!!!, Aa b=[2.31;-1;2] % Vector 31 a=[1 3 2;2 7 3;1 2 5] % Matriz 33 c='Hola' % String de caracteres c Hola % String de caracteres v=1:.25:2 % =[1 1.25 1.5 1.75 2]

    Operaciones bsicas con variablesi ( ) % di i d ( [3 3]) size(a) % dimensiones de a (= [3 3])

    d=a(1,2)+a(3,1) % =4 d=a(1:3,[1 3]) % =[1 2;2 3;1 5]

    7

    ( ,[ ]) [ ] c(2) % ='o'

    W k d M tl b (IV)Workspace de Matlab (IV)

    Clculo matricial diag(a) % [1;7;5] diag(a) % [1;7;5] c=b.' % bT c=b' % conj(bT); = bT cuando b es realj( ); d=det(a) % =2 d=eig(a) % Valores propios de a d=inv(a) % =[14.5 -5.5 -2.5;-3.5 1.5 0.5;

    -1.5 0.5 0.5] x=inv(a)*b % Producto matricial x=inv(a)*b % Producto matricial b.*[2;1;1] % Producto elemento a elemento x=a\b % Resolucin del sistema: ax=b

    8

  • W k d M tl b (V)Workspace de Matlab (V)

    Clculo con Polinomios U li i t t Un polinomio se representa como un vector

    p=[1.5 1 4 0 -5] % p 1.5x4 + x3 + 4x2 5 Funciones Polinomiales

    roots(p) % races del polinomio p p1=conv([2 1],[-1 4]) % Multiplicacin de polinomios: p1 (2x + 1)(-x + 4)=[-2 7 4]

    y=polyval(p1,2) % evaluacin de un polinomio en un punto p p

    p1=polyfit([1 2 4 6],[4 5 8 12], 2) % ajuste por mnimos cuadrados a un polinomio de grado 2

    9

    polinomio de grado 2

    W k d M tl b (VI)Workspace de Matlab (VI)

    Almacenamiento y carga de datos Tras una sesin de trabajo es importante tener Tras una sesin de trabajo, es importante tener

    capacidad de guardar los resultados logrados save % graba todas las variables existentes en el archivo matlab matexistentes en el archivo matlab.mat

    save dia1 % id. en el archivo dia1.mat save dia1 a A b % graba las variables a,

    1A, y b en el archivo dia1.mat Y para recuperar datos

    load / load dia1 % para matlab o dia1.mat/ p load datos.txt -ascii % es un mtodo interesante para importar datos de otra aplicacin a Matlab. Se crea una variable

    10

    aplicacin a Matlab. Se crea una variable de nombre 'datos'

  • W k d M tl b (VII)Workspace de Matlab (VII)

    Para liberar memoria clear var % elimina la variable var clear var % elimina la variable var var=[] % elimina el contenido de var clear % elimina todas las variables clear functions % elimina las funciones clear all % lo elimina TODO

    Finalmente otras posibilidades Finalmente, otras posibilidades workspace % GUI para gestionar variables pack % Para desfragmentar la memoria diary file.m % va guardando los comandos que se van introduciendo en la sesin

    inmem % funciones cargadas en memoria

    11

    g

    G fi 2D (I)Grficos en 2D (I)

    Funcin bsica plot(x y 'trazocolor') % x y vectores plot(x,y, trazocolor ) % x,y vectores

    Ejemplo t=[0:0.01:1]'; % abscisas y=sin(2.4*pi*t).*cos(5*pi*t); % ordenadas i=1:5:length(t); % subconjunto de ndices

    l ( (i) (i) b ) fi plot(t,y,'r',t(i),y(i),'sb') % grfica xlabel('Tiempo [s]') % Etiqueta X ylabel('[mg O 2/l]') % Etiqueta Y ylabel( [mg O_2/l] ) % Etiqueta Y title([ datestr(now) ...

    '; Resultados del Test n 4']) % Ttulo

    12

  • G fi 2D (II)Grficos en 2D (II)

    Ejemplo de superposicin de Grficas plot(t y 'k- ') % 1 grfica plot(t,y, k . ) % 1 grfica hold on % Comienzo superposicin plot(t,y.^2,'md') % 2 grfica hold off % Fin superposicin grid % Lneas de grid

    i ([0 2 1 2*[ 1 1]]) difi i d axis([0 2 1.2*[-1 1]]) % Modificacin de los lmites de los ejes

    legend('Valores y', 'Valores y^2')g ( y , y ) Referencia a elementos grficos

    h=plot(t,y,'g'); % Handle al plot

    13

    set(h,'LineWidth',4) % Cambio Propiedad

    P i (I)Programacin (I)

    Dos alternativas Scripts Scripts

    Equivalen a teclear los comandos en el workspace de Matlab

    V i bl l i t t l W k (l Variables son las existentes en el Workspace (las que se veran mediante who)

    Funciones Son subrutinas a las que se les envan parmetros de

    entrada, y devuelven valores de salida . Ej: y=sin(x) Sus variables son de mbito local (internas)( ) Llamada: [v1,...,vm]=NombreFun(p1,...,pn) El cdigo de la funcin empieza con el identificador function [w1 wm]=NombreFun(q1 qn)

    14

    function [w1,...,wm]=NombreFun(q1,...,qn)

  • P i (II)Programacin (II)

    Lenguajes de Programacin M tl b l d hi M Matlab, almacenado en archivos M

    Relativamente fciles de implementar Estructuras de programacin: if, for, while,...p g , , , Problema: Su ejecucin se realiza a travs del

    intrprete de comandos de MatlabO l d h Otros lenguajes estndares, archivos MEX DLL Su aplicacin presenta barrera de entrada Requiere ajuste a las exigencias de la API de Matlab Requiere ajuste a las exigencias de la API de Matlab Lenguaje preferido: C. Muy verstil, conocido. Al utilizar lenguajes precompilados, su ejecucin es

    15

    ms rpida (segn el caso, casi 500 veces ms rpida)

    Ej i i 2 1 (I)Ejercicio 2.1 (I)

    Desarrollar un archivo Script de Matlab que, a partir de puntos de una curva Para partir de puntos de una curva Par-Velocidad de una bomba, obtenga su ajuste a una parbolap b

    Adems de ello, que presente, en la misma grfica los puntos de partida y el ajuste g y jcuadrtico realizado.

    Datos de partida: TN=2262Nm; N=2990rpm

    19.8.7.6.5.4.3.2.1.0/181.65.50.36.25.16.09.05.06.15./

    N

    NTT

    16

    19.8.7.6.5.4.3.2.1.0/ N

  • Ej i i 2 1 (II)Ejercicio 2.1 (II)

    Representacin grfica

    17

    Ej i i 2 2 (I)Ejercicio 2.2 (I)

    Desarrollar una funcin de Matlab que, dados los parmetros del circuito equivalente dados los parmetros del circuito equivalente de una mquina asncrona, obtenga su caracterstica Par-deslizamiento y la ypresente grficamente

    Argumentos de entradag VLL, s, R1, X1, R2, X2, Xm

    Variables de salida T, s

    Prototipo de la funcin

    18

    [T,s]=ParSlip(VLL, Ws, R1, X1, R2, X2, Xm)

  • Ej i i 2 2 (II)Ejercicio 2.2 (II)

    function [T,s]=ParSlip(V, Ws, R1, X1, R2, X2, Xm)%Funcin que obtiene y representa la curva Par-Velocidad de%un Motor asncrono trifsicoz1=R1+j*X1; zm=j*Xm;vln=V/sqrt(3);s=1: 0 005: 005; s=s';s=1:-0.005:.005; s=s';T=zeros(size(s));for k=1:length(s),

    z2=R2/s(k)+j*X2;z2=R2/s(k)+j X2;v1=(vln/z1)/(1/z1+1/zm+1/z2);iRotor=v1/z2;T(k)=3*abs(iRotor*iRotor)*R2/(s(k)*Ws);

    ends=[s;0]; T=[T;0];plot(1-s,T), grid

    19

    xlabel('Deslizamiento'), ylabel('Par Motor [Nm]')

    Ej i i 2 2 (II)Ejercicio 2.2 (II)

    Llamar a la funcin con: r1=0 9364; x1=2 5266; r2=0 2261; x2=2 4775; r1=0.9364; x1=2.5266; r2=0.2261; x2=2.4775; xm=99.8522; VLL=6000; Ws=100*

    20