tutorial ini adalah: tfr locus, pole, zero, zpk, feedback, impuls
Pada halaman ini kita akan merancang sebuah alat kontrol untuk sistem pendulum terbalik
menggunakan metode perancangan akar lokus. Dalam proses perancangan, kita akan
mengasumsikan sebuah pabrik single-input, single-output seperti yang dijelaskan oleh fungsi transfer
berikut. Jika tidak, kami akan mencoba mengendalikan sudut pendulum tanpa memperhatikan posisi
gerobak.
Dimana
Lebih khusus lagi, pengontrol akan berusaha mempertahankan pendulum vertikal ke atas saat
gerobak terkena impuls 1-Nsec. Dengan kondisi ini, kriteria desainnya adalah:
Struktur sistem
Struktur pengontrol untuk masalah ini sedikit berbeda dari masalah kontrol standar yang mungkin
Anda gunakan. Karena kita mencoba mengendalikan posisi pendulum, yang seharusnya kembali ke
vertikal setelah gangguan awal, sinyal referensi yang kita lacak harus nol. Situasi seperti ini sering
disebut sebagai masalah Regulator. Kekuatan eksternal yang diterapkan pada gerobak dapat
dianggap sebagai gangguan impulsif. Skema untuk masalah ini digambarkan di bawah ini.
Anda mungkin merasa lebih mudah untuk menganalisa dan merancang sistem ini jika kita pertama
kali mengatur skematiknya sebagai berikut.
Fungsi transfer yang dihasilkan $ T (s) $ untuk sistem loop tertutup dari masukan gaya $ F $ ke
output sudut pendulum $ \ phi $ kemudian ditentukan sebagai berikut.
Sebelum kita mulai merancang controller kita, pertama kita perlu mendefinisikan pabrik kita di dalam
MATLAB. Buat m-file baru dan ketik perintah berikut untuk membuat model tanaman (lihat masalah
utama untuk rincian mendapatkan perintah ini).
M = 0.5;
m = 0.2;
b = 0.1;
I = 0.006;
g = 9.8;
l = 0.3;
q = (M+m)*(I+m*l^2)-(m*l)^2;
s = tf('s');
P_pend = (m*l*s/q)/(s^3 + (b*(I + m*l^2))*s^2/q - ((M + m)*m*g*l)*s/q - b*m*g*l/q);
rlocus(P_pend)
Seperti yang bisa Anda lihat, salah satu cabang lokus akar seluruhnya ada di kanan-separuh bidang
s kompleks. Ini berarti tidak masalah pilihan keuntungan $ K $, akan selalu ada tiang lingkaran
tertutup di pesawat setengah kanan yang membuat respons impuls sistem tidak stabil.
Untuk mengatasi masalah ini, kita perlu menambahkan sebuah tiang pada titik asal (integrator)
melalui controller untuk membatalkan pabrik nol pada titik asal. Penambahan ini akan menghasilkan
dua kutub lingkaran tertutup di pesawat setengah kanan. Dalam desain selanjutnya, kita dapat
memodifikasi pengontrol kita untuk menggambar kutub ini ke bidang setengah kiri, sehingga
menstabilkan sistem loop tertutup. Memodifikasi m-file Anda dengan perintah berikut dan berjalan
kembali di jendela perintah MATLAB akan menghasilkan plot lokus akar yang ditunjukkan di bawah
ini.
C = 1/s;
rlocus(C*P_pend)
Mari kita juga memeriksa lokasi kutub loop terbuka dan nol sistem sehingga kita mungkin mulai
berpikir tentang cara menggambar cabang lokus akar ke bidang setengah kiri. Memasukkan perintah
berikut ke dalam jendela perintah MATLAB akan menghasilkan output berikut.
zeros = zero(C*P_pend)
poles = pole(C*P_pend)
Seperti yang bisa Anda lihat, ada empat tiang dan hanya satu nol. Ini berarti bahwa lokus akar akan
memiliki tiga asimtot: satu di sepanjang sumbu sebenarnya ke arah negatif, dan dua lainnya pada
sudut 120 derajat ke yang satu ini.
Konfigurasi ini juga tidak memuaskan karena kita masih memiliki cabang lokus akar yang seluruhnya
berada di bidang kompleks setengah benar. Secara umum, kita bisa menarik cabang-cabang lokus
akar kita ke kiri di bidang kompleks dengan menambahkan angka nol ke sistem kita. Menambahkan
nol ke controller kita akan mengurangi jumlah asimtot dari tiga menjadi dua. Kedua asimtot ini sejajar
dengan sumbu imajiner dan akan memotong sumbu sebenarnya pada lokasi yang dihitung dari
ungkapan berikut.
Oleh karena itu, untuk sistem kita seperti yang telah dijelaskan sejauh ini, kita memiliki asumsi berikut
fase minimum nol (negatif).
Berdasarkan hal di atas, yang terjauh kita bisa menarik asimtot ke kiri di bidang kompleks kira-kira -
0,1 untuk nol yang kecil sekali. Ingat bahwa 2% waktu penyelesaian dapat diperkirakan dari
persamaan berikut.
Oleh karena itu, kutub loop tertutup dominan dengan bagian nyata yang mendekati -0,1 tidak akan
cukup untuk memenuhi waktu penyelesaian 5 detik yang kita butuhkan.
Kontrol PID
Dalam pembahasan di atas, kami menunjukkan bahwa menambahkan nol ke pengontrol integral kami
dapat menarik cabang akar lokus ke kiri di bidang kompleks, namun kami tidak dapat menarik cabang
dominan cukup jauh ke kiri. Solusi yang mungkin adalah menambahkan lagi nol. Jika kita
menempatkan kedua angka nol pada poros sumbu negatif di antara dua kutub tanaman, maka kedua
cabang di bidang setengah kanan akan ditarik ke bidang setengah kiri dan akan berakhir pada dua
angka nol ini. Mari kita secara khusus mengevaluasi lokus akar untuk pengendali dengan integrator
dan nol pada -3 dan -4. Perhatikan bahwa controller ini sebenarnya adalah pengendali PID. Kita bisa
membuat controller ini di dalam MATLAB dengan menggunakan perintah zpk yang menciptakan
sebuah model dengan menentukan angka nol, kutub, dan gain dari sistem. Memodifikasi m-file Anda
dengan perintah berikut dan menjalankan kembali akan menghasilkan plot lokus akar yang
ditunjukkan di bawah ini.
z = [-3 -4];
p = 0;
k = 1;
C = zpk(z,p,k);
rlocus(C*P_pend)
Meneliti lokus akar di atas membantu kita untuk menentukan apakah persyaratan yang diberikan
dapat dipenuhi atau tidak. Secara khusus, karena diinginkan bahwa waktu penyelesaian sistem
kurang dari 5 detik, bagian sebenarnya dari tiang loop tertutup dominan kita harus kurang dari kira-
kira -4/5 = -0,8. Dengan kata lain, tiang loop tertutup dominatnt kita harus ditempatkan di bidang s-
kompleks di sebelah kiri garis vertikal pada s = -0,8. Pemeriksaan di atas menunjukkan bahwa ini
mungkin. Karena juga diinginkan agar pendulum tidak bergerak lebih dari 0,05 radian dari vertikal,
kami juga ingin memastikan bahwa sistem loop tertutup memiliki redaman yang cukup. Menempatkan
kutub loop tertutup yang dominan di dekat sumbu sebenarnya akan meningkatkan redaman sistem
(kecil $ \ beta $).
Untuk menemukan gain yang sesuai dengan titik tertentu pada root locus, kita bisa menggunakan
perintah rlocfind. Secara khusus, masukkan perintah [k, poles] = rlocfind (C * P_pend) di jendela
perintah MATLAB.
Lalu pergi ke plot dan pilih titik di lokus akar di sisi kiri loop, dekat dengan sumbu nyata seperti yang
ditunjukkan di bawah ini dengan tanda + kecil. Memilih kutub ini akan memastikan sistem mengendap
cukup cepat dan, mudah-mudahan, memiliki redaman yang cukup.
Setelah melakukan ini, Anda harus melihat output seperti berikut di jendela perintah MATLAB.
Perhatikan bahwa nilai yang dikembalikan di jendela perintah MATLAB Anda mungkin tidak sama
persis, namun setidaknya harus memiliki urutan besarnya yang sama.
Kemudian kita dapat memeriksa respons impuls dari sistem loop tertutup kami untuk melihat apakah
persyaratan kami benar-benar dipenuhi dengan keuntungan $ K $ sekitar 20. Tambahkan perintah
berikut ke m-file dan jalankan kembali untuk menghasilkan loop tertutup. respon impuls seperti yang
ditunjukkan di bawah ini.
K = 20;
T = feedback(P_pend,K*C);
impulse(T)
Di atas, blok $ C (s) $ adalah pengendali yang dirancang untuk menjaga vertikal pendulum. Fungsi
transfer loop tertutup $ T_2 (s) $ dari sebuah gaya input yang dimasukkan ke keranjang ke keluaran
posisi keranjang, oleh karena itu, diberikan sebagai berikut.
Mengacu pada Inverted Pendulum: halaman System Modeling, fungsi transfer seharga $ P_ {cart} (s) $
didefinisikan sebagai berikut.
Dimana
Menambahkan perintah berikut ke m-file Anda (kira-kira $ P_ {pend} (s) $ dan $ C (s) $ masih
didefinisikan) akan menghasilkan respons dari posisi keranjang terhadap gangguan impulsif yang
sama seperti yang telah kita pertimbangkan.
P_cart = (((I+m*l^2)/q)*s^2 - (m*g*l/q))/(s^4 + (b*(I + m*l^2))*s^3/q - ((M +
m)*m*g*l)*s^2/q - b*m*g*l*s/q);
T2 = feedback(1,P_pend*C)*P_cart;
t = 0:0.01:8.5;
impulse(T2, t);
Seperti yang bisa Anda lihat, posisi gerobak tidak stabil untuk gangguan impuls ini. Oleh karena itu,
walaupun pengendali PID menstabilkan sudut pendulum, desain ini tidak layak diterapkan pada
sistem fisik yang sebenarnya.