You are on page 1of 13

Discretizar sistema:

Ex:

[ ][

][ ] [ ]

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

[]

y=[ 1 2]

x1
x2

h=0,1
no
>>
>>
>>
>>

MatLab:
A= [-1 0; 0 -3];
B = [4; 5];
C=[1 2];
[Phi, Gama] = c2d(A,B,0.1)

Phi =
0.9048
0

0
0.7408

Gama =
0.3807
0.4320
Resposta:

] [ ]
[ ]

x1 ( k +1)
x (k )
=Phi 1
+Gamau(tk )
x 2 ( k +1)
x 2 (k )
y (k )=C

x 1(k )
x 2 (k )

Compensador por retroao de estados:


u

M
U
X

A/D

m(k) = A.x1(k)+
B.x2(k)+C.R(k)
h=0,1

D/A

[ ] [ ][ ] [ ]

x1
x
= 1 2 1 + 1 u
0 3 x 2
3
x2
1
y=[ 45][ x 1 X 2 ]
x1

x2

Encontre A,B e C para o sistema ser estvel


(ver auto valores (polos do sistema) para saber a estabilidade)
No
>>
>>
>>

MatLab
A=[1 2; 0 -3];
B=[1;3];
C=[4 5];

>> [Phi, Gama]=c2d(A,B,0.1)


Phi =
1.1052
0

0.1822
0.7408

Gama =
0.1333
0.2592
>> eig(Phi)
ans =
1.1000
0.7400
>> % instvel pois os polos tem mdulo > que 1
>> % Desejo lambda1 = 0,3; lambda2 = 0,74
>> [K] = acker(Phi,Gama,[0.3 0.7])
K =
3.4054

1.5122

>> % O acker calcula o ganho para que os polos do sistema caiam no


ponto escolhido e ele calcula p realimentao (conferir qual a
realim do sistema; no caso do ex + logo temos q inverter o
sinal)
Resposta:
u

qqr

M
U
X

A/D

m(k) = A.x1(k)+
B.x2(k)+C.R(k)
h=0,1

D/A

[ ] [ ][ ] [ ]

x1
x
= 1 2 1 + 1 u
0 3 x 2
3
x2
1
y=[ 45][ x 1 X 2 ]
x1

x2

-1,52
-3,41
C s influencia no Ess portanto pode ser qualquer valor

Transformada Z Inversa:
*1 Caso Existncia de Zero(oposto de polo) em Zero (0)
N ( z )=

z( z0,3)
( z0,4)( z+1,2)

N (z )
( z 0,3)
0,0625
0,9375
=
Aplicando Fraes Parciais
+
z
( z0,4)(z +1,2)
z 0,4
z +1,2
0,0625z
0,9375z
N (z )=
+
z0,4
z+1,2
Aplicando Transf Z inversa
n( k )=0,625( 0,4)k +0,9375(1,2)k para k 0
..=1 cte
Obs no (..) k se ..>1 explode
..<1 contido

usando o prog do MatLab p calc o partfrac:


>> partfrac([0.3],[0.4 -1.2], 1, 1)
polos =
-1.2000
0.4000
modulo_dos_polos =
1.2000
0.4000
fase_dos_polos =
3.1416
0
residuos =
0.9375
0.0625
modulo_dos_residuos =
0.9375
0.0625
fase_dos_residuos =
0
0
Observe
a
ordem
correspondente.

dos

polos,

os

resduos

esto

na

ordem

Ex2:
C (z )=

z( z 4)
z0,70,8 j

C (z)
( z4)
2,121,33
2,12+1,33
=
aplicando fraes parciais
+
z
z0,70,8 j
z 1,060,85 z1,06+0,85
z(2,121,33) z( 2,12+1,33)
C (z )=
+
z 1,060,85 z1,06+0,85
C (k )=2,12 %nglo1,33(1,060,85)k +2,12 %nglo+1,33(1,06+0,85)k
C ( k )=2,121,33(1,06)k(k0,85)+2,12+1,33(1,06)k(+k0,85)
C (k )=2,12e j1,331,06 ke k0,85+2,12e j1,331,06ke k0,85
C (k )=2( 2,12)(1,06 k )cos( 0,85k +1,33) para k 0
Formuleta para esta caso :
2residuo polo cos ( fase do polok + fase do resduo cuja parte img positiva)
k

>> partfrac([4],[0.7-0.8*i

0.7+0.8*i], 1, 1)

polos =
0.7000 + 0.8000i
0.7000 - 0.8000i
modulo_dos_polos =
1.0630
1.0630
fase_dos_polos =
0.8520
-0.8520
residuos =
0.5000 + 2.0625i
0.5000 - 2.0625i
modulo_dos_residuos =
2.1222
2.1222
fase_dos_residuos =
1.3330
-1.3330
*2 Caso NO Existncia de Zero(oposto de polo) em Zero (0)
*3 Razes mltiplas

z( z 0,7)
(z1)2(z0,7)
m(z )
z 0,7
1
0
0
=
=
+
+
2
2
z
( z1) ( z0,7) ( z 1) z 1 z 0,7
z
m( z)=
(z1)2
m( z)=

