7/18/2019 Introduccion al Matlab para Control
http://slidepdf.com/reader/full/introduccion-al-matlab-para-control 1/46
PARTE I: Programación en
MATLAB
7/18/2019 Introduccion al Matlab para Control
http://slidepdf.com/reader/full/introduccion-al-matlab-para-control 2/46
Fundamentos de control para MATLAB
Contenidos
Tipos de datos. Variales! constantes! operadores! e"presiones # sentencias. Funciones de entrada$salida. %estión de gr&'icos.
7/18/2019 Introduccion al Matlab para Control
http://slidepdf.com/reader/full/introduccion-al-matlab-para-control 3/46
Introducción
Matla (Matri" Laorator#): MATLAB es una*erramienta de so't+are matem&tico ,ue o'rece unentorno de desarrollo integrado (I-E) con un
lenguaje de programación propio (M).Matla es el so't+are cient'ico m&s e"tendido!
por,ue/.Toolo" de Matla: Matla posee m&s de 01 toolo"es. 2osotros nos centraremos en Control 3#stem Toolo". Test comando 4er
7/18/2019 Introduccion al Matlab para Control
http://slidepdf.com/reader/full/introduccion-al-matlab-para-control 4/46
Introducción:
Matla se usar& para diseñar algoritmos decontrol # posteriormente para realizar cálculospara simulación de sistemas dinámicos.
Las poderosas *erramientas de Matla son idealespara el modelamiento y simulación de todo tipode sistemas din&micos.
7/18/2019 Introduccion al Matlab para Control
http://slidepdf.com/reader/full/introduccion-al-matlab-para-control 5/46
56eti4os
Identi'icar los elementos ,ue componen el entornode traa6o en MATLAB.
-e'inir 4ariales # reali7ar operaciones con 4ectores # matrices en MATLAB.
Reali7ar gr&'icas de 'unciones usando las*erramientas ,ue o'rece MATLAB.
7/18/2019 Introduccion al Matlab para Control
http://slidepdf.com/reader/full/introduccion-al-matlab-para-control 6/46
Entorno de Matla
7/18/2019 Introduccion al Matlab para Control
http://slidepdf.com/reader/full/introduccion-al-matlab-para-control 7/46
-e'inición de Variales
MATLAB permite traa6ar con n8meros de tipo enterocon # sin signo! as como punto 'lotante de doleprecisión! la cual es la condición por de'ecto al crear una
4ariale. Para crear una 4ariale escalar! sólo se le dee
asignar un 4alor a un nomre (+ea9l# t#pe):
4ar; < =.;0 >4ar; es tipo doule: ocupa ?0 its
Reglas para nombrar variables: -ee comen7arcon una letra! no puede *aer espacios entre caracteres!distingue entre ma#8sculas # min8sculas.
7/18/2019 Introduccion al Matlab para Control
http://slidepdf.com/reader/full/introduccion-al-matlab-para-control 8/46
-e'inición de Variales
A*ora ,ue se *a de'inido la 4ariale! esta aparecer& en el +or9space # podr& ser usada en adelante: 4ar@ < s,rt(4ar;) ;1 > rai7 cuadrada de 4ar; ;1
Pruee +*os:
+*os3i no se desea mostrar el resultado se puede terminar el
enunciado con punto # coma:
4ar= < 4ar; 4ar@Puede orrar las 4ariales ,ue no desee usar m&s con el
comando clear: clear 4ar; 4ar@
7/18/2019 Introduccion al Matlab para Control
http://slidepdf.com/reader/full/introduccion-al-matlab-para-control 9/46
-e'inición de 4ariales
MATLAB cuenta con una 4asta cantidad de 'unciones matem&ticas #ade'inidas para ser usadas por el usuario:
t; < 0@ >Potencia: 0@ < ;?
t@ < (=0D6)1.; >Parntesis para operaciones
complicadas t= < s,rt (@) >Ra7 cuadrada: @ < @1.G
t0 < Hlog(@) log;1(1.@=) >Logaritmo: Hln(@) log;1(1.@=)
tG < Hcos(pi$?) atan(J1.K) >Trig. (en radianes)! pi < =.;0;?
t? < e"p (@0Di) >E"ponencial: e@0i
t < Hround(;.0)! 'loor(=.=)! ceil(0.@=) >Redondeos
tK < Hangle(i) as(;i) >5p. sore comple6os: arg. # norma
7/18/2019 Introduccion al Matlab para Control
http://slidepdf.com/reader/full/introduccion-al-matlab-para-control 10/46
3i desea uscar una 'unción! puede uscar elcomando loo9'or:
loo9'or in4erse
Recuerde ,ue Ctrl c detiene la e6ecución en Matlaen cual,uier momento:Para 4eri'icar el 'ormato espec'ico de una 'unción
puede usar el comando *elp:
*elp magic
7/18/2019 Introduccion al Matlab para Control
http://slidepdf.com/reader/full/introduccion-al-matlab-para-control 11/46
Variales
-oule ( por de'ecto) d4ar < @
Integer de K its i4ar; < intK(@)
i4ar@ < i4ar; ;@K $$ cuanto 4ale i4ar@/Integer de ;? its i4ar= < int;?(0)
Integer de =@ its
i4ar0 < int=@(?)C*ar s4ar; < Nempe7ando O s4ar;(G) $$ a ,ue es igual/
7/18/2019 Introduccion al Matlab para Control
http://slidepdf.com/reader/full/introduccion-al-matlab-para-control 12/46
E6ercicios (se scripts)
-istancia 4ia6ada por una pelota en caida lire! esta dada por lasiguiente ecuación:
-atos! t< Gs! "o < ;1m! 4o < ;Gm$s! a < Q.Km$s@Calcule el lado 'altante en el siguiente tri&ngulo:
-ado un diodo de silicio con Is < GGuA! se tiene ,ue I < ;.GAcuando V d < 1.KV! encontrar su V T. tili7ar la siguiente 'órmula:
7/18/2019 Introduccion al Matlab para Control
http://slidepdf.com/reader/full/introduccion-al-matlab-para-control 13/46
5tras 4ariales
3tructuras 3truct;.4ar; < ;1 3truct;.4ar@ < ?.@ 3truct;.cadena; < Nstring in structO
Cells temperature(;!:) < S1;JanJ@1;1S! H0G! 0Q! 1U temperature@!;U < O1@JanJ@1;@O temperature@!@U <H;1 @1 1
7/18/2019 Introduccion al Matlab para Control
http://slidepdf.com/reader/full/introduccion-al-matlab-para-control 14/46
-e'inición de Vectores
Los 4ectores se pueden de'inir como 'ilas ocolumnas:
7/18/2019 Introduccion al Matlab para Control
http://slidepdf.com/reader/full/introduccion-al-matlab-para-control 15/46
Los elementos de una 'ila pueden estar separadospor comas o espacios:
'ila; < H1 ;1 ;1
'ila@ < H;1! J@! J;! K.=Los elementos de una columna pueden estar
separados por punto # coma o un camio de lnea:
col; < H1.0 ;.; Q
col@ < H;1
J@
7/18/2019 Introduccion al Matlab para Control
http://slidepdf.com/reader/full/introduccion-al-matlab-para-control 16/46
-e'inición de 4ectores
Puede editar o escoger elementos de los 4ectoresdireccionando directamente a los ndices de estos:
col;(@) < ;11
elem < 'ila@(=)Puede crear 4ectores de'iniendo rangos! esto crea
elementos igualmente espaciados! seg8n el siguiente'ormato: inicio:incr:'in
'ila= < ;:@:@1 col= < (;11:J;.G:@)O > N es transpuesta
7/18/2019 Introduccion al Matlab para Control
http://slidepdf.com/reader/full/introduccion-al-matlab-para-control 17/46
-e'inición de Vectores
Comando “linspace”: 3i mas ien lo ,ue sere,uiere es crear un 4ector con una cierta cantidadde elementos 2 entre dos lmites conocidos aW #
W! entonces el comando linspaceW es m&scon4eniente. a < 1
< @Dpi
2 < ;111
t@< linspace (a! ! 2) >Crea un 4ector de ;111 elementos entre a #
7/18/2019 Introduccion al Matlab para Control
http://slidepdf.com/reader/full/introduccion-al-matlab-para-control 18/46
-e'inición de Vectores
Puede iniciali7ar 4ectores con 'uncionesprede'inidas:
'ila0 < 7eros(;!0)
col0 < ones(G!;)Concatenación de 4ectores
'ilaG < H'ila; 'ila@
colG < Hcol; col@Puede otener la longitud de un 4ector con el
comando lengt*:
7/18/2019 Introduccion al Matlab para Control
http://slidepdf.com/reader/full/introduccion-al-matlab-para-control 19/46
5peraciones con Vectores
E"isten muc*as 'unciones prede'inidas para su usocon 4ectores: sumVector < sum('ila0) > suma de elementos
prodVector < prod('ila=) > producto de elementos
ma"Vector < ma"(col=) > el m&"imo 4alor del 4ector
medVector < mean(col0) > la media de los elementos
En general! todas las 'unciones ,ue aplican a
escalares tamin 'uncionan sore 4ectores: t < H; @ = ' < e"p(t) > Es lo mismo ,ue ' < He"p(;) e"p(@) e"p(=)
7/18/2019 Introduccion al Matlab para Control
http://slidepdf.com/reader/full/introduccion-al-matlab-para-control 20/46
5peraciones con 4ectores
56o no puede operar con 4ectores de distinto tamaXo:
'ila; 'ila@ > no es correcto
Como casos particulares! los operadores D! $ # tienen dos modos de operacióndistintos: elemento a elemento # est&ndar (operación de'inida 'ormalmente en
matem&tica).
3i se desea reali7ar operaciones elemento a elemento! se dee usar un puntodelante de los operadores: .D! .$ .) # las dimensiones de las 4ariales deen seriguales:
a < H; @ = > Vector 'ila ;"=
< H0 @ ; > Vector columna =";
a.D! a.$! a. > YTodas son erroresZ
a.DS! a.$S! a.(S) > 5[ Todas son 4&lidas
7/18/2019 Introduccion al Matlab para Control
http://slidepdf.com/reader/full/introduccion-al-matlab-para-control 21/46
E6ercicio: 5peraciones con 4ectores (se scripts)
Calcular el 4alor de @1.;" para los siguientes 4alores de ": 1! \! @;$@!@@ # ;.
"< H1! 1.G! s,rt(@)! @s,rt(@) ! ; #<@.(1.;D")
-ado un con6unto de 2 resistencias! escria la 'órmula ,ue
permitira calcular su 4alor Rserie: e,ui4alente en serie #Rparalelo: e,ui4alente en paralelo.
7/18/2019 Introduccion al Matlab para Control
http://slidepdf.com/reader/full/introduccion-al-matlab-para-control 22/46
3i tiene 2 notas # desea calcular su promedioeliminando la nota m&s a6a! ]cómo lo calcularacon MATLAB/! ]cómo podra eliminar las dosm&s a6as/notas < H;1 ;0 ; ;=notaso<sort(notas)prom<(sum(notas)Jnotaso(;))$(lengt*(notas)J;)
prom@<(sum(notas)Jnotaso(;)Jnotaso(@))$(lengt*(notas)J@)
7/18/2019 Introduccion al Matlab para Control
http://slidepdf.com/reader/full/introduccion-al-matlab-para-control 23/46
-e'inición de matri7
Las matrices se pueden de'inir como los 4ectores! esto es!especi'icando cada elemento de manera indi4idual oconcatenando 4ectores 'ila! columna o incluso matrices m&s
pe,ueXas (tener siempre en consideración las dimensiones).
Elemento por elemento:
a < H; @ = 0 > 'ila ; de a es H; @! 'ila @ de a es H= 0
E6ercicio: -e'inir una matri7 de tamaXo ="= # G"0
7/18/2019 Introduccion al Matlab para Control
http://slidepdf.com/reader/full/introduccion-al-matlab-para-control 24/46
-e'inición de matri7
Por concatenación de 4ectores:
c; < H@ G K
c@ < H; ;1 @ mc;@ < Hc; c@ > Matri7 concatena dos columnas
'; < HG ;@ 0
'@ < H@1 ;G =G m';@ < H'; '@ > Matri7 concatena dos 'ilas
7/18/2019 Introduccion al Matlab para Control
http://slidepdf.com/reader/full/introduccion-al-matlab-para-control 25/46
E6ercicio: -e'inir matri7
E"plicar el siguiente código
'; < H; @
'@ < H= 0
c; < HG ? m; < H'; '@
m@ < Hm; c;
mc < HHm@ m@ H'; '@ ';
mc <
; @ G ; @ G = 0 ? = 0 ?
; @ = 0 ; @
7/18/2019 Introduccion al Matlab para Control
http://slidepdf.com/reader/full/introduccion-al-matlab-para-control 26/46
-ireccionamiento en matrices
-e la misma 'orma ,ue para 4ectores! tamin es posiledireccionar directamente los elementos de una matri7 para sulectura o escritura.
a(;!@) < G >Permite editar 'ila ;! columna @ de a
a(@!@) < ? >Permite editar 'ila @! columna @ de a
g < a(;!;) >Permite graar en g 'ila ;! columna ; de a
* < a(;!:) >Permite graar en * 'ila ; de a 9 < a(:!@) >Permite graar en 9 columna @ de a
" < mc(H; @! H0 G) >E"trae suJmatri7
# < mc(H; =! @:G) >E"trae suJmatri7
7/18/2019 Introduccion al Matlab para Control
http://slidepdf.com/reader/full/introduccion-al-matlab-para-control 27/46
5peraciones con matrices
Para reali7ar las operaciones est&ndar se dee tener enconsideración ,ue para el producto, las dimensionesinternas de las matrices deben coincidir (columnas de la
primera matri7 con las 'ilas de la segunda) # ,ue lae"ponenciación se reali7a sólo sore matrices cuadradas. Comoe6emplo de operaciones sore matrices se muestra lo siguiente:
A < H; 0 G @ = ? G K ;
[d < det(A) > Calcula determinante de la matri7 A R9 < A@ > Potencia (est&ndar): Calcula A @
I4 < in4(A) > Calcula A J;! resulta igual a AJ;
7/18/2019 Introduccion al Matlab para Control
http://slidepdf.com/reader/full/introduccion-al-matlab-para-control 28/46
Matrices Multidimensionales
3e pueden de'inir matrices de dimensiones ma#ores!e6emplo:
matr(:!:!;) < HQ @ ;1 1.G ? ;
matr(:!:!@) < HJ; J@ 1.0 J; J@ J=La matri7 resultante ser& de @"="@
7/18/2019 Introduccion al Matlab para Control
http://slidepdf.com/reader/full/introduccion-al-matlab-para-control 29/46
Resol4er los siguientes sistemas de ecuaciones:
-ado un 4ector 4 # una matri7 A! calcular lo siguiente:
P < ^ 4 9 A 9 ! 9 < ;:n
_ < e A
-ada una matri7 A! calcular sus 4alores propios.
E6ercicio: 5peraciones con matrices
7/18/2019 Introduccion al Matlab para Control
http://slidepdf.com/reader/full/introduccion-al-matlab-para-control 30/46
Funciones de Entrada $ 3alida
tilice la 'unción disp para escriir mensa6es de salida.disp(NEsta es una prueaO)
tilice 'print' para salidas con 'ormato: 'print'(NEsta es una >.@' da prueaO!@.=)
tilice la 'unción input para solicitar datos de entrada: c; < input(NIngrese edad: O)
Puede solicitar un tipo de dato en espec'ico:
c@ < input(NIngrese edad: O!OsO) > dato ingresado se guardara como string
5tros tipos de entrada implican la interacción con 4entanas dedi&logo:
salon < inputdlg(NEn ,ue salón se encuentra/O)Pruee ,uestdlg()
7/18/2019 Introduccion al Matlab para Control
http://slidepdf.com/reader/full/introduccion-al-matlab-para-control 31/46
Construcción de cur4as @-
La 'acilidad # elegancia en laconstrucción de cur4as planas #
en el espacio es una de lascaractersticas m&s resaltantes
de MATLAB. Para el caso decur4as en un plano! la
instrucción plotW permite
gra'icar un 4ector de puntos `contra un 4ector ! como se
muestra a continuación.
7/18/2019 Introduccion al Matlab para Control
http://slidepdf.com/reader/full/introduccion-al-matlab-para-control 32/46
Construcción de cur4as @-
>E6emplo de uso de instrucción plotW
t < 1:1.1G:;1 >-e'ine tiempo en notación corta t b H1 ;1! * < 1.1Gs
# < 0De"p(Jt$=).Dsin(@Dt) > -e'ine 'unciones a gra'icar
7 < @De"p(Jt$G).Dcos(t)plot (t! #! SoS! t! 7! S"S) > Plot ` con marcador NoO para la cur4a ; #
> N"O para la cur4a @
grid > ailita lneas de grilla
title(SProando los gr&'icosS! SFont3i7eS! @0) > Ttulo de la gr&'ica!
> tamaXo de letra @0"lael(S3egundosS) > Eti,ueta para el e6e `
#lael(SAmplitudS) > Eti,ueta para el e6e
legend(S#<0De"p(Jt$=)Dsin(@Dt)S!S@De"p(Jt$G)Dcos(t)S) > Le#enda
7/18/2019 Introduccion al Matlab para Control
http://slidepdf.com/reader/full/introduccion-al-matlab-para-control 33/46
Construcción de cur4as @-
7/18/2019 Introduccion al Matlab para Control
http://slidepdf.com/reader/full/introduccion-al-matlab-para-control 34/46
Tala de marcas # colores
7/18/2019 Introduccion al Matlab para Control
http://slidepdf.com/reader/full/introduccion-al-matlab-para-control 35/46
En cuatro recuadros di'erentes diu6e las siguientes 'uncionesen el rango ": H1 ;
#; < " #@ < e" J ;
#= < "@ #0 < "
-iu6e las siguientes cur4as superpuestas en el rango ": H1 @
+ < sin (") # < cos (@") 7 < eJ" cos (=")
Realice la gr&'ica de un tri&ngulo # de un trapecio.
Considere detalles de presentación en las gr&'icas.
E6ercicio: %r&'icas TAREA
7/18/2019 Introduccion al Matlab para Control
http://slidepdf.com/reader/full/introduccion-al-matlab-para-control 36/46
"<1: 1.11;: ; #;<"
#@<e"p(")J;
#=<"@
#0<s,rt(")
suplot(@!@!;)
plot ("!#;)
suplot(@!@!@)
plot ("!#@)
suplot(@!@!=)plot ("!#=)
suplot(@!@!0)
plot ("!#0)
7/18/2019 Introduccion al Matlab para Control
http://slidepdf.com/reader/full/introduccion-al-matlab-para-control 37/46
5tros comandos para %ra'icar
ar("!#) > gra'ica de arras*ist(#) >*istogramaloglog("!#) > coordenadas logartmicas
pie(") > gra'ica en secciones (pies) normali7adaspolar(t*e!r*o) > gra'ica en coordenadas polaressemilog"("!#) > coordenadas logartmicas en "semilog#("!#) > coordenadas logartmicas en #
7/18/2019 Introduccion al Matlab para Control
http://slidepdf.com/reader/full/introduccion-al-matlab-para-control 38/46
Construcción de super'icies =-
Para el caso de una super'icie en =-! se presenta elsiguiente código de e6emplo:
H`! < mes*grid(JK:.G:K) > %enera una malla en `
R < s,rt(`.@ .@) eps > -e'ine 'unción R ("! #)!
>eps: el n8mero m&s pe,ueXo
< sin(R).$R > E4al8a 'unción sinc(R)
mes*() > %enera super'icie en =-
Puede usar tamin la 'unción sur'! plot=
7/18/2019 Introduccion al Matlab para Control
http://slidepdf.com/reader/full/introduccion-al-matlab-para-control 39/46
Construcción de super'icies =-
7/18/2019 Introduccion al Matlab para Control
http://slidepdf.com/reader/full/introduccion-al-matlab-para-control 40/46
E6ercicio: Miscel&neo (I)
;. -ados:
3e le pide calcular:
@. -iu6e la campana de %auss para una 4ariale "W con promediou < G. # f < ;.G. Presente el gr&'ico para " < HJ;1 ;1.
=. -iu6e las siguientes cur4as polares:r < ; (circun'erencia)
r < sin (@)
7/18/2019 Introduccion al Matlab para Control
http://slidepdf.com/reader/full/introduccion-al-matlab-para-control 41/46
E6ercicio: Miscel&neo (II)
0. -ado el 4ector "<H; @ = = 0 ? K! explicar la operación yresultado de las siguientes instrucciones:
sum(rem ("!@)<<1) sum("mean(")) #<"(lengt*("):J;:;) (sum(")Jmin("))$(lengt*(")J;) #<sort(")
mean(#(=:;:lengt*(#)))
#<"(;:@:lengt*("))sum((rem("!@)h<1) (rem("!=)<<1))".D(rem("!=)<<1)sum(".D(rem("!=)<<1)) #<"(;:lengt*(")J;)
ma"(")Jmin(")"<linspace(1!G!;11) > de 1 a G #<e"p(=D")Jsin(")".1.=plot("!#)
tili7ar la a#uda (*elp) de MATLAB para in4estigar el
'uncionamiento de instrucciones no conocidas.
7/18/2019 Introduccion al Matlab para Control
http://slidepdf.com/reader/full/introduccion-al-matlab-para-control 42/46
E6ercicio: Miscel&neo (III)
G. -ada la matri7 A<H; @ = @ G ; G @ @! e"plicar la operación #resultado de las siguientes instrucciones:
si7e(A) sum(A) ma"(sum(A)) A(;!@) < 0 A(:!@) < H= 0 =
det(A) ran9(A) B<s,rtm(A) min(ma"(A))
min(ma"(AS))ma"(ma"(A))sum(sum(Ajma"(ma"(A))))C<(Ajma"(ma"(A))) A.DCsum(sum(A.DC))
Hm i<ma"(A)Hm i<ma"(AS)'liplr(A)diag(A)eig(A)
sum(diag('liplr(A))diag(A))B<HA(;!;) A(;!=) A(=!;) A(=!=)B<A B(:!=)<H B(;!:)<H
7/18/2019 Introduccion al Matlab para Control
http://slidepdf.com/reader/full/introduccion-al-matlab-para-control 43/46
E6ercicio: Modelo de diodo
3e cuenta con la siguiente in'ormacióne"perimental de un diodo a temperaturaamiente (@GkC).
3e pide determinar: Volta6e trmico VtCorriente de saturación
Vd cuando I < ; A
3ugerencia: Lineali7ar la ecuación # utili7ar la'unción pol#'itW.
7/18/2019 Introduccion al Matlab para Control
http://slidepdf.com/reader/full/introduccion-al-matlab-para-control 44/46
E6ercicio: %ra'ica 'unción (I)
;. Implementar la siguiente 'unción # gra'icar:
7/18/2019 Introduccion al Matlab para Control
http://slidepdf.com/reader/full/introduccion-al-matlab-para-control 45/46
E6ercicio: %ra'ica 'unción (I)
@. %ra'i,ue dos perodos de la siguiente 'unción:
7/18/2019 Introduccion al Matlab para Control
http://slidepdf.com/reader/full/introduccion-al-matlab-para-control 46/46
E6ercicio: %ra'ica 'unción (II)
=. %ra'i,ue la siguiente ecuación en =-.7("!#) < (;$(s,rt("@#@)1.@))Dcos(GDs,rt("@#@)))