Anda di halaman 1dari 35

CAP 18 - ANLISE E PROJETO DE SISTEMAS DE CONTROLE NO ESPAO-DE-ESTADO

AULA - 16/10/2014

AULA - 06/11/2014
>> g=rss (3)

g=

a=
x1

x2

x3

x1 -13.1 -5.844 5.789


x2 -5.844 -16.26 -5.35
x3 5.789 -5.35 -7.65

b=
u1
x1 -1.207
x2 0.7172
x3 1.63

c=
x1

x2

x3

y1 0.4889 1.035 0.7269

d=
u1
y1 -0.3034

Continuous-time state-space model.

>> [nun,dem]=ss2tf(A,B,C,D,1)

>> [nun,dem]=ss2tf(g.a, g.b, g.c, g.d, 1)

nun =

-0.3034 -9.8931 -74.5128 7.2078

dem =

1.0000 37.0083 341.2709 86.0109

>> g2=tf(nun,dem)

g2 =

-0.3034 s^3 - 9.893 s^2 - 74.51 s + 7.208


----------------------------------------s^3 + 37.01 s^2 + 341.3 s + 86.01

Continuous-time transfer function.

>> step(g,g2)
>>

>>

Desloca o Grfico

Did you mean:


>> [A,B,C,D]=tf2ss(nun,dem)

A=

-37.0083 -341.2709 -86.0109


1.0000

B=

1
0
0

0 1.0000

C=

1.3368 29.0428 33.3070

D=

-0.3034

>>

g.a diferente de A
>> A==g.a

ans =

>> g.a

ans =

-13.0980 -5.8441 5.7893


-5.8441 -16.2606 -5.3504
5.7893 -5.3504 -7.6497

g.d = D
>> D==g.d

ans =

D=

-0.3034

>> g.d

ans =

-0.3034

Criando g3

>> g3=ss(A,B,C,D)

g3 =

a=
x1

x2

x3

x1 -37.01 -341.3 -86.01


x2

x3

b=
u1
x1 1
x2 0
x3 0

c=
x1

x2

x3

y1 1.337 29.04 33.31

d=
u1
y1 -0.3034

Continuous-time state-space model.

>>

Av1 = Av3 auto valor


>> Av1=eig(g.a)

Av1 =

-0.8480
-0.9704
-0.4211

>> Av3=eig(g3.a)

Av3 =

-0.9704
-0.8480
-0.4211

Seleciona 1 valor na posio linha 1 coluna 1


>> Av1(1,1)

ans =

-0.8480

Criando Matriz T ou P
>> T=[1 1 1; Av1(1,1) Av1(2,1) Av1(3,1);Av1(1,1)^2 Av1(2,1)^2 Av1(3,1)^2]

T=

1.0000 1.0000 1.0000


-0.8480 -0.9704 -0.4211
0.7191 0.9417 0.1773

>>

Criando G4
.

-1
z = [TAT ] z + [TB] u
-1
y = [CT ] z + D u

>> g4=ss2ss(g3,T^-1)

g4 =

a=
x1

x2

x3

x1 -1.474 -0.04924 -5.809


x2 0.2003 -0.9971

3.945

x3 0.1324 0.02209 0.2318

b=
u1
x1 -7.821
x2 5.311
x3 3.509

c=
x1

x2

x3

y1 -0.0152 -0.01181 -0.01809

d=
u1
y1 0

Continuous-time state-space model.

Auto valores de G4 so = aos dos outros Gs


>> eig(g4.a)

ans =

-0.4211
-0.8480
-0.9704

Obs: Matriz de Jordan


>> g4=ss2ss(g3,T)

g4 =

a=
x1

x2

x3

x1 5.351 19.21 13.49


x2 -1.313 -4.973 -2.747
x3 -0.7701 -2.339 -2.618

b=
u1
x1

x2 -0.848
x3 0.7191

c=
x1

x2

x3

