Anda di halaman 1dari 168

1.

Introduccin

PRACTICAS DE AUTOMATICA
Area de Ingeniera de Sistemas y Automtica

Introduccin

1.3

el entorno de matlab

Matlab, 4.0, es, ante todo, una herramienta matemtica de clculo


matricial, con la que se han creado una serie de programas de Auto,. mtica; Toolboxes, con objetivos especficos. Dispone de ms de quinientas funciones y se
comporta como un lenguaje de alto nivel, con el que podemos crear nuevas funciones.
Necesita
Windows 3.1
un 386 con coprocesador, un 486 DX o pentium
8 Mb de espacio libre en el disco duro
4 Mb de memoria extendida, aunque 8 Mb son necesarios para sacarle
todo el partido que ofrecen sus posibilidades grficas

matlab para estudiantes

La versin para estudiantes de Matlab corre en DOS y est dotada de


una toolbox. Signals and Systems Toolbox, compendio de otras dos
toolboxes profesionales.
En el ao 1985, bajo los auspicios del Dr.Kuo se ha publicado la CSAD TOOLBOX, Con. trol System Analysis and Design Toolbox, complementaria de la versin de estudiantes de
Matlab, que tambin corre en DOS. En Windows tambin, con algunas modificaciones
poco ortodoxas.
Los ttulos de las secciones referidas a CSAD llevarn el fondo sombreado.
Sus fiutciones enmarcadas con liea gris y con el mismo fondo y tipo de letra que las dems. La misma lnea gris enmarcar los ajemplos ajecutados con CSAD

toolboxes ms usadas

Cada ao aparecen nuevas aplicaciones de Matlab. Las toolboxes de


que disponemos son:

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

En el directorio MATLAB\BIN tiene Ud. el archivo matlab.bat, que


le arranca el programa. En l deber Ud colocar el path de CSAD.
Cuando se inicia el programa aparece el prompt >> de Matlab en la lnea de edicin.
Escribiendo en la lnea de edicin demo y pulsando .J, dispone Ud. de un men que le
ofrece un panorama de las posibilidades de Matlab.
Si antes de salir de Matlab desea guardar todas las variables definidas durante su sesin de
trabajo basta teclear save .J. El programa almacenar sus variables en el archivo
matlab.mat. En futuras sesiones podr recobrarlas con load. Si deseara guardarlas en un
archivo determinado: save C:\pepe
a=(6 7 8];
save C:\pepe a

( 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)

Si desea conocer ms informacin sobre sus variables, utilice whos


whos
Name
ans
d
d1
n
n1

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)

Grand total is 206 elements using 1648 bytes

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

Anlisis de datos y transfonnada de Fourier

demos

Demostraciones y ejemplos

elfun

Funciones matemticas elementales

elmat

Matrices elementales y su manipulacin

funfun

Funciones de funcin. Mtodos numricos no lineales

general

Ordenes de infonnacion general

graphics

Funciones de dibujo en general

iofun

Funciones de entrada/salida

lang

Depuracin y lenguaje

matfun

Funciones matriciales. Algebra lineal numrica

ops

Operadores y caracteres especiales

plotxy

Grficos bidimensionales

plotxyz

Grficos tridimensionales

polyfun

Funciones polinmicas y de interpolacin

sparfun

Funciones de matrices de gran dimensin y con grw nmero de


elementos nulos (Sparse matrix)

specfun

Funciones matemticas especializadas

specmat

Matrices especiales

sounds

Procesado de sonido

strfun

Funciones de secuencias de caracteres

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

Cuando Ud solicite de Matlab una funcin o secuencia de


operaciones que conlleven una indeterminacin, el programa le
contestar con NaN, not-a-number.

tolerancia

La variable, eps, es la tolerancia en operaciones en coma flotante: Es


la distancia desde 1.0 al nmero ms prximo en coma flotante que
Matlab considerar como distinto de l. El valor por defecto de eps es
eps= i-52 2.22 x 10-16

divisin por cero

Cuando se genera un trmino que implica una divisin por cero,


aparecer una advertencia, a tener en cuenta en posteriores actos de

computacin.

el infinito positivo

Como es usual en aritmtica IEEE el programa, tras la consabida


advertencia, escribir inf cada vez que tenga que darle el resultado de
una divisin por cero. Matlab para estudiantes, en vez de inf, utiliza
00

datos y operaciones

Matlab trabaja esencialmente con ~trice~ c:.:yvs elementos pueden


ser nmeros complejos o expresiones. Las operaciones han de
entenderse realizadas en sentido matricial.

variables sin nombre

Cuando se escribe tras el prompt de Matlab un nunero o una


expresin, el programa lo almacena con el nombre de ans. Si se
vuelve a escribir otro numero u otra funcin, ans cambiar de valor.

Introduccin

1.6

borrado de variables

Con la funcin clear puede Ud. eliminar variables de su entorno


actual de trabajo, pero no las elimina del archivo matlab.mat, ni de
otro archivo.maten el que Ud. las hubiese almacenado.

clear

clear A

(1.4)

,-.. .:- ;:o.: ..,,,....,,.,.--,,........,,.-- ,,,,. _..,,,.,. _. ,.,,,;:o, - : : ; \ ..,.,..Y' ' - - - -

R.econ,endamo,, no j ugar con eota funcin, Puede oc...,;oriar di!>qU"~ ;; no" dediczmo,> a eno,lyarla . :
,;.-.... , .._... _

..;.,;l'i.;.;.;.._,,_.-J<N.

!"'"" an~

del u" aqu recomendado

- . .;.:w ...-:,.,.- r--..WWWN.-.,,,.-~ =" ' -

._,...-.,....,.,7,.. -c .r...--.;.,.,--

:uu "'t; , -, -,.. . .. . v,;i

!?,.-Y-- . _ ,>-,1A1,:?r>:.,_.,._ , -I- ....vxw.

..,... ~:.:.-.,, '

expresiones largas

Cuando una expresin no le quepa en la lnea de edicin actual, o


y
desee que contine en otra lnea, escriba los tres puntos suspensivos, pulse
contine en la lnea siguiente

arquitectura general de una


funcin de matlab

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)

La funcin exponencial e se expresa en Matlab


m=exp(1)
m=

2. 718.1

operaciones aritmticas

(1 .7)

Pueden construirse, con la jerarqua usual, expresiones con los operadores aritmticos

suma
resta

Introduccin

1.7

multiplicacin

divisin por la derecha

divisin por la izquierda

/\

potenciacin

)) 2+2A4/2 +1
ans =
11

formatos numricos de entradas y salidas

Puede Ud introducir nmeros en potencias de 10

a=5e2
a=

c=5E-1
e=
O.&XD

b=Se-2
b=

500

format

(1 .8)

O.Cl:00

(1 .9)

Los formatos de los nmeros de salida se controlan con la funcin format


m=2/3;
format short
m
m=

format long
m
m=

> A=[1 -2 0;0 .5 -0.5 3 ];


> format +

0 .66666666666667

A=
+-

format long e
m
m=

0 .6667

> format short e


m
m=

+-+
))

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

Disponemos de las siguientes funciones

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!

Todas ellas, e x ~ atan2, poseen anloga sintaxis.


(1 .11)
> X=(O pi/2;-pi/2 P'l
sin(X)

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)

Observe la diferencia entre atan2 y la funcin atan.

funciones matemticas
elementales

sqrt(X) extrae la raz cuadrada de todos los elementos de la matriz,

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

... La funcin roots opera sobre polinomios realizando en su totalidad la


funcin que sqrt y la potenciacin fraccionaria realizan parcialmente.
Qu restriccin hemos de poner a la funcin sqrt y a la potenciacin de
exponente fraccionario?
- - - - - - --

- --

- - enuncie la re,,t riccin

1.1

... Halle con Matlab en el cuerpo de los nmeros complejos

:/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 convierte un nmero con decimales en el entero ms prximo. Si es exactamente el


nmero que ocupa el punto medio entre dos enteros contiguos, lo convierte en el entero de
los dos, que tenga mayor valor absoluto.

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)

Convierte un nmero decimal en el entero ms prximo caminando hacia -too


ceil(3.7)
ans =

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

Si se trata de nmeros complejos


b;; = cos(La;)

+ sen(La;;)

A=(-3 2 O -0.22;-3+j*4-3-j*4 3+j*4 3-j*4]


A=
-3.(XXX)
2.(XXX)
O
-0.2200
-3.(XXX) + 4.CXXXli -3.(XXX) - 4.CXXXli 3.(XXX) + 4.CXXXli 3.(XXX) - 4.CXXXli
B=sign(A)
B=

-1.cxm

1.cxm

(1.20)

-1.cxm

-0.EaXl + 0.8000i -O.EaXl-0.8000i O.EaXl +0 .8000i O.EaXl-0.8000i

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

Recuerde que por definicin de logaritmo y extendindonos al campo complejo


lO = e11tlog ,o(-I)
Ln 10 = J1t log 10 (-l)
y=log10([100 1 -1 ji)
y=
2.(XXX)
O

buscando un string por la


ayuda de matlab

lookfor

log 10 (-l) = j Ln1tl0 = j 1, 364376

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

1,lMnNI N&: lliVIDE

010

WaR;\/ oJVG; 01VlOf

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

\V.O RNl'-16: P/V/06 SY eE1to

ANS ::. /uF

Alo...tJ

nan/inf

1,rvs"

inf*inf

/JtvSc:/>JF

41\/S ::. (f:,

2*inf

A NS-:::.

ANs::. /IJ,,...rJ

exp(-inf)

,-0NS:::. f

sM,.rJ

/NF

... Escriba en la lnea de edicin


x=[.5];
y=[3];

Defina ahora en la lnea de edicin. en trminos de x e y, con la adecuada


sintaxis, la funcin
1
z=l-e-2xy sen(2J1-x2 y +cos- 1x)

Ji-x

El valor de z debe ser 1,0023

1.5
_ _ _ _ _ .,~,;1,.,, la definicin

" la funcin qu" ha introducido "n Matlal,

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

el cuerpo de los nmeros


complejos

J='f

Representacin por pares


z=(3;4)

Re{z}=3
{ Im{z} =4

No es habitual este tipo de representacin


Representacin en el plano
Llamamos afijo de un nmero complejo al pwrto del plano que lo representa
Jm

z=(3;4j

e
Q

Unidad real y unidad imaginaria


La unidad del eje de abscisas que representa a todos los nmeros complejos de la forma (a; O) y por tanto el conjunto,
R. de los nmeros reales es 1.
La unidad imaginaria se representa por las letras i o j

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

y a partir de ; 4 se repite peridicamente la secuencia, 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)

Para elevar j a una potencia seguimos el mismo procedimiento que


usaremos para efectuar la potenciacin de cualquier nmero
jA(-2)
ans =
-1 .CXXXJ - O.CXXXJi

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

Para hallar las races de orden cuatro de -j, (x 4 +j

=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?

,-..------ - - ---- - 2.2

'

~ ~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

Halle las races de orden cinco de J.

Dibuje sus afijos


rp

- '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

o ' <,;fr Y - o ' ?dfo i_


1

'

- o'5 '119' - a ' Pdlo

2.3

o'~ :... -

r-:

~o')

1~ ,_

,1

,9'~

Es la forma ms frecuente en que Matlab presenta los nmeros


complejos
(a;b) = a+jb

Tambin es la ms apta para operaciones manuales de resta y suma


unidad
real
(1 ; O)

wiidad
imaginaria
(O; 1)
j

elemento
neutro

elemento

inverso

elemento
neutro

l+jO

_l_
a+j b

O+jO

-a-jb

elemento

inverso

Suma de nmeros complejos en fonna binmica


(a+ j b) +(c+j d) = (a+c) +j(b +d)
Multiplicacin de nmeros complejos en fonna binmica
(a+ jb) x (c+jd) = (ac-bd)+j(ad+bc)

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)

Observe el efecto que produce la jerarqua de operaciones y la supresin de parntesis


z=3+j*4*2+j*3
z=
3.CXXXJ +11 .CXXXJi

(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)

El mdulo de wt nmero complejo es wt nmero esencialmente positivo

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

+ 2/cn: , siendo k wt entero.

-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.

La funcin conj sirve para hallar el conjugado


w=conj(3+j*4)
w=
3.0COO- 4.0COOi

(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

Este tipo de notacin es apto para la multiplicacin y divisin manual


Multiplicacin
Se multiplican mdulos y se suman los argumentos
r1Lq>1

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

Esta notacin no es usada por matlab,


salvo con la funcin polar
(2.11)
))

,.

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

1~ Cuando.fli1Ya,&8pa,,aru11 nomen, ~fc~zt11inmica'a i110


dular, para~tar; conu,ionc,,,,~urc,,m,1.1jar.,u:lrl'ij<>.y.,
' ten~ c,n cuonf.:a que, ti(~.uriamultifuncion,

,,.,_,

segregacin de parte real y


parte imaginaria

De cualquier nmero o de cualquier expresin cuyo resultado sea un


nmero complejo podemos hallar slo la parte real o imaginaria utilizando respectivamente las funciones real e imag
s=3+j*4;
real(sA3+5*s)
ans =
-102.CXXXl

imag(s)
ans=
4

(2.12)

creacin de una nueva funcin de matlab

Es posible personalizar Matlab aadiendo nuevas funciones. Vamos


a construir una funcin, llamada bimo que nos convierta un nmero
complejo en expresin binmica a expresin modular con el argumento en grados. Para ello escriba en su procesador de texto
function [r,phi]=bi2mo(x)
% B12MO convierte la expresin binmica de un nmero complejo en expresin modular
%
proporcionando el argumento en grados
r=abs(x);
phi=(180.lpi) *atan2(imag(x), real(x));

La primera palabra del archivo debe ser function


Separada de ella por un espacio escriba la sintaxis de la nueva funcin con
los correspondientes argumentos de entrada y salida
Las variables, r, phi y x, son variables locales cuyo valor slo es P,fectivo
mientras se ejecuta la funcin. Ud. podr escoger otros nombres de
variables para los argumentos de la funcin cuando la vaya a ejecutar
Las lineas que siguen precedidas del smbolo, %, es el texto que aparecer
cuando Ud. solicite ayuda sobre la funcin bi2mo
,. help bi2rno

B12MO convierte la expresin binmica de un nmero complejo en expresin modular

(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

Si el nmero, r Lq, , lo expresamos en forma binmica

a+Jb=rcosq, +frsenq,
y sacamos faor comn, queda expresado en fonna trigonomtrica
r( cos q>

+f sen q>)

Si hacemos r = l tiene que ocurrir


(lLq,)" = l" Lnq, =cosn<p +Jsen n<p
[l(cosq, +f sen q> )]" = (cosq> +f sen q> )" }

(cosq> +j sen q,)" =cosnq, +jsen n<p

=>

FITl'llla de De Moiwe

Esta notacin no es prctica en Matlab.

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

Esta notacin es aceptada por Matlab, usando la funcin, exp


z=2*expQ*pi)
z=

(2.15)

-2.0XX) + o.cxm

logaritmo neperiano de un
nmero complejo

Logaritmo neperiano, y, de un nmero, x, es el nmero al que hay que elevar la base,


para obtener dicho nmero, x

e,

y=lnx ~ eT=e11u=x
Partimos de notacin exponencial
In ( ~ ) = In r + In e j q> .. 1n r + j q> logaritmo principal

ya que otros logaritmos del mismo nmero sern


In [rei<..:u,,1] = lnr +j(q> + 2/at)
Observe cmo ahora tiene sentido hallar el logaritmo neperiano de un nmero negativo.

Para hallar el logaritmo natural de un nmero complejo Matlab usa la funcin log
m=log(-1) '
m=
0+3.1416i

.... Obtenga el mismo resultado por clculo manual

2.4

(2.16)

Prctica 2

2.8
Por defmicin de logaritmo

logaritmo de base compleja

~ (-j) 1"-,j=j
tomando logaritmos neperianos de ambos trminos de la igualdad
log_jj

ln(-1) log_j j= lnj

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

potenciacin con exponente


complejo

l(a-jb)
_ a-jb _ _a_ _ ._b_
(a+jb)(a-jb) - a 2 +b 2 - a 2 +b 2 1 a2+bz

Deseamos elevar el nmero complejo z al exponente complejo w

z"
}
z=elnz

z"=ewlnz

.... Calcular i

2.5

.u.x,(i~ ~UJ )
,vs - 0

.... Calcular (-1) i

,,07 '1

---~~----_,,

.......,....----~.......,..,.-,___,----~.......

_..

.(: 1)" j
2.6

.....~~-

ANS~

0 1 0 CJ:,l

radicacin de ndice natural,

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

Con el fin de acelerar la introduccn de conjugados en Matlab,


CSAD nos proporciona una funcin, ccp, que escribe el par de
complejos en la forma estndar de Matlab, con slo emplear como
argumentos la parte real y la parte imaginaria

generacin de par de conjugados

pp==ccp(re,im)

pp=ccp(3.4)

Argumentos de entrada: parte real y parte


imagimaria.
Argumento de salida: par de conjugados.

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

definicin de una matriz en


matlab

Disponemos de tres procedimientos para definir una matriz

4
7

elementos de fila separados por comas


filas separadas por
punto y coma

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

elementos de fila separados por espacios en


blanco
filas separadas por
punto y coma

(3.1)

elementos de fila separados por espacios en


blanco
filas separadas por salto a la lnea siguiente
mediante ENTER

Un vector fila ser una matriz 1 x n , y un vector columna, una matriz, n X 1

a=(1,2,3]
a=
1 2 3
a=(1 23]
a=
1 2 3

el uso del signo, : , para


crear vectores

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)

La razn de la progresin puede ser negativa


x=2:-0.5:-1
x=

2.cxm 1.am 1.cxm o.am

(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

ljrn,pac~ ...~-: logspace


logspace

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.

manipulacin de elementos En Matlab los elementos individuales de una matriz se denominan


de una matriz mediante el
con el nombre de la matriz, seguidos de los subndices, separados por
subindicado de sus elemen- una coma y entre parntesis
tos
A=11 23;456;789J;
A(3,3)
ans =

(3.7)

El conjunto de signos , A(i,j), sustituye al elemento designado en las operaciones aritmticas. As


A=[1 2 3;45 6;7 8 9];
A(3,3)=A(1,2)+A(2,3);
A
A=
1 2 3
4 5 6

(3.8)

extraccin de submatrices

De una matriz, B, m x n , podemos extraer una submatriz


(m - x) x n , mediante un vector, /, compuesto de ceros y unos, de
dimensin, 1 x n, en el que los unos ocupan el lugar de las filas a
extraer y los ceros el lugar de las filas no demandadas.
Lo mismo ocurre con la extraccin de columnas, slo que ahora el vector, /, ser de dimensiones, 1 x n , y ocupar el lugar que le corresponde como subindicado de las columnas.
6=[1234;5678;9101112)
B=
1 2 3 4
5 6 7 8
9 10 11 12

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

A([2 3),:)=(B(:,[1 41))'


A=
1 2 3
1 5 9
4 8 12

(3.11)

Clculo matricial

3.5

redimensionado de una
matriz

Podemos convertir la matriz A, m x n , en un vector columna , b, de


dimensiones mn x 1 .
A=[1 23;456;789];
b=A(:)
b=

(3.12)

4
7

2
5
8
3
6
9

reshape

Con la funcin reshape cuya sintaxis es


C=reshape(X,m,n)

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)

No confundir la matriz vaca, [], cuyas dimensiones son Ox O , con


la matriz [O], cuyas dimensiones son 1 x 1 . La matriz vaca se utiliza, a veces, para ocupar
el sitio que correspondera, en la secuencia ordenada de argumentos de una funcin, a un
argumento opcional, para que el programa identifique los parmetros de los argumentos
por su lugar de orden.

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

La sintaxis de la operacin sumar y restar es

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 .

multiplicacin de un escalar A este efecto un nmero complejo se comporta como un escalar


por una matriz
Sintaxis:

_______
N=l*M

... Halle N=3*M

_____

,.

3.1

multiplicacin de elementos
Su sintaxis:
uno a uno

C=A.*B

Cada elemento de A se multiplica por el elemento de B del mismo


subindizado. Esto exige la equidimensionalidad entre A y B.
... Halle C=M. *N

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

traza de una matriz

Es la suma de los elementos de su diagonal principal

Para hallar la traza de una matriz utilizamos la funcin trace.


Su sintaxis
b=trace(A)

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

La matriz A es hermitiana o hermitica


Matriz nonnal
Si el producto de ella por su transconjugada es conmutativo N A=AA1

Matriz ortoeonal
Aquella que verifica A'=AT

Matriz singular
Matriz wadrada cuyo determinante es cero

deteccin de las dimensiones de una matriz

i1e1igffiJm11

[m,n]=size(A)

Halla el nmero de filas y le asigna la variable m.


Id para el nmero de colunmas con n

d=size(A)

Ambos valores condensados en el vector d

m=size(A, 1)

Halla nmero de filas

n=size(A,2)

Halla nmero de columnas

La funcin length nos proporciona el nmero de elementos de un vector fila o de un vector

columna

matrices cuyos elementos


son todos la unidad

matrices con unos en sus


diagonales

La funcin ones crea matrices cuyos elementos son todos 1.


U=ones( n)

Crea matriz wadrada de unos, de dimensin n x n

U=ones(m,n)

Crea matriz rectangular de unos, de


dimensin m x n

U=ones( size(A))

Crea matriz de unos, de las mismas


dimensiones que 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))

