Professional Documents
Culture Documents
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 )
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
MatLab
A=[1 2; 0 -3];
B=[1;3];
C=[4 5];
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
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
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)=
%(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
y(t)
D/A
=
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)
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
distribuindo e descartando
a parte inferior, temos:
A Determinar
14
0.1
-6
2
20
200
-40
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
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
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)
y(t)
(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