Metode
Design Root Locus untuk Suspensi Truk Dutro 110 SD dengan Menggunakan Matlab
Open Loop System
Dalam hal ini suspensi kita gunakan
menggunakan spesifikasi sebagai berikut:
Massa bodi
bus (m1) =1953 kg,
Massa suspensi (m2) = 250 kg,
Konstanta pegas dari system suspensi (k1) = 80,000 N/m,
Konstanta pegas dari system ban dan roda(k2) = 500,000 N/m,
Konstanta redaman dari system suspensi(b1) = 350 Ns/m.
Konstanta redaman dari system ban dan roda(b2) = 15,020 Ns/m.
Gaya kontrol (u) = gaya dari kontroler yang akan di design
Massa suspensi (m2) = 250 kg,
Konstanta pegas dari system suspensi (k1) = 80,000 N/m,
Konstanta pegas dari system ban dan roda(k2) = 500,000 N/m,
Konstanta redaman dari system suspensi(b1) = 350 Ns/m.
Konstanta redaman dari system ban dan roda(b2) = 15,020 Ns/m.
Gaya kontrol (u) = gaya dari kontroler yang akan di design
Transfer function dari
system
Open loop Sistem
M1 =
1953;
M2 =
250;
K1 =
80000;
K2 =
500000;
b1 =
350;
b2 =
15020
s =
tf('s');
G1 =
((M1+M2)*s^2+b2*s+K2)/((M1*s^2+b1*s+K1)*(M2*s^2+(b1+b2)*s+(K1+K2))-(b1*s+K1)*(b1*s+K1));
step(G1)
maka akan mendapatkan grafik
open loop system sebagai berikut
Dari grafik di atas kita melihat respon system mengalami
under-damped di mana supir dan penumpang akan merasakan sedikit osilasi dan
kemudian truk membutuhkan waktu lama untuk ke keadaan steady state yaitu 40
detik.
Kemudian tambahkan fungsi berikut
G2 =
(-M1*b2*s^3-M1*K2*s^2)/((M1*s^2+b1*s+K1)*(M2*s^2+(b1+b2)*s+(K1+K2))-(b1*s+K1)*(b1*s+K1));
step(0.1*G2)
maka
didapatkan grafik sebagai berikut
Dari
grafik ini terlihat open loop response untuk gangguan step sebesar 10 cm di
mana hal ini menggambar apabila truk mendapatkan gangguan jalanan bergelombang
dengan tinggi 10 cm dibutuhkan waktu 40 second kembali ke keadaan steady state
dan hal ini membuat tidak nyaman pengguna truk.
Dari hasil grafik, ingin dilakukan
perbaikan output dari bus suspensi diantaranya :
- Settling time kurang dari 5 detik
- Overshoot kurang dari 5%
Desain
Root Locus Controller
Dalam
hal ini diingankan system dengan sttling time kurang dari 5 second dan
overshoot kurang dari 10%, maka awalnya kita masukkan command di bawah ini
m1 =
1953;
m2 =
250;
k1 =
80000;
k2 =
500000;
b1 =
350;
b2 =
15020;
nump=[(m1+m2)
b2 k2];
denp=[(m1*m2)
(m1*(b1+b2))+(m2*b1) (m1*(k1+k2))+(m2*k1)+(b1*b2) (b1*k2)+(b2*k1) k1*k2];
G1=tf(nump,denp);
num1=[-(m1*b2)
-(m1*k2) 0 0];
den1=[(m1*m2)
(m1*(b1+b2))+(m2*b1) (m1*(k1+k2))+(m2*k1)+(b1*b2) (b1*k2)+(b2*k1) k1*k2];
G2=tf(num1,den1);
numf=num1;
denf=nump;
F=tf(numf,denf);
Kemudian
untuk melihat pole-pole pada open loop dari system masukkan command berikut
R =
roots(denp)
R
=
-30.6892 +37.1126i
-30.6892 -37.1126i
-0.1404 + 5.9418i
-0.1404 - 5.9418i
Maka
kita tentukan pole dominan yaitu -0.1404 +/- 5.9418i karena nilainya dekat
dengan sumbu imajiner dengan damping ratio yang kecil.
Menggambar root locus
Langkah
awal yang harus dilakukan untuk membuat root locus system berikut yaitu dengan
memasukkan command berikut
rlocus(G1)
z=-log(0.05)/sqrt(pi^2+(log(0.05)^2))
sgrid(z,0)
z
= 0.6901
Menambahkan Notch Filter
Dalam
menggambarkan root locus akan dibutuhkan 2 zero dekat dengan 2 polenya oleh
karena itu akan dicoba memasukkan poles sebesar 30 dan 60 dan zero pada
3+/-3.5i dan commandnya sebagai berikut
z1=3+3.5i;
z2=3-3.5i;
p1=30;
p2=60;
numc=conv([1
z1],[1 z2]);
denc=conv([1
p1],[1 p2]);
C=tf(numc,denc);
rlocus(C*G1)
kemudian
kita mengganti sumbunya untuk melihat root locusnya dengan memasukkan command
berikut
axis([-40
10 -30 30])
z=-log(0.05)/sqrt(pi^2+(log(0.05)^2))
sgrid(z,0)
z = 0.6901
Menemukan gain pada root locus
Sesuai dengan ketentuan awal
yang menginginkan overshoot yang kurang dari 5% dan settling time kurang dari 5
detik maka kita harus menentukan gain yang tepat agar sesuai yang diharapkan
maka kita bisa menambahkan command berikut
[k,poles]=rlocfind(C*G1)
Maka kita akan mendapatkan data
berikut
selected_point =
-5.3436 - 0.2795i
k =
9.6992e+006
poles =
1.0e+002 *
-0.6757 + 2.1529i
-0.6757 - 2.1529i
-0.0589 + 0.1470i
-0.0589 - 0.1470i
-0.0237 + 0.0474i
-0.0237 - 0.0474i
R =
-30.6892 +37.1126i
-30.6892 -37.1126i
-0.1404 + 5.9418i
-0.1404 - 5.9418i
z =
0.6901
Kemudian fungsi alih close
loop system dapat dituliskan sebagai berikut
k = 9.6992e+006;
sys_cl=F*feedback(G1,k*C);
Menggambarkan respon close
loop system
Mendapatkan respon system
close loop dengan memasukkan command berikut
t=0:0.01:2;
step(0.1*sys_cl,t)
title('Closed-Loop Response to 0.1-m High Step w/ Notch Filter')
Dari command di atas
didapatkan grafik respon system sebagau berikut;
Grafik di atas terlihat
overshoot kurang dari 5% dan waktu settling timenya 2 second. Hal ini berarti
kompensator yang kita berikan sudah memenuhi keinginan yang telah ditentukan
sebelumnya.
0 komentar:
Posting Komentar