Id, con las dimensiones de 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.

matrices cuyos elementos


son nmeros aleatorios

La sintaxis de la funcin rand que los genera es

rand

Y=rand(m,n)

Crea matriz de dimensin m x n de


nmeros aleatorios

Y=rand( size(A))

Id, pero con las dimensiones de A

determinante de una matriz


Determinante de W1a matriz cuadrada ,n x n , es la suma de los productos, con signo, de
todas las combinaciones posibles de n elementos

det

det A=r(-lfa1p, a2p, anp.


dondep 1, P2, ... ,p.es W1a permutacin de la secuencia 1, 2, 3, ..,n. El exponente, p,de (-1) , es el nmero de transposiciones necesarias para pasar de la secuencia 1, 2, 3, .. , n, a la permutacin considerada. Recordar que W1a transposicin
es el intercambio de lugares entre dos elementos.

La funcin det calcula el determinante de una matriz con la sintaxis


m=det(A)
Recuerde
det (AB) = (det AXdet B)
Rango de W1a matriz es la dimensin de la mayor submatriz cuadrada cuyo determinante
no sea nulo y ser el mayor nmero, de vectores fila o columna que contenga, linealmente
independientes.

rango de una matriz

Para calcular el rango de la matriz A se utiliza la funcin rank

rank

k=rank(A)

Calcula el rango de la matriz A

k=rank(A,h)

Calcula el nmero de autovalores de


A mayores que h. Si hay autovalores
complejos, se computa su mdulo

matriz inversa

Definimos A' como la matriz inversa de A, matriz no singular, de modo que


A'A=AA'=I

...
&
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

Sintaxis de la funcin inv


Y=inv(A)

los signos\ y/, de divisin


de matlab

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

0.5CXXl 0.2500 -1 .2500


0.5CXXl -0.2500 0.2500
2.0000 0.0000 -1 .0000

-2.0000 -3.SCXXl -4.7500


-2.0000 -2.SCXXl
o
1.0000 2.5CXXl 3.2500

B*[inv(A))
ans =

[inv(A))*B
ans =

0.5CXXl 0.2500 -1.2500


0.5CXXl -0.2500 0.2500
2.0000 0.0000 -1.0000

-2.0000 -3.SCXXl -4.7500


0.0000 -2.0000 -2.SCXXl
1.0000 2.5CXXl 3.2500

potencias de exponente na- Si A es una matriz cuadrada elevada a un exponente p


tural de una matriz
a multiplicar sucesivamente por A p-veces .
AA2
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

operaciones 'uno a uno' enSintaxis


tre elementos
z=x. *y

Los tres vectores son equidimensionales.


Se multiplica cada elemento del vector, x, por el elemento con homnimo subindizado de y

C=A. *B

Id, pero con matrices

De modo anlogo ocurre con signos .\


z=x."y

./

z=x. "2

Los tres vectores son equidimensionales.


Eleva cada elemento de x al elemento homlogo de y
Eleva cada elemento
cuadrado

de

x al

Jx m2

~m

Si disponemos de dos vectores fila, x ,


y podemos,
por
yuxtaposicin de ambos, crear otro vector fila, de dimensiones,
1 x (m 1 +m2)
x=[1 2];
y=3;

z=(xy]
z=
1 2

(3.19)
3

Se procede de modo anlogo en caso de vectores columna y an de


matrices, con tal que stas tengan el mismo nmero de columnas o de
filas

Podernos elevar un escalar a un vector


)) W:2.A[Xy)
w=
2 4 8

No olvide el espacio vaco entre x e y

elementos notables de una


matriz
Para hallar el elemento mnimo o mximo de una matriz se utilizan
las funciones min y max

min

max
ordenar los elementos de
una matriz

y=min(x)

El vector, y, contiene el menor elemento del vector, x

y=min(A)

El vector, y, contiene los mnimos


elementos de cada colunma

y=min(min(A))

El vector, y, contiene el elemento


mnimo de A

[y,n]=min(A)

El vector, y, contiene los elementos


mnimos de cada colunma
El vector, n, contiene los subndices
de las filas en que los mnimos estn
ubicados. Si en wia colunma el
elemento mnimo estuviera repetido,
el vector, n, contendr el subndice
de la primera fila , en orden
descendente, en que aparece

y=min([A,B])

El vector, y, contiene los elementos


mnimos de cada oolunma de la
matriz compuesta por yuxtaposicin

La funcin max posee la msma sintaxis que min .

La funcin sort cumple este cometido. Su sintaxis es

3.10

Prctica 3

y=sort(x)

El vector, y, ser wi vector colunma o fila que contatdr los elemaitos de x,


ordatados de maior a mayor, aigrosando su magitud con el crecimiatto
del subndice de la fila, ordat ascendatte

Y=sort(A)

La matriz, Y, contiaie las colunmas de A ordatadas ai ordat ascendaite:


los elenmtos de la primera fila sern los maiores de cada colunma

[Y, l]=sort(A)

La matriz , Y, es la nsma del caso anterior. 1elemaito i, de la matriz, I, es el


subndice, k, del elematto y,correspondiaite al elematto a,. de A

buscar los elementos que


cumplen una condicin

La funcin find se ve potenciada cuando se usa combinada con los


operadores relacionales,<,<=,>,>=,==,-=

El vector, y, contiaie los subndices de los elemaitos que no son ceros

y=find(x)

firict --~

-- -

x=[3 O 7 4 O 2);

(3.20)

y=find(x)
y=
1

Considera a la matriz A como un solo vector colunma compuesto por los


vectores colunma ordatadamatte yuxtapuestos, El vector,y,contiaie los subndices de los elemaitos de aquel nico vector que no son ceros. Los elemaitos de una matriz pueda! ser referaiciados por Matlab con un simple
subndice

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

... Halle el mdulo del complejo 3+4*i, introduciendo en la lnea de


edicin:
m=abs( 3+ i*4)

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;

Vuelva ahora a hacer el c:_jercicio y le

'\ "::,...,_..._..._ ...._.,............-

dar-el r=ltado

correcto

l
j

..~......_ . _ __ _

.... _ . . -

Observe la sintaxis de la funcin find cuando se usa con operadores relacionales.


A=
1

4
6

operadores relacionales y
matrices

(n)=find(A<4 & A>2)


n=
4

O 2
5 3

(3.24)

Matlab, cuando usa los operadores relacionales con matrices, entiende que son operaciones 'uno a uno'.
<

menor que

<=

mi:nor o igual que

>

mayor

>=

mayor o igual que

--

idntico a

-=

no igual

Matlab compara pares de elementos y corno resultado nos proporciona


1 ~ cierto
O ~ falso
2+2==5
ans=

(3.25)

Como ya hemos visto pueden hacerse las operaciones lgicas&,


relacionales

1, -,

con los operadores

ami, y

&

or, o
not, no

manipulacin de la ubicacin de elementos en una


matriz

rot90(A)

rot90(A,k)

A=
1
2

o o
3

o o

A1=roS)(A)
A1 =
o 4 5

o
o

ALT+ol26

Con centro de giro en la interseccin de las diagonales del


rengulo o cuadrado, se gira la matriz 90 , en el plaano,
en sentido antihorario
Id, pero ahora k90

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)

Gira 180 en el espacio entorno a su linea central horizontal

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)

polinomio y ecuacin carac- Dada una matriz nxn


A , llamamos polinomio caracterstico al
tersticos de una matriz
determinante
lsI-AI
donde s es la variable del polinomio e I es la matriz unidad
Igualando a cero el polinomio caracterstico tenemos la ecuacin caracterstica

!si-Al =0

autovalores y autovectores

Las races de la ecuacin caracterstica se llaman autovalores o valores propios de la matriz A.

N B .: En el espacio de estados. cuando A es la matriz de evolucin, sus autovalores son los polos del sistema

Llamamos autovectores o vectores propios a la variedad lineal, solucin de los sistemas


de ecuaciones homogneos, expresados en forma matricial