y1 0.4118 1.275 0.921

d=
u1
y1 0

Continuous-time state-space model.

Diagoniza a Matriz
>> g5=canon(g4,'modal')

g5 =

a=
x1
x1 -0.4211

x2

x3
0

x2

0 -0.848

x3

b=
u1
x1 -2.267
x2 12.2
x3 11.12

0 -0.9704

c=
x1

x2

x3

y1 -0.03626 0.003826 -0.01225

d=
u1
y1 0

OU checar Observabilidade e Controlabilidade por

>> co=ctrb(g5)

co =

-2.2673 0.9548 -0.4021


12.1962 -10.3423 8.7702
11.1202 -10.7910 10.4715

>> rank (co)

ans =

>> rank (obsv(g5))

ans =

AULA - 20/11/2014

Cap12p1
% Nise, N.S.
% Ttulo original em ingls
% Control Systems Engineering, 3rd ed.
% Copyright 2000 by John Wiley & Sons, Inc.
% Engenharia de Sistemas de Controle - 3a. ed.
% Direitos exclusivos para a lngua portuguesa
% Copyright 2002 by
% LTC - Livros Tcnicos e Cientficos Editora S.A.
%
% Control Systems Engineering Toolbox Verso 3.0
%
% Traduo: Bernardo Severo da Silva Filho MSc.
%
Coordenador do Curso de Ps-Graduao "lato sensu" em
Engenharia Mecatrnica da
%
Faculdade de Engenharia da UERJ
%
% Captulo 12:Projeto via Espao de Estados
% (cap12p1) (Exemplo 12.1) Podemos usar o MATLAB para projetar os
ganhos do controlador atravs
% da alocao de plos. Voc dever entrar com os valores desejados de
ultrapassagem percentual
% e de tempo de assentamento. Apresentamos os seguintes comandos:
[num,den] = ord2(wn,z), que produz
% um sistema de segunda ordem, dados os valores de freqncia natural
(wn) e de relao de
% amortecimento (z). Em seguida usamos o denominador (den) para
especificar os plos dominantes;
% e K = acker(A,B,polos), que calcula os ganhos do controlador a
partir da matriz de sistema (A),
% da matriz de entrada (B) e dos plos desejados (polos). Vejamos o
Exemplo 12.1 do texto.
%
'(cap12p1) Exemplo 12.1'
% Exibe ttulo.
clf
% Apaga grficos existentes na
tela.
numg=[20 100];
% Define o numerador de G(s).
deng=poly([0 -1 -4]);
% Define o denominador de G(s).
' G(s) sem Compensao'
% Exibe ttulo.
G=tf(numg,deng)
% Cria e mostra G(s).
up=input('Digite o valor desejado de %UP')
% Entra com o valor
desejado de ultrapassagem percentual.
Ts=input('Digite o valor desejado de tempo de assentamento')
% Entra com o valor desejado de
tempo de assentamento.
z=(-log(up/100))/(sqrt(pi^2+log(up/100)^2))
% Calcula o valor necessrio da
relao de amortecimento.
wn=4/(z*Ts)
% Calcula o valor necessrio da
freqncia
% natural.

[num,den]=ord2(wn,z)
ordem
r=roots(den)
especificar

% Produz um sistema de segunda


% atende os requisitos
% da resposta transitria.
% Usa o denominador para

