45
Universidad de Almería  Área de Ingeniería de Sistemas y Automática

Seminario Matlab

Embed Size (px)

Citation preview

  • Universidad de Almera

    rea de Ingeniera de Sistemas y Automtica

  • OBJETIVOS DEL CURSO

    2

    Ensear a realizar funciones en Matlab

    El curso se apoya en el que imparti Jos Luis Guzmn en laasignatura de Automatizacin Industrial de segundo curso

    o Las llamadas builtin functions. Son funciones que MATLAB tieneincorporadas internamente y por tanto sus cdigos no son accesibles alusuario.

    o Funciones m functions. Son funciones cuyo cdigo es accesible y queestn escritas a base de rdenes de con objeto de realizar una funcindeterminada.

  • PROGRAMA

    3

    1. Interfaz de usuario de MATLAB2. Ejecucin de comandos y creacin de variables3. Anlisis de vectores y matrices4. Anlisis de datos almacenados en archivo5. Visualizacin de datos

    6. Automatizacin de comandos con scripts7. Escritura de programas con estructura lgica y control

    de flujo8. Desarrollo de funciones

    2

    3

  • Automatizacin de comandos con Scripts

    4

    Un script es un archivo de texto que contiene un listadocomandos que se desea ejecutar secuencialmente.

    Se pueden almacenar para poder se ejecutados a posteriori.

    Es posible incluir comentarios para recordar y clarificar lasactividades que se pretenden realizar con dichos comandos.

    Cada script se debe almacenar en un archivo de texto de laforma:

    nombre_archivo.m

  • Automatizacin de comandos con Scripts

    5

    Ejemplo de carga de archivo de datos y representacin grfica

  • Automatizacin de comandos con Scripts

    6

    Editor de Matlab

    Zona de

    trabajo

    Listado ArchivosAbiertos

    Ejecucin de scripts

  • Automatizacin de comandos con Scripts

    7

    Editor de Matlab

    Se pueden incluir comentarios haciendo uso delsmbolo % al inicio de la lnea correspondiente.

    Si se utiliza doble %%, se genera un seccinvisual que permite dividir virtualmente las zonasdel script.

    Es posible seleccionar varios comandos ycomentarlos todos de una vez. Para ello, seselecciona el texto que se desea comentar, sepulsa el botn derecho del ratn y se selecciona laopcin Comment. Para descomentar, realizar lamisma operacin pero seleccionar la opcinUncomment.

  • Automatizacin de comandos con Scripts

    8

    Ejemplo 1: (ejemplo_script_1.m)

  • Automatizacin de comandos con Scripts

    9

    Ejemplo 1: (ejemplo_script_1.m)

    Cmo Ejecutar?

    Nombre del archivo sin .m

    OJO: Ruta del Archivo!

  • Automatizacin de comandos con Scripts

    10

    Deteccin de errores

    Si al ejecutar un script se obtiene un error, enla lnea de comandos de Matlab se muestra unresumen del posible error y un enlace a lalnea donde se ha producido el mismo

  • Automatizacin de comandos con Scripts

    11

    Pequeos Trucos

    Es posible generar un script con la lista de comandosutilizados durante una sesin de trabajo con Matlab.Para ello, se selecciona la lista de comandos desdela ventana de Histrico de Comandos, se pulsa elbotn derecho del ratn y se selecciona la opcinCreate M-File.

  • Desarrollo de Funciones

    BLOQUE 2

  • Desarrollo de Funciones

    13

    Se entiende por funcin a una secuencia de cdigo que, dado unconjunto de valores de entrada, realiza una serie de operacionescon los mismos y devuelve un conjunto de valores de salida.

    El trabajo con Matlab se basa en el uso de funciones propias o loque usualmente se conoce como comandos.

    Por tanto, el desarrollo de funciones consistir en la creacin decomandos propios definidos e implementados por el usuario.

  • Desarrollo de Funciones

    14

    function [salida1,salida2,] = nombre_funcion(entrada1, entrada2,)

    end

    % Comentarios sobre la ayuda de funcin que luego puede ser utilizada con el% comando help

    Lista de operaciones que haciendo uso de comandos y operaciones de Matlabutilizan las variables de entrada para realizar diversas operaciones y almacenar elresultado en las variables de salida.

    Las funciones se implementan en el editor de Matlab al igual que los scripts.Sin embargo, el nombre del archivo NO puede ser cualquiera, debe ser elmismo que el nombre de la funcin:

    nombre_funcion.m

  • Desarrollo de Funciones

    15

    Ejemplo de funcin que, dadas dos matrices de entrada, genera comoresultado el producto de las mismas y el determinante de cada una de ellas.

    Ejemplo de funcin y modo de uso (prod_det_matrices.m)

  • Desarrollo de Funciones

    16

    Qu diferencias existen entre una funcin y un script?

    Las operaciones que se realizan con los scripts trabajan sobrevariables del espacio de trabajo de Matlab y generan losresultados en ese mismo espacio.

    Las funciones slo hacen uso de las variables que se le pasa comoentrada y slo se puede acceder a las variables que se generancomo resultado de salida.

  • Desarrollo de Funciones

    17

    Qu diferencias existen entre una funcin y un script?

  • Escritura de programas con estructura lgica y control de flujo

    BLOQUE 2

  • Estructura de programas, lgica y control de flujo

    19

    Matlab, adems de ser un entorno que permite ejecutar rdenesde manera individual sobre la ventana de comandos, es en s unlenguaje de programacin formado por un conjunto deinstrucciones tpicas de control de flujo. La sintaxis es muyparecida a la de cualquier lenguaje de programacin y todas laspalabras reservadas pueden ser usadas directamente sobre la lneade rdenes, en forma de script o en forma de funciones.

  • Estructura de programas, lgica y control de flujo

    20

    Permiten la comparacin de escalares (o de matrices elemento aelemento). Si el resultado de la comparacin es verdadero,devuelven un 1, en caso contrario devuelven un 0. Losoperadores elementales son:

    Operadores lgicos y relacionales

  • Estructura de programas, lgica y control de flujo

    21

  • Estructura de programas, lgica y control de flujo

    22

  • Estructura de programas, lgica y control de flujo

    23

    Si expresinlista de comandos

    Sinolista de comandos adicional.

    Fin_sin

    Estructuras condicionales (if)

    if expresinlista de comandos

    elselista de comandos adicional.

    end

    if expresinlista de comandos

    elseif expresinlista de comandos adicional 1

    elseif expresinlista de comandos adicional 2

    elselista de comandos adicional 3

    end

  • Estructura de programas, lgica y control de flujo

    24

    Estructuras condicionales (if): Ejemplos

    Llamada a la funcin:

  • Estructura de programas, lgica y control de flujo

    25

    Segn_sea variablecaso valor 1

    lista de comandos 1.caso valor 2

    lista de comandos 2.caso por defecto

    lista de comandos N.Fin_segn_sea

    Estructuras condicionales (switch)

    switch variablecase valor 1

    lista de comandos 1.case valor 2

    lista de comandos 2.otherwise

    lista de comandos N.end

  • Estructura de programas, lgica y control de flujo

    26

    Estructuras condicionales (switch): Ejemplos

  • Estructura de programas, lgica y control de flujo

    27

    Desde variable=expresinlista de comandos a repetir;

    Fin_desde

    Estructuras repetitivas (for)

    for variable=expresinlista de comandos a repetir;

    end

    Mientras condicinlista de comandos a repetir;

    Fin_mientras

    Estructuras repetitivas (while)

    while condicinlista de comandos a repetir;

    end

  • Estructura de programas, lgica y control de flujo

    28

    Estructuras repetitivas (for): Ejemplos

    Estructuras repetitivas (while): Ejemplos

  • Estructura de programas, lgica y control de flujo

    29

    Ejemplo completo a desarrollar por los alumnos

    X Y

    5 9

    7 11

    10 15

    12 16

    14 20

    16 20

    19 22

    20 24

    23 27

    27 29

    Desarrollar un programa lo ms genrico posible quepermita calcular la regresin lineal para un conjunto dedatos introducidos desde teclado. Adems de calcularlo,deber mostrar por pantalla los resultados para validar sila regresin es correcta.

  • Ejemplo: clculo parmetros de respuesta temporal de un sistema 2 orden (muy mejorable!)

  • Ejemplo: clculo parmetros de respuesta temporal de un sistema 2 orden (muy mejorable!)

    >>num=1;>>den=[12*0.51];>>[y,t]=step(sys1);>>step(sys1)>>[SO,ts,tp,te]=resp_esca(t,y)

  • Comandos del toolbox de control

    32

    Creacin de modelos linealestf Creacin de funciones de transferencia a partir de numerador y denominador

    Tiempo continuo: sys = tf(num,den) Tiempo discreto: sys = tf(num,den,T)

    zpk Creacin de modelos en la forma ZPK (cero/polo/ganancia)Tiempo continuo: sys = zpk(z,p,k) Tiempo discreto: sys = zpk(z,p,k,T)

    ss Creacin de modelos en espacio de estadosTiempo continuo: sys = ss(A,B,C,D)Tiempo discreto: sys = ss(A,B,C,D,T)

    lti/frd Modelo a travs de respuesta en frecuenciaTiempo continuo: sys = frd(respuesta,frecuencias)Tiempo discreto: sys = frd(respuesta,frecuencias,T)

    delaysslti/expsetdelayModel

    Comandos relacionados con la imposicin de retardos (usar help comando para una descripcin detallada)

    filt

  • Comandos del toolbox de control

    33

    Extraccin de datos

    lti/tfdata Extraccin de numerador y denominadorTiempo continuo: [num,den] = tfdata(sys) Tiempo discreto: [num,den,T] = tfdata(sys)

    lti/zpkdata Obtencin de polos, ceros y gananciaTiempo continuo: [z,p,k] = zpkdata(sys) Tiempo discreto: [z,p,k,T] = zpkdata(sys)

    lti/ssdata Obtencin de las matrices de espacio de estadosTiempo continuo: [A,B,C,D] = ssdata(sys) Tiempo discreto: [A,B,C,D,T] = ssdata(sys)

    lti/frdata Obtencin de la respuesta en frecuencia a partir de un modelo[respuesta,frecuencias]=frdata(sys)

  • Comandos del toolbox de control

    34

    Conversionesc2d Conversin de modelos de tiempo continuo a tiempo discreto

    sysd=c2d(sys,T,mtodo)Mtodo: zoh (mantenedor de orden cero), foh (mantenedor de orden 1), impulse (basada en respuesta impulsional), tustin (trapezoidal), matched (polo-cero)

    d2c Conversin de modelos de tiempo discreto a tiempo continuosys=d2c(sysd,mtodo)Mtodo: zoh (mantenedor de orden cero), (basada en respuesta impulsional), tustin (trapezoidal), matched (polo-cero)

    d2d Remuestreado de un modelo de tiempo discreto con un nuevo muestreo Tsysd=d2c(sysd,T,mtodo)Mtodo: zoh (mantenedor de orden cero), (basada en respuesta impulsional), tustin (trapezoidal)

    upsample Sobremuestreo de un modelo de tiempo discreto con un nuevo muestreo Tsysd=upsample(sysd,T,mtodo)Mtodo: zoh (mantenedor de orden cero), (basada en respuesta impulsional), tustin (trapezoidal)

  • Comandos del toolbox de control

    35

    Interconexin de sistemasparallel Conexin de sistemas LTI en paralelo

    sys =parallel(sys1,sys2,in1,in2,out1,out2)series Conexin de sistemas LTI en serie

    sys =series(sys1,sys2,out1,in2)feedback Conexin de modelos LTI con un lazo de realimentacin

    sys=feedback(sys1,sys2)

  • Comandos del toolbox de control

    36

    Ganancia y dinmica del sistemadcgain Ganancia en estado estacionario

    K=dcgain(sys)lti/bandwidth Ancho de banda del sistema

    Ab=bandwidth(sys)lti/pole Polos del sistema

    p=pole(sys)lti/zero Ceros del sistema

    z=zero(sys)lti/order Orden del modelo (nmero de estados)

    ns=order(sys)pzmap Transformacin polo-cero

    [p,z]=pzmap(sys)damp Frecuencia natural y factor de amortiguamiento relativo de los polos del sistema

    [wn,Z]=damp(sys)

  • Comandos del toolbox de control

    37

    Anlisis en el dominio del tiempostep Respuesta a escaln t puede ser tfin, 0:T:tfin

    step(sys)step(sys,t)

    stepinfo Caractersticas de la respuesta a escaln (tiempo de subida)s=stepinfo(y,t,yfinal)s es una estructura que contiene los siguientes indicadores:

    RiseTime: tiempo de subidaSettlingTime: tiempo de establecimientoSettlingMin: mnimo valor de y dentro del tiempo de establecimientoSettlingMax: mximo valor de y dentro del tiempo de establecimientoOvershoot: sobreoscilacin (%) referida a yfinalUndershoot: suboscilacin (%)Peak: valor mximo de yPeakTime: tiempo de pico

    impulse Respuesta a impulso t puede ser tfin, 0:T:tfinimpulse(sys)impulse(sys,t)

    initial Respuesta libre a partir de condiciones iniciales t puede ser tfin, 0:T:tfininitial(sys,x0)initial(sys,x0,t)

  • Comandos del toolbox de control

    38

    Anlisis en el dominio del tiempolsim Respuesta a una entrada definida por el usuario t puede ser tfin, 0:T:tfin

    lsim(sys,u,t)lsiminfo Caractersticas de la respuesta lineal

    s=lsiminfo(y,t,yfinal)s es una estructura que contiene los siguientes indicadores:

    SettlingTime: tiempo de establecimientoMin: mnimo valor de y Max: mximo valor de y MaxTime: tiempo en que el mximo se alcanza

    gensig Genera seales de entrada para ser usadas con la funcin lsim[u,t] = gensig(tipo,periodo)

    tipo = 'sin' --- seal senoidaltipo = 'square' --- seal cuadradatipo = 'pulse' --- pulso peridico

  • Comandos del toolbox de control

    39

    Anlisis en el dominio de la frecuenciabode Diagramas de Bode de la respuesta en frecuencia

    bode(sys)bodemag Diagrama de Bode de magnitud

    bodemag(sys)nyquist Diagrama de Nyquist

    nyquist(sys)nichols Diagrama de Nichols

    nichols(sys)margin Mrgenes de fase y ganancia

    margin(sys)

    Diseo de compensadoresrlocus Diagramas de Bode de la respuesta en frecuencia

    rlocus(sys)place Diagrama de Bode de magnitud

    K=place(A,B,P)

    Modelos en espacio de estadosctrb Forma cannica de control

    CO = ctrb(A,B)obsv Forma cannica de observacin

    OB = obsv(A,C)

  • 40

    rea de Ingeniera de Sistemas y Automtica

    Secuencia de ponderacin

    Se define como la secuencia de salida de un sistema cuando se le aplicauna secuencia de impulso unitario {k}. Posee una gran utilidad para elestudio y anlisis de sistemas dinmicos:

    Sistema

  • 41

    rea de Ingeniera de Sistemas y Automtica

    Secuencia de ponderacin

    Conocida la secuencia de ponderacin de un sistema {gk} y conocida unaentrada cualquiera {uk}, es posible obtener la secuencia de salida delsistema a dicha entrada.

    Sistema

  • Ejemplos Secuencia de ponderacin

  • Ejemplos Secuencia de ponderacin

  • Ejemplos

    Simulacin basada en ecuaciones en diferencia

    0 5 10 15 20 25 30 35 40 45 500

    0.1

    0.2

    0.3

    0.4

    0.5

    0.6

    0.7

    0.8

    0.9

    1

    Muestreos

    E

    n

    t

    r

    a

    d

    a

    y

    s

    a

    l

    i

    d

    a

  • Universidad de Almera

    rea de Ingeniera de Sistemas y Automtica