Metode Design Root Locus untuk Suspensi Bus dengan Menggunakan Matlab

Jumat, 11 Maret 2016 0 komentar
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
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

Google Translate

 

©Copyright 2009-2013 geovani orlando |