[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

Los vectores columna de la matriz Vec son los autovectores


Los elementos de la diagonal de la matriz, Po, los
autovalores

(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)

El polinomio caracterstico de la matriz A, ser


(s-O)(s+ l)(s+2) =s 3 +3s 2 +2s
... Halle autovectores, autovalores y polinomio caracterstico de su matriz
personal M

3.5

Clculo matricial

3.13

... Halle el nmero de filas y el nmero de columnas de M y reproduzca


en el marco lo escrito en la ventana de edicin

[ f,c] =SI U
3.6

( MJ

f= 3

... Eleve al cuadrado todos los elementos de M y llame a la matriz obtenida, MI


... Calcule con Matlab el elemento de Ml, que llamaremos, f, cuyo valor
sea el mayor de los elementos comprendidos entre los valores 6 y 80
... Halle M2=M2

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

Sintaxis de la funcin, diag

B=diag( a)

Construye wia matriz cuadrada wya diagonal es el vector


a, siendo los dems elementos ceros

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

... Conociendo que el vector c=[1 2], escriba en el marco la sintaxis de


diag en dos operaciones cuyos resultados son

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)

... Extraiga de su matriz, M, una matriz triangular inferior, T


J" , ...,.,...,...- - - . - . - . - - - - -- - - --

3.9

'

A=

o o

O 4
4 5
5

4 O
O 6
7 O

... Una imagen est representada por la matriz A


elementos obedecen a la ubicacin de cada punto.
el tono de gris
B=
4 5 4 3 o 6 7
7 o 4 5
5 4 3 O 6 7 o
o 6 o 4
4 3 O 6 7
o o
o 7 6 3
3 O 6 7 o o 4
5 o 7 o
6 7 o o 5 4 3
4
o o o
3 O o o 7 7 7
3 5 o o
6 7 o o 5 4 3
4 5 7
4
7 O O 5 4 3 4
o 3 4 7
O 5 4 3 4 o 6
6 4 3 7

. Los subndices de sus


Su valor de O a 7 indica

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

En su monitor aparecen sucesivamente las dos imgenes.


1 Las dos imgenes representan el mismo objeto?

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

vt ~ (2,1) 'J '"""".__ ~


1,,.,,.,_,,,_1....~fJ.. 4 J

.J:.. .

A([2 4), :)

A([4 2), :)

~ ~~. ~ f1Ul8-~ la.,.,~

.e...-- o-t.&
A(4:-1 :1,5:-1 :1)

A([1 1],[2 2))

!.

.Q,.,,f-4-,-Z.Jy~.

:W~

A./os o i; vu-61..116

A([1 1],[4 5))

(j, Y) (j,5)

A([2 2],[5 4))

~,Y) u,s)
(?, -s) ("i, '-Y
(j.,5) (e ,'!)

A([3 2),[5 4))

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

PRACTICAS DE AUTOMA TICA


Area de Ingeniera de Sistemas y Automtica

'

............

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)

El factor l.Oe+004 = 10 4 , multiplica a los tres valores que le siguen.


Si hubiramos escogido el formato numrico format short e, equivalente a Options/Numeric format/short e, hubiramos obtenido
1.2035e+004

f=
-5.2.CXXle+COO

1.3683e+004+ 3.2326e-+004i

(4.2)

El tamao de fes el mismo que el de x


Otro modo de evaluar el polinomio es con la funcin polyval, que necesita dos argumentos
f=polyval(p,x)

p. vettor fila con los coeficientes del polinomio


x, vettor fila de valores para los que deseamos que
el polinomio sea evaluado

polyval

f=polyval(p,x)
f=
-1 .7CXXl 40.SCXX) 227.rDJ

p=[ 3 -0.5 O 1 -5.2];


x=(1 :3];

(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.

suma y resta de polinomios Requieren la equidimensionalidad de los polinomios operandos.


pl =3x+3 p2= x2 +8
p1=[O33);p2=[1 O 8);

multiplicacin y divisin de
polinomios

p=p1+p2
p=
1 3 11

(4.5)

La multiplicacin de un escalar por un polinomio se verifica como la


misma operacin entre un escalar y un vector
)) p3=4*p

p3=

4 12 44

(4.6)

Prctica 4

4.4
La multiplicacin y divisin de polinomios se efectan respectivamente con conv y deconv

conv.::

p=conv( p1, p2)

dec::onv

El vector, p, es el resultado de la multiplicacin de


pi porp2

(3x 2 + 2x+ 1)(2x+ 8)

=6x 3 + 28x 2 + 18x+ 8


p=conv(p1 ,p2).
p=
6 28 18 8

"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];

El vector, c, es el polinomio cociente y el vector, r.


el polinomio resto de la divisin p3!p2

p3=conv(c,p2)+r

[c,r)=deconv(p3,p2)
e=
713
413
r=

p3=

(4.8)

races de un polinomio

Las hallamos con la funcin roots

[r]=roots(p)

El vector, r, es un vector columna que contiene las


races del polinomio p

p=[1 -2-310);

r=roots(p)
r=

2
2
-2

1i

1i

(4.9)

()j

La funcin poly realiza la operacin recproca.


El vector, p, es un vector fila que contiene los
coeficientes del polinomio, p, cuyas son las races
del vector columna, r

[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)

Con Wl solo argumento de entrada y WlO o ninguno


de salida, halla el polinomio derivada de p

dpq=polyder(p,q)

Con dos argumentos de entrada y WlO o ninguno de


salida, halla la derivada del producto, p *q

[nd,dd]=polyder(p,q)

Con dos argumentos de entrada y dos,


correspondientes a la fraccin de salida, halla la
derivada del cociente, plq

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

derivando un polinomio con


csad
- oo , , . ~ ~ - ~

u n - -n'\,

Su sintaxis

pd=pderiv(p)

: pderi.v

El vector fila, pd. es el polinono derivada de p

adicin de polinomios

-~ ----..--- -

La funcin padd suma hasta 1O polinomios

: padd-- -

ps=padd(p1 ,p2,p3, .. .,p10)

construccinde polinomios
aparti:r de sus>races

El vector fila, ps. es el polinono suma de los polinonos argumentos


deeotrada

La sintaxis de sus argumentos de entrada es ms verstil que la


funcin, poly, de Matlab.

. ~.

p=pmake( r1, r2, r2, .. )

Las races son introducidas como argumentos

p=pmake([r1 , r2, r2, .. ])

Ahora el argumento es Wl vector fila

p=pmake([ r1 ; r2; r2; .. ])

El argumento es Wl vector fila

> p=pmake([-1 ;-1 ;-3+j*4;-3-j"4))


p=
,:.:.,e..,('l(J,

~"'' :!:

..

La funcin pmult realiza la multiplicacin de hasta 10 polinomios


Su sintaxis es anloga a la de paad

pm=pmult(p1,p2,p3, ...,p10)

El vector fila, pm, es el polinomio-producto de los polinomios


argumentos de entrada

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

Determinar el campo de variacin de algunos de sus pmmctros sin llegar a la inestabilidad

Su aplicacin exige la construccin de la siguiente table a partir de la E.C.LC

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=

a,._ 1aio-4 -a;;a,._5


a,.-1

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

vrtice se rellena con O

Se concede prioridad a producto diagonal ascendente y su vrtice-origen figura tambin


como denominador

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)

Modo tutelado: el programa le exigir la introduccin del polinomio


caracterstico a lazo cerrado
El vector fila, p, contiene los coeficientes del polinomio caracteristico
a lazo cerrado

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)

Number of sign changes in the first column is O

Puede Ud completar el clculo, hallando el valor de los polos puramente imaginarios


pp=roots((8 O 1361)
pp =
O+ 4.1231i
0-4.1231i
routh

Enter polynomial vector D > [1 1 2 2 315]


You entered: s"5 + sA4 + 2s3 + 2s2 + 3s1 + 15
s5 Row:
1 2 3 O
s4Row:
1 2 15 O
Zero element in first column of the next row
Replacing zero with 1e-5
s3 Row:
1.0000e-005 -1.2CXXJe+001
O
O
sz Row:
1.2CXXJe+006 1.5COOe+001
o
SA1 Row:

(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

Number of sign changes in the first column is 2

Polinomios. Antitransformadas

4.7
Toda expresin de la fonna

Descomposicin en fracciones simples

F(s)= b,.s"'+b,,,_s,... 1 + ... +b 1s+b 0


s +a,...s,... 1 + ... +ais+ao
puede ser expresada como una suma de trminos del tipo:

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

IBj = (s-p1)F(s)I .r=p

Trminos generados por un polo de orden de multiplicidad, h


Djt

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

D11 = (h-1)! . ds1t-1 (s-pj) F(s)

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

siendo la antitransformada de la suma de los dos trminos


21Aile'cos(ro dt+ LA)
Cuando los polos complejos son mltiples, se sigue un procedimiento anlogo al de polos reales
mltiples. Hemos de tener en cuenta que el clculo manual seguimos un orden inverso al orden
de presentacin de polos y residuos de Matlab.

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)

Es de notar que los subindizados de los vectores


El resto

r y p se corresponden:

r; corresponde al polo P; .

En caso de polos mltiples el primer residuo corresponde al trmino el\


cuyo denominador figura como potencia del binomio la unidad y cuya
antitransformada contiene la potencia cero de t multiplicando al elemento
exponencial.
2

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

La fimcin residue es reversible, permutando el conjunto de elementos de


entrada con el conjWJto de elementos de salida nos proporciona el
polinomio al que le corresponde tal descomposicin

[n1 O,d1 O]=residue(r,p,k)

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

o.cxm o.0370 o.2500

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

Puede utilizar resi2 para hallar directamente un residuo determinado


de un polo, mltiple o no

Los argumentos de entrada son


n10,d10, numerador y denominador de la fimcin cuyo es el residuo
buscado
p, polo al que corresponde tal residuo
h, orden de multiplicidad
n, potencia del binomio del denominador perteneciente al trmino cuyo
residuo se busca.

[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)

.,. Sin utilizar la funcin residue o resi2


1 Descomponga en fracciones simples la funcin
G(s)=

l
s4 +2s2 +1

y halle su antitransformada, mediante la frmula

par de conjugados
Rcr:!:/<,>d

=21A 11 lemcos (rodt + L411) + 21A 12 ltecr cos (rodt + L412)


1A 11 I = l ![s-(cr + jro)] 2F(s)l.i:cr+ftild 1
1

L4 =L[ [s-(cr+jro)] F(s)I


2

11

=r-+:<ild

IA12I = 1 (!ns-(cr+jro)J 2F(s)} )l=+J@J


L412=L(

!{[s-(cr+jro)] F(s)}I

. )
=+J<ild

realizando las operaciones, que pueda, con Matlab


fW

46*'1YMl

- -

4.1

g(t) =

L --
~ =-"'"'--&=""-~ -

4.9

Polinomios. Antitransformadas

~ Enumere todas las funciones de Matlab que ha utilizado en el ejercicio


anterior

- - - ..

- --~-- - -- -

4.2

clculo directo de antitransformadas de Laplace

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)

Halla la antitransformada. Eventualmente el programa le preguntar si quiere


utilizar la fimcion seno o coseno en el caso de transformadas con un monomio
generado por el factor cuadrtico, si lo hubiere.
As mismo ofrece la posibilidad, siempre que carez.ca de trminos en o(t), de
obtener la representacin grfica de la antitransformada para los valores
deseados de t

iltl(n10,d10,tau)

Calcula la transformada de una expresin racional retardada en tau segundos.


La expresin en el dominio de Laplace estar multiplicada por e"'

iltl(n10,d10,tau,'s')

Id. pero utilizando la fimcin seno

iltl(n10,d10,tau,'c')

Id. utilizando la fimcin coseno

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)

Funcin trigonomtrica (s)enol(c)oseno a utilizar: s


ans=
3*D1 (d(t)) + 7"d(t) + 0.3462E!"(-2t) + 0.5172te"(-t) - 0 .1748e"(-t) - 0.1765 + O.Cll5986e"(-3t)sen(st+1.023)

donde d(t) es el impulso de Dirac, o(t), y D1(d(t)) es ![o(t)].


Si deseramos hallar la antitransformada de

(2s+ l)e-3s
s 2 +4s+25

itt

> iltl(n1 ,d1 ,3,'s')


ans=
-2.104e"(-2(t-3))sen(4.S83(t-3)-1 .254)

(4.1 8)

> ft=ilt(n1 ,d1 ,3,'s')


ft =
(-2.104e"(-2(t-3))sen(4.S83(t-3)-1 .254))(0.5 + 0 .5~-31./(t-3))

(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.

Supongamos que Ud desea evaluar la expresin 4.19 para el valor: t = 2 segundos.


>t=2;
> a=eval2(ft);
(-2.104*exp(-2*(t-3)). *sin(4.583*(t-3)-1 .254)).*(0.5 + O.S*abs{t-3)./(t-3))

(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

La funcin plotit que carece de argumento de salida le muestra la


grfica de la antitransformada.Su sintaxis:
plotit(t,anti)

whiteb~

Sus argumentos de entrada son el vector fila, t, y el


argumento de salida de wta fimcion iltl o ilt

Antitransformada de Laplace

whitebg
t=0:0 . 1:10;plotit(t,ft)

1.5

0.5

o----0.5

-1

10

Con whitebg hemos cambiado el color de fondo de la ventana grfica

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.

Deseamos hallar la antitransformada y su dibujo, de la seal


0.5(e-s -e-3s) o.se-s o.se-3s
F(s)=

=-s---sAntitransfomiada de Laplace

De la ejecucin del ejemplo deducir Ud. fcilmente sintaxis y proceduras.

resit
sumit

n1 =0.5;d1 =[1 O);


n2=0.5;d2=[1 O);
a=ilt(n1 ,d1, 1);
b=ilt(n2,d2,3);
c=resit(a,b)
e=
0.5(0.5 + 0.5jt-1 j./(t-1)) - (0.5(0.5 + 0.5jt-3j./(t-3)))
t=[0:0.1 :5];
plotit(t,c)

;;-

~ 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

Area de Ingeniera de Sistemas y Automtica

, -

..

Polinomios. Antitransformadas

4.ll

... Halle la antitransformada y el dibujo de la seal


F(s) =l._ .2.(e-3 + e-6.s + e-9s + e-9s )

4.3

s2

Z- antitransformadas
La funcin izt halla la antitransformada de una expresin racional en z
izt( n 1, d 1, 's')

El tercer argumento opcional se adelanta a la pregunta de


qu fimcin usar.En este caso,seno

izt(n1 ,d1 ,'e')

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)

Aparecer en la ventana grfica dibujada la seal discreta.

Control de flujo

5.3

control de flujo

Matlab est dotado de unas instrucciones de control como las que se


encuentran en la mayor parte de los lenguajes. Esto le confiere la posibilidad de ser usado como un lenguaje de alto nivel.
Repite cclicamente una serie de enunciados, incrementando en una
unidad, por cada ciclo, el contador especificado en la expresin que
sigue a for.
La arquitectura ms simpie de un lazo for es

el bucle for

for

for variable=definicin del contador


enunciado
enunciado
end

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

anidado de lazos for

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.

lazos for y strings

Los elementos del vector, n, pueden ser cadenas de caracteres


(strings), el nmero de ciclos ser igual al numero de caracteres.
)) a=o;
far n=['fatu mazcayu y guapn')
a=(a n];
end

a
a=
fatu mazcayu y guapn

(5.3)

Procure ejecutar este lazo suprimiendo el';' del enunciado a=(a n].

la variable n es una matriz

Si la variable n fuese una matriz, en cada ciclo se usaran los valores


de cada columna. El nmero de elementos de cada columna debe ser
el mismo. En cada ciclo se utilizan los valores de una columna.
Comprubelo suprimiendo el punto y coma.
c=O;
far n=['fatn';'mazca';'guapu'J
c=(c n];
end

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 ~

Este lazo ejecuta una serie de instrucciones mientras se cumpla una


condicin que es retesteada en cada ciclo. Los ciclos se sucedern
mientras la condicin, normalmente, una relacin, sea cierta; en
caso contrario se ejecutar la instruccin que siga al end, clausura del lazo.
Su arquitectura ms simple es
while condicin
secuencia de instrucciones A

end

operadores, funciones relacionales y operadores


lgicos

Como la condicin se expresa normalmente usando operadores y


funciones relacionales es conveniente recordar algunas de sus
propiedades.
La salida de una operacin relacional binaria, realizada con los

signos

<, >,~. ~,= ,- =


entre dos matrices equidimensionales, es otra matriz, de las mismas dimensiones, compuesta de unos y ceros, segn sea cierta o falsa la relacin establecida entre las dos
primeras.
Normalmente no es necesario explicitar la matriz lgica 0-1 , resultado de la relacin, aunque determinadas necesidades de programacin puedan, a veces, requerirlo.
A=[2 3 4;3 61);
8=[234;1 21);
lnd=A==B

lnd =
1

o o

(5.5)

Los operadores <, >, ~. ~.


actan tan slo sobre la parte real de sus operandos, mientras
que = y - = comparan tambin la parte imaginaria.

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

salida planificada y salida


de emergencia de un lazo
while

break

1.

Siempre es posible incluir entre las instrucciones de la secuencia del


lazo un if... break end.
Pero como salida de emergencia recuerde AC

. a=O;

whilea<S

a=

a=a+0.1;
if a==0.70
break
end

(5.6)

0.7CXXJ

end

Observe el efecto nulo de los ceros no significativos.

la condicional if

Su sintaxis ms simple es
if condicin
secuencia de enunciados A
end

if

Las instrucciones A se ejecutan si el resultado de la relacin es un 1, esto es: si se verifica


la condicin.
Los lazos while tambin pueden ser anidados.
if condicin 1
secuencia de instrucciones A
if condicin 2
secuencia de instrucciones B
end
secuencia de instrucciones C
end
secuencia de instrucciones D

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

indx ser WI veor fila de tantas colunmas como la matriz, X. cuyos


elementos sern I Osegn la colunma del mismo ndice de la matriz ,X,
carezca o no de elementos nulos. Con WI I nos dice: 'en esta columna no
todos son ceros'

Prctica 5

5.6

.X=
3
O

1
7

any(X)
ans=

O
O

indx=all(X)

(5.7)
O

indx ser W1 vector fila de tantas colunmas como la matriz., X, cuyos

elementos sern O 1 segn la colunma del mismo ndice de la matriz ,X,


contengan o no de elementos nulos. Con W1 1 nos dice: 'en esta colunma
no hay ceros'

.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

Ya hemos visto otras posibilidades de esta funcin en la pgina 3-10


.--J.................._

X=

indx=find(X)
indx=
1

o
o

(5.9)

3
4

o
exist

isnan

J.

inda ser W1 escalar

inda=exist('A')

O => A no existe como variable definida en el acrual entirno de trabajo


1 => A es tn1a variable definida en el acrual entorno de trabajo
2 => Am es W1 archivo
La variable ha de estar escrita entre comillas

Cuando el resultado de una operacin es una indeterminacin, Matlab

INDX=isnan(X)

responde con NaN (Not-a -Number). La matriz, INOX, equidimensional


con X, contiene unos all donde X contiene un NaN

X=[O\O inf-inf inf+inf inf"D;O*inf inf/inf NaNA4 7]


Warning: Divide by zero
X=
NaN NaN lnf 1
NaN NaN NaN 7

INDX=isnan(X)
INDX=

(5.1O)

o o
1

INDA=finite(A)

La matriz, INCA, equidimensional con A, contiene unos all donde A


contiene elementos finitos y ceros donde haya un inf o un Nan

indx=isempty(X)

indx = 1 => X es una matriz vacia,O


indx =O => X no es una matriz vaca

indx=isstr(x)

indx = 1 => X es un string


indx = O => X no es una cadena de caracteres

finite

isernm,ty

iss.tr& I I
indy=strcmp(y1, y2)

la condicional if... else

indy = 1 => el string, y1, y et string, y2, son idnticos


incly = O =>
no son idnticos
Esta comparacin es case-sensilfva

Su arquitectura es

.,

Control de flujo

5.7

if condicin
secuencia de enunciados A
else
secuencia de enunciados B

else

end

end
{

la condicional if... elseif

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

if ... elseif puede combinarse con else


if cond1
secuencia de
elseif cond2
secuencia de
elseif cond3
secuencia de
else
secuencia de

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

---depurado de las funciones


de usuario

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.

acceso a variables locales


de una funcin

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.

el uso del debugger


Conviene tener en cuenta que
el debugger slo trabaja con archivos de funcin y no con archivos scripts
cuando se cierra un m-archivo, bien por utilizar tras el prompt >> clear
nombrearchivo o bien cuando se cierra tras proceder a su edicin,
quedan inhabilitados todos los puntos de interrupcin introducidos; y por
supuesto se cancelan siempre que se sale del programa.

listado de instrucciones
numeradas
--=-

Con dbtype obtenemos un listado del m-archivo con todas las lneas
numeradas.
dbtype nombre

Proporciona W1a lista de todas las !meas numeradas del


archivo de fimcin aiyo nmbre se explicita

dbtype nombre m:n

Id desde linea m hasta n inclusive

dbtype

Control de flujo

5.9

dbtype bi2mo 4:5

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

Diwe la ejecucin, le muestra la lnea especificada y


cambia al prompt K

dbstop in nombre

Detiwe la ejecucin tras la primera lnea ejecutable,


mostrndola y cambia el prompt a K

dbstop if error

La ejecucin se detendr si descubre un error,


pennitindonos examinar el entorno local. Pero no
podremos contnuar con la ejecucin, a no ser que
utilice las funciones dbcont o dbstep

dbstop if naninf

En estos dos ltimos casos el programa detiene su


ejecucin cuando algn resultado es NaN o inf

dbstop if infnan

eliminacin de interrupciones

dbclear

La funcin dbclear quita las interrupciones introducidas por dbstop


con una sintaxis semejante a la de dbstop.

dbclear at nmero in nombre

Elimina la nterrupcin en el nmero de lnea explicitado

dbclear ali in nombre

Elimina todas las interrupciones en el archivo especificado

dbclear ali

Elimina todas las interrupciones en todos los m-archivos

dbclear in nombre

Elimina tan solo la interrupcin en la primera lnea

dbclear if error

Desadiva la nterrupcin de error

dbclear if naninf

En estos dos ltimos casos desactiva la interrupcin por


deteccin de Nan o inf

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

Con dbstep se ejecutan una o ms lneas despus de una detencin

faire le point

dbstack

dbstep

Ejecuta la lnea siguiente

dbstep n

Ejecuta el nmero de lneas siguientes especificadas en n

dbstep in

Esta sintaxis es usada cuando la prxima !mea ejecutable


pertenezca a otra funcin de Matlab llamada por el
programa

Cuando tras una interrupcin Ud desee saber dnde se encuentra la


funcin dbstack, que no lleva argumentos, le dir la lnea en que se
encuentra de su programa o, en su caso, la lnea de su programa en la que hay una llamada
a un m-archivo y el nombre y la lnea del llamado en que se encuentra detenido.

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)

-,,

Presenta una lista rotulada en dos coluumas:


La primera coluuma est constitudad por los rtulos, cadenas de
caracteres predefmidas como strings (entre comillas) en el
vectOT columna, s

La segunda colunma es el vector fila o colunma, v, que


contidle los datos numricos predefmidos di el nsmo
ordm que sus correspondimtes rtulos

D=displist(s,v)

La lista queda almacenada di la variable D

ninput(s,def)

Pernte solicitar al usuario mediante el string, s, la


introduccin de un argumdlto numrico de dltrada de
una funcin de Matlab. Si la dltrada no se produce el
argumdlto utilizado por la funcin de Matlab ser el
predefinido di la variable def

pinput(s,def)

Anloga funcin a ninput cuando el argumdlto de


mtrada de la funccin de Matlab es un vector fila que
describe un polinono que escrito como potdlcias de s.
Si la dltrada no se produce se utilizar la variable por
defecto, que adoptar la forma de 1111 factor multiplicado
por 1111 polinon mnico si hubiere a ello lugar

pinput( s, def, 'v')

Por defecto al reproducir el programa el polinono def


utiliza la variables, si quisiera utilizar la variable v
definida como string. deber colocarla como tercer
argumento de mtrada

vinput(s,def)

Funcin anloga a ninput donde un vector desempea


ahora el rol del nmero di ninput

yninput(s,def)

Solicita al usuario la mtrada de un y/n.

y=l n=O

tfshow(n1 ,d1)

Muestra la f.dt. como fraccin, utilizando la variable s .

svshow(A,B,C,D)

Muestra las matrices de las ecuaciones dinncas, si


no se especifica supone que es O

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

"

You entered: 3*(sA2 + 1.333sA1 + 1.667)


maentra
Default input is: 7*(sA1 + 0.1429)

2.333*(SA1 + 0.1429)

Introduzca el polinomio-numerador> [7 1]
You entered: 7*(sA1 + 0.1429)
Default input is: sA2 + 5sA1 + 25

Desea introducir una accin integral de control? (y/n) [n) > y


Preprese para introducir Kp,Ki y Kd

Introduzca el polinomio-denominador > [3 4 5]

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

intenta ejecutar, generando un mensaje para el usuario dependiendo


del valor que adopte la variable msg, argumento de salida de nargchk.
Esta es su construccin

msg = nargchk(low,high,number)
%NARGCHK Check number of input arguments. Return error
message if
%

not between low and high. lf it is, return empty matrix.


msg=(];
if (number < low)
msg = 'Not enough input arguments.';
elseif (number > high)
msg = 'Too many input arguments.';
end

Un uso frecuente de nargchk. combinado con error y nargin es:


error(nargchk(2,6,nargin));

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

Como es habitual la funcin input solicita una entrada del usuario;


usada con un solo argumento entiende que la entrada es una

Prctica 5

5.12

expresin numrica de Matlab. Si la entrada es un string, hemos de introduci.r un se.g1;ao


argumento.

input

x=input('solicitud')

Con un solo argumento entiende que x ser variable numrica

m=input('solicitud', 's')

La variablle m ser lUla cadena de caracteres

> a=input('Cuantos aos tiene? >');


Cuantos aos tiene? >57
>a
a=

> x=input('Cul es su gracia?>

Cul es su gracia?>
>X

x -=
Pepe;

Pepe;

','s') ;

> m=input('Desea Ud. algo ms?


> if isempty(m)
m='S'
end

S/No (S] >')

6. Funciones de transferencia

(Js 2 +Bs+K)8 =LO.

---:--

8 = _ _.;;L;.___
D. Js 2 +Bs+K

PRACTICAS DE AUTOMATICA
Area de Ingeniera de Sistemas y Automtica

, -

Practica 6

6.2

pulsar y retener -

pulsar, retener y arrastrar -

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..

ff.dd.tt. de sistemas SISO

Basta definir los polinomios del numerador y del denominador.


n1=[3 6];
d1 =[1 5 25];

printsys

printsys(n1 ,d1)
numlden =
3s+6

(6.1)

Si Ud prev que va a utilizar alguna funcin de la Signal Processing Toolbox entonces


debe definir los vectores fila que representan al numerador y al denominador como
equidimensionales, rellenando por delante con ceros.
printsys(n 1,d1)

Le presenta en pantalla la ftmcin de transferencia en s, por defecto

printsys(n1 ,d1 ,'z')

Id, pero ahora le presenta la f.d.t. de un sistema discreto, cuyos


polinomios en z tienen idnticos coeficientes

La toolbox CSAD no admite, en cambio el rellenar por delante con ceros.

ff.dd.tt. de sistemas SIMO

Las posibilidades de Matlab con los sistemas multivariables


utilizando ff.ddtt. no van ms all de los sistemas con una entrada y mltiples salidas.
Y,(s)
3s+2
Y2(s)
s 3 +2s+5
X(s) = 3s3 +5s2 +2s+ 1
X(s) = 3s 3 +5s2 +2s+ 1
que escrito en forma compacta es

[ 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

clculo de vectores columna, z, p, k

El paso del formato polinmico al formato cero polar lo facilita la


funcin tf2zp, tambin vlida para sistemas discretos.
[z, p, k]=tf2zp( n, d)

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);

d=f4 28 124 100];


l) printsys(n,d)
.
num/den =
12 s + 24

4sA3 + 28 sA2 + 124s + 100


> [z,p,k]=tf2zp(n,d)

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

n y d son respectivamente los vectores fila de los coeficientes de los


polinomios numerador y denominador

Para el caso del sistema SIMO, (4.4)


[n2,d2]=zp2tf(z,p,k)

(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)

Los dos primeros argumentos correspondw a la f.dL de la


cadena directa. El tercero y el cuarto, a la f.d.L del lazo de
realimentacin.
El argumento s ign ser -1 si se trata de realimentacin
negativa y 1, si positiva. Por defecto, si no se pone tercer
argumento, el programa utiliz.a realimentacin negativa

.,. 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

[n ,d]=series(n1 ,d1 ,n2,d2)

Los argumentos de entrada son los respeivos


pares numerador-denominador que definen las
dos ff.dd.tt.

[n,d]=parallel(n1 ,d1 ,n2,d2)

Id

ff.dd.tt. de diagramas de
bloques y de grafos
~------------ -....... ......
. tfseries

Con las funciones tfseries, tfparall, tfcloop realiza CSAD, la


simplificacin de bloques en cascada, paralelo o en realimentacin
10
s+4
G(s) = s (s + l)(s+ Z)
H(s) = s+:,

._ 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

......... ,- v ,..,., ....__....._..,.........,

.pmult_-----1

G(sl
H(sl
RCsl o----<o>----o YCsl

...

[n,d)=tfseries(n1 ,d1 ,n2,d2)


n=
10 40
d=
1 8 17 10 O

Escriba en el marco la funcionalidad y sintaxis de pmult


-

.............~ la funcin pmult de CSA D

6.2

(6.7)

ttparaU

2h n u ~ n O - - - J

R(sl

Ylsl

. n1 =[10];

: d1 =pmult([1 0),[1 1],[1 21);


; n2=[1 4];
. d2=[1 5];

G(sl

, .. ~ y.. ' - - -

[n,d]=tfparall(n1 ,d1 ,n2,d2)


n=
1 7 14 18 =O
d=
1 8 17 10

-- - - - -- -

(6.8)
R(sl

tfcloop

n1 =[10);
d1 =pmult([1 0],[1 1J,[1 21);
n2=(1 4];
d2=[1 5];

G(sl

(n,d]=tfcloop(n1 ,d1 ,n2,d2)


n=
10 =O
d=
1 8 17 20 40

Rlsl~Ylsl
-H(s)

... Mediante las pertinentes funciones reduzca el siguiente sistema a un


solo bloque, utilizando su cdigo personal

Practica 6

6.6
--.~ ~uencia de inotruccioneo

6.3

ff.dd. tt.

COn

retardo

Cuando estudiamos el teorema del retardo de una funcin, f(t) , en la transformada de


Laplace, habamos visto que un desplazamiento, 't, hacia la derecha de la grfica de una
funcin en el dominio del tiempo, f(t-"C) , la transformada de la funcin, f(t), quedaba multiplicada por e..,,. ,
Son relativamente frecuentes los sistemas que presentan un retardo, comnmente llamado de transporte.
En el sistema, a, de mezcla de fluidos
el sensor que ddea la concentracin
suele situarse a una distancia d del
lugar de la mezcla. El retardo introducido ser

Punto de
medicin

(a)

Calibre de medida
de e1pesor

"C=5!.
V

Lo mismo se diga del sistema, b, de

__,_I__._J_ _ _
Rodill_u@~o)- u-

t----d

laminacin de una plancha de acero.

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);

't es el reatardo expresado en segundos


n es el orden de los polinomios de Pade

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)

ff.dd.tt. con retardo Y CSAD

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

'---~,------

...;

el rttardo expresado en segundos


n es el ordm de los polinomios de Pade. Parece que ha de
ser menor o igual que J

[tfn, tfd]=tfdelay('t, n)

"t es

[tfn,tfd]=tfdelay('t,n, 1)

Con el tecec argumento,! , la fraccin aproKimadora, tiene


el numerador de lDl orden inferior al del denominador, expresado en n

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

step(n1 ,d1 ,t)

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}

[ntf1 ,dtf1 )=series(n1 ,d1 ,tfn,tfd);


[ntf2,dtf2)=series(n1 ,d1 ,tfn1 ,tfd1 );
step(ntf1 ,dtf1 ,t)
clg
step(n1 ,d1 ,t)
axis(V)
hold
Current plot held
step(ntf2,dtf2,t)

(6.1O)

sA3 + 4.5 sA2 + 9 s + 7.5

... En el marco de la pgina siguiente escriba un comentario descriptivo


de la funcionalidad de todas las instrucciones de (6.1O)

Practica 6

6.8
.,__...,....,,......_ _ _..,...._

comentariOf> a in!!ltruccione!!l

clg

6.4

------ - ------------- ------------------- ---------------------------------- -------- ----------------------------------

step(n1 ,d1 ,t)


axis(V)
hold

Current plot held


[tfn,tfd]=tfdelay(2,3);
.. . ............

[tfn1 ,tfd1 ]=tfdelay(2,3,1);


printsys(tfn1 ,tfd1)
num/den =
1.5 s2 - 6 s + 7.5
s3 + 4.5 s2 + 9 s + 7.5

[ntf1 ,dtf1 ]=series(n1 ,d1 ,tfn,tfd);

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

ff.dd.tt. de segundo orden

1.ttor~2 --- ]

Para generar una f.dt de 2 orden disponemos de seis modalidades


de uso de la funcin, tford2

tford2

Se usa para la introducin de ~ y ro. en modo tutelado: el


programa se lo ir pidiendo y le mostrar al final la fraccin resultante

tford2( s, ron)

Id, pero ahora el programa no le har pregunta alguna

d=tford2

Lo mismo que la primera forma para acabar presentando


slo el denominador, polinomio carcateristioo de 2 orden,
y defmindole oomo la variable, d

d=tford2(s, ron)

id, pero no en modo tutelado

[n,d]=tford2

defme nrnerador y denominador en modo tutelado

[n,d]=tford2(s, ron)

Id de modo directo

derivada de una ff.dd.tt.


-~-
tfderiv

tfderiv halla la derivada de una f.dt., naturalmente halla en sentido


ms amplio, la derivada de un cociente de polinomios.

u - ----~~"-O. OO oO -

(nd,dd]=tfderiv(n, d)

nd/dd es la fraccin polinmica derivada de 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)

normalizacin del polinomio


Un modo de explicitar el factor ganancia, K, de una f.dt. es hacer
denominador de una f.d.t
que la potencia de mayor orden del denominador tenga por coeficien.~---- h--.

\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)

nd/dd es la fraccin polinmica oon el polinomo de su denominador normali:zado

[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

SA2 + Q.6667 S + 2.667

constantes de error y error


en rgimen permanente

ttess

La funcin tfess calcula las constantes de error y el error en rgimen


permanente, asociados a una f.d.t. , a lazo abierto, de un sistema con
realimentacin unitaria
1
1
Kp =limG(s)
li
essp = s.!s.
t+G(s) . s
s~
1
1
.
Kv = limsG(s)
essv = l 1ms l+G() 2
s~
s s
s~
1
1
.
Ka = lims 2 G(s)
l
essa = s~s
l+G(s) ~
s~

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)

' '. ~.'H . ~ ~- - - ~ .~-- ~~-.: _O

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

La respuesta al escaln unitario, seal indicia!, es


1-e-t-

resp esta nd" C al

es pee fi

Llamamos constante de tiempo,T, (Charaerist time, time constant), a aquel valor de t ,


1 1- que hace
= -1 => t = T . Para este valor de t , la salida del sistema ser

U
1
1 1 Y
caciones en el dominio del
tiempo

"7

y(t> = 1-i =0, 632


La constante de tiempo, T ser entonces el tiempo que la salida del sistema tarda en adquirir el 63,2 % del valor de la salida en rgimen permanente. El valor de T caracteriza la

rapidez del rgimen transitorio.

... ... . ... .e~~:5

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

Y, si como es usual para estandarizar la ecuacin, hacernos


F = K-zf, siendo f la fuerza unitaria y hacemos
K2
B
2~
M
1
--K.
----K1
K
oo.
K
00 2
1

aplicando las frmulas de estandarizacin

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,\

)r1 ~( r,~r, )r1

+ Tis)(I + T2s) = 1+ Ts + ~1-+--=r~


2S-

l los polos del sistema son el par de conjugados.


;. }=~ro.Jro.Jl-1;2

IPl=lp' l=ro.

La respuesta del sistema de segundo orden resonante al escaln unitario es

y(t) = 1- -

e-9>"'sen (ro. 1-1;2

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

r : ..: .::: . : ~ .;. : . .-

: Mp, Sobreoscilacin Maximum overshoot


tp, Tiempo de sobreoscilacin, max

'
'

, J.;f
,,r .

O.G:I

0,5

1
1

,,

tr, Tiempo de subida, Rise time


tc1, Tiempo de retardo, Delay time
ts, Tiempo de establecimiento, Settling time
T, Constante de tiempo, Characterist time

0,10

l:,Periodo de compo11ente senoidal

Formulario para ree;puee;ta indicia!

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

Relacin entre picos sucesivos = 'M"'p

p2

_
t r=

1--0,4167~+2,917~2
er>,,

N de oscilaciones completas

~-2

=e J-,

=-k =Q

Funciones de transferencia

6.12

respuesta indicia! y especificaciones en el dominio del


.

tiempo

La funcin tftplo~ para ff.~.tt. y s_vplot ~ra _el espacio ?e estados


nos ofrecen el nusmo menu y opciones, difinendo tan solo en las entradas y en llamar autovalores (eigenvalues) a los polos.

tftplot

Antes de mostramos el men solicitar la defmicin del numerador y


denominador de la f.d.t.

tftplot(n1 ,d1)

Presenta directamente el men y acepta la definicin de la f.d.t.,


defmida por los argumentos de entrada

............................ ............

"

. tftplot
1svplot .....

--;

- TFTPLOT
Plot
Zoom in
Set axes
Grid plot
Hold plot
Label Plot
Quit

OPTIONS Final time


NewTF
Display TF
Attributes
Roots
Viewdata

- SVPLOT
Plot
Zoom in
Set axes
Grid plot
Hold plot
Label Plot
Quit

Option? >

OPTIONS Final time


NewA,B,C,D
Display Sys
Attributes
Eigenvalues
Viewdata

Option? >

Option? > n
Default input is: 1

Solicita la introduccin del numerador


denominador de la f.d.t.. Observe que no se
necesita poner punto y coma al final

Enter Numerator polynomial > [1)


You entered: 1
Default input is: 2*(sA1 + 1)
Enter Denominator polynomial > [2 1]
You entered: 2*(s"1 + 0.5)

Option? > f

Nos permite determinar el valor superior


de t utilizado en el cmputo de la
antitransformada

Enter desired final time [13.2] > 15

Option? > p
OB

p Dibuja la respuesta del sistema al


escaln unitario hasta el tiempo final
especificado

0.4

No nos gusta el dibujo y deseamos que el


lmite superior de eje y, sea 1.2

~
02

Tme,s

'

"

Op
Option? > s
Toggle auto/fixed axes? (y/n) [n]

>

S Permite al usuario escoger el escalado


automtico de ejes o determinar los lmites
superior o inferior de los mismos
Ahora la grfica es un poco ms aceptable

Choose fixed axis limits? (yin) [n) > y


Enter X axis minimum

[O) >

>

0.8

Enter X axis maximum > (20) >15


Enter Y axis mnimum > [O) >
Enter Y axis maximum > [1) > 1.2
.

.......... ...............

------

. .............. .-............ ................................_____ _______....___ ,. .


~

0.6
0.4

02
10

rme.s

15

Funciones de transferencia

6.13

Option? > g

Option? > d

d Escribe la f.d.t.. La pone en forma


cero-polar y explicita el factor de ganancia

0 .5

Option? > 1
Enter title for plot > Sistema de primer orden
Enter Y-axis label for plot > amplitud

Sistema de p,wner orden

.1

Dibuja la retcula

--':.:-~:;,=-~ ,- - - - ,

coloca ttulo y rtulos en los ejes

N.B.: Esta funcin de Csad suele acusar un error


aunque se ejecuta correctamente. Siempre es posible
introducir las funciones generales de dibujo tras el signo de admiracin de cierre, xlabel, ylabel, title, sin salir de CSAD. Naturalmente, si de CSAD sale, podr
hacer sobre la grfica todas las manipulaciones que
Matlab permite, como veremos en la prctica de posibilidades grficas

0.8 - ---~ --- -- -~- - - -

los . . . il
15

10

nne.s

Option? > !xlabel('tiempo en segundos')


Option? > !ylabel('Tensin en condensador')
, Option? > !title('Respuesta al escaln unitario')
Respuesta al escatn triario

10

1!

tiempo en se<J,Xldos

Option? > Option? > z


Pick Lower Left and Upper Right comers for new plot
using the mouse and mouse button.
. Press any 1c..v In r.nntin, ...

~----~-----,

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

h Fija el presente dibujo de modo


que los, a continuacin definidos
por la opcin n y dibujados
mediante p, se superpongan.

Option? >h
Current plot held

1.6
1.4
1.2

0.8
0.6

0.9

0.4
0.2

La toolbox CSAD posee otras opciones no explcitas en el men:


@
#

Permite introducir un texto en el punto del dibujo donde Ud. haga #


Haciendo

-6'

en un punto de la curva se nos mostrarn sus coordenadas

Puede Ud. dibujar un segmento, a trazos, horizontal, vertical u oblicua entre


los puntos que Ud., determine haciendo# en ellos
Salida temporal a Matlab
/\

Permite escoger el tipo de lnea de la prxima opcin plot:

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

Bastar multiplicar la f.dt. por s o lis y pedir la respuesta al


escaln unitario. En la prctica se traduce por aadir un cero como
ltima columna del vector fila que define el numerador o
denominador respectivamente.

Respuesta al escaln unita- Las funciones step e impulse de la CONTROL SYSTEM


rio y al impulso
TOOLBOX tienen idntica sintaxis

step

[y,x,t]=step(A,B,C,O)

Las matrices de las ecuaciones dinmicas figuran como argumentos de entrada.


Los argumentos de salida son
y, vedor colunma, si el sistema es monovariable
y, matriz con tantas oolunmas como salidas
x, matriz con valores de variables de estado, con tantas
colunmas como orden del sistema
t, vedor fila con los valores de t para los que se han computado xey

[y,x,t]=step(A, B, e, o, m)

Id, pero ahora con un argumento adicional de entrada, m,


que determina el nmero de la entrada considerada, 1,2, ...

[y,x,t]=step(A,B,C,O,m,t)

Id, pero ahora con el vedor fila,t, previamente definido,


determinamos los instantes de cmputo

[y,x,t]=step(n1 ,d1)

Ahora los argumentos de entrada son el numerador y


denominador de la f.d.t.

[y,x,t]=step(n1 ,d1 ,t)

El vedor, t, ddermina los instantes de cmputo

impulse

Como es habitual en las funciones de esta toolbox, con un rol grfico, si


se suprimen los argumentos de salida de la funcin y el signo = , se dibuja
la curva
Bajo el punto de vista del iniciado es ms interesante obtener los vedores y, x, t, para
personalizar los dibujos y poder explotar todas las posibilidades grficas de Matlab.
No se asuste si le sale un aviso de error de la obsolescencia de esta funcin, cuando la emplea sin
argumentos de salida.

0.2....---------,---....---,

> n1=[1 2];


d1 =[1 4 25);
t=[0:0.01 :5];
step(n1 ,d1 ,t)
This usage of inquire('property') is obsolete and will be
eliminated in future
versions. Please use get(handle,'property') instead.
grid
" gtextf Esta grfica est hecha sin argumentos de
salida');

-- ---->------- :-----------------------------------

Esta grfica
. est hecha
. sin rgumentoi,
.
. de salid

o
O

2
3
Time (secs)

Si Ud dispone de la versin profesional


..'
'''
0.1 6 . :--- --:----;- ---- - j -~- - --- -j de Matlab observe algunas de las muchas
:
:
. : : .
0.14 -- . . . . .. +.... ~-----~- --i-----:--- --t--- ~- --transformaciones que nos es posible hacer
con el simple dibujo anterior. En la
prctica que dedicaremos
a
las ~ O~l: _-- 1_
posibilidades grficas de Matlab las 'a_
~ o.as
estudiaremos.
. ' . ' '
'

(-/--rrr----

0.06

__ , . ,---

---- ---- --:---. -- --1----

:: :::::::::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)

Los valores del vector, t, previamente defmido, dderminan


el mbito de cmputo

Como es habitual, empleada la funcin sin argumentos de salida, dibuja la


curva
0.2~-~--~----~---~
0.15

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)

Ahora con condiciones iniciales, Coherentes!, en


el vector fila, xO

[y,X]==lsim(n1 ,d1 ,u,t)

Sin condiciones iniciales se calcula la respuesta a


cualquier entrada con la [dt.

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')

Respuesta al escaln con condiciones iniciales

----------+r-------,-,

0.16

a,

~::: ::::.1::::::r:::::r::::::: ::::::::::::::::


:

J/o: :::::::.;::::::::c: :::r:::r:---


0.06-if>>
.
.
.
.
.
0.04 ' : : .... . ........

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

Tambin podemos hallar la respuesta con condiciones iniciales


lsim(A,B,C,D,u,t,xO)

0.2 ~ - - - - - ~ - ~ - - r - - - r - - ~ - ~ - - , - - - ~

6.18

Funciones de transferencia

cmo hallar las coordenadas de los puntos de una


curva con el ratn

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)

Si no ha puesto argumentos de salida, se visualizarn en la ventana de edicin


los valores correspondientes

[x, y]=ginput

Ahora podr Ud. escoger un indefmido nmero de pwitos. Pulse ENTER para
volver a la ventana de edicin

ginput

Podr seleccionar varios puntos y volver a la ventana de edicin pulsando


ENTER

ginput

Un uso msa refinado de input fo veremos en el tema dedicado a posibilidades


grficas

ttulo y rotulado de ejes

titt~_

7_ -

La ubicacin del texto introducido es automtica en el caso de estas


tres funciones

title('texto')

El texto introducido entre comillas se situar en la cabecera del dibujo

xlabel('texto')

Id en pie de dibujo

ylabel('texto')

Id en sentido ascendente a la iuuierda del eje y

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

vez introducida la funcin y argumento de entrada, pulse ENTER y


el texto se colocar all donde Ud haga .J< en la ventana grfica.

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

Cambio de tipo de letra


h1=get(gcf, 'Children');
uisetfont(h1(1))

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'));

Id para rtulo de eje x

uisetfont(get(gca, -?Labe.1')):

~d

uisetfont(get(gca, 'Title') );

ld par; ;I ttulo

para [,~lo del eje y

cambie;, 4~ ~9~Qf qe lneas


h=get(gca, 'Children');
set(h(1 ),'LineWidth',[2])

Antes de esaibir estas dos instrucciones Haga ~ en fa


curva cuyo grosor desee cambiar. y vuelva a la ventana de edicin para esaibirlas.
La curva estaba dibujada con grosor [1], le hemos puesto grosor doble, [2). Podria Ud. poner otro nmero

.'.

6.19

Funciones de transferencia

uisetcolor

Cambio de color de una curva


h1 =get(gca,'Children');

-<? en .Ja
curva cuyo grosor desee cambiar y vuelva a la ven-

Antes de'el!Clibir estas d~-inatn.J 1J11e1,Raga

uisetcolor( h1( 1) );

tana de edicin para escribirlas.


Se abrir una ventana de dilogo donde Ud. podr escoger el
color

Cambio de color de los rtulos de los ejes


uisetcolor(get(gca, 'Xlabel') );

Se abre cuadro de dilogo. Escoja el color

uisetcolor(get(gca,'Ylabel'));

Id

Color de cuadro nter-ejes


Se abre cuadro de dilogo para escoger el color

h=get(gca,'Children');
uisetcolor(h( 1) );

6.6

.,. Hallar la curva de la respuesta del sistema


y(t)
25s+25
u (t) = s 2 + 30s + 25
a la entrada para t=[0:0.5:20];

u(t)
2

1o

1
3

t
6

12
dibuje '" re,:,pue,:,ta

.......

7. Espacio de estados (1)


Transformaciones

--l~
- ---- ,1 --..
: c.

PRACTICAS DE AUTOMATICA
Area de Ingeniera de Sistemas y Automtica

.,..........

7.2

Espacio de estados

Signos convencionales para el uso del ratn


click

pulsar

yretener

pulsar; retener y arrastrar

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,.

El par motor, T,., a excitacin constante es proporcional a la corriente de inducido, i a(t) .


T,. =Kia
La f.c.e.m inducida es proporcional a la velocidad angular, 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

Su diagrama de bloques, contando con un par resistente perturbador es

1
Js +Bs

Sustituyendo e en (2) y hallando transfonnadas nos queda

U a(s) =Las l(s) + Ral(s) + Kbs0(s) }


0m(s)
2
Kla(s) =Js 0(s)+Bs0(s)
::) Ua(s)

s[LaJs 2 +(LaB+RaJ)s+RaB +KKb

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

-- -- -

Las ecuaciones que nos describen la dinmica del sistema son

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

Coeficiente de autoinduccin del inducido

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

Momento de inercia del motor

1 X 10-5

kgm 2

Kb

V s rad-i

despreciable

Bm Coeficiente de rozamiento viscoso del motor


]

Momento de inercia de la carga

4, 4 X 10-3 kg m 2

Bi

Coeficiente de rozamiento viscoso de la carga

4 X 10-2

Nmrad- 1s

Relacin de engranajes

0, 1

adimensional

J =Jm +n 2Ji =0, 00001 +0.01 0, 0044 = 5, 4 x 10-5 kg m;


B = n 2Bi = 0.01 0.04 = 4 10-4 N m rad- 1 s
A

-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)

Si damos ahora valores numricos a la f.d.t. , despreciando La

nK
O, 072
O, 55
U(s) = s(RJs+RB+KKb) = s(O, l3s+ 1) = s(s+7, 713)

0{s)

Los polos de (3) son

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
-..---- -

aparecieran trminos del orden de magnitud de la resolucin


numrica del ordenador, eps= 2.22 x 10-16 , o an menores, si
intentsemos usar la funcin printsys. En cambio si explicitamos los polinomios
directamente estos trminos son filtrados.
[n1 ,d1 J=ss2tf(A,B,C,D,iu) iu es un ndicenmerico,1,2,3 .. m que determina la entrada respecto a la
que se calada la fdt. en un sistema MISO. En sistemas SISO puede
omitirse. Recuecde que la matriz D, si no existe, deber expresarla como
una matriz cuyos elementos son todos ceros y de dimensin:

salida x entradas

1xm

La fimcin no es aplicable a sistemas MIMO

[n1 ,d1J=sv2tf(A,B,C)
[n2,d2J=sv2tf(A,8,C,D)

Esta funcin de Csad tiene la ventaja de no necesitar la introduccin de la


matriz D, cuando no existe

A=[-40-11 0;6'5.4-4\1.54 O;O 1

-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=

Como siempre, nl, dl, son el numerador y dmominador de


las funciones de tranf=cia de partida

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=

La ecuacin y el polinomio caracteristicos de un sistema se puedfl! deducir


por simple inspeccin de la forma controlable: Los elementos de su ltima fila son los
coeficientes cambiados de orden y sigpo de las sn- 1, sn-2 , .. . s0 , el coeficifllte de s" no
figura y ~ siempre la unidad

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.

- - ---

Ver?>in literal y numrica de la" ecuacione,, de e,,tado y ol,,,ervacin ,. _

.,.

Espacio de estados

7.6

transformaciones de semejanza

Si en el espacio de estados hacemos un cambio de base de modo que

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

la base de X . Entonces las ecuaciones de esta:o y obs:acinz

i=A.x+Bu} ~
y=Cx+Du

.----'--,

T- 1i=T- 1ATT- 1 x+T-1 Bu

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)

Si la matriz V de autovectores es de rango menor que n, entonces la matriz A. no se puede diagonalizar.


Pero an es posible encontrar una transformacin w que nos transforme la matriz A. en una forma cuasidiagonal,
(forma de Jordan), con todos los n valores propios ocupando la diagonal, (aunque sean repetidos por haber polos mltiples) y con un determinado nmero de unos en la supradiagonal, v.g.:
Supongamos una matriz A (4 x4) con un autovalor p ,simple y otro autovalor p2 , con un orden de multiplicidad 3 .
Podra generarnos una tal transformacin tres clase de matrices

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

A-Poner en forma de Jordan las ecuaciones de estado y salida


y=[O

1 l]x

7.7

Espacio de estados

1 Calcularnos los autovalores de A


eig(A)
ans =

(1.5)

2
2
1

2 Calculamos s, nmero de vectores linealmente independientes generados por el polo


mltiple considerado; s ser tambin el nmero de bloques de Jordan de p;.
s = n - rank(A- p;I)
eig(A)

(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

La matriz W, consta de un autovector, v generado por el polo mltiple, 2; y un autovector.


u, generado por el polo simple, 1. Como la matriz W ha de ser no singular y de dimensin
n x n, necesitamos hallar un vector g, (vector generalizado), linealmente independiente de

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

[~~ ~ ][: l : : :){~:;: ~:;: ~:;: ~ :::::)g=[~ ]=[~11


0 2 0

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

4 Hallarnos v, el autovector propio generado por el polo mltiple, 2


v= (A-p;l)g
FI

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

... Halle la transformada de Jordan de la matriz, A, y la matriz de transformacin W , pa[ra/~t:],

A=

y:,= [~

1 O O

C =[
5

_
15

101

O 1 O

----------------------------W=

Br=

Espacio de estados

7.9

B. Poner en forma de Jordan la matriz

31 1
1
-1 1
1 Calculamos los autovalores
eig(A)
ans =

2
2
2

(1 .13)

Tenemos un polo con orden de multiplicidad, 3.


2 Hallamos s, el nmero de bloques de Jordan

s = n-rank(A- p;I)
s=3-rank(A-diag([2 2 21))
s=2

(1 .14)

Luego dispondremos de dos autovectores propios linealmente independientes, v y z, uno


por cada bloque de Jordan y un vector gen[e~~do; g ,l de modo que W ser
1

W=

g2

z2

V3 g3

Z3

v2

3 Comenzamos calculando el vector generalizado, g. Sabemos que tiene que cumplir


F2

(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

y probamos si cumple (2)


g=[1 ;O;OJ;
F1*g
ans =

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)

Hallamos el nmero de bloques de Jordan


F1 =A-diag([2 2 21);
s=3-rank(F1)
s=
1

( 1.19)

Esbozamos la matriz W con un slo vector propio y dos generalizados

Sabemos que los tres vectores deben cumplir


Fl

(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

Escgo g~m[:0.5 arbli~;::~:t:t e intentamo:::lcular g


2

g1=F1*g2

4
1

o
(1 .21)

Sabemos que v debe cumplir (A- 21)v = O


F1 =
4 -12
1 -2

8
O

-2

(A- 21)v = O => [


> W=[441;21 0;1 00];
Aj=inv(W)*A*W
Aj=

i --: I ][ ~: ]

=> { :: : ~:: } => v = [

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

1 Hallamos autovalores: -1,-1,-1, O


2 Hallamos nmero de bloques correspondientes al polo, -1
s=4-rank(A-diag([-1 -1 -1 -1]))
s=

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

3 Hallamos vector generalizado, g ,


F1=A-diag([-1 -1 -1 -1]);
F2=F1"2
F2

~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

Arbitrariamente elegimos z de modo que sea linealmente independiente de v


y cumpla (A- (-l)l)z =O
F1=A-diag([-1 -1 -1

-11);
F1

~ 6~ ~}

O
O

O 1
O -1

=)

z1+z2+3z4=0}

1
-1

Z3+Z4=

~~ U1

4 De la ecuacin (A - O l)u =O, deducimos u

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

El vector propio, v. y los vectores generalizados, g1 ,de un bloque de Jordan, de orden, k,


generado por el polo, 'A , cumplen,
(A-'Al)v=O
(A-'AI)g1 =v
(1)
(l.1)
(A-'AI}2g =0
(2. 1)
(2)
(A-'Al)g2 = g1
(3)
(3 .1)
(A-'Al) 3g2 =0
(A - 'Al)g3 = g2
(A-'AI)gt-1 = gt-2

(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~~--

con lo que ya tenemos tres autovectores para el autovalor, 2, linealmente independientes

Espacio de estados

7.13

Para calcular el vector propio,u , correspondiente al polo, 1, disponemos del sistema de


ecuaciones homogneo
(A-1 -l)u=O
Fu=A-diag((1 1 1 1))
Fu=
o -0.5 1
-1
0.5
1
1
o
o
-1
-0.5
1
rank(Fu)
ans =

0.5
0.5

1.5

-0, 5u 2 +u3+0, 5u4=0 }


}
=>U =U2
-u +0, 5u2 +u 3 +0, 5u 4 = O
=> U = u 2 =U4
U3 =0
Aj=inv(W)* A*W
Aj=
2.CXXXl o
O.CXXXl 2.00X>
O.CXXXl O.CXXXl

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.

matriz de transicin de estad


d
f
d J d
Tambin en este caso su construccin es inmediata. dependiendo del
os e una orma e or an nmero de autovectores linealmente independientes de cada bloque
de Jordan.
Si suponemos un polo, A, con orden de multiplicidad., 3, se pueden presentar estos tres
casos dependiendo del nmero de bloques de Jordan para cada polo, s = n-rango(A - Al)

transformacin de A,B,C,D,
conocida la matriz W

sv2sv

Cuando conocemos la matriz de transformacin , W , podemos pasar


de las primitivas A, B, C, D a su nueva expresin. La funcin sv2sv
realiza las operaciones
At=W- 1AW
Bt=w- 1B
Ct=CW
Dt=D

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

Esta transformacin no se limita a matrices dotadas de polos simples como otras


transformaciones de CSAD.

anlisis y diseo en el espacio de estados


svstuff

~- H4 4 - - - ..... ~~J

La funcin svstuff cuya sintaxis es

svstuff

Muestra el men

svstuff(A,B,C,D)

Reproduce las matrices introducidas y presenta men

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])

Nos presenta a continuacin las matrices A,B,C,D y el men


VSTUFF OPTIONS
Eigenvalues
Controllability
Observability
Transformations
State feedback
Response to step
Display A,B,C,D
NewA,B,C,D
Find N(s)/D(s)
Input N(s)/D(s)
Quit
Option? >

Se escoge la opcin deseada tecleando su primera letra

Option? > e
Eigenvalues of A are:

Calcula los polos del sistema. Si se utiliza la realimentacin de


estado, se muestran tambin los autovalores a lazo cerrado

-7.7868
-39.620

Option? > e
Controllability Matrix is:
1.0e+<Xl:i.
0.0020 -0.0800

C Halla la matriz, Co ,de controlabilidad y tras examinar su


3.1756

rango nos dice si el sistema es controlable

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:

Presenta tres subopciones:


CCF forma controlable
OCF forma controlable
DF
forma diagonal
Se escoge subopcin y a continuacin
presenta:
T , matriz de transformacin
Frmulas de transformacin
~, transformada de A
transformada de B
transformada de
Halla la matriz de transformacin, T

,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

Si el sistema es controlable y, en primera instancia,


suponemos las variables de estado medibles y
acx::esibles para su retroalimentacin, podemos
modificar adecuadamente el valor del factor
ganancia, K. mediante wia matriz de
retroalimentacin de ganancia K, de modo que los
polos del sistema a lazo cerrado se siten all donde
la respuesta deseada lo requiera.

S Calcula, mediante la frmula de Ackermans la matriz de retroalimentacin de


ganancia, K, con la subopcin de aadir una accin de control integral.

- SVPLOT OPTIONS Final time


Plot
NewA,B,C,D
Zoom in
Display Sys
Set axes
Grid plot
Hold plot
Label Plot
Quit

Attributes
Eigenvalues
Viewdata

Option? > s

Respuesta al escaln unitario:


Presenta el men de otra funcin de
CSAD, svplot que estudiaremos en otra
prctica

Muestra las matrices de las


ecuaciones dinmicas del sistema con
el que se est trabajando

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

Ofrece al usuario la posibilidad de introducir nuevas matrices

ption? > f
-1.137e..Q13*(SA1 -1 .955e+014)

Calcula la f.d.t.

, N.B.: Observar que en muchas fimciones de


Matlab, que no han sido cuidadosamarte depuradas,
aparecerin tnninos de magnitud del orden de la
' resolucin numrica del ordenador. En este caso hay
que despreciar el tnnino en s del numerador y

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

Existe otra opcin que no figura en el men y que es de gran utilidad

! A continuacin de la admiracin podremos escribir una funcin de Matlab que opere


sobre las variables internas de svstuff .Especial inters tienen en este caso las funciones:
ginput
gtext
title
que ms adelante estudiaremos. Observe el efecto de la!, cuando, tras haber utilizado las
opciones r, p , g, queremos aadir un texto al sitio en que hagamos ./J'" utilizando la
funcin grfica gtext
Option? > !gtext('Respuesta al escaln sin realimentacin')

0.1

Respuer escaln

0.05 ....

r~

ffiallme~cin

---- ..l.------;/~r-----------------------------

//
0.5

1.5

ime,s

clculo directo de matrices


de transformacin

Las funciones tr2ccf, tr2ocf y tr2df nos proporcionan directamente en


la matriz de transformacin si el sistema es respectivamente
gobernable, observable o tiene slo polos simples.

tr2cct

Tc=tr2ccf(A,B)

Te es la matriz de transformacin a la forma cannica controlable

tr2ocf

To=tr2ocf(A,C)

To es la matriz de transformacin a la forma cannica observable

Td=tr2df(A)

Td es la matriz de transformacin a la forma cannica diagonal

...

..-. ............... . .............--

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

'*'ii.00--#,. ,,, ..,.,.., ,,,. uu n

o " .., r.oou o-

uo - V , " 0 04_0,,-o-T olon u..-.. H '.',. u., ,._, v

-~-

---~

-uo,o , ,,_. .u :E U H ld] U!"!H Jlff:Q

Area de Ingeniera de Sistemas y Automtica

.,

. .........

. ....:':

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

requiere la solucin de lm sistema de n-ecuaciones diferenciales lineales de primer orden.

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

rna tnz do ovolUctn

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

ma1ri z d0.ev 01uc1 0n

:r .

X( O')

"' , r.

u=(~s~)" " " " ' ~ ~ l = = c : c : : : M ~ (

e1
-

SI - A

f'j

~!~)

nltri z:da .anlir..acin

del c or.troi

,j ; 1

Y(s)

rnatnz de ,.,t,servac11 in
,t, (sj; , mat riz resolvente ,

\ r:ansforn1ad a:d e la ma tri z

Fgura8.3

de-frnSiCin" ee estad o ..<JJ{r} :

De este ltimo diagrama deducimos

x(s) =(si- A)- 1 x(o+)+(sl- A)- 1Bu(s)


<!>(,)

x(s) = <l>(s)x(O+) + <l>(s)Bu(s)


y(s) = Cx(s) + Du(s)

<!>(,)

Ecuacin de estado
Ecuacin de salida

Hemos convertido el problema de la integracin de la ecuacin de estado en la solucin algebraica de lm sistema de


ecuaciones en el dominio de Laplace.
La ecuacin de estado, as expresada, contiene dos sumandos que representan respeivamente: La evolucin de la variable de estado, x,(s), debida a las condiciones iniciales de las variables de estado, x(O), (conjunto de nmeros), y la
evolucin forzada de la variable de estado, efeo de las entradas, u(s) .
En ambos casos, para encootrar las expresiones de las variables de e&ado, neoesitamos calcular la matriz resolvente,
ll>(s), transformada de la matriz de transicin de estados, l>(t).

8.4

Espacio de estados

clculo de la matriz resolvente, 4l(s) y algoritmo de


Leverrier

El clculo de <l>(s) = (sl-A)-1 no lo podemos efectuar con la funcin


inv de Matlab debido a los trminos literales en s.
En cambio, el algoritmo de Leverrier reduce el clculo de cada elemento de la matriz, <l>(s), al cmputo de los coeficientes de los dos
polinomios en s cuyo cociente constituye un elemento de la matriz.
A partir del algoritmo de Leverrier el ya citado alumno O.Bernardo Mancho ha construido la funcin lever que nos proporciona directamente, a partir de la matriz A, la matriz de
transicin de estados y la matriz resolvente.
Ejemplo: Deseamos conocer las expresiones del vector de estado, x(t) , cuando el sistema

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

Recuerde que la ecuacin a resolver en el dominio, s, es


x(s) = <l>(s)x(O+) + <l>{s)Bu(s)

(8.4)

clculo de4l(t) y de 4l(s)

Llamamos Ft a <l>(t) y Fs a <l>(s) , argumentos de salida de la funcin lever,


y adoptamos la matriz A como argumento de entrada.

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

clculo de x 1(s) con Matlab

La parte del vector de estado debida exclusivamente a las condiciones


iniciales es
x{s) = <l>(s)x(O+)
(8.5)

Tal producto matricial ser un vector columna, (3 x 1 ). Bastar multiplicar escalarmente


cada fila-i de <l>(s) por el vector columna x(O) para obtener el polinomio-numerador de
xu(s) , su denominador sigue siendo el polinomio caracterstico.
Valores iniciales de xO
x01 =-0.0327;x02=-6.0915e-004;x03=0.0088;
Definimos los numeradores de cada elemento de la matriz <l>(s)
ns11=[1 O O];ns12=[0 -36-160];ns13=[0 -160 O];
ns21=[0 1 O];ns22=[1 14 O];ns23=[0 O -160];
ns31=[0 O 1];ns32=[0 1 14];ns33=[1 14 36];

Observe la equidimensionaUdad de los


vectores fiJa que defnen los polfnomios
de los numeradores. Es exigida por los
productos escalares que siguen

Denominador comn
d=[1 14 36 160];

Productos escalares
nx01=[ns11*x01+ ns12*x02+ ns13*x03];
nx02=[ns21 *x01 + ns22*x02+ ns23*x03];

nx03=[ns31*x01+ ns32*x02+ ns33*x03];


Anidando eval2 e iltl obtenemos las expresiones en el dominio del tiempo de la evolucin de las
componentes del vector estado en rgimen libre con notacin de Natlab
xl1=eval2(iltl(nx01,d ,O,'s'))

En vez del retardo O, podramos haber puesto []

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

!jo olvide .que las expresiones anteriores an son strings.


Si quisiera evafuartas para dibujarlas o haHar un determinado conjunto de valores, tendrla que definir
primero los valores defvectort, y a continuacin mediante copy-paste redefinir las componentesfibres
del vector estado.

!,,.

clculo de x,(s) con Matlab


Al ser la entrada un escalar, r(t) , cuya transformada es

Bu(s)=[

n+u l

i
(8.6)

Luego en este caso en el producto, <l>(s)Bu(s) , slo es operativa la primera columna de


<l>(s). Por lo que basta con multiplicar por s los denominadores de los elementos de la primera columna de <l>(s) . Y como sus denominadores son iguales
df=pmult(d,[1 O])

Hallamos a continuacin la antitransformada del vector columna


xj(s) = <l>(s)Bu(s)

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)

Damos a estas expresiones la notacin adecuada al cmputo con Matlab


t=[0:0.05:6];
xf1 =-0.08828*exp(-12.12*t)+0.08836*exp(-0.9406*t).*sin(3.51 *t+1 .528);
xf2=0.007285*exp(-12.12*t)+0.02432*exp(-0.9406*t).*sin(3.51*t-0.3042);
xf3=-0.0006011*exp(-12.12*t)+0.00625-0.006693*exp(-0.9406*t).*sin(3.51*t+1 .005);
xT1 =xi 1+xf1;
xT2=xl2+xf2;
xT3=xl3+xf3;

Sumando las expresiones literales de x 1(t)+xj(t) =x(t), obtenemos la solucin de la ecuacin


de estado
x 1 (t)
x2(t)
[ X3(t)

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

Linear Nonlinear Connections Extras

... 1

2 Abra File\ New


Se abre una nueva ventana en la que vamos a construir el esquema de
bloques de nuestro sistema 'trayec'. La llamaremos ventana de trabajo.

=-1
file

1... 1

Untltled
~llpboard

.fdlt

-.ptlons

~lmulatlon

S!yle

-..,
f'

.__

H I !

l~." t,~ .. ...

~~'-"'

.. ...

Espacio de estados

8.8

3 Haga

<? <?

en el icono Sources de la ventana de Simulin.k

Se abre la ventana adjunta

Sources

....

file

~lipboard

.E.dlt

.Qptions

.S,imulation
S:tyle
Signal Source
Library

1'

O}
Ste Fcn

4 Sobre el icono Step


ofrecer este aspecto

<?"t:J ~

y suelte sobre la ventana de trabajo que

=I

Untitled
.!;,dit

file

ipboard

.S,imulation

. . .
.Qptions

S:tyle

-.1'

[I}
Step Fcn

I+

H 'l

--+

5 Repita el paso 3 sobre el icono linear de la ventana Simulink y sobre el


icono State-Space repita el paso 4. Su ventana de trabajo ser

ipboard

.S,imulation

.E.dit

.Qptions

S:tyle

DJ

.,

........

Untitled

file

=Ax+Bu
y =Cx+Ou

Step Fcn

State-space

6 Por medio de File\Save As guarde la ventana Untitled con el nombre


trayec, minimice la ventana Simulink y menos la ventana de edicin y
trayec, cierre las dems.
7 Haga <?"t:J ~ sobre el ngulo obtuso de salida del bloque Step y
suelte sobre el ngulo agudo de entrada del bloque 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:

At t = Step time. output changes from


lnitial value to Final Value.

OK.

step Fcn

Gam;et

Help

Steptime:
I
lnitlal value:

11

Final value:

11

9 Haga .<J' .<J' sobre el bloque State-Space y escriba los parmetros de


la figura.
1

State-space
Blockname: state-space
Blocktype:

State-space model matrices:


dx/dt = AA + Bu
y= O<+ Du

Cancel

,~

OK

state-space

J:lelp

A:.

B:

C:

D:
ID

lnitial conditions:
1 [-0.0327

-6.0915e-00-4 0.0088]
1

Escriba en la ventana de edicin de Matlab


linsim('trayec',6)

linsim

donde 6 es el tiempo final, el valor superior de t.


State trajedory

-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)

= O ; y en el dominio del tiempo


y(t) ==C(X(t) + x(t))

Como C = [
y(t)

oo

(8.8)

J,bastar multiplicar por 100 cada trmino de x3(t)

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)

representacin grfica de la Con condiciones iniciales, podemos utilizar lsim o initial


salida
0.09 ~ - ~ - - ~ - - ~ - - - , . - - - - , - - - - ,

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

representacin grfica de la Abra la ventana de Simulink escribiendo simulink como antes en la


lnea de edicin. Abra el modelo proyec.m desde el men, File\Open,
salida con Simulink
de la ventana de Simulink.

Haga ~ ~

en el icono Sinks de la ventana de Simulink

Extraiga y lleve a la ventana trayec, ventana de trabajo, como ha hecho


antes, el icono Graph-Scope
Conecte la salida de State-Space con la entrada del bloque del
osciloscopio, Graph-Scope.
Haga ~ ~ sobre el bloque Graph-Scope e introduzca en el cuadro de
dilogo estos valores
1

Graph scope. (Mask)


Blockname: Graph Scope
Blocktype:

Graph scope using MATLAB graph


window.
Enter plottlng ranges and llne type.

OK

Graph scope. (Mask)

cancel

.ttetp

Time range:

16

y-min:

y-max:

0.1
Une type (rgbw-:tt):

\y-

En el men de la ventana, trayec, Simulation\Parameters abrir el panel


de control de Simulink e introduzca estos parmetros y pulse la tecla que
activa el integrador Linsim

SIMULINK Control Panel

1
1

Euler

O Runge-Kutta 3

O Runge-Kutta 5

Gear

O Adams/Gear

Adams

Unsim

StartTime:

o.o

Stop Time:

16

Min Step Size:

0.0001

Max Step Slze:

10.1

lie-3

Tolerance:
Retum Variables:

Una vez introducidos, ~ en OK


Abra el men Simulation\Star

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

''

0.08 \-....... !........... !......... )

........... !........... !......... )

:
'
'\ : .~ --~ :
..... ,.... .. .. : ....... ; .........

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

La matriz B ha de carecer de elementos nulos


o Sistemas de entrada mltiple
La matriz B ha de carecer de filas constituidas en su totalidad por ceros
Condicin de observabilidad para sistemas con su matriz A en forma diagonal y con autovalores simples::
o Sistemas con entrada nica
La matriz C ha de carecer de elementos nulos
o Sistemas de entrada mltiple
La matriz C ha de carecer de colunmas constituidas en su totalidad por ceros
Condiciones necesarias y suficientes de controlabilidad y observabilidad para sistemas con su matriz, A en
forma de Jonlan, A, :
- - - - - - - - -- -1 La matriz A, ha de tener un nico
Recuerde que si ha llegado a la forma de Jordan, mediante la
bloque de Jordan para cada autovalor
transformacin W
mltiple.
2 El producto escalar de la fila de la
A1= w- 1Aw
matriz, A,, que corresponde a la fila in- ,
ferior de un bloque de Jordan por la coTambin sufren una transformacin
lunma correspondiente de la matriz B,,
X1= w-Ix
C 1 =CW
no debe ser igual a cero, por lo que no
debern ser ceros los elementos de B,,
que provoquen tal resultado.
3 No pueden ser cero los elementos de B, que correspondan a los dems autovalores simples, que no generan un bloque de Jordan.
En el caso de la observabilidad. en virtud del principio de dualidad, dgase lo mismo respecto aAiy a columnas
deC,

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::::~

~lfo~a df]or[1' ~ton~ ][ ~l

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

Los criterios hasta ahora enunciados tienen la desventaja de necesitar


una transformacin, pero no slo nos dicen si un sistema es o no controlable y observable sino qu comxmentes del vector estado son o
no son controlables y observables.

y de observabilidad
ctrb
obsv

Cuando slo se trata de saber si el sistema es controlable u observable, es decir si carece o


no de algn componente del vector de estado que sea incontrolable o inobservable, existen
unos criterios ms directos, que pasamos a estudiar
Llamamos matriz de controlabilidad, C 0 , a la matriz
(8.9)

y matriz de observabilidad, Ob, a la matriz

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

Luego las submatrices relevantes sern

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.

controlabilidad y observabilidad de la salida

Un sistema es de salida, y(t) completamente controlable cuando de


una salida inicial, y(to) , mediante una entrada adecuada y en tiempo
finito, podemos transferirle a cualquier salida final, y(t1) .
Para ello basta que m, nmero de salidas, sea el rango de la matriz
Ye=[ CB
CAD
CA2 B CA'..- 1B D]
rank([C*B C*A*B C*A*A*B D])
ans =

8.2

Determine qu estados son controlables y qu estados, observables del


sistema

:=[ ~ ~ ~

-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)

9. El Lugar de las races

PRACTICAS DE AUTOMATICA

i
1

Area de Ingeniera de Sistemas y Automtica

Lugar de las races

9.2

Lugar de las races

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.
!+

LRR Lugar de las races


Si 'A es el factor de ganancia K , variando de cero a -t<>o, entonces
N (s)
'A D(s) = G(s)H(s)

(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.

LIRR Lugar inverso de las races


Si 'A es el factor de ganancia K, cuando K vara de cero a-oo , esto es K < O
o bien, siendo K > O, adquiere un signo menos en su E.C.Le , por realimentacin positiva, entonces el lugar geomtrico
de los polos, a lazo cerrado, del sistema se llama LUGAR INVERSO DE LAS RACES o LIRR

K,<O

K,>O

NI
K1DI

NIN2

f.d.t.Lc. =

l+~DlD2
K<.O

Con valores numricos

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

Lugar de las races

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

Lo!> crculo!> negra!> repre!>en-

tan la n-pla de funcionamiento

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.

LCRR Lugar completo de las races


LCRR = LRR

CRR

v LIRR

Contorno de las races

Cuando ).. es otro parmetro del sistema distinto de K, factor de ganancia.

memorandum del lugar de


las races

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.

Puntos de dispersin o confluencia


Cuando dos ramas, saliendo de sendos polos, comparten un punto (polo doble), se llama punto de
dispersin; cuando lo hacen llegando a dos ceros se llama punto de confluencia.

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.

Lugar de las races

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 ~

Lugar geomtrico de ron constante


Cada circunferencia, centrada en el origen, es el lugar geomtrico de las races que tienen la misma
frecuencia natural no amortiguada, O>n

Lugar geomtrico de amortiguamiento, cr, constante


Las rectas paralelas al eje imaginario son el lugar geomtrico de las races con amortiguamiento
constante.

Simetra del LCRR


Tanto el LRR como el LIRR (Lugar inverso de las races) son simtricos respecto al eje real, ya que
los polos y ceros complejos siempre sern pares de complejos conjugados.

Pertenencia de un punto del eje real al LRR o al LIRR


Un punto del eje real pertenece al LRR si el nmero de ceros y polos situados a su derecha (excluidos los pares conjugados de polos y ceros) es impar y viceversa si del LIRR se trata.

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)

sabiendo que la n-pla de funcionamiento correspondera al valor de K =6 .


Y para evitarse la multiplicacin de los tres binomios del denominador escribira
n1 =(1 O];
d1 =[conv([1 2],conv([1 3],[1 51))]
d1

1 10 31
rlocus(n1 ,d1)

30

y sin ms el programa le dibuja el LRR

9.6

Lugar de las races

construccin del LRR

La Control System Toolbox nos proporciona la funcin rlocus con la


que podemos construir los LRR tanto de sistemas continuos como de
sistemas discretos. Su sintaxis es:

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

rlocus(n1 ,d1 ,k)

Dibuja las n-plas de puntos correspondientes a los valores,


previamente defmidos en el vector fila, k, que al menos debe
tener dos valores de K . Como es habitual el vector k puede
definirse al mismo tiempo que se utiliza como argumento de
entrada: rlocus(n1 ,d1 ,[1 2 31)

R=rlocus(n1 ,d1)

Crea la matriz R, de dimensiones (z,n), donde z es el nmero


de n-plas calculadas por el programa para hacer el dibujo,
cada fila es una n-p la

R=rlocus(n1 ,d1 ,k)

Id. Pero ahora calcula las n-plas que corresponden al vector


fila de valores de K

[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

[R,k]=rlocus(n1 ,d1 ,k)

Id, pero ahora k, es el mismo vector fila, k, utilizado como


argumento de entrada.

cuando n1 o d1 son un pro- Se puede definir un numerador o denominador de una f.d.t.LA


anidando adecuadamente la funcin conv para realizar al mismo
ducto de polinomios
tiempo un producto de polinomios. Con ms eficiencia se puede
utilizar pmult.
Deseamos hallar el LRR de la f.d.t.LA
3(s+4)
(9.15)
s(s 2 + 4s +4)(s+ 5)(s+6)
Como el factor de ganancia tiene valor K = 3 , para definir el numerador basta poner
n1=[1 4];
y esta ser la estructura del anidado de conv para la definicin del denominador
d1 =[conv([],conv([],conv([],[])) )]
n1 =[1 4];
ii n1 c=[5 20];
>> d1 =[conv([1 O],conv([1 4 4],conv([1 5],[1 6])))];
ii rlocus(n1 ,d1)
>i axis([-8,2,-4,4])

Obtendr Ud. este dibujo con un color para cada rama

polo
doble

"'

!o
"'

-1

-2

-3
--4

-8

-8

-2

-4

Real Axis

Lugar de las raices

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

dibujo de la n-pla correspondiente a un valor de K

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

Aparecen cinco cruces


latinas que nos determinan la n-pla de funcionamiento con K = 50
Otra alternativa ser el
uso de rlplot, que
estudiaremos.

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

Dibuja Wl reticulado de radios correspondientes a lugares de S, constante,


para valores des desde 0.1 a 0.9, y semiccwerencias concntricas, lugares de ro. constante, la magnitud de sus radios puede leerse en la escala del
eje imaginario o del eje real. Usado de este modo sgrid superpone la retcula al LRR ya dibujado

sgrid('new')

Borra la ventana grfica, dibuja retcula y est preparada para recibir


LRR, dibujado por rtocus o Wl mapa de polos y ceros mediante pzmap

sgrid(z,wn)

Dibujo selectivo de retcula para valores de s especificados en el vector


fila, z; y para valores de ro0 , especificados en vector fila, wn

Wl

4,----,~~~
.. ~,.-.-.~~~~~~~~~~

y-:. __;/: ..
. ..:.

rlocus(n1 ,d1)
V=[-8,2,-4,4];
axis(V)
axis equal
sgrid

-3

-'!a

z=[0.2 0.4 0.707 0.8];


wn=[0.5 121.5 2 2.5];
rlocus(n1 ,d1)
axis(V)
axis equal
sgrid(z,wn)

~/ .

,.

-6

-4
-2
Real Axis

-4
-2
Real Axis

3
2
<I>

~C)
(\1

o ---------

. -1

-2
-3

""!a

-6

9.8

Lugar de las races

Construccin del LIRR y del


Construyamos el LRR el LIRR y el LCRR del sistema
LCRR
G(s)H(s)=

(s+l)(s+3)
(s+5)(s 2 +4s+20)

n1 =(conv([1 1],[1 3])];


d1 =(conv([1 5],[14 20])];
rlocus(n1 ,d1)
axis([-6,6,-5,5])
axis equal
gtext('LRR')

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~-~----~-~-----

Dibujamoe el LRR, lo bloqueamo0 y 0obreponemo0 el dibujo


del LIRR

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

l - - - " < ' - - - ~ - 4 - - + - - - - - . _ __

__

('ll

~'----~--~--'--~--~--....J

-6

-2

O
Real Axis

~[ LIRR e~ c~rr1pl~r11entarid ~k1{tR re6Pk~ ~ k~ LCR~JL~~ p LIRR


eteje: relll 1e:$t. t6t,~1rnih1:-e cic~p~,N por eLS~~

Lugar de las races

9.9

construccin del CRR

Como hemos visto en la introduccin, se transforma la arquitectura


de la E.C.Lc. hasta que el parmetro ~ desempee el rol de 11..
Entonces para esa nueva y ficticia, f.dt.LA hallada, puede obtenerse el LRR,LIRR y CRR
del mismo modo que para cualquier otra f.dt.LA

clculo y mapa de polos y


ceros
pzmap

Podemos calcular los polos y ceros de una f.d.t. y los

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)

Ahora no dibuja el mapa sino que nos proporciona dos vectores-columna


con los polos y los cer-os

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)

Proporciona dos vectores-columna con los polos y los ceros

pzmap(p,z)

Dibuja los afijos de los polos y los ceros contenidos respectivamente en


los vectores-columna p y 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

La funcin, rlocfind, requiere que el LRR sobre el que se va a actuar


est ya dibujado en la ventana grfica activa. Slo para sistemas
SISO, pero tambin para sistemas discretos.

[k,npla]=rlocfind(n1 ,d1)

Introducida esta instruccin y tras pulsar ENfER, se adivar la ltima


ventana grfica adiva, que debe ser la que contiene, ya dibujado, el LRR
de (nl ,dl); desplace hasta ella el cursor del ratn. Al introducirse en el
rea til de la ventana, el cursor adoptar por defecto la forma de una
cruz blanca, -O' en el punto de inters: En la ventana de edicin aparecern las coordenadas del punto por Ud. marcado, el valor de K correspondiente al punto del LRR, ms prximo al por Ud. marcado y los valores
de la n-pla correspondientes al valor deK. En el LRR aparecer dibujada
con cruces latinas blancas la n-pla.

[k,npla]=rlocfind(A,B,C,D)

Id en el espacio de estados

[k,npla]=rlocfind(n1 ,d1 ,p)

No requiere el previo dibujo del LRR. El vector fila, p, contiene polos a


lazo cerrado conocidos del LRR.
Cada columna del vector fila, k, contiene el valor deK, correspondiente a
la columna de npla que contiene la n-pla asociada al polo de la columna
del mismo subindizado de p

[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)

Id pero ahora devuelve el valor de K en el argumento de salida, kl

Lugar de las races

9.10

el LRR y el espacio de
estados

En el espacio de estados, ms inters que la variacin del factor de ganancia,


K , lo tiene la realimentacin del vector de estado.
La variacin de K nos permite una eleccin de polos a lazo cerrado,
restringida a las n-plas del LRR
-

..,

Sistema a lazo cerrado-

- - - - S;stema a lazo abierto Sist.em# ~uivllle.nu a lno ce."Tsdo

C-D(l+Df'C

Figura 9.2

Figura 9.1

El factor de ganancia,K, aparecer implcito de modo multiforme en la ecuacin de observacin


segn sea la forma de representacin de las ecuaciones de estado elegido.
El factor de ganancia no influye en la ecuacion de estado a lazo abierto, como caba esperar y los
autovalores de A, son invariantes ante una variacin del factor de ganancia, pero s afecta a los
elementos de las matrices de la ecuacin de observacin, C y D, y a traves de stas a la matriz de
evolucin del sistema a lazo cerrado como observamos en la figura 9.2.
No es, pues prctico estudiar la variacin de K en el espacio de estados. En cambio, si el sistema es
gobernable, tiene especial inters la realimentacin del vector de estado mediante una matriz de
ganancias, tambin llamada, K, (en Matlab, un vector-fila), que nos permitir situar la n-pla de
funcionamiento del sistema en un punto cualquiera del plano complejo, pero sin estar restringida su
ubicacin al LRR. Condicin necesaria y sufuciente: Que el sistema sea completamente controlable.
Sistema con r,:alimentacin
d,:I v,:ctor ti,: ,:st ado
- - - - Sis~maaiazoabierto

- - -

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

sZJ(s) + 5Z3(s) = U(s)

C1=ll O O]

D1=0

(9.16)

Lugar de las races

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

Lugar de las races

9.12

Deseamos que el sistema tenga un Mp =4, 3 o/o y un t, s; 5, 65 s y un e,sp nulo


De estas especificaciones hemos de deducir el par de polos complejos dominantes,
\<

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

Luego los polos dominantes habrn de ser


-0, 708j0, 707

El tercer polo, a fin de minimizar su


influencia le haremos: p 3 =-100

,,
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

clculo del vector, k, de realimentacin de estados

place

acker

Figura 9.11

Disponemos de dos timciones, place y acker, para calcular el vector de


ganancias k, que nos ubica los polos en la n-pla deseada.

k=place(A,B,p)

Utiliz.able,an en sistemas MIMO. Su algoritmo optimiza la eleccin de


autovalores a fin de encontrar una solucin robusta que minimice la sensibilidad del sistema a lazo cerrado, A-Bk, ante las perturbaciones.
El argumento de entrada. p, es un vector fila que contiene los polos
deseados.
El vector, k, es el vector fila de ganancias. Un mensaje de peligro aparece
cuando la ubicacin de los polos difiere en ms de un 1O% de la deseada.
Esta funcin evala la precisin de su clculo dicindonos el nmero de
dgitos significativos en que coinciden los polos desados con los polos
calculados

k=acker(A,B,p)

Utiliza un algoritmo basado en la frmula de Ackermanns. Slo puede


utilizarse para sistemas SISO de orden menor o igual que 10.

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

k1 (para variable" t!>ica!>)


k1 =
100.1113 42.1851 95.4100
> k (para varial,I.,,, de fa!>e)

k=
100.1113 137.0011 95.4100

Lugar de las races

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

Las matrices B, C y D no sufren alteracin


Las ecuaciones dinmicas del sistema , ya realimentado, en forma de variables de fase o CCF son :

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 =

O 0.0000 0.0000 1.0000


de1 =
1.0000 101.4100 142.0011 100.1113
[ne,de]=ss2tf(Ae,B,C,D)
ne=
O 0.0000 0.0000

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

Los polos dominantes de nuestra n-pla deben


encontrarse situados en el lugar geomtrico de
~ = 0 .708 que intersecta al LRR en las proximidades del cero.

Figura 9.13

o _________ ,.._- - + - - - - - 0 ,-- ---- -- ---- - -- --

"'
..5
0 .5

-1

-0.5
O
Real Axis

0 .5

Lugar de las races

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

Las dos cruces negras prximas al


o ----------OK------------------------------------*-------------------ro
cero, correspondientes a las n-plas ori_ -0.2
ginados por los valores 1 y 2 de K1 ,
casi se superponen al cero.
-0.4
Todas las n-plas correspondientes al
Figura 9.15
intervalo l ~ K1 < +oo se concentran
-0.6
en ese angosto espacio.
6'Esto implica que la variacin de todos
-1
-0.5
O
0.5
los parmetros del sistema, que conReal Axis
tribuyen a generar el factor de ganancia, apenas har cambiar la calidad de su respuesta, dotndole de excepcional robustez. El algoritmo
utilizado por la funcin place optimiza la situacin de los ceros de modo que preste al sistema una
gran robustez_
~~~~~~~~~~~~~~~~

1.2~---~---~---~---~

Esta es la respuesta al escaln


unitario de nuestro sistema con
realimentacin del vector de
estado.
Como la sobreoscilacin cae
dentro de la banda de 5 % se
han superado las expectativas
del tiempo de establecimiento

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

el estudio del error en el espacio de estados

Utilizando Matlab se simplifica la tarea, pasando a la descripcin externa


mediante ss2tf y la utilizacin de tfess de CSAD, ya estudiada.
Si quisiramos, en nuestro caso, hallar manualmente el error a la rampa de
nuestro sistema, hallaramos la f.d.t.LA. del sistema con realimentacin unitaria equivalente, G,9 (s) ,
~
M(s) = l + G,q(s)
~ M(s) +M(s) G,q(s) =G,9 (s)
~ G,q(s) = l -M(s) (9.22)

~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

s 3 + 101,4160s 2 + 142, 6011s + 100, 1113- IOa

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

Su constante de error de velocidad, K.


K. =limsG (s) =lim
s->O

y el error de velocidad, e,,.

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

Lugar de las races

9.15

142, 6011

e.,., =K. = 100, 1113 = l , 42


ne=
100.1113
de
de=
1.0000 101.4100 142.0011 100.1113
der=[deO]
der =
1.0000 101.4100 142.0011 100.1113
step(ne,der)

(9.24)

,. /

, ,.

,.
,,

6
-,:,
::i

,. ,

""
f4

(ll

, ,.

,,

,.

.,
, ,.

,,

,.
o~'~=-~~~~~~~~~~~____,

10

segundos

9.2

... Deduzca una regla para hallar la respuesta a la rampa

opciones de CSAD

lrlplot

La toolbox CSAD, disponible para el Matlab de estudiantes, dispone de la funcin rlplot

rlplot

Solicita la defmicin de la f.dt.LA: la introduccin de su numerador y denominador, y abre el men.

rlplot(n,d)

Abre el men y Ud. no tendr que especificar la f.d.t.LAya que la especifica como argumento de entrada.

- RLPLOT OPTIONS K values


Zeta line
Single K
Wn circle
Find K
Rule info
Marginal K
New/clear
Grid
Display TF
Title
Option? >

Quit

n1=[1 3];
d1 =[1 19123 395 6600];
rlplot(n1 ,d1)
Option? > !axis([-12,1,-7,7])
Press any key to continue .. .

Press any key to continue ...


Option? > k
Enter K values to plot >
logspace(-1,3,3:l)

logspace

Las tres primeras instrucciones dibujan el mapa


ceropolar
Como ya hemos visto la ! nos permite usar una
funcin de Matlab en el entorno de rlplot

Podemos introducir un vector fila con los valores deseados de K.


logspace(-1,3,30)

Crea veor fila de 30 pwrtos


logaritmicamente espaciados
entreO,l y 1000

logspace(-1,3)

Id, pero 50 pwrtos

Lugar de las races

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)

Id, pero l 00 puntos

Tambin puede explicitarse una progresin aritmtica [0.1: 11: 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

::
+

l!IIIHIIH+._ I 111 11 11111 1 -0 l llllll ler

-10

-B

-8

-2

-4

Real

El poder utilizar funciones de Matlab


mientras se mantiene abierto el men de
rlplot nos permite dibujar el LRR con lnea continua, mediante rlocus, con la
condicin de que volvamos a introducir
n1 y d1 con los mismos valores introducidos como argumentos de rlplot

Option? > !rlocus([1 3),[1 19123 395 650 01)


Option? > !hold
Current plot held
Option? > k
Enter K values to plot >[1000,2aXl]

Al utilizar la opcin k se superponen al


LRR las cruces correspondientes a las
n-plas generadas por los valores de K
introducidos
j

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] >

S Esta opcin calcula la n-pla determinada por el valor de K introducido y


ofrece la posibilidad de dibujar su valor
sobre cada punto de la n-pla

a~~-~---~---~~
6

: =67

"' 2

=670

_ -2

=670

~
al' o ><-- + - - -""* - ~----

-4

-B

1s

~o

Real Axis

Lugar de las races

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

Pick point where K is desired


using the mouse and mouse button.
Press any key to continue ...
At K= 631 .9 the system roots are:

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

Zeta at chosen point is 0.0171


Wn at chosen point is 3.4

-8~ - - ~ - - - ~ - - - - ' ~
15

Label K on graph? (y/n) [n] > y

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()

Entera value of K that gives INstability (1 CXX>] >


700
One moment please ...
A jw-axis crossing occurs at K = 670.31
Associated System Pales are
-8.3242 + 1.6355i
-8.3242 - 1.6355i
O.OCXX> + 3 .4470i
O.OCXX>- 3 .4470i
-2.3517

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

Label K on graph? (yin) (n] > y

Option? > !grid


Press any key to continue ...

--6 ---- -'----- : --------___ _

- 8 ' - - - ' - -,~_


-15

10

___._
' _
.5
Real Axis

____._I__,

g Si el trazado lo ha hecho mediante la


opcin k al dibujo se le superpondr una
retcula rectangular.
Si el LRR lo ha dibujado con rlocus debe
Ud usar !grid como hacemos en el
ejemplo

9.18

Lugar de las races

t Podemos colocar un ttulo

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

Si el LRR ha sido dibujado con !rlocus


utilice
!title('Lugar de las Races')

Lugar de las races

Real

Z Dibuja el lugar geomtrico de la ,,


constante, especificada

rlplot(n1,d1)

Option? > !rlocus([1 3],[1 19 123 395 650 01)


Option? > !axis([-15,2,-8,81);hold
Current plot held
Press any key to continue ...
Option? > z
Enter desired damping ratio, zeta > O. 707
Option? >w
Enter desired Wn > 4

-15

-10

-5

Id, de ron

Real Axis

Proporciona toda la informacin necesaria para la construccin manual del LRR


Option? > r
K=O points

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...

K>O root loci appear on the real axis between:


Oand-3
-5 and -10
K<O root loci appear along all
other sections of the real axis.
Angles of departure for K>O are
Pole
Angle (deg)
-2.0CXXle+CXXl- 3.0CXXle+CXXJi 2. 7681 e+001
-2.0CXXle+CXXJ+ 3.0CXXle+CXXJi -2. 7681 e+001
Breakaway Points and associated K values are:
Point
K
-8.0676e+CXXJ 4.3237e+002
Mark Breakaway Points on graph? (y/n) [y] >n

Lugar de las races

9.19

Il Clausura el dibujo actual y acepta la introducccin de una nueva f.d.t.

Option? > d

Muestra la f.d.t. activa

Salida del men de rlplot


AtodaG eGtaa opcioneG debe Ud arfadr laGyavistaG en la pg.6.14

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

... Construya Ud. este dibujo con Matlab

6 -- : -------

LRR1

'. ----- --!- ----- --: --- ----

i .... [ \
'

'

\.

\\:

'

~:

:
--~-------~------..
..

'
'

..
'
'

-4

'

:
:

;::

.:--------:
.
. ------- ------- ------.
---- --~---- --- -~-- ---- - -------1- ------

--:-------:------:----.
..

..

= .LR.R2

ll .......

'

'

..''
..

-- :-- ----- ----- --~

'

..

-------

..

-6 __ : _______ ; __ ----~-------~--------~------- ---- ---~------- -------

.
'

-8'---'--'-~..._~----'~~-'-~~~~------~--',.~~~~~
-14
-12
-10
-8
-6
-4
-2
O
2
Real Axis

Lugar de las races

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

~ Qu efecto produce en el LRR2 la variacin efectuada en el


LRRl?

10. Mtodos descriptivos en el dominio


de la frecuencia (1)

1
\

1.5

,,.--- --'\'-._

.
.2

.!

il'

::1 /

0.5

\ \

o + '

~-0.5
-1

-1.5

- 2 " - - - - - . _ __
-2

-1

__,_,.___~~-~3

eJe real

,,.
PRACTICAS DE AUTOMATICA

,/

Area de Ingeniera de Sistemas y Automtica

,.:

.....

.. __,, ...-'-'"

Mtodos descriptivos en el dominio de la frecuencia

10.2

Mtodos descriptivos en el dominio de la frecuencia

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

diagramas polares y lugares


de Nyquist

GH(s) .

Im

Figura 10.2

Re(G(...I]

Im[G<fa.il]

G(...)

Un diagrama polar de una f.dt. , G(jro), es la representacin de

IG(jro)ILG(jro), cuando ro varia de O a -too .


Si G(jro) es la f.d.t.L.A de un sistema y representamos el punto
-1 +JO , Punto critico , y adems dibujamos la curva para el intervalo de frecuencias, -oo < ro <O , curva simtrica de la primera respecto al eje real, tal diagrama polar, que tomando
como origen el Punto crtico tambin nos representa la fimcin
compleja 1 + G(jro), generadora de la ecuacin caracterstica, a
lazo cerrado, le llamamos Lugar de Nyquist, (LN) o diagrama
de Nyquist.
A cada punto de la curva del diagrama le corresponde una de:>terminada frecuencia: La curva est parametrizada en ro.
En las figuras 10.3 y 10.4 observamos cmo el tipo del siste:>ma, (orden de multiplicidad de los polos en el origen, a lazo
abierto), condiciona la situacin de la regin de la curva para
las bajas frecuencias y la diferencia de grado entre denominador y numerador, m - n, la ubicacin del tramo de curvas que
tangenteando los ejes entra en el origen para ro==

... =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

La funcin polar nos permite dibujar una representacin polar de los


valores de p versus <p

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.

polar(fi, ro, 'tipodelinea')

El tercer argumento de entrada es un string con uno, dos o


tres caraeres.
'y.' amarilla, lnea de puntos
'mo' magenta, lnea de circulitos
'ex' azul turquesa claro, lnea de aspas
'b~azulmarino,lneallena
'r*' roja, lnea de asteriscos
'g:' verde, linea de dos puntos
'w-.' blanca, lnea de trazo y punto
'k-' negra, lnea a trazos
'y+' amarilla, lnea de cru=:itas
Y todos las combinaciones posibles de color y tipo

Mtodos descriptivos en el dominio de la frecuencia

10.4

En los diagramas polares de f.d.t.


la distribucin puntual suele ser
muy densa en altas frecuencias y
enrarecida en las bajas, de ah que,
a veces, convenga definir los valores de la frecuencia, ffi , por intervalos como en el ejemplo de la figura

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

No podemos esperar de la funcin nyquist que nos dibuje arcos con


supuesto radio cuasi-infinitsimal o infinito, necesarios para la aplicacin correcta, a toda clase de sistemas, del criterio de estabilidad
de Nyquist con las ventajas derivadas de las propiedades de la transformacin conforme.
La funcin Nyquist tiene esta sintaxis
[re,im,w]=nyquist(a,b,c,d)

Usando como argumentos de entrada las matrices de las


ecuaciones dinmicas en el espacio de estados, nos proporciona como argumentos de salida los vectores columna, re,
im, que contienen los valores de la partes reales e imaginarias de los pnntos calculados para los valores de la frecuencia
del vector fila, w, definido automticamente por el programa, con nnos 150 valores.

nyquist(a,b,c,d)

[RE, IM, w]=nyquist(a, b,c,d, iu)

Sin argumentos de salida dibuja el lugar de Nyquist


Para sistemas MIMO.El escalar, iu. es el subndice de la
componente del vector de entrada considerada. Las matrices
RE e 1M contienen tantas columnas como salidas

nyquist(a, b,c,d ,iu)

Presenta tantos diagramas en la ventana grfica como


salidas

[RE,IM,w]=nyquist(a,b,c,d,iu,w)

Para sistemas MIMO.El escalar, iu, es el subndice de la


componente del vector de entrada considerada. Las matrices
RE e 1M contienen tantas columnas como salidas y sus filas

se

corresponden con cada columna del vector fila, w


Si el sistema tuviese, a lazo abierto, polos situados en el eje
imaginario, (incluido el origen), jro,, a esta frecuencia, ro,,
el mdulo de la f.d.t.LA. se hace infinito. Si este valor estuviera incluido en el vector w, aparecera nn aviso, ya que es singular la matriz [si-A):

Matrix is singular to working precision

(a,b,c ,d,iu,w)

Presenta tantos diagramas en la ventana grfica como


salidas, pero para los valorees especificados previamente en
el vector, w

[re,im ,w)=nyquist(na,da)

Lo mismo que caso, 1, pero para ff.dd.tt.

nyquist(na,da)

Dibuja el diagrama de Nyquist de la f.d.t.

[re,im,w)=nyquist(na,da,w)

F.n sistemas SISO, lo mismo que 5, pero para ff.dd.tt.

nyquist(na,da,w)

10 Lo mismo que 8 pero para las frecuencias predd.erminadas


enw

Mtodos descriptivos en el dominio de la frecuencia

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

Cuando se trata de sistemas que carecen de


polos situados en el eje imaginario, siendo
su lugar de Nyquist finito, el programa
adopta automticamente una gama de
frecuencias que permite dibujar el lugar
completo y no hace falta introducir el
vector, w, como tercer argumento.

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]);

Si como segundo argumento hubiramos


puesto 1, dibujara tan solo la semicircunferencia situada en el semiplano izqdo.

-~3'----_~2--~-1---0..___ __.__ _~L


Figura 10.7

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

En este caso para ro = 1 el lugar corta el eje


real.

-6L--~---'------'-----'----'------'

-2

Figura 10.8

10

Mtodos descriptivos en el dominio de la frecuencia

10.6

Podemos tambin mediante sgrid dibujar


la circunferencia que pasa por Wr ,
frecuencia de resonancia

n1=[7];

d1=[10.21 1];
w=[logspace(-1, 1, 100)];
s=j*w;

M=max( abs( (7)./( s."3+0. 2*s. "2+s+ 1 )))


M=
8.8989
hold
sgrid([],[-8.89])

l
!\

"- "-- +- / .:1'

-5

5
Figura 10.9

15

10

lugar de Nyquist de los sistemas con retardo

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

ro~+260ro 2 -27456=0 => ro, =8, 9782


<l>,,, = 180 +LGH(jro 1 )
<l> = 1t-tg- t 8.9782-tg- t 8, 9782 = 1 7284 rad

"'

14

. ' O
<l> m+ L e-JU,,=

'

<l> m=ro,i- =>'t=ro;-=


<l>m 8.9782
l , 7284 = O. 1925 s

=>

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

Mtodos descriptivos en el dominio de la frecuencia

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')

Como era de esperar para 't = O, 1925 el sistema es marginalmente estable.

Clculo de polos a lazo cellado


't=0, 1925s

'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

aplicacin del criterio de


Nyquist a los diagramas obtenidos con Matlab

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.

l SISTEMAS DE FASE MNIMA


Para los sistemas que carecen de polos y ceros inestables, con parte real positiva, el sistema es estable si el LN
(Lugar de Nyquist) no encierra el punto crtico.
Para los sistemas de fase mnima con polos en el eje
imaginario, el sistema es estable si el punto crtico queda
a la izqda. del LN.
Este criterio es insuficiente, sin acudir al trazado manual:
Consideremos el caso
GH(s)=
l
2
(S + 1/(s+ l)
Mediante el escalado automtico el programa nos
muestra el diagrama de la figura 10 .14.
n2=1;
d2=[1 1 2 2 1 1 ];
nyquist(n2,d2);

El escalado de los ejes no nos permite identificar el


punto crtico y la engaosa simplicidad del trazado
nos obliga a realizar un zoom
axis([-1.5,3,-2,2])
hold
Current plot held
w=[0,500];
[re,im,w]=nyquist(n2,d2,w);
plot(re,im,'b*')

(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,

Mtodos descriptivos en el dominio de la frecuencia

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

limRe{ GH(jro)} = lim


m-->O

ro-->O (-0)2

+ 1) ( 0)2 + 1)

= 1

( 10.11)

Interseccin con el eje real

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)

Clculo de puntos homlogos


Transformamos el factor cuadrtico
2

(s 2 + l) = (j +ee.16 ) + 1 =-1 +j2ee.16 +e 2 e'29 + 1 =


= J2ee'6

: . 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)

+ e 2 e'20 = ee'9 (j2 + ee.16 )

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

Mtodos descriptivos en el dominio de la frecuencia

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

Mtodos descriptivos en el dominio de la frecuencia


Un sistema es estable, a lazo cerrado, si su Lugar de Nyquist satisface la
ecuacin

(10.19)

y=-(0.5Pro +Pr)ISO
donde

y es al ngulo barrido en sentido decreciente de la frecuencia por el vector

que gira teniendo su cola en el punto crtico y su punta en los sucesivos


puntos de la curva, parametrizados por co cuando co vara de +oo a O

Pro= N de polos, a lazo abierto, situados en el eje imaginario, incluido el


origen.
P, = N de polos a lazo abierto, inestables, con parte real positiva.

Su aplicacin es imposible sin acudir al clculo manual. Consideremos el ejemplo siguiente


GH(s) = (s- l)(s- 2 )
(10.20)
s(s 2 +4)(s+ 1)
Con cierta dosis de premeditacin obtenemos de Matlab el diagrama de la figura 10.18

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)

Se siente Ud. capaz de calcular el ngulo y?.


Si estamos obligados al estudio de su
estabilidad a partir del criterio de
Nyquist, por imperativos acadmicos,
no podemos en este caso prescindir del
clculo manual.

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

= limRe{ GHUro)} = lim

(j)""'

b'

3~~~~~~~~~~~~~~~~~

(j)""' (4 -

5
- /
(J)

2
ro

)(1

+ (J) 2 )

= -1, 25

!nterseccin con ele r'ea!

C0Re

=Jf

o o =Re{ GH(jco)} m,., = -0, 85


1Otra ,>oiucn ,>eria w,, = ~ y s0 = O

Mtodos descriptivos en el dominio de la frecuencia

10.11

~ ffi1m=,/5

Re{GHUro;)}=

O>dll

- 52 +ro 2 =0
(4- ro )(1 + ro )

= ;Im{ GH(jro )}

O)m,

[ Otra "lucin !>era m1m = co y ro.0 = O

= :!;j 1, 34

Clculo de puntos homlogos

k'1
[

a1

(EeJ1_90"- l)(EeJ1 90-2)

= 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'

Cualquier punto del LN podra !>er hallado por invere>in y giro:


La razn de invere>in <>era el mdulo del numerador de B(<>) y la magniwd
a invertir <>era el mdulo del denominador, l!lmboe, mduloe, evaluadae> pllra cada
valor de lll frecuencill,
El giro a aplicar a la e>emirrect.!I, e>oporte del fae>or origen e>era la diferencia
entre l!lr9umento.. de numerador y denominl!ldor.
De ah que podamae> inferir que la figura invere>a del corralito que circunvala el
origen """' un cuae,i-l!lrco de rlldio cuae>i-infinito y que lll fi9url!I invere>a de lll e>emicircl!I de rlldio infinito del CN, """' un cuae,i-l!lrco de rl!ldio cuae>i-cero

Mtodos descriptivos en el dominio de la frecuencia

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'

+a=- --- ---

<~

--~,

ti

~'=~-.:~\rh-, +'. ~ , - , ,,,.


'

'\. ~

~\~\
,_.._,

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.

Mtodos descriptivos en el dominio de la frecuencia

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

estabilidad relativa y lugar


de Nyquist

Hemos visto en la pgina 9.6 que, para sistemas cuyo lugar de


Nyquist intersecta la circunferencia centrada en el origen y con radio
unidad, el tiempo de retardo que hace el sistema inestable es: ,: =
Si el LN estuviera totalmente encerrado en tal circunferencia su margen de fase, <l>m , sera
infinito y los retardos no podran llevarle a la inestabilidad.
Si el LN fuese tangente a tal circunferencia el sistema seria marginalmente estable.

!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.

Anlisis de la estabilidad relativa


; Deseamos saber si, a L.C., el sistema tiene i;>0.707 y qu
, valor habra de tener el factor de ganancia, K, para ~ O, 707

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)

