Download - Seminario Matlab
-
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