Вы находитесь на странице: 1из 9

Utilizao do MATLAB (Control System Toolbox)

0. Introduo
Estas notas constituem uma breve introduo utilizao do Control System Toolbox (verso 4) do
MATLAB no estudo de sistemas dinmicos lineares. O comando help control fornece uma lista das
funes existentes, sendo tambm possvel obter informao sobre as diversas funes fazendo help
nome_da_funo. Para um conhecimento mais completo desta ferramenta, aconselha-se a consulta do
seu manual, ou de informao especializada, muita da qual disponvel na WWW.
Estas notas pressupem alguma familiaridade de utilizao do MATLAB, nomeadamente em termos de
representao e manipulao de matrizes e polinmios e ainda traados grficos. A Control System
Toolbox oferece um conjunto de ferramentas para o estudo de sistemas lineares invariantes no tempo,
permitindo a anlise de sistemas quer em tempo contnuo quer em tempo discreto. Estas ferramentas so
especialmente adaptadas ao tratamento de sistemas de dimenso finita, sendo no entanto possvel, no caso
contnuo, representar e analisar sistemas com atrasos puros de transporte nas entradas.

1. Representao de sistemas
Os modelos de sistemas dinmicos so representados por objectos do tipo LTI (linear time-invariant).
Cada objecto referenciado por uma varivel do MATLAB. Os modelos podem ser do tipo funo de
transferncia ou do tipo espao de estados. Na verdade, existe ainda uma representao adicional em que
se definem os plos, os zeros e o ganho do sistema, o que corresponde a ter uma funo de transferncia
com numerador e denominador factorizados. Esta representao, no ser aqui abordada.
A criao de um modelo funo de transferncia feita utilizando a funo tf, definindo os polinmios
numerador e denominador.
Exemplo
Representar a funo de transferncia G( s) =

3s 2 2s
s 2 + 2s + 0.5

Comandos no MATLAB:
numG=[3 -2 0];
denG=[1 2 0.5];
G = tf(numG,denG)
Resultado:
Transfer function:
3 s^2 - 2 s
--------------s^2 + 2 s + 0.5
Exemplo
Representar a funo de transferncia G1(s) =

1 0.1s
e
.
s+2

Comandos no MATLAB:
n1=1; d1=[1 2]; h1=0.1;
G1 = tf(n1,d1,Td,h1)
Resultado:
Transfer function:
1
----s + 2
Input delay: 0.1

FEUP - DEEC

ACM, 2003

A funo tf pode receber apenas um argumento. Neste caso, o resultado um sistema sem dinmica
interna, isto , caracterizado apenas por um ganho, definido pelo argumento fornecido.
Se se pretender trabalhar com representaes em funo de transferncia de sistemas com mltiplas
entradas ou mltiplas sadas, devem definir-se as funes de transferncia de cada entrada para cada sada
e por fim definir a funo (matriz) de transferncia como a matriz das funes de transferncia
constituintes, em que cada linha corresponde a uma sada e cada coluna a uma entrada. A obteno da
funo de transferncia de uma determinada entrada para uma determinada sada feita por seleco do
correspondente elemento da matriz de funes de transferncia. A funo tfdata permite obter
informao detalhada sobre os modelos em funo de transferncia.
Exerccio
1. Construir um modelo em funo de transferncia do sistema com uma entrada e duas sadas, em
que as funes de transferncia da entrada para cada sada so as funes G e G1 acima
definidas.
A criao de um modelo em espao de estados feita utilizando a funo ss, e definindo as matrizes A,
B, C, D de uma representao do tipo
x = A x + B u
y = C x+ Du

Exemplo
Representar o sistema S1 da figura.
u

2 1 1 0
x =
x +
u
3 1 0 1
y = [2 0.5]x + [ 1 0]u

Comandos no MATLAB:
A=[2 -1; 3 -1]; B=[1 0; 0 1]; C=[2 -0.5]; D=[-1 0];
S1 = ss(A,B,C,D)

A funo ssdata. permite obter os parmetros de um modelo em espao de estados.


A funo tf permite obter a funo de transferncia associada a uma representao em espao de
estados, bastando para tal fornecer como argumento o modelo em espao de estados a converter.
Analogamente, a funo ss permite obter uma representao em espao de estados de um funo de
transferncia passada como argumento. Neste caso, gerada uma representao cannica controlvel.
Exerccio
1. Obter uma representao em espao de estados da funo de transferncia G.
2. Obter uma representao em funo de transferncia do sistema S1.

2. Resposta temporal
A Control System Toolbox do MATLAB possui um conjunto de funes que permitem obter a resposta
temporal de um dado sistema. As funes mais relevantes so:
impulse resposta impulsional;
step resposta a uma entrada em degrau unitrio;
initial resposta a condies iniciais no nulas;
lsim resposta a uma entrada arbitrria.
Exemplo
Determinar a resposta ao degrau do sistema com funo de transferncia T ( s )=