% os plos dominantes.
% Especifica a posio de
% todos os plos.
eq_caracteristica_desejada=poly(polos)
% Forma o polinmio caracterstico
% desejado para mostrar na tela.
[Ac Bc Cc Dc]=tf2ss(numg,deng)
% Obtm a representao de G(s) no
espao
% de estados na forma cannica do
controlador.
P=[0 0 1;0 1 0;1 0 0]
% Matriz de Transformao da forma
% cannica do
controlador para
% a forma em variveis
de fase.
Af=inv(P)*Ac*P
% Transforma Ac em Af
% com variveis de fase.
Bf=inv(P)*Bc
% Transforma Bc em Bf
% com variveis de fase.
Cf=Cc*P
% Transforma Cc em Cf
% com variveis de fase.
Df=Dc;
% Transforma Dc em Df
% com variveis de fase.
Kf=acker(Af,Bf,polos)
% Calcula os ganhos do controlador
na
% representao em variveis de
fase.
Afnova=Af-Bf*Kf
% Forma a matriz A compensada.
Bfnova=Bf
% Forma a matriz B compensada.
Cfnova=Cf
% Forma a matriz C compensada.
Dfnova=Df
% Forma a matriz D compensada.
[numt,dent]=ss2tf(Afnova,Bfnova,Cfnova,Dfnova)
% Forma o numerador e o
% denominador de T(s).
'T(s)'
% Exibe ttulo.
T=tf(numt,dent)
% Cria e mostra T(s).
polos=roots(dent)
% Exibe os plos de T(s).
Tss=ss(Afnova,Bfnova,Cfnova,Dfnova) % Cria e mostra Tss, um objeto LIT
% no espao de estados.
step(Tss)
% Produz a resposta ao degrau do
sistema compensado.
title('Resposta ao Degrau do Sistema Compensado')
%rlocus(Tss)
% Adiciona legenda resposta
ao degrau
% do sistema compensado.
pause
polos=[r(1) r(2) -5]

Resoluo do exemplo: Mp=9.5 ts=0.74


>> cap12p1

ans =

(cap12p1) Exemplo 12.1

ans =

G(s) sem Compensao

G=

20 s + 100
----------------s^3 + 5 s^2 + 4 s

Continuous-time transfer function.

Digite o valor desejado de %UP 9,5


Error using cap12p1 (line 31)
Error: Unexpected MATLAB expression.

Digite o valor desejado de %UP9.5

up =

9.5000

Digite o valor desejado de tempo de assentamento0.74

Ts =

0.7400

z=

0.5996

wn =

9.0147

num =

den =

1.0000 10.8108 81.2645

r=

-5.4054 + 7.2143i
-5.4054 - 7.2143i

polos =

-5.4054 + 7.2143i -5.4054 - 7.2143i -5.0000 + 0.0000i

eq_caracteristica_desejada =

1.0000 15.8108 135.3186 406.3226

Ac =

-5 -4

Bc =

1
0
0

Cc =

0 20 100

Dc =

P=

Af =

0 -4 -5

Bf =

0
0
1

Cf =

100 20

Kf =

406.3226 131.3186 10.8108

Afnova =

0 1.0000
0

0 1.0000

-406.3226 -135.3186 -15.8108

Bfnova =

0
0
1

Cfnova =

100 20

Dfnova =

numt =

dent =

0 20 100

1.0000 15.8108 135.3186 406.3226

ans =

T(s)

T=

20 s + 100
--------------------------------s^3 + 15.81 s^2 + 135.3 s + 406.3

Continuous-time transfer function.

polos =

-5.4054 + 7.2143i
-5.4054 - 7.2143i
-5.0000 + 0.0000i

Tss =

a=
x1

x2

x3

x1

x2

x3 -406.3 -135.3 -15.81

b=
u1
x1 0
x2 0
x3 1

c=
x1 x2 x3
y1 100 20 0

d=
u1
y1 0

Continuous-time state-space model.

