Introduccin
PRACTICAS DE AUTOMATICA
Area de Ingeniera de Sistemas y Automtica
Introduccin
1.3
el entorno de matlab
toolboxes ms usadas
Simulink
Programa dedicado a la simulacin de sistemas dinmicos.
Tiene los mismos requerimientos que Matlab 4.0
Control System Toolbox
Signal Processing Toolbox
Optimization Toolbox
-Analysis and Syntesis Toolbox
Robust Control Toolbox
Spline Toolbox
Chemometrics Toolbox
System ldentification Toolbox
State-Space identification Toolbox
Fuzzy Control Toolbox
inicindose en matlab
demo
save
load
quit
exit
( 1. 1)
Sus variables sern guardadas en el directorio indicado, aadiendo el programa la extensin . mat. O bien puede Ud. aadir tras el nombre del archivo el nombre, o nombres, separados por un espacio, o comas, las variables que desee guardar.
Con anloga sintaxis, utilizando load, podr Ud cargar el archivo.
Para salir de Matlab utilice quito exit.
1.4
Introduccin
ele
elg
Para cerrar la ventana de edicin utilice ele, si desea abrir la ventana grfica, shg, cerrarla,
clg . Con casesen conmuta la sensitividad
Para Matlab nO'l!er lo mismofa variable, a, que, A
casesen on
A y a sern la nsma variable
casesen off
shg
Si desea Ud. saber qu variables tiene definidas, teclee simplemente who
casesen
who
Your variables are:
d1
n1 - w
ans
who
whos.
(1.2)
Size
2 by 1
1 by3
1 by3
1 by3
1 by3
1 by 1
1 by 191
Elements
2
3
3
3
3
1
191
Bytes
Density Complex
No
Full
No
Full
Full
No
No
Full
Full
No
Full
No
8
1528
Full
No
16
24
24
24
24
(1 .3)
el uso de la ayuda de matlab Es posible obtener ayuda para cada funcin de Matlab o de cualquier
toolbox escribiendo el nombre de la funcin tras la palabra help
En el Matlab profesional podemos adems pedir ayuda sobre cada una de las veinte
categoras en que clasifica sus funciones
Nombre
color
CATEGORIAS
Control de brillo y color
datafun
demos
Demostraciones y ejemplos
elfun
elmat
funfun
general
graphics
iofun
Funciones de entrada/salida
lang
Depuracin y lenguaje
matfun
ops
plotxy
Grficos bidimensionales
plotxyz
Grficos tridimensionales
polyfun
sparfun
specfun
specmat
Matrices especiales
sounds
Procesado de sonido
strfun
1.5
Introduccin
movindose en la ventana
de edicin
lnea previa
lnea sguiente
un carcter a izqda.
un carcter a dcha.
una palabra a izqda.
una palabra a dcha.
- al inicio de lnea
El uso reiterado de lit] nos coloca sucesivamente, en la linea de edicin actual, las lneas
ya ejecutadas. Utilizando entonces ~ podemos volver hacia atrs en la presentacin.
indeterminaciones
tolerancia
computacin.
el infinito positivo
datos y operaciones
Introduccin
1.6
borrado de variables
clear
clear A
(1.4)
R.econ,endamo,, no j ugar con eota funcin, Puede oc...,;oriar di!>qU"~ ;; no" dediczmo,> a eno,lyarla . :
,;.-.... , .._... _
..;.,;l'i.;.;.;.._,,_.-J<N.
!"'"" an~
._,...-.,....,.,7,.. -c .r...--.;.,.,--
expresiones largas
argumento"
de "alida
funcin
argumento!>
de entrada
[mag,phase,w]=bode(a,b,c,d,iu)
Los argumentos de salida irn nonnalmente entre corchetes y separados por comas, sern
vectores o matrices.
Los argumentos de entrada irn entre parntesis inmediatamente despus del nombre de la
funcin. Cuando prescindimos en determinadas funciones de los argumentos de salida la
funcin tendr un cometido distinto, an con los mismos argumentos de entrada. Como ya
hemos visto, existen funciones que carecen de argumentos. En el ejemplo propuesto, si
prescindimos de los tres argumentos de salida, en vez de proporcionarnos los valores de
los vectores de magnitud, fase y frecuencia, la funcin bode dibujar los correspondientes
diagramas.
Cuando, en la construccin de una nueva funcin, queramos detectar el nmero de
argumentos de entrada o de salida que ha introducido el usuario podemos utilizar las
funciones, nargin (nmero de argumentos de entrada) o nargout (nmero de argumentos de
salida). Se emplean sin argumento alguno de entrada
nargin
nargoat
if nargin>2
w11 =rsen(' ,w1 ,'t'];
if w1=='1'
w11 =rsen(','t'];
(1 .5)
end
end
Tenga en cuenta que Matlab no le aceptar nunca una funcin cuyas variables no estn
previamente definidas
funcin
cial
1t,
funcin exponen- La funcin pi es una variable, a emplear como cualquier otra que
representa el valor numrico de 1t
a=3+pi
a=
6.1416
(1 .6)
2. 718.1
operaciones aritmticas
(1 .7)
Pueden construirse, con la jerarqua usual, expresiones con los operadores aritmticos
suma
resta
Introduccin
1.7
multiplicacin
/\
potenciacin
)) 2+2A4/2 +1
ans =
11
a=5e2
a=
c=5E-1
e=
O.&XD
b=Se-2
b=
500
format
(1 .8)
O.Cl:00
(1 .9)
format long
m
m=
0 .66666666666667
A=
+-
format long e
m
m=
0 .6667
+-+
))
6.6666666666666661
6.6667e-001
El format + nos proporciona una matriz de signos+,- o espacios vacos, en los sitios en que
una matriz tiene elementos positivos, negativos o ceros respectivamente.
La instruccin format compact suprime el interlineado en blanco que separa, por arriba y
abajo, la definicin de una matriz que nos devuelve el programa
A=[1 2 3;45 6;7 8 9)
A=
1
4
7
2 3
5 {6
8 9
>A
A=
1
6
9
(1.10)
))
format compact
funciones trigonomtricas
sin
asin
cos
sin
asin
acos
cos
acos
tan
atan
tan
atan
sinh
asinh
atan2*
sinh
asinh
cosh acosh
cosh
acosh
tanh
tanh
atanh
ataoh
H. .Arcos l
en radianes.
;li!_______
__,.,.-=ciI!
ans=
O
1.CXXX)
-1 .CXXX> 0 .CXXX)
Introduccin
1.8
La funcin atan2 nos permite hallar el arco en cualquiera de los cuatro cuadrantes, expresando la ordenada y abscisa en los argumentos de entrada, Y,X, respectivamente.
atan2
Y
Y=
1
1
-1
-1
Z=(180/pi)*atan2(Y,X)
Z=
45
135
-135
-45
X
X=
1
-1
-1
1
2=(180/pi)*atan(Y./X)
Z=
45
-45
45
-45
( 1.12)
funciones matemticas
elementales
X
r22=roots([1 O -ji)
r22=
-0.7071 - O.7071 i
O.7071 + O.7071 i
r2=sqrt0)
r2 =
O.7071 + O. 7071 i
sqrt
r3=jA( 1/3)
r3 =
0.8600 + 0.5CXX)i
r33=roots([1 O O -ji)
r33=
O.CXXXl - 1.OOOOi
-0.8600 + 0.5CXX)i
0.8600 + 0.5CXX)i
r44=roots([1 OOO-ji)
r4=jA(1 /4)
r4=
0.9239 + 0.3827i
(1 .13)
r44=
0.3827 - 0.9239i
-0.9239 - 0.3827i
0.9239 + 0.3827i
-0.3827 + 0.9239i
- --
1.1
:/4
t ran,,criba a e"te marco toda" la " in,,truccione" e~rita" por Ud. en la lnea de edicin
y la " corre,,pondiente" "lucione"
1.2
Introduccin
1.9
~ Utilizando el comps slo como instrumento de medida dibuje Ud los
afijos de las races r22, r33, r44 del ejemplo (1.13), uniendo con segmentos en orden cclico las n-pls de r22, r33, r44, en la circunferencia, de
radio unidad, del marco.
1.3
AA'=
Im
OA'=
88'=
t
!
08'=
0,5
Re
A'
B'
1/2
./3
2
~
2
w
2
C'
1
CC'= fi
OC'=
sqrtm
Cuando queramos hallar la raz cuadrada, no de los elementos de una matriz, sino de una
matriz, esto es: hallar la matriz rA tal que rA x rA = A, usaremos sqrtm
A=[1 2; -1 O);
rA=sqrtm(A)
rA =
1.2339 + O.CXXXli 1.0222 - O.CXXXli
-0.5111 + O.CXXXli 0.7228 + O.CXXXli
real
imag
real(jA( 113))
0.8600
(1 .14)
imagOA(113))
ans=
(1 .15)
O.SCXD
round(3.5)
ans =
4
round(3.2)
ans=
3
fix_
AA=rA*rA
AA=
1.CXXD + O.CXXXli 2.CXXD + O.CXXXli
-1 .CXXD + O.CXXXli o.cxm + O.CXXXli
Las funcines, real e imag, hallan respectivamente la parte real o imaginaria de una expresin compleja
ans=
round
fi
round(-3.2)
ans =
-3
round(-3.5)
ana=
-4
( 1.16)
La funcin fix convierte un nmero con decimales en el entero ms prximo caminando hacia cero
fDC(3.5)
ans=
3
fix(3.2)
ans=
IX(-3.7)
ans=
-3
fDC('3.8)
ans=
3
(1 .17)
Introduccin
floor
1.10
Convierte un nmero con decimales en el entero ms prximo caminando hacia -oo
floor(3.7)
ans =
floor(-3.8)
ans =
ceil
-4
(1 .18)
ceil(-0.2)
ans =
ceil(-3.2)
ans=
-3
sign
floor(-0.2)
ans=
-1
(1.19)
En la expresin B=sign(A) la funcin sign tiene por argumento de salida, B, una matriz,
equidimensional a la matriz de entrada, A. Los elementos de B sern
Si se trata de nmeros reales
<=>
<=>
<=>
bv= l
bv=O
bv=-1
v>O
av=O
ay<O
+ sen(La;;)
-1.cxm
1.cxm
(1.20)
-1.cxm
rem
En la expresin c=rem(a,b)
a
e if es el resto de b lJ. , que queda tras obtener en el cociente la ltima cifra entera
lJ
a=[6.5;7;3;-7.4];
b=[2;2;3;3];
c=rem(a,b)
e=
O.SOCO
(1 .21)
1 (XXX)
o
-1.4COO
logtO
lookfor
O+ 1.3644i
0+0.6822i
(1 .22)
El programa profesional utiliza la funcin lookfor seguida de una cadena de caracteres para buscar y mostrar todas las lneas de la ayuda
que la contienen.
lookfor nichols
DFRQINT2 Discrete auto-ranging algorithm for Nyquist and Nichols plots.
DNICHOLS Nichols frequency response for discrete-time linear systems.
FREQINT2 Auto-ranging algorithm for Nyquist and Nichols frequency
NGRID
NGRID generates grid lines for a Nichols chart. The chart relates
(1.23)
Introduccin
1.11
... Introduzca, una a una, las siguientes expresiones de Matlab, sin colocar tras ellas el';' y escriba su resultado
expresin
'\
1.4
.,
resultado
1/0
010
2+nan
AA.Js fJ,._rJ
nan/nan
Atv5
inf/inf
JNS
i nf"( -i nf)
O*inf
SY ,fn.o
Ar,n.J,;F
AtvS
loY r;E'QO
= AI....JJ
expres,on
resultado
inf+inf
tJS = /AJF
1/inf
/J>JS ::.
inf/0
~tJ.._,J
rf
Alo...tJ
nan/inf
1,rvs"
inf*inf
/JtvSc:/>JF
2*inf
A NS-:::.
ANs::. /IJ,,...rJ
exp(-inf)
,-0NS:::. f
sM,.rJ
/NF
Ji-x
1.5
_ _ _ _ _ .,~,;1,.,, la definicin
2. NUMEROS COMPLEJOS
efTC
PRACTICAS DE AUTOMATICA
Area de Ingeniera de Sistemas y Automtica
+ 1 =
Nmeros complejos
2.3
Los nmeros complejos han tenido su origen en la necesidad de dar sentido o solucin a:
-2rr
- 51
log 10 (-2)
x" = 1
El grupo aditivo de los nmeros complejos es isomorfo ~~lBn!P aditivo de los vea:ores
del plano
J='f
Re{z}=3
{ Im{z} =4
z=(3;4j
e
Q
i=J=
FT
El eje imaginario contiene todos los nmeros puramente imaginarios de la forma (O; b).
Potencias de j
-2
-t
-1
-j
,.,,
-1
-j
definicin de j como unidad Matlab denomina con la letra, i, la unidad imaginaria, si queremos
imaginaria en matlab
que reconozca tambin como unidad imaginaria la letra,}, basta con
definir
potencias y races de j
j=i;
(2.1)
jA4
ans =
1.CXXXJ - O.OOOOi
(2.2)
Si quisiramos hallar todas las races n-simas de J debemos construir el polinomio del
que ellas son solucin y utilizar la funcin roots.
iJ ha de ser la solucin del polinomio
x"-j=O
=O)
(2.3)
p1=[1 OOOj];
r=roots(p1)
r=
-0.3827 - 0.9239i
0.9239 - 0.38271
-0.9239 + 0.38271
0.3827 + 0.9239i
r=roots([1 O O Oj])
r=
-0.3827 - 0.9239i
0.9239 - 0.38271
-0.9239 + 0.38271
0.3827 + 0.9239i
... Deduzca una regla para definir el vector fila que describe un polinomio
~n Matlab y escribala en este marco
2.1
... Comparando los dos modos de hallar las races en 2.3, Qu conclusin puede deducirse de la expresin de un vector o una matriz cuando figura como argumento de una funcin de Matlab?
'
~ ~MJ<J>JW!o"
~""""-U.V"
..u~,v..u~ ~ ~ - -
Prctica 2
2.4
Esta sera la disposicin de los afijos de las races halladas en el plano complejo
-1
-0.5
0.5
1.5
- 'T
1
l":{1 0000 -j ];
/vo,:n s( I" )
o.S -::
-O'<l~~1 +
0 '1 o<10 (,
o'q 5~ l
-t-
30
o
1
o.
1' ooooL
:_
-O'~ : -
1'
notacin binmica
<P
'
2.3
o'~ :... -
r-:
~o')
1~ ,_
,1
,9'~
wiidad
imaginaria
(O; 1)
j
elemento
neutro
elemento
inverso
elemento
neutro
l+jO
_l_
a+j b
O+jO
-a-jb
elemento
inverso
Para sumar nmeros complejos con Matlab no hace falta introducir parntesis, pero s introducir el signo de multiplicacin , *, entre i y la parte imaginaria
N.B: Cuando el resultado de wta operacin no se ha prenominado, el programa pondr el resultado precedido de ans.
3+j*4+2+j*3
ans =
5.CXXXJ + 7.CXXXJ
z=3+j*4+2+j*3
z=
5.CXXXJ + 7.CXXXJi
(2.4)
Para multiplicar, en cambio, es imprescindible el uso de parntesis, cuando se utiliza la notacin binmica
z=(3+j*4)*(2+j*3)
z=
-6.CXXX) + 17.CXXXJi
(2.5)
(2.6)
Nmeros complejos
2.5
Para restar es necesario colocar el sustraendo entre parntesis o usar el inverso respecto a la
suma y prescindir de ellos.
mdulo de un nmero
complejo
z=3+j*4-(3-j*4)
z=
z=3+j*4-3+j*4
z=
O+ 8.CXXXli
O+ 8.0000i
(2.7)
lzl=la+Jbl= Ja 2 +b 2
Representa la longitud del vector isomorfo o la distancia al origen de su afijo.
propiedades del mdulo
lzl ~o
izl =O
{ ::~
lz wl = lzl lwl
lz+wl::. lzl + lwl
abs
Desigualdad triangular
La funcin abs seguida del par de parntesis, ( ), que encierra el nmero complejo, como
argumento de la funcin, nos proporciona el valor del mdulo
(2.8)
m=abs(3+j*4)
m=
argumento de un nmero
complejo
Definimos el argumento de wt nmero complejo corno el ngulo que forma el vector, que
tiene su cola en el origen y su pwtta en el correspondiente afijo, con el semieje positivo
real.
l Tm
Tm
lm
z-(3;4i
Re
. .... .
Z=/3;4)
Re
Corno vemos, a wt mismo nmero complejo podemos asigarle infinitos argumentos, q>
De este conjwtto infmito llamarnos argumento principal al ngulo, q>, tal que
-lt$q> $ lt
angle=-
La funcin angle nos proporciona el argumento principal de un nmero complejo en radianes, y tiene sintaxis anloga a la funcin abs
phi=angle(3+j*4)
(2.9)
phi=
0.9273
conjugado de un nmero
complejo
conj
Un nmero complejo, z' es conjugado de otro complejo, z, si sus partes imaginarias tienen
sigos contrarios. Sus afijos sern simtricos respecto al eje real y sus argumentos principales tendrn sigos contrarios. La relacin es recproca .
Las races complejas de wt polinomio, de existir, aparean en forma de pares de nmeros
complejos conjugados.
(2.10)
La relacin de conjugacin origina wt autornorfisrno en el cueipo de los nmeros complejos, de modo que, si en una =
cuencia de operaciones sustituirnos los complejos utilizados por sus conjugados, el resultado ser el conjugado del resultado previo.
notacin modular
r2.Lq>2
= r1 r2Lq> 1 +q>2
2.6
Prctica 2
Divisin
Se dividat mdulos y se restan los argumaitos
r,Lq>,
r1
- - : -Le,,
-q,2
rz.Lq> 2 r2
Potenciacin
Se eleva el mdulo al exponaite y el argumaito se multiplica por el exponente.
( rLe, )" : r" Lnq,
Radicacion
(rLq,) A=r J L~+2!"
.plar
,.
r=abs(3+j
*4);
phi=angle
(3+j"4);
que reproduce un dibujo del afijo del punto con la retcula de las representaciones polares.
Notacin en forma modular de algunos nmeros notables
J= 14
-J= lL-~
l = lLO
-1 = lLrt
O=OLO
,,.,_,
imag(s)
ans=
4
(2.12)
(2.13)
Nmeros complejos
2.7
A continuacin escriba el pequeo programa
Por ltimo gurdelo en un directorio de Matlab, ponindole.la extensin
.m
a=5-j*4;
[m,n)=bi2mo(a)
(2.14)
m=
6.4031
n=
-38.6598
notacin trigonomtrica
a+Jb=rcosq, +frsenq,
y sacamos faor comn, queda expresado en fonna trigonomtrica
r( cos q>
+f sen q>)
=>
FITl'llla de De Moiwe
notacin exponencial
Por definicin
el sil!Jlifica cos q, + f sen q,
e-J sil!Jlifica cos q> - j sen q>
Luego partiendo de la expresin trigonomtrica podemos esaibir el nmero, r ( cos q, + j sen q,) ,
rLq> =r~
Esta expresin de un nmero complejo es til en potenciacin, radicacin y en el uso de logaritmos.
La deduccin de las frmulas de Euler es inmediata
~+e-fa>
cosq> =--2el= cosq>+jsenq> }
e#-e~
e-J = cosq> -f sen q>
=> sen<>=~
Si el ngulo q, = JI!/
, tenemos
~+e-i
e-+e"'
e+e-
cosq, =--2-=--2-=--2-=coshw
~-e-fa,
. e--e . e-e- .
sen<> = ~ = - 1 - - -=1 - - = J senhl!/
2
2
(2.15)
-2.0XX) + o.cxm
logaritmo neperiano de un
nmero complejo
e,
y=lnx ~ eT=e11u=x
Partimos de notacin exponencial
In ( ~ ) = In r + In e j q> .. 1n r + j q> logaritmo principal
Para hallar el logaritmo natural de un nmero complejo Matlab usa la funcin log
m=log(-1) '
m=
0+3.1416i
2.4
(2.16)
Prctica 2
2.8
Por defmicin de logaritmo
~ (-j) 1"-,j=j
tomando logaritmos neperianos de ambos trminos de la igualdad
log_jj
eliminacin de denominador
complejo
In
1
log_j j= - -
In(-;)
j(( +2kTt)
=-1
para k= O
j -} +2kTt)
Con frecuencia va a ser necesario hallar parte real y parte compleja de una expresin
racional.
Basta para ello multiplicar el numerador y denominador por el conjugado del denon-
nador.
1 !(-;) -j
.
-=--=-=-J
j
j. {-j)
1
_!_=
a+jb
l(a-jb)
_ a-jb _ _a_ _ ._b_
(a+jb)(a-jb) - a 2 +b 2 - a 2 +b 2 1 a2+bz
z"
}
z=elnz
z"=ewlnz
.... Calcular i
2.5
.u.x,(i~ ~UJ )
,vs - 0
,,07 '1
---~~----_,,
.......,....----~.......,..,.-,___,----~.......
_..
.(: 1)" j
2.6
.....~~-
ANS~
0 1 0 CJ:,l
Todo nmero complejo tienen races n-simas distintas cuyos afijos unidos por segmentos
en orden cclico determinan un polgono regular de n lados, centrado en el origen y radio
ffzf
No confandir las races de un polinomio, que pueden ser mltiples, con las races de
un nmero complejo. La regla anterior slo es compartida por los polinomios de grado n que slo contienen el trminoxn
pp==ccp(re,im)
pp=ccp(3.4)
pp =
3.CXXXJ + 4.CXXXJi
3.CXXXJ 4.CXXXJi
(5.17)
Nmeros complejos
2.9
... Escriba los nmeros complejos de la primera columna con la expresin
correspondiente
2.7
a+jb
(a, b)
1-tj~
(l; 1)
(j 1)
1 +j
(o, --Z)
- j'
rLcp
1L1JG
.e J f};z
Jj_~
-f e j~
7._~
z. eii:Vt
-f2sen30
-2}
l-j
(1 , -1)
3 cos61t
1 +j2sen60
3-}4
(~,- 4)
5e'36,87"
H ,-1)
-j
3. CALCULO MATRICIAL
8 1 6
3 5 7
4 9 2
PRACTICAS DE AUTOMATICA
Area de Ingeniera de Si5tema5 y Autom"tica
..
-, ........ -'""'.
3.3
Clculo matricial
Las operaciones con matrices son fundamentales en Matlab. Definamos la matriz, M, cuyos elementos son los nmeros de su cdigo
personal
4
7
definicin de un vector
A=[1 23
456
789]
A=
1 2 3
A=[123;456;789]
A=
1 2 3
A=(1,2,3;4,5,6;7,8,9]
A=
1 2 3
5
8
6
9
(3.1)
a=(1,2,3]
a=
1 2 3
a=(1 23]
a=
1 2 3
b=[1;2;3]
b=(1
b=
3]
(3.2)
2
3
b=
1
2
3
La expresin
x=l:2 : 9
crea una progresin aritmtica de primer trmino, 1 ; de razn, 2 y de
cota superior, 9. Si la cota superior no pertenece a la progresin, no formar parte del
vector
1t x=2:2:8
x=
2 4
x=2:2:9
x=
(3.3)
6
Cuando la razn es la unidad, se omite. Basta, entonces, colocar el signo, :, entre el trmino superior e inferior de la progresin
x=1:9
x=
(3.4)
(3.5)
O -0.axx> -1.CXXXl
Se pueden generar vectores den elementos, intercalando, entre los extremos p y u, n-2 elementos equidistantes o logaritmicamente distribuidos mediante las funciones linspace y
Prctica 3
3.4
linspace(exp(1 ),pi,4)
logspace(3,0.4)
~=
~=
2.7183
2.8594
3.CXXl5
3.1416
100)
100
(3.6)
10
Observe que los argumentos de logspace son los logaritmos de los extremos y el nmero de
puntos.
(3.7)
(3.8)
extraccin de submatrices
1=[1 1 O);
B1=B(I,:)
81 =
1 2 3
5 6 7
l=[O 1 O 1];
B2=B(:,I)
B2=
2 4
6 8
10 12
4
8
(3.9)
El signo, :, tiene el significado de 'todas las columnas' en el primer caso y de 'todas las filas' en el segundo.
extraccin de submatrices En este caso el rol del vector compuesto por unos o ceros lo asume
foi:-madas por filas y colum- una progresin aritmtica de razn, 1, creada con los dos puntos.
nas consecutivas
C=[1234;5678;9101112;13141516]
C=
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16
C1 =C(2:4, 1:3)
C1
5 6 7
9 10 11
13 14 15
(3.10)
sustituir determinadas coDeseamos sustituir todos los elementos de las filas, 2 y 3, de A por
lumnas o filas de una matriz las columnas, l y 4 de B
N. B: Hemos utilizado el operador de transposicin,', signo que comparte tecla con ?, a fin
por determinadas filas o co- de asegurar la equidimmsionalidad di los dos trminos de la igualdad.
lumnas de otra
B
A
A=
1
B=
1
10
11
12
(3.11)
Clculo matricial
3.5
redimensionado de una
matriz
(3.12)
4
7
2
5
8
3
6
9
reshape
X, matriz a redimensionar
m, nmero de filas de la nueva matriz, C
n, nmero de columnas de la matriz C
X=[123456;789101112)
X=
1 2 3 4 5 6
7 8 9 10 11 12
C=reshape(X,3.4)
matriz vaca
C=
1 8 4 11
7 3 10 6
2 9 5 12
C=reshape(X,4,3)
C=
1
7
2
8
3 5
9 11
4 6
10 12
(3.13)
eliminacin de elementos de
Otro uso de [] es la eliminacin de determinados elementos de una
una matriz
matriz. A=[1 2 3;4 5 6;7 8 9)
A=
1
A(2, :)=D
A=
1 2 3
transpuesta y transconjuga- Para matrices con elementos reales basta con aadir como suprandice la comilla.
da
A=
At=A'
1
4
7
2
5
8
3
6
9
At=
1
2
3
5
6
8
9
(3.14)
Cuando hay elementos complejos, la misma sintaxis genera la transconjugada, A1: sus elementos son los conjugados de la matriz transpuesta
A=
2.0000
3.0000
O - 1.OXXJi
4.0000 + 5.CXXXJi
))
Atc=A'
Ate
2.0000
3.0000
O + 1.OOOOi 4.0000 - 5.0000i
(3.15)
Recuerde que
Si queremos simplemente transponer una matriz con elementos complejos, hemos de anteponer el punto a la comilla, procedimiento propio de las operaciones 'uno a uno' .
At=A.'
At=
2.0000
0-1.0XXJi
(3.16)
3.0000
4.0000 + 5.0000i
Prctica 3
3.6
suma y resta
C=A+B
D=A-B
Tanto la suma como la resta de matrices son operaciones 'uno a uno', por definicin, y tienen la propiedad asociativa .
_______
N=l*M
_____
,.
3.1
multiplicacin de elementos
Su sintaxis:
uno a uno
C=A.*B
3.2
..,,- _. . ....,
. _.....,,_ _ _ _ _ _ _ _ _ _ _ ,_ _ ;.4
multiplicacin de matrices
Definimos el produdo
mxq mxn
lililW
nxq
x B
C=A
k;=n
Cij
= l=l
1: a;tbk:J
La multiplicacin entre matrices es asociativa, pero, en general, no es oonmutativa, de ah que hablemos de premultiplicar y postmultiplicar.
Sintaxis
C=A*B
... HalleD=MxN
3.3
Clculo matricial
3.7
Matriz cero, denotada por O
Es aquella wyos elemartos son todos cero.
matrices especiales
Matriz diagonal
Es la matriz wadrada en la que todos los elementos son cero menos los de su diagonal principal, descendente.
Matriz unidad, denotada por I
Es una matriz diagonal, en la que todos los elementos de la diagonal son unos.
IA=Al=A
Matriz triangular superior. HELP tri u
Matriz triangular inferior. HELP tri)
Aquellas cuyos elementos, respectivamente, por debajo o por encima de la diagonal principal, son cero.
La suma y el producto de dos matrices triangulares del mismo gnero es una matriz triangular con ellas homognea.
Matriz transconjugada
Es la conjugada de la traspuesta.
Matriz simtrica
una matriz es simtrica si A=AT
Matriz hennitlana
Una matriz es hermitiana si A=N. Esto es: Si ella es igual a su transconjugada.
.A=
2.CXXXl
O + 1.CXXXli
O 1.CXXX>i
4.CXXX>
Atc=A'
Ate =
2.CXXXl
O+ 1.CXXXli
O - 1.CXXXli
4.CXXXl
Matriz ortoeonal
Aquella que verifica A'=AT
Matriz singular
Matriz wadrada cuyo determinante es cero
i1e1igffiJm11
[m,n]=size(A)
d=size(A)
m=size(A, 1)
n=size(A,2)
columna
U=ones(m,n)
U=ones( size(A))
l=eye(n)
Crea matriz wadrada cuyos elementos son todos ceros menos los elementos de su diagonal que son unos.
Matriz unidad o matriz identidad
Y=eye(m,n)
Crea una matriz m x n, cuyos elementos son todos ceros menos los situados en una recta oblcua, que
comenzando en u 11 , desciende con
pendiente de -45
Y=eye(size(A))
matrices de ceros
La funcin zeros, con la misma sintaxis que ones, crea matrices cuyos elementos son todos cero
Prctica 3
3.8
Los conjW1tos de nmeros aleatorios suelen usarse en problemas de simulacin y en la generacin de ruidos. En otra prctica los estudiaremos con detalle.
rand
Y=rand(m,n)
Y=rand( size(A))
det
rank
k=rank(A)
k=rank(A,h)
matriz inversa
...
&
detA
-1
=[
inv
~~
_6!_]
detA
!~
.
:::
donde los subndices de los adjW1tos se corresponden con los de la matriz traspuesta. Recuerde que adjW1to es el menor
complementario multiplicado por el cofactor, (-IiJ . donde i,j son los subndices del elemento cuyo menor complementario se considera
Propiedades de matriz inversa
10.Ar 1 -lA- 1
detA- 1 = - A
det A
Si A es una matriz no singular, los signos \ y / equivalen respectivamente a pre o postmultiplicar por la inversa
A=
1
2
2
1
3
4
O
B=
1
O
O
1
O
1
B*[inv(A))
ans =
[inv(A))*B
ans =
5
4
2
A*A
ans =
7 17
18
8
9
3
(3.17)
8/A
ans =
A\B
ans =
5
4
N, equivale
(3.18)
7 17
18
8
9
3
Clculo matricial
3.9
C=A. *B
./
z=x. "2
de
x al
Jx m2
~m
z=(xy]
z=
1 2
(3.19)
3
min
max
ordenar los elementos de
una matriz
y=min(x)
y=min(A)
y=min(min(A))
[y,n]=min(A)
y=min([A,B])
3.10
Prctica 3
y=sort(x)
Y=sort(A)
[Y, l]=sort(A)
y=find(x)
firict --~
-- -
x=[3 O 7 4 O 2);
(3.20)
y=find(x)
y=
1
y=find(A)
A=[30 7;09 2)
y=find(A)
y=
A=
3 O 7
O 9 2
(3.21)
5
6
El vector fila, i, contiaie los subndices correspondiaites a las filas que contiaien los elemattos que no son ceros
El vector colunma, j, contiaie los subndices de las columnas que contiaiai
elemattos que no son ceros
[i,j]=find(x)
[i,j]=find(A)
x=
[i,j]=find(A)
i=
1
p,j]=find(x)
i=
1
2
1
j=
j=
1
2
3
3
1
3
4
6
A=
2
Aade al caso anterior el vector, s, que contiaie los valores de los elemaitos que no son ceros del vector, x, o la matriz , A
[i,j, s ]=find(x)
[i,j,s]=find(A)
x=
7 4
p,j,s)=find(x)
i=
1
(3.22)
j=
s=
1
4
2
3.4
(3.23)
Clculo matricial
3.11
r;:=:::;:::~~~~:~:-hioc~~=:::eie~::;;:ejemploo;:;:::v::~::-~:~:
hiwr
q~..)a de, i;j,
j
=
que hemoo.redefinido
unidl!ld im,sgina 1
vio "tudando.
EHo
debe "
,,.,iuqiti
"te ejercfcio; :5.4, "incorrectll.
..., v"(;!lbteo;
cuyu primitivo ~gnificado c:ni ,.
~rvado
f ria. De-fina-
de,, nuc,vo
i=sqrt(,-1 );
j=i;
dar-el r=ltado
correcto
l
j
..~......_ . _ __ _
.... _ . . -
4
6
operadores relacionales y
matrices
O 2
5 3
(3.24)
Matlab, cuando usa los operadores relacionales con matrices, entiende que son operaciones 'uno a uno'.
<
menor que
<=
>
mayor
>=
--
idntico a
-=
no igual
(3.25)
1, -,
ami, y
&
or, o
not, no
rot90(A)
rot90(A,k)
A=
1
2
o o
3
o o
A1=roS)(A)
A1 =
o 4 5
o
o
ALT+ol26
8=[A (9;8;7])
8=
1 o o 9
2 3 4 8
o o
81 =roS)(8)
81 =
9 8 7
o 4 5
o
o
(3.26)
Prctica 3
3.12
Gira 180 en el espacio entorno a su linea central vertical
fliplr(A)
A=
1
2
o o
flipud(A)
fpud
A2=fliplr(A)
A2=
o o 1
4 3 2
5 o o
o o
4
5
(3.27)
A=
1
2
A3=flipud(A)
A3=
o o 5
2 3 4
1 o o
o o
3 4
o o 5
(3.28)
!si-Al =0
autovalores y autovectores
N B .: En el espacio de estados. cuando A es la matriz de evolucin, sus autovalores son los polos del sistema
[p1I-A]x1 =0
[p2I-A]x2 =0
[pnl-A]Xn =0
txl
nxt
donde p, , (escalar), son los autovalores, polos, y los vectores columnas, X; , son los autovectores buscados.
De entre los infinitas n-plas de valores posibles Matlab nos proporcionar aquella n-pla de
vectores cuyas normas sean la unidad, valores normalizados de los autovectores.
Con la funcin, eig, calculamos en un solo paso los autovalores y autovectores, usando la
matriz A, como argumento de la funcin
[Vec, Po]=eig(A)
A=
o 1 o
o o 1
o -2 -3
(Vec,Po)=eig(A)
Vec=
1.0000 -0.5774 0.2182
o 0.5774 -0.4364
o -0.5774 0.8729
Po=
o o o
o -1 o
o o -2
(3.29)
3.5
Clculo matricial
3.13
[ f,c] =SI U
3.6
( MJ
f= 3
3.7
M2 =H'"'2-
: /1. Al
M1
l: ,:]
[~ ' 0]
f
pj
rp 16
y1
<P
q
2 vj
'yj
=J;wb (t1jL fo 8
creacin y extraccin de
diagonales
f-11 70
B=diag( a)
diag
(3.30)
B=diag(a)
a=(1 23);
B=
O 2 O
O O 3
Construye wia matriz cuadrada cuya diagonal es el vector
a, siendo los dems elementos ceros
a=diag(B)
a=
a=diag(B)
(3.31)
2
3
Extrae supradiagonales si k>O o infradiagooales si k<O
c=diag(C,k)
C=
c=diag(C)
e=
10
11
12
1
6
11
c1=diag(C,1)
c1 =
2
7
12
c1=diag(C,-1)
c1
5
10
(3.32)
Prctica 3
3.14
C=
D=
O 1 O
O O 2
O O O
3.8
O O O
1 O O
O 2 O
e =diag(<-/1)
D =diag( c, -.i)
3.9
'
A=
o o
O 4
4 5
5
4 O
O 6
7 O
6
7
o
o
4
3
5
4
3
6
7
6
7
o o
o o
o
4
3
o
6
7
o o
4
3
6
7
SI
NO
2 Reproduzca lo que Ud escribira en la ventana de edicin para pasar de la imagen A a la B, si se tratara de una representacin del mismo objeto
.,
~
=~ ~ ~~ ~=-......--:wu---ff~Q
-~--=---- ~,._._~
Clculo matricial
3.15
Defina la matriz
123451
A[
3.11
6 7 8 9 lO
ll 12 13 14 15
16 17 18 19 20
Sobre ella realice cada una de las operaciones que en el marco se indican .
., En el marco haga la descripcin ms breve posible de lo realizado
porcada instruccin
A(1, :)
C]PJ.,_n
12,., ~
}-L.
~ Q...., ~ ,4
A(2,:)
~ ~ .,.t'4...e~~~~
~-<)
A(:, 1)
~ k ~~aQ~
A(:,5)
~L~
A(1, 1:2:5)
~'-<>-
~L.~
~Ll
.J:.. .
A([2 4), :)
A([4 2), :)
.e...-- o-t.&
A(4:-1 :1,5:-1 :1)
!.
.Q,.,,f-4-,-Z.Jy~.
:W~
A./os o i; vu-61..116
(j, Y) (j,5)
~,Y) u,s)
(?, -s) ("i, '-Y
(j.,5) (e ,'!)
LoS
O:t) \1,iJ
CJ ;1 )
~1.c..~~~~:J~
Q,_, ,.,~.,i:
(:i,5) (3,l0
(?.,5) (?, li)
u;iJ
ISl CrtS,vfO>
i
1
i ;
4. POLINOMIOS
ANTITRANSFORMADAS
'
............
Polinomios. Antitransformadas
4.3
Basta construir un vector fila de dimensin, 1 x (n + 1) , cuyos elementos son los n+ 1 coeficientes, [an,a-1, .. .,a 1 ,ao].
definicin de un polinomio
de grado n
Algunas toolbox,( v.g. : Signal Processing), exigen cuando van a usarse polinomios en
operaciones binarias que los vettores que les representan sean equidimensionales. Para ello basta con rellenar por delante el de grado menor con ceros.
evaluacin de un polinomio Deseamos conocer el valor de un polinomio para determinados valores de la variable, x, previamente definidos.
x=(O 8 1O+j*3);
f=
f=3*x.4-Q.5"x.3+x-5.2;
1.0e+004
-0.<lXS
1.2035
1.3683 + 3.2326i
( 4.1)
f=
-5.2.CXXle+COO
1.3683e+004+ 3.2326e-+004i
(4.2)
polyval
f=polyval(p,x)
f=
-1 .7CXXl 40.SCXX) 227.rDJ
(4.3)
Si el segundo argumento es una matriz, X, el resultado de polyval ser tambin una matriz
equidimensional, fruto de operaciones 'uno a uno'.
Si se tratase de un polinomio matricial
polyvalm
Y=2X+3
aunque al polinomio lo introdujsemos como si se tratara de coeficientes escalares, an en
el caso del trmino independiente, el programa ya entiende que ha de multiplicarle por la
matriz identidad, I, equidimensional con X
p=(23);
X=(1 1;1 1];
y=polyvalm(p,X)
y=
5
2
2-[
2
5
polyval(p,X)
ans =
(4.4)
! ! ]+3 -[ ~ ~ ]=[ ~ ~]
Compare el resultado con el obtenido usando polyval con los mismos argumentos.
multiplicacin y divisin de
polinomios
p=p1+p2
p=
1 3 11
(4.5)
p3=
4 12 44
(4.6)
Prctica 4
4.4
La multiplicacin y divisin de polinomios se efectan respectivamente con conv y deconv
conv.::
dec::onv
"p1=[32 1);
p2=[28);
N.B.: La fancin
prctica
(4.7)
conv tambin se usa para hallar la convolucin de dos seales discretas, como se ver en otra
[c,r]=deconv(p3,p2)
p3=[741);
p2=[30];
p3=conv(c,p2)+r
[c,r)=deconv(p3,p2)
e=
713
413
r=
p3=
(4.8)
races de un polinomio
[r]=roots(p)
p=[1 -2-310);
r=roots(p)
r=
2
2
-2
1i
1i
(4.9)
()j
[p ]=poly( r)
p=poly(r)
p=
(4.10)
-2
-3
10
derivacin de polinomios
La funcin polyder calcula la derivada de un polinomio, p, la derivada de un producto de dos polinomios, p q, y la de un cociente, p/q
dp=polyder(p)
dpq=polyder(p,q)
[nd,dd]=polyder(p,q)
dp=polyder(p)
dp =
dpq=polyder(p,q)
dpq =
45 O O
[nd,dd)=polyder(p,q)
nd =
15 O O
dd =
25 O O
Polinomios. Antitransformadas
4.5
u n - -n'\,
Su sintaxis
pd=pderiv(p)
: pderi.v
adicin de polinomios
-~ ----..--- -
: padd-- -
construccinde polinomios
aparti:r de sus>races
. ~.
~"'' :!:
..
pm=pmult(p1,p2,p3, ...,p10)
el criterio de Routh
El criterio de Routh nos permitir oonocer.
Si un sistema, a LC., es estable o inestable
El nmero de polos con putc real positiva que lo hocen inestable
ansn + a,._ s"- 1 + a,._2 s"-2 + an-3 s"-3 + n-4 sll-4 + n-5 sn-5 + ... + ao =O
s"
a,,_3
b 2=
b a,._5 - n- l 0
b1
c2=---c---
(5.11)
multiplicacin de varios,
polinomios. ~
&Y,
8385625
p
q
Prctica 4
4.6
El procedimiento se reitera entre la fila hallada y la anterior
Cuando falta
Wl
No se altera el resultado si se dividen los elementos de wia fila por wi mismo nmero
CRITERIO DE ROUTH: El nmero de races con parte real positiva es igual al nmero de cambios de signo existentes en la primera columna de la tabla de Routh.
Caso singular 1: El primer elemento de wia fila es O, sin serlo los dems
Sustitimos spor en la E.C.LC y construimos nueva tabla. O bien sustituimos el O por Wl infmitsimo, S, y tomamo limites cuando
O; o multiplicamos el polinomio por s + 1 , y hacemos la tabla con el polinomio resultante.
Caso singular 2: Todos los elementos de wia fila son ceros, o la fila est compuesta por un solo cero.
En este caso el sistema tiene wi par de polos puramente imaginarios que coinciden con las races de la ecuacin auxiliar construida con los coeficientes de la fila anterior a la de los ceros, de modo que sus races sean imaginarias puras.
Derivammos la ecuacin auxiliar y los coeficientes del polinomio derivada sustituyen a la fila de ceros.
Estudio de la variacin de K: Cuando el parmruo, K, aparece en la E.C. Le. construimos la tabla 'completa', colocando K en las filas pertinentes y deducimos los valores de K, que introducen cambios de signo en la primera columna
de la tabla
Deteccin de races en un intervalo v.g: (-4;0). Sustituimos sen la E.C.Le por s 1 -4. La nueva tabla en s 1 nos dar
como inestables los polos de dicho intervalo. Hemos de tener en cuenta los polos que tuviere la E.e.Le en s con parte
real positiva.
o~
construccin de polinomios
apartirdesus races
. ...
, r.outh-i!
'
routh
routh(p)
routh
Enter polynomial vector D > (1 8 17 136]
You entered: sA3 + 8sA2 + 17sA1 + 136
SA3 Row:
1 17
SA2 Row:
8 136
The next row contains ali zeros
Replacing row using derivative of auxiliary
equation
SA1 Row:
16 O
SAQ Row:
136
Press any key to continue
First column is:
SA3 1
SA2 8
SA1 16
SAQ 136
(5.12)
(5.13)
-1.2CXXJe+001
O
SAQ Row:
15
Press any key to continue
First column is:
S"5
s4
SA3
SA2
SA1
SAQ
(5.14)
1
0.00001
1.2e+006
-12
15
Polinomios. Antitransformadas
4.7
Toda expresin de la fonna
Si m > n , un primer tipo de trmino estar constituido por el polinomio cociente, cuyas
antitransformadas sern trminos en impulsos de Dirac y sus derivadas.
Si m = n , su primer trmino ser un impulso de Dirac cuyo peso ser b,.la. o
simplemente b,. si el polinomio-denominador est normalizado
Trminos, uno por cada polo simple. de la forma
S
~'p
.J
DJ2
D1h
s-p1
(s-p1)
(s-p1)
- - + - - -2 + ... +---h
donde
Dj h = (s-p1)hF(s)I
Dfth-tl
FPJ
= dd [ (s-p1/F(s)
dlt-
JI
.r=p
1
h
J1-'=P1
N.B.: Es importante darse cuenta que el trmino que incorpora la mayor potencia de t, es precisamente el que en el denominador tiene la mayor potencia del binomio y cuyo numerador, D1h,
es el calculado por la primera frmula. Conviene recordar, a efectos de hallar la antitransformada, que la antitransformada de
c..-'.,,, es te'
Los trminos generados por el faor cuadrtico, con polos complejos, p, y p; son del
tipo
A1
+
A;
s-(cr +frod) s-(cr -Jrod)
donde
IA1 = (s-p,)F(s)l.,.P,=<>+J.. ,
residue
La funcin residue calcula los valores de los residuos, r, numeradores de las fracciones
simples en cuya suma es descornponible el resto, los polos, p, y el polinomio cociente, k.
[r, p, k]=residue(n1 O,d1 O)
r y p se corresponden:
r; corresponde al polo P; .
F(s) = 3s 7 + 37s6 + 259s 5 + 945s 4 + l 722s3 + l478s + 479s- l2 = nlO =e+ _r_
s6
lOs 5
+63s4
n10=(3372599451722
1478 479-12];
d10=(1 10 63168 182 68 O);
[r,p,k)=residue(n10,d1 O)
l68s 3
182s 2
r=
0.0026 - 0.0016i
0 .0026 + 0.0016i
0 .3462
-0.1748
0 .5172
+68s
dlO
dlO
p=
-3.0000 + 5.0000i
-3.0000 - 5 .0000i
-2.0000
-1 .0000
-1.0000
-0.1765
k=
(4.15)
4.8
Prctica 4
Luego la descomposicin en fracciones simples ser
e+!= Js+ 7 + 0.0026-J0.0016 + 0.0026+J0.0016 + 0.3462 _ 0.1748 + 0.5172 _ 0.1765
d
s-(-J+J5)
s-(-J-j5)
s+2
s+l
(s+1) 2
s
d10=
1.0e+003*
Columns 1 through 7
n10,d10=residue(r,p,k)
n10 =
Columns 1 through 6
3
37
259
945
Columns 7 through 8
479
-12
0.94f:O
1.7220
1.4780 0.4700
1478
1722
(4.16)
Columna
-0.0120
N.B.: La fimcin residue se calcula con una tolerancia de 0.001 , de modo que polos que difieran en menos de una milsima se considerarn iguales. La tolenncia puede ajustarse cambiando la instruccin, tol, primera del archivo
residue.m
clculo individualizado de
un residuo
[r11 ]=resi2(n10,d10,p,h,n)
r12=resi2(n10,d10,-1,2,2)
r12 =
r11 =resi2(n10,d10,-1,2, 1)
r11 =
-0.1748
o.s1n
(4.17)
l
s4 +2s2 +1
par de conjugados
Rcr:!:/<,>d
11
=r-+:<ild
!{[s-(cr+jro)] F(s)}I
. )
=+J<ild
46*'1YMl
- -
4.1
g(t) =
L --
~ =-"'"'--&=""-~ -
4.9
Polinomios. Antitransformadas
- - - ..
- --~-- - -- -
4.2
Los usuarios del CC habrn echado de menos en Matlab funciones tan tiles
como la funcin ilt para hallar la antitransformada. El alwnno de la EIBTI
de lnfonntica de Gijn, D.Fernando Mancho, (Luanco) ha construido, (Curso 95-96), en su proyecto
de fin de carrera, una serie de funciones que iremos estudiando. Si Ud desea ver una demo
con su trabajo, slo tiene que escribir la palabra proyecto en la ventana de edicin y pulsar
la tecla ENTER
iltl
iltl(n10,d1 O)
iltl(n10,d10,tau)
iltl(n10,d10,tau,'s')
iltl(n10,d10,tau,'c')
En los cuatro casos puede adoptarse una variable de salida , que representa tan slo la cadena de caracteres
de la antitransformada no digerible por matlab
> iltl(n10,d10)
(2s+ l)e-3s
s 2 +4s+25
itt
(4.1 8)
(4.19)
La misma sintaxis y resultados tiene la funcin ilt, pero las expresiones de salida de esta
funcin, como observar en el ejemplo anterior, sern multiplicadas por el escaln de Heaviside, en su versin como funcin de valor absoluto, debida al matemtico espaol Alfredo
Fraile, para delimitar su dominio de de:ficin.
~vaJ2
La utilidad de la funcin eval2 estriba en que nos convierte la cadena de caracteres en notacin digerible para Matlab en ulteriores clculos.
(4.20)
Prctica 4
4.10
La expresin (4 .20) ya est escrita en notacin de Matlab, ya la puede copiar al portapapeles y
concluir la evaluac(pn
b=(-2.104*exp(-2*(t-3)).*sin(4.S83*(t-3)-1.254)).*(0.5 + 0.5*abs(t-3)./(t-3))
b=
o
La fimcin eval2 actua ae moao anatogo cuanao su argumento ae entraaa es wt argumento ae sauaa ae ta nmcion iltl
dibujo de antitransformadas
plotit
whiteb~
Antitransformada de Laplace
whitebg
t=0:0 . 1:10;plotit(t,ft)
1.5
0.5
o----0.5
-1
10
N.B.: Estas funciones y otras que citaremos, que Ud. no tenga con su versin de Matlab, puede Ud. pedirlas a
manuelfr@l.ander.es
Si Ud. me enva su direccin las recibir por correo electrnico.
dibujo y antitransformadas
de seales compuestas
Si Ud. desea hallar la antitransformada de una seal, suma o diferencia de otras dos y obtener su dibujo,dispone de las dos funciones
sum it y resit.
=-s---sAntitransfomiada de Laplace
resit
sumit
;;-
~ 0.5
_-;; 0.4
o
;,
2. 0.3
iF
0.1
O -
;,
~ -0.1 '---~---~---___J
""'
""
5. CONTROL DE FLUJO
PRACTICAS DE AUTOMATICA
...k t:3
. ~ ~u 5 - ~ ~..- .......- -.-a.: ..... ,,,._,, ___ _._ ........ . .. .... . . . . . . . . .... ...... .. .. . ..... .. ........ ... ............... .. . ... . .. ... ... ~ll "i.:.1; :::t11ui:o
, -
..
Polinomios. Antitransformadas
4.ll
4.3
s2
Z- antitransformadas
La funcin izt halla la antitransformada de una expresin racional en z
izt( n 1, d 1, 's')
Id.,coseno
n1=[1 20];
d1=(3-4-7];
a=izt(n1 ,d1)
a=
0 .4333(2.333)Ak- 0.1(-1)k
k=1 :10;
plotit(k,a)
Control de flujo
5.3
control de flujo
el bucle for
for
Deseamos construir un vector columna con las cinco primeras potencias naturales de 2
A=Q;
1>
A=
2
for n=1 :5
(5.1)
a(1 ,n)=2"n;
A=(A;a(1 ,n));
8
16
end
.,,A
32
Los lazos pueden ser anidados, v.g. : Queremos crear una matriz
2 x 3 cuyos elementos sean la suma de sus correspondientes
subndices.
A=
.,, form=1 :2
for n=1 :3
A(m,n)=m+n;
end
end
Cada ciclo del bucle exterior conlleva la realizacin de tres ciclos del bucle ntemo.
nmero de ciclos
La expresin que determina el contador debe ser una variable, normalmente puede ser un vector fila, cuyos valores estn definidos por
una progresin aritmtica.
El numero de ciclos viene determinado por
de .
ltimo trmno - primer trmino +
0
1
cic1os =
razn
n
Si el nmero de ciclos es negativo el lazo no se ejecuta.
... 1 Se ejecutar el lazo cuya primera lnea es la subyacente?
.,, for m=1 :-2:-9
Ponga una X en el marco corre,,pondiente
No
5.1
2 Si se ejecutare, Cuntas veces?
n de ciclos
la variable
La variable que define el contador puede ser un vector fila cualquiera, de modo que en cada caso el nmero de ciclos ser el nmero de
componentes del vector fila. Los elementos de tal vector no necesitan
estar ligados por ley alguna. En cada ciclo el valor que adopte la variable del contador ser
el valor del elemento que corresponda al ordinal del ciclo .
.,, for n=(sqrt(3) -sin(pi/2))
a=n
end
a=
1.7321
a=
-1
(5.2)
Prctica 5
5.4
La supresin del';' tras el enunciado, a= n, nos ha permitido ver el resultado de cada ciclo.
a
a=
fatu mazcayu y guapn
(5.3)
Procure ejecutar este lazo suprimiendo el';' del enunciado a=(a n].
e=
fatn
mazca
guapu
interrupcin de un bucle for Los lazos for pueden ser interrumpidos por una instruccin
if... . break end
e
c=O;
for n=['fatn';'mazca';'guapu'J
e=
if n==['n';'a';'u'J
break
end
c=(cn);
fat
mazc
guap
(5.4)
end
el bucle while
wf:lile ~
end
signos
lnd =
1
o o
(5.5)
Control de flujo
5.5
En resultados de funciones complicadas puede ocurrir que una diferencia de una millonsima eche a pique el resultado de una comparacin, es interesante, entonces transformar una
igualdad en una suma o resta comparada con la tolerancia de la operacin.
Los operadores relacionales tienen precedencia sobre los operadores lgicos, &, 1 1,aritmticos.
Para detectar la equivalencia entre cadenas de caracteres use la funcin strcmp que utiliza
los dos strings como argumentos y cuya salida ser 1 O, segn sean cadenas iguales o no.
Si uno de los operandos es una matriz y el otro una matriz, aquel se expande por repeticin
hasta formar una matriz de las mismas dimensiones, de modo que el resultado sea la matriz lgica 0-1.
La jerarqua de los operadores lgicos es - , & , 1
break
1.
. a=O;
whilea<S
a=
a=a+0.1;
if a==0.70
break
end
(5.6)
0.7CXXJ
end
la condicional if
Su sintaxis ms simple es
if condicin
secuencia de enunciados A
end
if
cond 1 =0
{ condl=l
cond2 =0
{ cond2 = 1
ACD
ABCD
Existen en Matlab una serie de funciones lgicas y relacionales, (no confundir con los operadores), de frecuente uso con la condicional if
indx=any(X)
any
Prctica 5
5.6
.X=
3
O
1
7
any(X)
ans=
O
O
indx=all(X)
(5.7)
O
.X=
3
find
indx=all(X)
indx=
O 7
(5.8)
indx ser tn1 vector colunma de tantas filas como elementos no nulos
tenga la matriz, X, .Si consideramos la matriz como tn1a sola colunma,a
indx=find(X)
base de subyuxtaponer las colunmas, los nmeros del vector, x, son los
ordinales correspondientes en esa nica colunma a los elementos no nulos
X=
indx=find(X)
indx=
1
o
o
(5.9)
3
4
o
exist
isnan
J.
inda=exist('A')
INDX=isnan(X)
INDX=isnan(X)
INDX=
(5.1O)
o o
1
INDA=finite(A)
indx=isempty(X)
indx=isstr(x)
finite
isernm,ty
iss.tr& I I
indy=strcmp(y1, y2)
Su arquitectura es
.,
Control de flujo
5.7
if condicin
secuencia de enunciados A
else
secuencia de enunciados B
else
end
end
{
cond=l
cond =0
Su sintaxis
if cond1
secuencia de enunciados A
elseif cond2
secuencia de enunciados B
elseif cond3
secuencia de enunciados C
elseif
end
podra haberse usado ms veces elseif. Mientras que if...else equivale a una disyuncin exclusiva de condicionales
Si A. se verifica C o si B, se verifica D
de otro modo
Si A, se verifica C, a no ser que se cumpla B ,verificndose entonces D
if... elseif equivale a una disyuncin asertiva de condicionales
condl = 1 }
cond2 =0
cond2 =0
condl =O }
cond2 = 1
cond2 =0
AB
condl =0
cond2 = 1
cond2 = 1
condl = 1 }
cond2 = 1
cond2 =0
condl = 1 }
cond2 = l
cond2 = 1
condl =0 }
cond2 =0
cond2 = 1
BC
condl = 1
cond2 =0
cond2 = 1
condl =0 }
cond2 =0
cond2 =0
ABC
enunciados A
enunciados B
enunciados C
enunciados D
end
Las mismas tablas de valor valdran, excepto la ltima, que seria
condl =0 }
cond2 =0
cond2 =0
Ninguna
AC
Prctica 5
5.8
Las condiciones lgicas postuladas por if o while no tienen por qu ser simples, pueden utilizarse operadores lgicos o funciones lgicas o relacionales .
... Razone el resultado de este lazo while
while ((a>O & a<1 )&(a<3 & a>2.5))
a=a+0.2;
A=[Aa];
end
A=l;
a=0.2;
5.2
- - - - - - - - - - - - - - - - - - - e;u raciocinio
En la pgina 2.6 hemos visto cmo crear una nueva funcin para
Matlab. Si Ud. posee Matlab v.4.0 para Windows, tiene a su alcance
el Matlab Debugger que le facilitar el depurado de sus programas.
Si no estuviese a su alcance puede prescincir de los';' a fin de ver los resultados
intermedios.
keyl::>9ard
return
Una cosa son las variables de su entorno de trabajo, que Ud. ha creado en la sesin de trabajo actual o las cargadas con la funcin load,
previamente guardadas mediante save en sesiones anteriores, y otra
cosa, las variables locales que maneja una funcin o un m-archivo a las que Ud no tiene
acceso directo.
Despus de ejecutar una funcin puede acceder a sus variables locales, escribiendo en la lnea de edicin keyboard. El prompt de Matlab se transformar en K y ya puede Ud. ver
los valores de las variables internas de la funcin, incluso puede operar sobre ellas.
si desea volver a su entorno de trabajo, escriba tras el prompt, K, la orden return y pulse
ENTER para restablecer el primitivo prompt de Matlab.
listado de instrucciones
numeradas
--=-
Con dbtype obtenemos un listado del m-archivo con todas las lneas
numeradas.
dbtype nombre
dbtype
Control de flujo
5.9
4 r=abs(x);
5 phi=(180./pi}*atan2(imag(x),real(x));
(5.11)
introduccin de interrupciones
La funcin dbstop coloca a Matlab en el modo debugging y provoca
una detencin de la ejecucin del programa u origina un break en caso de error.
dbstop
dbstop at nmero in nombre
dbstop in nombre
dbstop if error
dbstop if naninf
dbstop if infnan
eliminacin de interrupciones
dbclear
dbclear ali
dbclear in nombre
dbclear if error
dbclear if naninf
dbclear if infnan
reanudando la ejecucin
Con dbcont puede Ud. reasumir la ejecucin. despus que el programa se haya detenido en una interrupcin, hasta que encuentre otra in-
dbcont
terrupcin o un error.
dbstep
faire le point
dbstack
dbstep
dbstep n
dbstep in
listado de interrupciones
dbstatus
dbstatus nombre le escribe una lista de nmeros de lneas, del archivo especificado en nombre, en las que se han puesto interrupciones.
5.10
Prctica 5
cambiando el entorno de
trabajo
Cuando deseamos analizar las variables locales de un m-archivo llamado por nuestro programa, encontrandonos en el entorno de trabajo de ste utilizamos sin argumentos la funcin dbdown . La
operacin inversa, con dbup
... Confeccione una nueva funcin de Matlab, cuyo nombre sea la ymctaposicin de las dos primeras slabas de sus apellidos, que sume y reste nmeros complejos en forma polar, con opcin de salidas en forma polar o
bin mica
5.3
utilidades entrada/salida
CSAD
displist-
-~..... ~
- . ... .........-.....-
La toolbox CSAD posee unas funciones de entrada/salida, que pueden simplificar la construccin de nuevas funciones.
displist( s, v)
-,,
D=displist(s,v)
ninput(s,def)
pinput(s,def)
vinput(s,def)
yninput(s,def)
y=l n=O
tfshow(n1 ,d1)
svshow(A,B,C,D)
Control de flujo
5.11
Construimos un archivo script para explicitar el comportamiento de algunas de estas
funciones
n1=[71);
d1=[1525];
n1 =pinput('lntroduzca el polinomio-numerador' ,n1 );
d1 =pinput('lntroduzca el polinomio-denominador' ,d1 );
tfshow(n1 ,d1 );
yn=yninput('Desea introducir una accin integral de control7,'n');
ifyn
disp('Preprese para introducir Kp,Ki y Kd')
end
y lo ejecutamos
- ~-.
......
- ..
~-.-
.h
"
2.333*(SA1 + 0.1429)
Introduzca el polinomio-numerador> [7 1]
You entered: 7*(sA1 + 0.1429)
Default input is: sA2 + 5sA1 + 25
chequeo del nmero de ar- Ya hemos visto en l.4 las funciones nargin y nargout. La funcin
gumentos de entrada Y men- nargchk comprueba si un nmero, number,de argumentos de entrada
saje admonitorio
es menor o mayor que que el permitido por la funcin que el usuario
nc3rgchk
msg = nargchk(low,high,number)
%NARGCHK Check number of input arguments. Return error
message if
%
mensajes de error
La funcin error, introducida en un programa, muestra el mensaje introducido entre comillas como argumento de entrada
error
error( No cree que se est Ud. pasando al utilizar un polinomio de grado 32 ? ')
solicitando entradas al
usuario
Prctica 5
5.12
input
x=input('solicitud')
m=input('solicitud', 's')
Cul es su gracia?>
>X
x -=
Pepe;
Pepe;
','s') ;
6. Funciones de transferencia
---:--
8 = _ _.;;L;.___
D. Js 2 +Bs+K
PRACTICAS DE AUTOMATICA
Area de Ingeniera de Sistemas y Automtica
, -
Practica 6
6.2
pulsar y retener -
9. !l
D N 1
6.3
Funciones de transferencia
el modelo matemtico
Aunque los programas de control de procesos estn, sobre todo, hechos con Matlab para trabajar en el espacio de estados, tambin se
pueden utilizar las funciones de transferencia con determinadas restricciones..
printsys
printsys(n1 ,d1)
numlden =
3s+6
(6.1)
[ s3~~~5]
M(s) = -= ----=3s3 +5s 2 +2s+ 1
n1=[OO32;1 O 2 5];
> d1 =[3 5 2 1];
printsys(n1 ,d1)
num(1 )/den=
3s+2
3 sA3 + 5 sA2 + 2 s + 1
num(2)/den =
sA3+2s+5
(6.2)
3 sA3 + 5 sA2 + 2 s + 1
Caso SISO
z y p son vectores colunma que contienen los ceros y los polos;
k es un escalar
CasoSIMO
z ser una matriz cuyas colunmas son los ceros de cada
polinomio-numerador; k es ahora un vector colunma cuyas filas
contienen los factores de gmancia, escalares, cuyo orden se
corresponde con el orden de los vectores colunma de la matriz z
Caso SISO
,, n=[12 24);
z=
-2
p=
-3.CXXX) + 4.CXXXli
-3.CXXXJ - 4.CXXXli
-1.CXXX)
k=
(6.3)
Prctica6
6.4
n2=[023;121);
d2=[1 0.4 1);
[z,p,k]=tf2zp(n2,d2)
z=
-1 .5000 -1.CX:XXJ
lnf -1.CXXXJ
p=
-0.2000 + 0.9798i
-0.2000 - 0 .9798i
k=
(6.4)
2
1
Para hacer los dos polinomios-numerador del mismo orden el programa le aade un cero
en el infinito, inf.
,;; , ,.,.. ....... .. . ,., ._ ,_. . . --. --.. - . -
,...,..., ,,.,., _____ ..-... ... ,. ._._._ ..,., .,.. ~_---- ,,.:n ,,~ --.-., ...,...,...,.,., v ,, .~
L~.~'.:~:.~~-~~:ic:.~:~..:::,::ci"A,rc".:'.~polo. yc::,"c~.~~re~.col~=:~_,,;_,J
definicin de una f.d.t. a par- La funcin zp2tf realiza la operacin recproca
tir de vectores z, p, k
[n,d]=zp2tf(z,p,k)
zp2tf
(6.5)
n2=
O 2
d2 =
1.CXXXJ 0.4CXXJ
1 .CXXXJ
f.d.t. con realimentacin Para hallar la f.dt.Lc de un sistema con realimentacin unitaria
unitaria
[n,d]=cloop(n1 ,d1 ,sign)
El argumento sign ser-! si se trata de realimentacin
negativa y l, ; l ,si positiva. Por defecto, si no se pone
tercer argumento, el programa utiliz.a realimentacin
negativa
G(s)
f+G(s)
=~
+- ~
f.d.t. con realimentacin no Otra funcin ms general que engloba tambin la anterior como caso
unitaria
particular es la funcin feedback que de modo general calcula la
f.d.t.LC
[n,d)=feedback(n1 ,d1 ,n2,d2,sign)
.,. Utilizando para a, by c, los valores de su cdigo personal halle, mediante feedback, la f.d.t.Lc
6 .1
in!>truccionc" !>olucin
y
Funciones de transferencia
6.5
La funcin series efecta la multiplicacin de dos ff.ddtt.; la funcin
parallel, la suma
bloques en cascada y
paralelo
series
parallel
Id
ff.dd.tt. de diagramas de
bloques y de grafos
~------------ -....... ......
. tfseries
._ n n - - --"
(6.6)
n1=[10);
d1 =pmult([1 0],[1 1],[1 21);
n2=[1 4);
, d2=[1 5];
R(sl - 8 - - B - - + Y l s l
.pmult_-----1
G(sl
H(sl
RCsl o----<o>----o YCsl
...
6.2
(6.7)
ttparaU
2h n u ~ n O - - - J
R(sl
Ylsl
. n1 =[10];
G(sl
, .. ~ y.. ' - - -
-- - - - -- -
(6.8)
R(sl
tfcloop
n1 =[10);
d1 =pmult([1 0],[1 1J,[1 21);
n2=(1 4];
d2=[1 5];
G(sl
Rlsl~Ylsl
-H(s)
Practica 6
6.6
--.~ ~uencia de inotruccioneo
6.3
ff.dd. tt.
COn
retardo
Punto de
medicin
(a)
Calibre de medida
de e1pesor
"C=5!.
V
__,_I__._J_ _ _
Rodill_u@~o)- u-
t----d
Plancha de .:ero
Rodillo~
(b)
El funcionamiento de un dispositivo
de bloqueo y mantenimiento de datos,
S&H, se parece mucho a un retardo
de tiempo puro, aproximndose veces
por Wl trmino e..., .
El fi:nmeno de una zona muerta es
corriente en sistemas mecnicos, hi-
drulicas y neumticos. Cuando estudiemos los diagramas de Nyquist veremos la influencia de los retardos sobre la estabilidad. En la prica se consideran como retardos aceptables los que disminuyen el margen de fase de 5 a l 0.
Habamos visto
_ [t{t-'t)f(t-'t)] =e...,, _ [f(t)r(t))
Una aproximacin lineal para simular el efe<io del retardo sobre la respuesta es sustituir el factor e-u , que afecta a la
f.d.t., por una fraccin, equivalente a un defasador puro, cuyo numerador y denominador estn constituidos por polinomios de Pade de orden n. fraccin aproximadamente equivalente al desarrollo en serie de
e-u= l -"Cs+ .l.("Cs)2 _ .l.(~-)l +
2!
3! '"'
:: n3
... - d3
La funcin pade nos genera una fraccin cuyo mdulo es la unidad y cuyo argumento causa
en el dominio de Laplace el efecto paralelo al retardo en el dominio del tiempo.
Partiendo de una f.dt. se recomienda no pasar de polinomios de Pade de 5 orden. Si fuese
necesaria una aproximacin mayor se recomienda actuar en el espacio de estados.
(n3,d3J=pade(-c,n)
> n1 =[25];
d1 =[1 7 25];
> [n3,d3)=pade(2,2);
[n,d)=series(n1 ,d1 ,n3,d3);
> [ndos,ddos]=series(n1 ,d1 ,n3,d3);
)O [n3:l,c3l)=pade(2,5);
> [ncinco,dcinco]=series(n1 ,d1 ,n3:l,c3l);
> V=[0,6,-0.5, 1.5];
> t=[0:0.1 :6);
> step(ndos,ddos,t)
axis(V);
hold
Current plot held
step(n1 ,d1)
clg
step(n1 ,d1 ,t)
axis(V)
hold
Current plot held
step(ncinco,dcinco,t)
(6.9)
6.7
Funciones de transferencia
1.5 . - - - - - - - - - - - - - - - - - ,
1
--rc...
~-------i
,c-,.__ _ _ _
.g
P.,de de orden 2
"'
-o
:l
1.5 . - - - - - - - - - - ~ - - - ~
:l
0.5
~0.5
nme(secs)
3
4
Time(secs)
La funcin tfdelay efecta la aproximacin de Pade y otra aproximacin en la que el orden del polinomio-numerador es menor en una
unidad, que el orden del polinomio-denominador expresado como argumento. Parece que
no admite aproximaciones de Pade de orden superior a 3.
)tfdelay
'---~,------
...;
[tfn, tfd]=tfdelay('t, n)
"t es
[tfn,tfd]=tfdelay('t,n, 1)
15.-----------------,
15.----------------,
tfdel"'Y con numer.,dor
de orden 2 y denomin.,dor de orden :;
tfdet"'Y de orden :;
nme (secs)
3
4
nme(secs)
clg
axis(V)
: >hold
Current plot held
= [tfn,tfd)=tfdelay(2,3);
[tfn1 ,tfd1 ]=tfdelay(2,3, 1);
printsys(tfn1 ,tfd1)
num/den =
1.5 $A2 6 $ + 7.5
l}
(6.1O)
Practica 6
6.8
.,__...,....,,......_ _ _..,...._
comentariOf> a in!!ltruccione!!l
clg
6.4
ntt'i:dtt2J;;~ries(n{ci{tin1.ttc11 ):
'
))
,dtf1 ,t)
... Confeccione una nueva funcin de Matlab, que llamar oploop7, cuyos
argumentos de entrada sean G(s), [ng,dg], f.dt de la cadena directa, y
H(s) , [nh,dh], f.dt. de la cadena de realimentacin y como argumentos de
salida, [n,d], numerador y denominador de la funcin
G(s)
1
G (s) = 1 + G(s)(H(s) - l)
y exponga en las lneas de ayuda su sintaxis y utilidad.
- - ~ - - - - ~ - - ~ - , . --
- - - !!>U
funcin oploopt.m
6.5
---- -- - -- - -
Funciones de transferencia
6.9
1.ttor~2 --- ]
tford2
tford2( s, ron)
d=tford2
d=tford2(s, ron)
[n,d]=tford2
[n,d]=tford2(s, ron)
Id de modo directo
u - ----~~"-O. OO oO -
(nd,dd]=tfderiv(n, d)
' [n,d)=tford2(0.5,5);
: printsys(n,d)
[nd,dd)=tfderiv(n,d)
nd =
-SO -125
: num/den =
:
25
dd =
1 10 75 250 625
printsys(nd,dd)
num/den
=
-SOs-125
(6.11)
\tfmonic
l
---~-------.---..---..,
te la unidad El coeficiente de la potencia de mayor orden del numerador ser el factor de ganancia
(nm,dm]=tfmonic(n,d)
[nm,dm)=tfmonic(n,d);
printsys(nm,dm)
num/den =
4s + 12
n=[12 36];
d=[328);
: printsys(n,d)
num/den =
(6.12)
12 s + 36
ttess
Funciones de transferencia
;tfess ~
..
6.10
tfess(n1 ,d1)
This system is type O
Step Error Constant, Kp
0 .25
Unit Step Ess
0 .2
O
Ramp Error Constant, Kv
inf
Unit Ramp Ess
Parabolic Error Constant, Ka O
(tA2)/2 Parabolic Ess
inf
tfshow(n1 ,d1)
Un sistema de primer orden responde a esta ecuacin diferencial escrita en trminos de constante de tiempo, T
TDy +y =x
Su funcin de transferencia, escrita, respeivamente, en forma cero-polar y en forma de constantes de tiempo, tiene entonces estas arquitecturas
M(s) =
M(s) = - 1 Ts+l
.J!L
s+ l
T
es pee fi
U
1
1 1 Y
caciones en el dominio del
tiempo
"7
y(t)
1
t,
No confimdir retardos, t , y ooostantes de tiempo, T. Para un motor elctrico los retardos tienen su origen en los juegos
y rozamientos mecnicos, mientras que la constante de tiempo es debida a la autoinduccin de los devanados. Para un
servomotor rpido, t es del orden de 3 milisegundos, mientras que T vale alrededor de 6 milisegundos
y(t)
rgimen
pennanemc
63%
...
: ....~-~-------------- ---
., ~
En general llamaremos tiempo de respuesta o tiempo de establecimiento, t,,(Settlingtime o response time) al tiempo
que la respuesta tarda en alcanzar , definitivamente, el 95 % de su respuesta en rgimen permanente, y decirnos definitivamente porque a partir de t,, el valor de la salida ha de mantenerse dentro de una banda del 5%, centrada en el valor
de la salida en rgimen permanente.
En el caso de un sistema de primer orden es aproximadamente t, = 3 T.
N.B.: En bibliografia americana suelen llamar indication time al tiempo que el sistema tarda en entrar en una banda
del 2%para ya no salir de ella. Este tiempo, tambin, a veces, denotado por t, en el caso de un sistema de primer orden vale aproximadamente 4 T.
Un sistema de segundo orden puro (sin ceros en el numerador de su f.d.Lu:) se origina de una ecuacin diferencial semejante a la del elemental acelermetro de la figura
MD 2y+BDy+K 1y=F =>
J'IF(s)
=Ms
1
+Bs+K1
azj,+a1j,+aoy= bou
bo -K
~ _ 2~
a2
- - oo.
ao =oo~
F
M
Funciones de transferencia
6.11
a nuestro caso. tenemos la frmula estndar del sistema de segundo orden resonante, !; < l
Y(s)
K.
de
od
K,ro;,
--y
otrom o
U(s) - l+.!Ls+L
s 2+2!;ro.s+ro;,
a.~
CD!or
donde !; es el factor de amortiguamiento, ro. es la frecuencia natural no amortiguada y K,, la ganancia esttica. La frecuencia natural amortiguada ser rod = ro.
jt=r!
Cuando !; > l los polos del sistema son reales, negativos y distintos. El sistema de segundo orden, llamado entonces
aperidico, puede descomponerse en la suma de dos sistemas de primer orden. Si los polos son
y --/:; , el sistema
--k
K
(l
Cuando !; <
r,\
IPl=lp' l=ro.
y(t) = 1- -
t+cos-i;)
En terminologa moderna suele hablarne, entonces, de sistema de segundo orden resonante, que es el que ofrece ms inters. Sus especificaciones, en rgimen transitorio, vendrn normalmente dadas en el dominio del tiempo por los parmetros de la figura adjunta
y(t)
l,OS
0,9S
0,90
'
'
, J.;f
,,r .
O.G:I
0,5
1
1
,,
0,10
ts(a banda de n)
=~!. In (
1
~)
O<~< O, 7
m;
Mp(o/o)
= lOOe - R2
t -
J1-,;2
P-
lt
Cr>,,
-..!!.
-
ffid
Tp, pseudopenodo
rod, pseudopulsacin
2it
r,-,:r-
(1)" 1-,;2
=ron J1- ~2
p2
_
t r=
1--0,4167~+2,917~2
er>,,
N de oscilaciones completas
~-2
=e J-,
=-k =Q
Funciones de transferencia
6.12
tiempo
tftplot
tftplot(n1 ,d1)
............................ ............
"
. tftplot
1svplot .....
--;
- TFTPLOT
Plot
Zoom in
Set axes
Grid plot
Hold plot
Label Plot
Quit
- SVPLOT
Plot
Zoom in
Set axes
Grid plot
Hold plot
Label Plot
Quit
Option? >
Option? >
Option? > n
Default input is: 1
Option? > f
Option? > p
OB
0.4
~
02
Tme,s
'
"
Op
Option? > s
Toggle auto/fixed axes? (y/n) [n]
>
[O) >
>
0.8
.......... ...............
------
0.6
0.4
02
10
rme.s
15
Funciones de transferencia
6.13
Option? > g
Option? > d
0 .5
Option? > 1
Enter title for plot > Sistema de primer orden
Enter Y-axis label for plot > amplitud
.1
Dibuja la retcula
--':.:-~:;,=-~ ,- - - - ,
los . . . il
15
10
nne.s
10
1!
tiempo en se<J,Xldos
~----~-----,
n[
Z
Tras pulsar una tecla
cualquiera, haciendo {Y' en las
esquinas inferior izqda. y superior
dcha. del supuesto rectngulo a
ampliar,
aparece
la
zona
seleccionada.
Funciona perfectamente en la versin de
estudiantes y no funciona en Windows
Funciones de transferencia
6.14
Option? > v
ick Center point of data
using the mouse and mouse
button.
Press any key to continue ...
Time
Response
O. 7576 0.3153
0.9001
1.0006
1.2121
0.3653
0.4116
0.4545
1.8182
0.5971
1.9ffJ7
2.1212
2.2727
2.4242
2.5758
2.7273
2.8788
3.ca:J3
0.6265
V Haciendo # en un punto de la
curva escribe una tabla los ocho
valores anteriores, tras un espacio,
los valores del punto y los ocho
valores posteriores
0.6538
0.6790
O.7024
0.7241
0.7443
0.7629
7802
o.
1.3636 0.4943
1.5152
1.6667
0.5312
0.5654
iption? > r
Zeros - Pales
lnf -0.SCOO
Calcula ceros
ypolos
Option? > a
Final value of response is: 1
The accuracy of these specifications depend
on the quality of the plotted step response
Delay Time
1.387
Rise Time
4.394
Settling Time 5.867
Max % Overshoot O
13.2
Time at Max
Proporciona
Ke , ganancia esttica
t d, tiempo de retardo
tr , tiempo de subida
t s, tiempo de establecimiento al 5%
Mp% , sobreoscilacin en%
tP, tiempo de sobreoscilacin
N.B.: Cuidado con la validez de algunos de estos parmros cuando el sistema no es de segundo orden puro, cuando
tiene ceros
Option? >h
Current plot held
1.6
1.4
1.2
0.8
0.6
0.9
0.4
0.2
-6'
lnea de puntos
o de circulitos
x cruces de S.Andrs
+ decruces
* de asteriscos
- lnea llena
- lnea a trazos
-. trazo y punto
Funciones de transferencia
6.15
respuesta al impulso y a la
rampa
step
[y,x,t]=step(A,B,C,O)
[y,x,t]=step(A, B, e, o, m)
[y,x,t]=step(A,B,C,O,m,t)
[y,x,t]=step(n1 ,d1)
impulse
0.2....---------,---....---,
-- ---->------- :-----------------------------------
Esta grfica
. est hecha
. sin rgumentoi,
.
. de salid
o
O
2
3
Time (secs)
(-/--rrr----
0.06
__ , . ,---
:: :::::::::r::::::::::::::t::::1:::::t::::t::::r::
j
.
E~~gr.4fl~~M::M/~r1a~u~9de?'1lkW
O'--~-~~~~~~~~~~~--'
a.5
1.5
2.5
nme (secs)
15
<.5
Funciones de transferencia
6.16
Con la funcin initial podemos determinar la respuesta de un sistema
en rgimen autnomo, a partir de los valores iniciales del vector de
estado. Aunque initial opera en el espacio de estados, es muy sencillo
el paso a la descripcin externa, a ff.dd.tt.
respuesta libre de un
sistema
initial
[y,X,t]==initial(A,B,C,D,xO)
Las matrices de las ecuaciones dinmicas y los valores iniciales del vector estado, en el vector fila, xO, figuran como
argumentos de entrada.
Los argumentos de salida son
y, vector columna, si el sistema es monovariable
y, matriz con tantas columnas como salidas
X, matriz con valores de variables de estado, con tantas
columnas como orden del sistema
t, vector fila con los valores de t para los que se han computado X e y
[y,x,t]==initial(A, B, C, D,xo, t)
n1 =
1
d1
2
0.1
1 4 25
[A,B,C,D]=tf2ss(n1 ,d1);
t=[O:O.Q1 :5];
[y,X,t]=step(n1 ,d1)
xO=(X(10, 1),X(10,2)]
initial(A,B,C,D,xO)
o ... - ~ ~ - ~ - - - - j
-0.05
0.5
2.5
1.5
respuesta a una seal cualquiera con, y sin condicio- La calcula y dibuja la funcin lsim, cuya sintaxis es
[y,X]==lsim(A,B,C,D,u,t)
El vector columna, u, debe tener tantas filas de vanes iniciales
lores numricos de la entrada, como columnas tiene el vector fila t.
lsim
[y,X]==lsim{A, B, e, D, u,t,XO)
u=(ones(size(t))]';
lsim(A,B,C,D,u,t,xO)
grid
V=[0,3,0,0.18];
axis(V)
gtext('Respuesta al escaln con
condiciones iniciales')
----------+r-------,-,
0.16
a,
0.02
0
+++-~-:J
o.5
1.5
Time (secs)
2.5
Funciones de transferencia
6.17
Intentemos encontrar la respuesta a una onda cuadrada, de perodo, T =4 s, de nuestro sistema, durante los primeros 20 segundos .
Lo primero ser generar tantos valores de la onda cuadrada, como instantes de cmputo hayamos definido en el vector fila, t
t
o
=
t,=0,8
:l
t 2=3 ,l 4
[
t,=5
6 t.=6,2
R,-
~R2~
Hallar el resto del cociente, t/T =t/4, equivale a tomar la abscisa del punto, trasladando el origen a
cada mltiplo de cuatro. A cada abscisa (resto), dada de esta forma le corresponde el valor, O, si es
menor que 2 y el valor, 1, si es igual o mayor que 2.
La funcin rem nos calcula el resto y el operador lgico, >=, nos devolver un l o un O segn sea el
resultado de la comparacin. Luego basta una sola lnea de programa para la generacin numrica de
una onda cuadrada
t=[O:O.CS:20);
u=[rem(t,4)>=2)';
lsim(A,B,C,D,u,t)
0.2.----r----r----r---r---r--....----,---,----,---,
0 .15
0.1
~
i 0.05
~
o
-0.05
12
10
Timelsecs\
14
16
18
20
0.2 ~ - - - - - ~ - ~ - - r - - - r - - ~ - ~ - - , - - - ~
6.18
Funciones de transferencia
Con la funcin ginput podemos hallar el par , (x, y) , que corresponde a un punto de una curva seiialado con el ratn.
[x,y]=ginput(n)
El argumento de entrada, n, es el nmero de pwitos sobre los que Ud. desea hacer ,1$', para alma=iar sus coordenadas en los vectores colunma, x e y
Despus de introducida la funcin y pulsado I;:NTER, lleve el puntero del ratn a
la ventana grfica, el cursor adoptar forma de cruz blanca, haga entonces ,1$' ai
los puntos deseados. Cuando haya agotado los n pwitos se activar la ventana de
edicin y si no ha puesto punto y coma, podr ver los valores.
ginput(n)
[x, y]=ginput
Ahora podr Ud. escoger un indefmido nmero de pwitos. Pulse ENTER para
volver a la ventana de edicin
ginput
ginput
titt~_
7_ -
title('texto')
xlabel('texto')
Id en pie de dibujo
ylabel('texto')
El titulo y los rtulos de los ejes son propiedades del objeto current axes
Una variable convenientemente convertida en string puede formar parte del titulo
,, n=3;
title(rCaso nmero n ',int2str(n)J)
introduccin de un texto en
La funcin gtext tiene la misma sintaxis que las tres anteriores. Una
cualquier parte del dibujo
!al!: . ahora
Cambio de tipo de letra, coCon las funciones uisetfont y uisetcolor, abrimos unos recuadros de
lor y grosor de lneas
dilogo que nos permiten escoger el tipo de letra y el color
Tras estas dos instrucciones se abre un cuadro de dilogo donde el usuario puede escoger el tipo y tamao y estilo de letra
para los nmeros de los ejes
uisetfont(get(gca,'X).abel'));
uisetfont(get(gca, -?Labe.1')):
~d
uisetfont(get(gca, 'Title') );
ld par; ;I ttulo
.'.
6.19
Funciones de transferencia
uisetcolor
-<? en .Ja
curva cuyo grosor desee cambiar y vuelva a la ven-
uisetcolor( h1( 1) );
uisetcolor(get(gca,'Ylabel'));
Id
h=get(gca,'Children');
uisetcolor(h( 1) );
6.6
u(t)
2
1o
1
3
t
6
12
dibuje '" re,:,pue,:,ta
.......
--l~
- ---- ,1 --..
: c.
PRACTICAS DE AUTOMATICA
Area de Ingeniera de Sistemas y Automtica
.,..........
7.2
Espacio de estados
pulsar
yretener
Espacio de estados
7.3
sistema fsico :
motor de e.e. gobernado por
.
d . d "d
corriente e In UCI O
El motor de e.e. oon excitacin independiente es el accionador bsico utilizado en los controles de posicin, tanto para las grandes como para las pequa'\as potencias, aunque en este
caso, suel~ util~rsellm~bin los motores ~lcronos bifsi~ -~ los motor~ paso~ paso.
La potencta generada poriil:1'.i=.e.mprotlm:ida; lil.'lr; en opOSTClon a la tens1on~ es
igual a la potencia mecnica.
e(t) i 4 (t) = T,.ro,.
e =Kbro,. =Kb dS
(1)
dt
La ecuacin diferencial del circuito elctrico es
Ua=LaDia+Raia+e
(2)
El par motor producido T,.ha de igualar al par resistente, a su vez suma del par de inercia del rotor del motor y par de
inercia de la carga y pares de fiiccin viscosa de las partes mviles del motor, y de la carga.
T.,=K ia=JD 2 9+BD9 (3)
El momento de inercia de la carga J, referido al eje del motor es J'i = n2J 1 y de modo anlogo 8j, = n 2B1 , por lo que
J=J,.+n 2JL y
B=B.,+n 2BL
ro,.=1roL
y
9,.=19L
y puesto que la potencia motriz de rueda 1 ha de ser igual a potencia transmitida a rueda 2
T1@1=T2ro2}
Ol2
= n@
T1-nT2
1
Js +Bs
La accin adicional del parperturbador,Tz, la obtenemos anulando la entrada y, a partir del diagrama de bloques, hallando su f.dt.
1
1
Js +Bs
1
4s+Ra
1
Js 2 +Bs
l +
KKbs
(Jr+Bs)(LaS+Ra)
Si para facilitar la notacin prescindimos de submdices innecesarios y despreciamos como suele hacerse, en virtud de la
regla del dcimo, La, del orden de unos pocos mH, nos quedan las ff.ddtt.
0m(s)
U(s)
= s(RJs+RB+KKb)
0m(s)
Tz(s)
s(n.JRs+nBR +nKKb)
N.B.: Bastar multiplicar por n las ff.ddtt. para obtener el desplazamiento angular de la carga.
"41"
Espacio de estados
7.4
-- -- -
ecuaciones de estado y de
ovservacin
Xi
Xt
Xl
u=LDi+R i +KbD0
Xt
.:i:2
(1.1)
X2
K i =J D 2 9 +B D0
(1.2)
Si, en ausencia de perturbaciones, escogemos como variables de estado las variables fisicas
.
R
Kb
1
X =--;Xi -yx2 +zu
X=
X2
X3
= ffi=D0
}
=9
u=lx1+Rx1+Kbx2}
Kx1 =Jx2 +Bx20
x3 =x2
.
K
B
x2 =-xi --xi
J
J
X3 =X2
y=nX3
que escritas en forma matricial nos proporcionan la represartacin de las ecuaciones de estado y de observacin
nxn
n=ordsn de s;stema
m:/11" de entradas
r=N" de salidas
rxm
D=[O]
Valores numricos
Ra
la
Resistencia de inducido
0, 2
5 X 10-3
10-2
Constante de f.c.e.m
5, 5 x
Constante de par
6 X 10-s
NmA-1
lm
1 X 10-5
kgm 2
Kb
V s rad-i
despreciable
4, 4 X 10-3 kg m 2
Bi
4 X 10-2
Nmrad- 1s
Relacin de engranajes
0, 1
adimensional
-11
4
y=[O
- 0,54
O,
l][ :: ]
D = [O]
1
Dando valores y normalizando el polinomio del denominador hallamos la f.d.t.
nK
22. 22
3
2
Ua(s) = sflaJs +(laB+RaJ)s+RaB+KKbl = s +47,-Hs 2 +308, 52:
0(s)
(3)
nK
O, 072
O, 55
U(s) = s(RJs+RB+KKb) = s(O, l3s+ 1) = s(s+7, 713)
0{s)
o
-39.6206
-7.7868
(4)
Los polos de (4 ):
o
-7.6923
El polo -39,6208, al hallar las antitransformadas, genez-aria un trmino ms de dos veces menor que la resolucin numrica del ordenador.
Espacio de estados
7.5
paso del espacio de estados Podra ocurrir, que al calcular la f.d.t. utilizando la ecuacin
a la f d t
G(s)=C(sl-A)B+D
ss.2..~........................
sv2tf
-..---- -
salida x entradas
1xm
[n1 ,d1J=sv2tf(A,B,C)
[n2,d2J=sv2tf(A,8,C,D)
-1.137e-013 s + 22.22
O];
B=[200;0;0];C=[O O 0.1 ];D=[O];
[n1 ,d1 ]=ss2tf(A,B,C,D)
n1 =
O
O O.<XXXl 22.2222
d1
1.<XXXl 47.4074 rB.5185 O
printsys(n1 ,d1 ,'s')
num/den =
[n2,d2]=sv2tf(A,B,C)
n2=
O.<XXXl 22.2222
d2 =
1.<XXXl 47.4074 rB .5185
(1 .1)
paso de la f.d.t al espacio de La funcin tf2ccf y tf2ocf nos proporciona las matrices A, B, e y Den
estados
forma cannica de controlabilidad (CCF) , tambin llamada forma de
variables de fase (PVCF) y observabilidad (OCF), si los sistemas son
controlables y observables respectivamente
tf2ccf
[Ac,Bc,Cc,Dc]=tf2ccf(n1 ,d1)
tf2ocf
[Ao,Bo,Co,Do]=tf2ocf(n1 ,d1)
[Ae,Be,Ce,De]=tf2eef(n1 ,d1)
Ae=
o
1.<XXXl
o
o
o
1.<XXXl
o -300.5185
-47.4074
Be=
o
o
1
Ce=
22.2222
De=
Ao=
o
1.<XXXl
o
o
1.<XXXl
o
-300.5185
-47.4074
Bo=
22.2222
O.<XXXl
(1.2)
Co=
o o
O.<XXXl
Do=
Observar la pecmutacin de las matrices B y C filtre ambas formas. Por otra parte es de
advertir la falta de uniformidad tecminolgica m la bibliografia al uso.
7.1
... Hallar las ecuaciones de estado y de observacin del sistema motor-carga, despreciando La y comprobar el resultado hallando su f.d.t. mediante Matlab. Escoger como variables de estado X = 0m y X2 = CO,r.
- - ---
.,.
Espacio de estados
7.6
transformaciones de semejanza
z=T-1x
Z ser una combinacin lineal de vedores linealmente independientes, cuyos componentes
sern, a su vez, combinaciones linealmente independientes de los vectores que constituyen
i=A.x+Bu} ~
y=Cx+Du
.----'--,
z=Ez+Fu
y=Gz+Du
=>
y =err- 1x +Du
Estas transformaciones se llaman transformaciones de semtjanz.a o de similitud y las matrices A y E, matrices similares
o semtjantes. Todas las matrices semtjantes tienen
los mismos autovalores
la misma traza
el mismo determinante
De todas las posibles transformaciones, T"', tiene especial inters aquella que convierte a la matriz A en una matriz diagonal E . Se nos pueden presentar tres casos.
La matriz A. (n x n ), tiene n valores propios distintos.
Entonces los vedores columna de la matriz T"' son los
autovectores de A
La matriz A tiene un autovalor de orden de multiplicidad k y los k autovedores, generados por el polo,
de multiplicidad k, son linealmente independientes v.g.:
A=[
! O~
> [V,D]=eig(A)
V=
D=
1
o o
o o
o
O
O
0.7071
O
-1 O O
1.CXXX> -0.7071
O
O
1
(1 .3)
-0.7071
O
O.7071
El autovalor, l, es de orden de multiplicidad dos, y los autovectores generados por este polo son la primera y tercera columna de la matriz V, y son linealmente independientes. Luego es posible convertir la matriz a forma diagonal mediante la transformacin T=V
[V,D]=eig(A)
T=V;
Ad=inv(T)*A*T
Ad=
1 o o
o o o
o o 1
(1.4)
o o
p2
O P2
o o
P2
Cada una de estas tres matrices tiene el mismo polinomio caracterstico, pero su matriz V de autovedores tiene respedivamente rangos de 4, 3 y 2. El subespacio generado por el polo mltiple, P2 , contiene tres, dos o un solo vector linealmente independiente.
Habr tantos bloques de Jordan como autovectores del subespacio linealmente independientes.
EXCURSUS: Cuando existe un solo bloque de Jordan, generado por un polo mltiple, el polinomio mnimo coincide con el polinomio caracterstico. Por el teorema de Caley-Hamilton sabemos que una matriz A es una raz de
su polinomio caracterstico, pero este polinomio no siempre es el polinomio de menor grado del que A es raz. Un
modo de hallar el polinomio mnimo es hallar adj(sl- A) y ver si sus elementos tienen un divisor comn. Dividimos el determinante lsl - Al por tal divisor comn y obtenemos el polinomio mnimo.
Desafortunadamente Matlab no nos proporciona una fimcin que nos halle la matriz W, pero para casos con un slo
polo de orden de multiplicidad, 2 3, es relativamente sencillo:
transformacion a la forma
de Jordan
1 l]x
7.7
Espacio de estados
(1.5)
2
2
1
(1 .6)
s=3-rank(A-diag([2 2 21))
s=
1
tenemos un slo bloque de Jordan con lo que ya podemos aventurar la forma de Jordan de
A y disear la matriz de transformacin W, matriz clave del problema, sin la que no
podramos hallar B 1 y C 1
A1
=[
~~~
= [ ~: :: ~:
V3 g3
U3
v.
3 Hallamos vector generalizado g que deducimos del sistema de ecuaciones homogneo
2
(A-p;I)
g=O
F2
(A - 2 1)2 g = O
donde p; es el polo mltiple considerado.
F1 =A-diag([2 2 21);
F2=F1"2
F2=
(1.7)
o o o
O
g3
0 g + 2 g2 + 0 g3 = 0
N.B.: & y g, pueden ser llllas constantes cualesquiera, Cl y J:1; en cambio g, ha de ser necesariamente O. Por sencillez
escogernos Cl= ly J:I = 1. El vector g debe cumplir (A-p;l)g .eO
v=(A-2 I) g
g=(1 ;Q;O];
v=F1*g
v=
-2
o
2
(1.8)
Espacio de estados
7.8
5 Determinamos el vector u generado por el polo simple, l , de modo que sea linealmente
independiente de v, solucionando el sistema de ecuaciones homogneo
(A-p;l)u=O
F3
(A-1 I)u=O
eig(A)
F3=A-diag([1 1 1])
F3=
(1 .9)
-1
o o o
1
~~
~l ][ :;
[
0 -4 2
U3
-4
l{
=>
Ou1+2u2-l u3=0
0 Ut +O U2 +O U 3 = 0
0U1-4U2+2 U3=0
UJ
=>
=0
6 Con los vectores v, g y u , ( vectores columna), y con ese orden construimos la matriz W
g
W=-:
0~5
2 l l
Ahora ya podemos hallar la transformada de Jordn de todas las matrices
Ar =W-1AW
Aj=inv(W)* A*W
Aj=
2
B1 =W- 1 B
O 2
(1 .10)
8=[2;-2;1];
Bj=inv(W)*B
Bj=
0.7500
(1.11)
3 .5COO
-4.0000
C1=CW
C=[O 11);
Cj=C*W
Cj=
2.0000
7.2
(1.12)
1.0000
1.5COO
A=
y:,= [~
1 O O
C =[
5
_
15
101
O 1 O
----------------------------W=
Br=
Espacio de estados
7.9
31 1
1
-1 1
1 Calculamos los autovalores
eig(A)
ans =
2
2
2
(1 .13)
s = n-rank(A- p;I)
s=3-rank(A-diag([2 2 21))
s=2
(1 .14)
W=
g2
z2
V3 g3
Z3
v2
(A-p;l) 2 g=O
(A-p;I) g~O
(1)
(2)
FI
F1 =A-diag([2 2 21);
F2=F1A2
F2 =
F1
F1 =
o
o
o
o o o
o o o
o o o
1
1
-1
1
1
-1
( 1.15)
La ecuacin, (1), nos permite escoger arbitrariamente el vector, g, con la nica restriccin
de cumplir la ecuacin, (2). Iniciamos un proceso de tanteo:
Escojamos
o
o
o
g=[0;1 ;O];
v=F1*g
v=
1
1
( 1.16)
-1
Observamos que el vector inicialmente escogido no cumple (2), pero s lo hace el vector
g = [O; l ; O], como comprobamos al calcular v.
3 Para hallar el otro autovector propio, z, nos basta escoger otro vector linealmente
independiente de v y g, por ejemplo z = [1; O; O].
4 Con los tres vectores construimos la matriz W
Espacio de estados
7.10
W=
1 O l
l 1 O
-1 O O
Comprobamos
W=[1 O 1;11 0;-1 00);
Aj=inv(W)*A*W
Aj=
2
O 2 O
O O 2
C. Abordamos ahora el caso de un autovalor triple con un slo bloque de Jordan
A=
6 -12
1
O
O 1
(1.17)
eig(A)
ans=
8
O
O
2.CXXXJ + O.CXXXli
2.CXXXJ - 0.CXXXJi
2.CXXXJ
( 1.18)
( 1.19)
(A-21) v = O
F2
(A-21) 2 g 1 =0
F3
(A-21) 3 g2 =0
y
(A-2I)g2 =g1
Como siempre comenzamos calculando el ltimo
F1 =A-diag([2 2 21);
F2=F1"2;
F3=F1"3
F3 =
O
O
O
O
(A-21)g2 -:t-0
(1.20)
O
O
o o o
Como F3= (A- 21) = O la nica condicin que debe cumplir g2 es que nos sirva para
calcular g
g1=F1*g2
4
1
o
(1 .21)
8
O
-2
i --: I ][ ~: ]
O O 2
I]
7.11
Espacio de estados
D. Matriz con un autovalor simple y un autovalor triple que genera dos bloques de Jordan
Ar=
[-1
o
-1 o o
~ o -1 oO
o o o o
l
[ v,
W=
g,
u,
V2 g2 z2 u2
V3 g3 Z3
U3
V4 g4 Z4 U4
~g~i}~
F1 =A-diag((-1 -1 -1 -1 ]);
g=(1 ;1 ;1.5;1 J;
v=F1*g
5.CXXXJ
2.5CXD
2.5CXD
v=
-2.5CXD
-11);
F1
~ 6~ ~}
O
O
O 1
O -1
=)
z1+z2+3z4=0}
1
-1
Z3+Z4=
~~ U1
Au=O
=)
W=[ /5
2,5
-2, 5
1
1,5
1 0~1
1 -1
-1
A 1 =W-IAW=
O O
O -1 O O
O O -1 O
ro
o o o
Espacio de estados
7.12
(k. l)
ya que
(A-'AI)v=O }
2
~ 2
::::) (A- 'Al) g = (A-'Al)v::::) (A- 'Al) g = v
(A-11,I) g1 =0
2
(A-'Al) 1 -O }
~ ::::) (A-'Al) 3g2 = (A-'Al) 2g1 ::::) (A-'Al)g2 = g1
(A-'AWg2 =0
La procedura de clculo es comenzar por la ecuacin ,(k), para deducir gk-1 y, a
continuacin, usar la ecuacin, (k. 1), para deducir gt- 2 , y as sucesivamente hasta obtener
v, reservando la ecuacin, ( 1), para determinar otro posible vector propio, v2, si lo hubiere.
Naturalmente los otros autovectores, u; debidos a los autovalores simples y, o... se
deducirn de las ecuaciones
(A-yl)U =
(A-01)02 =0
E. Caso en que un polo de multiplicidad tres nos genera tres bloques de Jordan
Ahora disponemos de un solo sistema homogneo de ecuaciones y necesitamos tres
vectores linealmente independientes
FI
(A-2 1)v=0
A=
1 -0.5
-1
1.5
O O
-1 . -0.5
eig(A)
ans=
1.CXXXJ
2.CXXXJ
2.CXXXJ
2.CXXXJ
1.
1
2
1
(4)
F1 =A-diag((2 2 2 21)
F1
-1 .CXXX) -0.5CXXJ 1.CXXXJ
-1 .CXXX) -O .5CXXJ 1.CXXXJ
0.5
0.5
O
2.5
-1 .CXXXJ -0.5CXX)
s=4-rank(F1)
s= 3
0.5CXX)
0.5CXX)
1.CXXXJ
0.5CXXJ
Para ello escogemos tres vectores linealmente independientes cualesquiera, pero sujetos a
las restricciones impuestas por (4).
- V1 - .5V2 + V3 + .5\14 =
Si hacemos v 1 = O
vi=
2 V3
3
1 +v4
1
-,,
___
r~~i
haciendo v2 =O
V1=V3+0
, 5 V4
, .,
1
,
y, por ltimo V3
-,,
___
15
~~
=O
v,+0. 5v2=0,5 v4::::)
1
r~~--
Espacio de estados
7.13
0.5
0.5
1.5
W=
o
3.00X>
1.00X>
1.00X>
1.5CXX)
o
1.CXXXl
1.CXXXl
1.CXXXl
1.CXXXl
1.CXXXl
1.CXXXl
3.CXXXl
1.00X>
O.OOX>
2.00X>
O.CXXXl
O.OOX>
1.CXXXl
))
matriz de transicin de esta- Su construccin es inmediata. Si los autovalores de A son ex, ~. y...
dos de una forma diagonal tiene la forma
ea.t O1 O
O e~ O
O
rL
e "f!
... J
Ser una matriz diagonal cuyos elementos son el conjunto fundamental utilizado para
hallar la solucin de la ecuacin diferencial homognea que nos describe el funcionamiento
autnomo del sistema.
transformacin de A,B,C,D,
conocida la matriz W
sv2sv
N .B.: Recuerde que si ha de operar con la variable de estado, sta sufre tambin la transfonnacin
7.14
Espacio de estados
z=w- 1x
[At,Bt,Ct,Dt]=sv2sv(A,B,C,D,W)
W es la matrizdetransfonnacin
~- H4 4 - - - ..... ~~J
svstuff
Muestra el men
svstuff(A,B,C,D)
svstuff(n1 ,d1)
Halla las matrices A,B,C,O en forma controlable, (OCF), a partir de la f.d.t. definida
por las variables, n1 y d1 , del entorno de trabajo attual y muestra el men.
Si Ud. quisiera usar estas matrices en su entorno de trabajo para ulteriores
cmputos, tendr que hacer el paso al espacio de estados con tf2ss.Desafortunadamente las variables de svstuff son locales.
Usemos como ejemplo las matrices de nuestro sistema motor-reductor de la pgina 7.4 sin
despreciar L .
svstuff([-40 -11 0;615.4 -40.54 O;O 1 OJ,[200;0;0],[0 O0.1J,[O])
Option? > e
Eigenvalues of A are:
-7.7868
-39.620
Option? > e
Controllability Matrix is:
1.0e+<Xl:i.
0.0020 -0.0800
O 0.0022 -0.1053
O
O
0.0022
The System is Controllable
Option? > e
Option? > o
Observability Matrix is:
O
O
0.1CXXJ
O 0.1CXXJ
O
0.1111 -0.74J7 O
The System is Observable
.~
.......,..,,.,.
-
O Halla la matriz, Ob,de observabilidad y tras examinar su
rango nos dice si el sistema es observable
Espacio de estados
7.15
Option? > t
Choose State Transformation: CCF OCF DF > df
Transformation matrix T is:
O -0.3208 0 .9e34
O 0.9394 -0.0345
1 .CXXXl -0.1206 O.OC'OO
_
-1 _
-1
A= T AT, B = T B,
_
_
C = CT, D = D
Abar:
,e,
O O.CXXXl O.CXXXl
O -7.7868 O.CXXXl
O O.CXXXl -39.6206
Bbar:
0 .7203
7.4:D3
202.5042
Cbar:
0.1000 -0.0121
0 .0001
Option? > s
lnclude Integral Control of output? (yin) (n] > n
Enter vector of 3 desired pole locations >
(-47.6438 0.1169+3.3355*j 0.1169-3.3355* ]
State Feedback Vector K is:
O.CXXXl -1 .3884
2.3882
Attributes
Eigenvalues
Viewdata
Option? > s
Option? > d
A matrix is:
-40.CXXXl -11 .CXXXl
1.1111
-7.lfJ74
O
1.CXXXl
B matrix is:
200
e matrix is:
O
O 0 .1000
ption? > f
-1.137e..Q13*(SA1 -1 .955e+014)
Calcula la f.d.t.
Espacio de estados
7.16
rener en cambio-L 13 7 10 - 13 X(-1 , 995 10 14 ) = 22,22, que es precisamente el numerador de nuestra func.i.n de
transferencia.
i Esta opcin nos ofrece la posibilidad de introducir una nueva f.d.t y su conversin al
espacio de estados en forma observable o controlable.
Salir de svstuff
0.1
Respuer escaln
0.05 ....
r~
ffiallme~cin
---- ..l.------;/~r-----------------------------
//
0.5
1.5
ime,s
tr2cct
Tc=tr2ccf(A,B)
tr2ocf
To=tr2ocf(A,C)
Td=tr2df(A)
...
tr2df
..... - -~
-~-~~-- -~--Las tres funciones, utilizadas sin argumentos de salida, como es habitual en Matlab, nos
presentan directamente las matrices de transformacin.
8. Espacio de estados(2)
Solucin de la ecuacin de estado
0.01
0.005
0.02
0.1
-0.02
PRACTICAS DE AUTOMATICA
~
-"'
......
VU
-~-
---~
.,
. .........
. ....:':
Espacio de estados
8.2
Espacio de estados
8.3
La solucin de la ecuacin de estado, estos es: calcular X1 (t) ... Xn(t)
integracin de la ecuacin
de estado
(8.1)
i=Ax+Bu
rr,.riz do.a::tk;acpn
i tr.icia. e1<a1 rontmt
r"m
mx1
0 -if. 1
nm
u (t)
(?.%
i:(t)
X(t)
++
matriz oo apt~::a,;:t6n
ci6l ,:;onlrol
;-, lniernaoores
on p,c~.:,1010
nxn
Figura8,1
Aplicando transformadas al diagrama de la figura 8.1 nos queda el diagrama de bloques de la figura 8.2 y, simplificando, el de la figura 8.3.
:-:rx 1
u(s)
r ,, 1
x (s)
Figura 8.2
:r .
X( O')
"' , r.
e1
-
SI - A
f'j
~!~)
del c or.troi
,j ; 1
Y(s)
rnatnz de ,.,t,servac11 in
,t, (sj; , mat riz resolvente ,
Fgura8.3
<!>(,)
Ecuacin de estado
Ecuacin de salida
8.4
Espacio de estados
l-14 l[ l[~ l
l
l[ l
A
~(!)
X2(t)
.i-3(!)
-36 -160
1
O
o
o
X (t)
X2(t)
+ 0
X3(t)
r{t)
{8.2)
y(t) = [ O O 100 ]
X (t)
{8.3)
x2(t)
[
X3(t)
es excitado por un escaln unitario, r{t), con las condiciones iniciales
(0)
x2(0)
X3(0)
-0.0327
-6.0915e - 004
0.0088
(8.4)
lever
A=(-14-36-100;1 O O;O 1 O];
[Ft,Fs]=lever(A);
Comprobacin CORRECTA .
Funcin trigonomtrica (s)eno/(c)oseno a utilizar: s
Ft
Ft
=
1.1e'(-12.1!) - 0.3e'(-0.9t)sen(3.5t+0.2)
-0.1e'(-12.1t) + 0 .1e'(-0.9)sen(3.5t+1 .5)
0.01e'(-12.1t) + 0.02e'(-0.9t)sen(3.5t-0.3)
2e'(-12.1t) - 4.3e'(--0.9t)sen(3.5t+0.5)
14.1e'(-12.11) - 14.1e'(--0.9t)sen(3.5t+1 .5)
-0.2e'(-12.1t) - 1.2e'(-0.9t)sen(3.5t-1.4)
-1 .2e'(-1 2.1t) - 3.9e'(-0.9t)sen(3.5t-0.3)
0.01e'(-12.1t) + 0.3e'(-0.9t)sen(3.5t-0.04) 0.1e'(-12.1t) + 1.1e'(--0.9t)sen(3.5t+1 )
A la hora de transcribir los resuhados de Matlab hemos prescindido de cifras decimales a fin de que cupiera el resuhado
y darle apariencia matricial. Se imagina Ud. el tiempo que llevara este clculo efectuado manualmente?.
La matriz <l>(s), con el truco de sacar el denominador como factor comn ocupa un espacio razonable. La colocacin
de filas y columnas depender del tipo de letra que Ud haya escogido para Matlab, aunque siempre, yendo de i:zqda. a
dcha. y de arriba a abajo identificar Ud. perfectamente el par ij del subindicado correspondiente.
Fs =
1/(s"3 + 14 s2-+- 36 s-+- 100) .*
s2
-36s-16J
-16Js
s2 + 14s
-100
s
s2 + 14s + 36
s + 14
1
s'
-36s-160
-160s
s- 3 + 14s2 +36s+ 160 s-3 + 14~ 2 +36s+ 160 s- 3 + 14s 2 +36s+ 160
<l>(s) = 1
s
s + 14s
-160
s- 3 +14s 2 +36s+l60 s- 3 +14s 2 +36s +l60 s-3 +14s 2 +36s+l60
1
s+ 14
s 2 + 14s+36
3
2
3
3
2
L s- +14s +36s+l60 s- +14s +36s +l60 s- +14s 2 +36s +l60
1
J
Espacio de estados
8.5
Denominador comn
d=[1 14 36 160];
Productos escalares
nx01=[ns11*x01+ ns12*x02+ ns13*x03];
nx02=[ns21 *x01 + ns22*x02+ ns23*x03];
xl1 =
0.08809*exp(-12.12*t) + 0.121*exp(-0.9406*t).*sin(3.51*t-1 .51)
xl2=eval2(iltl(nx02,d,O,'s'))
xl2 =
-0.007269*exp(-12.12*t) - 0.0333*exp(-0.9406*t).*sin(3.51*t-0.2013)
xl3=eval2(iltl(nx03,d,O,'s'))
xl3 =
0.0005998*exp(-12.12*t) + 0.009166*exp(-0.9406*t).*sin(3.51*t+1 .108)
Espacio de estados
8.6
!,,.
Bu(s)=[
n+u l
i
(8.6)
xF1 =eval2(iltl(ns11,df,O,'s'))
xF1 =
-0.08828*exp(-12.12*t) + 0.08836*exp(-0.9406*t).*sin(3.51*t+1 .528)
xF2=eval2(iltl(ns21 ,df,0,'s'))
xF2 =
O. 007285*exp(-12.12*t) + O. 02432*exp(-0.9406*t).*sin(3.51 *t-0.3042)
xF3=eval2(iltl(ns31,df,O,'s'))
xF3 =
-0.0006011*exp(-12.12*t) + 0.00625 - 0.006693*exp(-0.9406*t).*sin(3.51*t+1.005)
l[
=
O, 088e- 12. 121 +O, 121e---0,941 sen (3, 5 lt- l, 51)-0, 088e- 12. 121 + 0 .088e---0,941 sen (3, 5 lt+ 1, 528)
--O, OO?e-12. 121 +O, 033e---0941 sen (3, 5 lt-0, 201) +O, OO?e- 12. 121 +0.024e---0941 sen (3, 5 lt-0, 304)
0,0006e- 12. 121 +O, 009e---0941 sen (3, 5lt+ !, 108)-0, 0006e- 12. 121 +O, 006-0.007e---0941 sen (3, 5 lt+ 1)
trayectoria de estados
plot3
Es la curva que representa la evolucin interna del sistema. En nuestro caso podemos dibujar la curva tridimensional, cuyos puntos representan las temas de
valores adoptados en el tiempo por cada componente del vector de estado, mediante la funcin plot3.
Los ejes, x,y,z, representan respectivamente la terna x1 ,x2,x3.
Espacio de estados
view
8.7
plot3(xT1 ,xT2,xT3)
hold
Current plot held
Dibujamos la proyeccin horizontal de la curva para detemrinar visualmente su posicin
z3=0*xT3;
plot3(xT1,xT2,z3)
Valores actuales del azimut del eje x y la elevacin del punto de vista
(a,e]=view
a=
322.5000
e=
30
Conservando el azimut aumentamos la
elevacin
view(322.5,45)
0.01
---
0.005
5
X
10-3
0.02
o
-5
-10 -0.04
Figura 8.4
La figura 8.4 representa la trayectoria de estados con las condiciones iniciales dadas y
ante una entrada escaln. Compare esta figura con el dibujo de la portada de esta prctica
que representa la trayectoria de estados del sistema con la misma entrada y sin condiciones
iniciales.
Observe como la terna de valores correspondiente al rgimen permanente acta como un
atractor.
Cuando n > 3 no se puede obtener la representacin grfica de la trayectoria de estados,
pero entonces caben dos opciones: obtener la representacin de cada componente del vector
de estado versus tiempo a travs de Simulink o mediante las funciones lsim o initial.
1 Suponiendo que ya tiene defdas A, B, C, y D, escriba en la lnea de
edicin
simulink
Se le abrir la ventana
=I
Ble
simullnk
f_dit
Qipboard
-.ptions
~imulatlon
Style
l 1
-..
~ ~ ~ ~ ~ ~ ~ --.
l ..
Sources
Sinks
Di serete
... 1
=-1
file
1... 1
Untltled
~llpboard
.fdlt
-.ptlons
~lmulatlon
S!yle
-..,
f'
.__
H I !
~~'-"'
.. ...
Espacio de estados
8.8
3 Haga
<? <?
Sources
....
file
~lipboard
.E.dlt
.Qptions
.S,imulation
S:tyle
Signal Source
Library
1'
O}
Ste Fcn
<?"t:J ~
=I
Untitled
.!;,dit
file
ipboard
.S,imulation
. . .
.Qptions
S:tyle
-.1'
[I}
Step Fcn
I+
H 'l
--+
ipboard
.S,imulation
.E.dit
.Qptions
S:tyle
DJ
.,
........
Untitled
file
=Ax+Bu
y =Cx+Ou
Step Fcn
State-space
=1
..,:1 ...
trayec
file
.Edlt
.cllpboard
~lmulation
DJ
Step Fcn
~i . , -
.Qptlons
S:tyle
x' =Ax+Bu
y = Cx+Du
State-space
,...1'
-+
, . . c:o
8 Haga <? <? sobre el bloque Step y en la ventana de dilogo que se abre
escriba los parmetros que figlll'llll en los cuadrados de la figura
Espacio de estados
8.9
Step Fcn
Blockname: step Fcn
Blocktype:
OK.
step Fcn
Gam;et
Help
Steptime:
I
lnitlal value:
11
Final value:
11
State-space
Blockname: state-space
Blocktype:
Cancel
,~
OK
state-space
J:lelp
A:.
B:
C:
D:
ID
lnitial conditions:
1 [-0.0327
-6.0915e-00-4 0.0088]
1
linsim
-0.01
-0.03
Figura 8.5
2
TI me
Espacio de estados
8.10
En la ventana grfica de Matlab aparecen las tres curvas que representan
la evolucin en el tiempo de cada variable de estado. Figura 8.5
8.1
lsim
... Tras comparar las figuras 8.4 y 8.5, coloque en los marcos que rotulan
cada curva de la figura 8.5 el ttulo correspondiente; x1 , x2 y X3
Otra opcin ms expeditiva a la hora de la representacin grfica de la evolucin de cada
estado en el tiempo, la proveen lsim o initial, Cfr.: 6.16
[Y7,X7]=1sim(A,B,C,D,U,t,[x01
x02 x03]);
plot(t,X7( :,1))
hold
plot(t,X7(: ,2))
plot(t,X7(:,3))
0.02~-~--~--~---.---~-~
-0.03
Figura 8.6
clculo analtico de la salida La salida, y(s) , es funcin de la variable de estado total y de lamatriz de aplicacin directa del control, D, operando sobre la entrada.
Si D ::. O
y(s) ==Cx 1(s)+Cxj(s) + Du(s)
En nuestro caso, D
(8. 7)
Como C = [
y(t)
oo
(8.8)
100
= 0, 06e- 1212' + O, 9e- 094'sen(3, 5 It+ 1, 108) -0, 06e- 1212' +O, 6 -0, 7e- 094'sen (3, 5 It + 1)
0.085
lsim(A,B,C,D,U,t,[x01 x02 x03]);
0.08
a.i
0.075
- - -- -- - - --- - -
::::l
0.01
< 0.065
0.06
Figura 8.7
0.055
0.050
3
4
Time(secs)
Espacio de estados
8.11
Haga ~ ~
OK
cancel
.ttetp
Time range:
16
y-min:
y-max:
0.1
Une type (rgbw-:tt):
\y-
1
1
Euler
O Runge-Kutta 3
O Runge-Kutta 5
Gear
O Adams/Gear
Adams
Unsim
StartTime:
o.o
Stop Time:
16
0.0001
10.1
lie-3
Tolerance:
Retum Variables:
OK
cancel
'
Espacio de estados
8.12
Se abrir la ventana grfica y un punto se deslizar por ella, generando la
curva de salida de la figura 8,8
------ ------ ------ --- --- --- --- ----- ---- ------ -- --- ---- -- ---
-- --- ---- -- --
0.1
''
:
'
'\ : .~ --~ :
..... ,.... .. .. : ....... ; .........
o.06
\\. : /
-(
'
'
'
''
'
.''
~7 ----;-- -- ---:
'
'
'
'
0.04 : :: : :
~
Figura 8.8
:l i i i i i
O
i
6
controlabilidad y observabilidad
Los conceptos de controlabilidad y observabilidad, introducidos por Kahnan en 1.961, desempean un papel importante en el diseo de sistemas de control: Ellos detenninan la
existencia de un diseo ptimo en el espacio de estados.
Aunque la mayora de los sistemas fisicos son controlables y observables, los modelos
matemticos que los representan pueden carecer de estas propiedades.
Decimos que un sistema es controlable si de un estado cualquiera, en un tiempo finito y mediante una entrada adecuada, somos capaces de transferirle a cualquier otro estado
Decimos que un sistema tiene salida controlable, si, en un tiempo finito y mediante una entrada adecuada, se puede
transferir el sistema desde una salida inicial a otra deseada
Un sistema es observable si conociendo la entrada y la salida en un dominio finito del tiempo, podemos detenninar
completamente su vector de estado, x(t) .
Tenga en cuenta que la descripcin externa de un sistema, mediante la fimcin de transferencia, modeliza tan slo la
parte controlable y observable del mismo. Una f.d.t., en la que se ha cancelado un par, cero-polo, no es controlable u
observable; no proporciona la totalidad de informacin que caracteriza un sistema dinmico. La ausencia de cancelacin es la condicin de controlabilidad y observabilidad en el plano s.
Condicin de controlabilidad para sistemas con su matriz A en forma diagonal y con autovalores simples::
o Sistemas con entrada nica
Espacio de estados
8.13
Luego en caso de la presencia de Wl bloque de Jordan. la aparicin de ceros en tn1a fila de la matriz. B.,, que se corresponden operacionalmente con filas que no sean la inferior del bloque de Jordan, no conlleva la incontrolabilidad del estado correspondiente.
Ejemplo:
X=
Si W m S
f: ~, Hn
y=[I
-1 1
]x
l ~ ~l
=W-'B= - !H
H!]
~ l :;=~~~a2+X3
[: H~ ~ ~ t: H!} !:,:~
-bi::::~
10
1-43
B,
~~
=[
112
001
~2
X=Z=[-/
0
~2
[ ::
=>
X3
1 0
Z3=X2
=>
~::
Z2,
El cambio del componente del vedor estado. Z, lo podemos controlar a travs de la entrada por mediacin de
luego es irrelevante el cero de la primera fila de la matriz, B correspondiente a la primera fila de Jordan: Luego z I y Z2
son controlables. En cambio si provoca la incontrolabilidad de
el cero de la ltima fila de B , su cambio no puede
ser derminado por la entrada, u .
No debe extraamos que la parte controlable del sistema venga expresada en trminos de Z y no de X, no en vano la
representacin de Wl sistema, en el espacio de estados, es mltiple.
Observe la f.d.t. correspondiente
Z3
2
2
[z,p,k]=ss2zp(A,B,C,[O], 1)
z=
1.CXXXl
2.CXXXl
1
k=
1.CXXXl
p=
C(sl-A)-'B=
(s- l)(s-2)
(s- l)(s-2)(s-2)
= _l_
s-2
La f.d.t. no representa el subespacio generado por el polo 1, que genera un estado incontrolable. Tampoco representa el
ru~,cio~,:::~;'.'~1'7ffTr1[T=t:
i[[ ;: ]]=z,H;
Observamos que la componente del vedor de estado, z 1 , que se corresponde con el primer polo, 2, de la matriz,
A, carece de relacin alguna con z 1 , luego no podremos conocerla a travs del conocimiento de la salida.
matrices de controlabilidad
y de observabilidad
ctrb
obsv
Espacio de estados
8.14
e,-[ f 1
(8.10)
L cAn-1 J
Un sistema es controlable u observable, si el rango de sus respectivas matrices de controlabilidad u observabilidad es n .
Para el sistema definido en (8.5) y (8.6):
Oc=ctrb(A,B);
% Nmero de estados incontrolables
inc=length(A)-rank(Co)
inc=
1
Ob=obsv(A,C);
% Nmero de estados inobservables
inob=length(A)-rank(Ob)
inob =
1
N.B. : Estas dos funciones pueden inducir a error si las matrices tienen elementos menores que la raz
cuadrada de la precisin relativa de la computadora, eps.
Si el sistema es controlable u observable siempre se podr poner, respectivamente, en forma cannica controlable o de variables de fase, CCF, u observable OCF.
Y recprocamente: Si un sistema est en forma CCF o OCF, ser respectivamente controlable y observable.
deteccin de subespacios
controlables u observa bles Con las funciones ctrbf y obsvf podemos detectar qu componentes
del vector de estado, 'adecuadamente transformado', son respectivamente incontrolables o inobservables. Su sintaxis es:
[Ac,Bc,Cc,Tc,kc] = ctrbf(A,B,C)
[Ac,Bc,Cc,Tc,kc] = ctrbf(A,B,C,tol)
[Ao,Bo,Co,To,ko] = ctrbf(A,B,C)
[Ao,Bo,Co,To,ko] = ctrbf(A,B,C,tol)
En ambas funciones los argumentos de entrada son la matriz de evolucin del sistema, A
la matriz de aplicacin del control, B, la matriz de observacin, C, y opcionalmente. un escalar, tol, que indica la tolerancia admitida.
Por defecto la tolerancia, para una matriz 3 x 3, es 1,658 x 10-12 .
Ac, Bc,Cc, son matrices por cajas que adoptan las formas
Ae = [
ne
A21
O ]
Ae
Be= [ O ]
Be
Ce= [
Cne Ce
donde Ac constituye el subespacio controlable y ~e, el subespacio incontrolable. Be y Ce corresponden a subespacios controlables.
La matriz, Te, es la matriz de transformacin y la suma de los componentes de kc nos da el
nmero de componentes del vector de estado, (adecuadamente transformado mediante Te)
controlables, igual a las dimensiones de Ac
En nuestro ejemplo
A =[12-1;01 0;1 -43]
B=[0;0;1];C=[1 -1 1];
[Ae,Be,Ce,Te,ke]=etrbf(A,B,C)
Ae=
1 o o
-2 1 1
-4 -1
3
Be=
o
o
Ce=
-1 -1
Te=
o 1
-1 o
o o
ke=
1
o
o
1
Espacio de estados
8.15
Ac= ac=[ 1 ~]
ycomo ra ruma
Ce= ce=[ -1 1 ]
Be= be=[~]
de::=::::~[~ ~ooi'
1
os~ es:::~ntrowbles
]te[::]
1
La nueva ecuacin de estado tendr la forma
X3
V3 =X3
!2 ~ ~ ][ ::
v=Acv+Bu=[ ~: ]=[
]+[ ~]
: ~=~~v1 +v2 + v3
V3
-4 -1 3
V3
1
V3 =-4v1 -v2 + 3v3 +u
donde observamos que mediante la entrada nos es imposible controlar el cambio de la componente, v1 ; sin embargo podemos controlar el cambio de v2 a travs de V3 , cuya variacin
nos es dado controlar mediante una adecuada entrada.
Ha de verificarse que las funciones deducidas mediante
M(s) = Cc(sl-Ac)B c = C(sl-A)B
sean iguales. Ya hemos visto que
(s - l)(s - 2)
M(s) = C(sl-A)B = (s- l)(s- 2 )(s- 2 )
Af(s )=Cc(sl-Ac)B c =[-1
1J[
2
(s- ;~- >
- (s-2)(s-2)
(s-:~:- >
(s-2)(s-2)
][O]=
s -2
1
(s - 2)(s - 2)
de donde ha desaparecido el polo que genera la componente incontrolable, v 1 . Si continusemos nuestro estudio, haciendo, 'mutatis mutandis', lo propio con la funcin obsvf, obtendramos como f.d.t.
s-1
(s -l)(s-2)
que modelizara la parte observable del sistema, mientras que ~ 2 describe tan slo la parte
controlable y observable del sistema. De hecho en nuestros cmputos es esta la f.d.t.
PRJNCIPIO DE DUALIDAD
Llamamos At . matriz transconjugada de A , a la matriz cuyos elementos, a;i E At
son los conjugados de los elementos aii E A : Ates la transpuesta de la conjugada de A.
Llamamos sistemas duales a los que verifican
i=Ax+Bu
y=Cx
n=Biz
Todo lo dicho de la controlabilidad de uno vale referido a la observabilidad del otro y recprocamente.
8.2
:=[ ~ ~ ~
-2 O -2
]x+[ ~l
-1
]u
y=[ - 2 1 O
]x
Espacio de estados
8.16
N.B.: En el contexto del espacio de estados en que ahora Ud. se encuentra, a fin de evitar
redundancias, consulte la ayuda referida a las siguientes funciones:
svstuff (Csad)
initial
linsim
campan
canon
tf2ss (Csad)
zp2ss (Csad)
PRACTICAS DE AUTOMATICA
i
1
9.2
9.3
En 1.948 Evans propuso un mtodo para hallar el lugar geomtrico en el plano complejo,
de las soluciones de la ecuacin
el lugar de Evans
D(s)+'A.N(s)=O
l+'A.
i~:;
(9.1)
cuando vara 'A.,donde N(s) y D(s) son polinomios de coeficientes reales en la variable
compleja, s. Tales soluciones son las races del polinomio resultante de la suma .
D(s)+'A.N(s)
(9.2)
Es importante fijarse en la arquitectura de las ecuaciones 9 .1 .: Cualquier parmetro de W1a f.d.t.LA puede desempear el
rol de A. con tal de transformar la E.e.Le. v.g. :
Deseamos hallar el lugar geomtrico en el plano s de los polos a lazo cerrado del sistema
s
(0.5s+ l}(s+l3)
cuya f.d.t.LA. es
6s
(9.3)
(s+2)(s+l3)(s+ 1)
donde K= 6, cuando vara 13, valor absoluto del polo, de cero a +<>o . Su E.C.Le ser
65
=0
(s+2)(s+l3)(s+1)+6s=O
(9.4)
(s+2)(s+ 13)(s+ 1)
Se trata ahora de darle a la ecuacin, 9 .4, la arquitectura de la ecuacin, 9. l.
l O A fin de hallar todos los monomios, en que participe 13 como factor, eliminamos parntesis que le afecten
s 3 + l3s 2 + 3s 2+ 3l3s+ 2s+213 +6s = O
(9.5)
2 Sacamos a 13 como factor comn
s 3 +3s 2 + 8s + 13(s2 +3s +2) = O
(9.6)
3 Dividimos ambos trminos de la igualdad por la suma de todos los monomios con sus correspondientes
signos, que no contienen a 13
1+13 s2+3s+2 =O
(9.7)
s 3 +3s 2 +8s
Ecuacin que ya dispone de misma arquitectura que la segunda de 9 .1. La f.d.t.LA" generada de W1 sistema ficticio ser
A. s 2 +3s+2
fd
. .t.LA .fi1lcta=.., 53 + 352 + s
(9.8)
8
El mismo cometido que desempeaba K en la E.e.Le
l+K
s
=0
6
(s+2)(s+l3)(s+l)+Ks=O
(9.9)
(s + 2)(s+ 13)(s + 1)
lo desempea ahora 13 respecto a la f.d.t.LA. ficticia, 9.8.
!+
(9.10)
es la f.d.t.u y las soluciones de la ecuacin son las races de la ecuacin caracterstica. a lazo cerrado, o polos del sistema, a lazo cerrado. A cada valor de K le corresponder un conjunto de puntos en el plano complejo, que llamaremos
n-pla, (lase enetupla). de funcionamiento del sistema de orden n, para un valor derminado de K. Esta n-pla sern los
polos a lazo cerrado que tendr el sistema cuando funcione con ese determinado valor del factor de ganancia.
A este lugar geomtrico le llamaremos LUGAR DE LAS RAlCES, o, abreviadamente, LRR.
K,<O
K,>O
NI
K1DI
NIN2
f.d.t.Lc. =
l+~DlD2
K<.O
NI
K1DI
D1D2+K
NIN2
'-y'
K<O
NIN2
f.d.t.Lc. =
1
~D1D2
K<.O
DID2-K NIN2
'-y'
K<.O
9.4
K= -
fd
.t.I..A.
K=l
-s
=
-s
(s+ l)(s+2)(s+3) s 3 +6s 2 + lls+6
K=l
K=-1
fd.t
i..c.
~"
K s(s+2)
(s+ l)(s+2)(s+3)+ K s
fd.L
=
LC.
K s(s+2)
(s + l)(s+2)(s+3}-K s
K l
K=-1
fd.t.
i..c.
(9.11)
-s2 - 2
s 3 +6s 2 + 10s+6
f.d.t.
L.c
sl + 2
s 3 +6s 2 + 10s+6
(9.12)
Mientras los denominadores de las funciones 9.11, igualados a oero, son la ecuacin implcita de todas las ramas del lugar, cuando varia K, los de las ecuaciones 9.12 representaran nicamente la n-pla de funcionamiento para K=-1 y
K= l
Como la correspondencia biWlvoca se establece, no entre funciones de transferencia y lugares, sino entre ecuaciones
caractersticas, a lazo cerrado y lugares, dos sistemas distintos como en nuestro caso pueden tener el mismo lugar inverso de las races.
2.5
1.5
-1
-2
.51
segundos
-2.sf'---~-~--~------~----'
-5
-'I
-3
-2
-1
Eje real
Naturalmente sus respuestas indiciales, (al escaln W1itario), son distintas: Sus ff.dd.tt.Lcno tienen el mismo
numerador.
N.B.: Esta defmicin que hemos dado del LIRR, en la que se incluyen como lugares inversos de las races los sistemas
con realimentacin positiva, prima la igualdad de los polinomios caractersticos a lazo cerrado. cuando tratndose de
un procedimiento grfico parece ms lgico decir que en el primer caso se trata de W1 LIRR y en el segundo de W1
LRR, ya que las curvas estn parametrizadas por R y por R. y por lo tanto sus lugares de Evans son distintos. En
Matlab nos encontraremos con que estn parametrizados con valores absolutos iguales pero con nmeros de signo
contrario.
CRR
v LIRR
Ramas
Nmero
El lugar tendr tantas ramas como races del sistema a lazo abierto, n
Origen y fin de cada rama
Cada rama comienza en un polo, con K =O, y acaba en un cero o en un punto del infinito con
K =+oo, o con K =-oo, si se trata del lugar inverso.
Ganancia crtica
Ser el valor del factor de ganancia que corresponde a los puntos en que dos o ms ramas cortan el
eje imaginario, ellos marcan la frontera entre estabilidad e inestabilidad.
Sentido de crecimiento de K
Coincide con el de polo ~cero o pol~punto del infinito. Suele indicarse el sentido con una flecha superpuesta a cada rama.
9.5
Notacin
Los polos, con un aspa y los ceros, con un circulito.
Eje real
El eje real, en su totalidad, pertenece siempre al lugar completo de las races, al LRRC
Asntotas
Tangentes a las ramas en su punto del infinito: describen el comportamiento del lugar cuando
K ~ oo Si m = n no hay ramas con puntos en el infinito
Centroide
Es el punto de interseccin de las asntotas con el eje real
Lugar geomtrico de
constante
Cada radio, con centro en el origen, es el lugar geomtrico de las races a quienes les corresponde
el mismo valor de ~
precauciones a tomar a la
Las toolboxes con que Ud. podr construir tanto el LRR como el
hora de introducir la f.d.t.LA. LIRR, LCRR o el CRR poseen unas funciones que le requerirn como
para definir un lugar de
argumentos de entrada el numerador y denominador de la f.dt. LA
Evans
Si Ud. no reduce el factor de ganancia K a la unidad, Matlab tomar,
como unidad de parametrizacin de las ramas del lugar, el valor del
factor ganancia que Ud. haya introducido.
Incluso cuando se trata de hallar el LRR de un sistema de segundo orden puro, cuya
f.d.t. LA es:
25
(9. 13)
- -(!)~- - =2s(s+2~ron) s +7s
debe Ud. introducir
_l_
(9.14)
s 2 +7s
con la ventaja adicional de que, al leer el parmetro, K, del par de puntos de la n-pla,
estar Ud. leyendo el valor de ro~ .
Si Ud. quisiera dibujar el LRR del sistema
G(s) =
s
y
H(s) = - 3(0.5s+ l)(s+3)
s+5
La f.d. t.LA de donde extraera el numerador, n1, y el denominador, d 1, tendra que ser
G1(s)H1(s) = (s+2)(s+3)(s+5)
1 10 31
rlocus(n1 ,d1)
30
9.6
rlocus
rlocus(n1 ,d1)
Dibuja el LRR, denninado por la f.d.t.L.A' nl/dl, tomando, como unidad de paramrizacin de ramas, el valor del
factor ganancia de nl/dl. De ah que sea conveniente transformar previamente nl/dl a fm de que el valor de K sea la
unidad
R=rlocus(n1 ,d1)
[R, k]=rlocus( n 1, d 1 )
Adems de la matriz R, genera el vector fila, k, con los valores de k que ha utilizado el programa
polo
doble
"'
!o
"'
-1
-2
-3
--4
-8
-8
-2
-4
Real Axis
9.7
Deseamos dibujar la n-pla que corresponde al valor K = 50.
Se construye primero el LRR. Se bloquea el dibujo mediante hold y a
continuacin se dibuja la n-pla, correspondiente al valor 50 y a un
valor que sospechamos
4.--..---~----,.~~~~~~~~~~~~~~~
caiga fuera de la escala,
en nuestro caso, 10000
3
rlocus(n1 ,d1)
axis([-8,2,-4,4])
2
fJ)
hold
Current plot held
rlocus(n1 ,d1 ,[50
100001)
K=50
K=50
!o
ro
.5 -1
K=50
-2
-3
-4L--"-~---'-~~~-'-~~~-'-~~---'~~~..:...J
-8
lugares geomtricos de ~ y
ro" constantes
sgrid
-4
-2
Real Axis
-6
Puede Ud. dibujar una retcula con tales lugares mediante la funcin
sgrid
sgrid
sgrid('new')
sgrid(z,wn)
Wl
4,----,~~~
.. ~,.-.-.~~~~~~~~~~
y-:. __;/: ..
. ..:.
rlocus(n1 ,d1)
V=[-8,2,-4,4];
axis(V)
axis equal
sgrid
-3
-'!a
~/ .
,.
-6
-4
-2
Real Axis
-4
-2
Real Axis
3
2
<I>
~C)
(\1
o ---------
. -1
-2
-3
""!a
-6
9.8
(s+l)(s+3)
(s+5)(s 2 +4s+20)
LRR
-5~-~--~-~-~--~-_....,
-6
4
~
O
2
4
6
Real Axis
Multiplicamoe por -1 el
numerador
LIRR
n1 i=-1*n1;
d1i=d1;
figure
rlocus(n1i,d1i)
axis([-6,3,-5,5])
axis equal
(J)
~o, O ---- )e
e--- ----....--+-------4---l
('ll
-s~-6--4~---2~-~o'---~2--~4--6w
Real Axis
s~-~----~-~-----
LCRR
figure
rlocus(n1 i,d1 i)
axis([-6,6,-5,5])
axis equal
hold
Current plot held
rlocus(n1 ,d1)
gtext('LCRR')
(J)
!o
__
('ll
~'----~--~--'--~--~--....J
-6
-2
O
Real Axis
9.9
pzmap(n1 ,d1)
Dibuja el mapa de polos y cer-os en el plano complejo.Argumentos de entrada: numerador y denominador de una f.dt.
[p,z]=pzmap(n1 ,d1)
pzmap(A,B,C,D)
Dibuja el mapa de polos y ceros en el plano complejo.Argumentos de entrada: Matrices de espacio de estados
[p,z]=pzmap(A, B, C, O)
pzmap(p,z)
2~~~~~~~~~~~~~~~
na=[1 3 5 8];
da=[1 6 12 18 24 36];
pzmap(na,da)
axis equal
o
1.5
X
X
,,, 0.5
!
<ll
X - -0 - - - -:--- -
-0.5
-1
X
-1.5 ~
-24
clculo de K y de la n-pla a
la que pertenece un punto
sealado por el ratn y dibujo de la n-pla
rlocfind
-2
Real Axis
[k,npla]=rlocfind(n1 ,d1)
[k,npla]=rlocfind(A,B,C,D)
Id en el espacio de estados
[k,npla]=rlocfind(A,B,C,D,p)
Id en el espacio de estados
rlocfind(n1 ,d1)
Requiere dibujo previo del LRR. Sin argumentos de salida. -O' en punto
deseado y en la ventana de edicin aparecern las coordenadas complejas
del punto marcado y el valor de K que paramdriza el punto del LRR ms
proximo al punto marcado
k1=rlocfind(n1 ,d1)
9.10
el LRR y el espacio de
estados
..,
C-D(l+Df'C
Figura 9.2
Figura 9.1
- - -
Figura 9.3
Si!!>tema equivalente
------1
K --------
Figura 9.4
Figura 9. 5
Naturalmente esto exige que las variables de estado sean magnitudes fisicas accesibles para su realimentacin. Si no lo
fueran y el sistema fuese observable podramos reconstruir las variables de estado mediante un observador de estado.
Deduzcamos las ecuaciones dinmicas de la la planta de la figura 9.6, aislando el ltimo bloque
temporalmente
Z,(s)
s+l
igura 9.6
Z 1(s)
1
Z2(s)
s
Z2(s) __l_
Z3(s) - s+ 1
ZJ(s)
1
U(s)
s+5
A1 =
O 1
O -1
o o
C1=ll O O]
D1=0
(9.16)
9.11
Figura 9.7
Como no hay cancelacin cero-polo, el sistema es controlable y podemos ponerle en forma CCF o de
variables de fase.
Tras tres permutaciones, punto de toma-bloque, el sistema queda
Z,(s)=Y1 (s)
l
s(s+ l )(s+S)
Figura 9.8
Z,(s)=Y, (s)
Z,(sj-Y, (s)
y ,\S)
Figura 9.9
Haciendo k 1 =g 1 k 2 =g 3 + g 2 k 3 =g 3 y tomando como variables de estado la salida y sus
derivadas tenemos el sistema en forma CCF en la figura siguiente:
X,(s)- Y, (s)
s(s+ l )(s+S)
Figura 9.10
Su f.d.t. L.A. es
k3s 2 + k 2s + k1
s(s+ l)(s+ 5)
(9.17)
y SU f.d.t.L C
IOa
(9.18)
Hallamos las nuevas matrices de las ecuaciones dinmicas, en forma controlable, sin realimentacin del vector de estado:
A1=[01 0;0-11 ;00-5];
B1=[0;0;1];C1=[1 OO];D1=[0];
svstuff(A1,B1 ,C1 ,D1)
Option? > t
Choose State Transformation: CCF OCF DF > ccf
Transformation matrix T is:
1
O
O
1
O
O
Abar:
O
O
1 O
O 1
-5 -6
Bbar:
o
o
1
Cbar:
O O
9.12
Mp =0.043 =e2
ts
21; +3
= la!
S=
l!n0.0431
J1t +(ln0.043)
2
=0 _7076
=- 2-0,7076
+3 =-o 708
5.65
'
2
~ <J
,,
La figura 9 .11 representa el LRR del sistema sin realimentacin de estado
.~' '
..
/' .'
+~---------- - - - - ~-~-~:~;J;_~-~:-11
-1
-2
9.1
~ Demostrar que con una simple modificacin del factor ganancia es imposible
lograr que el sistema cumpla las especificaciones anteriores
place
acker
Figura 9.11
k=place(A,B,p)
k=acker(A,B,p)
En nuestro caso
A=[O 1 O;O O 1;0-5 -6];B=[0;0;1 ];
C=[1 OO];D=[O];
p=[-100-0.7~+j*0.707 -0.700-j*0.707];
> k1=place(A1,B1,p);
place: ndigits= 16
> k=place(A,B,p);
place: ndigits= 16
k=
100.1113 137.0011 95.4100
9.13
Las matrices de evolucin del sistema, ya realimentado, a lazo cerrado y en las dos versiones, sern
Ae1=A1-B1*k1
Ae1 =
O
1.0000
Ae=A-B*k
Ae=
1.0000
1.0000
-100.1113 -142.0011 -101.4100
-1.0000
1.0000
-100.1113 -42.1851 -100.4100
i= (A-B k)x+Bu
(9.19)
y=Cx+Du
y su f.d.t. L.c., equivalente, naturalmente idntica en ambas versiones, es
[ne1 ,de1]=ss2tf(Ae1 ,B1 ,C1 ,D1)
ne1 =
de=
1.0000 101.4100 142.0011 100.1113
roots(de)
ans=
1.0e+002.
-1 .00000000131854
-0.0070799 + 0 .0070700i
1.0000
-0.0070799- 0.0070700i
Luego la f.d.t.L.c del sistema contando con el bloque, que hemos operativamente aislado, ser, dando
valores a 9. 18
IOa
s 3 + 101 , 4160s 2 + 142, 601 ls + 100, 1113
Si queremos que el sistema no cambie de tipo, a fin de satisfacer e,sp = O necesitamos hacer
a= 10, 01113
Por lo que la f.d.t. L.c ser
100, 1113
(9.20)
s 3 + 101 , 41 60s 2 + 142, 60lls+ 100, 1113
Su f.d.t. LA.' sustituyendo valores en 9.17
2
2
Gi (s)Hi (s) = k 3s + k 2s + k, = 100, l l 13s + 137, 60lls+ 95,4160
(9.21)
s(s+ l)(s +5)
s(s+ l)(s+5)
Como vamos a introducir en Matlab la ecuacin 9.21 , para saber la n-pla de funcionamiento tendremos que decir al programa que nos muestre la n-pla correspondiente al valor del factor ganancia
igual a uno.
n3=[100.113 137.0011 95.4100];
d3=[1 6 5 O];
rlocus(n3,d3)
axis([-6, 1,-2,2]);
2~ ~ - - - ~ - ~ - ~ - . . . . . - - - ,
1
1.5
1
'1
"' 0.5
1
1
.s"' -0 .5
-1
Figura 9.12
1
. -- ---- ---- --- - ------- - ----><---+-,,:--- ---~
/
-1.5
-~
figure
rlocus(n3,d3)
axis([-1 .5,1,-1,1])
-5
-4
-3
-2
Real Axis
-1
0.5
sgrid(O.700,0)
.la
Figura 9.13
"'
..5
0 .5
-1
-0.5
O
Real Axis
0 .5
9.14
figure
k7=[1 2] ;
rlocus(n3,d3,k7)
axis([-1,0.25,-0.75,0.75])
axis equal
Figura 9.14
0.6
0.4
"' 0.2
1.2~---~---~---~---~
td=1.443
tr-=2.149
ts=2_909
Mp=4_3%
tp=4.44
Q_6
0_4
0_2
4
Time,s
Figura 9.16
~w
10a
G ( )- s 3 +10l,4160s 2 +142,6011s+100, 1113
q s - 1 10a
s 3 + 101 , 4160s 2 + 142,601 ls+ 100, 1113
G (s) =
eq
10a
Observe que para que el sistema siga siendo de tipo, 1, esto es: tener un polo en el origen, a lazo
abierto, es necesario que a= 10, 0113 _
G (s)q
eq
,-,o
100, 1113
s 3 + 101,4160s2 + 142, 6011s
100, 1113s
s 3 + 101,4160s 2 + 142,6011s
(9_23)
= 100, 1113
142, 6011
9.15
142, 6011
(9.24)
,. /
, ,.
,.
,,
6
-,:,
::i
,. ,
""
f4
(ll
, ,.
,,
,.
.,
, ,.
,,
,.
o~'~=-~~~~~~~~~~~____,
10
segundos
9.2
opciones de CSAD
lrlplot
rlplot
rlplot(n,d)
Abre el men y Ud. no tendr que especificar la f.d.t.LAya que la especifica como argumento de entrada.
Quit
n1=[1 3];
d1 =[1 19123 395 6600];
rlplot(n1 ,d1)
Option? > !axis([-12,1,-7,7])
Press any key to continue .. .
logspace
logspace(-1,3)
9.16
linspace
linspace(0.1, 1000,30)
Crea vector fila con 30 puntos lineahmme espaciados entre 0, 1 y 1000. Progresin aritmtica para la que el programa calcula la razn.
linspace(0.1 , 1000)
logspace
'+
iliot#t++""
~2
+
a, 0 -- ----m++-+---- +- +-+-++m--- --E
+
~
- 2
e
g,
0
3 1111 1 1 11119 ( --
.l;
-12
linspace
-8
-B
-4
-2
:
:
El gradiente de densidad de
valores de K aumenta al alejarse de los polos
-12
Real
-6
-10
::
+
-10
-B
-8
-2
-4
Real
20
rlplot(n1 ,d1)
Option? > !rlocus([1 3],[1191233956500])
Option? > !axis([-15,2,-8,8]);hold
Curren! plot held
Option? > s
Enter single K value far roots > 670.3
At K= 670.3 the system roots are:
-8.3242 + 1.6356i
-8.3242 - 1.6365i
O.axx:> + 3 .4470i
o .axx:>- 3.4470i
-2.3516
Label K on graph? (yin) [n] >
a~~-~---~---~~
6
: =67
"' 2
=670
_ -2
=670
~
al' o ><-- + - - -""* - ~----
-4
-B
1s
~o
Real Axis
9.17
rlplot(n1 ,d1)
Option? > !axis([-15,2,-8,8])
Press any key to continue ...
Option? > k
Enter K values to plot > 1 :10:1CXX>
Option? > f
Dibujado el LRR tras la opcin k, podemos utilizar esta opcin para hallar el
valor de K del punto sobre el que .<f'.
El programa nos presenta la n-pla asociada, la ~ y ro del punto seleccionado y
la posibilidad de incrustar en el dibujo el
valor de K.
0
8,--- - ~ - - - ~ -- ~~.
6
-8.2857 + 1.5078i
-8.2857 - 1 .5078i
-0.0582 + 3.3995i
r1l
~2
-0.0582 - 3.3995i
"' o --------- --
,
-2.3122
f2
-4
-8~ - - ~ - - - ~ - - - - ' ~
15
10
.5
Real
rlplot(n1 ,d1)
Option? > !rlocus([1 3),(1 19123 395 650 O])
Option? > iaxis([-15,2,-8,8]);hold
Curren! plot held
Press any key to continue ...
Option? > m
Find a jw-axis crossing? (y/n) [n] > y
Entera value of K that gives Stability (0.001] >
OC()
m Mediante esta opcin podemos hallar Kc, el valor crtico de K, que nos
convierte el sistema en marginalmente
estable.
El programa le solicita, para acelerar el
cmputo. un valor de K, de una n-pla situada. en su integridad, en el semiplano
izqdo. y otro correspondiente a una n-pla
con un punto en el semiplano dcho.
Adems del valor de Kc nos presenta la
n-pla asociada y la eventual presentacin
en el dibujo del valor de Kc
10
___._
' _
.5
Real Axis
____._I__,
9.18
rlplot(n1 ,d1)
Option? > !axis([-15,2,-8,81)
Option? > k
Enter K values to plot > [1 :10:1CXXl]
Option? > t
Enter title for plot > Lugar de las races
title
Real
rlplot(n1,d1)
-15
-10
-5
Id, de ron
Real Axis
K=inf points
o
-3.0CXXle+CXXJ
-1.0CXXle+001
lnf
-5.0CXXle+CXXJ
lnf
-2.0CXXle+CXXJ+ 3.0CXXle+CXXJi
lnf
-2.0CXXle+CXXl- 3.0CXXle+CXXJi
lnf
Asymptote angles in degrees for
K>O K<O
45 O
135 00
225 180
315 270
Asymptote lntersection is: -4
Press any key to continue...
9.19
Option? > d
9.3
... Sin utilizar la toolbox CSAD , confeccione una funcin que calcule el
valor crtico del factor de ganancia Kc y los puntos de interseccin con el
eje imaginario que le correspondan con la tolerancia deseada.
Su sintaxis habr de ser
[kc,npla]=secim(n1 ,d1 ,tol)
Su funcin
9.4
6 -- : -------
LRR1
i .... [ \
'
'
\.
\\:
'
~:
:
--~-------~------..
..
'
'
..
'
'
-4
'
:
:
;::
.:--------:
.
. ------- ------- ------.
---- --~---- --- -~-- ---- - -------1- ------
--:-------:------:----.
..
..
= .LR.R2
ll .......
'
'
..''
..
'
..
-------
..
.
'
-8'---'--'-~..._~----'~~-'-~~~~------~--',.~~~~~
-14
-12
-10
-8
-6
-4
-2
O
2
Real Axis
9.20
Debe Ud. adjuntar su dibujo de los LRR, sacado por impresora y escribir en el recuadro adjunto la secuencia de funciones utilizadas
9.5
1
\
1.5
,,.--- --'\'-._
.
.2
.!
il'
::1 /
0.5
\ \
o + '
~-0.5
-1
-1.5
- 2 " - - - - - . _ __
-2
-1
__,_,.___~~-~3
eJe real
,,.
PRACTICAS DE AUTOMATICA
,/
,.:
.....
.. __,, ...-'-'"
10.2
10.3
Los elementos de referencia para una representacin polar en el plano son: Un centro, O,
una semirrecta, e, y un sentido de giro posi\
tivo para el haz de rectas de centro O y extremo, e.
Como en nuestro caso se trata de re:>presentar el mdulo y el argumento de un vector con cola en O y punta
Figura 10.1
en el afijo del nmero complejo igual a una f.d.t., G(jro) , evaluada
para una derminada frecuencia, las componentes ortogonales de tal vector, referidas a la semirrecta, e, y a una perpendicular a ella por O, coinciden con la parte real e imaginaria, y as representamos simultneamente el plano complejo
GH(s) .
Im
Figura 10.2
Re(G(...I]
Im[G<fa.il]
G(...)
... =O
lm
Sistema tipo 2
n-m=3
;
Re
Re
Sistema tipo O
Sistema tipo 1
Figura 10.4
construccin de diagramas
polares
potar
Figura 10.3
polar(fi,ro)
Dibuja los valores de ro versus fi, (en radianes), previamentes especificados en los vectores fila, ro y fi. La grfica aparece con reticulado polar.
10.4
w1=[0.5:0 .05:10];
w2=[11 :1:50];
w3=[51:10:500];
w=[w1 w2 w3];
27l
Figura 10.5
s=j*w;
ro=abs((40*(s+0.4 ). *(s+0.2))./(s.*(s+1 ).*(s+4 ).*(s+4 ).*(s+0.02)));
fi=angle( (40*( s+0.4 ). *( s+O. 2) )./(s.*( s+ 1 ).*( s+4 ).*( s+4 ). *( s+O.02)) );
polar(fi,ro,'r-')
lugares o diagramas de
Nyquist
nyquist
nyquist(a,b,c,d)
[RE,IM,w]=nyquist(a,b,c,d,iu,w)
se
(a,b,c ,d,iu,w)
[re,im ,w)=nyquist(na,da)
nyquist(na,da)
[re,im,w)=nyquist(na,da,w)
nyquist(na,da,w)
10.5
Para obtener una distribucin de densidad puntual adecuada al dibujo se recomienda la utilizacin de la funcin logspace para la generacin del vector w . Cfr.: pg 3.4
3
n 1=[O 1 2 1];
d1=[10.21 1];
nyquist(n1 ,d1)
axis equal
,f
fil
J
CD
.5"'
-1
-2f
-3
/
I
l
\
\
1
1
1
"' '-
-2
Real Axis
Figura 10.6
3
Si conociramos el margen de fase y
quisiramos dibujar la circunferencia de
radio unidad y la recta que lo determinan,
podemos utilizar el reticulado propio del
lugar de las races, colocando como primer
argumento de entrada el coseno del
margen de fase, y como segundo
argumento el radio de la circunferencia
n1=[0 1 2 1];
d1=[1 0.2 1 1];
nyquist(n1 ,d1)
hold
axis([-3,2,-3,3])
sgrid([0.8779],[-1 , 1]);
parametrizado en frecuencia
del lugar de Nyquist
Cuando deseamos que en el diagrama aparezcan marcados determinados valores de
la frecuencia, basta bloquear el dibujo,
calcular los valores de re e im para tales
valores de w y utilizar la funcin plot
n1=[7];
d1=[10.21 1];
nyquist(n1 ,d1)
hold
w=[0.1 0.2 0.5 0.8 1 1.5 2];
[re,im,w]=nyquist(n1 ,d1 ,w);
plot(re,im,'+m')
6 .---~--~---.----r---,-------,
4
r
\\
+
"-.
"
\\
-2
-4
-6L--~---'------'-----'----'------'
-2
Figura 10.8
10
10.6
n1=[7];
d1=[10.21 1];
w=[logspace(-1, 1, 100)];
s=j*w;
l
!\
-5
5
Figura 10.9
15
10
El efecto analtico de un retardo sobre una f.d.t. es multiplicarla por e-J"" , siendo 't el
tiempo de rardo en segundos. El mdulo de la f.d t. no sufre alteracin, sigue siendo el
mismo para la misma frecuencia, pero su argumento experimenta un decremento angular,
-ro,:, distinto para cada valor de la frecuencia y progresivamente creciente en trminos
absolutos con ella. Grficamente podemos construir el diagrama de Nyquist para el sistema con retardo, aplicando. en
sentido horario, a cada punto del lugar de Nyquist del sistema sin retardo, un giro de centro en el origen y ngulo ro,:,
derminado por la frecuencia que parametriza el punto.
Este efocto de caracoleo en tomo al origen provoca una disminucin del margen de fase, <l>m que puede llevar el sistema a la inestabilidad.
Calculemos el retardo, 't, que convierte en inestable el sistema cuya f.d.t.LA.es
200
GH(s) = (s+ 14)(s+8)
.
200 e-.it.,
GH(jro),= (s+l 4)(s+ 8)
(10.l)
(10.2)
El decremento de argumento aportado por el elemento de rardo, -ro,:, deber reducir a cero el margen de fase del sistema
12001
_
200
=1
( 10.3)
IGH(Jro,JI = 1 =>
l;ro, + 141 [/ro,+ 81 (-ro+ 112) z +484ro
"'
14
. ' O
<l> m+ L e-JU,,=
'
=>
1.5 ~ - - - - - . - - - ~ - - ~
(10.6)
2c---~-----------,
T=0.15s
_;,... ....+-..._
/"
'/'
I
I
0.5
(10.4)
(10.5)
---~
'
:
:
.. ,
'
\_
... ..
..
' -r
0.5
1
-1
-~2----1_ _ _ _0_ _ _ _ _ _ _2
1-5 ~ --~ 1 - - - ~ o - - - ~ - - ~ 2
Figura JO.JO
Figura 10.11
2r--------.-------,
---..
--+)- __
T=0.3s
"'
I
\
o ........
---..
"' '\
\
+---- --
-1
-~2-----1~---o~--~--~2
-~2----_~1____0_ _ _ _ _ _ _2
Figura 10.12
Figura 10.13
10.7
Para el trazado de los diagramas de las cuatro figuras precedentes se ha utilizado una aproximacin de Pade de 7 orden.
nyquist(n1 ,d1)
[np,dp]=pade(0.1925,7);
nr=conv(n1,np);
dr=conv(d1 ,dp);
nyquist(nr,dr)
gtext('T=0.1925')
't = O, 3 s
[nc1 ,dc2J=cloop(nr,dr);
roots(dc2)
ans =
1.0e+002 *
-1 .3217
-0.6377 + 0.7910i
-0.6377 - 0.7910i
-0 .1765 + 0.6251 i
-0.1765- 0.6251i
-0.0895 + 0.3327i
-0.0895 - 0.3327i
0.0000 + 0.0898i
0.0000 - 0.0898i
[np3,dp3]=pade(0.3,7);
dr3=conv(d1,dp3);
nr3=conv(n1,np3);
[nc3,dc3J=cloop(nr3,dr3);
roots( dc3)
ans =
-99.8175
-42.2360 +59.6725i
-42.2360 -59.6725i
-9.0558 +42.1147i
-9.0558 -42.1147i
-3.6095 +22.9874i
-3 .6095 -22.9874i
0.4767 + 6.7682i
0.4767 - 6.7682i
Dtjando siempre a salvo la indiscutible utilidad de los diagramas de Nyquist para el estudio de la estabilidad relativa, para el estudio de la estabilidad absoluta de W1 sistema el criterio de Nyquist es til, y no siempre, cuando se conoce experimentalmente la respuesta en
frecuencia y no hay posibilidad de conocer los polos a lazo cerrado. Si existen medios de
software para conocer stos, como en el clculo previo, puede ser un anacronismo o divertimento acudir al criterio de Nyquist y desde luego encierra ms dificultades que su aplicacin al trazado manual: y por
supuesto, como en el trazado manual, es imprescindible el conocimiento de polos y ceros a lazo abierto.
(10.7)
3
2
-2
-3
Real Axis
Figura 10.14
y obtenemos la figura 10.15, con los puntos correspondienes a las frecuencias Oy 500,
10.8
marcados con un asterisco. La curva que dibuja el programa deja el punto crtico a la izqda. y se trata de un sistema de fase minima.
Si quisiramos saber de su estabilidad aplicando el criterio de Nyquist, hemos de acudir
al trazado manual
/
/
0.5
/
w:500 I
w=O
-0.5
-1
-1.5
fm
-2'----'-_1_ _ _0~-~1--'-~2---'-'3
1) 2 1 + Jro
(-ro2 +
1 .
GH(jro) =
e
ji
Contorno de Nyquist
1.5
Re{GH(jro)} =
Figura 10.1
l
- JOl
(-ro 2 +
(10.8)
1) 1 + ro 2
(10.9)
(-ro 2 + 1) (ro 2 + l)
Re
Im{GH(jro)} =
-~
(-ro 2 + l) (ro 2 + 1)
( 10.10)
Asntota
Observe la inadecuada definicin de la asntota en esta caso
ro-->O (-0)2
+ 1) ( 0)2 + 1)
= 1
( 10.11)
Im{GH(jro)} = O
:::::)
Re{GH(jro)} = O
{ (J)=
ro=l
Re {GH(jro)} 1
) = l
(J)=oo
Re {GH(jw)} 1
:::::)
ID=l
>=O
ro=l
={~
={~
(10.12)
( 10.13)
: . l=
c
1t=1
o;
.
.
=ooL-28- 5
4
ee'll (j2 + eeill)ee'6 (j2 + ee'9 )(j + ee' 9 + l)
e
K
e
K
K
2
: ) = lim
f
R-)oo
:~;3~:
L _. o
45
oo
(10.15)
l
=OL-5<>=
(Re2q, + 1) 2 (Re<i> + l)
4<p
(10.14)
1~~;/
(10.16)
OL90
q,
y por simetra
g'
h'
i'
l1
=
ooL45
ooL - 135
ooL45
(10.17)
Ya podemos proceder al trazado teniendo en cuenta que en el tramo i'a' se corta el eje real
y que en los puntos f ,g', i', a', c' y d' hemos de torcer hacia la derecha.
As obtenemos el Lugar de Nyquist de la figura 10.16
Aplicarnos la regla del autobs, (camin en este caso): El conductor mirando a la izqda.
vera dos coches venir de frente, N' = 2.
10.9
Im
t
d
//
Im
f
f
b'
I
i
Re
h'
f
Figura 10.16
P,.=P~
N1 =Z~-P~
L.C.
2 =Z~-0
Inestable
r=rlocus(n2,d2,[1 ,[]]);
hold
Current plot held
plot(r,'g+')
[nc2,dc2]=cloop(n2,d2);
roots(dc2)
ans =
-1 .1761
-0.2960
-0.2960
0.3840
0.3840
\\
:t
1
1
~
__ ___. __ ____ __ __ ___
.: f
+ 1.2284i
- 1.2284i
+ 0.9580i
- 0.9580i
-2 ~
-3
-2
/~,
/
o
El sistema es inestable a lazo cerrado: tiene dos polos con parte real positiva.
A efectos delestudio de la estabilidad de este sistema. a lazo abierto;
1 recuerde que el teorema del valor finaltiene una restriccin: slo es v
lido para sistemas con polos que tienen parte realy sta. negativa.
El sistema es inestable a lazo abierto: Consideremos la respuesta a un entrada escaln
unitario:
~'[
\ +]
(s 2 + l) (s+ l)
=l+0,35tcos(t+0,79)-0,9cos(t-0,59)-0,25e_,
(10.18)
El trmino o,35 t cos (c+o, 79) es indefinidamente creciente, sin ser su efecto compensado por
cualquiera de los otros.
2 SISTEMAS DE FASE NO MNIMA
Otra regla dada por algunos autores para su aplicacin con carcter de validez general
para los diagramas de Nyquist construidos con Matlab, tambin es inoperante:
10.10
(10.19)
y=-(0.5Pro +Pr)ISO
donde
k'
n1=[pmult([1 -1],[1 -2])];
d1 =pmult([1 0],[1 O 4],[1 1]);
w1=logspace(log10(0.1),log10(
1.95));
w2=1ogspace(log10(2.05),log10
(50));
w3=1ogspace(log10(50),log10(1
000));
w=[w1 w2 w3];
nyquist(n1 ,d1 ,w);
V=[-1.5, 1,-3,3];
axis(V)
cr1
\
1
1
1
'
\
\
\
-~
gi
.S
+"
o.
I' i'c'
''"
-1
/
f
1/
1/
I
lt
-2
/
f
!
I
l5
.,
1
a' -1
-0.5
Eje real
o d'
0.5
Figura 10.18
(j)""'
b'
3~~~~~~~~~~~~~~~~~
(j)""' (4 -
5
- /
(J)
2
ro
)(1
+ (J) 2 )
= -1, 25
C0Re
=Jf
10.11
~ ffi1m=,/5
Re{GHUro;)}=
O>dll
- 52 +ro 2 =0
(4- ro )(1 + ro )
= ;Im{ GH(jro )}
O)m,
= :!;j 1, 34
k'1
[
a1
= lim
c~OEe 1 9{E 2
29
ei
+4)(Ee 19
00
+1)
= ooL360 - 9 =
00
ooL450
ooL360
ooL270 0
l[ l
=
ooL90
ooLO
ooL- 90
La aportacin argumental de un vector, innit!>imal en mdulo, en !>U adicin a un vector finito, en el lmite modular
e!> nula
Para el clculo del tramo, generado por el par de polos puramente imaginarios, hemos de
hacer una transformacin del factor cuadrtico
e'
,.1
l.
=
hm
R~+oo
(ReJ: _ 1)(Re:_ 2)
Rei'P(R
,p
el2 'P
lcp
+4)(ReN + 1)
J'
l{ l
ooL - 98.14
ooL- 8, 14
ooL81.86
cp
.o. -~,..,
h'1
i
=ooL-2<>
'
[ OL - 180
OLO
OL180 0
. ..
:--'. ~-.-~C:~; :..":, .:' '1 .;: :.: a.-;;:c ,0 1 ; ...-1 :.: ' ~ ._,,:::: :-::'.: ;
conjugado!> de d'c'b'
10.12
=ooLO
a1 = ooL-90
cro =-0.85
b1 =ooL98.14
c1 = ooL8.14
d1 = ooL - 81.86
ffid) -jl.34
e1 =OL-180
/=OLO
/
e
d
JcR
t:
Figura 10.19
Re
~-
! ::: -1 -1 - 1+ 1- 1"T" 1= G
1
b'
<~
--~,
ti
'\. ~
~\~\
,_.._,
J.,
'
\:::
:~
1'
'~
cRe
Figura 10.20
Comparando el trazado del Lugar de Nyquist de la figura 10.20 con la de Matlab, figura
10.18, observamos que el programa sustituye las curvas de radio cuasi infinito por rectas,
cuando el mdulo se hace infinito en el intervalo de frecuencias especificado en w.
10.13
Y, por supuesto, como hemos evitado la inclusin de la frecuencia cero, una parte de la
curva se interrumpe antes de llegar al infinito.
Observe la correspondencia entre el dibujo del programa y el trazado manual.
El sistema es estable a lazo cerrado
N.I
2
.p'r.. "-_
. p.r .
N
. 1-:.--.z1i ...r....'""":P..r1
!7
El rol que un giro desempea respecto al margen de fase, lo desempea una homotecia respecto al margen de ganancia.
El margen de ganancia, Gm , es precisamente la razn de la homotecia que, con centro en
el origen nos transforma el lugar de Nyquist en otro lugar homottico del primero que pasa
por el punto crtico.
Mientras que en el giro provocado por un retardo sobre el fasor parametrizado por una determinada frecuencia permanece invariente su mdulo, un incremento del factor de ganancia provocado por una homotecia sobre el mismo fasor deja invariante su fase.
Los diagramas de Nyquist son tiles cuando queremos saber si los polos de un sistema
caen fuera de un contorno prohibido, por determinadas exigencias de estabilidad relativa.
Cfr.: Figura 10.21.
GH(s)=
3(s+3)
s 2 +4s+ 13
b
Expresin de s en tramo ab
s=-co +jco
. )}
Re {GH,(-CO+JCO
= 3(-2co
+8co 2 -25co+39)
1m{Gll'-ffi+JCO) =J
Figura 10.21
Interseccin conlm: 1,7475
Interseccin con Re: 0,692 y
-1,295
O"
10.14
.Jrr
3Re'T +9
a1 = lim
= .2._LO = O 692LO
R.-+ o Re'l (Re' T +4 )+ 13
l3
,
o
oo
oo
b
c1
d'
'P
)Re''P+ 9
=OL-<p=
R-+ ~ Rd 'P (Rd'P +4 )+ 13
= lim
<j)
<j)
OL - 135
OL-90
OLO
1Im
I, 4
N'
=-1-1 =-2
'
Figura 10.22
Z,
P,
N=Z-P
L.A. N' =Z'
. r -P' r L.C.
r
r
-2
-2 = O - 2
-2 = Z'r - 2
Luego para un valor del factor de ganancia K=3 , el sistema funciona en un par de polos
con un factor de amortiguamiento, ~>O, 707
Bastara aplicar una homotecia
de razon 1/1 ,295 para que pasara por el punto crtico
3
K= 1 295 =2, 31
'
sistemas condicionalmente
estables
10.15
GH(s) =
GHiU.ro) = 4ro0 [
40(s+ l)
s(s2 +2s+25)(s- l)
(10.21)
4
2
48ro
2 +225
2
2 +J. 3 ro - 22ro
3
2
(ro - 23ro) + (ro + 25)
(ro - 23ro) + (ro + 25) 2
@-)o
Im{GHUro)} = O
==>
(10.22)
40 -48
=-3, 072
fro3 - 23ro) 2 + fro2 + 25) 2
ffiRe
(10.23)
(10.24)
= { 4, 5605 = W,cJ = wl
1, 0964 = W1t2 = w2
8734
Re{GH(jro )} = { -0,
Re
1 5266
'
(10.25)
/ ----~\
0.5
o ------------>~(- --+{-------------~
--0.5
\
/:
~"-- / !
:
Estudiamos su estabilidad
-1
[nc,dc]=cloop(n1 ,d1 );
-2.5
roots(dc)
ans
-0.1548 + 4.5657i
-0.1548 - 4.5657i
-0.3452 + 1.3407i
-0.3452 - 1.3407i
-2
-1.5
-1
-0.5
0.5
Figura 10.23
El sistema carece de polos con parte real positiva y es estable a lazo cerrado como confirma el trazado manual
Como la parte real nicamente se anula para ro = oo , slo corta al eje imaginario en el
origen. Luego el LN no irrumpe en el semiplano positivo.
fe'
1
= lim
HO
loceei~ + 1)
[ ooL-90
=ooL-180-0
=
ooL-180
eei 6 (e.ei 6 -p 1 )(ee1 6 -p~)(eefo-l)
ooL-270
e
1so
se cancelan
10.16
lm
-..." ~, ..
'-,
/ '\ \
<e-
ooLl80
a'
ooL-270
"
-1,53
\
-0,87
\ Re
ic
<
J
,
b'
OL-270
e'
OLO
d'
OL270
?~---/
.. _,.
,/
-0,87
-1,53
ooL-90
e'
Im
-~
-\ e'
./.53
Re
\
\
\.'i:.
,___
:/
=-1
'~
~e'
Figura 10.24
N~ P~=Pr
-1
N'=Z' ,.-P~
=>
-1 ==Z't - 1
=>
z~
o
L.C.
1
K'
1
1 5266 < < O 8734
'
'
Por lo que el factor de ganancia K podr, sin caer en la inestabilidad, variar entre
40
40
1 5266 < K < O 8734
'
'
10.17
Podramos usar la funcin ginput para hallar los puntos de interseccin con el eje real
ginput(2)
ans =
-1. 5254 O.0038
-0.8744 0.0038
Procure maximizar la ventana grfica para die;poner de m0 precie;in, cuando utilice ee;ta funcin
1.5266
Gm2=Gm(1,2)
Gm2 =
0.6551
Estudiemos ahora con el programa los efectos de aplicar una homotecia de razn, mayor
que 1,1449, y otra, de razn menor que 0.6551. Escogemos los valores 2 y 0,5. lo que equivale a desplazar los puntos de interseccin del LN hacia la izda. y dcha. respectivamente.
Naturalmente, las frecuencias de cruce de fase son invariantes, las mismas frecuencias siguen parametrizando los puntos de corte con el eje real.
Hallamos los nuevos valores de los mdulos para las frecuencias ya
predefinidas
M2=abs((2*40*(s+1 ))./(s.*(s."2+2*s+25).*(s-1 )));
M05=abs((0.5*40*(s+1 ))./(s.*(s."2+2*s+25).*(s-1 )));
M2=
1.7468 3.0531
Calculamos los nuevos mrgenes de ganancia
GmM=M2."(-1);
Gmm=M05."(-1 );
Gm12=GmM(1,1)
Gm12 =
0.5725
Gm105=GmM(1,2)
Gm105 =
0.3275
Gm22=Gmm(1,1)
Gm22=
2.2899
Gm205=Gmm(1,2)
Gm205 =
1.3101
axis equal
nyquist(n105,d1 ,w)
axis([-3.5,0.5,-1, 1])
axis equal
Razn de homotecia: 0.5
Razn de homotecia: 2
1.5
1.5
0.5
o
-0.5
-0.5
-1
-1
-1.5L--~---~--~---~--'
-3
-2
-1
o
-1.5
-3
-2
-1
10.18
(nc05,dc05J=cloop(n105,d1 );
roots(dc05)
ans =
-0.6366 + 4.6959i
-0.6366 - 4.6959i
0.1366 + 0.9338i
El sistema es inestable, a lazo cerrado, en los dos supuestos: cuando multiplicamos su factor de ganancia por 2 y cuando le multuiplicamos por 0,5.
Intente razonar la inestabilidad en ambos casos a partir del dibujo del LN de la figura
10.24.
n1=10;
d1=pmult([1 1],[1 1],[1 11);
w1=-2;w2=2;
plrplot(n1 ,d1 ,w1 ,w2);
- PLRPLOT OPTIONS Plot
Freq range
Zoom in
Time delay
Set axes
NewTF
Change 0/C
Grid
Display TF
Hold
Label plot Margins
w on plot Roots
View data
auit
Option? > m
The following specifications apply IF the entered transfer
function is a Mnimum Phase OPEN LOOP Transfer Function.
Gain Margin, dB
-1.918
Phase Crossover, rad/s 1.735
Phase Margin, degrees -6.957
Gai n e rossover, rad/s 1. 909
Resonant Peak, dB
18.83
Resonant Peak, IMrl 8.745
margin
Las dems opciones no ofrecen demasiado inters. Para el clculo del margen de fase ofrece ms precisin la funcin margin que estudiaremos con los diagramas de Bode
w=logspace(-2,2,500);
[ma,fa,w]=bode(n1 ,d1 ,w);
[Gm,Fm ,wpi,w1 J=margin(ma,fa,w)
Gm=
0.8001
Fm=
(en grados)
-7.0296
wpi=
1.7321
w1=
1.9083
12
-300
-250
-200
-150
-100
-50
PRACTICAS DE AUTOMATICA
Area de Ingeniera de Sistemas y Automtica
"
11.2
11.3
1,
Representan en el eje de ordenadas el mdulo, 20 log IG(/ro) en dB, y en el eje de abscisas el logarirmo de la frecuencia, log ro.
Matlab los presenta encerrados en un rectngulo, cuyo lado inferior aparece rotulado en
frecuencias, en potencias de l O, por lo que la abscisas de construccin sern los
diagramas de Bode
exponentes.
El lado izquierdo se rotula en decibelios. Estos serian los ejes de representacin a los que se refiere el prognuna.
Otra cosa sern los ejes de construccin geomtrica del diagrama, a veces, ni siquiera insinuados. El eje de ordenadas
de construccin es un segmento perpendicular al lado inferior, cuyo pie es el punto rotulado con la frecuencia,
1 1O(log ro O). El eje de abscisas de construccin ser el segmento horizontal cuyo extremo izquierdo parte del
punto del lado izquierdo rotulado con O dB, que corresponde al valorllllitario del mdulo, 20 log [IG(fro)j = l]
c cada
ce
-o
e:
~ -20
-40
iGGroil < I
10 1
0.2
1
l
li.l
D<
t_! )
.,
3 4
s6
10,
Frequency (rad/sec) 10
11
12
102
100
,:::: > !
<: 1
j,J;;..u--itrr:. pus::i\'!";
-.~!;.:;:.irttlllC .;~cgJ\'O
Figura
JJ_J
( l l.l)
Llamamos dcada a un intervalo de frecuencias, (ro 1, ro 2 ], tal que (ro 2 /roi) =2 : v.g. : (0.2, 2), (10, 100)
De modo anlogo la octava es un intervalo de frecuencias, , tal que: v.g. : (O. L 0.2), (3,6)
Observar. que todas las octavas tienen idntica extensin geomtrica y distinta densidad puntual.
Dgase lo mismo de las dcadas
Puesto que el nmero de octavas; , que comprende el intervalo de frecuencias, (f1 ,f,), ha de verificar
Los diagramas de Bode se usan habitualmente para el anlisis de las propiedades de los
sistemas:
margen de ganancia, G.,
margen de fase, <!>.,
ganancia en rgimen permanente, K,
ancho de banda, WB
11.4
rechazo de ruidos
estabilidad
bode
bode(n1 ,d1)
Id, pero ahora la representacin se cie al conjunto de valores de ro, (rad/s), previamente definidos en el vedor fila, w.
Para lograr puntos logaritmicamente equidistanciados, proaire Ud. generar el vedor w mediante la funcin logspace,
estudiada en la pgina 3.4
[ma,fa,w]=bode(n1 ,d1)
ma
Es un vedor columna que contiene los valores de la
magnitud, (Ojo,que no estn expresados en dB), tiene
tantas filas como columnas, w
fa
Vedor columna con los valores de la fase, en grados, correspondientes a las sucesivas columnas de W
w
Vedor fila con los valores ro, (rad/s), por defedo, que el
programa ha utilizado para el cmputo de ma y fa
4
Lo mismo que en 3, pero utilizando para el cmputo los valores previamente especificados por Ud. en w, aunque sean
uno o dos valores, y entonces no har falta recurrir a
logspace
bode(A,B,C,D)
bode(A,B,C,O,iu)
iu
Esta variable, usada como argumento de entrada, es un
indice que indica el nmero de orden de la variable de
entrada considerada, en sistemas MISO o MIMO.
En caso de sistemas SISO o SIMO , ser siempre la
unidad.
bode(A,B,C,O,iu,w)
[ma,fa,w]=bode(A,B,C,D)
[ma,fa,w]=bode(A,B,C,D,iu)
[ma,fa,w]=bode(A,B,C,D,iu,w)
lO
4 en el espacio de estados
mad8=20*1og1 O( ma)
Pero, "i deoea ol:>tener "iempre la varial,le ma en decil,elioe, "uprima el "igno de comentario, 7., en la lnea 110 del archivo l:>o.k.m
% mag
= 20*1og10(mag);
De modo parecido proceda, "i prefiere que la faoe oe expreoe en forma de argumento
principal, entre -180" y 180", "uprimiendo el -,jgno de comentario en la lnea 83
%phase = (180./pi)*atan2(imag(g},real(g));
11.5
Ejemplo
Deseamos obtener los diagramas de magnitud y fase de los sistemas
lvfi = s+4
y
Mz = s-4 = s+4. s-4
(ll. 2 )
s+2
s+2 s+2 s+4
de modo que los diagramas de magnitud aparezcan superpuestos, referidos a los
mismos ejes e igualmente los diagramas de fase, para facilitar su comparacin.
Al mismo tiempo someteremos los diagamas a wia serie de manipulaciones
-o
.!: 5
ro
'. '.
'
'
'
''
'
''
i i i i i M1 -Mi2. i: i: i: i: i: i: i: i:
t - ~ - - - i - ~ .:..:_"..
------:----~--i-i--:-~-:..n-
: : : : : :::
---r---~---:--r-r-:-i-:{------- ~---~--r-~-~-ii-'
'
: : : ::::::
: : : : : ::
: : : : ::
! ;\}\
\ : :::::
OL_____;'~;___;_~~~~
..~~_;____;__;_~_;_;._;:r::=,,,,,,.;....~-~~~
..
101
200 __
10
101
Frequency (rad/sec)
+-- ; ; ; ;-~.;;. __
-o
a,
(/)
ro
.e
o..
Figura 11.2
M2 : : : : : : ::
: : : : : :: -~-......____ l
: l.- \.- 1
l 1l l l 1- rtt-t-H-------~---.
. ;:;r----,--,--,-,-~+-r~-~-=-,,_.....;.-~-'n
i i i i ii!M1 i i i i i !!!!
a,
a,
t..
'
'
'
'
1,, ,,
'
<
'''
'
'
''
'
'''
'''
'
'
'
''
''
'''
''
,,
- -LtJ
'
''
,,
-200 ........ , ......... -~"- ......... --, - -" -~ "- ---_, -- "- -- , ..... .
'
101
'
'...
'
101
10
'''
10
subplot
subplot(21t), hold
231
232
233
(1)
subplot(212), hold
bode(n2,d2)
234
235
236
% Restauramos el retculado
subplot(211),grid
subplot(212),grid
Fi"gurall.3
% Queremos poner en.colorverde [a curva dejase de M2
subplot(212),
Cfr.: Fig. 11.3
%Hacemos clickconel ratn en la curva deseada
La" do,, primera" cifra"
M=get(gca,'Chlldren'}; (2)
del 21rgumento de en uisetcolor(h1(1})%Escogemos el color
trad21 de subplot "n
%Deseamos eliminar el rotulo del ejex del diagrama dejase
la" dimen,,ione" m21ti subplot(212),Xlabel('')
ciale" de la ventana,
% Cambiamos tipo de letra de rtulos de ejes a.Aria/~9
2x3.
subplot(211 ), uisetfont(get(gca,.'XLabel'})
La tercer21 e" el nmero
subplot(211 };ulsetfont(get(gca,'YLabel'))
de orden que corre" subplot(212), uisetfont(get(gca, 'YLabel'})
ponde 21 c21da dibujo individual recorriendo la"
% Ponemos ttulo al dibujo
fi121" "ecuencialmente.
title('Diagramas.-de magnitudy fase')
% Cambiamos su tipgde letra a Techrrical..J2
uisetfont(get(gca, 'Ttle'})
%Rotulam<>s cq<ia curva
subplot(211),gtext('M1-M2~)
-subplot(212),gtext('M1')
subplot(212), gtext('M2'.)
% Cambitlmos a -1.5 -el grosor de la curva de magnitud
subplot(211),%HacE1mos clicl< con e/ratn en la curva
h=get(gea;'Ghildren'.);
set(h(t)/tneWdth\11 ;5J)
%Deseamos que el rotulado del escalado de los ejes en
% eldiagrJa den1agn.itudestcqn l,z1etra Te_clmical
subplot(211),-set(gc,'FontName!{fechnicall
% Determinamos tamaa de este npo,de"'letra.
11.6
( l) En lllla ventana multigrfica con la funcin subplot activa Ud. el dibujo sobre el que recaer la accin de la funcin o funciones que la sigan.
(2) h1 es el vector de pllllteros o handles, cuyo primer elemento corresponde al ltimo objeto 'clickeado', hijo del objeto axes. Tal vector se reordena cuando Ud. vuelva a clickear otro hijo del objeto axes; gca es el plllltero del objeto
axes de la ventana activa .
11.1
La carencia de esta ltima propiedad permite detectar que un sistema no es de fase mnima.
Con la funcin margin podemos calcular y dibujar los mrgenes de ganancia y de fase
margin(ma,fa,w)
Despus de ejecutar
margin
Gm
Margen de ganancia, Gm . No est dado en dB
Pm
Margen de fase, <I>m En grados
wf
wg
frecuencia de cruce de ganancia, ro, , que detennina
el margen de fase.
25
,...
----1--J--L;
. .LillL ----
'
'
'
'
"
l l i l l!::
1tr- --- - i-ri-~ttt~-
2 .1022
Pm=
114.7570
wf=
5.0093
wg=
0.0013
subplot(211),axis([0.1,100,-50, 10])
subplot(212),axis([0.1, 100,-270,0])
> subplot(211 ),grid
C)
~ -100
IJ)
(IJ
a,
~ -200
.
. . .....
---- ..
- ~
1. r----1--:
-:
--rrrn----'
. .... .
1
'
'
'
'
. '' .... .
-- :--:- :-: t~
1fj--.. !.. -i- : 1: :'. ::----. ' ' ' ' ' '
. ' ' ' ..
''
''
''
__ .. __ ..... _
Figura JJA
...
<A,
O
1
O
1
O
I
O
1
11
11
'
'
''
Diseo de reguladores
11.7
El programa le volver a mostrar el men de tddesigne,
Option?> s
Choose output variable: y,e,u [yJ>
TABLA 1
Kpz
Mp(%)
fs
tr
0,01
1,526
2,221
0.02
0,6626
1,841
8,5
0,03
0,4596
1,523
20,1
0.04
0,3687
1,989
30.2
(12.8)
Kpz =0.03
K-5000
s(s + 5)(s + 10)
50
s'
51
15
5000K
15 -50-5000K=O
15
5 . 50
=,K= 5000 =0, 15
y obtenemos K, =0.15
Con la frmula Kp = 0.6K, = 0.60.15 = 0.09, obtenemos un valor que puede delimitar nuestro intervalo de tanteo.
KKn ,
p2
introducido por
;a
Kr2 =0 1 }
Kp2
'
Kp2 =0, 03
,,
=> Kr2 =0.003
(12.9)
Diseo de reguladores
l l.8
(12.10)
J-~ooi::"
l5s 2 +5000K=O ~ s=
21t
ro= T, = 7, 071 ~
=:tro=J7,07l
21t
T, = ,
= O, 889
7 071
Kd = O, 125T, = O, 125 0,889 =O, 111
Escojamos como valores de partida para KB , 0,1; 0,2; 0,3; 0,4 y hallemos mediante las
ecuaciones 12.10 los parmetros del PID, cuando, valiendo Kp2 = 0.03 y Ki2 =0.003 damos
a K di los valores precedentes
Kdl Kp=Kp2+Kd1K,2
Kd=KdlKp2
Ka
O, 1
0,0303
0,003
0, 003
0, 2
0,0306
0,006
0, 003
0,3
0, 0309
0,009
0,003
0,4
0, 0312
0,012
0, 003
tddsigri(na,da)
PIU.Controllet form: .Kp+Kds+ .Ki/s .
Option?> s
option?> a
oerayTme .o:3518
RiseTime
o'. 5628
Sttlng Time 0.6436
Max % Overshoot 2.7
T,meatMax
2:575
. . Qption?>q
Qption?~c
PfD C<?ntr:oller form: Kp t Kds + .K/s ...
Option? >s
Option? >a
DJay Time
0.3473
Rise Titrie
0;5556
Settlng Time 1,288
Max% Overshoot 8.9.
Time aLMX 1.288
option? >q
O:ition?>c
PlttControllerform: Kp + Kds + Ki/s
Enter f\p [O, Q303l> O. 0306
Enter Kd[OJ)()3]> o,ob6
Enter Ki [0;003}>
Qption?> s
ption? >a
Delay Time
0,3471
Rise Time
0.5553 .
~~ttlipg Time 0.643~
Mx % OVershoot 3:2
Time at Max,
1.288
Option? > q
Qption? >e
PIIJ:Controllerform: Kp + Kds + Kits ...
EnterKp [0,0306}> 0:0309
t .
EntefKi[0,003J>
Time atMax
3.217
Optl.Qn?>s
Qption?> a~
Dlay Time,
0,637
0,6913
Settling Tune ., 0:6431
Max% :OVershootr,..2 A
Time,atMax
3A359
RiseTime
Observamos que la terna de valores que mejor satisfacen las especificaciones corresponden
a T dl. =0,4
t,=0,6913
ts=0,6431
Mp(%)=2,4
11.9
Diseo de reguladores
La opcin d nos muestra las ff.ddtt. del controlador y de la planta
Option? > d
Controller . parameters.are:
Controllertransferfu nction..is:
Kp= 0,0312
K'd= 0.012
Ki
0;003
5000
1.2
1 -- -----------------------------
0.8
0.6
0.4
0.2
Option? > a
Continuar
10
15
Time. s
20
25
-u,
-l--,.,_.,.._.-
,.lt--
{/(~-~
'f
~
PRACTICAS DE AUTOMATICA
Area. de Ingeniera. de Si6tt:ma.6 y Automtica.
.i
. , .. _,, ... ..... ,:'
.:
Diseo de reguladores
lZ,2
Diseo de reguladores
12.3
diseo de un PID
El diseo del PID nos exige el clculo de los tres parmetros del reguladorde modo que se cumplan las especificaciones, proporcionadas
en el dominio del tiempo.
K
Gc(s)=Kp+Kas+-f
(12.l)
Podemos abordar el diseo del PID mediante su divisin artificial en dos bloques en cascada que
llamaremos PD 1 y P~ segn Fig. 12.1 y Fig. 12.2
Y(s)
Planta
Figura 12.1
R(s)
----.Y(s)
Planta
~----------------
Figura 12.2
Kp=Kp2+Kd1K,1.
Ka=Kd1Kp2
K;=Ka
planta y especificaciones
(12.2)
(12.3)
(12.4)
Utilizaremos el sistema
K
(12.5)
Especificaciones
Mp(%)s;4%
essv $ 0.01
tiempo de subida, (del 0.10 al 90%) tr s; 0.8s
tiempo de establecimiento ts s; 0.08 s
pasos previos
1 Nos aseguramos de que es insuficiente un ajuste del factor de ganancia de la planta para satisfacer las exigencias de diseo.
Diseo de reguladores
11.4
Hallamos el valor de K que satisfaga los requerimientos de error
e ssv =
!~sG(s) =
!~
Kv = 0.01
(.l'i-S)f.l'i-to)
Kv= 100
= ~ = 100 ~
K = 5000
,'' -'
n~=5000;da==pmult([t O],f1
51,[1 10l);
[ne; dc]=cloop(na,da);
roots{dc)
ans=
-22.5870
3.7935 +14.3867i
3.7935 A4,3867i
printsys(na,da)
num/den
5000
s ... 3 + 15 s ...2 + 50 s
na
da
tddesign
tddesign(na,da).
Tras pulsar ENTER el programa le pide que introduzca los valores de las
tres constantes. Como ahora se trata de actuar sobre la f.d.t. , compensada
en ganancia y ya proporcionada con los argumentos de entrada, introduzca
Kp = 1 Kd = O K; =O con lo que la f.d.t. permanece invariante.
Controller values
Rootlocus
Step Response
Gals to meet
Error, steady state
Display TF's
Pales andZetos
NewPlantTF
Quit
ExcurtSutS: tddesign
Diseo de reguladores
12.5
L.c.
p Nos proporciona los valores de los polos y los ceros del controlador y de la
planta, compensada y a lazo cerrado
n Nos ofrece la posibilidad de introducir una nueva f.d.t.
Veamos ahora si el sistema con slo una compensacin, PD, puede satisfacer estos dos
valores.
Seleccione la opcin Root locus y escoja el parmetro
para dibujar el contorno de las races.
f<.i como
variable
Option? > r
Choose root locus parameter: Kp,Kd ,Ki {KpJ > kd
QUit
Qption? >z
i'lter desireddamping ratio, zeta > 0.7156
Diseo de reguladores
11.6
En su ventana grfica aparecer dibujado el contorno de las races
cuando variamos K d
40
11.1
',
\!
'*
20
-20
,'
-40
-50
Figura 12.3
De la figura 12.3 deducimos que la accin PD puede estabilizar el sistema pero no puede
proporcionarnos los valores de~ y COn requeridos.
Recuerde volver a tddesign escogiendo la opcin q de rlplot
=---~-
(12 7)
N.B.: Si Ud. ha interrumpido la sesin de trabajo, recuerde que la manera de proporcionar a tddesign una f. d.t. es
introducir
tddesign(na,da)
i ~ Qption? > e
~
PIOControllerform: Kp~+ Kds,+ Kifs~
)bf;~fer:KpJ<t03J,> 0;01
"'- ?i!' EterKd [QJ'."$. 0""'
'"ter,K:[OJi o
11.7
A poder ser con el block de notas de Windows o editor equivalente, haga estos cambios en el archivo
Cootenido original
Cootenido modificado
linea
16
if -cSa010,end
%if-cSa010,end
59
if -alim,line(wlim,(O 01),end
66
bplot
if plim<=-180,polyline(wlim,-[180 180],'w:'),end
if plim<=-180,line(wlim,-[180 1801),end
bplot
bplot(n1, d1)
- ~ - - ~ ~ - - -- .
-50
auit
-1 0 0 ' - - - - - - - - ~ - - ~
10"
10
10
10
-100
-200
En mi ordenador no lo he conseguido.
-300'-------------'
1~
1~
1~
1i
En mi ordenador no lo he conseguido.
S Permite cambiar los lmites de los ejes
-10
Superpone rejilla
,,/
-20~---------~
11
1~
Ttulo de dibujo
11.8
Salir de bplot
. . . ......... ... .. "
Como es habitual
fil
todos los mflls de Csad. siempre estan disponibles, las opciones ya descritas fil 6.14
El diagrama de Black. magnitud (db) versus fase grados se dibuja mediante la funcin nichols y se le aade con ngrid un reticulado de dos familias de curvas, entre
si ortogonales cuando se dibujan con adecuado escalado de ejes.
La primera familia de curvas que contienen el punto. (-180, O), sin pasar por l. son los
lugares geomtricos de mdulo constante y se rotulan con el valor en dB del mdulo a lazo
cerrado.
Las curvas de la segunda familia. rotulada en grados, pasan todas por dicho punto.
Su sintaxis es semejante a la de la funcin bode
nicho Is
nichols(n1 ,d1)
Id, pero ahora la representacin se cie al conjunto de valores de ro. (rad/s), previamente defmidos en el vector fila, w.
Para lograr puntos logaritmicamente equidistanciados, pro<."Ure Ud. generar el vector w mediante la funcin logspace,
estudiada en la pgina 3.4
[ma,fa,w]=nichols(n1 ,d1)
ma
Es un vector colwma que contiene los valores de la
magJiitud, (Ojo,que no estn expresados en dB), tiene
tantas filas como colunmas, W
fa
Vector colunma con los valores de la fase, en grados, correspondientes a las sucesivas colwmas de W
w
Vector fila con los valores ro, (rad/s), por defecto, que el
programa ha utilizado para el cmputo de ma y fa
11.9
Lo mismo que en 3. pern utilizando para el cmputo los valores previamente especificados por Ud. en w, awique sean
wio o dos valores. y entonces no har falta recurrir a
logspace
nichols(A,B,C,D)
iu
Esta variable. usada como argumento de entrada. es Wl
indice que indica el nmero de orden de la variable de
c,1trada considerada. en sistemas MISO o MIMO.
En caso de sistemas SISO o SIMO . ser siempre la
unidad.
nichols(A, B,C,D,iu,w)
[ma,fa,w]=nichols(A,B,C,D,iu)
[ma,fa,w]=nichols(A,B,C,D,iu,w)
10
4 en el espacio de estados
ngrid
se borra la ventana grfica y se dibuja el baco de Nichols. listo para sobreponerle mediante
nichols el correspondiente diagrama magnitud-fase.
La mayoria de las veces ser necesario acudir a modificar los lmites de los ejes para darle
una representacin dignamente til.
Observe cmo el diagrama de magnitud. si no estuviera expresado en decibelios, equivaldra a la rectificacin de los arcos de los diagramas de Nyquist
w=[0.1 :0.1 :10, 10:100, 100:10:500];
nichols(n7,d7,w)
axis([-100 ,0,-30,20])
La figura. 11 .5 reproduce el
diagrama de Black de la f.d.t.
cuyo LN se dibuj en la portada de la practica 10.
Al reducir los lmites de los ejes hemos perdido el rotulado de las curvas
de fase constante.
- !
o.-- .. -..
e
ro
~ -.-:
--..-~:::.~-:= ....:. ,:~,. ~- --.
... ,.
-10
-- -----,---- -~ -6
.,
- -- -- ------;f
',
-20
-60
-40
Phase (del)
Figura 11.5
-20
11.2
11.10
axis([..360,0, -15;20])
ngrid
hold
[n2cid2c]=loop(n2,d2);
w=logspace(,,3,2,300};
njchols(n2c;d2c,w);
nichols(n2;d2,w);
grid
12
-15 '"
-350
-300
-250
-200
-150
-100
-50
Phase (deg)
Figura 11.6
IM(iroA)I dB=
11.3