FEUP - DEEC

s + 0.6
s 2 + 3s + 4

ACM, 2003

Comandos no MATLAB:
sisT = tf( [1 0.6], [1 3 4]);
step(sisT)
Exemplo
Determinar a resposta do seguinte sistema a uma entrada sinusoidal de perodo 0.5 seg.
2 0.5 1
x =
x+
u
0 0
1
y = [ 8 1.5]x

Comandos no MATLAB:

A=[-2 0.5; 1 0]; B=[1; 0]; C=[-8 1.5]; D=0;


sis = ss(A,B,C,D);
Tp=0.5; Tf=4; h=0.01;
[u,t]=gensig(sin,Tp,Tf,h);
lsim(sis,u,t)

Nota: A funo gensig permite gerar sinais peridicos (fazer help gensig para mais informao).
Exerccio
1. Determinar a evoluo do sistema do exemplo anterior supondo que a entrada nula e que o
estado inicial x 0 = [1 2] T .
2. Utilizando a funo lsim, determinar a evoluo do sistema supondo a mesma condio inicial
da alnea anterior, mas agora com uma entrada em degrau de amplitude 5.

3. Plos e zeros
A Control System Toolbox dispe de um conjunto de funes que permitem obter os plos e os zeros de
um sistema, bem como a sua localizao no plano s. Destas funes destacam-se:
pole determinao dos plos de um sistema;
tzero determinao dos zeros de um sistema (zeros de transmisso no caso MIMO);
pzmap localizao grficas dos zeros e dos plos de um sistema;
damp determinao do coeficiente de amortecimento e da frequncia natural dos plos
de um sistema.
Todas estas funes aceitam como nico parmetro o sistema em anlise.
Exerccio
1. Determinar os plos e zeros do sistema
2 0 0 1
x = 1
0 2 x + 0u
0 2 1 2
y = [ 2 0 1]x u
2. Determinar os coeficientes de amortecimento e as frequncias naturais dos plos de
G( s) =

FEUP - DEEC

3s 2 2s
.
s 4 + s3 + 4s 2 + 2s + 0.5

ACM, 2003

4. Lugar geomtrico das razes


r
y
G (s )
k
O lugar geomtrico das razes de sistemas realimentados como o da
figura, quando o ganho k varia de zero a infinito, pode ser obtido
utilizando da funo rlocus.
As funes seguintes so tambm teis na anlise do lugar geomtrico das razes:
sgrid curvas de amortecimento constante e as curvas de frequncia natural constante;
rlocfind determina interactivamente o valor do ganho para um dado ponto do LGR.

Exemplo
Traar o lugar de razes do sistema com ganho em malha aberta T ( s )=

s + 0.6
s2

. Determinar o valor do ganho

de modo a que o par de plos do sistema realimentado tenha um amortecimento de 0.8.


Comandos no MATLAB:

numT=[1 0.6]; denT=[1 0 0]; sisT=tf(numT,denT);


rlocus(sisT)
sgrid
rlocfind(sisT)

Resultado:
k = 1.54
Nota: A funo rlocfind no verifica se o ponto pretendido pertence ao LGR, cabendo ao utilizador
garantir tal condio. Esta funo pode tambm ser utilizada de forma no interactiva (fazer help
rlocfind para mais detalhes).

5. Resposta em frequncia
A Control System Toolbox do MATLAB possui um conjunto de funes que permitem analisar a
resposta em frequncia de um dado sistema. Os traados de Bode, Nyquist e Nichols obtm-se
respectivamente com as funes bode, nyquist e nichols. Em qualquer dos casos o sistema pode
estar descrito por uma funo de transferncia ou representado em espao de estados.
Exemplo
Obter o traado de Bode para o sistema com funo de transferncia T ( s )=

2 s +3
s 2 +8 s + 5

, para frequncias de

0.1 rad/seg a 100 rad/seg.


Comandos no MATLAB:
numT=[2 3]; denT=[1 8 5]; sisT=tf(numT,denT);
w=logspace(-1,2);
bode(sisT, w)

As margens de de ganho e de fase de um sistema realimentado (realimentao unitria negativa) podem


ser determinadas utilizando a funo margin.
Exerccio
1. Determinar as margens de ganho e de fase do sistema
r

G ( s) =

0.1
s 3 + 2 s 2 +5 s + 0.5

A funo freqresp permite calcular o valor da funo de transferncia para diferentes frequncias.

FEUP - DEEC

ACM, 2003

6. Representaes em espao de estados (anlise e realimentao de estado)


