2D Crane Sway Control dengan LQR


Belum lama ini ada seseorang menanyakan aplikasi LQR untuk Crane Sway Control. Jadi tertarik untuk coba-coba buat. Ternyata tidak mudah juga. Walaupun akhirnya bisa dibuat controller dan simulasinya, tetapi ini hanya simulasi dengan pemodelan yang sangat amat sederhana. Masih banyak yang harus dipikirkan untuk aplikasi ke crane yang sebenarnya.

Crane sway control adalah sistem kendali untuk mengendalikan simpangan pada crane/derek. Tujuan dari controller ini adalah untuk bisa memposisikan kabel crane dan meminimisasi simpangan pada kabel. Ketika posisi kabel digeser, tentu kabel akan mengayun. Ayunan ini harus dihilangkan agar penempatan ujung bawah kabel dapat sesuai keinginan dan juga menghindari kecelakaan akibat ayunan tersebut.

Crane yang digunakan pada simulasi ini adalah sejenis tower crane, yang pergerakan kabelnya berdasarkan pergeseran horizontal. Crane ini dapat dimodelkan sebagai pendulum yang bergantung dari suatu kereta/cart.

Pada model ini, diasumsikan gerakan sistem hanya berada pada bidang XY (tidak ada ayunan/gerakan pada sumbu Z). Pemodelan dilakukan dengan linearisasi pada sudut θ yang kecil, sehingga persamaan state spacenya menjadi:

Tujuan dari controller adalah untuk bisa memposisikan cart sesuai input reference (tracking) dan mengecilkan θ agar posisi beban di ujung kabel sama dengan posisi cart.

θ dapat dikecilkan/dibuat nol dengan menggunakan LQR dan kemudian fitur tracking ditambahkan untuk x. Diasumsikan semua state dapat diakses/diperoleh datanya sehingga tidak membutuhkan observer/estimator. Maka, gain feedback K dapat diperoleh dengan metode LQR seperti biasa.

Kemudian, tracking untuk x dilakukan dengan menghitung matrix F dan N. Namun, ada satu hal yang perlu diperhatikan pada kalkulasi tersebut. Input reference r hanya perlu diikuti oleh variable x sehingga kalkulasi F dan N hanya menggunakan baris kedua matrix C = [0 0 1 0]. Jadi, kalkulasinya menjadi seperti ini:

Desain dilakukan dengan parameter:

m = 10 kg

M = 10 kg

l = 10 meter

g = 9.8 m/s²

Kemudian simulasi dilakukan dengan parameter m = 10 kg (crane tanpa beban) dan m = 100 kg (crane mengangkut beban 90 kg). Berikut adalah hasil simulasinya:

Beban crane sengaja diubah ketika dilakukan simulasi karena pada realitanya beban crane tidak akan selalu sama, tergantung benda yang diangkut crane. Dilihat terjadi perbedaan performa ketika beban crane diubah. Dengan beban yang lebih berat, tracking posisi x jadi lebih buruk tetapi regulasi theta semakin bagus.

Untuk menghindari perilaku sistem yang tidak diinginkan, harus dibuat controller yang memberikan sifat robust sehingga perubahan beban crane tidak akan mengurangi performa atau bahkan menghasilkan ketidakstabilan. Perlu diingat juga bahwa panjang kabel crane juga akan selalu bervariasi karena crane perlu memindahkan benda pada suatu tempat ke tempat lain yang berbeda ketinggian. Dengan adanya ketidakpastian pada sistem (perubahan beban, panjang kabel, dan juga angin), mungkin bisa mengadopsi adaptive controller atau bisa juga fuzzy logic untuk pengendalian crane.

Simulasi ini masih berupa simulasi yang sederhana dan kurang bisa mereplika kejadian yang sebenarnya. Gerakan pendulum crane yang sebenarnya tidak hanya pada satu bidang, tetapi pada 2 bidang (3 dimensi – XYZ). Sepertinya LQR saja tidak akan kuat untuk menghandle masalah controller ini, perlu pendekatan jenis controller yang lain.

Jika Anda menemukan kesalahan pada hasil kerja saya ini, jangan sungkan-sungkan memberitahu saya. Terus terang saya belum membuktikan perilaku sistem dan controller ini secara matematis, dan baru hanya sejauh simulasi pada matlab. mfile untuk simulasi dapat diperoleh di sini, sedangkan blok simulink dapat menggunakan blok seperti ini.

About Junot D. Ojong

Author is a control systems engineer at a private company in Jakarta.
This entry was posted in Ah, teori! and tagged , , , , , , , , , , , , . Bookmark the permalink.

10 Responses to 2D Crane Sway Control dengan LQR

  1. Leo Arifwibawa says:

    ko, ini orde 2 atau orde 3 sistemnya?

  2. orde 2 tiap state

    tapi 2 states, bs jadi multi output (2 output)

  3. Leo Arifwibawa says:

    kalau yang orde 3 kira2 contoh yg bagusnya apa ya?

  4. Leo Arifwibawa says:

    kalau yg orde 3, contoh yg bisa dianalisisnya kira2 apa ya?

  5. Leo Arifwibawa says:

    ko, itu output thetanya kok yg di leo ga bs kluar ya? soalnya sistemnya yg buat representasi output teta itu ga observe-able… itu kalo sistemnya ditinjau secara terpisah(Hnya dianggep kepisah)

  6. Pingback: 2010 in review | Akirajunto's Blog

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s