>> partfrac([0.7], [1 1 0.7], 1, 1)


polos =
1.0000
1.0000
0.7000

%(z-1)
%(z-1)^2

modulo_dos_polos =
1.0000
1.0000
0.7000
fase_dos_polos =
0
0
0
residuos =
-0.0000
1.0000
0.0000

%(z-1)^2

modulo_dos_residuos =
0.0000
1.0000
0.0000
fase_dos_residuos =
3.1416
0
0
Sabendo-se que:
u(t)

A/D

m(k) = A.x1(k)+
B.x2(k)+C.R(k)
h=0,1

e u(t) = cos(2t) calcule y(kh)

y(t)
D/A

m(k ) = 0,2m(k1)+0,3m( k2)+0,7u(k )+0,8u( k 1)


C.I m(1) = 0 e m(2) = 0
TRANSFORMADA Z
1
M (z ) = 0,2Z M ( z) + 0,3 Z 2M + 0,7U ( z ) + 0,8Z 1U (z )
1
2
1
M ( z ) [ 1 0,2Z + 0,3 Z ] =U (z ) [ 0,7 + 0,8Z ]
M (z )
0,7+0,8z1
z 2 0,7z 2+0,8z
H ( z )=
=

=
U (z ) 10,2z 1+0,3z2 z 2 z 20,2z+0,3
z(z cos( h))
z 2zcos( h)+1
z(zcos(0,2))
z( z 0,98)
Z ( cos(20,1k )) 2
=Z (cos( h k )) 2
z 2zcos (0,2)+1
z 20,98z +1
Z (cos( h k ))

Y ( z)=

0,7z 2 +0,8z
z( z0,98)
2
2
z 0,2z+0,3 z 20,98z+1

QUESTO DA PROVA
>> p = [1 4 20];
>> roots(p)
ans =
-2.0000 + 4.0000i
-2.0000 - 4.0000i
>> f = zpk([-3], [-12 -2-4*i -2+4*i], 200)
Zero/pole/gain:
200 (s+3)
---------------------(s+12) (s^2 + 4s + 20)
>> F = c2d(f,0.1) % DISCRETIZA F EM SAMPLING 0.1
Zero/pole/gain:
0.66125 (z-0.7408) (z+0.6524)
---------------------------------(z-0.3012) (z^2 - 1.508z + 0.6703)
Sampling time: 0.1
rltool(F) % abre o desenho do rootlocus

v em edit // sisotools
zero/pole/gain // apply //ok

preference

//

options

//

checar

escolher

design

PARAMETROS DO EXERCICIO
clicar
com
botao
direito
requirements// new...

no

desenho

marcar:
damping ration = amortecimento (padrao 0.7)
setting time = tac (colocar o tempo de acomodao * 0.8)
natura frequency = Wn
No caso deste exercicio utilizaremos TAC=10sec (ou 8 no matlab)
e utilizaremos Amortecimento padrao (0.7)

O exercicio pede para compensarmos por PID


Quando
o
SISO
tools
for
executado,

aberta
um
janela
automaticamente nomada de Control and Estimations Tools Manager.
Agora que vamos propriamente adicionar os polos e zeros do PID v
para a aba Compensator Editor// botao direito na janela Dynamics//
add pole/zero
e Adicione os 2 polos e 2 zeros referentes a formula do PID.
Os 2 POLOS so fixos da formula em 0 e em 1 mas no matlab se
coloca 0.0001 e 1.
Os zeros so a gosto do fregues at baterem nos pontos desejados
Voltando para S: Tools // Continuous/Discrete Conversion // Check
Continuos Time // Ok
Agora v em View // Closed Loop Poles

(Para ver a dominancia)

Aps isso, se for dominante, volte no continuous/discrete e va j


janela Control and Estimations Tools Manager e veja o ganho e o
controle.
O exerccio pede erro estacionario 0 para degrau ento v em:
Analysis // Response to Step Command.

Com os valores de PID j definidos devemos encontrar os valores de


P, I* e D*.
Ex.: Controle: 0,12(z-0,68)*(z-0,39)
----------------------z*(z-1)

distribuindo e descartando
a parte inferior, temos:

0,12z + 0,13z + 0,03


ento (P + I* + D*) = 0,12
(P+2D*) = 0,13
D* = 0,03
P = 0,07
I* = 0,02
e no passo 4 do caderno =>
m(K) = (P) E(k) + (I*) E(k) + (D*)*h E(k)
---h
ento m(k)= 0,07E(k) + 0,02 E(k) + 0,03 * 0,1 E(k)
----0,1
rotina no matlab referente a essa conta:
A=[1 1 1 ; 1 0 2 ; 0 0 1 ];
b=[0.12 0.13 0.03]';
x=A\b
os 3 argumentos de x vao dar P, I* e D*

Bode projetar o filtro digita e simular

A Determinar
14
0.1
-6

2
20

200

-40

Rodar o programa newricbode.m