A Control System Toolbox do MATLAB dispe de um conjunto de funes para anlise de
representaes de sistemas em espao de estados. Entre estas incluem-se:
ctrb calcula a matriz de controlabilidade;
obsv calcula a matriz de observabilidade;
ss2ss calcula uma nova representao em espao de estados resultante de uma
mudana de coordenadas;
acker calcula um vector de ganhos de realimentao de estado por aplicao da frmula
de Ackermann (sistemas de uma entrada) a partir dos plos de malha fechada desejados;
place calcula uma matriz de ganhos de realimentao de estado (sistemas de mltiplas
entradas) a partir dos plos de malha fechada desejados.
Exemplo
Verificar que a seguinte representao no (completamente) controlvel, mas (completamente)
observvel.
0 1.5 1
x =
x + u
2.5 1 1
y = [1 0]x

Comandos no MATLAB:
A=[0 1.5; 2.5 1];B=[1; 1]; C=[1 0];
Q=ctbr(A,B); rank(Q)
O=obsv(A,C); rank(O)

Resultado:
A caracterstica da matriz de controlabilidade 1 pelo que o sistema no completamente
controlvel; a caracterstica da matriz de observabilidade 2 e logo o sistema completamente
observvel.
Exemplo
Determinar uma realimentao de estado u = K x para o seguinte sistema, de modo que os plos de
malha fechada sejam 2j e 5. Determinar tambm os ganhos de um observador de estado de modo que
os seus plos sejam todos 8.
7 1
1 0

9 x + 0u
x = 3 1
0 1 4 2
y = [1 0 0]

Comandos no MATLAB:

A=[1 0 7; -3 1 9; 0 1 -4]; B=[1; 0; -2]; C=[1 0 0];


polos=[-2+j; -2-j; -5];
K=acker(A,B,polos)
polos_obs=[-8 8 -8];
L=acker(A,C,polos_obs)

Resultado:
K = [4.50 0.69 5.75]
L = [22 129 20.2]T

Exemplo
Determinar uma realimentao de estado u = K x para o seguinte sistema, de modo que os plos de
malha fechada sejam 2j e 5.

FEUP - DEEC

ACM, 2003

7 1 0
1 0

x = 3 1
9 x + 0 1u
0 1 4 2 3

Comandos no MATLAB:
A=[1 0 7; -3 1 9; 0 1 -4]; B=[1 0; 0 1; -2 3];
polos=[-2+j; -2-j; -5];
K=place(A,B,polos)

Resultado:
6.92 1.32 6.59
K =

4.81 0.37 4.55

7. Interligao de sistemas
A Control System Toolbox possui um conjunto de funes que permitem obter representaes de
sistemas constitudos por diversos subsistemas interligados. Destas funes destacam-se as seguintes, que
permitem obter representaes para os sistemas indicados:

feedback:

S1

S2

parallel:

S1

S2

series:

S1

S2

Na sua forma mais geral, estas funes permitem definir quais as entradas ou sadas de cada sistema que
devem ser interligadas. Para obter informao sobre esses casos, utilizar o comando help.
Exemplo
Determinar uma representao em espao de estados do sistema realimentado da figura.
r

G(s) =

s + 0 .6
s 2 s + 0.5

Comandos do MATLAB:
numG=[1 0.6]; denG=[1 -1 0.5]; sisG=tf(numG,denG);
sisCL=feedback(sisG,1,-1);
sis=ss(sisCL)

Resultado:
0 1.1 1
x =
x+
u
0 0
1
y = [1 0.6]x

Exemplo
Determinar uma representao do sistema da figura.
r

FEUP - DEEC

s
s 2 +1
s + 0.6
s 2 s + 0 .5

2s
s 3 + 2 s +1

ACM, 2003

Comandos do MATLAB:

n1=[1 0.6]; d1=[1 -1 0.5]; sis1=tf(n1,d1);


n2=[1 0]; d2=[1 0 1]; sis2=tf(n2,d2);
n3=[2 0]; d1=[1 0 2 1]; sis3=tf(n3,d3);
sis23=parallel(sis2,sis3);
sis123=series(sis1,sis23)

Resultado:
Y (s)
s5 + 2.6s 4 + 3.2s3 + 4.2s 2 + 1.8s
= 7 6
R( s) s s + 3.5s5 2s 4 + 2.5s3 0.5s 2 + 0.5

Na verso mais simples, aqui apresentada, as funes parallel(sis1,sis2)


series(sis1,sis2) podem ser substitudas por sis1+sis2 e sis2*sis1, respectivamente.

Outra funo importante na interligao de sistemas a funo append que permite agrupar diversos
subsistemas no interligados entre si num s sistema. A funo connect permite efectuar
posteriormente interligaes entre os diversos sistemas.
Exerccio
1. Determinar uma representao em espao de estados do sistema da figura.
u