MP = 9.5 e Tr =1 s
% Nise, N.S.
% Ttulo original em ingls
% Control Systems Engineering, 3rd ed.
% Copyright 2000 by John Wiley & Sons, Inc.
% Engenharia de Sistemas de Controle - 3a. ed.
% Direitos exclusivos para a lngua portuguesa
% Copyright 2002 by
% LTC - Livros Tcnicos e Cientficos Editora S.A.
%
% Control Systems Engineering Toolbox Verso 3.0
%
% Traduo: Bernardo Severo da Silva Filho MSc.
%
Coordenador do Curso de Ps-Graduao "lato sensu" em
Engenharia Mecatrnica da
%
Faculdade de Engenharia da UERJ
%
% Captulo 12:Projeto via Espao de Estados
% (cap12p1) (Exemplo 12.1) Podemos usar o MATLAB para projetar os
ganhos do controlador atravs
% da alocao de plos. Voc dever entrar com os valores desejados de
ultrapassagem percentual
% e de tempo de assentamento. Apresentamos os seguintes comandos:
[num,den] = ord2(wn,z), que produz
% um sistema de segunda ordem, dados os valores de freqncia natural
(wn) e de relao de
% amortecimento (z). Em seguida usamos o denominador (den) para
especificar os plos dominantes;
% e K = acker(A,B,polos), que calcula os ganhos do controlador a
partir da matriz de sistema (A),
% da matriz de entrada (B) e dos plos desejados (polos). Vejamos o
Exemplo 12.1 do texto.
%
'(cap12p1) Exemplo 12.1'
% Exibe ttulo.
clf
% Apaga grficos existentes na
tela.
numg=[20 100];
% Define o numerador de G(s).
deng=poly([0 -1 -4]);
% Define o denominador de G(s).
' G(s) sem Compensao'
% Exibe ttulo.
G=tf(numg,deng)
% Cria e mostra G(s).
up=input('Digite o valor desejado de %UP')
% Entra com o valor
desejado de ultrapassagem percentual.
%Ts=input('Digite o valor desejado de tempo de assentamento')

