You are on page 1of 31

Sistemes de Control en Espai dEstat

Emprant M AT LAB c /Simulink c

Sergio Lpez-Doriga Guerra


Enric Fossas Colet
Ramon Costa Castell
10 doctubre de 2011
ndex

1 Sistemes lineals en espai destats (temps continu) 3

1.1 Definici dun sistema en espai destats . . . . . . . . . . . . . . . . . . . . . . . . 3

1.2 Estabilitat del sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

1.3 Propietats del sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

1.3.1 Controlabilitat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

1.3.2 Observabilitat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

1.4 Conversi del model en espai destats a un model entrada-sortida . . . . . . . . . 7

1.5 Conversi del model entrada-sortida a un model en espai destats . . . . . . . . . 8

1.6 Control per assignaci de pols . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

1.7 Disseny dun observador destat . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

1.7.1 Disseny dun regulador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

1.8 Simulacions del sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

1.8.1 Resposta del sistema a un impuls o a un gra . . . . . . . . . . . . . . . . 13

1.8.2 Resposta del sistema amb condicions inicials no nul.les . . . . . . . . . . . 14

1.8.3 Resposta del sistema a una entrada arbitrria . . . . . . . . . . . . . . . . 16

1.9 Guany dun sistema en estat estacionari . . . . . . . . . . . . . . . . . . . . . . . 17

1.10 Recuperant informaci dun sistema . . . . . . . . . . . . . . . . . . . . . . . . . 17

1.11 Linealitzaci de sistemes usant Simulink


c . . . . . . . . . . . . . . . . . . . . . 19

2 Sistemes lineals en espai destats (temps discret) 26

2.1 Discretitzaci de sistemes de temps continu . . . . . . . . . . . . . . . . . . . . . 26

2.2 Definici dun sistema de temps discret . . . . . . . . . . . . . . . . . . . . . . . . 27

2.3 Anlisi dun sistema de temps discret . . . . . . . . . . . . . . . . . . . . . . . . . 28

2
1 Sistemes lineals en espai destats (temps continu)

1.1 Definici dun sistema en espai destats