5.2 3 9
x =
x+
v
5.3 5
9
y = [3 1]x

 + 0.7 w = y + y
w

8. Regulador linear quadrtico


Dado um sistema descrito por x = Ax + Bu , a funo lqr permite determinar a matriz de ganhos K tal
que a realimentao de estado u = Kx minimiza o custo
1
2

(x

Qx + u T Ru )dt

ou seja, soluo do regulador linear quadrtico em regime permanente.


Exemplo
Considere o sistema com dinmica
1 1
0
x =
x + 1 u .
0
1


a) Determinar a realimentao de estado soluo do regulador linear quadrtico para as matrizes de pesos
2 0
Q=

0 1

R =1,

e obter tambm a evoluo do sistema realimentado para a condio inicial x0 = [2 0]T .


b) Repetir a alnea anterior com uma matriz Q 100 vezes maior e comparar os resultados.
Comandos do MATLAB:

A=[1 1; 0 1]; B=[0;1]; C=[1 0; 0 1]; D=[0; 0];


sis=ss(A,B,C,D);
Q=[2 0; 0 1]; R=1;
K=lqr(A,B,Q,R);

FEUP - DEEC

ACM, 2003

sisR=feedback(sis,K,-1);
x0=[2;3];
initial(sisR,x0,5)
Exerccio
1. Determinar a matriz de realimentao de estado ptima para o sistema
2 3
1 1 3

x = 0
1 4 x + 1 1 u
1 5
3 2 0

quando se consideram as matrizes de pesos, do estado e controlo, respectivamente


1 0 0
Q = 0 2 0
0 0 3

3 0
R=
.
0 5

9. Estimao ptima
Dado um sistema descrito por

x = Ax + Bu + Gw
y = Cx + Du + v
onde w e v representam o rudo do processo e o rudo de medida, respectivamente, e tm mdias nulas,
so independentes, e tm matrizes de covarincia dadas por
E( w w T ) = Q

E( v v T ) = R ,

a funo lqe(A,G,C,Q,R) permite determinar a matriz de ganhos de observao L tal que o filtro de
Kalman em regime estacionrio
x e = Ax e + Bu + L( y Cx e Du )
produz uma estimativa ptima do estado com base nas leituras y.
Exemplo
Dado o sistema com dinmica
1
2
1 1
x =
x + 1 u + 2 w
0
1

y = [ 1 1]x + v
e em que w e v tm mdias nulas, so independentes e tm covarincias respectivamente,
Q = 0.1

R = 0.5 ,

determinar a matriz de ganhos de observao correspondente ao filtro de Kalman em regime estacionrio.


Comandos do MATLAB:

A=[1 -1; 0 1]; B=[2; -1]; G=[1;2];


C=[-1 1];
Q=0.1; R=0.5;
L=lqe(A,G,C,Q,R)

Exerccio
1. Considere o sistema
0 1
0
1
x =
x + 1 u + 1 w
0
0

y = [1 0] x + v

FEUP - DEEC

ACM, 2003

onde E( wwT ) = 0.25

E(vv T ) = 1 . Determine o ganho de Kalman.

10. Realimentao de estado com base em observadores


A obteno de uma realimentao baseada num observador de estado pode ser obtida utilizando a funo
reg, bastando para tal fornecer os ganhos da realimentao de estado e do observador de estado,
calculados previamente. A entrada desta realimentao ser a sada do sistema original e a sada ser a
entrada do sistema original.
Exemplo
Dado o sistema com dinmica
1 1
2
x =
x+ u

0 1
1
y = [ 1 1]x

para o qual se calculou a realimentao de estado de ganho K = [6 7] e o observador de estado de ganho


L = [24 36]T , determinar a realimentao baseada no observador.

Comandos do MATLAB:

A=[1 -1; 0 1]; B=[2; -1]; C=[-1 1]; D=0;


sis=ss(A,B,C,D);
K=[6 7]; L=[24;26];
sis2=reg(sis,K,L)

Resultado:
13 49
24
x e =
xe + y

42 28
36
u = [ 6 7]x

Exerccio
1. Considerando o sistema
x = Ax + Bu
y = Cx + Du
com uma realimentao de estado caracterizada pelo ganho K e um observador de estado
caracterizado pelo ganho L, verifique que o sistema fornecido pela funo reg ser
x e = ( A BK LC + LDK ) x e + L y
u = K xe

2. Considerando o sistema do exemplo acima compare a evoluo do sistema realimentado para a


condio inicial x 0 = [1 2] T nas seguintes situaes
a) realimentao obtida a partir do observador de estado
b) realimentao obtida directamente a partir do estado (suposto acessvel)

Comente os resultados.

FEUP - DEEC

ACM, 2003