Sebuah kereta (cart) yang dilengkapi dengan inverted pendulum, ditunjukkan pada gambar di bawah ini. Bila kereta didorong dengan gaya impulse sebesar F, sistem kontrol mampu menjaga pendulum pada posisi seimbang dalam arah tegak ke atas.
1. PRAKTIKUM 6 : INVERTED PENDULUM CONTROL
SYSTEM
LUSIANA DIYAN NINGRUM
3 D4 TEKNIK KOMPUTER B
FIRJA HANIF MAULANA
2210181051
BAYU SANDI MARTA
PRAKTIKUM SISTEM PENGATURAN KOMPUTER
19 NOVEMBER 2020
2. BAB 1
DASAR TEORI
Pada bab ini dibahas mengenai teknik perancangan sistem kontrol untuk inverted
pendulum. Seperti pada bab-bab sebelumnya, pembahasan dimulai dari pemodelan,
yang kemudian dilanjutkan dengan perancangan sistem kontrol dengan kriteria
tertentu, dan dengan menggunakan metode perancangan PID.
6.1 Pemodelan Inverted Pendulum
Pada pemodelan sistem inverted pendulum akan dibahas mengenai persamaan sistem,
criteria perancangan sistemkontrol, open loop response, dan close loop system.
2.1.1 Persamaan Sistem
Sebuah kereta (cart) yang dilengkapi dengan inverted pendulum, ditunjukkan pada
gambar di bawah ini. Bila kereta didorong dengan gaya impulse sebesar F, sistem
kontrol mampu menjaga pendulumpada posisi seimbang dalam arah tegak ke atas.
Pada contoh ini, kita asumsikan harga besaran-besaran pada sisteminverted pendulum
sbb:
M mass of the cart 0.5 kg
m mass of the pendulum 0.2 kg
b friction of the cart 0.1 N/m/sec
l length to pendulumcenter of mass 0.3 m
I inertia of the pendulum 0.006 kg m2
F force applied to the cart
x cart position coordinate
ΞΈ pendulum angle from vertical
Untuk mendapatkan model matematika dari sistem inverted pendulum, perhatikan free
body diagram di bawah ini.
3. Dengan menjumlahkan gaya-gaya pada kereta (cart) dalam arah horisontal didapatkan
persamaan
παΊ + παΊ + π = πΉ
Penjumlahan gaya-gaya pada pendulum dalam arah horisontal didapatkan persamaan
untuk N.
παΊ + ππΣͺπππ π β πππ2
π πππ = π
Dengan substitusi persamaan, kita dapatkan persamaan pertama untuk pergerakan
system
( π + π)αΊ + παΊ + ππΣͺ cos π β πππ2
π πππ = πΉ (1)
Untuk mendapatkan persamaan kedua, jumlahkan gaya-gaya pada pendulum dalam
arah vertikal. Dari proses perhitungan aljabar didapatkan
πsin π + π cos π β π π sin π = πππ + παΊπππ π
Untuk mengeliminasi P dan N pada persamaan di atas, jumlahkan momen disekitar
centroid dari pendulum untuk mendapatkan persamaan berikut.
βπππ πππ β πππππ π = πΌΣͺ
Dengan menggabungkan dua persamaan terakhir, kita dapatkan persamaan dinamika
kedua untuk pergerakan system
( πΌ + ππ2)Σͺ + ππππ πππ = βππαΊπππ π (2)
Karena matlab bekerja pada fungsi-fungsi linier, maka kita lakukan linierisasi
persamaan pada kondisi ΞΈ=Ο. Dengan asumsi bahwa ΞΈ=Ο+Ρ mewakili sudut kecil dari
arah vertikal keatas), maka kita dapatkan cos ΞΈ = -1, sin ΞΈ = -Ρ dan (dΞΈ/dt)2 = 0.
Setelah proses linierisasi, maka dua persamaan dinamika dari pergerakan sistem
pendulum menjadi sbb (u mewakili input) :
( π + π)αΊ + παΊ β πππ = π’
( πΌ + ππ2) π β πππβ = ππαΊ
4. Transfer Function
Dengan melakukan transformasi Laplace pada persamaan dinamika pendulum yang
telah dilinierisasi, didapatkan transfer function sistempendulum sbb :
State Space
Representasisistem pendulum dalam bentukstate dirumuskan sbb :
Matrik C pada representasistate space menunjukkan bahwa posisi kereta dan posisi
pendulum merupakan bagian dari output.
6.1.2 Kriteria Perancangan
Untuk perancangan dengan PID, kita hanya akan mengontrol posisi pendulum. Hal ini
terjadi karena teknik-teknik tersebut hanya sesuai diaplikasikan pada sistem SISO
(single input single output). Sehingga tidak ada kriteria perancangan yang meliputi
posisi kereta.
Kita asumsikan bahwa sistem mulai dari keadaan posisi tegak seimbang, dan
kemudian kita memberi gaya impulse. Pendulum harus kembali pada posisi tegak ke
atas dalam waktu 5 sec, dan tidak pernah bergerak lebih dari 0.05 rad dari arah
vertikal. Jadi, kriteria perancangan sistemadalah
Settling time of less than 5 seconds
Pendulum angle never more than 0.05 radians from the vertical
Dengan metoda state space, kita bisa mengatur sistem multi output, sehingga
pada problem inverted pendulum ini kita akan berusaha untuk mengontrol posisi
5. pendulum dan posisi kereta secara bersamaan. Untuk membuat perancangan lebih
menarik, kita akan memberikan step input pada kereta. Kereta harus mencapai posisi
yang dikehendaki dalam 5 sec, dan mempunyai rise time di bawah 0.5 sec. Kita juga
akan membatasi overshoot pada pendulum sampai 20 deg (0.35 rad), dan posisi
keseimbangan pendulum harus dicapai dibawah 5 sec. Jadi, kriteria perancangan
sistemkontrol dengan metoda state space adalah sbb :
Settling time for cart and pendulumposition of less than 5 seconds
Rise time for cart position of less than 0.5 seconds
Overshoot for pendulumposition of less than 20 degrees (0.35 radians)
6.1.3 Open Loop Response
Open loop response untuksistempendulum dengan representasitransfer function
dalam program matlab ditulis sbb :
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;
num = [m*l/q 0]
den = [1 b*(i+m*l^2)/q -(M+m)*m*g*l/q -b*m*g*l/q]
t=0:0.01:5;
impulse(num,den,t);
axis([0 1 0 60]);
ylabel('Pendulum Position (rad)');
Seperti terlihat pada plot, response menunjukkan bahwa open loop bukanlah
merupakan sistem yang stabil. Bila diinginkan, perilaku sistem lebih jauh dapat
6. diamati dengan mengubah batasan axis. Berikut ini adalah representasi state space
untuk sistem pendulum dan karakteristik open loop dalam program matlab. Pada
contoh ini, step input sebesar 0.2 diterapkan pada sistempendulum.
M = 0.5;
m = 0.2;
b = 0.1;
i = 0.006;
g = 9.8;
l = 0.3;
p = i*(M+m)+M*m*l^2;
A = [0 1 0 0;
0 -(i+m*l^2)*b/p (m^2*g*l^2)/p 0;
0 0 0 1;
0 -(m*l*b)/p m*g*l*(M+m)/p 0]
B = [0;
(i+m*l^2)/p;
0;
m*l/p]
C = [1 0 0 0;
0 0 1 0]
D = [0;
0]
T=0:0.05:10;
U=0.2*ones(size(T));
[Y,X]=lsim(A,B,C,D,U,T);
plot(T,Y);
axis([0 2 0 100]);
title('Step Response');
xlabel('Time (sec)');
ylabel('Position');
7. Garis biru (sebelah kanan) mewakili posisi kereta, dan garis hijau (sebelah kiri)
mewakili posisi pendulum. Telihat jelas dari plot bahwa controller harus dirancang
untuk memperbaiki dinamika dari sistem.
6.2 Inverted Pendulum Control dengan PID
Pada pembahasan teknik kontrol PID pada sistem inverted pendulum dibahas dua
persoalan yaitu strategi perancangan kontrol posisi pendulum dan pengaruhnya pada
posisi kereta.
6.2.1 Kontrol Posisi Pendulum
Teknik kontrol untuk problem ini sedikit berbeda dengan problem kontrol standar.
Karena kita sedang mencoba untuk mengontrol posisi pendulum untuk kembali ke
posisi vertikal setelah adanya gangguan, sinyal referensi yang kita tracking berharga
nol. Gaya yang diaplikasikan pada kereta dapat ditambahkan sebagai gangguan dalam
bentuk impulse. Blok diagram sistempendulum digambarkan seperti di bawah ini.
Blok diagram di atas dapat ditata ulang sehingga menjadi sbb :
8. Close loop transfer function dapat dihitung sbb :
Dengan mengacu pada representasi program dalam matlab, close loop transfer
function dapat dirumuskan sbb :
Aplikasi kontrol PID pada sistem inverted pendulum diperlihatkan pada program di
bawah 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;
num = [m*l/q 0];
den = [1 b*(i+m*l^2)/q -(M+m)*m*g*l/q -b*m*g*l/q];
kd = 1;
kp = 1;
ki = 1;
numPID = [kd kp ki];
denPID = [1 0];
numc = conv(denPID,num)
denc = polyadd(conv(denPID,den),conv(numPID,num))
t=0:0.01:5;
impulse(numc,denc,t);
axis([0 1.5 0 40]);
9. title('Impulse Response : Kp=1 Ki=1 Kd=1');
ylabel('Pendulum Position (rad)');
Dari plot di atas terlihat bahwa response masih belum stabil. Mari kita mencoba
menaikkan proportional gain dan melihat efeknya pada sistem. Bila diatur nilai
proportional gain sebesar 100 akan didapatkan response seperti di bawah ini.
10. Settling time sudah dapat diterima pada harga sekitar 2 sec. Pengaturan integral gain
tidak begitu diperlukan dalam hal ini. Derivative gain perlu diatur kembali untuk
mendapatkan response yang lebih baik. Dengan proportional gain sebesar 100,
integral gain sebesar 1, dan derivative gain sebesar 20 diperoleh response sbb :
Dapat dilihat dari hasil di atas bahwa overshoot telah direduksi sehingga pendulum
tidak bergerak menjauhi vertikal lebih dari 0.05 rad. Semua kriteria perancangan telah
dipenuhi.
6.2.2 Pengaruh Kontrol Posisi Pendulum Pada Posisi Kereta
Pada bagian ini kita akan melihat hal yang menarik yaitu bagaimana kondisi posisi
kereta bila controller hanya dirancang untuk menyelesaikan permasalahan kontrol
posisi pendulum. Pertama, mari kita melihat blok diagram yang lebih lengkap yang
melibatkan output berupa posisi kereta disamping output berupa posisi pendulum.
Feedback loop pada diagram di atas mewakili controller yang telah dirancang untuk
posisi pendulum. Transfer function untuk posisi kereta terhadap gaya impulse, dengan
PID feedback controller yang telah dirancang, dirumuskan sbb :
11. Mengacu pemrograman dalam matlab, transfer function dapat dirumuskan di bawah
ini. Pembilang G1(s) dan G2(s) diwakili oleh num1 dan num2, sedangkan penyebut
G1(s) dan G2(s) diwakili oleh den1 dan den2.
Karena den1=den2 maka perumusan di atas menjadi lebih sederhana sbb :
Transfer function untuk plant G2(s) yang berupa kereta dengan inverted pendulum
dirumuskan sbb :
Dari perumusan di atas, dibuat programmatlab berikut ini untuk melihat posisi kereta.
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;
num1 = [m*l/q 0 0];
den1 = [1 b*(i+m*l^2)/q -(M+m)*m*g*l/q -b*m*g*l/q 0];
num2 = [(i+m*l^2)/q 0 -m*g*l/q];
den2 = den1;
kd = 20;
kp = 100;
ki = 1;
numPID = [kd kp ki];
denPID = [1 0];
numc = conv(denPID,num2);
denc = polyadd(conv(denPID,den1),conv(numPID,num1));
t=0:0.01:5;
impulse(numc,denc,t);
ylabel('Cart Position (m)');
12. Dari plot di atas terlihat bahwa kereta bergerak pada arah negatif dengan kecepatan
konstan. Meskipun PID controller dapat menstabilkan posisi (sudut) pendulum, namun
perancangan ini kurang memungkinkan implementasi sistemsecara fisik.
14. BAB 3
EXPERIMENTAL SETUP
Open Loop Response Representasi Transfer Function
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;
num = [m*l/q 0]
den = [1 b*(i+m*l^2)/q -(M+m)*m*g*l/q -b*m*g*l/q]
t=0:0.01:5;
impulse(num,den,t);
axis([0 1 0 60]);
ylabel('Pendulum Position (rad)');
Open Loop Response Representasi State Space
M = 0.5;
m = 0.2;
b = 0.1;
i = 0.006;
g = 9.8;
l = 0.3;
p = i*(M+m)+M*m*l^2;
A = [0 1 0 0;
0 -(i+m*l^2)*b/p (m^2*g*l^2)/p 0;
0 0 0 1;
0 -(m*l*b)/p m*g*l*(M+m)/p 0]
B = [0;
(i+m*l^2)/p;
0;
m*l/p]
C = [1 0 0 0;
0 0 1 0]
D = [0;
0]
T=0:0.05:10;
U=0.2*ones(size(T));
[Y,X]=lsim(A,B,C,D,U,T);
plot(T,Y);
axis([0 2 0 100]);
title('Step Response');
15. xlabel('Time (sec)');
ylabel('Position');
PID Control
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;
num = [m*l/q 0];
den = [1 b*(i+m*l^2)/q -(M+m)*m*g*l/q -b*m*g*l/q];
kd = 1;
kp = 1;
ki = 1;
numPID = [kd kp ki];
denPID = [1 0];
numc = conv(denPID,num);
denc = polyadd(conv(denPID,den),conv(numPID,num));
t=0:0.01:5;
impulse(numc,denc,t);
axis([0 1.5 0 40]);
title('Impulse Response : Kp=1 Ki=1 Kd=1');
ylabel('Pendulum Position (rad)');
Kp = 100
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;
num = [m*l/q 0];
den = [1 b*(i+m*l^2)/q -(M+m)*m*g*l/q -b*m*g*l/q];
kd = 1;
kp = 100;
ki = 1;
numPID = [kd kp ki];
denPID = [1 0];
numc = conv(denPID,num);
denc = polyadd(conv(denPID,den),conv(numPID,num));
16. t=0:0.01:5;
impulse(numc,denc,t);
axis([0 2.5 -0.2 0.2]);
title('Impulse Response : Kp=100 Ki=1 Kd=1');
ylabel('Pendulum Position (rad)');
Kp = 100, Ki = 1, Kd = 20
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;
num = [m*l/q 0];
den = [1 b*(i+m*l^2)/q -(M+m)*m*g*l/q -b*m*g*l/q];
kd = 20;
kp = 100;
ki = 1;
numPID = [kd kp ki];
denPID = [1 0];
numc = conv(denPID,num);
denc = polyadd(conv(denPID,den),conv(numPID,num));
t=0:0.01:5;
impulse(numc,denc,t);
axis([0 2.5 -0.2 0.2]);
title('Impulse Response : Kp=100 Ki=1 Kd=20');
ylabel('Pendulum Position (rad)');
Posisi Kereta
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;
num1 = [m*l/q 0 0];
den1 = [1 b*(i+m*l^2)/q -(M+m)*m*g*l/q -b*m*g*l/q 0];
num2 = [(i+m*l^2)/q 0 -m*g*l/q];
den2 = den1;
kd = 20;
kp = 100;
17. ki = 1;
numPID = [kd kp ki];
denPID = [1 0];
numc = conv(denPID,num2);
denc = polyadd(conv(denPID,den1),conv(numPID,num1));
t=0:0.01:5;
impulse(numc,denc,t);
ylabel('Cart Position (m)');
TUGAS
Desainlah sebuah PID Controler yang diterapkan pada sebuah control pendulum
dengan kriteria sbb :
Overshoot pendulum< 0.1 rad
Settling time < 1 sec
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;
num = [m*l/q 0];
den = [1 b*(i+m*l^2)/q -(M+m)*m*g*l/q -b*m*g*l/q];
kd = 10;
kp = 100;
ki = 1;
numPID = [kd kp ki];
denPID = [1 0];
numc = conv(denPID,num);
denc = polyadd(conv(denPID,den),conv(numPID,num));
t=0:0.01:5;
impulse(numc,denc,t);
axis([0 2.5 -0.2 0.2]);
title('Impulse Response ');
ylabel('Pendulum Position (rad)');
18. BAB 4
HASIL PENGUJIAN
Open Loop Response Representasi Transfer Function
Plot menunjukkan bahwa respon open loop systemsudah stabil.
Open Loop Response Representasi State Space
Garis biru (sebelah kanan) mewakili posisi kereta, dan garis hijau (sebelah kiri)
mewakili posisi pendulum. Telihat jelas dari plot bahwa controller harus dirancang
untuk memperbaiki dinamika dari sistem.
19. PID Control
Plot di atas menunjukkan bahwa response sistem masih belum stabil karena tidak
dapat kembali ke titik kesetimbangannya.
20. Dengan menaikkan proportional gain sebesar 100 diperoleh respon settling time pada
waktu 2 sec.
Untuk mereduksi overshoot, dapat dilakukan dengan memberikan nilai proportional
gain sebesar 100, integral gain sebesar dan derivative gain sebesar 20 sehingga
pendulum tidak bergerak menjauhi vertical lebih dari 0.05 rad. Sehingga, hasil akhir
dari response sistemini sudah memenuhi kriteria perancangan.
21. Plot di atas menunjukkan bahwa kereta bergerak menuju arah negative dengan
kecepatan konstan, sehingga perancangan ini kurang tepat untuk diimplementasikan
sekalipun PID Controller mampu menstabilkan posisi pendulum.
TUGAS
Dengan memberikan nilai derivative gain sebesar 10, proportional gain sebesar 100
dan integral gain sebesar 1 diperoleh hasil response sistem bahwa overshoot telah
direduksi sehingga pendulum tidak bergerak menjauhi vertical lebih dari 0.1 rad serta
settling time sudah dapat diterima pada harga sekitar 1 sec. Hal ini berarti semua
kriteria perancangan telah terpebuhi.
22. BAB 5
ANALISA DAN KESIMPULAN
ANALISA
Pada praktikum dua ini merupakan praktikum untuk membuat Inverted Pendulum
Control System menggunakan metode perancangan PID. Sistem pendulum terbalik
(inverted pendulum) adalah sistem yang mensimulasikan sebuah mekanisme kontrol
untuk mengatur permasalahan kestabilan.
Pada praktikum ini terdapat dua pokok pembahasan mengenai inverted pendulum
control system, yakni pemodelan sistem inverted pendulum dan perancangan sistem
inverted pendulum dengan PID. Di dalam membuat pemodelan sistem, salah satu
yang harus dilakukan adalah melihat open loop response terhadap s tep input dengan
menggunakan rumus transfer function berikut :
( πΌ + ππ2) π β πππβ = ππαΊ
Dengan memasukkan kondisi yang diminta pada tugas nomor satu, dimana sebuah
PID Controler pada sebuah control pendulum dengan overshoot pendulum < 0.1 rad
dan settling time < 1 sec. Dengan mengacu pada rumus perhitungan close loop
transfer function sebagai berikut :
Dari rumus di atas masih belum menghasilkan response yang stabil karena nilai
derivative gain, proportional gain dan integral gain masih sebesar 1 sehingga respon
sistembelum bisa kembali ke titik kesetimbangan.
23. Untuk mengatur settling time agar dapat diterima pada harga kurang dari 1 sec, maka
nilai proportional gain dinaikkan sebesar 99 sehingga nilainya sekarang menjadi 100.
Selanjutnya, untuk memperoleh hasil response sistem yang baik dilakukan
penambahan nilai derivative gain sebanyak 9 sehingga nilai derivative gain menjadi
24. 10. Dengan memberikan nilai derivative gain sebesar 10, proportional gain sebesar
100 dan integral gain sebesar 1 diperoleh hasil response sebagai berikut.
Dengan memberikan nilai derivative gain sebesar 10, proportional gain sebesar 100
dan integral gain sebesar 1 diperoleh hasil response sistem bahwa overshoot telah
direduksi sehingga pendulum tidak bergerak menjauhi vertical lebih dari 0.1 rad serta
settling time sudah dapat diterima pada harga sekitar 1 sec. Hal ini berarti semua
kriteria perancangan telah terpenuhi.
25. Pada penambahan nilai pada derivative gain sebanyak 10 sehingga sekarang nilai
derivative gain menajdi 20, didapatkan hasil response sistem bahwa overshoot telah
direduksi sehingga pendulum tidak bergerak menjauhi vertical lebih dari 0.05 rad serta
settling time sudah dapat diterima pada harga sekitar 1 sec. Hal ini berarti semua
kriteria perancangan telah terpenuhi dengan response terbaik.
KESIMPULAN
Berdasarkan hasil percobaan dan analisa sistem, dapat ditarik kesimpulan
bahwa menentukan kriteria sistem penting untuk dilakukan sebelum membuat desain
sistem agar keluaran (output) yang dihasilkan oleh sistem dapat sesuai dengan yang
diharapkan. Dalam membuat perancangan sistem, untuk memperbaiki rise time dapat
menggunakan proportional control (Kp) karena semakin besar nilai Kp maka rise time
akan semakin cepat, sedangkan untuk melakukan eliminasi steady state error
menggunakan integral control dan derivative control untuk memperbaiki overshot dari
sistemyang akan dibangun.