En M AT LAB c , es disposa de la funci ss que serveix per a introduir models en espai destats
dels sistemes lineals: (
x = Ax + Bu
y = Cx + Du
Aquests sistemes es designaran de la forma (A,B,C,D).
 

sist = ss (A ,B ,C , D )

A , B , C , D sn les matrius que defineixen el sistema .


Si la matriu D s n u l l a , noms cal posar D =0 sense tenir en compte les dimensions .

 

Exemple

Sigui el sistema1 :



1, 6 2 0 0, 6 1, 5
x= 0 1, 2 0 x + 0 0, 7 u



"
0 #
0 0, 9 1, 5 1, 5


2 0 0
y = x


0 0 1

Per introduir-lo en M AT LAB


c cal escriure les segents instruccions:

>> A =[ -1.6 2 0; 0 -1.2 0;0 0 -0.9];


>> B =[0.6 1.5; 0 0.7;1.5 1.5];
>> C =[2 0 0;0 0 1];
>> D =0;
>> sist = ss (A ,B ,C , D )

a =
x1 x2 x3
x1 -1.6 2 0
x2 0 -1.2 0
x3 0 0 -0.9

b =
u1 u2
x1 0.6 1.5
x2 0 0.7
x3 1.5 1.5

1
Aquest sistema sutilitzar en els successius exemples daquest manual.

3
c =
x1 x2 x3
y1 2 0 0
y2 0 0 1

d =
u1 u2
y1 0 0
y2 0 0

Continuous - time model .

1.2 Estabilitat del sistema

Per a conixer lestabilitat dun sistema shan danalitzar els seus pols. En el cas dun sistema en
espai destats aix equival a estudiar els valors propis de la matriu A. M AT LAB c t la funci
pole que permet calcular els pols dun sistema.
 

p = pole ( sist )

p s un vector columna amb els valors propis de la matriu A del sistema sist .

 

Exemple

Continuant lexemple anterior en qu sobtenia el sistema sist, els valors propis de la seva matriu
A sobtenen utilitzant la instrucci:

>> p = pole ( sist )

p =

-1.6000
-1.2000
-0.9000

Alternativament podrem fer :

>> eig ( A )

ans =

-1.6000
-1.2000
-0.9000

4
>> eig ( sist . A )

ans =

-1.6000
-1.2000
-0.9000

1.3 Propietats del sistema

1.3.1 Controlabilitat

Un sistema (A, B, C, D) s controlable2 si la matriu de controlabilitat WC

WC = [B AB A2 B AN 1 B]

t rang mxim.
rang(WC ) m`axim sist controlable
Les funcions de M AT LAB c rank i ctrb calculen, respectivament, el rang duna matriu i la
matriu de controlabilitat WC .
 

n = rank ( A )

n s el rang de la matriu A .

 

 

W = ctrb ( sist )

ctrb retorna la matriu de co nt r ol ab i li ta t del sistema sist .

 

Exemple

Per analitzar la controlabilitat del sistema sist es fa:

>> W = ctrb ( sist )

W =

0.6000 1.5000 -0.9600 -1.0000 1.5360 -0.0800

2
En sistemes en temps continu, controlabilitat i assolibilitat sn equivalents.

5
0 0.7000 0 -0.8400 0 1.0080
1.5000 1.5000 -1.3500 -1.3500 1.2150 1.2150

>> nW = rank ( W )

nW =

El rang de WC s 3, que coincideix amb la dimensi de lespai on est definit el sistema; per
tant el sistema s controlable.

1.3.2 Observabilitat

M AT LAB c permet fer lanlisi de lobservabilitat dun sistema mitjanant el clcul de la seva
matriu dobservabilitat WO . En aquest cas, a part de lequaci de la dinmica tamb ser
necessria lequaci de la sortida.

C

CA

CA2

WO =

..
.


CAN 1

Pel clcul de la matriu dobservabilitat M AT LAB


c disposa de la funci obsv.

 

Wo = obsv ( sist )

obsv retorna la matriu d obser vabili tat del sistema sist .

 

Exemple

Per a lanlisi de lobservabilitat del sistema sist dels exemples anteriors es faran servir les
segents instruccions:

>> Wo = obsv ( sist )

Wo =

2.0000 0 0
0 0 1.0000
-3.2000 4.0000 0
0 0 -0.9000
5.1200 -11.2000 0
0 0 0.8100

6
>> nWo = rank ( Wo )

nWo =

El rang de WO s 3, que coincideix amb la dimensi de lespai on est definit el sistema; per
tant el sistema s observable.

1.4 Conversi del model en espai destats a un model entrada-sortida

El model entrada-sortida (funci de transferncia) dun sistema dinmic es pot definir o obtenir
mitjanant la funci tf. Per introduir una funci de transferncia sutilitzaran els coeficients
dels polinomis del numerador i del denominador.
 

sist_tf = tf ( num , den )

num i den sn vectors fila amb els coeficients del numerador i del denominador
( re specti vament ) de la funci de transferncia a introduir .

 

La funci tf tamb permet convertir un model en espai destats en un model entrada-sortida.


 

sist_tf = tf ( sist )

sist s un sistema dinmic expressat en representaci d estats .


sist_tf s la funci de transferncia del sistema en espai d estats ; en el cas d un
sistema multientrada , multisortida ( MIMO ) sist_tf s una matriu de funcions de
transferncia .

 

Exemples

Sigui la funci de transferncia:


2s 3
G(s) =
3s3 + 4s2 + s + 5
Per definir-la en M AT LAB
c susar:

>> num =[2 -3];


>> den =[3 4 1 5];
>> G = tf ( num , den )

Transfer function :
2 s - 3
---------------------
3 s ^3 + 4 s ^2 + s + 5

7
Si es disposa dun sistema representat en espai destats com el del primer exemple (pg.3) i es
converteix a funci de transferncia, sobt el segent resultat:

>> sist_tf = tf ( sist )

Transfer function from input 1 to output ...


1.2
#1: ---- ---
s + 1.6

1.5
#2: ---- ---
s + 0.9

Transfer function from input 2 to output ...


3 s + 6.4
#1: - - - - - - - - - - - - - - - - - -
s ^2 + 2.8 s + 1.92

1.5
#2: ---- ---
s + 0.9

Si es vol accedir, per exemple, a la funci de transferncia entre la primera sortida i la segona
entrada es far de la segent manera:

>> sist_tf (1 ,2)

Transfer function :
3 s + 6.4
------------------
s ^2 + 2.8 s + 1.92

1.5 Conversi del model entrada-sortida a un model en espai destats

Per fer la conversi dun model entrada-sortida a un model en espai destats es pot fer servir la
funci ss vista anteriorment en lapartat 1.1.
 

sist_ss = ss ( sist_tf )

sist_tf s un sistema dinmic expressat en forma d entrada - sortida .


sist_ss s el sistema en representaci d estats del model entrada - sortida sist_tf .

 

Tot i que es disposa daquesta opci, cal tenir cura al fer aquest tipus de conversi ja que en cap
cas la transformaci s nica i, a ms, en el cas dun sistema MIMO el resultat pot no ser una
realitzaci mnima, obtenint un nmero de variables destat superior a lesperat.

8
1.6 Control per assignaci de pols

En sistemes lineals, la noci de controlabilitat (veure secci 1.3.1) equival a lexistncia duna
realimentaci destat u = Kx que permet posicionar els pols del sistema en lla tancat on es
desitgi. Lesquema del sistema en espai destats amb realimentaci es pot veure a la Figura 1.
)
x = Ax + Bu
x = (A-BK)x
u = -Kx

Figura 1: Sistema en espai destats amb realimentaci.

M AT LAB c disposa dun parell de funcions (acker i place) pel clcul de la matriu de
realimentaci K. La que sutilitzar en aquest manual s la funci place3 .
 

K = place (A ,B , p )

A i B sn les matrius del sistema . p s un vector amb els pols desitjats .


La funci retorna la matriu K que situa els valors propis de A - BK all on especifica el
vector p .

 

Exemple

Es vol determinar una realimentaci destat de manera que els pols del sistema que sha estat
utilitzant anteriorment (pg.3) en lla tancat siguin els segents:

0, 2 + 0, 1j
p = 0, 2 0, 1j

0, 3
3
Es remet al lector al help de M AT LAB
c per a veure les limitacions de la funci acker.

9
Per aconseguir-ho sutilitzaran les segents instruccions:

>> p =[ -0.2+ j *0.1; -0.2 - j *0.1; -0.3];


>> K = place (A ,B , p )

K =

-2.4787 7.3115 0.0535


1.4381 -4.7566 -0.2804

Per tal de comprovar que efectivament els valors propis de A-BK sn els indicats al vector p es
defineix el sistema en lla tancat (A-BK,0,C,0) que correspon a:
(
x = (A BK)x
y = Cx

I, a continuaci, es calculen els seus pols:

>> sist2 = ss (A - B *K , zeros (3 ,2) ,C ,0) ;


>> pole ( sist2 )

ans =

-0.2000 + 0.1000 i
-0.2000 - 0.1000 i
-0.3000

1.7 Disseny dun observador destat

Un observador destat permet estimar el valor de les variables destat dun sistema (xe ) a partir
de la seva entrada (u) i la seva sortida (y), vegis lesquema de la Figura 2. Si sestima el valor de
totes les variables destat independentment de si es pot fer una mesura directa o no, lobservador
sanomena dordre complet; en cas contrari, es parla dun observador dordre redut.

Lequaci que descriu lobservador s:

x e = Axe + He (y (Cxe + D)) + Bu

Al mateix temps, lerror de la estimaci es pot calcular sabent que xerror = x xe , aix, la
dinmica de lerror es descriu:
x error = (A He C)xerror
La matriu He fixa els pols de la dinmica de lerror (xerror ), que s convenient que siguin ms
rpids que la dinmica de la planta per a garantir una estimaci acurada. He tindr tantes files
com estats tingui el sistema original i tantes columnes com sortides, per trobar-la es far servir
la funci place descrita a lapartat anterior (pg.9).

10
Figura 2: Esquema dun sistema amb observador destat.

Aix, tenint en compte que els valors propis duna matriu i la seva transposada sn els mateixos,
es pot fer una analogia entre el clcul de la matriu K dun controlador per realimentaci i la
matriu He dun observador.

Controlador Observador
A BK A He C
A0 C0 H0e
K=place(A,B,p) He=place(A,C,p)

Un cop trobada He , caldr muntar el sistema observador. Per a fer-ho M AT LAB c compta
amb la funci estim que dna directament el sistema de lobservador en espai destats.
 

sistObs = estim ( sist , He )

sistObs s el sistema observador en espai d estats del sistema sist sent He el guany de
l observador .

 

Exemple

Per calcular lobservador, voldrem situar els pols que determinen la dinmica de lerror en:

0, 2 + 0, 1j
p = 0, 2 0, 1j

0, 3

Ara noms cal calcular la matriu K que situa els pols del sistema dual (A,C) all on es desitja i
transposar-la per obtenir la matriu He que, juntament amb la funci estim ens proporciona una
estimaci dels estats. Per ltim amb la funci pole es pot comprovar que els pols del sistema

11
observador siguin els desitjats. En cas de no tancar cap lla amb la u, els pols del sistema
observador i els del sistema error (x xe ) sn els mateixos.

>> p =[ -0.2+ j *0.1; -0.2 - j *0.1; -0.3];


>> He = place (A ,C , p )

He =

-1.2000 0
0.2525 0
0 -0.6000

>> sistObs = estim ( sist , He )

a =
x1 x2 x3
x1 0.8 2 0
x2 -0.505 -1.2 0
x3 0 0 -0.3

b =
u1 u2
x1 -1.2 0
x2 0.2525 0
x3 0 -0.6

c =
x1 x2 x3
y1 2 0 0
y2 0 0 1
y3 1 0 0
y4 0 1 0
y5 0 0 1

d =
u1 u2
y1 0 0
y2 0 0
y3 0 0
y4 0 0
y5 0 0

Input groups :
Name Channels
Measurement 1 ,2

Output groups :
Name Channels
Outp utEsti mate 1 ,2
StateEstimate 3 ,4 ,5

Continuous - time model .


>> pole ( sistObs )

ans =

-0.2000 + 0.1000 i
-0.2000 - 0.1000 i
-0.3000

12
1.7.1 Disseny dun regulador

Un regulador s un sistema basat en un observador al qual se li ha afegit un control per


realimentaci resultant un esquema com el de la Figura 3. Les equacions que modelen aquest
sistema sn:
" # " #" # " #
x A BK x 0
= +


x 0 A He C (B He D)K xe He y


e
" #
h i x
y = C 0


xe

Figura 3: Esquema dun sistema regulador.

Per calcular el regulador M AT LAB


c ofereix la funci reg amb la qual es pot obtenir el sistema
en espai destats.
 

sistReg = reg ( sist ,K , He )

sistReg s el sistema regulador en espai d estats del sistema sist , sent K la matriu de
realimentaci i He el guany de l observador .

 

1.8 Simulacions del sistema

1.8.1 Resposta del sistema a un impuls o a un gra

Per conixer la resposta temporal dun sistema a una entrada impuls o a una entrada gra
M AT LAB c t les funcions impulse i step respectivament. Amb aquestes funcions no noms

13
es pot veure un grfic amb la resposta del sistema sin que tamb hi ha la possibilitat dobtenir
les trajectries de les variables destat x. En cas que el sistema amb qu es treballa tingui ms
duna entrada, saplicar un impuls o un gra simultani a cadascuna. Les dues funcions treballen
de la mateixa manera:
 

impulse ( sist )
o
step ( sist )

sist s el sistema del qual volem conixer la resposta temporal , la funci mostrar
aquesta resposta en un grfic .

[y , t ]= impulse ( sist )
o
[y , t ]= step ( sist )

La funci no retornar un grfic sin que guardar els valors de la sortida i del temps
en els vectors y i t res pectiv ament . Si el sistema t ms d una sortida o
ms d una entrada , el vector y ser una taula de dimensions :
[ nm . punts , nm . sortides , nm . entrades ]

[y ,t , x ]= impulse ( sist )
o
[y ,t , x ]= step ( sist )

Igual que en el cas anterior , la funci no retornar un grfic sin que guardar els
valors de la sortida , el temps i les variables d estat en els vectors y , t i
x respec tivame nt .

 

Exemple

Si es vol conixer la resposta del sistema del primer exemple (pg.3) a una entrada gra sutilitzar
la segent comana:

>> step ( sist )

Donat que el sistema sist t dues entrades i dues sortides, la funci retorna com a resultat
quatre grfics (Figura 4): els dos primers corresponents a les sortides per a un gra a la primera
entrada i una segona entrada nul.la, i dos grfics ms per a les sortides corresponents a una
primera entrada nul.la i una gra a la segona entrada.

1.8.2 Resposta del sistema amb condicions inicials no nul.les

Per defecte les funcions impulse i step suposen condicions inicials nul.les. La funci initial
permet simular el sistema amb condicions inicials x0 i entrada u = 0. El sistema simulat s, per

14
Figura 4: Resposta temporal de les diferents sortides a un gra a la primera entrada (esquerra)
o un gra a la segona entrada (dreta).

tant, de la forma: (
x = Ax
amb x(0) = x0
y = Cx

Igual que en funcions vistes anteriorment, M AT LAB


c permet veure el grfic de la resposta del
sistema o directament emmagatzemar les dades de sortida.
 

initial ( sist , x0 )

Retorna el grfic resultat de simular l evoluci temporal del sistema sist per a uns
valors inicials donats pel vector x0 .

[y ,t , x ]= initial ( sist , x0 )

La funci no retornar un grfic sin que guardar els valors de la sortida


del sistema , el temps i les variables d estat en els vectors y , t i x
resp ectiva ment .

 

15
1.8.3 Resposta del sistema a una entrada arbitrria

En cas de voler definir una entrada determinada pel sistema es pot fer mitjanant una matriu
U i un vector t. El vector4 t contindr valors equiespaiats de temps. La matriu U tindr tantes
columnes com entrades tingui el sistema i tantes files com instants de temps shagin de mostrejar.

Un cop definida una entrada, M AT LAB c permet simular la resposta del sistema amb la funci
lsim. Es podr obtenir el grfic de la resposta o emmagatzemar els valors de la sortida i de les
trajectries de les variables destat.
 

lsim ( sist ,U , t )

Retorna el grfic resultat de simular l evoluci temporal del sistema sist per a una
entrada definida en la matriu U i el vector t .

[y ,t , x ]= lsim ( sist ,U , t )

La funci no retornar un grfic sin que guardar els valors de la sortida del
sistema , el temps i les variables d estat en els vectors y , t i x r espect ivamen t .

 

Es pot afegir un parmetre extra per indicar quin ha de ser el mtode de interpolaci entre les
diferents mostres: un mantenidor dordre zero (zoh) o interpolaci lineal (foh). Per defecte,
M AT LAB c escull una de les dues opcions de forma automtica en funci de la entrada U
especificada.

Exemple

Suposarem que es vol obtenir la resposta del sistema als cinc primers segons (amb mostres cada
0,01s) duna entrada sinusoidal per u1 i un gra unitari per u2 . Per definir aquesta entrada
sutilitzaran les segents instruccions:

>> t =0:0.01:5;
>> U =[ sin ( t ) ; ones ( size ( t ) ) ];
>> U =U
U =

0 1.0000
0.0100 1.0000
0.0200 1.0000
0.0300 1.0000
0.0400 1.0000
0.0500 1.0000
0.0600 1.0000
0.0699 1.0000
0.0799 1.0000
0.0899 1.0000
etc .

4
El vector t pot ser vector columna o vector fila indistintament.

16
1.9 Guany dun sistema en estat estacionari

Per calcular el guany dun sistema en estat estacionari M AT LAB c disposa de la funci dcgain
que calcula G(s = 0). En sistemes en espai destats aix equival a K = DCA1 B si es treballa
en temps continu5 .
 

G = dcgain ( sist )

G s el guany en estat estacionari del sistema sist . Si el sistema t ms


d una entrada o ms d una sortida G ser una matriu de dimensions : [ nm .
sortides x nm . entrades ]

 

Exemple

Pel clcul del guany del sistema sist del primer exemple sutilitzaran les segents instruccions:

>> G = dcgain ( sist )

G =

0.7500 3.3333
1.6667 1.6667

El guany en estat estacionari entre la primera sortida i la segona entrada val G12 = 3.3333.

1.10 Recuperant informaci dun sistema

A partir dun sistema donat, sist, M AT LAB c permet recuperar la seva informaci. Aix,
mitjanant la funci tfdata es pot obtenir el numerador i el denominador duna funci de
transferncia6 .
 

[ num , den ]= tfdata ( tfunc , v )

Retorna el numerador num i el denominador den de la funci de transferncia tfunc . Cal


indicar el parmetre v per obtenir els resultats en forma de vector en
sistemes SISO .

 
5
En temps discret, el guany en estat estacionari pot calcular-se amb lexpressi K = D C(Id A)1 B
6
Alternativament, per a una funci de transferncia tfunc les comanes tfunc.num i tfunc.den retornen el
numerador i el denominador respectivament.

17
En cas que el sistema sist es trobi en forma despai destats, si es vol obtenir una de les seves
matrius nicament caldr escriure sist.A on sist s el nom del sistema.

A ms, M AT LAB c disposa de la funci zpkdata que retorna els zeros, els pols i el guany dun
sistema (independentment de la forma en qu estigui expressat).
 

[z ,p , k ]= zpkdata ( sist )

z , p i k sn els zeros , els pols i el guany del sistema sist . z i p sn taules de


valors i k una matriu . Tots tenen dimensions (i , j ) on i s el nmero de
sortides i j s el nmero d entrades .

 

Exemple

Amb el sistema del primer exemple en forma de funci de transferncia sist_tf (veure exemple
de la pg.7), si es vol obtenir el numerador i el denominador de la funci de transferncia entre
la primera sortida i la segona entrada sutilitzar la segent instrucci:

>> [ num , den ]= tfdata ( sist_tf (1 ,2) ,v )

num =

0 3.0000 6.4000

den =

1.0000 2.8000 1.9200

Si es disposa dun sistema anomenat sistema2 i es desitja obtenir les seves matrius caldr escriure
el segent:

>> A = sistema2 . A ;
>> B = sistema2 . B ;
>> C = sistema2 . C ;
>> D = sistema2 . D ;

En cas de voler obtenir els pols, zeros i el guany de cada sortida respecte cadascuna de les entrades
susar la comana del segent exemple, tenint en compte que es pot indicar com a parmetre de
la funci tant el sistema en espai destats sist com el sistema en forma de funci de transferncia
sist_tf:

18
>> [z ,p , k ]= zpkdata ( sist )

z =

[0 x1 double ] [ -2.1333]
[0 x1 double ] [0 x1 double ]

p =

[ -1.6000] [2 x1 double ]
[ -0.9000] [ -0.9000]

k =

1.2000 3.0000
1.5000 1.5000

Com es pot observar, alguns dels resultats sn taules de vectors. Per accedir al valor numric
dun dels vectors susar el nom de la taula seguit de la posici desitjada entre dos claus:

>> p {1 ,2}

ans =

-1.6000
-1.2000

1.11 Linealitzaci de sistemes usant Simulink


c

A partir de les equacions diferencials que descriuen un sistema dinmic es pot obtenir un diagrama
de blocs mitjanant Simulink c . Un cop afegits els diferents blocs que conformen el sistema
sinclour un port dentrada (inport) i un altre de sortida (outport) per a poder actuar sobre
lentrada del sistema i observar la sortida des de la finestra de M AT LAB c .

Donat un sistema dinmic definit per


x = f (x, u)
y = h(x)
els punts dequilibri sn trajectries constants i estan caracteritzats per:
0 = f (x0 , u0 )
y0 = h(x0 )

Per lestudi del sistema dinmic, s possible que sigui necessari linealitzar-lo. Aquest procs de
linealitzaci tindr lloc al voltant dun punt dequilibri que M AT LAB c calcula amb la funci
trim. Quan el punt dequilibri sigui conegut no caldr utilitzar aquesta funci.

19
 

[x ,u ,y , dx ]= trim ( nom_del_model )

Matlab intentar trobar els valors de les variables d estat x , l entrada u i la


sortida y per tal que dx sigui nula .
nom_del_model s el nom de l arxiu que cont el sistema modelat ( sense extensi ) .

 

Per tal de linealitzar un sistema al voltant dun punt predeterminat, M AT LAB


c ofereix la
funci linmod que donar com a resposta un sistema en la forma (A,B,C,D).
 

[x ,u ,y , dx ]= trim ( nom_del_model )

Matlab intentar trobar els valors de les variables d estat x , l entrada u i la


sortida y per tal que dx sigui nula .
nom_del_model s el nom de l arxiu que cont el sistema modelat ( sense extensi ) .

 

 

[A ,B ,C , D ]= linmod ( nom_del_model , x )

A , B , C i D sn les matrius resultants de la linealitzaci del sistema modelitzat en


nom_del_model al voltant del punt d equilibri x .

 

Per linealitzar sistemes al voltant dun punt dequilibri sutilitza la el polinomi de Taylor de
primer grau del camp vectorial i de la funci de sortida.
f f
f (x, u) f (x0 , u0 ) +
(x x0 ) + (u u0 ) +
x u
aquesta aproximaci es substitueix en les equacions no lineals:

f f
x = f (x, u) f (x0 , u0 ) + (x x0 ) + (u u0 )
x (x0 ,u0 )
u (x0 ,u0 )

dh
y y0 (h(x0 ) + (x x0 )) h(x0 )
dx x0
Aleshores es defineixen les variables incrementals segents:

= x x0

= y y0

= u u0
en aquestes noves variables el sistema sescriu:

f f
= + =A+B
x x0 ,u0 u x0 ,u0

h h
= + =C +D
x x0 ,u0 u x0 ,u0

20
Igual que shan vist les comanes trim i linmod, treballant amb Simulink c es disposa dun altre
conjunt dinstruccions que tamb permeten linealitzar sistemes per amb major control sobre
loperaci i amb ms opcions. Un exemple s la possibilitat de linealitzar el sistema en lla obert
sense necessitat de canviar lesquema en Simulink c , tamb es pot escollir linealitzar noms un
conjunt de blocs prviament indicat sense tenir en compte la resta del sistema.

Aquest conjunt dinstruccions es poden fer servir mitjanant comanes (com fins ara) o accedint
a una finestra que integra totes aquestes eines. Per accedir-hi noms cal prmer lopci Tools >
Control Design > Linear Analysis....

Les tres comanes que susaran sn operspec, findop i linearize.


 

opspec = operspec ( nom_del_model )

opspec ser l estructura de dades del sistema modelitzat en nom_del_model . s a dir , es


transforma el sistema d un esquema en Simulink a una variable
estructurada .

 

 

op = findop ( nom_del_model , opspec )

op ser el punt d operaci ( Operation Point ) on es vol linealitzar el sistema


modelitzat en nom_del_model . Per defecte , Matlab buscar un punt d equilibri .

 

 

linsys = linearize ( nom_del_model , op )

linsys ser la linealitzaci en espai d estats del sistema modelitzat en nom_del_model


i al voltant del punt d operaci op .

 

Exemple

Per a mostrar com modelitzar un sistema en Simulink c susar lexemple del pndol invertit.
El sistema proposat (Figura 5) consta duna massa m situada a lextrem duna barra rgida de
longitud l. A lextrem contrari, la barra t un eix de gir al voltant del qual pot donar voltes
senceres. El pndol est sotms a forces externes que provoquen un parell respecte leix de gir.
Es considerar tamb fregament viscs a leix de gir amb constant de proporcionalitat (respecte
la velocitat angular) b.

Per a obtenir la dinmica del pndol, utilitzant la segona llei de Newton, determinem el moment
dinrcia j = ml2 .

21
Figura 5: El sistema destudi consta dun pndol sotms a un parell en leix de gir.

Lequaci que governa aquest sistema s:

d2 (t) d(t)
j = (t) b mgl sin (t)
dt2 dt


Escrivint el sistema en espai destats amb x1 = i x2 = queda:

x 1
= x2
x 2 = gl sin x1 b
j x2 + 1
j


y = x1

Lesquema de la Figura 6 representa aquest sistema dinmic; es pot codificar directament en


Simulink c tenint en compte que cal tenir un port dentrada i un altre de sortida per a poder
actuar sobre lentrada del sistema i observar-ne la sortida. El model final queda tal com es veu
a la Figura 7.

Com es pot observar sha afegit un Clock que guarda el valor del temps a la variable de sortida t
per tal de poder veure levoluci temporal de . Els blocs integradors permeten, si cal, introduir
condicions inicials que per defecte sn nul.les.

En general, es pot treballar amb parmetres que desprs es poden definir de manera directa
des de la lnia de comanes de M AT LAB c . Daquesta manera no cal modificar el model cada
vegada que es vulgui variar algun dels parmetres del sistema dinmic. Lentrada (en aquest cas
) ha de ser una matriu de dues columnes, en la primera sespecifica el temps t i en la segona el
valor de lentrada (t).

22
Figura 6: Esquema que seguir el model en Simulink
c .

A lhora de fer la simulaci cal tenir en compte les diferents opcions que ofereix M AT LAB c
tals com el temps de simulaci, el perode de mostratge, el pas i el mtode dintegraci... Totes
aquestes opcions poden ajustar-se al men Configuration parameters... accessible amb les tecles
Ctrl+E. A ms, aquests parmetres poden tractar-se de la mateixa manera que els anteriors per
tal daccedir directament des de la lnia de comanes de M AT LAB c . Havent acabat es guarda
el model.

Donat el model en Simulink


c pendol.mdl definit anteriorment, susar la funci trim per buscar
un punt dequilibri:

>> l =1; m =3; b =2; g =9.8; Gamma =[0 0]; x1 =1; x2 =1;
>> [x ,u ,y , dx ] = trim ( pendol )

x =

1.0 e -012 *

0.2923
-0.0000

u =

y =

2.9227 e -013

23
Figura 7: Esquema de Simulink
c que modela el pndol invertit.

dx =

1.0 e -011 *

-0.0000
-0.2864

M AT LAB c retorna una aproximaci al punt dequilibri estable corresponent a (x , x ) = (0, 0).
1 2
Per linealitzar el sistema al voltant del punt dequilibri inestable (x1 , x2 ) = (, 0) es faran servir
les segents instruccions:

>> [A ,B ,C , D ]= linmod ( pendol ,[ pi 0])

A =

0 1.0000
9.8000 -0.6667

B =

0
0

C =

1 0

D =

24
Utilitzant el mateix model tamb es podria haver linealitzat el sistema mitjanant les segents
comanes, en aquest cas, la linealitzaci es realitza al voltant del punt dequilibri estable
(x1 , x2 ) = (0, 0):

>> sys = pendol ;


>> opspec = operspec ( sys ) ;
>> op = findop ( sys , opspec ) ;

Operating Point Search Report :


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

Operating Report for the Model pendol2 .


( Time - Varying Components Evaluated at time t =0)

Operating point speci ficati ons were successfully met .

States : None
----------
(1.) pendol2 / Integrator
x: 0 dx : -2.87 e -012 (0)
(2.) pendol2 / Integrator1
x: 2.92 e -013 dx : 0 (0)

Inputs : None
----------
(1.) pendol2 / In1
u: 0 [ - Inf Inf ]

Outputs : None
----------
(1.) pendol2 / Out1
y: 2.92 e -013 [ - Inf Inf ]

>> linsys = linearize ( sys , op ) ;

25
2 Sistemes lineals en espai destats (temps discret)

Treballant amb temps discret, es defineix un sistema lineal en espai destats de la segent forma:
(
x k+1 = Axk + Buk
yk = Cxk + Duk

2.1 Discretitzaci de sistemes de temps continu

La funci c2d permet discretitzar un sistema de temps continu. El sistema en temps continu pot
estar expressat en espai destats o com a funci de transferncia.
 

sist_d = c2d ( sist_c , Ts , MTODE )

sist_d s el sistema de temps discret resultant de discretitzar sist_c amb perode de


mostratge Ts .
MTODE s una cadena de carcters que especifica el procediment de disc retitz aci
utilitzat . Per defecte el seu valor s zoh ( mantenidor d ordre zero ) .

 

Entre daltres, tamb es pot especificar la transformada bilineal per a fer la discretitzaci. Cal
recordar que la bilineal es defineix pel canvi s = T2 z1
z+1 . Donat que aquesta transformaci tamb

c
s coneix com a mtode Tustin, en M AT LAB caldr especificar tustin com a procediment
de discretitzaci.

La funci d2c fa el contrari que la discretitzaci, s a dir, donat un sistema de temps discret en
retorna un de temps continu.
 

sist_c = d2c ( sist_d , MTODE )

sist_c s el sistema de temps continu calculat a partir de sist_d .


MTODE s una cadena de carcters que especifica el procediment per transformar la
representaci de temps discret del sistema a una de temps continu . Per defecte
el seu valor s zoh ( mantenidor d ordre zero ) .

 

26
Exemple

Disposant del sistema sist definit al primer exemple, si es vol discretitzar amb un perode de
mostratge Ts = 0, 1s es far servir la segent instrucci:

>> sist_d = c2d ( sist ,0.1)

a =
x1 x2 x3
x1 0.8521 0.1739 0
x2 0 0.8869 0
x3 0 0 0.9139

b =
u1 u2
x1 0.05545 0.145
x2 0 0.06596
x3 0.1434 0.1434

c =
x1 x2 x3
y1 2 0 0
y2 0 0 1

d =
u1 u2
y1 0 0
y2 0 0

Sampling time : 0.1


Discrete - time model .

2.2 Definici dun sistema de temps discret

La funci ss7 vista a lapartat 1.1 permet definir directament a M AT LAB


c un sistema de temps
discret; noms caldr afegir un cinqu parmetre tal com es pot veure a lexemple segent.
 

sist = ss (A ,B ,C ,D , Ts )

A , B , C , D sn les matrius que defineixen el sistema sist .


Ts s el perode de mostratge .

 
7
Tamb s vlid per a les funcions tf i zpk.

27
Exemple

Sigui el sistema de temps discret amb perode de mostratge Ts = 0, 1s:





0, 6 0, 7 0 0, 8 0, 4
xk+1 = 0 0, 75 0 xk + 0 0, 9 uk



"
0 0 # 0, 8 0, 9 0, 9


1 0 0
yk = xk


0 0 1

Per a definir-lo en M AT LAB


c cal escriure les segents instruccions:

>> A =[0.6 0.7 0; 0 0.75 0; 0 0 0.8];


>> B =[0.8 0.4; 0 0.9; 0.9 0.9];
>> C =[1 0 0; 0 0 1];
>> D =0;
>> sist_d = ss (A ,B ,C ,D ,0.1)

a =
x1 x2 x3
x1 0.6 0.7 0
x2 0 0.75 0
x3 0 0 0.8

b =
u1 u2
x1 0.8 0.4
x2 0 0.9
x3 0.9 0.9

c =
x1 x2 x3
y1 1 0 0
y2 0 0 1

d =
u1 u2
y1 0 0
y2 0 0

Sampling time : 0.1


Discrete - time model .

2.3 Anlisi dun sistema de temps discret

Quan es disposa dun sistema definit en temps discret es pot fer una anlisi de les seves propietats,
dissenyar un controlador o observador, transformar-lo a funcions de transferncia...

La majoria de les funciones necessries per a aquests objectius sn les mateixes que ja shan vist
al primer captol, en molts casos ls ser idntic i en uns altres caldr afegir algun parmetre
dentrada. Cal anar amb compte si es treballa amb la funci linmod ja que aquesta passa a

28
Funci Temps continu Temps discret
ss ss(A,B,C,D) ss(A,B,C,D,Ts)
pole pole(sist) pole(sist)
rank rank(A) rank(A)
ctrb ctrb(sist) ctrb(sist)
obsv obsv(sist) obsv(sist)
tf tf(sist) tf(sist,Ts)
tf(num,den) tf(num,den,Ts)
place place(A,B,p) place(A,B,p)
estim estim(sist,He) estim(sist,He)
reg reg(sist,K,He) reg(sist,K,He)
impulse impulse(sist) impulse(sist)
step step(sist) step(sist)
initial initial(sist,x0) initial(sist,x0)
lsim lsim(sist,U,t) lsim(sist,U,t)
dcgain dcgain(sist) dcgain(sist)
tfdata tfdata(tf,v) tfdata(tf,v)
zpkdata zpkdata(sist) zpkdata(sist)
trim trim(nom_del_model) trim(nom_del_model)
linmod linmod(nom_del_model,x) dlinmod(nom_del_model,Ts,x)
operspec operspec(nom_del_model) operspec(nom_del_model)
findop findop(nom_del_model,opspec) findop(nom_del_model,opspec)
linearize linearize(nom_del_model,op) linearize(nom_del_model,op)
c2d c2d(sist_c,Ts,MTODE) -
d2c - d2c(sist_d,MTODE)

Taula 1: Llistat de funcions

ser dlinmod si es treballa en temps discret. El funcionament s el mateix per sha dafegir el
perode de mostratge Ts .

A la Taula 1 es fa un llistat, per ordre daparici, de les funcions vistes fins ara amb els parmetres
corresponents per ls en temps continu i en temps discret.

29
ndex alfabtic
M AT LAB c , 1, 37, 9, 11, 13, 1520, 2224, impuls, 13, 14
2628 impulse, 13, 14, 29
Simulink c , 1, 19, 2124 initial, 14, 29
interpolaci, 16
acker, 9
assignaci de pols, 9 linealitzar, 1921, 24
assolibilitat, 5 linearize, 21, 29
linmod, 20, 28, 29
bilineal, 26 lsim, 16, 29
blocs integradors, 22
mtode dintegraci, 23
c2d, 26, 29 mantenidor dordre zero, 16
Clock, 22 MATLAB, 1, 37, 9, 11, 13, 1520, 2224, 26
condicions inicials, 14 28
control per realimentaci, 13 matriu dobservabilitat, 6
controlabilitat, 5, 9 matriu de controlabilitat, 5
controlador, 11, 28 matriu de realimentaci, 9
Conversi, 7, 8 model en espai destats, 7, 8
ctrb, 5, 29 model entrada-sortida, 7, 8
modelitzar un sistema, 21
d2c, 26, 29
mostres, 16
dcgain, 17, 29
denominador, 7, 17, 18 numerador, 7, 17, 18
diagrama de blocs, 19
dinmica de lerror, 10, 11 observabilitat, 6
dinmica de la planta, 10 observador, 11, 13, 28
discretitzar, 26, 27 observador destat, 10
dlinmod, 29 obsv, 6, 29
operspec, 21, 29
el polinomi de Taylor, 20
entrada, 8, 10, 13, 14, 16 perode de mostratge, 23, 2729
entrada arbitrria, 16 place, 9, 10, 29
error de la estimaci, 10 pole, 4, 11, 29
espai destats, 3 pols, 4, 912, 18
estabilitat, 4 port dentrada, 22
estim, 11, 29 punt dequilibri, 19, 20, 23, 24
estimar, 10
rang, 5, 6
findop, 21, 29 rank, 5, 29
funci de transferncia, 7, 8, 17, 18, 26 realimentaci destat, 9
reg, 13, 29
gra, 13, 14 regulador, 13
guany, 17, 18 resposta del sistema, 14, 16

30
Simulacions del sistema, 13
Simulink, 1, 19, 2124
sistema dual, 11
sortida, 8, 10, 22
ss, 3, 8, 27, 29
step, 13, 14, 29

temps continu, 3, 26, 29


temps de simulaci, 23
temps discret, 2629
tf, 7, 27, 29
tfdata, 17, 29
trajectries, 14, 16, 19
transformaci, 8
transformada bilineal, 26
trim, 19, 23, 29
Tustin, 26

valors propis, 4, 10
variables destat, 10

zeros, 18
zpk, 27
zpkdata, 18, 29

31

You might also like