tr=input('Digite o valor
desejado de tempo de r')
% Entra com o valor desejado de
tempo de assentamento.
z=(-log(up/100))/(sqrt(pi^2+log(up/100)^2))
% Calcula o valor necessrio da
relao de amortecimento.

beta = acos (z);

wn= (pi-beta)/(tr * sqrt (1-z^2))


%Wn=4/(z*Ts)
% Calcula o valor
necessrio da freqncia
[num,den]=ord2(wn,z)
ordem
r=roots(den)
especificar

% natural.
% Produz um sistema de segunda
% atende os requisitos
% da resposta transitria.
% Usa o denominador para

% os plos dominantes.
% Especifica a posio de
% todos os plos.
eq_caracteristica_desejada=poly(polos)
% Forma o polinmio caracterstico
% desejado para mostrar na tela.
[Ac Bc Cc Dc]=tf2ss(numg,deng)
% Obtm a representao de G(s) no
espao
% de estados na forma cannica do
controlador.
P=[0 0 1;0 1 0;1 0 0]
% Matriz de Transformao da forma
% cannica do
controlador para
% a forma em variveis
de fase.
Af=inv(P)*Ac*P
% Transforma Ac em Af
% com variveis de fase.
Bf=inv(P)*Bc
% Transforma Bc em Bf
% com variveis de fase.
Cf=Cc*P
% Transforma Cc em Cf
% com variveis de fase.
Df=Dc;
% Transforma Dc em Df
% com variveis de fase.
Kf=acker(Af,Bf,polos)
% Calcula os ganhos do controlador
na
% representao em variveis de
fase.
Afnova=Af-Bf*Kf
% Forma a matriz A compensada.
Bfnova=Bf
% Forma a matriz B compensada.
Cfnova=Cf
% Forma a matriz C compensada.
Dfnova=Df
% Forma a matriz D compensada.
[numt,dent]=ss2tf(Afnova,Bfnova,Cfnova,Dfnova)
% Forma o numerador e o
% denominador de T(s).
'T(s)'
% Exibe ttulo.
T=tf(numt,dent)
% Cria e mostra T(s).
polos=roots(dent)
% Exibe os plos de T(s).
Tss=ss(Afnova,Bfnova,Cfnova,Dfnova) % Cria e mostra Tss, um objeto LIT
% no espao de estados.
step(Tss)
% Produz a resposta ao degrau do
sistema compensado.
title('Resposta ao Degrau do Sistema Compensado')
%rlocus(Tss)
% Adiciona legenda resposta
ao degrau
% do sistema compensado.
pause
polos=[r(1) r(2) -5]

Alterando a GS = (20 S + 100 ) / (S (S+1) * (S+4)) mantendo MP = 9.5 e Tr


=1 s

% e K = acker(A,B,polos), que calcula os ganhos do controlador a


partir da matriz de sistema (A),
% da matriz de entrada (B) e dos plos desejados (polos). Vejamos o
Exemplo 12.1 do texto.
%
'(cap12p1) Exemplo 12.1'
% Exibe ttulo.
clf
% Apaga grficos existentes na
tela.

numg=[0 20];%numg=[20 100];


Define o numerador de G(s).

deng=poly([0 -1 -4]);
% Define o denominador de G(s).
' G(s) sem Compensao'
% Exibe ttulo.
G=tf(numg,deng)
% Cria e mostra G(s).
up=input('Digite o valor desejado de %UP')
% Entra com o valor
desejado de ultrapassagem percentual.
%Ts=input('Digite o valor desejado de tempo de assentamento')

tr=input('Digite o valor desejado de tempo de r')


% Entra com o valor desejado de
tempo de assentamento.
z=(-log(up/100))/(sqrt(pi^2+log(up/100)^2))
% Calcula o valor necessrio da
relao de amortecimento.
beta = acos (z);
wn= (pi-beta)/(tr * sqrt (1-z^2)) %Wn=4/(z*Ts)
% Calcula o valor necessrio da freqncia
% natural.
[num,den]=ord2(wn,z)
% Produz um sistema de segunda
ordem
% atende os requisitos
% da resposta transitria.
r=roots(den)
% Usa o denominador para
especificar
% os plos dominantes.

polos=[r(1) r(2) -1000]%


polos=[r(1) r(2) -5]
% Especifica a posio de
% todos os plos.
eq_caracteristica_desejada=poly(polos)
% Forma o polinmio caracterstico
% desejado para mostrar na tela.
[Ac Bc Cc Dc]=tf2ss(numg,deng)
% Obtm a representao de G(s) no
espao
% de estados na forma cannica do
controlador.
P=[0 0 1;0 1 0;1 0 0]
% Matriz de Transformao da forma
% cannica do
controlador para
% a forma em variveis
de fase.
Af=inv(P)*Ac*P
% Transforma Ac em Af
% com variveis de fase.
Bf=inv(P)*Bc
% Transforma Bc em Bf
% com variveis de fase.
Cf=Cc*P
% Transforma Cc em Cf
% com variveis de fase.
Df=Dc;
% Transforma Dc em Df
% com variveis de fase.
Kf=acker(Af,Bf,polos)
% Calcula os ganhos do controlador
na
% representao em variveis de
fase.
Afnova=Af-Bf*Kf
% Forma a matriz A compensada.
Bfnova=Bf
% Forma a matriz B compensada.
Cfnova=Cf
% Forma a matriz C compensada.
Dfnova=Df
% Forma a matriz D compensada.
[numt,dent]=ss2tf(Afnova,Bfnova,Cfnova,Dfnova)
% Forma o numerador e o
% denominador de T(s).
'T(s)'
% Exibe ttulo.
T=tf(numt,dent)
% Cria e mostra T(s).
polos=roots(dent)
% Exibe os plos de T(s).
Tss=ss(Afnova,Bfnova,Cfnova,Dfnova) % Cria e mostra Tss, um objeto LIT
% no espao de estados.

step(Tss)
% Produz a resposta ao degrau do
sistema compensado.
title('Resposta ao Degrau do Sistema Compensado')
%rlocus(Tss)
% Adiciona legenda resposta
ao degrau
% do sistema compensado.
pause

Anda mungkin juga menyukai