Inserir como o modelo abaixo:
Valores em Radianos[1] ou em Hertz[2]:1
Entre com os Zeros (se tiver): [2]
Entre com os Polos (se tiver): [20 200]
Entre com a taxa de amostragem (opcional): NO PREENCHER AGORA
Entre com o o valor de s (da primeira reta do Bode): 0.1
Entre com o valor em dB de s: -6
Ser gerado uma figura (Figura1) nela, no grfico de magnitude
clicar em data cursor e inserir o data cursor no grfico.
Utilizar a mozinha para arrastar o grfico e o data cursor
para arrastar o ponto at atingir o ponto de -40dB.
Verificar esta frequncia (no caso 1e+5).
2
=h
Utilizar
a
frmula
neste
caso
frequncia ( rad / s)5
2
=1.2566e-005
1000005
Rodar novamente o programa newricbode.m
Valores em Radianos[1] ou em Hertz[2]:1
Entre com os Zeros (se tiver): [2]
Entre com os Polos (se tiver): [20 200]
Entre com a taxa de amostragem (opcional): 1.2566e-005
Entre com o o valor de s (da primeira reta do Bode): 0.1
Entre com o valor em dB de s: -6
Multiz =
-2
Multip =
4000

ans =
-5.0000e-004
K =
-1.0024e+003
FT DO FILTRO: G(s)
Zero/pole/gain:
-1002.3745 (s-2)
---------------(s-200) (s-20)
FT DISCRETA DO FILTRO: G(z)
Conferir
com
o
RLTOOL
Conversions...
Zero/pole/gain:
-0.012613 (z-1)
--------------(z-1.003) (z-1)

em

Tools>Continuous/Discrete

Sampling time: 1.2566e-005


ou para a FUNCAO RECURSIVA:
Transfer function:
-0.01261 z^-1 + 0.01261 z^-2
---------------------------1 - 2.003 z^-1 + 1.003 z^-2
Sampling time: 1.2566e-005
Calcular na mo como segue abaixo:
Y ( z) 0.1261 z1+0.1261 z2
=
U ( z) 12.003 z1+1.003 z2
Y ( z )(12.003 z 1+1.003 z 2 )=U ( z )(0.1261 z 1 +0.1261 z2)
Y ( k )2.003Y ( k 1)+1.003Y (k 2)=0.1261U (k 1)+0.1261U (k 2)
R : Y (k )=+2.003Y (k 1)1.003Y (k 2)0.1261U ( k 1)+0.1261U ( k2)
Para simular:
u(k)

z-1

u(k-1)

-0.1261

y(k)

z-1

y(k-1)

z-1

y(k-2)

u(k-1)
z-1

u(k-2)

+0.1261

2.003

-1.003

Para montar a funo de bode utilizando uma funo de


tranferencia:
Zero/pole/gain:
30 (s+1)
-----------(s+7) (s+50)
caso ele s somente a funo de trf
30 (s+1)
-----------(s+7) (s+50)
pegar o ponto mais prx da origem
(no caso 1)
dividir por 10
aplicar na formula

ex:

20*log10(abs(ganho*P(a+zeros)/(P*(a+polos)))
no nosso caso
20*log10(abs(30*(s+1)/((s+7)*(s+50)))
no nosso caso
20*log10(abs(30*(0.1+1)/((0.1+7)*(0.1+50)))= -20,6 (ponto inicial)

Aplique um degrau e calcule:


u(t)

E(k) m(k) = 0,6m(k-1)+ m(k)


D/A
A/D
8E(k)+6,73E(k-1)
h=0,1

y(t)

m( z)=0,6 mz 1+8E ( z )+6,73Ez 1


m( z )0,6 mz 1=+8E ( z)+6,73Ez 1
m( z )(10,6z1)=E (z )(8+6,73z1)
( 8+6,73z 1 )
m(z )=
E( z )
(10,6z 1 )
1
comou (t)= 0 para t 0 Z ( u(t ))=
1 para t > 0
z 1
1
1
(8+6,73z )
z
z
m( z)=

multiplicar por 1 para eliminar o z1


1
(10,6z ) z1
z
(8z +6,73)
z
m( z )=

(1z 0,6) z 1
6,73
8 z+
8
m( z )
=
z
(1z 0,6)( z1)

Via MatLab
6.73/8
ans =
0.8413
>> partfrac([-0.8413], [0.6 1], 8)
polos =
1.0000
0.6000
modulo_dos_polos =
1.0000
0.6000
fase_dos_polos =
0
0
residuos =
36.8260
-28.8260
modulo_dos_residuos =
36.8260
28.8260
fase_dos_residuos =
0
3.1416
m( z ) 36.8260 28.8260
=
+
z
( z1)
(z 0,6)
36.8260z 28.8260z
m( z)=
+
( z 1)
(z 0,6)

36.8260z
=36.8260
( z 1)
28.8260z
Z 1
=28.8260(+0,6)k
( z 0,6)
y (k )=36.826028.8260(+0,6)k
..=1 cte
Obs no(..) k se ..>1 explode
..<1 contido
Z 1

You might also like