Plan (Pendahuluan) Sebuah bola ditempatkan pada balok, seperti gambar 1.1 dibawah ini, dimana balok menggelinding denga 1 derajat kebebasan sepanjang balok. Sebuah lengan tuas melekat ke balok disalah satu ujung dan roda gigi servo pada yang lain. Jika roda gigi servo berputar dengan sudut θ , tuas mengubah sudut balok sebesar α. Ketika sudut berubah dari posisi horizontal, gravitasi menyebabkan bola bergulir di sepanjang balok. Sebuah controller akan dirancang untuk system ini sehingga posisi bola dapat dimanipulasi Gambar 1.1 1 | Page
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Plan (Pendahuluan)
Sebuah bola ditempatkan pada balok, seperti gambar 1.1 dibawah ini, dimana balok menggelinding denga 1 derajat kebebasan sepanjang balok. Sebuah lengan tuas melekat ke balok disalah satu ujung dan roda gigi servo pada yang lain.
Jika roda gigi servo berputar dengan sudut θ , tuas mengubah sudut balok sebesar α .
Ketika sudut berubah dari posisi horizontal, gravitasi menyebabkan bola bergulir di
sepanjang balok. Sebuah controller akan dirancang untuk system ini sehingga posisi
bola dapat dimanipulasi
Gambar 1.1
1 | P a g e
Indeks (Parameter)
(m) = massa bola
(R) = jari-jari bola
(d) = lengan tuas offset
(g) = kecepatan gravitasi
(L) = panjang balok
(J) = momen inersia bola
(r) = koordinat posisi bola
(α) = koordinat sudut balok [alpha]
(θ) = sudut roda gigi servo [theta]
Penurunan Rumus
Turunan kedua dari input angle α benar-benar mempengaruhi turunan ke dua dari r. Namun, kita akan mengabaikan hal ini. Persamaan lagrangian gerak bola kemudian akan menjadi seperti berikut :
0=( JR2+m) r+mg sinα−mr α2 (1)
Linearisasi dari persamaan mengenai beam angle, α = 0, memberikan kita perkiraan linear dari sistem :
0=( JR2+m) r=−mgα (2)
Persamaan yang menghubungkan the beam angle dengan the angle of the gear bisa diperkirakan dengan persamaan dibawah ini :
α=dLθ (3)
Kemudian persamaan (3) disubtitusikan ke dalam persamaan ke (2), dan kita akan mendapatkan persamaan baru yaitu :
2 | P a g e
( JR2+m) r=−mgdLθ (4)
Fungsi Alih
Seperti persamaan laplace diatas, maka dapat ditentukan persamaan dibawah ini :
( JR2+m)R (s ) s2=−mgdLθ ( s) (5)
Dengan menyusun ulang persamaan diatas kita dapat menemukan fungsi alih dari sudut roda gigi θ(s) terhadap posisi bola R(s).
P (s )= R(s)θ (s )
= −mgd
L( JR2 +m)1s2
[ mrad
](6)
Dapat dicatat bahwa plant fungsi alih diatas adalah double integrator. Karena itu kestabilan yang rendah akan memunculkan masalah control yang lebih menantang.
State Space
Persamaan sistem linear bisa juga disajikan dalam bentuk state space. Hal ini dapat dilakukan dengan memilih posisi bola (r ) dan kecepatan (r ) sebagai
3 | P a g e
variable state dan sudut roda gigi (θ) sebagai variable input. Maka state space akan ditunjukkan sebagai berikut :
[ rr ]=[0 10 0][rr ]+[ 0
mgd
L( JR2+m) ]θ Namun, untuk state space yang akan kita gunakan modelnya akan sedikit
berbeda. Persamaan yang digunakan tetap yaitu persamaan bola, akan tetapi bukan untuk mengontrol posisi sudut roda gigi (θ), akan tetapi kita akan mengontrol torsi balok. Dibawah ini akan ditampilkan representasi dari system tersebut :
Syarat Design
Kriteria desain dari problem ball&beam adalah :
Settling time kurang dari 3 seconds
Overshoot kurang dari 5%
Representasi Matlab (Persamaan)
>> m = 0.111;
>> R = 0.015;
>> g = -9.8;
>> L = 1.0;
>> d = 0.03;
>> J = 9.99e-6;
>>
>> s = tf('s');
>> P_ball = -m*g*d/L/(J/R^2+m)/s^2
P_ball =
4 | P a g e
0.21
----
s^2
Continuous-time transfer function.
Representai Matlab (State Space)
>> m = 0.111;
>> R = 0.015;
>> g = -9.8;
>> L = 1.0;
>> d = 0.03;
>> J = 9.99e-6;
>>
>> s = tf('s');
>> H = -m*g/(J/(R^2)+m);
>> A = [0 1 0 0
0 0 H 0
0 0 0 1
0 0 0 0];
>> B = [0 0 0 1]';
>> C = [1 0 0 0];
5 | P a g e
>> D = [0];
>> ball_ss = ss(A,B,C,D)
ball_ss =
a =
x1 x2 x3 x4
x1 0 1 0 0
x2 0 0 7 0
x3 0 0 0 1
x4 0 0 0 0
b =
u1
x1 0
x2 0
x3 0
x4 1
c =
x1 x2 x3 x4
y1 1 0 0 0
d =
u1
y1 0
Continuous-time state-space model.
Pzmap
6 | P a g e
Seperti yang dapat kita lithat disamping, kutub tidak terletak di garis sebelah kiri (garis imajiner) yang menyebabkan system loop terbuka akan menjadi tidak stabil yang akan ditampilkan di slide berikut.
Open-Loop Step Response
Dari plot disamping jelas bahwa system tidak stabil di loop terbuka, yang menyebabkan
bola untuk menggelinding langsung ke ujung balok. Oleh karena itu, beberapa metode
pengendalian posisi bola dalam system ini sangat diperlukan. Beberapa desain
controller disediakan untuk mengatasi masalah ini
7 | P a g e
Metode Kontroler PD
8 | P a g e
Fungsi Alih closed-loop disamping akan menjadi :
Penambahan Proportional Control
>> m = 0.111;
>> R = 0.015;
>> g = -9.8;
>> L = 1.0;
>> d = 0.03;
>> J = 9.99e-6;
>> s = tf('s');
>> P_ball = -m*g*d/L/(J/R^2+m)/s^2;
>> Kp = 1;
>> C = pid(Kp);
>> sys_cl=feedback(C*P_ball,1);
>> step(0.25*sys_cl)
axis([0 70 0 0.5])
9 | P a g e
Proportional-Derivative Control
>> m = 0.111;
>> R = 0.015;
>> g = -9.8;
>> L = 1.0;
>> d = 0.03;
>> J = 9.99e-6;
>> s = tf('s');
>> P_ball = -m*g*d/L/(J/R^2+m)/s^2;
>> Kp = 10;
>> Kd = 20;
>> C = pid(Kp,0,Kd);
>> sys_cl=feedback(C*P_ball,1);
>> step(0.25*sys_cl)
10 | P a g e
Dengan menambahkan Derivative (Kd), terbukti akan sangat mengurangi overshoot.
PD Control
Kriteria overshoot terpenuhi tetapi settling time perlu diturunkan sedikit. Untuk
mengurangi waktu penyelesaian kita dapat mencoba meningkatkan Kp sedikit untuk
meningkatkan waktu naik (time rise). Keuntungan derivative (Kd) juga dapat
ditingkatkan untuk mengambil beberapa overshoot yang meningkat Kp. Setelah
bermain dengan gain sedikit, berikut respon step rencana dapat dicapai dengan Kp =
15 dan Kd = 40:
>> m = 0.111;
>> R = 0.015;
>> g = -9.8;
>> L = 1.0;
>> d = 0.03;
>> J = 9.99e-6;
>> s = tf('s');
11 | P a g e
>> P_ball = -m*g*d/L/(J/R^2+m)/s^2;
>> Kp = 15;
>> Kd = 40;
>> C = pid(Kp,0,Kd);
>> sys_cl=feedback(C*P_ball,1);
>> step(0.25*sys_cl)
Keluaran PD Control
Seperti yang dapat kita lihat dari plot disamping semua tujuan pengendalian telah
dipenuhi tanpa menggunakan kontroler integral (settling time untuk contoh ini
dianggap dicapai ketika respon kurang dari 2% dari nilai akhir). Dengan ini, maka
keluaran sudah sesuai dengan syarat desain.
Metode State Space
12 | P a g e
Dengan syarat desain yang sama, kita akan mendesain kontroler untuk sistem fisik
yang memanfaatkan penuh state-feedback control. Desain skematik sistem ditunjukkan
seperti :
Representasi Matlab (Metode State-feedback)
Representasi awal state-space sama seperti yang sudah ditulis sebelumnya :
Representasi State Space
Kemudian akan ditambahkan matriks K :
>> p1 = -2+2i;
>> p2 = -2-2i;
>> p3 = -20;
>> p4 = -80;
>>
>> K = place(A,B,[p1,p2,p3,p4])
K =
1.0e+03 *
1.8286 1.0286 2.0080 0.1040
Closed-loop Response
13 | P a g e
Setelah menambahkan matriks K, maka persamaan state space menjadi :
Sekarang kita dapat mensimulasikan respon closed-loop menjadi input 0.25m step
dengan menggunakan lsim command. Menambahkan beberapa perintah kembali ke
dalam matlab yang sudah ada di slide sebelumnya :
>> t = 0:0.1:5;
>> u = 0.25*ones(size(t));
>> sys_cl = ss(A-B*K,B,C,D);
>> [y,t,x] = lsim(sys_cl,u,t);
>> plot(t,y)
Keluaran Closed-loop Response
Reference Input
14 | P a g e
Sekarang kita ingin menghilangkan error steady state. Berbeda dengan metode desain
yang lainnya, dimana kita mengumpan balikkan keluaran dan membandingkannya
dengan reference input untuk menghitung error, dengan umpan balik kontroler penuh
kita mengumpan balikkan kedua states. Kita perlu menghitung berapakah nilai state
yang seharusnya, mengalikannya dengan gain K yang sudah dipilih, dan menggunakan
nilai baru sebagai referensi kita menghitung input. Ini dapat diselesaikan dengan
menambahkan gain konstan Nbar setelah referensi. Dan gambar skematik dibawah ini
akan menunjukkan hubungan system diatas, yaitu :
>> Nbar=rscale(ball_ss,K)
Nbar =
1.8286e+03
>> t = 0:0.01:5;
>> u = 0.25*ones(size(t));
>> [y,t,x]=lsim(Nbar*sys_cl,u,t);
>> plot(t,y)
Keluaran Closed-loop dengan Reference Input
Sekarang error steady-state sudah dihilangkan dan syarat desain sudah terpenuhi.
15 | P a g e
Model Simulink (Langkah-langkah)
Open new model window di Simulink.
Insert Integrator block dari Continuous library.
Insert Integrator kedua disebelah kanan yang pertama, dan hubungkan
keduanya dengan line.
Berikan label di line yang menghubungkan keduanya "d/dt(r)".
Tarik line dari Integrator kedua dan labeli "r".
Insert Out1 block dari Sinks library dan hubungkan ke "r" signal line. Ini akan
membentuk output sistem
Ganti label dari Out1 block menjadi "r“
Insert Fnc block dari User-Defined Functions library dan hubungkan outputnya
ke input Integrator pertama. Edit the Fcn block dengan cara klik dua kali pada
Fnc block, dan ganti fungsinya menjadi:
16 | P a g e
Insert a Mux block dari Signal Routing library dan hubungkan output-nya ke input
dari Ball-Beam block.
Edit Mux block (dengan cara klik dua kali pada mux block) dan ganti angka input
menjadi 4. The Mux block akan memiliki 4 inputs.
Klik line off the d/dt(r) signal dan hubungkan ke input ke dua dari the Mux block.
Klik line dari r signal dan hubungkan ke input pertama dari Mux block.
Model Simulink (Langkah-langkah)
Insert In block di sebelah kiri model window. Ganti label menjadi "theta".
Insert Gain block dan hubungkan ke theta block. Ganti nilai gain menjadi "d/L".
Hubungkan output dari gain block ke input ke tiga dari Mux block. Label line
dengan "alpha".
Insert Derivative block dari Continuous library dan letakkan dibawah alpha signal
line.
Klik line ke output dari Gain block dan hubungkan ke input dari Derivative block.
Hubungkan output dari Derivative block ke input keempat dari Mux block.
Demo
17 | P a g e
18 | P a g e
Response Open-Loop
Klik new model window (Ctrl-N).
Insert Subsystem block dari Ports & Subsystems library.
Buka Subsystem block dengan cara klik dua kali pada Subsystem block.
Buka model sebelumnya yang sudah di demokan dislide sebelumnya. Select all
model components dengan cara Select All dari Edit menu (Ctrl-A).
Copy model (Ctrl-C).
19 | P a g e
Paste model kedalam Subsystem window (Ctrl-V) didalam Subsystem window
Close Subsystem window. Kemudian terdapat Subsystem block di untitled
window dengan satu input terminal berlabel theta dan satu output terminal
berlabel r.
Labeli Subsystem block menjadi "Ball and Beam Model".
Insert Step block (from the Sources library) dan hubungkan ke input dari Ball and
Beam Model.
Insert Scope block (from the Sinks library) dan hubungkan ke output dari Ball and
Beam Model.
Demo (Response Open-Loop)
20 | P a g e
21 | P a g e
Keluaran (Response Open-Loop)
Response Closed-Loop
Buka kembali respon open loop, kemudian hapus line yang menghubungkan
scope dan step block
Insert Transfer Function block dari Continuous library disebelah kiri Ball and
Beam block, dan hubungkan output ke input dari Ball and Beam block.
Edit Transfer Function block dan ganti numerator menjadi "[1 0.01]" dan
denominator menjadi "[1 5]".
Ganti label dar Transfer Function block menjadi "Lead Compensator".
Insert Gain block disebelah kiri Lead Compensator dan hubungkan output ke
Lead compensator's input.
Ganti nilai Gain menjadi "37.1".
23 | P a g e
Insert Sum block disebelah kiri Gain block dan ganti nilainya menjadi "+-".
Hubungkan output dari Sum ke input dari Gain block.
Klik line dari output ke Ball and Beam model dan hubungkan ke input negatif dari
Sum.
Hubungkan Step block ke input positif dari Sum block