|
Simulation of Digital
Control
Close Loop
Dimisalkan loop tertutup dari sistem kendali adalah seperti terlihat
pada Gambar 1 berikut.

Gambar 1. Loop tertutup sistem kendali
Misalkan kita memakai
kompensator PI dengan fungsi alih sebagai berikut:
(1)
Transformation to Z domain
Karena plant
memiliki konstanta waktu sebesar
t
= 10, maka dengan memakai waktu sampling T = 2 detik sudah cukup
memenuhi kriteria shanon. Fungsi alih ZOH x plant terlebih dahulu
kita transformasikan ke Z seperti pada langkah berikut:

(2)
dengan memasukan harga T
= 2 detik, maka fungsi G(z), menjadi
(3)
selanjutnya kita substitusikan s pada fungsi
Dc(s) dengan s menurut transformasi bilinier, sehingga Dc(z)
menjadi:

dalam bentuk persamaan
diferensi menjadi
(4)
sedangkan fungsi alih
lup tertutupnya adalah
(5)
dalam bentuk persamaan diferensi menjadi

Algorithm for Compensator Program
Untuk mewujudkan fungsi kompensator yang
sesungguhnya, maka sistem komputer harus menyediakan variabel input
untuk menyimpan variabel masukan dari A/D converter serta
variabel keluaran untuk diumpankan ke D/A converter.
Sebagai variabel, kita
misalkan
y(k-1) = y_minus1
y(k) = y_now
x(k-1) = x_minus1
x(k) = x_now
Variabel x_now merupakan
variabel yang digunakan untuk menyimpan masukan dari A/D converter,
sedangkan variabel y_now digunakan untuk mengeluarkan hasil kompensasi
ke D/A converter.
Untuk diagram alir
program bisa dilihat pada Gambar 2
berikut:

Gambar 2. Diagram alir simulasi sistem kendali digital
6.
Simulasi Kompensator Menggunakan C++
Dalam mensimulasikan kompensator digital
menggunakan PC, maka variabel masukan (x_now), disimulasikan menggunakan
besaran angka, misalkan masukan step satuan, maka nilai variabel x_now
diberi nilai sebesar 1 untuk setiap loop program. Dalam
aplikasi nyata, variabel x_now diberi nilai dari hasil pembacaan A/D
converter.
Sedangkan keluaran
kompensator dalam aplikasi nyatanya yaitu variabel y_now dimasukan ke
variabel keluaran yang biasanya berupa alamat port, untuk selanjutnya
akan diubah ke sinyal analog oleh D/A converter, tetapi dalam
simulasi ini variabel keluaran hanya ditampilkan pada layar monitor.
Dalam hal looping program,
ketika kita membuat kompensator yang sesungguhnya maka looping program
dibuat tidak terbatas waktunya, kecuali jika variabel interupt diberi
nilai ‘stop’ maka program akan berhenti. Dalam simulasi ini looping
program dibatasi hanya untuk beberapa kali saja, untuk menunjukkan unjuk
kerja dari program.
Simulasi sistem kendali
digital lup tertutupnya (seperti terlihat pada Gambar
3 dengan sebelumnya telah diturunkan
terlebih dahulu fungsi alihnya)
adalah berdasar pada persamaan differensi:

Dengan menentukan
variabel-variabel
c(k) = c_now; c(k-1) =
c_min1; c(k-2) = c_min2;
r(k-1) = r_min1; r(k-2)
= r_min2;
serta berdasar pada
kemiripan diagram alir pada bagian Gambar 2, maka
kita bisa menyusun programnya seperti berikut ini:
#include <iostream.h>
int main()
{
float c_min2,c_min1,c_now,r_min2,r_min1,r_now;
c_min2=0;
c_min1=0;
r_min2=0;
r_min1=0;
for (int i=0;i<21;++i)
{
r_now=1;
c_now=0.73*c_min1-0.09*c_min2+21.7*r_min1-14.5*r_min2;
c_min2=c_min1;
c_min1=c_now;
r_min2=r_min1;
r_min1=r_now;
cout<<" Nilai C("<<i<<") adalah = "<<c_now<<endl;
}
return 0;
}
Jika program di atas dieksekusi, akan
diperoleh harga c(0) sampai c(20), dan setelah diplot menjadi Gambar 3
berikut.

Gambar 3. Tanggapan sistem kendali (hasil
simulasi)
|