AULA - 16/10/2014
AULA - 06/11/2014
>> g=rss (3)
g=
a=
x1
x2
x3
b=
u1
x1 -1.207
x2 0.7172
x3 1.63
c=
x1
x2
x3
d=
u1
y1 -0.3034
>> [nun,dem]=ss2tf(A,B,C,D,1)
nun =
dem =
>> g2=tf(nun,dem)
g2 =
>> step(g,g2)
>>
>>
Desloca o Grfico
A=
B=
1
0
0
0 1.0000
C=
D=
-0.3034
>>
g.a diferente de A
>> A==g.a
ans =
>> g.a
ans =
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
x3
b=
u1
x1 1
x2 0
x3 0
c=
x1
x2
x3
d=
u1
y1 -0.3034
>>
Av1 =
-0.8480
-0.9704
-0.4211
>> Av3=eig(g3.a)
Av3 =
-0.9704
-0.8480
-0.4211
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=
>>
Criando G4
.
-1
z = [TAT ] z + [TB] u
-1
y = [CT ] z + D u
>> g4=ss2ss(g3,T^-1)
g4 =
a=
x1
x2
x3
3.945
b=
u1
x1 -7.821
x2 5.311
x3 3.509
c=
x1
x2
x3
d=
u1
y1 0
ans =
-0.4211
-0.8480
-0.9704
g4 =
a=
x1
x2
x3
b=
u1
x1
x2 -0.848
x3 0.7191
c=
x1
x2
x3
d=
u1
y1 0
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
d=
u1
y1 0
>> co=ctrb(g5)
co =
ans =
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
% 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]
ans =
ans =
G=
20 s + 100
----------------s^3 + 5 s^2 + 4 s
up =
9.5000
Ts =
0.7400
z=
0.5996
wn =
9.0147
num =
den =
r=
-5.4054 + 7.2143i
-5.4054 - 7.2143i
polos =
eq_caracteristica_desejada =
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 =
Afnova =
0 1.0000
0
0 1.0000
Bfnova =
0
0
1
Cfnova =
100 20
Dfnova =
numt =
dent =
0 20 100
ans =
T(s)
T=
20 s + 100
--------------------------------s^3 + 15.81 s^2 + 135.3 s + 406.3
polos =
-5.4054 + 7.2143i
-5.4054 - 7.2143i
-5.0000 + 0.0000i
Tss =
a=
x1
x2
x3
x1
x2
b=
u1
x1 0
x2 0
x3 1
c=
x1 x2 x3
y1 100 20 0
d=
u1
y1 0
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.
% 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]
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')
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