Uploaded by User5370

AyrikKontrol.ipynb - Colaboratory

advertisement
Ayrık Kontrol Sistemleri Ders Notu
Hazırlayan: Dr.Öğr. Üyesi Musa Nurullah Yazar
İÇERİK
1. Ayrık Zaman Sistemler ve Matematiksel Temeller
2. Ayrık Zaman Sistemlerin Analizi
3. Ayrık Zaman Açık Çevrim, Kapalı Çevrim Kontrol Sistemleri
4. Ayrık Zaman Kontrolör Tasarımı
1. Ayrık Zaman Sistemler ve Matematiksel Temeller
1.1 Sürekli Zaman ve Ayrık Zaman Sinyaller
−2t
f (t) = e
−2kT
→ f (kT ) = f (k) = e
Eğer T (örnekleme periyodu) 0.1 sn olarak seçilirse;
/
−0.2k
f (k) = e
1.2 Ayrık Zamanda Temel Test Sinyalleri
1.3 Sürekli Zaman Sistemlerden Ayrık Zaman Sistemlere Geçiş
Sürekli Zaman Sistemler:
/
Doğrusal / Doğrusal Olmayan
Zamanla Değişmeyen / Zamanla Değişen
1.3.1 Birinci Dereceden Fark Denklemleri
Doğrusal zamanla değişmeyen birinci dereceden bir sistem örneğini ele alalım
dy(t)
+ 2y(t) = 3u(t)
dt
Transfer Fonksiyonu:
U (s) →
G(s)
→ Y (s)
Burada G(s)'i bulmak için diferansiyel denkleme Laplace dönüşümü uygulanırsa:
Y (s)
sY (s) + 2Y (s) = 3U (s) → G(s) =
3
=
s + 2
U (s)
Sistemin Ayrık Zaman Modeli elde edilirken diferansiyel denklemdeki türev ifadeleri İleri Fark Yöntemi, Geri Fark Yöntemi veya Merkezi Fark
Yöntemi (Bilineer Dönüşüm-Tustin Algoritması yöntemlerinden biri seçilerek fark denklemine dönüştürülür.
Eğer İleri Fark Yöntemini kullanırsak
dy(t)
y[(k + 1)T ] − y(kT )
|
dt
t=kT
≅
y(k + 1) − y(k)
=
T
T
Bulduğumuz ifadeyi denklemde yerine koyup düzenlersek
y(k + 1) = (1 − 2T )y(k) + 3T u(k) → k = 0, 1, 2, . . .
Elde ettiğimiz fark denklemindeki çıkış sinyalini python ortamında çizdirebiliriz.
import numpy as np
import matplotlib.pyplot as plt
T=0.3 # örnekleme zamanı
k=50
u=np.ones(k) # giriş işareti; birim basamak fonksiyonu
y=np.zeros(k) # çıkış işareti ilk değer atama
print(y[49])
for i in range(k-1):
y[i+1] = (1-2*T)*y[i] + 3*T*u[i]
/
y[i+1]
(1 2 T) y[i] + 3 T u[i]
plt.plot(y)
plt.xlabel('k')
plt.ylabel('y(k)')
plt.show
0.0
<function matplotlib.pyplot.show>
1.3.2 İkinci Dereceden Fark Denklemleri
d
2
y(t)
dy(t)
+ 2ξωn
dt
dy(t)
= q(k)
dt
2
T
y(t)
dq(k)
≅
dt
2
y(k + 1) − y(k)
≅
d
2
+ ωn y(t) = ωn u(t)
dt
q(k + 1) − q(k)
=
dt
T
/
d
2
y(t)
y(k + 2) − 2y(k + 1) + y(k)
≅
dt
T
2
Elde ettiğimiz türev ifadelerini denklemde yerine koyup düzenlersek
2
y(k + 2) = (2 − 2ξωn T )y(k + 1) + (2ξωn T − 1 − ωn T
2
2
)y(k) + ωn T
2
u(k)
Denklemdeki ξ modellenen sistemin sönüm oranını, ωn ise doğal frekansını verir.
u(k) birim basamak fonksiyonu, y(0)=0, T=0.1, xi =0.5, w_n=1 olmak üzere y fonksiyonunu çizdirin.
Nasıl bir y sinyali tahmin ediyorsunuz?
Farklı örnekleme zamanları (T=0.4, T=1, T=5) ile sonuçları elde ediniz
Farklı örneklme zamanlarında sonuç nasıl değişti, yorumlayın
import numpy as np
import matplotlib.pyplot as plt
# İkinci dereceden fark denklemi
# y(k+2) = (2-2*xi*w_n*T)*y(k+1)+(2*xi*w_n*T-1-w_n^2*T^2)*y(k)+w_n^2*T^2*u(k)
# u(kT)=u(k) birim basamak fonksiyonu u(k)=1, k=0,1,2,..
# T: örnekleme periyodu
T=1
k=200
u=np.ones(k)
y=np.zeros(k)
xi = 0.4 #sönüm oranı
w_n = 0.2 #doğal frekans
# python'da bir sayının n. dereceden kuvveti x**n ile hesaplanır
# veya math kütüphanesi "import" edilip math.pow(x,n) ile de hesaplanabilir.
for i in range(k-2):
'''KODU TAMAMLA !'''
plt.plot(y)
plt.xlabel('k')
plt ylabel('y(k)')
/
plt.ylabel('y(k)')
plt.show
<function matplotlib.pyplot.show>
1.4 Matematiksel Temeller (Z-Dönüşümü)
1.4.1 Z-Dönüşümü
1.4.2 Z-Dönüşümü Özellik ve Teoremleri
1.4.3 Ters Z Dönüşümü
1.4.4 Fark Denklemlerinin Z-Dönüşümü ile Çözümü
1.4.5 Ayrık Zaman Transfer Fonksiyonu
1.4.1 Z-Dönüşümü
Sürekli zamanda doğrusal diferansiyel denklemlerin çözümünde Laplace dönüşümü kullanılırken, ayrık zamanda fark denklemlerinin
çözümünde Z-Dönüşümü kullanılır. Z-dönüşümü fark denklemlerini cebirsel hale getirir. Ayrık zaman bir sinyalin, y(k), tek yönlü (0
→ ∞
)Z
Dönüşümü sürekli zaman sinyalinin Laplace dönüşümünün örneklemiş ifadesinden elde edilir.
∞
Y
∗
−skT
(s) = ∑ y(k)e
k=0
/
Burada
sT
z = e
olarak tanımlanır ve kompleks bir değişkendir. Ayrık bir sinyalin Z dönüşümü aşağıdaki gibi elde edilir.
∞
Z {Y (k)} = Y (z) = ∑ y(k)z
−k
k=0
Yukarıdaki denklem sonsuza giden bir seriyi ifade eder ve seriler belirli koşullarda bir değere yakınsar. Çoğu seri aşağıdaki açılımla ifade
edilebilinir.
∞
∑q
n
= 1 + q + q
2
+ q
3
+ ⋯ + q
n
1
=
, |q| < 1
1 − q
n=0
Yukarıdaki denklem her iki taraftan q ile çarpılırsa;
∞
q∑q
n
= q + q
2
+ q
3
+ ⋯ + q
n+1
n=0
Elde ettiğimiz denklemi bir öncekinden çıkarırsak;
∞
∞
∑q
n
− q∑q
n=0
∑q
n
1 − q
n+1
n+1
=
1 − q
n=0
< 1
= 1 − q
n=0
∞
Eğer |q|
n
ise bu seri
∞
∑q
n=0
n
1
=
1 − q
'e yakınsar.
Örnek 1.4.1: Birim basamak fonksiyonunun Z dönüşümü:
u(kT ) = u(k) = (1)
k
/
∞
U (z) = Z {u(kT )} = ∑ u(k)z
−k
= u(0)z
0
+ u(1)z
−1
+ u(2)z
−2
+ …
k=0
∞
U (z) = ∑(z
−1
)
k
= 1 + z
−1
+ z
−2
+ z
−3
+ …
k=0
|z
−1
1
| < 1 → U (z) =
1 − z
Örnek 1.4.2: y(t)
−at
= e
z
=
−1
z − 1
Eksponensiyel Fonksiyon'un Z dönüşümü
∞
−at
Y (z) = Z {e
∞
−akT
} = ∑e
z
−k
−aT
= ∑(e
k=0
|e
z
−1
−aT
| < 1 → ∑(e
z
−1
−1
)
k
k=0
∞
−aT
z
)
k
1
=
−aT
1 − e
k=0
z
−1
z
=
−aT
z − e
1.4.2 Z Dömüşümü Özellikleri ve Teoremleri
Teorem 1: Doğrusallık
Z {ay 1 (kT ) ± by 2 (kT )} = aY1 (z) ± bY2 (z)
Teorem 2: Zamanda Gecikme (Sağa Kaydırma)
Z {y(kT − n)} = z
−n
Y (z)
∞
∞
Z {y(kT − n)} = Z {y(k − n)} = ∑ y(k − n)z
−k
= z
−n
k=0
∑ y(k − n)z
−(k−n)
k=0
∞
q = k − n → z
−n
∑ y(q)z
−(q)
= z
−n
Y (z)
k=0
başlangıç değerleri sıfırdan farklı ise
/
−n
Z {y(k + n)} = z
−n
[Y (z) + ∑ y(k)z
−k
]
k=−1
Teorem 3: Zamanda Öngörü (Sola Kaydırma)
n
Z {y(k + n)} = z
Y (z)
başlangıç değerleri sıfırdan farklı ise
n−1
Z {y(k + n)} = z
n
[Y (z) − ∑ y(k)z
−k
]
k=0
Teorem 4: Son Değer Teoremi
y(∞) = limz→1 (z − 1)Y (z)
Teorem 5: Kompleks Türev (t ile çarpma)
d
Z {ty(t)} = −T z
F (z)
dz
Teorem 6: Kompleks İntegral (t'ye bölme)
y(t)
Z{
Y (z)
1
} = −
t
∫
T
z
Örnek 1.4.3: Rampa fonksiyonunun Z dönüşümü
r(t) = tu(t)
Teorem 5'i kullanırsak
Z {tu(t)} = −T z
d
U (z)
dz
U (z)
'i önceki örnekte bulmuştuk
U (z) =
z
z − 1
d
−1
U (z) =
dz
(z − 1)
2
/
Tz
R(z) = Z {tu(t)} =
(z − 1)
2
olarak bulunur.
Çok Kullanılan Ayrık Zaman Sinyallerin Z Dönüşümü
Analog Fonksiyon
Örneklenmiş Fonksiyon
Z-Dönüşümü
u(t)
u(kT)
z−1
r(t)
tu(kT)
e
e
e
−at
e
sin(wkT)
cos(wt)
cos(wkT)
−at
−akT
sin(wt)
e
cos(wt)
e
−akT
k
Tz
(z−1)
z−e
z
2
−2zcos(wT )+1
z(z−cos(wT ))
z
2
z
2
−2zcos(wT )+1
−2ze
2
−aT
−aT
−ze
−2ze
sin(wT )
cos(wT )+e
−aT
−aT
−2aT
cos(wT )
cos(wT )+e
−2aT
z
k
a u(t)
2
z
cos(wkT )
−aT
zsin(wT )
z
ze
sin(wkT )
2
z
−akT
sin(wt)
−at
z
a u(kT )
z−a
Fark denklemlerinin z-dönüşümünü alma
Örnek 1.4.4:
y(k) − 1.6y(k − 1) + 0.64y(k − 2) = u(k)
y(−1) = 1, y(−2) = 0
ve u(k)
= (0.5)
k
olmak üzere verilen fark denkleminin çözümünü z-dönüşümü kullanarak inceleyiniz.
Başlangıç koşulları dikkate alınmadığında;
Y (z) − 1.6z
u(k)
−1
Y (z) + 0.64z
−2
Y (z) = U (z)
'nın z-dönüşümü:
/
z
U (z) =
z − 5
z
3
Y (z) =
(z − 0.5)(z − 0.8)
2
Başlangıç koşulları dikkate alındığında ise;
Y (z) − 1.6[z
−1
Y (z) + y(−1)] + 0.64[z
−2
Y (z) + z
−1
z
y(−1) + y(−2)] =
z − 0.5
z
Y (z) =
3
(z − 0.5)(z − 0.8)
2
1.6z
+
2
− 0.64z
(z − 0.8)
2
1.4.3 Ters Z Dönüşümü
Ters z-dönüşümü kuvvet serisine açma, kısmi kesirlere ayırma ve rezidü yöntemleri ile hesaplanabilir.
Kuvvet Serisi Yöntemi Bölme işlemi yapılır ve negatif z kuvvetlerinden oluşan bir seri elde edilir.
Örnek 1.4.5:
z
Y (z) =
z
Y (z) = z
−1
+ 3z
−2
2
− 3z + 2
+ 7z
−3
+ 15z
−4
+ …
∞
Y (z) = ∑ y(k)z
−k
k=1
y(k) = 2
k
− 1
Kısmi Kesirlere Ayırma Yöntemi: Verilen ifade basit kesirlere ayrılır, her basit kesrin z-dönüşümü ayru ayrı bulunur. Ancak z dönüşüm tablosuna
bakıldığında z-dönüşümlerinin payında her zaman z çarpanı vardır. Bu nedenle verilen ifade öncelikle z'ye bölünerek kısmi kesirlere ayrılır.
Örnek 1.4.6:
−aT
(1 − e
Y (z) =
)z
−aT
(z − 1)(z − e
)
/
−aT
Y (z)
1 − e
=
z
1
−aT
(z − 1)(z − e
1
=
−
−aT
z − 1
)
z − e
−akT
y(k) = 1 − e
Örnek 1.4.7:
1
Y (z) =
(z − 1)(z − 2)
Y (z)
1
=
z
0.5
=
1
−
z
z(z − 1)(z − 2)
+
z − 1
y(k) = 0.5δ(k) − u(k) + 0.52
0.5
z − 2
k
Örnek 1.4.8:
2z
3
Y (z) =
+ z
2
(z − 2) (z − 1)
Payda kökleri reel ve çakışık olduğundan
Y (z)
2z
=
z
2
+ 1
A
B
=
2
+
z − 1
(z − 2) (z − 1)
2z
2
A = (z − 1)
(z − 2)
+ 1
2
(z − 2) (z − 1)
B = (z − 2)
2z
2
2
∣
∣
+ 1
2
(z − 2) (z − 1)
1
d
C =
[(z − 2)
1! dz
2
2z
2
∣
∣
2
y(k) = 3u(k) + 4.5k2
k
]∣
∣
− 2
z − 2
= 9
z=2
(z − 2) (z − 1)
2
= 3
z=1
+ 1
C
+
z=2
= −1
k
1.4.4 Fark Denklemlerinin Z-Dönüşümü ile Çözümü
/
Örnek 1.4.9: Başlangıç koşulları verilen aşağıdaki fark denklemini z dönüşümü ile çözünüz
y(k + 2) + 3y(k + 1) + 2y(k) = 0,
2
y(0) = 0, y(1) = 1
2
z Y (z) − z Y (0) − zY (1) + 3zY (z) − 3zY (0) + 2Y (z) = 0
z
Y (z) =
z
2
z
=
z
−
z + 1
+ 3z + 2
y(k) = (−1)
k
− (−2)
z + 2
k
1.4.5 Ayrık Zaman Transfer Fonksiyonu
Başlangıç koşullarının sıfır olduğu durumda çıkışın girişe bölünmesiyle transfer fonksiyonu elde edilir.
y(k) + a1 y(k − 1) + … an y(k − n) = b0 u(k) + ⋯ + bm u(k − m)
Y (z) + a1 z
−1
Y (z) + ⋯ + an z
G(z) =
−n
Y (z) = b0 U (z) + ⋯ + bm z
b0 + b1 z
−1
+ ⋯ + bm z
1 + a1 z
−1
+ ⋯ + an z
−m
U (z)
m
n
¯¯
¯¯¯¯¯¯¯
¯
U (z) → ∣
∣G(z) ∣
∣ → Y (z)
–––––
Örnek 1.4.10: Aşağıda verilen fark denklemini kullanarak transfer fonksiyonunu bulunuz.
y(k + 1) + 4y(k) + 3y(k − 1) = u(k) − 2u(k − 1)
zY (z) + 4Y (z) + 3z
−1
Y (z) = U (z) − z
z
=
z+5
(z+2)(z−3)
U (z)
z − 1
G(z) =
Örnek 1.4.11: Transfer fonksiyonu G(z)
−1
2
+ 4z + 3
ile verilen sistemin birim basamak cevabını bulunuz.
z
z + 5
Y (z) = U (z)G(z) =
z − 1 (z + 2)(z − 3)
/
Y (z)
z + 5
A
=
z
B
=
+
z − 1
(z − 1)(z + 2)(z − 3)
C
+
z + 2
z − 3
A = −1, B = 0.2, C = 0.8
y(k) = (−1)
k
+ 0.2(−2)
2. Ayrık Zaman Sistemlerin Analizi
k
+ 0.8(3)
k
2.1 Ayrıklaştırma Yöntemlerinin Laplace Karşılığı ve Kararlılık Analizi
x(k + 1) − x(k)
ẋ(t) =
T
Laplace ve z dönüşümleri uygulanırsa;
zX(z) − X(z)
sX(s) =
z − 1
→ sX(s) =
T
X(z)
T
Buradan ileri fark yöntemi ile ayrıklaştırma yapıldığında s ve z düzlemi arasındaki ilişki
s =
z−1
T
veya z
= 1 + sT
olarak bulunur.
İleri fark yöntemi ile ayrıklaştırılan bir sistemin kararlılığı Laplace domeninden yola çıkılarak bulunabilir. Laplace domeninde kararlılık Re(s)
olduğunda göre z domeninde Re(
z−1
T
) < 0
, z değişkeninin karmaşık bir değişken olduğunu hatırlarsak z
x + jy − 1
Re(
x − 1
) < 0 → Re(
T
kararlı bölge
y
+ j
T
= x + jy
< 0
)
T
x − 1
< 0 → x < 1
T
/
Bilineer Dönüşüm (Yamuk Kuralı) ile Ayrıklaştırma:
Bir sinyalin herhangi bir andaki integrali sürekli zamanda sinyalin o ana kadar taradığı alanın toplamıdır. Matematiksel olarak;
t
y(t) = ∫
x(t)dt + y(t0 )
t0
ifade edilir. Laplace dönüşümü ise:
1
Y (s) =
X(s)
s
dir.
/
Ayrık zamanda bir sinyalin t anındaki taradığı alanı yamuk kuralı ile yaklaşık olarak bulunabilir.
T
y(k) = y(k − 1) +
(x(k) + x(k − 1))
2
Z dönüşümünü uygularsak
Y (z) = z
−1
T
Y (z) +
(X(z) + z
−1
X(z))
2
Y (z) =
T 1 + z
−1
2 1 − z
−1
Dolayısıyla s ve z düzlemleri arasındaki ilişki
2 z − 1
s =
T z + 1
olarak bulunur.
Re(
2 z − 1
2 x + jy − 1
) < 0 → Re(
T z + 1
)
T x + jy + 1
2
x
+ y
2
< 1
/
Örnek:
G(s) =
s+1
s+3
transfer fonksiyonunu bilineer dönüşümü kullanarak ayrık zaman transfer fonksiyonuna dönüşütürüp kararlılık analizini yapın
2(z − 1) + T (z + 1)
G(z) =
(T + 2)z + T − 2
=
2(z − 1) + 3T (z + 1)
(3T + 2)z + 3T − 2
2.2 Ayrık Zaman Kontrol Sistemlerinde Kararlılık Analizi
Bilineer dönüşümü ile sürekli zamandaki kararlılık bölgesi (sol-yarı düzlem) ayrık zamanda birim çember içine dönüşür. Ayrık zaman bir sistemin
kararlı olabilmesi için kutuplarının birim çember içinde olması gerekmektedir.
Yüksek dereceden sistemlerin kararlılığı Jury kriterleri kullanılarak belirlenebilir.
Jury Kriteri ile Kararlılık Analizi
Sistemin karakteristik denklemi
P (z) = a0 z
n
+ a1 z
n−1
+ ⋯ + an−1 z + an = 0
şeklinde verilsin.
Jury testi ile sistemin birim çember dışında kutbunun olup olmadığı belirlenir.
/
Kural 1: P (1)
Kural 2: (−1)
Kural 3: |an |
> 0
n
P (−1) > 0
< a0
Eğer üç kural da sağlanıyorsa jury tablosu oluşturulur.
Örnek(b ve c'lerin hesaplanması)
b0 = an a1 − a0 an−1
b1 = an a2 − a0 an−2
b2 = an a3 − a0 an−3
⋮
c0 = bn−1 b1 − b0 bn−2
c1 = bn−1 b2 − b0 bn−3
c2 = bn−1 b3 − b0 bn−4
⋮
Kural 4:
|bn−1 | > |b0 |
/
|cn−2 | > |c0 |
|dn−3 | > |d0 |
⋮
Son satıra kadar devam eder. Tablodaki satır sayısı 2 ∗ n − 3 (veya bir satırda üç katsayı olana kadar ) tür. Eğer bu 4 kural sağlanıyorsa
sistem kararlıdır.
P (−1) = 0
veya P (1)
= 0
olduğunda diğer şartlar sağlanıyorsa marjinal kararlıdır ( yani z=1'de sistemin kutbu vardır), aksi halde kararsızdır.
Örnek
P (z) = z
4
− 1.2z
3
+ 0.07z
2
+ 0.3z − 0.08
a0 = 1, a1 = −1.2, … a4 = −0.08
P (1) = 0.09 > 0
4
(−1) P (−1) = 1.89 > 0
| − 0.08| < 1
a4
a3
a2
a1
a0
a0
a1
a2
a3
a4
b3
b2
b1
b0
b0
b1
b2
b3
c2
c1
c0
b0 = a4 a1 − a0 a3 = −0.204
b1 = a4 a2 − a0 a2 = −0.075
b2 = a4 a3 − a0 a1 = 1.176
b3 = a4 a4 − a0 a0 = −0.994
|b3 | > |b0 |
c0 = b3 b1 − b0 b2 = 0.315
c2 = b3 b3 − b0 b0 = 0.94
|c2 | > |c0 |
/
Sistem kararlıdır.
Örnek
P (z) = z
3
− 1.1z
2
− 0.1z + 0.2
a0 = 1, a1 = −1.1, a2 = −0.1, a3 = 0.2
P (1) = 0!
(kritik kararlı olabilir)
3
(−1) P (−1) = 1.8 > 0
|a3 | < a0 → |0.2| < 1
a3
a2
a1
a0
a0
a1
a2
a3
b2
b1
b0
b2 = a3 a3 − a0 a0 = −0.12 → |b2 | > |b0 |
Sistem marjinal kararlıdır.
Örnek
P (z) = z
2
− 1.2z + 0.6
P (1) = 0.4 > 0
n
(−1) P (−1) = 2.8 > 0
|a2 | < an → |0.6| < 1
Sistem kararlıdır.
/
Uygulama Problemleri
Problem 1 Ayrık sistem transfer fonksiyonu;
C (z)
G(z) =
0.125z
=
R(z)
z
2
− 1.375z + 0.5
ile verilen bir sistemin birim basamak cevabını bulunuz.
Çözüm
Y (z) = R(z)G(z)
ayrık zamanda birim basamak fonksiyonu R(z)
z
=
z−1
dolayısıyla
0.125z
Y (z) =
(z − 1)(z
Ters Z dönüşümünü bulabilmek için kısmi kesirlere ayırırsak;
2
2
− 1.375z + 0.5)
/
Y (z)
A
Bz + D
=
+
z
z − 1
z
2
− 1.375z + 0.5
A = limz→1 (z − 1)Y (z) = 1
A bilindiği durumda yukarıdaki ifadede payda eşitleme yaparsak
0.125z = A(z
2
− 1.375z + 0.5) + (Bz + D)(z − 1)
0.125z = (A + B)z
Dolayısıyla A
,
,
= 1 B = −1 D = 0.5
2
+ (D − B − 1.375)z + 0.5 − D
olarak bulunur.
z
z
Y (z) =
−
z − 1
sağdaki ifadenin paydasında yer alan polinomun kökleri b2
−at
e
sin(wt)
z
−2aT
= 0.5
2
− 0.5z
− 1.375z + 0.5
olduğundan kompleks eşleniktir. Ve Z dönüşümleri e−at cos(wt) ile
'nin z dönüşümlerinden faydalanılarak bulunur;
z
e
− 4ac < 0
z
2
2
2
=
− 1.375z + 0.5
ve 2e−aT cos(wT )
,
aT = 0.35 wT = 0.24
z
− 0.5z
ve B
z
2
2
−aT
− ze
−aT
− 2ze
−aT
cos(wT )
ze
−2aT
cos(wT ) + e
+ B
z
2
−aT
− 2ze
sin(wT )
−2aT
cos(wT ) + e
= 1.375
= 1.1338
olarak bulunur. Dolayısıyla
−0.35k
y(k) = 1 − e
(cos(0.24k) + 1.1338sin(0.24k)) |k = 0, 1, 2, …
Python Ayrık Kontrol Sistem Uygulaması
!pip install control
import control
import numpy as np
import matplotlib.pyplot as plt
/
z = control.TransferFunction.z
Gz = (0.125*z)/(z**2-1.375*z+0.5)
control.pzmap(Gz) # pzmap sistemin kutup ve sıfırlarını gösterir.
plt.figure()
time = np.linspace(0,1,101)
T, y = control.step_response(Gz,time)
plt.plot(T, y)
/
[<matplotlib.lines.Line2D at 0x7f8edbb9a358>]
Problem 2
y
′′
′
(t) + 14y (t) + 100y(t) = 100x(t)
ile verilen diferansiyel denklemi ileri fark yöntemini kullanarak fark denklemine
dönüştürün
Problem 3
k
y(k + 1) − y(k) = (1 + 2 )x(k)
olmak üzere
Y (z)
X(z)
transfer fonksiyonunu bulup, başlangıç koşullarının sıfır olması durumunda
birim basamak cevabını elde ediniz.
Çözüm Fark denklemine Z dönüşümü uygulanırsa;
z
z
zY (z) − Y (z) = (
+
)X(z)
z − 1
2z
2
z − 2
Y (z)
− 3z
Y (z) =
X(z) → G(z) =
birim basamak fonksiyonu olursa X(z)
=
2
− 3z
=
(z − 1)(z − 2)
X(z)
2z
X(z)
(z − 1)(z − 2)
z
z−1
2z
3
− 3z
Y (z) =
2
2
(z − 1) (z − 2)
elde edilir.
Birim basamak cevabının fark denklemini elde etmek için ifadenin rezidüsünü alıp ters Z dönüşümü uygulanırsa
Y (z)
2z − 2
=
z
,
,
A = −2 B = 0 C = 2
A
B
=
2
(z − 1) (z − 2)
(z − 1)
2
+
C
+
z − 1
z − 2
olarak bulunur.
−2z
Y (z) =
(z − 1)
Y (k) = −2k + 22
Problem 4 Ayrık zaman transfer fonksiyonu G(z)
import control
import numpy as np
import matplotlib pyplot as plt
k
2z
2
z +0.5+1
5
4
3
2
z − 2
= −2k + 2
2
=
+
6z +2z −3z +5z +8z+3
k+1
olan sistemin kararlılığını Jury Testini kullanarak belirleyiniz.
/
import matplotlib.pyplot as plt
z = control.TransferFunction.z
G1= (z**2+0.5*z+1)/(6*z**5+2*z**4-3*z**3+5*z**2+8*z+3)
control.pzmap(G1)
plt.figure()
time = np.linspace(0,1,101)
T, y = control.step_response(G1,time)
plt.plot(T, y)
plt.figure()
control.root_locus(G1)
3. Ayrık Zaman Açık Çevrim ve Kapalı Çevrim Kontrol Sistemleri
Yukarıda verilen blok şemasındaki örnekleme ve tutma işlemleri ayrık zaman kontrol sistemlerinin analiz ve tasarımında oldukça önemlidir.
Sürekli zaman bir sinyalin T örnekleme periyodu ile örneklenip (Analog Dijital Çevirici ile), sıfırıncı dereceden bir tutma devresi ile sürekli zamana
¯
¯
geri dönüştürülmesi (Dijital Analog Çevirici) örneği aşağıdaki şekilde verilmiştir. Resimdeki notasyonda x∗ (t) örneklenmiş sinyali, x̄
(t) ise
tutucu ile elde edilmiş sürekli zaman sinyalini ifade eder.
/
¯
¯
x̄(t) = x(0)[u(t) − u(t − T )] + x(T )[u(t − T ) − u(t − 2T ] + …
Laplace Dönüşümü uygulanırsa;
1
¯¯¯
¯
X (s) = x(0)[
1
−
−T s
e
s
1
] + x(T )[
s
X (s) = [
1
−
s
1
¯¯¯
¯
−T s
e
1
−
s
−2T s
e
] + …
s
∞
−T s
e
−kT s
][ ∑ x(kT )e
s
]
k=0
Burada
∞
X
∗
−kT s
(s) = ∑ x(kT )e
k=0
örnekleme işlemini ifade eder. Örneklenmiş sinyalin z-dönüşümü, z
ile daha önceki bölümde elde edilmişti.
sT
= e
∞
X(z) = ∑ x(kT )z
−k
k=0
[
1
s
−
1
−T s
e
]
s
ise sürekli zamana geçişte tutma işlemini ifade eder ve bu ifadeye sıfırıncı dereceden tutma denilir.
Sonuç olarak örnekleme ve sıfırıncı dereceden tutma aşağıdaki gibi blok şema ile gösterilebilir.
/
s ve z Düzlemleri Arasındaki Dönüşüm ( Zaman Domeni Kriterleri Karşılıkları)
s düzleminde s1,2
z1,2
= −α ± jw
olarak verilen karmaşık değişkenin z düzlemindeki yeri z
sT
= e
olduğundan, z1,2
(−α±jw)T
= e
−αT
= e
±jwT
e
'yi kutupsal olarak ifade edersek:
±jθ
z1,2 = re
Burada r
−αT
= e
z düzleminde z1,2
,θ
= ωT
olarak elde edilir.
= a ± jb
olarak verildiğinde ise z
±jθ
= re
Burada, r
−αT
r = e
−
−
−
−
−
−
2
2
= √a + b
ve θ
= tan
−1
(
b
a
)
Buradan,
1
→ α = −
lnr
T
1
θ = ωT → ω =
1
θ =
tan
T
T
−1
b
(
)
a
Bu eşitliklerden yararlanılarak sürekli zaman domeni kriterlerini ifade ederken kullandığımız sönüm oranı ve doğal frekansı ayrık zamana
dönüştürebiliriz. Sürekli zamanda baskın kutupların reel kısmı sönüm oranı ve doğal frekansın çarpımına eşit olduğu göz önüne alınırsa;
1
α = ξωn = −
lnr
T
−
−
−
−
−
ω = ωn √ 1 − ξ
2
θ
=
T
lnr
ξ =
−
−
−
−
−
−
−
−
−
2
2
√ (lnr) + θ
1
ωn =
Örnek s1,2
= −2 ± j2
Örnek z1,2
= 0.2 + j0.2
T
−
−
−
−
−
−
−
−
−
√ (lnr)
2
2
+ θ
kutuplarının z-düzlemindeki yerini bulunuz. T = 0.1 s
kutuplarının s-düzlemindeki yerini T = 0.5 s için bulunuz.
/
3.1 Açık Çevrim Ayrık Zaman Kontrol Sistemleri
Belirli periyotta örnekleme işlemi yapılarak sürekli zamandan ayrık zamana geçişi ifade eden ve * ile gösterdiğimiz yıldızlı dönüşüm alınırken
dikkat edilmesi gereken bazı özellikler aşağıda verilmiştir.
∗
(A (s))
∗
∗
= A (s)
∗
(A(s). B (s))
(A(s). B(s))
∗
∗
∗
∗
= A (s). B (s)
∗
∗
¯
¯¯¯¯
¯¯¯¯
¯
∗
≠ A (s). B (s) = A. B (s)
Z [A(s). B(s)] ≠ A(z). B(z)
Örnek Transfer fonksiyonu Gp (s)
=
1
s+1
olan bir sistemin
a) Sürekli zamanda birim basamak cevabını bulunuz
/
b) Örnekleme ve tutma ile ayrıklaştırarak T = 0.1 s için birim basamak cevabını bulunuz
a) U (s)
=
1
s
birim basamak girişi için
1
Y (s) = U (s)Gp (s) =
1
1
1
=
s s + 1
−t
−
s
→ y(t) = 1 − e
s + 1
b)
−sT
1 − e
G(s) = Gh (s)Gp (s) =
1
1
−sT
= 1 − e
s
s + 1
∗
s(s + 1)
−sT
A (s) = 1 − e
1
B(s) =
s(s + 1)
∗
G(s) = A (s). B(s)
∗
∗
∗
G (s) = A (s). B (s)
z − 1
G(z) = A(z) ∗ B(z) =
z
z
G(z)
−T
z
(
−
z − 1
1 − e
−T
) =
z − e
−T
z − e
bulunduktan sonra birim basamak cevabı kolayca bulunabilir. Birim basamak işaretinin Z dönüşümü:
z
U (z) =
z − 1
z
Y (z) = U (z)G(z) =
−T
1 − e
z − 1 z − e−T
z
=
z
−
z − 1
−T
z − e
Ters Z dönüşümünü alırsak
−kT
y(k) = 1 − e
3.2 Kapalı Çevrim Ayrık Zaman Kontrol Sistemleri
Kapalı çevrimde yer alan her bir örnekleyicinin çıkışı * ile gösterilerek ayrık zamana geçiş belirtilir.
Örnek Aşağıda verilen kapalı çevrim kontrol sisteminde hata örneklenmiştir. Giriş ve çıkış arasındaki transfer fonksiyonunu elde ediniz.
/
∗
E (s) = R(s) − G(s)H (s)E (s)
∗
∗
E (s) = R (s) − GH
∗
∗
(s)E (s)
∗
R (s)
∗
E (s) =
1 + GH
∗
(s)
∗
Y (s) = G(s)E (s)
Y
Y
∗
∗
∗
∗
(s) = G (s)E (s)
∗
(s)
R (s)
∗
G (s)
=
1 + GH
∗
G(z)
=
(s)
1 + GH (z)
Örnek
/
∗
G(s) = Gh (s)Gp (s) = A (s)B(s)
∗
−sT
A (s) = 1 − e
4
B(s) =
s(s + 2)
∗
∗
∗
G (s) = A (s). B (s)
G(z) = A(z). B(z)
A(z) = 1 − z
z − 1
−1
=
z
4
2
B(z) = Z [
] = Z[
s
s(s + 2)
2
z
−
] = 2(
s + 2
z
−
z − 1
−2T
)
z − e
T=0.1 için
z − 1
0.36
G(z) = 2 − 2
=
z − 0.820
z − 0.82
G(z)
0.36
T (z) =
=
1 + G(z)
z − 0.46
Girişin birim basamak olması durumunda
z
0.36
Y (z) = U (z). T (z) =
z − 1 z − 0.46
Y (z) =
0.67z
z − 1
−
0.67z
z − 0.46
/
ters Z dönüşümü uygulanırsa;
k
y(k) = 0.67(1 − 0.46 )
4. Ayrık Zaman Kontrolör Tasarımı
Ayrık zaman sistemler için kontrolör tasarımında temelde iki yöntem kullanılır.
Sürekli zamanda kontrolör tasarlanır ve tasarlanan kontrolör transfer fonksiyonu ayrık zamana dönüştürülerek yazılımsal olarak
gerçeklenir ( gömülü sistem kod yazma).
Kontrolör ayrık zamanda tasarlanarak yazılımsal olarak gerçeklenir.
Örnek Aşağıda verilen kapalı çevrim sistemin sönümsüz doğal frekansını ωn
= 10 rad/s
kontrolörü tasarlayarak ayrık zaman dönüşümünü T = 0.1 s için hesaplayınız. Gp (s)
=
10 ve sönüm oranının ξ
= 0.8
olmasını sağlayan PI
1
s+2
Sürekli zamanda polinom istenen karakteristiğe ait polinom ile karakteristik polinomun katsayıları eşitlenerek çözüme gidilir. PI Kontrolör yapısı:
Ki
Gc (s) = K p +
Gc (s)Gp (s)
T (s) =
=
1 + Gc (s)Gp (s)
s
Kp s + K i
2
s
+ (2 + K p)s + K i
kontrolörün sağlaması gerektiği isterlerin polinomu ise
2
P d (s) = s
ξ = 0.8
ve wn
= 10
2
+ 2ξwn s + wn
olduğundan
/
2
P d (s) = s
2
P c (s) = s
+ 16s + 100
+ (2 + K p)s + K i
olduğundan
Kp = 14, Ki = 100 olarak bulunur.
Sürekli zaman domeni kriterlerini sağlayan PI kontrolör olarak bulunur.
14(s + 7.14)
100
Gc (s) = 14 +
Tasarlanan süreli zaman kontrolör bilineer dönüşüm ile T
14(s + 7.14)
Gc (z) =
s
= 0.1
=
s
s
için ayrıklaştırılırsa
14(20
∣
∣
s=
2
z−1
T
z+1
=
z−1
z+1
20
+ 7.14)
z−1
19(z − 0.474)
=
z − 1
z+1
Doğrudan Ayrık Zamanda Kontrolör Tasarımı
Kontrol edilecek sistemin transfer fonksiyonun ayrık zaman karşılığı bulunur
Kapalı çevrim sistem çıkışı için istenen zaman domeni kriterlerine (sönüm oranı, doğal frekans, yerleşme zamanı, vb.) göre sürekli
zamandaki baskın kutuplara ilişkin polinom (P d (s) ) elde edilir ve Z dönüşümü uygulanır.
Kriterleri karşılayacak kontrolör parametreleri hesaplanır.
Örnek: Önceki örnekte verilen sistem içim doğrudan sayısal bölgede aşağıdaki gibi PI tasarımı yapılır.
Kontrol edilecek sistemin ayrık zaman transfer fonksiyonu bulunur
/
T = 0.1s
1
Gp (s) =
s + 2
∗
−T s
G(s) = Gh (s)Gp (s) = A (s). B(s) = (1 − e
z − 1
G(z) = A(z). B(z) =
s(s + 2)
−2T
0.5(1 − e
1
Z[
z
1
).
] =
)
−2T
s(s + 2)
z − e
0.09
=
z − 0.8187
PI Kontrolörün azrık zaman transfer fonksiyonu
Ki
Gc (s) = K p +
Burada K
= Kp − Ki
ve a
=
z
→ Gc (z) = K p + K i
s
=
(K p − K i )z − K p
z − 1
z − 1
K (z − a)
=
z − 1
Kp
K p −K i
Gc (z)G(z)
T (z) =
1 + Gc (z)G(z)
karakteristik denklem
z
2
− z(1.8187 − 0.09K ) + (0.8187 − 0.09K a)
Sürekli zamanda verilen kontrol kriterleri wn
= 10rad/s
ve ξ
= 0.8
2
P d (s) = s
+ 16s + 100
s1,2 = −8 ± j6
z domenindeki karşılıkları z
sT
= e
olduğuna göre
z1,2 = 0.371 ± j0.254
Dolayısıyla
P d (z) = z
2
− 0.74z + 0.1994
Karakteristik denklem ile katsayılar eşitlenirse
1.8187 − 0.09K = −0.74
0.8187 − 0.09K a = 0.1994
K = 28
ve a
= 0.2775
olarak bulunur.,
/
28(z − 0.2775)
Gc (z) =
z − 1
Ayrık Kontrolörlerin Mikrodenetleyicilerde Gerçeklenmesi
Sürekli zamanda PID yapısında olan kontrolörün transfer fonksiyonunu ele alalım.
U (s)
Gc (s) =
E (S )
= Kp +
U (z)
Gc (z) =
E (z)
= Kp +
Ki
+ K d s.
s
Ki T z
z − 1
z − 1
+ Kd
Tz
Fark denklemine dönüştürürsek
u(k) = K p e(k) + K i [u(k − 1) + T e(k)] +
= [K p + K i T +
Kd
]e(k) −
T
Kd
T
Kd
[e(k) − e(k − 1)]
T
e(k − 1) + K i u(k − 1)
Örnekleme Frekansının Belirlenmesi
Pratikte örnekleme frekansı (ωs ) sistemin sönümlü doğal frekansın (ωd ) 35 ile 70 katı arasında seçilir.
−
−
−
−
−
ωd = ωn √ 1 − ξ
2
ωs = kωd , → 35 ≤ k ≤ 70
Örnek Kapalı çevrim bir sistem sürekli zamanda %5 aşımı geçmeyecek, sönüm oranı 0.7 ve sönümlü frekansı 10 rad/s olacak şekilde
tasarlanmıştır. Uygun örnekleme zamanını belirleyiniz.
−
−
−
−
−
ωd = ωn √ 1 − ξ
2
−
−
−
−
−
−
−
= 10√1 − 0.49 = 7.14
/
ωs ≥ 35 ∗ ωd = 249.95rad/s
örnekleme periyodu
2 ∗ π
≥ 249.95 → T ≤ 0.025s = 25ms
T
örnekleme periyodu en fazla 25ms seçilebilinir
Genel Uygulama Soruları
1- Y (z)
=
z
2
z −4z+1
,
transfer fonksiyonuna ait fark denklemini elde ediniz y(kT) (k=0,1,2,3,4,5)
,
,
y(0) = 0 y(T ) = 1 y(2T ) = 4 y(3T ) = 15
2- Y (z)
=
z+1
2
z +0.3z+0.02
, y(4T)=56
ters z dönüşümünü kullanarak y(k) ifadesini bulunuz.
Y (z)
z + 1
=
z
z(z
2
A
50z
+
z
+ 0.3z + 0.02)
Y (z) =
z + 0.2
40z
+
z + 0.1
y(k) = 50δ(k) − 90(−0.1)
z + 0.2
k
2
=
C
+
z + 0.1
90z
−
z
3- Ayrık zaman kapalı çevrim transfer fonksiyonu T (z)
B
=
K (z +2z)
2
(1+K )z +(0.2+K )z−0.5
+ 40(−0.2)
k
olan sistemin K'ya bağlı kararlılık aralığını belirleyiniz.
karakteristik polinom:
P (z) = (1 + K )z
2
+ (0.2 + K )z − 0.5
Jury kararlılık kriterlerini uygularsak
P (1) > 2K + 0.7 > 0 → K > −0.35
/
n
(−1) P (−1) > 0 → 0.3 > 0
(n = 2, karakteristik denklem 2. dereceden)
1 + K > | − 0.5| → K > −0.5
Dolayısıyla kararlılık aralığı
∞ > K > −0.5
4- Karakteristik polinomu
P (z) = z
5
+ 0.2z
4
− 0.8z
3
− 0.106z
2
+ 0.1375z + 0.014
olan sistemin kararlılığını Jury tablosunu oluşturarak inceleyiniz.
P(1) = 0.4455 > 0
(-1)^5 P(-1) = 0.2295 >0
z
0
z
1
z
2
z
3
z
4
z
5
a5
a4
a3
a2
a1
a0
a0
a1
a2
a3
a4
a5
b4
b3
b2
b1
b0
b0
b1
b2
b3
b4
c3
c2
c1
c0
c0
c1
c2
c3
d2
d1
d0
b0 = a5 a1 − a0 a4 = −0.1347
b1 = a5 a2 − a0 a3 = 0.0948
b2 = a5 a3 − a0 a2 = 0.7985
b3 = a5 a4 − a0 a1 = −0.1981
b4 = a5 a5 − a0 a0 = −0.9998
|b4 | > |b0 |
c0 = b4 b1 − b0 b3 = −0.1215
/
c1 = b4 b2 − b0 b2 = −0.6908
c2 = b4 b3 − b0 b1 = 0.1714
c3 = b4 b4 − b0 b0 = 0.9815
|c3 | > |c0 |
d0 = c3 c1 − c0 c2 = −0.6524
d2 = c3 c3 − c0 c0 = 0.9485
|d3 | > |d0 |
sistem kararlıdır.
5- Açık çevrim transfer fonksiyonu G(s)
=
4
(s+2)(s+3)
olan bir sistem birim geri-beslemeli yapıda kontrol edilmek istenmektedir. Kapalı çevrim
sisteme birim basamak işareti uygulandığında yerleşme zamanının 4 saniye ve sönüm oranının 0.707 olmasını sağlayan PD kontrolörü belirleyip
kontrolörün ayrık zaman karşılığını sistem için uygun olabilecek en büyük örnekleme periyodu ile bulunuz.
Gc (s) = K p + K d s
4(K p + K d s)
T (s) =
2
s
+ (5 + 4K d )s + (6 + 4K p )
karakteristik denklem:
2
P c (s) = s
+ (5 + 4K d )s + (6 + 4K p )
kapalı çevrim sistemden istenen kriterlere ait karakteristik polinomu belirlemek için:
4
Ts =
ξωn
= 4 → ξωn = 1
–
ξ = 0.707 → ωn = √2
2
P d (s) = s
+ 2s + 2
polinom katsayıları eşitlenirse
(5 + 4K d ) = 2 → K d = −0.75
/
(6 + 4K p ) → K p = −1
Gc (s) = −1 − 0.75s
Örnekleme zamanının seçimi:
Kapalı çevrim sistemin sönümlü doğal frekansı:
−
−
−
−
−
ωd = ωn √ 1 − ξ
2
−
−
1
–
= √2√
= 1
2
Örnekleme frekansı sönümlü doğal frekansın 35 ila 70 katı arasında seçilebilinir. Olabilecek en büyük örnekleme periyodu olabilecek minimum
örnekleme frekansı ile sağlanır.
ωs ≥ 35ωd ≥ 35
2π
T ≤
= 0.18s
ωs
Örnekleme zamanı en fazla T
= 0.18s
olabilir. Bu durumda bilineer dönüşüm kullanarak tasarlanan kontrolörü bulabiliriz.
−16.8z + 13.2
Gc (z) = −1 − 0.75s|
s=
2
z−1
0.18
z+1
=
1.8z + 1.8
/
/
Download