(-4co+ 13) 2 + (4co- 2co 2 )

1m{Gll'-ffi+JCO) =J

3(-2co 3 + 6co + co)


(-4co + 13) 2 + (4co- 2co 2 )

Figura 10.21
Interseccin conlm: 1,7475
Interseccin con Re: 0,692 y

-1,295

Mtodos descriptivos en el dominio de la frecuencia

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

Factor cuadrtico en forma de Homer,


con variables anidadas

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

'

Compruebe mediante las funciones estudiadas en la prctica 9 si los resultados son


correctos.

Mtodos descriptivos en el dominio de la frecuencia

sistemas condicionalmente
estables

10.15

Vamos a estudiar la estabilidad del sistema

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

cr1 = limRe{GHUro)}= lim @-)o

@-)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)

[ Dos valores de ro" nos hacen pensar en dos mrgenes de ganancia

Definimos un vector de frecuencias w y dibujamos el lugar de Nyquist


n1=[40 40];
d1=pmult([1OJ,[1225],[1 -1]);
w=logspace(-1, 2,200);
nyquist(n1 ,d1 ,w)
axis([-2.5,0.5,-1, 1])
axis equal
xlabel(")
ylabel(")

/ ----~\

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

int erst;ccin con eje imaginario

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.

Clculo de puntos homlogos

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

Mtodos descriptivos en el dominio de la frecuencia

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.

Valoree; de K para loe; que el e;ietema ee ee;table


Siendo K' la razn de homotecia con centro en el origen, el sistema soporta, sin caer en la inestabilidad las homotecias de razn

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
'
'

26, 20 < K < 45, 8

Mtodos descriptivos en el dominio de la frecuencia

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

o bien realizar su clculo mediante el programa, predefiniendo co,, 1 y co,a


w1=4.5605;
w2=1.0964;
s=U*w1 j*w2];
M=abs( (40*( s+ 1) )./(s.*( s."2+2*s+25).*( s-1)) );
M
M=
0.8734

1.5266

Como vemos la precisin de ginput es aceptable.


Calculamos ambos mrgenes de ganancia, (Razones de homotecia):
Gm=M."(-1);
Gm1=Gm(1,1)
Gm1 =
1.1449

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

Procedemos al dibujo de los nuevos LLNN


n12=2*n1;
n105=0.5*n1 ;
nyquist(n12,d1,w)
axis([-3.5,0.5,-1, 1])

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

Mtodos descriptivos en el dominio de la frecuencia

Estudiamos ahora la estabilidad del sistema en los dos supuestos


[nc2,dc2J=cloop(n12,d1 );
roots(dc2)
ans =
0.7779 + 4.7937i
0.7779 - 4.7937i
-1 .2779 + 1.3263i
-1 .2779-1 .3263i

(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.

el men prlplot de la toolbox


CSAD

La funcin prlplot funciona defectuosamente en Windows. De todos

modos tan slo proporciona un submen, margins, que tratndose de


sistemas de fase mnima, proporciona algo distinto a lo ya visto.
Espero que Ud. con ms pericia y fortuna pueda encontrar una procedura ms acertada
para su utilizacin.

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

Gm ( dB) Margen de ganancia


ro,, , frecuencia de cruce de fase
<I>m (grados), Margen de fase
ro 1, frecuencia de cruce de ganancia
M, (dB), Pico de resonancia o factor de resonancia
IGH(jro,)IPico de resonancia
WB, ancho de banda a -3dB

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

11. Mtodos descriptivos en el dominio


de la frecuencia (11)

12

-300

-250

-200

-150

-100

-50

PRACTICAS DE AUTOMATICA
Area de Ingeniera de Sistemas y Automtica
"

Mtodos descriptivos en el dominio de la frecuencia

11.2

Mtodos descriptivos en el dominio de la frecuencia

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

recta de oeno1ente -20 dB!dcada

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

Ji=2 N => log!i= N log2


f
f
El nmero de octavas comprendidas en dicho intervalo ser
N, octavas= 10~ 2 log:fi = 3, 32 log7i
De modo anlogo el nmero de dcadas habr de cumplir
fj_
= ION
=> log.5_ =N loglO = N. dcadas
f
f
.
Duplicar un nmero es incrementar en 6 db su expresin en decibelios.
Multiplicar por l O \U1 nmero equivale a aumentar en 20 db su expresin en decibelios.
Intente razonar las ecuaciones ( 11 . l) La curva dibujada por Matlab es precisamente el diagrama de magitud de
G(s)=
25
s 2 +4s+25
Tengt en cuenta que nunca podremos representar el mdulo y el argumento a la frecuencia cero, el papel se acabar
mucho antes. Pero esto no representa inconveniente alguno.

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

Mtodos descriptivos en el dominio de la frecuencia

11.4

rechazo de ruidos
estabilidad

bode

Sintaxis de la funcin bode


Dibuja, en una sola ventana, los diagramas de magnitud y
fase.
Sus argumentos de entrada son los vedores fila que
contienen los coeficientes de los polinomios del numerador y
denominador de la funcin a representar

bode(n1 ,d1)

bode(n1 ,d1 ,w)

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)

Ahora no se dibujan los diagramas. Los argumentos de


salida:

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

[ma,fa,w]=bode(n1 ,d1 ,w}

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)

Rplica de l en el espacio de estados

bode(A,B,C,O,iu)

Igual que en el caso anterior con un argumento de entrada


adicional 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)

Lo mismo que 2, pero en el espacio de estados. Si no coloca


el nmero de la entrada, el programa no le reconocera el vector w

[ma,fa,w]=bode(A,B,C,D)

Anlogo a 4 en el espacio de estados

[ma,fa,w]=bode(A,B,C,D,iu)

Id con argumento de entrada adicional, iu

[ma,fa,w]=bode(A,B,C,D,iu,w)

lO

4 en el espacio de estados

Siempre tendr el recur~ de convertir loe valor~ de la magnitud en decil:>elioe

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));

La funcin fbode, a utilizar cuando la matriz A es diagonizable, tiene la misma sintaxis


que bode pero posee un algoritmo ms rpido.

Mtodos descriptivos en el dominio de la frecuencia

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

Diagramas de magnitud y fase


10.---,~,----,-...,....,~-,-~-,---,-,....,...,..,,....,.,-~-,---,--,-,c-r-r..,.,.,
'

-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

n1=[1 4];d1=[1 2];


.n2=[1 --4]; d2=d1 ;
bode(n1 ,dt)

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.

Mtodos descriptivos en el dominio de la frecuencia

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 .

... Por qu razn aparece una sola curva en el diagrama de magnitud?

11.1

Recuerde que los sistemas de fase mnima en las proximidades de ro =oo


el diagrama de magnitud tiene una pendiente de -20 (n -m) dB/dcada
la fase tiende al valor -90 (n - m)
n y m, son los grados del denominador y numerador respectivamente

La carencia de esta ltima propiedad permite detectar que un sistema no es de fase mnima.

margen de ganancia y margen de fase

Con la funcin margin podemos calcular y dibujar los mrgenes de ganancia y de fase

margin(ma,fa,w)

Despus de ejecutar

(ma,fa,w)=bode(n1 ,d1 ,w)


y utiliz.ando sus argumentos de salida como argumentos
de entrada, margin dibuja los diagramas de fase y
magnitud y, a las frecuencias de cruce de fase y de
ganancia, dibuja sendas lineas verticales, a trazos, a las
que se superponen dos segmentos, a lnea llena, que
representan el margen de ganancia y de fase
respectivamente.
Naturalmente el dibujo est condicionado a que las
frecuencias de cruce respectivas sean accesibles.

margin

[Gm ,Pm ,wf,wg]=margin(ma,fa,w)

Los argumentos de salida son:

Gm
Margen de ganancia, Gm . No est dado en dB

Pm
Margen de fase, <I>m En grados
wf

Frecuencia de cruce de fase, ro, , que determina el


margen de ganancia

wg
frecuencia de cruce de ganancia, ro, , que detennina
el margen de fase.

25

,...
----1--J--L;
. .LillL ----

sA3 + 2 .5 sA2 + 26 s + 12.5


- - -,- - ,- -,-r
---,--,- ... o
'
' '' ''"
"
w=logspace(-1,2,300);
co
,
,
I , '
, ,
,,
,
,'
I
, '
, "
.,
-o
(ma,fa,w]=bode(n2,d2,w);
'''
'
' ' ' ' '"
.!;; -20 ---- ---:--:- :- 1t~----~---:--:-;-~
. t~--- - -- :--:- :-:
bode(n2,d2,w)
ce
(;)
subplot(211),axis((0.1,100,-100,10])
- --'- _,_ -' - 1..
---'--'--'40
subplot(212),axis((0.1 ,100, -270,0])
~
[ma,fa,w)=bode(n2,d2,w);
101
[Gm,Pm,wf,wg)=margin(ma,fa,w)
(Gm,Pm,wf,wg)=margin(ma,fa,w)
o..-~~~....;.,.;.=~:.:.=......:.:;:~~~~--,-,........,..~
Gm=

'

'

'

'

"

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>

le abrir el men de tftplot donde escoger la opcin


Option? > a
Final value of response is: 1
The accuracy of these specifications depend
on the qualityof the plotted step response
Delay Time
0,8655
Rise Time
1.526
SettHng Time 2.221
Max % Overshoot O
Time at Max
3.142

Ahora mediante la opcin q debe Ud. volver al men de tddesign y


comenzar la secuencia con el nuevo valor de Kp 2 =0.02, que, como antes,
introducir Ud., cuando el programa le pida el valor de Kp.
Repitiendo la secuencia de instrucciones para Kp2 =0.03 y Kp 2 =0.04con
los resultados obtenidos podemos confeccionar la siguiente tabla

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

El valor, a retener, de K pZ, que minimiza t s, es

(12.8)

Kpz =0.03

N.B.: Un modo de cirCW1scribir el rastreo a magpitudes razonables es el clculo de Kp 2 mediante el procedimiento de


Ziegler-Nidtols. en nuestro caso, por poseer la planta una integracin. aplicamos el segundo mtodo de
Zieg)er-Nidtols:
Hallamos mediante la tabla de Routh el valor de la ganacia crtica.. K, , para nuestra planta, partiendo de la fdt. dada
oo 12.7.

K-5000
s(s + 5)(s + 10)

50

s'

51

E.C.L.c. = s 3 + 15s 2 +50s+5000K

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.

clculo de los parmetros


del PID

Hemos visto que para que la aportacin del cero,

KKn ,
p2

introducido por

la porcin Pl2 , sea poco significativa, ante la del polo ms prximo al


origen de la planta, -5, hacamos
=O, 1

;a

Kr2 =0 1 }
Kp2
'
Kp2 =0, 03

,,
=> Kr2 =0.003

(12.9)

Diseo de reguladores

l l.8

Para aplicar las equivalencias


Kp=Kp2 +Kd1K;2
Kd=Kdl Kp2
K;=Ki2

(12.10)

Necesitamos de nuevo calcular por tanteo el valor de Kdl


De nuevo podemos encontrar en Ziegler-Nichols orientacin para escoger el intervalo de valores de tanteo:
Kd=O, 125T,
siendo T, el perodo crtico, cuando el sistema se vuelve oscilante para K, =O, 15

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

Mediante tddesign hallamos ahora los parmetros de la respuesta indicial

tddsigri(na,da)
PIU.Controllet form: .Kp+Kds+ .Ki/s .

Ent~fKd {O:Q06]> 0.009

E11ter Kp{1l> O.0303


E11terKd [O]? o. 003
EnteH<t[OJ> 0.003

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,

Enter Kp{O,Q309]> O.0312


EnterKd [O.Q09)> 0.012
EriterKj[0;003J>
ptlori? > s .
Opton?> a
DelayTime
0:358
m5827
RseTime
$ettlin9 time 0,6434
Max%0Vershot 2.5

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

O.012..(s"2 + 2,6s"1 + 0,25)

K'd= 0.012
Ki
0;003

Press any key to continue...


Ctoseq,;;tooptransferfunctionis:

Press any key to continua...


Planttransfer function .is:

60"(s"2 + 2.6s"1 + 0,25)

5000

s"4+ 15s"3 + 110s"2 + 156s11 1 + 15

s"3 + 15s"2 + 50s"1 + O

1.2
1 -- -----------------------------

0.8

0.6
0.4
0.2

Option? > a

Continuar

10
15
Time. s

20

25

12. Diseo de Reguladores

-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 reguladores con


la toolbox CSAD

En esta prctica nos proponemos desarrollar los procedimientos para


el diseo de reguladores con las funciones que nos proporciona la
toolbox CSAD.

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)

La accin derivada introducir una seal proporcional a la derivada error y su efecto ms


general ser mejorar el amortiguamiento del sistema en rgimen transitorio, no afectando el
rgimen pennanente de la salida.Por eso casi nunca se utiliza el PD exclusivamente.
La accin integral nos proporciona una seal de mando proporcional a la integral del error,
mejorando el error en rgimen pennanente del sistema a lazo cerrado. Un clculo adecuado
de K puede tambin mejorar el amortiguamiento y la respuesta transitoria, a expensas del
tiempo de subida, t r , y el tiempo de establecimiento, t s .

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

verificndose las equivalencias

Kp=Kp2+Kd1K,1.
Ka=Kd1Kp2
K;=Ka

planta y especificaciones

(12.2)
(12.3)
(12.4)

Utilizaremos el sistema
K

G(s) = s(s + 5)(s + 10)

(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

Con este valor de K observamos que el sistema, a lazo cerrado, es


inestable
.

,'' -'

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

(f.d.t. LA del sistema compensado en ganancia)

No es pues suficiente un ajuste del factor de ganancia


2 Comprobamos si una accin de control PD es suficiente para cumplir las especificaiones.
Para ello utilizamos la fwicin tddesign, concebida como wia serie de
mens anidados, con la herramientas necesarias para el diseo de wi PID.

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.

PID Controller form: Kp + Kds + Ki/s


Enter Kp (1] > 1
Enter Kd (O] > O
EnterKi[O]> O
Onemomentplease, l've.got.workto do ...
- TDDESIGN OPTIONS -

Controller values
Rootlocus
Step Response
Gals to meet
Error, steady state
Display TF's
Pales andZetos
NewPlantTF
Quit

ExcurtSutS: tddesign

Con esta opcin podemos reintroducir las tres constantes

Abre el men rlplot (Cfr.: Pag. 9.15).

Abre men tftplot (Cfr. : Pag. 9.12)


El programa exige la introduccin de las especificaciones, M p , t r y t s

Diseo de reguladores

12.5

y nos proporciona los valores mnimos de ~ y con , necesarios para su


cumplimiento.
N.B.: Los valores proporcionados son orientativos, ya que se calculan para lUl sistema de segundo orden puro.

e Nos dice si el sistema es inestable o calcula las constantes de error, Kp , Kv y


Ka , as como los errores en rgimen permanente, e ssp, e ssv y e ssa.

Nos muestra la f.d.t del controlador y la f.d.t.

L.c.

del sistema compensado.

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.

q Para abandonar el entorno de tddesigne y volver al entorno de trabajo.


Seleccione la opcin g e introduzca las especificaciones
EnterMax % Overshoot[Ol > 4
Enter Min Rise Time [100}> 0.8
Enter Min Settling Time [100}> 0.8
Estimated Mnimum Zeta required is: 0.7156
Estimated Mnimum Wn required is:
5.687

El programa nos advierte que para lograr tales especificaciones el par de


complejos dominantes debe generarnos estos valores de ~ y COn .

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

Escoja ahora la opcin r. Se abre a continuacin el men de rlplot (Cfr.:


P g. 9.15).

- RLPLOT OPTIONS K values zeta line


single K wn circle
Find K
Rule info
Marginal K New/clear
Grid
Display TF
Title

QUit

Elija sucesivamente las opciones k y z e introduzca los valores indicados


en los marcos subyacentes

Enw, K valuesto plot> 0:0,02:0;25


option? > !axis equal
Press any key to continue...

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

------- -- ---- --)!:11111111~'@, , -- --

-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

diseo del bloque Pl 2


La porcin PI
(12.6)
eleva en una unidad el tipo del sistema, elinnando, en nuestro caso, e ssv .
El 'quid' del clculo del valor del cero, KKi2p2 , est en escogerle significativamente ms pequeo que el polo estable de la planta, Gp(s) , ms prximo al origen, que en nuestro caso
es -5.
Echando mano del buen sentido, escogemos como valor adecuado del cero, en nuestro
caso, K~'2 = 0.1 y utilizamos la aproximacin, slo valida para el rgimen transitorio,
p2
5000Kp2 (s + O.1)
5000Kp2
G(s)=

=---~-

s2 (s+5)(s+ 10) - s(s+5)(s+ 10)


Para la funcin tddesign an sigue activa, como f.dt.LA , la funcin
G (s) =
5000
P
s(s+5)(s+ 10)

(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)

PID Controller form: Kp + Kds + Ki/s


Enter Kp [1] > 1
Enter Kd [O) > O
Enter Ki [O] > O

Ahora se trata de detectar el valor de Kp2 , que minimiza el tiempo de establecinento, t s .


Para ello reiteramos para diversos valores de K p2 la secuencia de operaciones siguiente
E

i ~ Qption? > e
~
PIOControllerform: Kp~+ Kds,+ Kifs~
)bf;~fer:KpJ<t03J,> 0;01
"'- ?i!' EterKd [QJ'."$. 0""'
'"ter,K:[OJi o

11.7

Mtodos descriptivos en el donnio de la frecuencia

Esta funcin mltiple de la toolbox CSAD, necesita algunos arreglos


antes de ser utilizada en Windows con el Matlab profesional. Probablemente a Ud. se le ocurrir un depurado definitivo que no sea este
salir del paso.

la funcin bplot de CSAD

A poder ser con el block de notas de Windows o editor equivalente, haga estos cambios en el archivo

bplot.m de la toolbox CSAD


N

Cootenido original

Cootenido modificado

linea

16

if -cSa010,end

%if-cSa010,end

59

if -alim, polyline(wlim,[O O],'w:'),end

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

Antes de mostrarnos el men solicitar la definicin del numerador y


denominador de la f.dt. y sobre el intervalo de frecuencias a trabajar,
que delimitaremos introduciendo k1 y k2, los exponentes de las potencias de 1O de los puntos extremales del intervalo.

bplot(n1, d1)

Antes de presentarle el men solicita los exponentes de las potencias


de 1O que delimitan el intervalo de frecuencias potencias. Los
argumentos de entrada son el numerador y denominador de la fd.t.

bplot(n1 ,d1 ,k1 ,1<2)

Presenta directamente el men

n1 =25;d1 =pmult([1 2 25],[1 6]);


bplot(n1 ,d1 ,-1,2)

- BODEPLOT OPTIONS Freq range


Amplitude
Time delay
Phase
NewTF
Both
Zoom in
Change 0/C
Display TF
Set axes
Margins
Grid
Roots
Hold
La bel
View Data

Dibuja el diagrama de magnitud


0-

- ~ - - ~ ~ - - -- .

-50

auit
-1 0 0 ' - - - - - - - - ~ - - ~
10"

10

10

10

Dibuja el diagrama de fase con una lnea


horizontal a -180

-100

b Debera representarnos los dos diagramas


en una nica ventana grfica

-200

En mi ordenador no lo he conseguido.
-300'-------------'
1~
1~
1~
1i

Z Tras hacer 4 en extremos de diagonal de


rectngulo a ampliar, realiza un zoom.

En mi ordenador no lo he conseguido.
S Permite cambiar los lmites de los ejes
-10

Superpone rejilla

Conmuta el estado actual de hold

,,/

-20~---------~

11

1~

Ttulo de dibujo

Mtodos descriptivos en el dominio de la frecuencia

11.8

Permite redefinir el intervalo de frecuencias


para el cmputo

Crea mediante aproximacin de Pade una


nueva versin de la f.d.t. actual, con el retardo
que Ud. especifique

Permite cambiar a una nueva f.d.t.

C Convierte en activa la f.d.t.L.A o la f.d.t.L.c

Muestra la f.d.t. activa

Calcula el margen de ganancia y el


margen de fase, as como las frecuencias de
cruce de fase y de ganancia

Muestra ceros y polos de f.d.t. actual

V Permite conocer la frecuencia magnitud y


fase del punto sobre el que Ud. ha hecho -6'.
Aade adems los valores de los siete puntos
siguentes usados en el cmputo de las curvas.

Salir de bplot
. . . ......... ... .. "

----- . .., "-- ....

Como es habitual

fil

........~- .... -- ... -~ ...... .... ...

- --.. ..... ...... --~-

todos los mflls de Csad. siempre estan disponibles, las opciones ya descritas fil 6.14

diagramas de Black y bacos de Nichols

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)

Dibuja el diagrama de Black: magJiitud fil dB versus fase en


grados
Sus argumentos de entrada son los ved.ores fila que
contienen los coeficientes de los polinomios del numerador y
denominador de la funcin a representar

nichols(n1 ,d1 ,w)

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)

Ahora no se dibuja el diagrama. Los argumentos de salida:

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

Mtodos descriptivos en el dominio de la frecuencia

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

[ma,fa,w]=nichols(n1 ,d1 ,w)

logspace

nichols(A,B,C,D)

Rplica de l en el espacio de estados

nichols(A, B,C, D, iu)

Igual que en el caso anterior con un argumento de entrada


adicional iu

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)

,\nlogo a 4 en el espacio de estados

[ma,fa,w]=nichols(A,B,C,D,iu)

Id con argumento de entrada adicional. iu

[ma,fa,w]=nichols(A,B,C,D,iu,w)

10

4 en el espacio de estados

Lo mismo que 2. pero en el espacio de estados. Si no coloca


d nmero de la entrada. el programa no reconocer el veaor

ngrid

La funcin ngrid aade el baco de Nichols al diagrama de Black. previamente dibujado


con nichols. Ordinariamente se emplea sin argumentos de entrada. creando. en sucesin
discreta. las curvas comprendidas entre -40 y 40 dB para el valor constante de la magnitud
y de O a 360. para el valor constante de la fase.
Si se emplea 'new' como argumento de entrada
ngrid('new')
nichols(n1 ,d1)

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.

- !

1O~-:.. ...... :,: ..-:_~: .

o.-- .. -..
e

ro

~ -.-:
--..-~:::.~-:= ....:. ,:~,. ~- --.

... ,.
-10

-- -----,---- -~ -6

.,

./ :: -- - ________ - -- --------- -- --- ----.. -- -::_ --.: -12

- -- -- ------;f

',

---.:- - ---------",: ------- ---- - \------\- -----:,_ _H


-20 \--

-20

-60
-40
Phase (del)

Figura 11.5

-20

Mtodos descriptivos en el dominio de la frecuencia

11.2

11.10

... Mediante las instrucciones que siguen construya la figura 11 .6


ri2=[,-4 48 -'182J50 600];

axis([..360,0, -15;20])

d2=[1 30 282 525 60];

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

La curva gruesa representa el diagrama magnitud-fase de la f.d.t.L c .


Por apreciacin grfica y con el error permitido por la aproximacin grfica
escriba en los marcos que siguen

IM(iroA)I dB=

11.3

... Halle la frecuencia roA y dibuje en la curva de lazo cerrado el punto


parametrizado por tal frecuencia

abs . .. ..... . . .. 2.5


acker ... . .... . . 9.12
acos . ..... .... . 1.7
acosh . ... .... .. 1.7
all ... ...... . . .. 5.6
angle . .. ....... 2.5
any ........ . . . . 5.5
asin . ... .. . .... 1.7
atan . . .... ..... 1.7
atan2 ......... . 1.8
atanh .......... 1.7
bi2mo . ........ 2.6
bode .. . ... . .... 11.4
bplot . .. . . . .... . 11.7
break . ......... 5.5
canon .... . ... . 8.16
casesen . . . . . . . 1.4
ccp ... .. . .. .... 2.8
ceil . .. . .. .. .. .. 1.10
ele . ...... .... . . 1.4
clear .. .. .. . .... 1.4
clg ... . .... . .... 1.4
cloop .......... 6.4
compan ... ..... 8.16
conj .......... . 2.5
conv . .. ... .. ... 4.4
cos .... . ....... 1.7
cosh ... . . ...... 1.7
ctrb .......... . . 8.13
ctrbf ... .. ... .. . 8.13
dbclear ... . ... . 5.9
dbcont ..... . ... 5.9
dbstack .... . ... 5.9
dbstatus . .. . . .. 5.9
dbstep .... . . . .. 5.9
dbstop .. . . ..... 5.9
dbtype . . . . . . . .. 5.8
deconv . .... . .. 4.4
demo .... . ..... 1.3
det . .. ......... 3.8
diag ........ . .. 3.13
displist . .... . ... 5.1 O
eig ....... . . . ... 3.12
else . ...... . . . . . 5.7
elseif .. . . . . .. . . 5.7
end . ... ... . . . . . 5.7
eval2 ...... .. .. 4.9
exist . . . .. ... . .. 5.6
exit .... . ....... 1.3
exp . ..... . ..... 2.7
eye .... . . . ..... 3.7
fbode .......... 11.4
find . ...... . . .. . 5.6
find ..... . ...... 3.1 0
finite ..... . .. .. . 5.6
fix ..... . . . .. . .. 1.9
fliplr ......... .. 3.12
flipud . . . .... . .. 3.12
floor .. . ..... . . . 1.10
for .. ........ ... 5.3
format . . . . .. ... 1.6
ginput . .... .. .. 6.18
gtext ... . . . .... . 6.18
help ......... .. 1.4
if .... . . ..... .. . 5.5
ilt .... . ... .... .. 4.9

iltl .. ... . . . . . .. . 4.9


imag ... . ... ... . 1.9
impulse ........ 6.15
initial ...... .... 6.16
initial ........ . . 8.16
inv ............. 3.8
isempty .. .. ... . 5.6
isnan .......... 5.6
isstr . .... . ..... 5.6
keyboard .. . ... 5. 8
length ..... . .. . 3.7
lever ...... . .... 8.4
linsim ..... .... . 8.9
linsim ....... . .. 8.16
linspace ....... 3.4
linspace ... .. .. 9.16
load ........... 1.3
log . . . ... . ..... . 2.7
log10 ... . .. .... 1.10
logspace . . ..... 3.4
logspace ....... 9.1 5
lookfor . . . . . . . . . 1. 1O
lsim ........... 6.1 6
margin ..... . .. . 10.18
margin .. .. ..... 11 .6
max . ..... . ... . 3.9
min ....... . .... 3.9
nargin .... . . . .. 1.4
nargout . . . . . . . . 1.4
ngrid ...... . .... 11 .9
nichols .. .. . . ... 11.8
ninput ... . . ... . 5.1 O
nyquist ........ 10.4
obsv ..... . .... . 8.1 3
obsv .. ... . . ... . 8.1 3
ones ... . ... . .. . 3.7
padd .... . .... . . 4.5
pade . . .. . . ..... 6.6
parallel ... . . ... 6.5
pderiv . ... .... . 4.5
pinput .. .. .. ... 5.1O
place ... .. .. ... 9.12
plot3 . .. .. . . . .. . 8.6
plotit .. ... . . .. .. 4.1O
pmake ......... 4.5
pmult .......... 6.5
pmult ...... . ... 4.5
pmult . . . ...... . 5.5
polar ... . .. ..... 2.6
poly .. .... . .... 4.4
polyder . .. . . ... 4.4
polyval .. . . . .. .. 4.3
polyvalm . .. . ... 4.3
printsys .. ... ... 6.3
prlplot ....... . . 10.18
pzmap . ... . . . .. 9.9
pzshow . .. . .... 5.1O
quit .. . .. . . ..... 1.3
rand .. . ....... . 3.8
rank .... . ...... 3.8
real .. .. . .. . .. .. 1.9
rem ... . .... ... . 1.10
reshape . ....... 3.5
resi2 ..... . .. ... 4.8
residue . ... . . .. 4.7
resit . . . . ....... 4.10

return . . ... . .. . . 5.8


rlocfind . .. ... . . 9.9
rlocus .. . . . ... . . 9.6
rlplot .... . .. .. . . 9.15
roots . ... ..... .. 4.4
roots . .. . ... . ... 2.3
rot90 . .. . .. .... 3.11
round .......... 1.9
routh ....... ... 4.6
save ......... .. 1.3
series . .. ... . .. . 6.5
sgrid .. . ... . . ... 9.7
shg ..... .... ... 1.4
sign ..... . . . ... 1.10
sin ...... . ...... 1.7
sinh ........... 1.7
size ............ 3.7
sqrt ............ 1.8
sqrtm ......... . 1.9
ss2tf ........ .. 7. 5
step .. . .. . ..... 6.15
strcmp ......... 5.6
subplot
.... 11 .5
sumit
.. 4.10
sv2sv
.. 7.13
sv2tf . ..
. .... 7. 5
svplot . .
. . 6.12
svshow . . . .... . 5.10
svstuff ...... .. . 8.16
svstuff
... 9.11
tan . . . .
. 1.7
tanh ........... 1.7
tf2ccf
... 7.5
tf2ocf ...... .. .. 7.5
tf2zp ..... ... . 5.3
tf2zp . .
. . 6.3
tfcloop .. . ...... 5.5
tfcloop . . . ...... 6.5
tfdelay
. .. 6.7
tfdelay
. .. 5.7
tfderiv
. .. 6.9
tfess ... . ... .. .. 6.9
tfmonic .. ...... 6.9
tford2 . .. . . . ... . 6.9
tfparall ........ . 5.5
tfparall ... .. . ... 6.5
tfparallel . ...... 5.5
title . . .......... 9.18
tr2ccf ... . .. . ... 7.16
tr2df .. .. .. . .... 7.16
tr2ocf ... . ..... . 7.16
tf2ss ... ....... . 8.16
tfseries ... . .. . . 6.5
tfseries ........ 6.5
tfshow ...... . .. 6. 1O
tftplot ... . ... . .. 6.12
title .. .......... 6.18
tr2ccf ...... . ... 7.16
tr2df ..... . .... . 7.16
tr2ocf . .. . ...... 7.16
trace ... . .. . .... 3.6
uisetcolor . ... .. 6.19
uisetfont ... . .. . 6.18
view .... ... . .. . 8.7
vinput ...... . ... 5.1 O
while .. . ....... 5.4

whitebg . ....... 4.10


who . . ... . .... . 1.4
whos ... . .. . . . . 1.4
xlabel . .. . .. . . .. 6. 18
xlabel . ... .. .... 11.5
ylabel .. .. .. . .. . 11.5
ylabel . ... ...... 6.18
yninput . .. ..... 5.1O
zeros .... . ..... 3.7
zp2tf . .......... 6.4
zp2ss . . . .. . .... 8.16

Anda mungkin juga menyukai