Halaman Judul
TUGAS AKHIR - TF 141581
PERANCANGAN KONTROL DIRECT-DRIVE ROBOT ARM DENGAN MENGGUNAKAN SLIDING MODE CONTROL IMIL FADLI IMRAN NRP 2412 100 072 Dosen Pembimbing Dr. Ir. Totok Soehartanto, DEA.
JURUSAN TEKNIK FISIKA Fakultas Teknologi Industri Institut Teknologi Sepuluh Nopember Surabaya 2017
i
Halaman ini sengaja dikosongkan
ii
Halaman Judul
FINAL PROJECT - TF 141581
CONTROL DESIGN OF DIRECT-DRIVE ROBOT ARM BASED ON SLIDING MODE CONTROL IMIL FADLI IMRAN NRP 2412 100 072
Supervisor : Dr. Ir. Totok Soehartanto, DEA.
Department Of Engineering Physics Faculty Of Industrial Technology Sepuluh Nopember Institute Of Technology Surabaya 2016
iii
Halaman ini sengaja dikosongkan
iv
v
Halaman ini sengaja dikosongkan
vi
Halaman ini sengaja dikosongkan
vii
Halaman ini sengaja dikosongkan
viii
PERANCANGAN KONTROL DIRECT-DRIVE ROBOT ARM DENGAN MENGGUNAKAN SLIDING MODE CONTROL Nama : Imil Fadli Imran NRP : 2412100072 Jurusan : Teknik Fisika, FTI - ITS Pembimbing I : Dr. Ir.Totok Soehartanto, DEA. Abstrak—Robot lengan direct-drive arm memiliki sistem dinamik nonlinear berupa fungsi inersia dan central coriolis dan gangguan berupa pengaruh gaya gesekan dan gravitasi. Pada penelitian ini sliding mode control dirancang untuk mengendalikan robot lengan agar dapat bergerak sesuai dengan posisi dan kecepatan yang diinginkan. Pada penelitian ini dilakukan perancangan sliding mode control pada robot lengan direct-drive arm secara matematis kemudian dilakukan penghitungan kestabilan sistem dengan menggunakan metode Lyapunov. Untuk memverifikasi sistem kendali yang dirancang dilakukan simulasikan pada Simulink Matlab. Berdasarkan hasil simulasi, sliding mode control mampu mengontrol posisi dan kecepatan robot lengan secara asimptotik. Error yang didapat sangat kecil yaitu 0.000875 (error posisi) dan 0.001295 (error kecepatan) untuk set point konstan, 0.000435 (error posisi) dan 0.001032 (error kecepatan) untuk set point sinusoidal, 0.004345 (error posisi) dan 0.005207 (error kecepatan) untuk set point kondisi awal beda. Robot lengan memiliki akurasi pergerakan yang lebih tinggi saat gain k = 100 dibandingkan pada saat gain k = 0,1 , akan tetapi proses simulasi saat k = 0,1 lebih cepat dibandingkan saatk = 100.
Kata Kunci : Robot lengan direct-drive arm, sliding mode nontrol, metode Lyapunov
ix
Halaman ini sengaja dikosongkan
x
CONTROL OF DIRECT-DRIVE ROBOT ARM BASED ON SLIDING MODE CONTROL Name : Imil Fadli Imran NRP : 2412100072 Departement : Engineering Physics – Faculty of Industrial Technology - ITS Supervisor I : Dr. Ir.Totok Soehartanto, DEA. Abstract—Direct-drive robot arm has nonlinear dynamics such as functions of inertia and coriolis and disturbances such as the effects of friction and gravitation. In this reserach, sliding mode control is developed to control the robot arm to follow the desired position and velocity. In this resrearch, sliding mode control is proposed to maintain direct-drive arm robot, then Lyapunov stability theorem is applied to analyze the stability. Simulink Matlab is used for simulation in order to verify the proposed control design. Based on simulation results, sliding mode control is able to stabilize robot arm asymptotically. Error system are 0.000875 and 0.001295 for error position and velocity respectively, where set point is constant 1. For desired trajectories are in the form of sinusoidal, the error systems are 0.000435 and 0.001032 for error position and velocity respectively, where the initial conditions of both arms are equal. In the case of different initial conditions, the error systems are 0.004345 and 0.005207 for error position and velocity respectively. The accuracy of controller is higher for k = 100 compared to k = 0.1, however the simulation process for k = 0.1 is faster than k = 100. Keywords: Direct drive robot arm, sliding mode control, Lyapunov method
xi
Halaman ini sengaja dikosongkan
xii
KATA PENGANTAR Bismillaahi was sholaatu was salaamu ‘alaa Rasuulillaah. Alhamdulillaahilladzii bini’matihi tatimmush-shaalihaat, Segala puji bagi Allah Subhanahu wa Ta’ala atas Berkat, Rahmat dan Nikmat-Nya yang senantiasa tercurahkan kepada hamba, sehingga dapat menyelesaikan laporan tugas akhir Program Studi S1 Teknik Fisika ITS yang berjudul “Perancangan Kontrol Direct-Drive Robot Arm dengan Menggunakan Sliding Mode Control.” Tugas akhir ini disusun guna memenuhi persyaratan untuk memperoleh gelar Sarjana Teknik pada Jurusan Teknik Fisika, Fakultas Teknologi Industri, Institut Teknologi Sepuluh Nopember Surabaya. Selama menyelesaikan tugas akhir ini penulis telah banyak mendapatkan bantuan dari berbagai pihak. Oleh karena itu pada kesempatan ini penulis ingin mengucapkan terima kasih yang sebesar-besarnya kepada: 1. Agus Muhamad Hatta, S.T., M.Si, Ph.D, selaku Ketua Jurusan Teknik Fisika. 2. Dr. Ir. Totok Soehartanto, DEA. selaku pembimbing tugas akhir atas segala ilmu dan bimbingannya yang diberikan. 3. Hendra Cordova, S.T., M.T., selaku selaku dosen wali yang selalu membantu dan memberi motivasi kepada penulis selama menjadi mahasiswa di Jurusan Teknik Fisika 4. Totok Ruki Biyanto, S.T., M.T., Ph.D, selaku kepala laboratorium Rekayasa Instrumentasi dan Kontrol. 5. Bapak dan Ibu dosen Teknik Fisika yang telah memberikan ilmunya sehingga penulis dapat menyelesaikan perkuliahan hingga Tugas Akhir 6. Papa rahimahullah dan mama, selaku orang tua penulis, uni, uda, dan abang selaku kakak penulis yang selalu memberikan dukungan. 7. Seluruh mahasiswa Teknik Fisika, terutama angkatan 2012 yang merupakan teman-teman seangkatan penulis 8. Serta kepada pihak-pihak terkait lainnya yang telah banyak membantu, yang tidak dapat penulis sebutkan satu persatu.
xiii
Penulis menyadari bahwa penulisan laporan ini masih banyak kekurangan di dalamnya. Oleh karena itu penulis sangat mengharapkan kritik dan saran yang membangun dari semua pihak guna perbaikan di masa mendatang. semoga laporan Tugas Akhir ini bermanfaat bagi kita semua. Surabaya, Januari 2017
Penulis
xiv
DAFTAR ISI HALAMAN JUDUL..................................................................... i HALAMAN PENGESAHAN ..................................................... v ABSTRAK................................................................................... ix ABSTRACT ................................................................................ xi KATA PENGANTAR .............................................................. xiii DAFTAR ISI .............................................................................. xv DAFTAR GAMBAR ............................................................... xvii DAFTAR TABEL ..................................................................... xix BAB I PENDAHULUAN 1.1 Latar Belakang ...................................................................... 1 1.2 Rumusan Masalah ................................................................. 3 1.3 Tujuan ................................................................................... 3 1.4 Batasan Masalah ................................................................... 3 BAB II TINJAUAN PUSTAKA 2.1 Robot Lengan........................................................................ 5 2.2 Sistem Dinamik Robot Lengan ............................................. 6 2.3 Sliding Mode Control ......................................................... 11 2.4 Perancangan Sliding Mode Control .................................... 14 2.5 Metode Lyapunov ............................................................... 16 BAB III METODOLOGI PENELITIAN 3.1 Pengumpulan Data Robot Lengan ...................................... 19 3.2 Pemodelan Sliding Mode Control....................................... 21 3.3 Pemodelan Dinamik Robot Lengan ............................ 26 3.4 Metode Lyapunov ............................................................... 33 3.5 Simulasi Sliding Mode Control .......................................... 37 BAB IV HASIL DAN PEMBAHASAN 4.1 Trayektori yang diinginkan berupa konstan ....................... 41 4.2 Trayektori yang diinginkan berupa sinusoidal .................... 49 4.3 Pengaruh gain k terhadap respon sistem ............................. 58
xv
4.4 Sistem dengan kondisi awal lengan 1 berbeda dengan lengan 2 ..................................................................................... 63 BAB V PENUTUP 5.1 Kesimpulan ......................................................................... 71 DAFTAR PUSTAKA ................................................................ 73 LAMPIRAN
xvi
DAFTAR GAMBAR Gambar 2.1 Direct-drive robot arm ............................................. 6 Gambar 2.2 Pergerakan Trayektori Variabel Keadaan Pada Sliding Surface ....................................................... 13 Gambar 2.3 Diagram Blok sistem yang akan dikontrol ............. 16 Gambar 3.1 Diagram Alir Penelitian ........................................ 19 Gambar 3.2 Sketsa lengang robot beserta variabel variabelnya ........................................................... 20 Gambar 3.3 Diagram alir sliding mode control ......................... 22 Gambar 3.4 Diagram blok kontrol robot lengan ........................ 37 Gambar 3.5 Wiring diagram blok sistem pada simulink ............ 38 Gambar 4.1 Respon posisi lengan 1 dengan set point posisi 1 .. 41 Gambar 4.2 Respon posisi lengan 2 dengan set point posisi 2 .. 43 Gambar 4.3 Respon kecepatan lengan 1 .................................... 45 Gambar 4.4 Respon kecepatan lengan 2 .................................... 47 Gambar 4.5 Chattering respon sistem ....................................... 49 Gambar 4.6 Respon posisi lengan 1 dengan dengan set point sinusoidal ............................................................... 50 Gambar 4.7 Respon posisi 2 robot lengan dengan input sinusoidal ............................................................... 52 Gambar 4.8 Respon kecepatan lengan 1 dengan dengan set point sinusoidal ............................................................... 54 Gambar 4.9 Respon kecepatan lengan 2 dengan dengan set point sinusoidal ............................................................... 56 Gambar 4.10 Chatering input sinusoidal ................................... 58 Gambar 4.11 Respon posisi lengan 1 robot lengan dengan gain k 0,3 ......................................................................... 59 Gambar 4.12 Respon posisi lengan 2 robot lengan dengan gain k 0,3 ....................................................................... 60 Gambar 4.13 Respon kecepatan lengan 1 robot lengan dengan gain k 0,3 .............................................................. 61 Gambar 4.14 Respon kecepatan lenagn 2 robot lengan dengan gain k 0,3 .............................................................. 62 Gambar 4.15 Respon posisi 1 robot lengan dengan variasi kondisi awal .......................................................... 63 xvii
Gambar 4.16 Respon posisi 2 robot lengan dengan variasi kondisi awal .......................................................... 65 Gambar 4.17 Respon kecepatan 1 robot lengan dengan variasi kondisi awal .......................................................... 67 Gambar 4.18 Respon kecepatan 1 robot lengan dengan variasi kondisi awal .......................................................... 69
xviii
DAFTAR TABEL Tabel 3.1 Nilai karakteristik dari robot lengan yang digunakan .................................................................... 21 Tabel 3.2 Perubahan nilai sliding surface 𝑠 terhadap waktu ...... 24 Tabel 3.3 Perubahan nilai torsi 𝜏 terhadap waktu ....................... 26 Tabel 3.4 Perubahan Nilai inersia 𝑀(𝑞) terhadap waktu ........... 28 Tabel 3.5 Perubahan Nilai Inersia 𝐶(𝑞, 𝑞̇ ) terhadap waktu ........ 29 Tabel 3.6 Perubahan nilai fungsi gaya gesek 𝑓(𝑞̇ ) terhadap waktu ........................................................................... 30 Tabel 3.7 Perubahan nilai fungsi gravitasi 𝑔(𝑞) terhadap waktu ........................................................................... 31 Tabel 3.9 Perubahan nilai turunan fungsi Lyapunov terhadap waktu ........................................................................... 36 Tabel 4.1 Nilai Posisi lengan 1 terhadap waktu.......................... 42 Tabel 4.2 Nilai posisi lengan 2 terhadap waktu .......................... 44 Tabel 4.3 Nilai Kecepatan lengan 1 terhadap waktu .................. 46 Tabel 4.4 Nilai Kecepatan lengan 2 terhadap waktu .................. 48 Tabel 4.5 Nilai posisi lengan 1 terhadap waktu .......................... 51 Tabel 4.6 Nilai posisi lengan 2 terhadap waktu .......................... 53 Tabel 4.7 Nilai kecepatan lengan 1 terhadap waktu ................... 55 Tabel 4.8 Nilai kecepatan lengan 2 terhadap waktu ................... 57 Tabel 4.9 Nilai posisi lengan 1 terhadap waktu .......................... 64 Tabel 4.10 Nilai posisi lengan 2 terhadap waktu ........................ 66 Tabel 4.11 Nilai kecepatan lengan 1 terhadap waktu ................. 68 Tabel 4.12 Nilai kecepatan lengan 2 terhadap waktu ................. 70
xix
Halaman ini sengaja dikosongkan
xx
BAB I PENDAHULUAN 1.1
Latar Belakang
Robot lengan direct-drive arm adalah robot lengan yang memiliki dinamik yang nonlinear berupa fungsi inersia dan central coriolis. Fungsi inersia robot lengan merupakan sebuah fungsi yang berhubungan energi kinetik robot lengan. Fungsi inersia dipengaruhi oleh massa, panjang, panjang pusat massa, nilai inersia dan sudut antar lengan robot terhadap percepatan robot lengan. Fungsi central coriolis berisikan hubungan antara massa lengan 2, pusat massa lengan 2 dan panjang lengan 1 terhadap kecepatan lengan 2 dan posisi sudut antara lengan 2 dan lengan 1. Robot lengan ini memiliki gangguan pada sistem dinamik berupa pengaruh gaya gesekan dan pengaruh gravitasi. Diantara metoda yang digunakan untuk mengendalikan robot lengan yang bersifat nonlinear adalah dengan melakukan linearisasi fungsi nonlinear sistem dinamik. Metoda linearisasi ini memiliki kelemahan yang bisa mengakibatkan sistem gagal terkontrol atau terkontrol dengan error yang besar. Hal ini dikarenakan nilai linearisasi sistem dinamik tidak sama dengan sistem dinamik robot yang sesungguhnya sehingga sistem kontrol gagal memberikan masukan kontrol yang semestinya. Error ini bisa menyebabkan tidak efektifnya robot lengan dalam bekerja bahkan dapat membuat robot lengan tidak stabil dan rusak. Untuk itu diperlukan sistem kontrol yang bisa mengendalikan robot lengan secara akurat, diantaranya adalah dengan mengontrol robot lengan tanpa melakukan linearisasi. Di samping itu, sistem kontrol juga harus mampu mengatasi gangguan yang mucul pada sistem dinamik. Kondisi dinamik robot ini menjadi tantangan tersendiri bagi penulis dalam merancang sistem kontrol robot lengan. Model direct-drive robot arm yang digunakan pada penelitian ini dibuat oleh CICESE Research center yang diterbitkan pada jurnal “experimental evaluation of model-based controllers on a direct-drive robot arm” oleh Reyes Fernando, 1
2 Kelly Rafael pada tahun 2000. Direct-drive robot arm adalah lengan mekanis di mana poros dari sendi secara langsung digabungkan ke rotor motor dengan torsi tinggi. Meskipun directdrive arm bersifat nonlinier, Reyes Fernando dan Kelly Rafael [1] menggunakan PD Control dalam mengendalikan direct-drive arm yang mana PD Control merupakan kontrol linier. Padahal kontrol linier memiliki kekurangan dalam mengontrol sistem nonlinier. Meskipun sistem nonlinear bisa dikontrol dengan sistem kontrol linear. Salah satu metode yang sering digunakan adalah dengan melinearisasi sistem nonlinear. Hasil linearisasi adalah pendekatan untuk persamaan nonlinear, bukan nilai sebenarnya dari persamaan nonlinear itu sendiri. Faktor ini bisa mengakibatkan sistem kontrol linear gagal mengontrol sistem dengan dinamik yang nonlinear atau berhasil mengontrol sistem nonlinear dengan galat yang besar. Dari hal-hal diatas diperlukan kontrol nonlinier terhadap direct-drive robot arm agar akurasi dan kecepatan robot bertambah. Kontrol nonlinier yang digunakan dalam penilitian ini adalah Sliding Mode Control. Sliding mode control adalah sebuah metode teknik kontrol yang mampu mengatasi gangguan pada sistem, tanpa menyebabkan sistem terganggu. Sliding mode control terdiri dari bagian utama yang berfungsi membawa dan mengarahkan sinyal error menuju lintasan luncur/sliding surface dan bagian yang lain berfungsi mempertahankan sinyal mengikuti atau tetap berada pada sliding surface. (Haryo, 2011) Prinsip kerja sliding mode control adalah membawa trayektori sistem baik itu linear ataupun nonlinear mengikuti lintasan luncur atau sliding surface s=0, kemudian trayektori tersebut dijaga agar terus bergerak sesuai dengan lintasan luncur tersebut. Sliding mode control memaksa trayektori sistem agar bergerak sesuai permukaan luncur yang dapat mengakibatkan terjadinya osilasi pada lintasan luncur. Kondisi sistem yang berosilasi ini disebut chattering. Kondisi chattering ini disebabkan oleh sliding mode control yang memaksa sliding surface sistem tetap berada pada posisi nol, sehingga sistem bergerak secara zigzag terhadap lintasan luncur. Fenomena chattering ini mempengaruhi sistem kontrol dalam menjaga kestabilan sistem.
3 Semakin kecil chattering, maka sistem semakin bergerak sesuai dengan yang diinginkan (Haryo, 2011). Untuk itu pada penelitian ini akan dipergunakan metode Lyapunov dalam menjaga stabilitas gerak robot lengan. 1.2
Rumusan Masalah Permasalahan yang muncul pada tugas akhir ini adalah sebagai berikut : 1. Apakah Sliding Mode Control dapat menjaga akurasi gerakan robot direct-drive arm terhadap trayektori gerakannya? 2. Apakah metode lyapunov dapat menjaga stabilitas gerakan robot direct-drive arm? 1.3
Tujuan Adapun tujuan yang ada pada tugas akhir ini adalah: 1. Merancang sliding mode control agar dapat mengendalikan robot lengan untuk bergerak sesuai posisi dan kecepatan yang diinginkan. 2. Merancang sistem kontrol yang dapat mengendalikan robot lengan secara stabil dan memenuhi kriteria kestabilan Lyapunov.
1.4
Batasan Masalah Batasan masalah dalam tugas akhir ini antara lain : 1. Pada penelitian ini, sistem dinamik robot lengan yang digunakan direct-drive robot arm yang memiliki sistem dinamik nonlinear berupa fungsi inersia dan central coriolis. Di samping itu robot lengan ini juga memiliki gangguan berupa pengaruh gaya gesekan dan gravitasi. Kondisi sistem dinamik, parameter robot lengan dan gangguan yang digunakan pada penelitian ini sesuai dengan data yang diberikan oleh Reyes Fernando dan Kelly Rafael. 2. Kontrol yang digunakan pada penelitian ini adalah sliding mode control. Sliding mode control dirancang agar robot lengan bergerak menuju titik kesetimbangan atau sliding
4 surface s=0. Sliding surface merupakan total error posisi dan error kecepatan robot lengan. Error posisi adalah perbandingan posisi aktual lengan terhadap posisi yang diinginkan dan error kecepatan adalah perbandingan kecepatan aktual lengan terhadap kecepatan yang diinginkan. Saat robot lengan tidak bergerak sesuai posisi dan kecepatan yang diinginkan, maka saat itu sliding surface robot lengan tidak berada pada posisi nol. Sliding mode control menjaga agar sliding surface sistem tetap berada pada posisi nol. Hal ini mengimplikasikan bahwa sliding mode control mengatur posisi dan kecepatan robot lengan agar sesuai dengan posisi dan kecepatan yang diinginkan. 3. Metode yang dipergunakan untuk menguji stabilitas gerakan robot lengan adalah metode Lyapunov. Metode kestabilan Lyapunov memberikan garansi bahwa sistem akan menuju titik kesetimbangan atau robot lengan menuju sliding surface s=0 saat waktu menuju tak hingga. Dengan kondisi ini, maka error posisi dan kecepatan robot lengan akan selalu berkurang hingga menuju nol seiring waktu. Sistem kontrol sliding mode control dirancang untuk mengatur nilai torsi robot lengan secara terus menerus agar kriteria kestabilan Lyapunov ini terpenuhi. 4. Untuk memverifikasi kemampuan sliding mode control, dilakuan simulasi pada Simulink Matlab dengan memberikan beberapa skenario set point. Skenario itu yaitu robot lengan bergerak dengan set point posisi tertentu, set point kecepatan konstan dan set point posisi dan kecepatan yang berubah-ubah.
BAB II TINJAUAN PUSTAKA 2.1 Robot Lengan Robot lengan yang digunakan dalam penelitian ini diambil dari jurnal “Experimental Evaluation of Model-Based Controllers on Direct-Drive Robot Arm” dan “Experimental Evaluation of Identification Schemes on a Direct Drive Robot” ditulis oleh Fernando Reyes dan Rafael Kelly yang mana robot lengan ini dibuat oleh CICESE Research Center dengan karakteristik directdrive vertical robot arm yang mempunyai 2 degree of freedom (DOF) pada masing – masing lengan. Robot lengan ini memiliki 2 lengan yang dihubungkan oleh sebuah sendi (revolute joint) (Gambar 2.1). Robot lengan dilengkapi dengan joint position sensor, motor driver, Digital Signal Processor (DSP) papan kontrol gerakan, komputer host 486 PC dan perangkat lunak yang digunakan sebagai HMI ( Human Machine Interface) userfriendly. (Reyes, Kelly, 2001) Kedua lengan terbuat dari aluminium 6061 dengan panjang 0,45 m dan lengan ini digerakkan oleh brushless direct-drive servo aktuator untuk menggerakkan sendi. Keuntungan dari jenis directdrive actuator adalah sistem bebas dari reaksi balik dan gesekan sendi lebih rendah secara signifikan dibandingkan dengan aktuator dengan gear drive. Motor yang digunakan di robot lengan adalah model DM1200-A dan DM1015-B dari Parker Compumotor masing-masing untuk bahu dan siku sendi. Servo dioperasikan dalam mode torsi sehingga motor bertindak sebagai sumber torsi dan motor menerima tegangan analog sebagai referensi sinyal torsi. Dalam konfigurasi ini Motor DM 1200-A mampu memberikan 200 Nm torsi output dan motor DM1015-B 15 Nm. (Reyes, Kelly, 2001) Informasi posisi robot lengan diperoleh dari encoders tambahan yang terletak pada motor yang memiliki resolusi 1.024.000 p / rev untuk motor pertama dan 655.360p / rev untuk yang kedua. Akurasi untuk motor adalah 30 arc-detik. (Reyes, Kelly, 2001) 5
6
Gambar 2.1 Direct-drive robot arm (Reyes, Kelly, 2001) Lengan 1 terhubung dengan sumbu utama dan memiliki sebuah motor penggerak yang dapat bergerak 3600 dengan masukan berupa 𝜏1. Lengan 2 terhubung dengan lengan 1 dan memiliki sebuah motor penggerak yang dapat bergerak 3600 dengan masukan berupa 𝜏2. Posisi q1 adalah jarak antara posisi lengan 1 terhadap sumbu utama dan q2 adalah jarak antara posisi lengan 1 terhadap posisi lengan 1. Lengan 1 memiliki panjang yang sama dengan lengan 2 yaitu 0.45 m, akan tetapi memiliki massa yang jauh berbeda. Lengan 1 memiliki massa 23,092 kg dan lengan lengan 2 memiliki massa 1,285 kg. Pada kenyataannya, posisi lengan 2 terhadap sumbu utama dipengaruhi oleh posisi lengan 1, maka untuk penyederhanaan memodelkan sistem, Fernando Reyes dan Rafael Kelly (Reyes, Kelly, 2001) menjadikan posisi lengan 1 sebagai acuan posisi lengan 2. 2.2 Sistem Dinamik Robot Lengan Direct-drive robot arm pada laporan ini memiliki sitem dinamik sebagai berikut: 𝑀(𝑞)𝑞̈ + 𝐶(𝑞, 𝑞̇ )𝑞̇ + 𝑓(𝑞̇ ) + 𝑔(𝑞) = 𝜏 (2.1) dimana :
7
𝑞 adalah 2 𝑥 1 vektor perpindahan sendi. 𝑞̇ adalah 2 𝑥 1 vektor kecepatan sendi. 𝜏 adalah 2 𝑥 1 vektor input torsi, 𝑀(𝑞) adalah 2 𝑥 2 definit positif manipulator matrik inersia, 𝐶(𝑞, 𝑞̇ ) adalah 2 𝑥 2 matrik sentripetal dan torsi coriolis, 𝑔(𝑞) adalah 2 𝑥 1 vektor torsi terhadap gravitasi, dan 𝑓(𝑞̇ ) adalah 𝑛 𝑥 1 vektor gesekan torsi. Sistem dinamik robot lengan ini berupa fungsi percepatan 𝑞̈ , kecepatan 𝑞̇ dan posisi 𝑞 robot lengan dan hubungannya terhadap fungsi inersia, central coriolis, fungsi gesekan dan fungsi gravitasi robot lengan. (Reyes, Kelly, 2000) Persamaan 2.1 diatas dapat diubah menjadi: 𝑔1 𝜏1 𝑓 𝑀 𝑀12 𝑞̈ 1 𝐶 𝐶12 𝑞̇ 1 [ 11 ] + [ 11 ] + [ 1 ] + [𝑔 ] = [𝜏 ] 𝑀21 𝑀22 𝑞̈ 2 𝐶21 𝐶22 𝑞̇ 2 𝑓2 2 2 (2.2) Dimana:
𝑀(𝑞) = [
𝐴1 + 2𝐴2 cos 𝑞2 𝐴3 + 𝐴2 cos 𝑞2
𝐴3 + 𝐴2 cos 𝑞2 ] 𝐴3
−2𝐴2 sin(𝑞2 ) 𝑞̇ 2 𝐶(𝑞, 𝑞̇ ) = [ 𝐴2 sin(𝑞2 ) 𝑞̇ 1 𝑓(𝑞̇ ) = [
(2.3)
−𝐴2 sin(𝑞2 ) 𝑞̇ 2 ] (2.4) 0
𝐴6 𝑞̇ 1 + 𝐴8 𝑠𝑔𝑛(𝑞̇ 1 ) ] 𝐴7 𝑞̇ 2 +𝐴9 𝑠𝑔𝑛(𝑞̇ 2 )
(2.5)
𝐴4 sin 𝑞1 + 𝐴5 sin(𝑞1 + 𝑞2 ) ] 𝐴5 sin(𝑞1 + 𝑞2 )
(2.6)
𝑔(𝑞) = [
2 2) 𝐴1 = 𝑚1 𝑙𝑐𝑙 + 𝑚2 (𝑙12 + 𝑙𝑐𝑙 + 𝐼1 + 𝐼2
(2.7)
𝐴2 = 𝑚2 𝑙1 𝑙𝑐2
(2.8)
8 2 𝐴3 = 𝑚2 𝑙𝑐2 + 𝐼2
(2.9)
𝐴4 = 𝑔(𝑙𝑐1 𝑚1 + 𝑚2 𝑙1 )
(2.10)
𝐴5 = 𝑔𝑚2 𝑙𝑐2
(2.11)
𝐴6 = 𝑏1
(2.12)
𝐴7 = 𝑏2
(2.13)
𝐴8 = 𝑓𝑐1
(2.14)
𝐴9 = 𝑓𝑐2
(2.15)
Keterangan: 𝑞1 = Posisi lengan 1 𝑞2 = Posisi lengan 2 𝑞̇ 1 = Kecepatan lengan 1 𝑞̇ 2 = Kecepatan lengan 2 Untuk mendapatkan keluaran plant robot lengan dilakukan pensubtitusian parameter robot lengan ke dalam persamaan dinamik. Dari persamaan 2.1 didapat persamaan 𝑞̈ (𝑡) sebagai berikut: 𝑞̈ = 𝑀(𝑞)−1 (𝜏 − 𝐶(𝑞, 𝑞̇ )𝑞̇ − 𝑓(𝑞̇ ) − 𝑔(𝑞))
(2.16)
dimana 𝑞 adalah 2 𝑥 1 vektor perpindahan sendi dan 𝑞̇ adalah 𝑛 𝑥 1 vektor kecepatan sendi. Vektor 𝑞 adalah state dari sistem dinamik. Masukan control robot lengan adalah torsi 𝜏, dimana 𝜏 adalah 2 𝑥 1 vektor. Matriks inersia 𝑀(𝑞) adalah 2 𝑥 2 matriks yang bersifat definit positif dan memiliki fungsi nonlinear. Matrix 𝑀(𝑞) ini merupakan fungsi momen inersia berisikan hubungan antara massa lengan 1 dan 2, panjang lengan 1 dan 2 robot, panjang pusat massa lengan 1
9 dan 2 dan simpangan sudut antar lengan 2 robot. Panjang pusat massa lengan 1 berada pada titik joint lengan 1 dengan sumbu utama dan panjang pusat massa lengan 2 berada pada titik joint antara lengan 2 dan lengan 1. Hal ini dapat dilihat pada gambar 2.2. Matrik sentripetal dan torsi coriolis 𝐶(𝑞, 𝑞̇ ) adalah 2 𝑥 2 matriks dan juga memiliki fungsi nonlinear. Matrix 𝐶(𝑞, 𝑞̇ ) ini merupakan fungsi sentripetal dan torsi coriolis dari robot lengan berisikan hubungan antara masaa lengan 2, panjang pusat massa lengan 2 dan panjang lengan 1 terhadap kecepatan lengan 2 dan posisi sudut antara lengan 2 dan lengan 1. Pengaruh faktor gesekan torsi yang terdapat pada titik joint robot dipresentasikan dalam fungsi 𝑓(𝑞̇ ) yang berupa vektor 2 𝑥 1. Pada lengan 1, faktor gesekan dipengaruhi oleh koofesien coulomb lengan 1 dan gaya gesekan antara lengan 1 dengan sumbu utama terhadap kecepatan lengan 1. Berdasarkan referensi, 𝑓𝑐1 = 7,17 Nm pada saat kecepatan lengan 1 positif dan 𝑓𝑐1 = −8,049 Nm pada saat kecepatan lengan 1 negatif. Nilai positif dan negatif dari kecepatan lengan menunjukkan arah pergerakan robot lengan. Pada lengan 2, faktor gesekan dipengaruhi oleh koofesien coulomb lengan 2 dan koofisien gesekan pada joint lengan 2 dan lengan 1 terhadap kecepatan lengan 2. Fungsi 𝑓(𝑞̇ ) ini merupakan salah satu bentuk gangguan pada sistem dinamik robot lengan. Vektor torsi terhadap gravitasi dipresentasikan dalam fungsi 𝑔(𝑞) dalam bentuk 2 𝑥 1 vektor. Fungsi ini merupakan salah satu bentuk gangguan pada robot lengan yang dipengaruhi oleh gaya gravitasi, massa lengan kedua lengan, panjang pusat massa lengan kedua lengan dan panjang lengan 1. (Reyes, Kelly, 2000) Persamaan 2.16 dapat ditulis dalam bentuk matriks sebagai berikut: 𝑔1 𝑓 𝑀 𝑀12 −1 𝜏1 𝐶 𝐶12 𝑞̇ 1 ] ([𝜏 ] − [ 11 ] − [ 1 ] − [𝑔 ]) (2.17) 𝑞̈ = [ 11 𝑀21 𝑀22 𝐶21 𝐶22 𝑞̇ 2 𝑓2 2 2 Dengan mensubstitusikan nilai-nilai parameter dinamik yang terdapat pada tabel 2.1 terhadap 𝑞̈ (𝑡), maka sistem dinamik robot lengan dapat ditulis sebagai sebagai berikut: (Markus, Elisha, 2013)
10 − 𝑞̈ (𝑡) = [
𝑌1 +𝑌2
𝑍1 𝑌3 +𝑌4
]
(2.18)
𝑍2
dimana 𝑌1 , 𝑌2 , 𝑌3 , 𝑌4 , 𝑍1 , dan 𝑍2 adalah sebagai berikut: 𝑌1 = 1,7𝑒 8 𝑠𝑔𝑛(𝑞̇ 2 ) − 7,2𝑒 14 𝑠𝑔𝑛(𝑞̇ 1 ) + 𝑒 14 𝜏1 − 𝑒 14 𝜏2 cos(𝑞2 ) 𝑌2 = 1,42𝑒 14 cos(𝑞2 ) + 8,4𝑒 12 𝑞̇ 1 2 cos(𝑞2 ) + 6,9𝑒 12 𝑞̇ 1 2 sin(𝑞2 )cos(𝑞2 ) − 26900 𝑠𝑖𝑛(𝑞1 + 𝑞2 ) + 1,75𝑒 13 𝑞̇ 2 + 1,5𝑒 14 𝑠𝑖𝑛(𝑞1 + 𝑞2 )𝑐𝑜𝑠(𝑞2 ) + 1,44𝑒 13 𝑞̇ 2 𝑐𝑜𝑠(𝑞2 ) − 2,28𝑒 14 𝑥1 + 1,67𝑒 13 𝑞̇ 1 𝑞̇ 2 𝑠𝑖𝑛 + 8,38𝑒 12 𝑞̇ 2 2 𝑠𝑖𝑛(𝑞2 ) − 3,47𝑒 15 𝑠𝑖𝑛(𝑞1 ) 8 𝑌3 = 4,1𝑒 𝑠𝑔𝑛(𝑞̇ 2 ) − 2,9𝑒 7 𝑠𝑔𝑛(𝑞̇ 2 ) + 𝑒 7 𝜏1 − 2,3𝑒 8 𝜏2 𝑌3 = 1,4𝑒 6 𝑞̇ 1 𝑞̇ 2 𝑠𝑖𝑛(𝑞2 )𝑐𝑜𝑠(𝑞2 ) + 4,1𝑒 8 sin(𝑞1 + 𝑞2 )𝑐𝑜𝑠(𝑞2 ) + 2,9𝑒 6 𝑐𝑜𝑠(𝑞2 ) − 2,98𝑒 8 𝑠𝑖𝑛(𝑞1 )𝑐𝑜𝑠(𝑞2 ) + 1,96𝑒 7 𝑞̇ 1 𝑠𝑖𝑛(𝑞2 ) + 1,76𝑒 6 𝑞̇ 1 𝑞̇ 2 𝑠𝑖𝑛(𝑞2 ) + 1,4𝑒 6 𝑞̇ 1 2 𝑠𝑖𝑛(𝑞2 )𝑐𝑜𝑠(𝑞2 ) + 7022𝑞̇ 2 2 𝑠𝑖𝑛(𝑞2 )𝑐𝑜𝑠(𝑞2 ) + 4,1𝑒 7 𝑞̇ 2 𝑍1 = −2,2𝑒 14 + 6𝑒 10 𝑐𝑜𝑠(𝑞2 ) + 6,9𝑒 12 𝑐𝑜𝑠 2 (𝑞2 ) 𝑍2 = −2,2𝑒 7 + 6,114𝑐𝑜𝑠(𝑞2 ) + 7,02𝑒 5 𝑐𝑜𝑠 2 (𝑞2 ) Persamaan −
𝑌1 +𝑌2 𝑍1
merupakan fungsi dinamik lengan 1 dalam
bentuk persamaan percepatan 𝑞̈ 1 setelah disubstitusikan dengan 𝑌 +𝑌 parameter robot lengan. Persamaan − 3 4 merupakan fungsi 𝑍2
dinamik lengan 2 setelah disubstitusikan dengan parameter robot bentuk persamaan percepatan 𝑞̈ 2 . 2.3 Sliding Mode Control Dalam mengontrol suatu sistem diperlukan pemodelan pada sistem tersebut. Namun pada sistem nonlinier seringkali pemodelan tidak sesuai dengan keadaan sistem sebenarnya. Ketidak tepatan dapat berasal dari parameter plant yang tidak diketahui, atau representasi sistem dinamik yang digunakan
11 (misalnya, pemodelan gesekan sebagai fungsi linear, atau mengabaikan struktur mode dalam sistem mekanik ). (Slotine, 1991) Ketidakpastian dalam pemodelan dibagi menjadi dua kelompok yaitu: a. structured (or parametric) uncertainties yaitu adanya beberapa parameter dinamik yang tidak diketahui. b. unstructured uncertainties (or unmodeled dynamics) yaitu tidak diketahui struktur dinamik sistem itu sendiri. (Slotine, 1991) Untuk mengatasi ketidakpastian dalam pemodelan sistem diperlukan kontrol nonlinier dalam mengendalikannya. Salah satu kontrol nonlinier yang sering dipakai adalah Sliding mode control. Sliding mode control adalah sebuah metode teknik kontrol yang mampu mengatasi gangguan pada sistem, tanpa menyebabkan sistem terganggu. Sliding mode control terdiri dari bagian utama yang berfungsi membawa dan mengarahkan sinyal error menuju lintasan luncur/sliding surface dan bagian yang lain berfungsi mempertahankan sinyal mengikuti atau tetap berada pada sliding surface. (Tan, Siew-Chong, 2012) Prinsip kerja sliding mode control adalah membawa trayektori sistem baik itu linear ataupun nonlinear mengikuti lintasan luncur atau sliding surface s=0, kemudian trayektori tersebut dijaga agar terus bergerak sesuai dengan lintasan luncur tersebut. Sliding mode control memaksa trayektori sistem agar bergerak sesuai permukaan luncur yang dapat mengakibatkan terjadinya osilasi pada lintasan luncur. Kondisi sistem yang berosilasi ini disebut chattering. Kondisi chattering ini disebabkan oleh sliding mode control yang memaksa sliding surface sistem tetap berada pada posisi nol, sehingga sistem bergerak secara zigzag terhadap lintasan luncur. Fenomena chattering ini mempengaruhi sistem kontrol dalam menjaga kestabilan sistem. Semakin kecil chattering, maka sistem semakin bergerak sesuai dengan yang diinginkan. (Tan, Siew-Chong, 2012)
12 Keunggulan utama dari sliding mode control adalah mempunyai sifat robust (kokoh) sehingga dapat mengatasi sistem kontrol dengan parameter yang cenderung berubah-ubah (Tan, Siew-Chong, 2012). Sistem kontrol ini memiliki kekokohan/robustness terhadap ketidakpastian parameter sistem dinamik dan gangguan yang mucul. Keunggulan utama dari Sliding mode control adalah mempunyai sifat robust (kokoh) sehingga dapat mengatasi sistem kontrol dengan parameter yang cenderung berubah-ubah (Tan, Siew-Chong, 2012). Sistem kontrol ini kokoh karena menyediakan sebuah metoda perancangan sistem yang tidak peka terhadap ketidakpastian parameter lingkungan dan gangguan dari luar. Pada prinsipnya, sliding mode control menggunakan sebuah hukum kontrol pensaklaran berkecepatan tinggi (high-speed switching) untuk membawa trajektori status dari sistem linier atau non linier ke dalam sebuah permukaan tertentu. (Slotine, 1991) a. Sliding surface Sliding surface atau permukaan luncur dipilih dengan pertimbangan trayektori status sistem dapat menuju permukaan tersebut dimanapun kondisi awalnya dalam waktu yang terbatas, serta trayektori status sistem dapat dipertahankan disekitar permukaan luncur tersebut. Permukaan luncur merupakan komponen penting dari sliding mode control sebagai tempat trayektori keadaan meluncur dari kondisi awal (initial condition) menuju keadaan yang diinginkan (reference point). Permukaan luncur didefinisikan sebagai 𝑆. (Tan, Siew-Chong, 2012) Lintasan sistem akan tetap dipermukaan jika: 𝑑 𝑆(𝑥, 𝑡) = 0 (2.19) 𝑑𝑡
Robot lengan yang digunakan pada penelitian ini memiliki orde 2. Sliding surface dihitung berdasarkan error posisi dan error kecepatan. Perhitungan sliding surface untuk robot lengan pada BAB 3.
13 b. Kondisi sliding Pada Sliding Mode Control dilakukan perancangan control law agar bergerak menuju ke permukaan sliding dan meluncur pada permukaan tersebut untuk semua t ≥ 0 dan berada pada kondisi sliding. Kondisi sliding dari metode Sliding mode control, dimana trayektori keadaan bergerak meluncur pada garis lurus s=0 yang merupakan permukaan sliding, ditunjukkan pada Gambar 2.2. (Tan, Siew-Chong, 2012)
Gambar 2.2 Pergerakan Trayektori Variabel Keadaan Pada Sliding Surface (Tan, Siew-Chong, 2012) 2.4 Perancangan Sliding Mode Control Tahapan pertama dalam merancang sliding mode control adalah dengan menentukan sliding surface sistem. Nilai sliding surface dapat ditentukan dengan menggunakan persamaan berikut: 𝑑
𝑛−1
𝑆(𝑒, 𝑡) = ( + 𝜆) 𝑒(𝑡) (2.20) 𝑑𝑡 dimana n adalah orde sistem dan 𝑒(𝑡) adalah error posisi. Dari persamaan dinamik 2.1 dapat diketahui bahwa robot lengan memiliki orde 2 dengan error 𝑒(𝑡) = 𝑞 − 𝑞𝑠𝑒𝑡 𝑝𝑜𝑖𝑛𝑡 . Dengan demikian sliding surface sistem robot lengan adalah sebagai berikut: (Elferik,2013) 2−1 𝑑 𝑆(𝑒, 𝑡) = ( + 𝜆) 𝑒(𝑡) 𝑑𝑡
14 𝑑𝑒(𝑡)
= + 𝜆𝑒(𝑡) 𝑑𝑡 dimana: 𝑑𝑒(𝑡) = error kecepatan (𝑒1 ) 𝑑𝑡 𝑒(𝑡) = error posisi (𝑒2 ) 𝜆 = gain (penguat)
(2.21)
Fungsi sliding surface di atas dapat ditulis sebagai berikut: 𝑆(𝑒, 𝑡) = 𝑒1 (𝑡) + 𝜆𝑒2 (𝑡)
(2.22)
dimana untuk 𝑒1 dan 𝑒2 adalah sebagai berikut: 𝑒1 = 𝑞̇ − 𝑞̇ 𝑠𝑒𝑡 𝑝𝑜𝑖𝑛𝑡 𝑒2 = 𝑞 − 𝑞𝑠𝑒𝑡 𝑝𝑜𝑖𝑛𝑡 𝑒1 dan 𝑒2 dalam matriks adalah sebagai berikut:
(2.23) (2.24)
𝑞̇ 1𝑠𝑒𝑡𝑝𝑜𝑖𝑛𝑡 𝑞̇ ] 𝑒1 = [ 1 ] − [ (2.25) 𝑞̇ 2 𝑞̇ 2𝑠𝑒𝑡𝑝𝑜𝑖𝑛𝑡 𝑞1𝑠𝑒𝑡𝑝𝑜𝑖𝑛𝑡 𝑞1 ] 𝑒2 = [𝑞 ] − [𝑞 (2.26) 2𝑠𝑒𝑡𝑝𝑜𝑖𝑛𝑡 2 sehingga persamaan sliding surface dapat ditulis dalam matriks sebagai berikut: 𝑞1𝑠𝑒𝑡𝑝𝑜𝑖𝑛𝑡 𝑞̇ 1𝑠𝑒𝑡𝑝𝑜𝑖𝑛𝑡 𝑞1 𝑞̇ 𝑆 ] + 𝜆 [𝑞 ] − [𝑞 ] (2.27) 𝑆(𝑒, 𝑡) = [ 1 ]=[ 1 ] − [ 𝑆2 𝑞̇ 2 𝑞̇ 2𝑠𝑒𝑡𝑝𝑜𝑖𝑛𝑡 2𝑠𝑒𝑡𝑝𝑜𝑖𝑛𝑡 2 Sliding surface robot lengan merupakan vektor 2 𝑥 1 yang terdiri dari 𝑆1 dan 𝑆2 . Nilai 𝑆1 adalah sliding surface lengan 1 dan 𝑆2 adalah sliding surface lengan dua. Fungsi error posisi adalah 𝑒1 dalam bentuk vektor 2 𝑥 1 dan fungsi error kecepatan adalah 𝑒2 dalam bentuk vektor 2 𝑥 1. Gain sliding mode error terdiri atas 𝜆1 dan 𝜆2 dan merupakan bilangan positif. Turunan sliding surface 2.21 adalah sebagai berikut: ̇ 𝑆 = 𝑒̇1 (𝑡) + 𝜆𝑒̇2 (𝑡) = 𝑒̇1 (𝑡) + 𝜆𝑒1 (𝑡) = (𝑞̈ − 𝑞̈ 𝑠𝑒𝑡 𝑝𝑜𝑖𝑛𝑡 ) + 𝜆𝑒1 (𝑡) (2.28)
15 dengan mensubstitusikan persamaan 2.16 ke dalam persamaan 2.28, maka diperoleh 𝑆̇ = 𝑀(𝑞)−1 (𝜏 − 𝐶(𝑞, 𝑞̇ )𝑞̇ − 𝑓(𝑞̇ ) − 𝑔(𝑞) − 𝑞̈ 𝑠𝑒𝑡 𝑝𝑜𝑖𝑛𝑡 + 𝜆𝑒1 (𝑡) 𝑆̇ = 𝑀(𝑞)−1 (𝜏 − 𝐶(𝑞, 𝑞̇ )𝑞̇ − 𝑓(𝑞̇ ) − 𝑔(𝑞) − 𝑀(𝑞)𝑞̈ 𝑠𝑒𝑡 𝑝𝑜𝑖𝑛𝑡 + 𝑀(𝑞)𝜆𝑒1 (𝑡)) (2.29) Setelah mengetahui sliding surface dan turunan sliding surface sistem terhadap waktu, tahapan berikutnya adalah nilai torsi robot lengan berdasarkan sliding mode control. Nilai torsi robot lengan adalah sebagai berikut: (Lewis, 2004) 𝜏 = 𝜏̂ − 𝑘 𝑠𝑖𝑔𝑛 (𝑆) (2.30) Berdasarkan metode Lyapunov (dijelaskan pada sub-bab 3.4) agar sistem memenuhi syarat kestabilan Lyapunov didapat fungsi 𝜏̂ sebagai berikut: 𝜏̂ = 𝐶𝑆 + 𝑓 + 𝑔 + 𝑀𝑞̈ 𝑠𝑒𝑡 𝑝𝑜𝑖𝑛𝑡 − 𝑀𝜆𝑒1 (𝑡) (2.31) sehingga torsi 𝜏 adalah 𝜏 = 𝐶𝑆 + 𝑓 + 𝑔 + 𝑀𝑞̈ 𝑠𝑒𝑡 𝑝𝑜𝑖𝑛𝑡 − 𝑀𝜆𝑒1 (𝑡) − 𝑘 𝑠𝑖𝑔𝑛 (𝑆) (2.32)
dimana 𝑘 > 0 adalah penguat sliding mode control. Torsi 𝜏 merupakan output kontroler (menjadi input plant). Setelah robot lengan memperoleh nilai torsi dari yang dihitung oleh sliding mode control, maka robot lengan akan memiliki output 𝑞̈ yang baru yang merupakan percepatan dari robot lengan. Dengan melakukan integrasi, diperoleh nilai kecepatan sebenarnya (𝑞̇ ) dan posisi sebenarnya (𝑞). Nilai 𝑞̇ dan 𝑞 dijadikan sebagai umpan balik untuk dibandingkan dengan set point. Hasil perbandingan ini digunakan sebagai input sliding mode control untuk menghitung nilai torsi 𝜏 yang baru. Hal ini dilakukan secara berulang-ulang (looping) dalam simulasi hingga sistem mengikuti kecepatan dan posisi yang diinginkan. Setelah mengetahui dinamik dan kontrol robot lengan maka didapat proses kerja pengontrolan robot lengan yang digambarkan dalam diagram blok kontrol berikut:
16
Gambar 2.3 Diagram Blok sistem yang akan dikontrol 2.5 Metode Lyapunov Alexander Mikhailovitch Lyapunov, seorang ilmuwan dari Rusia, telah mengembangkan metode untuk menentukan stabilitas dari sistem proses didasarkan dari penghematan energi yang disimpan. Menurut Lyapunov, hubungan antara kestabilan dan energi adalah sebagai berikut: "Sistem dikatakan stabil apabila energi yang disimpan makin lama makin kecil, maka osilasi yang terjadi juga semakin lama semakin kecil. Sebaliknya, sistem dikatakan tidak stabil apabila energi yang disimpan makin lama makin besar, maka osilasi yang terjadi semakin lama semakin besar juga”. Agar sistem dapat dianalisis kestabilannya, maka perlu dibuat model matematis yang menghubungkan antara masukan, proses dan output. (Saputra, 2014) Metode Lyapunov berfungsi untuk menguji kestabilan sistem. Menurut Lyapunov sistem dikatakan stabil ketika sistem menuju titik kesetimbangan saat 𝑡 (waktu) menuju tak hingga. Dalam robot lengan ini titik kesetimbangannya adalah sliding surface 𝑠 = 0. Fungsi sliding surface yang terdiri error posisi dan error kecepatan, hal ini mengimplikasikan bahwa saat sliding surface berubah menuju nol, maka error posisi dan error kecepatan juga bergerak menuju nol. Untuk itu diperlukan pengujian kestabilan sistem sliding mode control yang dirancang pada sub-bab 2.4 dengan menggunakan metoda Lyapunov. Dalam hal ini sistem dikatakan stabil jika sistem bergerak menuju trayektori yang diinginkan. Ada 3 kriteria kestabilan Lyapunov yang harus dipenuhi Kriteria 1 𝑉(𝑆, 𝑡) > 0, 𝑑𝑖𝑚𝑎𝑛𝑎 𝑡 > 0
17
Kriteria 2 𝑉(𝑆, 0) = 0 Kriteria 3 𝑉̇ (𝑆, 𝑡) ≤ 0
Berdasarkan kriteria ini, kita uji sliding mode control yang telah dirancang dengan memilih fungsi Lyapunov 𝑉(𝑠, 𝑡) sebagai berikut 1 𝑉(𝑆, 𝑡) = 𝑆 𝑇 𝑆 (2.33) 2
dan 𝑉(𝑆, 0) = 0
(2.34)
Persamaan 2.33 dan 2.34 memenuhi kriteria kestabilan Lyapunov 1 dan 2. Kriteria 1 kestabilan Lyapunov menunjukkan bahwa nilai kuadratik error robot lengan terhadap referensi selalu bersifat positif saat 𝑠 ≠ 0. Selain menunjukkan bahwa nilai 𝑠 = 0 saat 𝑡 = 0 karena robot belum bergerak dan mempunyai set point, kriteria 2 juga menunjukkan bahwa sliding surface mempunyai kemungkinan untuk menuju titik kesteimbangan dengan memberikan masukan torsi robot lengan yang akurat. Pada robot lengan ini, torsi robot lengan dihitung oleh sliding mode control. Tahapan berikutnya adalah menguji sliding mode control untuk kriteria 3 kestabilan Lyapunov. Berikut adalah turunan fungsi Lyapunov terhadap waktu 𝑉̇ (𝑥, 𝑡) ≤ 𝑆 𝑇 𝑆̇ (2.35)
18
Halaman ini sengaja dikosongkan
BAB III METODOLOGI PENELITIAN Bab ini berisi mengenai perancangan sliding mode control dan penjelasan langkah-langkah perhitungan hingga robot lengan dapat dikontrol. Adapun alur dalam mengerjakan penelitian ini ditunjukkan oleh gambar 3.1.
Gambar 3.1 Diagram Alir Penelitian 3.1 Pengumpulan Data Robot Lengan Data robot lengan yang digunakan dalam penelitian ini diambil dari jurnal “Experimental Evaluation Of Model-Based Controllers On Direct-Drive Robot Arm” dan “Experimental Evaluation of Identification Schemes on a Direct Drive Robot” ditulis oleh Fernando Reyes dan Rafael Kelly yang mana robot lengan mempunyai 2 degree of freedom (DOF) pada masing – masing lengan. Bentuk robot lengan dan parameter-parameternya ditunjukkan oleh gambar 3.2.
19
20
Gambar 3.2 Sketsa lengang robot beserta variabel variabelnya. (Rafael, Kelly, 2001) Sketsa robot lengan diatas memperlihatkan robot lengan yang digunakan mempunyai 2 lengan. Dimana lengan 1 terhubung dengan sumbu utama dan lengan 2 terhubung dengan lengan 1. Masing-masing lengan memiliki besaran-besaran dinamik tersendiri. Adapaun data besaran dinamik yang ada pada robot lengan ditunjukkan oleh table 3.1.
21 Tabel 3.1: Nilai karakteristik dari robot lengan yang digunakan. (Rafael, Kelly, 2000) Bagian Notasi Nilai Unit Panjang link 1 𝑙1 0.45 𝑚 Panjang link 2 𝑙2 0.45 𝑚 Massa link 1 𝑚1 23.902 𝑘𝑔 Massa link 2 𝑚2 1.285 𝑘𝑔 Panjang pusat massa 𝑙𝑐1 0.091 𝑚 link 1 Panjang pusat massa 𝑙𝑐2 0.048 𝑚 link 2 Inersia link 1 𝐼1 1.266 𝑘𝑔. 𝑚2 Inersia link 2 𝐼2 0.093 𝑘𝑔. 𝑚2 Percepatan gravitasi 𝑔 9.81 𝑚/𝑠 2 Koefisien gesekan 1 𝑏1 2,288 𝑁𝑚. 𝑠𝑒𝑐 Koefisien gesekan 2 𝑏2 0,175 𝑁𝑚. 𝑠𝑒𝑐 Koefisien gesek 7,17 𝑓𝑐1 𝑁𝑚 coulomb 1 Koefisien gesek 𝑓𝑐2 1,734 𝑁𝑚 coulomb 2
3.2 Pemodelan Sliding Mode Control Sliding mode control merupakan metode kontrol yang digunakan pada penelitian ini. Adapun diagram alir dalam membuat sliding mode control pada penelitian ini adalah sebagai berikut:
22
Gambar 3.3 Diagram alir sliding mode control
3.2.1 Sliding Surface Tujuan dalam menghitung sliding surface adalah untuk mendapatkan error keseluruhan robot lengan. Adapun langkahlangkahnya adalah sebagai berikut: Menetapkan kondisi awal dan set point robot lengan. Robot lengan ditetapkan berada pada posisi (0,5, 0) dengan kecepatan sebesar 1 untuk kedua lengan. Untuk set point
23
robot lengan ditetapkan 1 untuk posisi dan 0 untuk kecepatan. Artinya ketika robot lengan sudah mencapai posisi yang diinginkan maka robot lengan berhenti bergerak (kecepatan = 0) Menghitung error kecepatan dan error posisi. Dengan menggunakan persamaan 2.25 didapat error kecepatan sebagai beriukut: 0 1 1 𝑒1 = [ ] − [ ] =[ ] 0 1 1 Dengan menggunakan persamaan 2.26 didapat error kecepatan sebagai beriukut: 0,5 1 −0,5 ] 𝑒2 = [ ] − [ ]=[ 0,5 1 −0,5 Menghitung sliding surface Menghitung sliding surface menggunakan persamaan 2.27: −0,5 1 ] 𝑆(𝑒, 𝑡) = [ ] + 𝜆 [ −0,5 1 Nilai 𝜆 diberikan sebesar 1. Sehingga didapat: −0,5 1 ] 𝑆(𝑒, 𝑡) = [ ] + 1 [ −0,5 1
𝑆 0,5 𝑆(𝑒, 𝑡) = [ 1 ] = [ ] 𝑆2 0,5 Pada saat Robot lengan bergerak saat 𝑡 > 0, maka sistem mendapatkan umpan balik posisi dan kecepatan yang baru yang mana ini akan memperoleh nilai 𝑠 ≠ 0 akibat dari posisi dan kecepatan sebenarnya tidak sama dengan posisi dan kecepatan yang diinginkan. Sliding mode control memperbarui nilai torsi robot lengan agar sesuai dengan posisi dan kecepatan yang diinginkan. Hal ini menyebabkan nilai sliding surface berubah terhadap waktu. Dengan menggunakan persamaan 2.22 maka didapat perubahan nilai sliding surface terhadap waktu yang ditampilkan pada tabel Tabel 3.2.
24 Tabel 3.2 Perubahan nilai sliding surface 𝑆 terhadap waktu t 𝑆1 𝑆2 0 0.5 0.5 0.5 0.000206 -0.00207 1 0.000197 -0.00204 1.5 -0.00024 0.002377 2 0.00018 -0.00197 2.5 0.000173 -0.00194 3 -0.00026 0.00248 3.5 0.000159 -0.00187 4 -0.00027 0.002549 4.5 -0.00028 0.002584 5 0.00014 -0.00176 5.5 0.000133 -0.00173 6 0.000127 -0.00169 6.5 0.00012 -0.00166 7 0.000114 -0.00162 7.5 0.000108 -0.00159 8 0.000101 -0.00155 8.5 -0.00033 0.002862 9 -0.00033 0.002897 9.5 8.19E-05 -0.00145 10 2.32E-05 -0.00087 3.2.2 Perhitungan nilai 𝜏 dengan sliding mode control Langkah-langkah dalam menghitung 𝜏 adalah sebagai berikut: Menghitung nilai inersia (𝑀), central coriolis (𝐶), pengaruh gaya gesek (𝑓), dan pengaruh gaya gravitasi (𝑔).
25 Fungsi inersia (𝑀) dihitung dengan menngunakan persamaan 2.3 sehingga didapat nilai inersia sebagai berikut: 2.498669 0.175488 𝑀(𝑞) = [ ] 0.175488 0.10194 Fungsi central Coriolis dihitung dengan menggunakan persamaan 2.4 −0.08036 −0.04018 ] 𝐶(𝑞, 𝑞̇ ) = [ 0.04018 0 Pengaruh gaya gesek dihitung dengan menggunakan persamaan 2.5 9.458 ] 𝑓(𝑞̇ ) = [ 1.909 Pengaruh gaya gravitasi dihitung dengan menggunakan persamaan 2.6 19.97887 ] 𝑔(𝑞) = [ 19.97887 Menghitung fungsi 𝜏 dengan menggunakan persamaan 2.26 didapat nilai 𝜏 sebagai berikut: −73.3578 ] 𝜏=[ −96.7909 Fungsi 𝜏 berguna untuk membawa sistem menuju set point dan menjaganya agar tetap berada pada set point. Sliding mode control selalu memperbaharui nilai 𝜏 yang mengakibatkan nilai 𝑞 dan 𝑞̇ berubah terhadap waktu, sehingga nilai 𝐶, 𝑓, 𝑔 dan 𝑆 juga berubah terhadap waktu. Dengan menggunakan persamaaan 2.26 didapat nilai 𝜏 berubah terhadap waktu seperti pada tabel 3.3
26 Tabel 3.3 Perubahan nilai torsi 𝜏 terhadap waktu t 𝜏1 𝜏2 0 -73.3578 -96.7909 0.5 -66.4056 103.5099 1 -63.0194 103.5436 1.5 138.7909 -96.486 2 -60.2044 103.4772 2.5 -59.6312 103.4486 3 140.7024 -96.5708 3.5 -59.0992 103.416 4 141.0182 -96.5918 4.5 141.0891 -96.5968 5 -58.8676 103.3997 5.5 -58.8419 99.9298 6 -58.8264 99.92863 6.5 -58.8171 99.92791 7 -58.8115 99.92746 7.5 -58.8081 99.92718 8 -58.8062 99.927 8.5 125.9754 -96.6047 9 125.976 -96.6048 9.5 -58.8041 99.92675 10 -58.8041 99.92675 3.3 Pemodelan Dinamik Robot Lengan Menghitung fungsi nilai inersia, central coriolis, gaya gesek, dan pengaruh gravitasi dilakukan dengan menggunakan langkahlangkah sebagai berikut: Menghitung parameter-parameter yang tidak berubah terhadap waktu (𝐴1 − 𝐴9 ) yang ada pada persamaan inersia, central
27 coriolis, pengaruh gaya gesek, dan pengaruh gaya gravitasi dengan menggunakan persamaan 2.7-2.15
𝐴1 = 2.3516 𝐴2 = 0.0838 𝐴3 = 0.1019 𝐴4 =38.4658 𝐴5 =1.8270 𝐴6 =2.2880 𝐴7 =0.1750 𝐴8 =8.0490 𝐴9 =1.7340 Menghitung nilai inersia, central coriolis, gaya gesek, dan pengaruh gravitasi robot lengan dengan menggunakan persamaan 2.3-2.6 2.498669 0.175488 𝑀(𝑞) = [ ] 0.175488 0.10194 −0.08036 −0.04018 ] 𝐶(𝑞, 𝑞̇ ) = [ 0.04018 0 9.458 ] 𝑓(𝑞̇ ) = [ 1.909 19.97887 ] 𝑔(𝑞) = [ 19.97887 Sliding mode control selalu memperbarui nilai torsi berdasarkan nilai sliding surface 𝑆 sehingga menyebabkan nilai posisi dan kecepatan sebenarnya robot lengan juga berubah. Perubahan ini menyebabkan fungsi inersia, central coriolis, gaya gesek, dan pengaruh gaya gravitasi juga berubah terhadap waktu. Table 3.4 menampilkan perubahan nilai inersia 𝑀(𝑞) terhadap waktu. Nilai tersebut didapat dengan menggunakan persamaan inersia 𝑀(𝑞) dan perubahan posisi dan kecepatan sebenarnya.
28 Tabel 3.4 Perubahan Nilai inersia 𝑀(𝑞) terhadap waktu t 𝑀11 𝑀12 𝑀21 𝑀22 0 2.498669 0.175488 0.175488 0.10194 0.5 2.480113 0.16621 0.16621 0.10194 1 2.466391 0.159349 0.159349 0.10194 1.5 2.457258 0.154782 0.154782 0.10194 2 2.451443 0.151875 0.151875 0.10194 2.5 2.44782 0.150063 0.150063 0.10194 3 2.445587 0.148947 0.148947 0.10194 3.5 2.444219 0.148263 0.148263 0.10194 4 2.443382 0.147845 0.147845 0.10194 4.5 2.442872 0.147589 0.147589 0.10194 5 2.442559 0.147433 0.147433 0.10194 5.5 2.442368 0.147337 0.147337 0.10194 6 2.44225 0.147278 0.147278 0.10194 6.5 2.442176 0.147242 0.147242 0.10194 7 2.442129 0.147218 0.147218 0.10194 7.5 2.442099 0.147203 0.147203 0.10194 8 2.442079 0.147193 0.147193 0.10194 8.5 2.442065 0.147186 0.147186 0.10194 9 2.442054 0.147181 0.147181 0.10194 9.5 2.442046 0.147176 0.147176 0.10194 10 2.442039 0.147173 0.147173 0.10194 Sama seperti halnya fungsi inersia, fungsi central coriolis robot lengan juga berubah terhadap waktu karena dipengaruhi oleh perubahan posisi dan kecepatan sebenarnya. Perubahan central coriolis terhadap waktu diperlihatkan pada tabel 3.5.
29 Tabel 3.5 Perubahan Nilai Inersia 𝐶(𝑞, 𝑞̇ ) terhadap waktu t 𝐶11 𝐶12 𝐶21 𝐶22 0 -0.08036 -0.04018 0.04018 0 0.5 -0.03239 -0.0162 0.016207 0 1 -0.0222 -0.0111 0.011163 0 1.5 -0.01481 -0.0074 0.007191 0 2 -0.00882 -0.00441 0.004535 0 2.5 -0.00534 -0.00267 0.00281 0 3 -0.00377 -0.00188 0.001699 0 3.5 -0.00181 -0.00091 0.001061 0 4 -0.0016 -0.0008 0.000622 0 4.5 -0.0011 -0.00055 0.000372 0 5 -0.00018 -8.8E-05 0.000249 0 5.5 1.1E-05 5.49E-06 0.000157 0 6 0.000124 6.22E-05 0.000101 0 6.5 0.000193 9.65E-05 6.66E-05 0 7 0.000235 0.000117 4.59E-05 0 7.5 0.00026 0.00013 3.33E-05 0 8 0.000276 0.000138 2.57E-05 0 8.5 -0.00033 -0.00017 -8.6E-06 0 9 -0.00033 -0.00016 -1.1E-05 0 9.5 0.000294 0.000147 1.66E-05 0 10 0.000219 0.00011 1.19E-05 0 Fungsi gaya gesek yang terjadi pada robot lengan juga berubah terhadap waktu diakibatkan perubahan posisi dan kecepatan robot lengan. Tabel 3.6 menampilkan perubahan fungsi gaya gesek terhadap waktu.
30 Tabel 3.6 Perubahan nilai fungsi gaya gesek 𝑓(𝑞̇ ) terhadap waktu t 𝑓1 𝑓2 0 9.458 1.909 0.5 7.859398 1.786693 1 7.588321 1.765813 1.5 7.422924 1.753916 2 7.324175 1.745468 2.5 7.263695 1.74081 3 7.226037 1.738751 3.5 7.204753 1.73627 4 7.190291 1.735998 4.5 7.182106 1.735367 5 7.178106 1.734218 5.5 7.175095 -1.73401 6 7.173269 -1.73415 6.5 7.172161 -1.73424 7 7.171489 -1.73429 7.5 7.171081 -1.73432 8 7.170834 -1.73434 8.5 -8.04928 1.734413 9 -8.04937 1.734406 9.5 7.170538 -1.73436 10 7.170385 -1.73427 Perubahan pengaruh gravitasi robot lengan terhadap waktu diperlihatkan pada table 3.8 berikut:
31 Tabel 3.7 Perubahan nilai fungsi gravitasi 𝑔(𝑞) terhadap waktu t 𝑔1 𝑔2 0 19.97887 19.97887 0.5 26.54695 26.54695 1 29.87827 29.87827 1.5 31.65967 31.65967 2 32.6475 32.6475 2.5 33.21147 33.21147 3 33.54046 33.54046 3.5 33.73512 33.73512 4 33.85131 33.85131 4.5 33.92108 33.92108 5 33.96309 33.96309 5.5 33.98842 33.98842 6 34.00369 34.00369 6.5 34.01288 34.01288 7 34.01838 34.01838 7.5 34.02166 34.02166 8 34.02359 34.02359 8.5 34.02469 34.02469 9 34.0253 34.0253 9.5 34.02562 34.02562 10 34.02574 34.02574 Menghitung keluaran plant robot lengan Menghitung keluaran plant robot lengan dilakukan dengan langkah-langkah sebagai berikut: Nilai inersia, central coriolis , pengaruh gaya gesek, dan pengaruh gaya gravitasi disubtitusikan kedalam persamaan 2.16 sehingga didapat nilai 𝑞̈ sebagai berikut:
32 31.84628 ] −1038.52 Sliding mode control selalu mengubah nilai 𝜏 agar robot lengan menuju set point. Hal ini menyebabkan perubahan nilai 𝑞̈ terhadap waktu. Tabel 3.8 merepresentasikan perubahan 𝑞̈ terhadap waktu. 𝑞̈ = [
33 Table 3.8: Perubahan nilai 𝑞̈ terhadap waktu t 𝑞̈ 1 𝑞̈ 2 0 31.84628 -1038.52 0.5 -119.375 1174.82 1 -115.782 1161.493 1.5 113.2154 -1153.16 2 -111.962 1147.615 2.5 -111.05 1144.35 3 110.4414 -1142.41 3.5 -110.149 1141.141 4 109.9221 -1140.42 4.5 109.802 -1139.96 5 -109.735 1139.676 5.5 -109.688 1139.507 6 -109.658 1139.403 6.5 -109.64 1139.338 7 -109.628 1139.297 7.5 -109.621 1139.27 8 -109.616 1139.252 8.5 109.6122 -1139.24 9 109.6096 -1139.23 9.5 -109.608 1139.223 10 -109.606 1139.216 3.4 Metode Lyapunov Kestabilan Lyapunov berfungsi untuk menguji kestabilan sistem. Metode Lyapunov pada penelitian ini dignakan untuk menentukan nilai 𝜏̂ pada sliding mode control agar robot lengan dapat dikontrol dengan stabil. Adapun langkah-langkahnya adalah sebagai berikut: Menentukan Fungsi Lyapunov
34
Berdasarkan pada bab 2 maka fungsi Lyapunov yang diambil adalah seperti pada persamaan 2.33 Sistem dikatakan stabil secara matematis jika memenuhi 3 kriteria seperti yang telah disebutkan pada bab 2. Persamaan 2.33 memenuhi kriteria 1 dan 2, dimana 𝑉(𝑆, 0) = 0 (saat 𝑡 = 0) dan 𝑉(𝑆, 𝑡) > 0 saat 𝑡 > 0. Dari kriteria satu dan dua persamaan yang digunakan terbukti memenuhi kestabilan Lyapunov. Adapun kriteria ketiga turunan fungsi Lyapunov harus kecil atau sama dengan 0 (𝑉̇ (𝑆, 𝑡) ≤ 0). Turunan Lyapunov terhadap waktu adalah diperlihatkan oleh persamaan 2.35. Dengan mensubtitsikan persamaan 2.29 kedalam persamaan 2.35 maka didapat: 𝑉̇ (𝑥, 𝑡) ≤ 𝑆 𝑇 𝑀(𝑞)−1 (𝜏 − 𝐶(𝑞, 𝑞̇ )𝑞̇ − 𝑓(𝑞̇ ) − 𝑔(𝑞) − 𝑀(𝑞)𝑞̈ 𝑠𝑒𝑡 𝑝𝑜𝑖𝑛𝑡 + 𝑀(𝑞)𝜆𝑒1 (𝑡)) 𝑉̇ (𝑥, 𝑡) ≤ 𝑆 𝑇 𝑀(𝑞)−1 (𝜏̂ − 𝑘 𝑠𝑖𝑔𝑛(𝑆) − 𝐶(𝑞, 𝑞̇ )𝑞̇ − 𝑓(𝑞̇ ) − 𝑔(𝑞) − 𝑀(𝑞)𝑞̈ 𝑠𝑒𝑡 𝑝𝑜𝑖𝑛𝑡 + 𝑀(𝑞)𝜆𝑒1 (𝑡)) untuk mendapatkan nilai 𝑉̇ (𝑥, 𝑡) ≤ 0 maka dipilih nilai 𝜏̂ = 𝐶𝑆 + 𝑓 + 𝑔 + 𝑀𝑞̈ 𝑠𝑒𝑡 𝑝𝑜𝑖𝑛𝑡 − 𝑀𝜆𝑒1 (𝑡), sehingga diperoleh: 𝑉̇ (𝑥, 𝑡) ≤ 𝑆 𝑇 𝑀(𝑞)−1 (𝐶𝑆 + 𝑓 + 𝑔 + 𝑀𝑞̈ 𝑠𝑒𝑡 𝑝𝑜𝑖𝑛𝑡 − 𝑀𝜆𝑒1 (𝑡) − 𝑘 𝑠𝑖𝑔𝑛(𝑆) − 𝐶(𝑞, 𝑞̇ )𝑞̇ − 𝑓(𝑞̇ ) − 𝑔(𝑞) − 𝑀(𝑞)𝑞̈ 𝑠𝑒𝑡 𝑝𝑜𝑖𝑛𝑡 + 𝑀(𝑞)𝜆𝑒1 (𝑡)) 𝑉̇ (𝑥, 𝑡) ≤ −𝑆 𝑀(𝑞)−1 𝑘 𝑠𝑖𝑔𝑛(𝑆) (3.1) dimana 𝑘 0 ] 𝑘=[ 1 0 𝑘2 Berdasarkan sistem dinamik, matriks 𝑀 selalu bernilai positif, dan 𝑆 𝑇 𝑠𝑖𝑔𝑛(𝑠) juga bernilai positif, sehingga dengan memilih penguat 𝑘1 , 𝑘2 > 0, maka diperoleh 𝑉̇ (𝑆, 𝑡) < 0 (3.2) 𝑇
35
Dengan menggunakan persamaan 3.1 didapat nilai turunan Lyapunov terhadap waktu sebagai berikut: 𝑉̇ (𝑥, 𝑡) = −502.336
Parameter-parameter yang ada pada persamaan turunan Lyapunov selalu berubah terhadap waktu. Oleh karena itu didapat nilai turunan Lyapunov berubah terhadap waktu. Tabel 3.9 berisikan data perubahan 𝑉̇ (𝑆, 𝑡) yang berubah terhadap waktu berdasarkan perubahan nilai sliding surface 𝑆.
36 Tabel 3.9 Perubahan nilai turunan fungsi Lyapunov terhadap waktu t 𝑉̇ (𝑆, 𝑡) 0 -502.336 0.5
-2.45444
1
-2.38915
1.5
-2.76861
2
-2.28183
2.5
-2.23524
3
-2.8612
3.5
-2.14846
4
-2.93657
4.5
-2.97569
5
-2.02466
5.5
-1.98398
6
-1.94341
6.5
-1.90292
7
-1.86246
7.5
-1.82203
8
-1.7816
8.5
-3.29675
9
-3.33712
9.5
-1.66038
10
-0.99482
Dari tabel 3.9 dapat dilihat turunan fungsi Lyapunov selalu negatif sehingga memenuhi kriteria 3 Lyapunov. Dengan demikian sliding mode control dapat membawa robot lengan menuju sliding surface 𝑠 = 0 atau dengan kata
37 lain sliding mode control dapat mengontrol robot lengan menuju posisi dan kecepatan yang diinginkan secara matematis. Berdasarkan persamaan-persamaan yang ada pada sub-bab 3.1-3.4 maka didapat diagram blok konrol robot lengan seperti pada gambar 3.4
Gambar 3.4 Diagram blok kontrol robot lengan 3.5 Simulasi Sliding Mode Control Simulasi dilakukan untuk melihat respon sistem robot lengan dengan sistem sliding mode control. Dalam penilitian ini simulasi dilakukan dengan menggunakan software Matlab 2014a. Program simulink dibangun berdasarkan diagram blok kontrol pada gambar 3.4. Adapun diagram blok simulasi yang dibuat dalam Simulink matlab ditujukkan pada gambar 3.6
38
Gambar 3.5 Wiring diagram blok sistem pada simulink
39 Diagram blok ambar 3.6 terdiri dari dua komponen utama, yaitu blok sliding_mode_control dan blok robot_lengan. Dua blok diatas menggunakan tools s-function yang ada pada matlab. Blok sliding_mode_control berisi program hasil desain kontrol dimana blok sliding_mode_control memiliki 10 input, yaitu: Posisi 1 set point (𝑞1𝑠𝑒𝑡𝑝𝑜𝑖𝑛𝑡 )
Posisi 2 set point (𝑞2𝑠𝑒𝑡𝑝𝑜𝑖𝑛𝑡 )
Kecepatan 1 set point (𝑞̇ 1𝑒𝑡𝑝𝑜𝑖𝑛𝑡 )
Kecepatan 2 set point (𝑞̇ 2𝑠𝑒𝑡𝑝𝑜𝑖𝑛𝑡 )
Posisi 1 sebenarnya (𝑞1 ) Posisi 2 sebenarnya (𝑞2 ) Kecepatan 1 sebenarnya (𝑞̇ 1 ) Kecepatan 2 sebenarnya (𝑞̇ 2 ) Percepatan 1 set point (𝑞̈ 1𝑠𝑒𝑡𝑝𝑜𝑖𝑛𝑡 )
Percepatan 2 set point (𝑞̈ 2𝑠𝑒𝑡𝑝𝑜𝑖𝑛𝑡 )
Blok robot_lengan berisikan dinamik robot lengan. Blok ini memiliki input sebagai berikut: Posisi 1 sebenarnya (𝑞1 ) Posisi 2 sebenarnya (𝑞2 ) Kecepatan 1 sebenarnya (𝑞̇ 1 ) Kecepatan 2 sebenarnya (𝑞̇ 2 ) Torsi lengan 1 (𝜏1 ) Torsi lengan 2 (𝜏2 ) Berikut langkah-langkah kerja blok Simulink dalam mendapatkan posisi dan kecepatan sebenarnya: a. Berdasarkan umpan balik berupa posisi dan kecepatan aktual robot lengan, maka nilai error kecepatan (𝑒1 ) dan error posisi (𝑒2 ) dapat dihitung dengan melakukan perbandingan antara posisi dan kecepatan robot terhadap set point yang diinginkan.
40
b. c.
d. e.
f. g.
Nilai ini menjadi input bagi blok sliding_mode_control untuk menghitung nilai sliding surface (𝑠). Dari error diatas dihitung sliding surface (𝑠) dengan menggunakan persamaan 2.21. Setelah mendapatkan sliding surface kemudian sliding mode control menghitung/memperbarui nilai torsi 𝜏 yang merupakan control input untuk sistem dinamik robot lengan. Nilai 𝜏 didapat dengan menggunakan persamaan 2.26. Torsi 𝜏 merupakan vektor 2x1 yaitu 𝜏1 dan 𝜏2 , dimana 𝜏1 adalah torsi lengan 1 dan 𝜏2 adalah torsi lengan 2. Nilai 𝜏 ini merupakan masukan bagi blok robot_lengan. Blok robot_lengan menerima 𝜏1 dan 𝜏2 dari blok sliding_mode_control. Nilai 𝜏1 dan 𝜏2 disubtitusikan kedalam persamaan 2.16 sehingga didapat 𝑞̈ , dimana 𝑞̈ adalah vektor percepatan 2x1 yang mengandung percepatan lengan 1 (𝑞̈ 1 ) dan percepatan lengan 2 (𝑞̈ 2 ). Dengan melakukan integrasi pada percepatan robot lengan (𝑞̈ ) maka didapat kecepatan dan posisi robot sebenarnya. Kecepatan dan posisi robot sebenarnya dijadikan umpan balik, kemudian dibandingkan dengan set point sehingga diperoleh nilai error yang baru. Nilai error ini menjadi input bagi blok sliding_mode_control untuk menghitung nilai sliding surface yang baru sehingga sliding mode control dapat memperbarui nilai torsi untuk robot lengan. Proses ini terus terjadi berulangulang selama proses looping.
BAB IV HASIL DAN PEMBAHASAN Dilakukan simulasi hasil desain sliding mode control untuk melihat kinerja sliding mode control. Simulasi menggunakan persamaan sliding mode control seperti pada persamaan 2.26 dan persamaan robot lengan seperti pada persamaan 3.14. Simulasi dilakukan dengan berbagai variasi trayektori yang diinginkan guna melihat kemampuan sliding mode control untuk mengontrol robot lengan agar bergerak mengikuti trayektori yang diinginkan. Berikut hasil simulasi yang didapat: 4.1. Trayektori yang diinginkan berupa konstan Simulasi ini dilakukan dengan menetapkan set point posisi berupa konstan 1 dan kecepatan robot menuju 0 saat posisi yang diinginkan tercapai. Adapun respon sistem yang didapat ditunjukkan pada gambar 4.1-4.4
Gambar 4.1 Respon posisi lengan 1 dengan set point posisi 1 Gambar 4.1 merupakan respon sistem posisi lengan 1 robot lengan. Kondisi awal lengan 1 robot lengan ditetapkan berada pada posisi (0,5 , 0). Dari hasil simulasi didapat sistem mampu menuju trayektori yang diinginkan. Pada selang waktu 5 detik sistem sudah 41
42 berada pada posisi yang diinginkan. Error posisi yang didapat setelah kondisi steady state adalah sebesar 0.000932. Dari error yang kecil ini dapat dikatakan kontroler memiliki akurasi yang baik. Adapun perubahan nilai posisi lengan 1 terhadap waktu diperlihatkan pada tabel 4.1 Tabel 4.1 : Nilai Posisi lengan 1 terhadap waktu t Posisi 1 sebenarnya Set point 0 0.5 1 0.5 0.698896 1 1 0.817364 1 1.5 0.889214 1 2 0.932796 1 2.5 0.959223 1 3 0.97525 1 3.5 0.98497 1 4 0.990862 1 4.5 0.994433 1 5 0.996597 1 5.5 0.997906 1 6 0.998698 1 6.5 0.999176 1 7 0.999463 1 7.5 0.999635 1 8 0.999737 1 8.5 0.999796 1 9 0.999829 1 9.5 0.999847 1 10 0.999855 1
43
Gambar 4.2 Respon posisi lengan 2 dengan set point posisi 2 Gambar 4.2 merupakan respon sistem posisi lengan 2 robot lengan. Posisi awal lengan 2 robot lengan ditetapkan berada pada posisi (0,5 , 0). Dari hasil simulasi didapat sistem mampu menuju trayektori yang diinginkan. Pada selang waktu 5 detik sistem sudah berada pada posisi yang diinginkan. Error posisi yang didapat setelah kondisi steady state adalah sebesar 0.000817. Dari error yang kecil ini dapat dikatakan kontroller memiliki akurasi yang baik. Adapun perubahan nilai posisi lengan 2 terhadap waktu diperlihatkan pada tabel 4.2
44 Tabel 4.2: Nilai posisi lengan 2 terhadap waktu t Posisi 2 sebenarnya Set point 0 0.5 1 0.5 0.696832 1 1 0.816174 1 1.5 0.88857 1 2 0.932497 1 2.5 0.95915 1 3 0.975331 1 3.5 0.985159 1 4 0.991133 1 4.5 0.994771 1 5 0.99699 1 5.5 0.99835 1 6 0.999188 1 6.5 0.999711 1 7 1.000041 1 7.5 1.000255 1 8 1.000399 1 8.5 1.000501 1 9 1.000575 1 9.5 1.000634 1 10 1.000684 1
45
Gambar 4.3 Respon kecepatan lengan 1 Gambar 4.3 merupakan respon sistem kecepatan lengan 1 robot lengan. Kecepatan awal lengan 1 robot lengan ditetapkan sebesar 1. Dari hasil simulasi didapat sistem mampu menuju trayektori yang diinginkan. Pada selang waktu 5 detik kecepatan robot lengan sudah mendekati 0. Artinya ketika lengan 1 sudah berada pada posisi yang diinginkan robot lengan berhenti bergerak. Error kecepatan yang didapat setelah kondisi steady state adalah sebesar 0.001015. Dari error yang kecil ini dapat dikatakan kontroler memiliki akurasi yang baik. Adapun perubahan nilai kecepatan lengan 1 terhadap waktu ditunjukkan oleh tabel 4.3.
46 Tabel 4.3: Nilai Kecepatan lengan 1 terhadap waktu t Kecepatan 1 sebenarnya Set point 0 1 0 0.5 0.30131 0 1 0.182833 0 1.5 0.110544 0 2 0.067384 0 2.5 0.04095 0 3 0.024492 0 3.5 0.015189 0 4 0.008869 0 4.5 0.005291 0 5 0.003543 0 5.5 0.002227 0 6 0.001429 0 6.5 0.000944 0 7 0.000651 0 7.5 0.000473 0 8 0.000364 0 8.5 -0.00012 0 9 -0.00016 0 9.5 0.000235 0 10 0.000168 0
47
Gambar 4.4 Respon kecepatan lengan 2 Gambar 4.4 merupakan respon sistem kecepatan lengan 2 robot lengan. Kecepatan awal lengan 2 robot lengan ditetapkan sebesar 1. Dari hasil simulasi didapat sistem mampu menuju trayektori yang diinginkan. Pada selang waktu 5 detik kecepatan robot lengan sudah mendekati 0. Artinya ketika lengan 2 sudah berada pada posisi yang diinginkan robot lengan berhenti bergerak. Error kecepatan yang didapat setelah kondisi steady state adalah sebesar 0.001576. Dari error yang kecil ini dapat dikatakan kontroller memiliki akurasi yang baik. Adapun perubahan nilai kecepatan lengan 2 terhadap waktu ditunjukkan oleh tabel 4.4.
48 Tabel 4.4: Nilai Kecepatan lengan 2 terhadap waktu t Kecepatan 2 sebenarnya Set point 0 1 0 0.5 0.3011 0 1 0.181789 0 1.5 0.113807 0 2 0.065532 0 2.5 0.038914 0 3 0.027149 0 3.5 0.012974 0 4 0.011416 0 4.5 0.007813 0 5 0.001247 0 5.5 -7.8E-05 0 6 -0.00088 0 6.5 -0.00137 0 7 -0.00166 0 7.5 -0.00184 0 8 -0.00195 0 8.5 0.002362 0 9 0.002322 0 9.5 -0.00208 0 10 -0.00155 0 Salah satu fungsi sliding mode control adalah mempertahankan sistem untuk berada pada trayektori yang diinginkan. Akibat dari mempertahankan sistem agar tetap pada trayektori yang diinginkan adalah terjadinya osilasi. Osilasi ini biasa disebut chattering. Adapun chattering yang didapat pada simulasi ditunjukkan pada gambar 4.5
49
Gambar 4.5 Chattering respon sistem Berdasarkan metode Lyapunov pada bab 3 diketahui turunuan fungsi Lyapunov yang didapat adalah 𝑉̇ (𝑡) < 0. Berdasarkan teori ketika 𝑉̇ (𝑡) < 0 maka suatu saat sistem akan menyentuh S=0 (saat 𝑡 > 0). Dari gambar 4.5 dapat dilihat bahwa chatering respon sistem menyentuh S=0 pada saat 𝑡 = 7,6404. Jadi hasil respon sistem sesuai dengan teori yang digunakan. Sifat chatering ini terjadi akibat kontroler memaksa sistem untuk tetap berada pada trayektori yang diinginkan. Ketika sistem bergerak kearah positif menjauhi trayektori maka kontroler akan memaksa sistem untuk menuju trayektori dan ketika sistem bergerak kearah negatif menjauhi trayektori maka kontroller memaksa sistem menuju trayektori. 4.2. Trayektori yang diinginkan berupa sinusoidal Tujuan menguji kontroler dengan memakai traayektori yang diinginkan berupa sinusoidal ini adalah untuk mengetahui apakah sistem masih mampu mengikuti trajektori ketika nilai trayektori yang diinginkan yang dimasukkan berubah terhadap waktu.
50
Gambar 4.6 Respon posisi lengan 1 dengan dengan set point sinusoidal Gambar diatas merupakan respon sistem posisi lengan 1 robot lengan. Pada simulasi ini kondisi awal posisi lengan 1 berada pada titik (0,0) dengan amplitudo trayektori yang diinginkan sebesar 1. Dari hasil simulasi didapat sistem mampu menuju trayektori yang diinginkan dan stabil. Error posisi yang didapat setelah kondisi steady state adalah sebesar 2.615E-05. Dari error yang kecil ini dapat dikatakan kontroller memiliki akurasi yang baik. Adapun perubahan nilai posisi lengan 1 terhadap waktu diperlihatkan pada tabel 4.5
51 Tabel 4.5: Nilai posisi lengan 1 terhadap waktu t Posisi 1 sebenarnya Set point 0 0 0 0.5 0.479434 0.479415 1 0.841482 0.841454 1.5 0.99753 0.997494 2 0.909346 0.909303 2.5 0.59852 0.598479 3 0.141136 0.141131 3.5 -0.35077 -0.35076 4 -0.75683 -0.7568 4.5 -0.97756 -0.97753 5 -0.95897 -0.95893 5.5 -0.70561 -0.70556 6 -0.27945 -0.27944 6.5 0.215105 0.215094 7 0.65701 0.656984 7.5 0.938022 0.937989 8 0.989401 0.989362 8.5 0.798539 0.798491 9 0.412171 0.412147 9.5 -0.07513 -0.07513 10 -0.54404 -0.54402
52
Gambar 4.7 Respon posisi lengan 2 dengan dengan set point sinusoidal Gambar diatas merupakan respon sistem posisi lengan 2 robot lengan. Pada simulasi ini kondisi awal posisi lengan 2 berada pada titik (0,0) dengan amplitudo trayektori yang diinginkan sebesar 1. Dari hasil simulasi didapat sistem mampu menuju trayektori yang diinginkan dan stabil. Error posisi yang didapat setelah kondisi steady state adalah sebesar 0.0008443. Dari error yang kecil ini dapat dikatakan kontroler memiliki akurasi yang baik. Adapun perubahan nilai posisi lengan 1 terhadap waktu diperlihatkan pada tabel 4.6.
53 Tabel 4.6: Nilai posisi lengan 2 terhadap waktu t Posisi 2 sebenarnya Set point 0 0 0 0.5 0.48003 0.479415 1 0.842454 0.841454 1.5 0.998742 0.997494 2 0.91063 0.909303 2.5 0.599481 0.598479 3 0.141177 0.141131 3.5 -0.35134 -0.35076 4 -0.75778 -0.7568 4.5 -0.97876 -0.97753 5 -0.96029 -0.95893 5.5 -0.70687 -0.70556 6 -0.27974 -0.27944 6.5 0.215525 0.215094 7 0.65786 0.656984 7.5 0.939149 0.937989 8 0.990706 0.989362 8.5 0.799836 0.798491 9 0.412764 0.412147 9.5 -0.07534 -0.07513 10 -0.54477 -0.54402
54
Gambar 4.8 Respon kecepatan lengan 1 dengan dengan set point sinusoidal Gambar diatas merupakan respon sistem kecepatan lengan 1 robot lengan. Pada simulasi ini kondisi awal kecepatan lengan 1 robot lengan diberikan sebesar 0 dengan amplitudo trayektori yang diinginkan sebesar 1. Dari hasil simulasi didapat sistem mampu menuju trayektori yang diinginkan dan stabil. Error kecepatan yang didapat setelah kondisi steady state adalah sebesar 0.0001777. Error yang kecil ini dapat dikatakan kontroler memiliki akurasi yang baik. Adapun perubahan nilai posisi lengan 1 terhadap waktu diperlihatkan pada tabel 4.7
55 Tabel 4.7: Nilai kecepatan lengan 1 terhadap waktu t Kecepatan 1 sebenarnya Set point 0 1 0 0.5 0.877637 0.877592 1 0.540677 0.540347 1.5 0.070677 0.070767 2 -0.41623 -0.41611 2.5 -0.80126 -0.80113 3 -0.99011 -0.98999 3.5 -0.93636 -0.93647 4 -0.65361 -0.65365 4.5 -0.21113 -0.21082 5 0.283346 0.283632 5.5 0.708933 0.708629 6 0.960106 0.960156 6.5 0.976495 0.976598 7 0.754101 0.753907 7.5 0.346538 0.346683 8 -0.14528 -0.14546 8.5 -0.60238 -0.60199 9 -0.91109 -0.91111 9.5 -0.99759 -0.99718 10 -0.83924 -0.83907
56
Gambar 4.9 Respon kecepatan lengan 2 dengan dengan set point sinusoidal Gambar diatas merupakan respon sistem kecepatan lengan 2 robot lengan. Pada simulasi ini kondisi awal kecepatan lengan 2 robot lengan diberikan sebesar 0 dengan amplitudo trayektori yang diinginkan sebesar 1. Dari hasil simulasi didapat sistem mampu menuju trayektori yang diinginkan dan stabil. Error kecepatan yang didapat setelah kondisi steady state adalah sebesar 0.001886. Error yang kecil ini dapat dikatakan kontroller memiliki akurasi yang baik. Adapun perubahan nilai posisi lengan 1 terhadap waktu diperlihatkan pada tabel 4.8
57 Tabel 4.8: Nilai kecepatan lengan 2 terhadap waktu t Kecepatan 2 sebenarnya Set point 0 1 0 0.5 0.876673 0.877592 1 0.539189 0.540347 1.5 0.071316 0.070767 2 -0.41497 -0.41611 2.5 -0.803 -0.80113 3 -0.9896 -0.98999 3.5 -0.93843 -0.93647 4 -0.65243 -0.65365 4.5 -0.20931 -0.21082 5 0.286455 0.283632 5.5 0.706259 0.708629 6 0.964628 0.960156 6.5 0.980197 0.976598 7 0.752594 0.753907 7.5 0.34842 0.346683 8 -0.14774 -0.14546 8.5 -0.59985 -0.60199 9 -0.91564 -0.91111 9.5 -0.99614 -0.99718 10 -0.83837 -0.83907 Adapun chattering yang didapat pada pengujian trayektori yang diinginkan berupa sinusoidal ditunjukkan pada gambar 4.10
58
Gambar 4.10 Chattering respon sistem Berdasarkan analisa kestabilan Lyapunov pada bab 3 diketahui turunuan fungsi Lyapunov yang didapat adalah 𝑉̇ (𝑡) < 0. Berdasarkan teori ketika 𝑉̇ (𝑡) < 0 maka suatu saat sistem akan menyentuh nol (saat 𝑡 > 0). Dari gambar 4.5 dapat dilihat bahwa chatering respon sistem menyentuh trayektori yang diinginkan. Jadi hasil respon sistem sesuai dengan teori yang digunakan. Sifat chatering ini terjadi akibat kontroler memaksa sistem untuk tetap berada pada trayektori yang diinginkan. Ketika sistem bergerak kearah posistif menjauhi trayektori maka kontroler akan memaksa sistem untuk menuju trayektori dan ketika sistem bergerak kearah negatif menjauhi trayektori maka kontroler memaksa sistem menuju trayektori. 4.3. Pengaruh perubahan gain K terhadap respon sistem Pada simulasi ini bertujuan untuk melihat pengaruh gain 𝑘 terhadap respon sistem dengan cara merubah nilai gain 𝑘 pada kontroler. Hasil respon yang didapat ditunjukkan oleh gambar 4.11-4.14.
59
Gambar 4.11 Respon posisi lengan 1 robot lengan dengan gain k 0,1 Respon sistem diatas menggunakan gain 𝑘 = 0,1. Jika dibandingkan dengan respon sistem input konstan pada sub bab 4.1 (semua kondisi sama kecuali gain k) yang memiliki gain 𝑘 = 100 dapat dilihat bahwa sistem yang memiliki gain 𝑘 = 0.1 memiliki error yang lebih tinggi dan membutuhkan waktu yang lebih lama untuk menuju trayektori yang diinginkan. Namun proses yang dilakukan oleh sistem yang memiliki gain 𝑘 = 0,1 jauh lebih cepat dari pada sistem yang memiliki gain 𝑘 = 100.
60
Gambar 4.12 Respon posisi lengan 2 robot lengan dengan gain k 0,1 Respon sistem diatas menggunakan gain 𝑘 = 0,1. Jika dibandingkan dengan respon sistem input konstan pada sub bab 4.1 (semua kondisi sama kecuali gain k) yang memiliki gain 𝑘 = 100 dapat dilihat bahwa sistem yang memiliki gain 𝑘 = 0.1 memiliki error yang lebih tinggi dan membutuhkan waktu yang lebih lama untuk menuju trayektori yang diinginkan. Namun proses yang dilakukan oleh sistem yang memiliki gain 𝑘 = 0,1 jauh lebih cepat dari pada sistem yang memiliki gain 𝑘 = 100.
61
Gambar 4.13 Respon kecepatan lengan 1 robot lengan dengan gain k 0,1 Respon sistem diatas menggunakan gain 𝑘 = 0,1. Jika dibandingkan dengan respon sistem input konstan pada sub bab 4.1 (semua kondisi sama kecuali gain k) yang memiliki gain 𝑘 = 100 dapat dilihat bahwa sistem yang memiliki gain 𝑘 = 0.1 memiliki error yang lebih tinggi dan membutuhkan waktu yang lebih lama untuk menuju trayektori yang diinginkan. Namun proses yang dilakukan oleh sistem yang memiliki gain 𝑘 = 0,1 jauh lebih cepat dari pada sistem yang memiliki gain 𝑘 = 100.
62
Gambar 4.14 Respon kecepatan lenagn 2 robot lengan dengan gain k 0,1 Respon sistem diatas menggunakan gain 𝑘 = 0,1. Jika dibandingkan dengan respon sistem input konstan pada sub bab 4.1 (semua kondisi sama kecuali gain k) yang memiliki gain 𝑘 = 100 dapat dilihat bahwa sistem yang memiliki gain 𝑘 = 0.1 memiliki error yang lebih tinggi dan membutuhkan waktu yang lebih lama untuk menuju trayektori yang diinginkan. Namun proses yang dilakukan oleh sistem yang memiliki gain 𝑘 = 0,1 jauh lebih cepat dari pada sistem yang memiliki gain 𝑘 = 100. Berdasarkan hasil respon posisi dan kecepatan yang didapat disimpulkan bahwa semakin rendah gain 𝑘 maka error sistem semakin besar dan akurasi sistem menurun. Begitu pula sebaliknya, semakin tinggi gain 𝑘 akurasi sistem menjadi tinggi dan error sistem menjadi rendah. Namun proses sistem menjadi lebih lambat. Hal ini berkonsekuensi jika menggunakan gain 𝑘 yang tinggi harus didukung oleh hardware yang berkualitas baik.
63 4.4. Sistem dengan kondisi awal lengan 1 berbeda dengan lengan 2 Pada simulasi ini dilakukan pegaturan kondisi awal berbeda setiap lengannya. Maksudnya adalah pada kondisi nyata bisa saja robot lengan berada diposisi acak ketika baru mulai digunakan. Simulasi ini dilakukan untuk melihat kekokohan kontrolnya apakah masih mampu untuk mengontrol sistem. Hasil respon yang didapat ditunjukkan pada gambar 4.9-4.12.
Gambar 4.15 Respon posisi 1 robot lengan dengan variasi kondisi awal Gambar diatas merupakan respon sistem posisi lengan 1 robot lengan. Pada simulasi ini kondisi awal posisi lengan 1 berada pada titik (3,1 , 0) dengan amplitudo trayektori yang diinginkan sebesar 1. Dari hasil simulasi didapat sistem mampu menuju trayektori yang diinginkan dan stabil. Sistem mulai mengikuti trayektori yang diinginkan pada detik ke 5. Error posisi yang didapat setelah kondisi steady state adalah sebesar 0.003602. Dari error yang kecil ini dapat dikatakan kontroler memiliki akurasi yang baik. Adapun
64 perubahan nilai posisi lengan 1 terhadap waktu diperlihatkan pada tabel 4.9 Tabel 4.9: Nilai posisi lengan 1 terhadap waktu t Posisi 1 sebenarnya Set point 0 3.1 0 0.5 2.585913 0.479383 1 2.118965 0.841436 1.5 1.772275 0.997489 2 1.379295 0.909332 2.5 0.883548 0.598496 3 0.313963 0.14113 3.5 -0.24598 -0.35075 4 -0.69325 -0.75674 4.5 -0.93908 -0.97753 5 -0.9357 -0.95895 5.5 -0.6916 -0.70561 6 -0.2709 -0.27945 6.5 0.220272 0.215028 7 0.660202 0.656962 7.5 0.939998 0.93798 8 0.990647 0.989362 8.5 0.799405 0.798549 9 0.412621 0.412128 9.5 -0.07487 -0.07511 10 -0.54394 -0.54402
65
Gambar 4.16 Respon posisi 2 robot lengan dengan variasi kondisi awal Gambar diatas merupakan respon sistem posisi lengan 2 robot lengan. Pada simulasi ini kondisi awal posisi lengan 2 berada pada titik (3,4 ,0) dengan amplitudo trayektori yang diinginkan sebesar 1. Dari hasil simulasi didapat sistem mampu menuju trayektori yang diinginkan dan stabil. Sistem mulai mengikuti trayektori yang diinginkan pada detik ke 5. Error posisi yang didapat setelah kondisi steady state adalah sebesar 0.005088. Dari error yang kecil ini dapat dikatakan kontroller memiliki akurasi yang baik. Adapun perubahan nilai posisi lengan 1 terhadap waktu diperlihatkan pada tabel 4.10
66 Tabel 4.10: Nilai posisi lengan 2 terhadap waktu t Posisi 2 sebenarnya Set point 0 3.4 0 0.5 2.553295 0.479383 1 2.101498 0.841436 1.5 1.763924 0.997489 2 1.375961 0.909332 2.5 0.882207 0.598496 3 0.311395 0.14113 3.5 -0.24944 -0.35075 4 -0.69726 -0.75674 4.5 -0.94347 -0.97753 5 -0.94027 -0.95895 5.5 -0.69576 -0.70561 6 -0.27188 -0.27945 6.5 0.221558 0.215028 7 0.662892 0.656962 7.5 0.943572 0.93798 8 0.994788 0.989362 8.5 0.803464 0.798549 9 0.414343 0.412128 9.5 -0.07568 -0.07511 10 -0.5463 -0.54402
67
Gambar 4.17 Respon kecepatan 1 robot lengan dengan variasi kondisi awal Gambar diatas merupakan respon sistem kecepatan lengan 1 robot lengan. Pada simulasi ini kondisi awal kecepatan lengan 1 robot lengan diberikan sebesar 3,5 dengan amplitudo trayektori yang diinginkan sebesar 1. Dari hasil simulasi didapat sistem mampu menuju trayektori yang diinginkan dan stabil. Error kecepatan yang didapat setelah kondisi steady state adalah sebesar 0.003446. Error yang kecil ini dapat dikatakan kontroler memiliki akurasi yang baik. Adapun perubahan nilai posisi lengan 1 terhadap waktu diperlihatkan pada tabel 4.11
68 Tabel 4.11: Nilai kecepatan lengan 1 terhadap waktu t Kecepatan 1 sebenarnya Set point 0 3.5 0 0.5 -1.22791 0.877645 1 -0.73687 0.540421 1.5 -0.70315 0.07088 2 -0.88556 -0.416 2.5 -1.08565 -0.80108 3 -1.16423 -0.98998 3.5 -1.04127 -0.93649 4 -0.71701 -0.65375 4.5 -0.24954 -0.21084 5 0.25955 0.283503 5.5 0.694737 0.708549 6 0.952921 0.96014 6.5 0.971884 0.976617 7 0.751168 0.753957 7.5 0.34443 0.346738 8 -0.14634 -0.14545 8.5 -0.60143 -0.60187 9 -0.91131 -0.9111 9.5 -0.99859 -0.99718 10 -0.83843 -0.83908
69
Gambar 4.18 Respon kecepatan 2 robot lengan dengan variasi kondisi awal Gambar diatas merupakan respon sistem kecepatan lengan 2 robot lengan. Pada simulasi ini kondisi awal kecepatan lengan 2 robot lengan diberikan sebesar 3,2 dengan amplitudo trayektori yang diinginkan sebesar 1. Dari hasil simulasi didapat sistem mampu menuju trayektori yang diinginkan dan stabil. Error kecepatan yang didapat setelah kondisi steady state adalah sebesar 0.006968. Error yang kecil ini dapat dikatakan kontroler memiliki akurasi yang baik. Adapun perubahan nilai posisi lengan 1 terhadap waktu diperlihatkan pada tabel 4.12
70 Tabel 4.12: Nilai kecepatan lengan 2 terhadap waktu t Kecepatan 2 sebenarnya Set point 0 3.2 0 0.5 -1.20008 0.877645 1 -0.71059 0.540421 1.5 -0.69999 0.07088 2 -0.88567 -0.416 2.5 -1.09729 -0.80108 3 -1.15979 -0.98998 3.5 -1.05046 -0.93649 4 -0.72133 -0.65375 4.5 -0.25268 -0.21084 5 0.265666 0.283503 5.5 0.691353 0.708549 6 0.952105 0.96014 6.5 0.968896 0.976617 7 0.746945 0.753957 7.5 0.348075 0.346738 8 -0.14252 -0.14545 8.5 -0.60813 -0.60187 9 -0.92173 -0.9111 9.5 -0.99223 -0.99718 10 -0.84269 -0.83908
BAB V PENUTUP 5.1 Kesimpulan Berdasarkan hasil dan pembahasan pada bab IV, maka diperoleh kesimpulan sebagai berikut. a. Robot lengan direct-drive robot arm merupakan sistem yang memiliki sifat nonlinier. Sliding mode control merpakan metode kontrol nonlinier yang digunakan untuk mengendalikan robot lengan Persamaan yang didapat dari desain sliding mode control agar sistem terkontrol dan stabil adalah 𝜏 = 𝐶𝑠 + 𝑓 + 𝑔 + 𝑀𝑞̈ 𝑠𝑒𝑡 𝑝𝑜𝑖𝑛𝑡 − 𝑀𝜆𝑒1 (𝑡) −
𝑘 𝑠𝑖𝑔𝑛 (𝑠) b.
c.
Sliding mode control merupakan sistem kontrol yang kokoh untuk mengatasi gangguan pada dinamik robot lengan dan memiliki akurasi yang baik. Berdasarkan hasil simulasi dengan beberapa variasi keadaan didapat akurasi sistem sangat baik dengan error sistem tetap kecil yaitu 0.000875 (error posisi) dan 0.001295 (error kecepatan) untuk set point konstan, 0.000435 (error posisi) dan 0.001032 (error kecepatan) untuk set point sinusoidal, 0.004345 (error posisi) dan 0.005207 (error kecepatan) untuk set point kondisi awal beda dan set point sinusoidal. Gain 𝑘 sangat berpengaruh terhadap sistem. Semakin tinggi nilai gain 𝑘, maka akurasi sistem menjadi semakin bagus, namun proses sistem menjadi lambat. Dalam kondisi nyata tingginya gain 𝑘 harus diimbangi dengan kualitas hardware sistem. Sedangkan saat gain 𝑘 kecil maka proses sistem semakin cepat namun akurasi sistem semakin menurun.
71
72
Halaman ini sengaja dikosongkan
DAFTAR PUSTAKA
Elferik, Sami. (2013). Lecture Presentation Nonlinear System: Sliding Mode Control. King Fahd University of Petroleum and Minerals, Saudi Arabia. Haryo Agandi, dkk. (2011). Kontrol Posisi Motor DC dengan Sliding Mode Control. Jurusan Teknik Elektronika PENS Surabaya. Lewis, L Frank. (2004). Robot Manipulator Control Theory and Practice. Texas: University of Texas, U.S.A. Marcel Dekker, Inc. Markus, Elisha D. T, John . Agee . Adisa A, Jimoh. (2013). Trajectory Control Of A Two-Link Robot Manipulator In The Presence Of Gravity And Friction. Department of Electrical Engineering, Tshwane University of Technology, Pretoria, South Africa. Murray, R. M., Li, Z., Sastry, S. S., & Sastry, S. S. (1994). A mathematical introduction to robotic manipulation. California: CRC press. Reyes, Fernando. Kelly, Rafael. (2000). Experimental Evaluation of Identification Schemes on a Direct Drive Robot. Universidad Autonoma de Puebla Apartado Postal, Meksiko. Reyes, Fernando. Kelly, Rafael. (2001). Experimental Evaluation Of Model-Based Controllers On Direct-Drive Robot Arm. Universidad Autonoma de Puebla Apartado Postal, Meksiko. Slotine, J.J. (1991). Applied Nonlinier Control. Massachusetts Institute of Technology: Prentice Hall Saputra, A. (2014). Pengendalian CSTR. UIN Sultan Syarif Kasim:
74 suska.ac.id%2F3519%2F3%2FBAB%2520II.pdf&usg=A FQjCNEI8JI6GU8HQPU_hKxbMOaUwiH7hQ&cad=rj> Tan, Siew-Chong, Lai, Yuk Ming and Tse, Chi Kong. (2012). Sliding Mode Control of Switching Power Converters. s.l. : CRC Press.
Lampiran 1 Perubahan nilai inersia (M), coriolis (C), pengaruh gaya gesek (f), pengaruh gaya gravitasi (g), sliding surface (s), Output plant robot lengan (𝑞̈ ) dan kontroler (τ) terhadap waktu juga terjadi pada uji masukan trayektori yang diinginkan berupa sinusoidal (sub-bab 4.2) dan kondisi awal robot lengan pada lengan 1 dan lengan 2 beda (sub-bab 4.4). Adapun perubahannya diperlihatkan pada tabel dibawah. A. Trayektori yang diinginkan berupa sinusoidal Tabel : Perubahan Nilai inersia 𝑀(𝑞) terhadap waktu t 𝑀11 𝑀12 𝑀21 𝑀22 0 2.519188 0.185748 0.185748 0.10194 0.5 2.500244 0.176276 0.176276 0.10194 1 2.463143 0.157725 0.157725 0.10194 1.5 2.442313 0.14731 0.14731 0.10194 2 2.454362 0.153335 0.153335 0.10194 2.5 2.489961 0.171134 0.171134 0.10194 3 2.51752 0.184914 0.184914 0.10194 3.5 2.508948 0.180628 0.180628 0.10194 4 2.473322 0.162815 0.162815 0.10194 4.5 2.44511 0.148708 0.148708 0.10194 5 2.447664 0.149985 0.149985 0.10194 5.5 2.479027 0.165667 0.165667 0.10194 6 2.512672 0.18249 0.18249 0.10194 6.5 2.51531 0.183809 0.183809 0.10194 7 2.484207 0.168257 0.168257 0.10194 7.5 2.450545 0.151426 0.151426 0.10194
8 8.5 9 9.5 10
2.443442 2.468371 2.505111 2.518712 2.494925
0.147875 0.160339 0.178709 0.18551 0.173616
0.147875 0.160339 0.178709 0.18551 0.173616
0.10194 0.10194 0.10194 0.10194 0.10194
Tabel : Perubahan Nilai Inersia 𝐶(𝑞, 𝑞̇ ) terhadap waktu t 𝐶11 𝐶12 𝐶21 𝐶22 0 0 0 0 0 0.5 -0.06786 -0.03393 0.033967 0 1 -0.06745 -0.03372 0.033816 0 1.5 -0.01005 -0.00503 0.00498 0 2 0.054942 0.027471 -0.02755 0 2.5 0.075941 0.03797 -0.03789 0 3 0.02334 0.01167 -0.01168 0 3.5 -0.05414 -0.02707 0.027008 0 4 -0.07516 -0.03758 0.037649 0 4.5 -0.02911 -0.01456 0.014683 0 5 0.039341 0.01967 -0.01946 0 5.5 0.076883 0.038442 -0.03859 0 6 0.044643 0.022321 -0.02222 0 6.5 -0.03514 -0.01757 0.017502 0 7 -0.07713 -0.03856 0.038642 0 7.5 -0.04713 -0.02357 0.023439 0 8 0.020712 0.010356 -0.01018 0 8.5 0.072115 0.036058 -0.03621 0 9 0.061566 0.030783 -0.03063 0 9.5 -0.01257 -0.00628 0.006293 0 10 -0.07282 -0.03641 0.036449 0
Tabel : Perubahan nilai fungsi gaya gesek 𝑓(𝑞̇ ) terhadap waktu 𝑓1 𝑓2 t 0 9.458 1.909 0.5 9.178033 1.887418 1 8.40707 1.828358 1.5 7.33171 1.74648 2 -9.00133 -1.80662 2.5 -9.88229 -1.87452 3 -10.3144 -1.90718 3.5 -10.1914 -1.89823 4 -9.54447 -1.84818 4.5 -8.53206 -1.77063 5 7.818296 1.78413 5.5 8.792038 1.857595 6 9.366722 1.90281 6.5 9.40422 1.905534 7 8.895383 1.865704 7.5 7.962878 1.794974 8 -8.3814 -1.75985 8.5 -9.42724 -1.83897 9 -10.1336 -1.89424 9.5 -10.3315 -1.90832 10 -9.96918 -1.88071 Tabel : Perubahan nilai fungsi gravitasi 𝑔(𝑞) terhadap waktu t 𝑔1 𝑔2 0 0 0
0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 5.5 6 6.5 7 7.5 8 8.5 9 9.5 10
19.2395 30.49665 33.98055 32.12405 23.37395 5.91989 -14.3978 -28.2354 -33.5864 -33.2053 -26.7493 -11.5793 8.973212 25.26059 32.76037 33.82187 29.38082 16.75132 -3.16113 -21.5287
19.2395 30.49665 33.98055 32.12405 23.37395 5.91989 -14.3978 -28.2354 -33.5864 -33.2053 -26.7493 -11.5793 8.973212 25.26059 32.76037 33.82187 29.38082 16.75132 -3.16113 -21.5287
Table : Perubahan nilai 𝑞̈ terhadap waktu t 𝑞̈ 1 𝑞̈ 2 0 36.69995 -1050.67 0.5 -123.436 1196.818 1 -114.247 1159.118 1.5 109.7429 -1139.39 2 112.1959 -1150.78 2.5 -31.6172 1031.908
3 3.5 4 4.5 5 5.5 6 6.5 7 7.5 8 8.5 9 9.5 10
127.9667 -127.572 26.3275 110.1395 111.2552 -118.088 128.5996 129.3313 -119.372 112.0219 -110.091 115.494 -126.519 128.2855 -32.8105
-1215.89 1204.426 -1024.72 -1142.16 -1143.97 1174.746 -1208.52 -1211.44 1180.003 -1146.52 1140.319 -1164.18 1200.268 -1217.24 1034.586
Tabel : Perubahan nilai sliding surface 𝑠 terhadap waktu t 𝑆1 𝑆2 0 1 1 0.5 6.36E-05 -0.0003 1 0.000358 -0.00016 1.5 -5.3E-05 0.001798 2 -7.2E-05 0.002466 2.5 -8.8E-05 -0.00086 3 -0.00012 0.000435 3.5 9.87E-05 -0.00255 4 1.1E-05 0.00024 4.5 -0.00034 0.000272 5 -0.00033 0.001463
5.5 6 6.5 7 7.5 8 8.5 9 9.5 10
0.000254 -6.2E-05 -9.2E-05 0.00022 -0.00011 0.000217 -0.00034 4.14E-05 -0.00041 -0.00019
-0.00368 0.004174 0.004031 -0.00044 0.002897 -0.00094 0.00348 -0.00392 0.000822 -4.2E-05
Tabel : Perubahan nilai torsi 𝜏 terhadap waktu t 𝜏1 𝜏2 0 -93.2469 -98.3787 0.5 -69.3228 103.6576 1 -59.7354 103.8024 1.5 141.4946 -96.5714 2 122.0035 -100.131 2.5 111.2691 99.6388 3 92.89571 -101.671 3.5 -127.032 96.6321 4 -139.43 -103.87 4.5 57.34446 -103.52 5 75.36682 -99.8674 5.5 -116.002 100.2159 6 100.4389 -98.8151 6.5 120.9615 -97.036 7 -63.9318 103.8662 7.5 141.6009 -96.3673
8 8.5 9 9.5 10
-74.9411 118.3067 -95.911 83.83045 66.35491
99.88159 -100.149 99.22038 -102.475 96.23857
B. Trayektori yang diinginkan berupa Kondisi awal beda Tabel : Perubahan Nilai inersia 𝑀(𝑞) terhadap waktu t 𝑀11 𝑀12 𝑀21 𝑀22 0 2.189521 0.020914 0.020914 0.10194 0.5 2.212135 0.032221 0.032221 0.10194 1 2.266735 0.059521 0.059521 0.10194 1.5 2.319402 0.085854 0.085854 0.10194 2 2.384023 0.118165 0.118165 0.10194 2.5 2.458083 0.155195 0.155195 0.10194 3 2.511127 0.181717 0.181717 0.10194 3.5 2.514001 0.183154 0.183154 0.10194 4 2.480067 0.166187 0.166187 0.10194 4.5 2.449959 0.151133 0.151133 0.10194 5 2.450393 0.15135 0.15135 0.10194 5.5 2.480228 0.166268 0.166268 0.10194 6 2.513031 0.182669 0.182669 0.10194 6.5 2.515091 0.183699 0.183699 0.10194 7 2.48369 0.167998 0.167998 0.10194 7.5 2.449946 0.151126 0.151126 0.10194 8 2.442869 0.147588 0.147588 0.10194 8.5 2.467934 0.160121 0.160121 0.10194 9 2.505004 0.178656 0.178656 0.10194
9.5 2.518708 0.185508 0.185508 0.10194 10 2.494792 0.17355 0.17355 0.10194 Tabel : Perubahan Nilai Inersia 𝐶(𝑞, 𝑞̇ ) terhadap waktu t 𝐶11 𝐶12 𝐶21 𝐶22 0 0.137065 0.068532 -0.07496 0 0.5 0.111629 0.055814 -0.05711 0 1 0.102724 0.051362 -0.05326 0 1.5 0.115148 0.057574 -0.05783 0 2 0.145643 0.072822 -0.07281 0 2.5 0.142015 0.071007 -0.07025 0 3 0.059561 0.029781 -0.02989 0 3.5 -0.04347 -0.02173 0.021543 0 4 -0.07764 -0.03882 0.038586 0 4.5 -0.03429 -0.01714 0.016931 0 5 0.035968 0.017984 -0.01757 0 5.5 0.074277 0.037138 -0.03732 0 6 0.042856 0.021428 -0.02145 0 6.5 -0.03569 -0.01784 0.017899 0 7 -0.07705 -0.03852 0.038742 0 7.5 -0.04724 -0.02362 0.023372 0 8 0.020034 0.010017 -0.01029 0 8.5 0.073368 0.036684 -0.03628 0 9 0.062199 0.0311 -0.03075 0 9.5 -0.01257 -0.00629 0.006328 0 10 -0.07338 -0.03669 0.036505 0 Tabel : Perubahan nilai fungsi gaya gesek 𝑓(𝑞̇ ) terhadap waktu t 𝑓1 𝑓2
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 5.5 6 6.5 7 7.5 8 8.5 9 9.5 10
15.178 -10.8585 -9.73496 -9.65782 -10.0752 -10.533 -10.7128 -10.4314 -9.68952 -8.61994 7.763851 8.759557 9.350283 9.393671 8.888672 7.958056 -8.38383 -9.42507 -10.1341 -10.3338 -9.96732
2.294 -1.94401 -1.85835 -1.8565 -1.88899 -1.92603 -1.93696 -1.91783 -1.86023 -1.77822 1.780492 1.854987 1.900618 1.903557 1.864715 1.794913 -1.75894 -1.84042 -1.8953 -1.90764 -1.88147
Tabel : Perubahan nilai fungsi gravitasi 𝑔(𝑞) terhadap waktu t 𝑔1 𝑔2 0 1.992461 1.992461 0.5 18.62842 18.62842 1 31.21944 31.21944 1.5 36.98533 36.98533 2 38.45105 38.45105
2.5 3 3.5 4 4.5 5 5.5 6 6.5 7 7.5 8 8.5 9 9.5 10
31.52626 12.94892 -10.2354 -26.3786 -32.7814 -32.708 -26.3286 -11.237 9.185821 25.36144 32.80171 33.84427 29.40382 16.76969 -3.15133 -21.5265
31.52626 12.94892 -10.2354 -26.3786 -32.7814 -32.708 -26.3286 -11.237 9.185821 25.36144 32.80171 33.84427 29.40382 16.76969 -3.15133 -21.5265
Table : Perubahan nilai 𝑞̈ terhadap waktu t 𝑞̈ 1 𝑞̈ 2 0 -39.8732 -976.711 0.5 -56.7855 1002.821 1 -16.8255 -968.297 1.5 -81.1369 1050.861 2 -96.0355 1092.411 2.5 -114.047 1153.31 3 126.4062 -1208.58 3.5 -37.2947 1045.664 4 -119.653 1174.489 4.5 -21.8523 1012.947
5 5.5 6 6.5 7 7.5 8 8.5 9 9.5 10
111.9454 -118.381 -126.769 -127.314 -119.236 111.8775 19.94349 -116.588 -126.49 128.2853 -123.717
-1146.42 1175.962 1210.838 1213.151 1179.484 -1145.97 -1010.21 1162.562 1200.159 -1217.24 1189.334
Tabel : Perubahan nilai sliding surface 𝑆 terhadap waktu t 𝑆1 𝑆2 0 6.6 6.6 0.5 0.000974 -0.00381 1 0.000239 0.009047 1.5 0.000752 -0.00443 2 0.000402 -0.00304 2.5 0.000487 -0.01249 3 -0.00142 0.000458 3.5 -9.2E-06 -0.01265 4 0.000235 -0.00809 4.5 -0.00025 -0.00779 5 -0.0007 0.000844 5.5 0.000201 -0.00735 6 0.001333 -0.00046 6.5 0.000512 -0.00119 7 0.000451 -0.00108
7.5 8 8.5 9 9.5 10
-0.00029 0.000397 0.001297 0.000285 -0.00117 0.000734
0.00693 0.008362 -0.00135 -0.00842 0.004384 -0.00589
Tabel : Perubahan nilai torsi 𝜏 terhadap waktu t m11 m12 0 -89.8608 -97.9747 0.5 -85.7396 96.86039 1 -74.4008 -103.139 1.5 -70.7618 97.64013 2 -71.6836 98.8757 2.5 -80.5868 99.81102 3 99.93483 -101.064 3.5 77.15972 96.95499 4 -137.546 96.15681 4.5 58.1643 96.43537 5 75.86893 -99.8894 5.5 -115.579 100.2268 6 -99.2176 101.2119 6.5 -78.8235 102.9828 7 -63.8292 103.8698 7.5 141.6426 -96.3707 8 -74.919 -100.122 8.5 -81.6695 99.85031 9 -95.8924 99.22265 9.5 83.83974 -102.475
10
-133.641
96.23694
Lampiran 2 Pemodelan Persamaan Dinamik Robot Lengan Sistem dinamik robot lengan diturunkan berdasarkan energi kinetik dan energi potensial robot lengan dengan menggunakan persamaan langrangian. Total energi kinetik robot lengan adalah sebagai berikut: 1 1 1 1 𝑇 = 𝑚1 ‖𝑣12 ‖ + 𝐼1 q̇ 21 + 𝑚2 ‖𝑣22 ‖ + 𝐼2 (q̇ 21 + q̇ 22 ) (1) 2
2
2
2
Dimana energy kinetic lengan 1 adalah 1 1 𝑇1 = 𝑚1 ‖𝑣12 ‖ + 𝐼1 q̇ 21 2 2 Kecepatan linier 𝑣1 bergerak terhadap sumbu 𝑥 dan 𝑦, dimana: ‖𝑣12 ‖ = 𝑥̇1 2 + 𝑦̇ 1 2 (2) 𝑥̇1 adalah kecepatan lengan 1 searah sumbu 𝑥 dan 𝑦̇ 1 adalah kecepatan lengan 1 searah sumbu 𝑦. Perpindahan lengan 1 terhadap 𝑥 dan 𝑦 adalah sebagai berikut: 𝑥1 = 𝑙𝑐1 cos(𝑞1 ) (3) 𝑦1 = 𝑙𝑐1 sin(𝑞1 ) (4) Berdasarkan persamaan 3 dan 4 diperoleh: 𝑥̇1 = −𝑙𝑐1 sin(𝑞1 )𝑞̇ 1 (5) 𝑦̇ 1 = 𝑙𝑐1 cos(𝑞1 ) 𝑞̇ 1 (6) Kecepatan lengan 2 juga bergerak searah sumbu 𝑥 dan 𝑦, dimana: 𝑥2 = 𝑙1 cos(𝑞1 ) + 𝑙𝑐2 cos(𝑞1 +𝑞2 ) (7) 𝑦2 = 𝑙1 sin(𝑞1 ) + 𝑙𝑐2 sin(𝑞1 +𝑞2 ) (8) Posisi lengan 2 dipengaruhi oleh lengan 1. Meskipun lengan 2 dalam keadaan 𝑞̇ 2 = 0, tapi ketika lengan 1 bergerak maka lengan 2 juga ikut bergerak. Hal ini dapat dilihat pada persamaan posisi lengan 2 terhadap 𝑥2 dan 𝑦2 . Berdasarkan persamaan 7 dan 8 maka diperoleh: 𝑥̇1 = −(𝑙1 sin(𝑞1 ) + 𝑙𝑐2 sin(𝑞1 + 𝑞2 ))𝑞̇ 1 − 𝑙𝑐2 sin(𝑞1 +𝑞2 )𝑞̇ 2 (9) 𝑦̇ 1 = (𝑙1 cos(𝑞1 ) + 𝑙𝑐2 cos(𝑞1 + 𝑞2 ))𝑞̇ 1 + 𝑙𝑐2 cos(𝑞1 +𝑞2 )𝑞̇ 2 (10)
Dengan melakukan subtitusi persamaan 2 maka diperoleh persamaan energy kinetic sebagai berikut: 1 1 1 1 𝑇 = 𝑚1 (𝑥̇12 + 𝑦̇ 12 ) + 𝐼1 q̇ 21 + 𝑚2 (𝑥̇ 22 + 𝑦̇ 22 ) + 𝐼2 q̇ 22 2 2 2 2 Dengan melakukan subtitusi persamaan 5,6,9, dan 10 maka diperoleh matrik energi kinetic T: 1 𝑎 𝑏 𝑞̇ 1 ][ ] 𝑇 = [𝑞̇ 1 𝑞̇ 2 ] [ (11) 2 𝑐 𝑑 𝑞̇ 2 Untuk nilai a,b,c, dan d adalah sebagai berikut: 𝑎 = 𝑚1 𝑙𝑐1 2 + 𝑚1 (𝑙2 + 𝑙𝑐2 2 ) + 𝐼1 + 𝐼2 + 2𝑚1 𝑙1 𝑙𝑐2 cos(𝑞2 ) 𝑏 = 𝑚2 𝑙𝑐2 2 + 𝐼2 + 𝑚2 𝑙1 𝑙𝑐2 cos(𝑞2 ) 𝑐 = 𝑚2 𝑙𝑐2 2 + 𝐼2 + 𝑚2 𝑙1 𝑙𝑐2 cos(𝑞2 ) 𝑑 = 𝑚2 𝑙𝑐2 2 + 𝐼2 Fungsi 𝑔(𝑞) merupakan gradient dari energy potensial robot lengan, dimana energy potensial = P. Fungsi 𝑔(𝑞) dapat ditulis dalam persamaan berikut: 𝑔(𝑞) =
𝑑𝑃 𝑑𝑞
(12)
Energi potensial dapat dihitung dengan: 𝑃 = 𝑚𝑔ℎ ℎ adalah tinggi robot lengan terhadap permukaan bumi. Lengan 1 menopang lengan 2 sehingga massa lengan 2 mempengaruhi energy potensial lengan 1. Fungsi gravitasi potensial lengan 1 𝑔1 (𝑞) adalah sebagai berikut[4]: 𝑔1 (𝑞) = 𝑚1 𝑔𝑙𝑐1 sin(𝑞1 ) + 𝑚2 𝑔𝑙1 sin(𝑞1 ) + 𝑚2 𝑔𝑙𝑐1 sin(𝑞1 + 𝑞2 ) 𝑔1 (𝑞) = 𝑔(𝑙𝑐1 𝑚1 + 𝑚2 𝑙1 ) sin( 𝑞1 ) + 𝑔𝑚2 𝑙𝑐2 sin(𝑞1 + 𝑞2 )
(13)
Fungsi energi potensial pada lengan 2 tidak dipengaruhi oleh massa lengan 1 akan tetapi dipengaruhi oleh posisi/ ketinggian lengan 1 terhadap permukaan bumi. Fungsi gravitasi lengan 2 𝑔2 (𝑞) dapat ditulis sebagai berikut: 𝑔2 (𝑞) = 𝑔𝑚2 𝑙𝑐2 sin(𝑞1 + 𝑞2 ) (14) Sehingga fungsi gravitasi robot lengan dapat ditulis 𝑔 (𝑞) 𝑔(𝑞) = [ 1 ] 𝑔2 (q) 𝑔(𝑙 𝑚 + 𝑚2 𝑙1 ) sin(𝑞1 ) + 𝑔𝑚2 𝑙𝑐2 sin(𝑞1 + 𝑞2 ) 𝑔(𝑞) = [ 𝑐1 1 ] 𝑔𝑚2 𝑙𝑐2 sin(𝑞1 + 𝑞2 ) (15) Fungsi gaya gesek pada torsi robot lengan dipengaruhi oleh gaya gesek dan vikositas gesek coulomb terhadap kecepatan lengan [4] 𝑏1 𝑞̇ 1 + 𝑓𝑐1 𝑠𝑔𝑛(𝑞̇ 1 )
𝑓(𝑞̇ ) = [ ] 𝑏2 𝑞̇ 2 + 𝑓𝑐2 𝑠𝑔𝑛(𝑞̇ 2 )
Dimana 𝑏1 dan 𝑏2 adalah viskositas gesek coulomb lengan 1 dan 2. Gaya gesek lengan 1 adalah 𝑓𝑐1 dan gaya gesek lengan 2 adalah𝑓𝑐2 . Pengaruh gaya gesek ini searah dengan kecepatan lengan yang ditunjukkan oleh fungsi 𝑠𝑖𝑔𝑛(𝑞̇ 1 ) dan 𝑠𝑖𝑔𝑛(𝑞̇ 2 ). Dengan mensubtitusikan energi kinetik T pada persamaan 1 kedalam 𝑇 = 𝐿, dimana persamaan langrangian 𝐿 tanpa ada gangguan adalah sebagai berikut: 𝑑 𝑑𝐿 𝑑𝐿 − =𝜏 𝑑𝑡 𝑑𝑞̇ 𝑑𝑞 Robot drive-drive robot arm memiliki gangguan, sehingga persamaan langrangian dapat ditulis sebagai berikut: 𝑑 𝑑𝐿 𝑑𝐿 − = 𝜏 − 𝑓(𝑞) − 𝑔(𝑞) 𝑑𝑡 𝑑𝑞̇ 𝑑𝑞 Dengan melakukan subtitusi 𝐿 = 𝑇, maka diperoleh:
𝑎 𝑐 𝐶11 𝐶12 𝐶21 𝐶22 [
𝑔1 𝑓 𝐶 𝐶12 𝑞̇ 1 𝜏1 𝑏 𝑞̈ 1 ] [ ] + [ 11 ] [ ]=[𝜏 ] − [ 1 ] − [𝑔 ] 𝐶21 𝐶22 𝑞̇ 2 𝑓2 2 2 𝑑 𝑞̈ 2 = −2𝑚2 𝑙1 𝑙𝑐2 sin(𝑞2 )𝑞̇ 2 = −𝑚2 𝑙1 𝑙𝑐2 sin(𝑞2 )𝑞̇ 2 = 𝑚2 𝑙1 𝑙𝑐2 sin(𝑞2 )𝑞̇ 2 =0
(16)
Persamaan 16 dapat diubah menjadi: 𝑀 [ 11 𝑀21
𝑀12 𝑞̈ 1 𝐶 ] [ ] + [ 11 𝑀22 𝑞̈ 2 𝐶21
𝑔1 𝜏1 𝑓 𝐶12 𝑞̇ 1 ] [ ] + [ 1 ] + [𝑔 ] = [𝜏 ] 𝐶22 𝑞̇ 2 𝑓2 2 2
Dimana : 𝑀11 = 𝑚1 𝑙𝑐1 2 + 𝑚1 (𝑙2 + 𝑙𝑐2 2 ) + 𝐼1 + 𝐼2 + 2𝑚1 𝑙1 𝑙𝑐2 cos(𝑞2 ) 𝑀12 = 𝑚2 𝑙𝑐2 2 + 𝐼2 + 𝑚2 𝑙1 𝑙𝑐2 cos(𝑞2 ) 𝑀21 = 𝑚2 𝑙𝑐2 2 + 𝐼2 + 𝑚2 𝑙1 𝑙𝑐2 cos(𝑞2 ) 𝑀22 = 𝑚2 𝑙𝑐2 2 + 𝐼2 𝐶11 𝐶12 𝐶21 𝐶22
= −2𝑚2 𝑙1 𝑙𝑐2 sin(𝑞2 )𝑞̇ 2 = −𝑚2 𝑙1 𝑙𝑐2 sin(𝑞2 )𝑞̇ 2 = 𝑚2 𝑙1 𝑙𝑐2 sin(𝑞2 )𝑞̇ 2 =0
𝑓1 = 𝑏1 𝑞̇ 1 + 𝑓𝑐1 𝑠𝑔𝑛(𝑞̇ 1 ) 𝑓2 = 𝑏2 𝑞̇ 2 + 𝑓𝑐2 𝑠𝑔𝑛(𝑞̇ 2 ) 𝑔1 = 𝑔(𝑙𝑐1 𝑚1 + 𝑚2 𝑙1 ) sin(𝑞1 ) + 𝑔𝑚2 𝑙𝑐2 sin(𝑞1 + 𝑞2 ) 𝑔2 = 𝑔𝑚2 𝑙𝑐2 sin(𝑞1 + 𝑞2 )
Lampiran 3 Source Code yang digunakan pada Matlab Simulasi yang digunakan pada matlab adalah sebagai berikut Source Code blok sliding_mode_control function [sys,x0,str,ts,simStateCompliance] = sliding_mode_control(t,x,u,flag) switch flag, %%%%%%%%%%%%%%%%%% % Initialization % %%%%%%%%%%%%%%%%%% case 0, [sys,x0,str,ts,simStateCompliance]=mdlInitialize Sizes; %%%%%%%%%%%%%%% % Derivatives % %%%%%%%%%%%%%%% case 1, sys=mdlDerivatives(t,x,u); %%%%%%%%%% % Update % %%%%%%%%%% case 2, sys=mdlUpdate(t,x,u); %%%%%%%%%%% % Outputs % %%%%%%%%%%% case 3, sys=mdlOutputs(t,x,u); %%%%%%%%%%%%%%%%%%%%%%% % GetTimeOfNextVarHit % %%%%%%%%%%%%%%%%%%%%%%%
case 4, sys=mdlGetTimeOfNextVarHit(t,x,u); %%%%%%%%%%%%% % Terminate % %%%%%%%%%%%%% case 9, sys=mdlTerminate(t,x,u); %%%%%%%%%%%%%%%%%%%% % Unexpected flags % %%%%%%%%%%%%%%%%%%%% otherwise DAStudio.error('Simulink:blocks:unhandledFlag', num2str(flag)); end function [sys,x0,str,ts,simStateCompliance]=mdlInitialize Sizes sizes = simsizes; sizes.NumContStates sizes.NumDiscStates sizes.NumOutputs sizes.NumInputs sizes.DirFeedthrough sizes.NumSampleTimes sample time is needed
= = = = = =
0; 0; 6; 10; 1; 1;
% at least one
sys = simsizes(sizes); % % initialize the initial conditions % x0 = [];
% % str is always an empty matrix % str = []; % % initialize the array of sample times % ts = [0 0]; simStateCompliance = 'UnknownSimState'; % function sys=mdlDerivatives(t,x,u) sys = []; % function sys=mdlUpdate(t,x,u) sys = []; function sys=mdlOutputs(t,x,u) %% wiring q1=u(1); q2=u(2); q1dot=u(3); q2dot=u(4); q1set=u(5); q2set=u(6); q1setdot=u(7); q2setdot=u(8); qdoublesetdot1=u(9); qdoublesetdot2=u(10); % devlyap=u(9);
%% sliding surface
%e11 = q1setdot - q1dot; %e21 = q1set - q1; %e12 = q2setdot - q2dot; %e22 = q2set - q2; e11 = q1dot-q1setdot; e21 = q1-q1set; e12 = q2dot-q2setdot; e22 = q2-q2set; lamda = [1 0;0 1]; %ket: %e11 = error kec link 1 %e12 = error kec link 2 %e21 = error posisi link 1 %e22 = error posisi link 2 s = [e11;e12] + lamda*[e21;e22]; %% nilai dinamik l1= 0.45; %l2=0.45; m1=23.902; m2=3.880; lc1=0.091; lc2=0.048; i1=1.266; i2=0.093; g1=9.81; b1=2.288; b2=0.175; if q1dot>0 fc1 = 7.17; else fc1 = 8.049; end fc2=1.734; %% persamaan dinamik A1=m1*(lc1^2)+m2*(l1^2+lc2^2)+i1+i2; A2=m2*l1*lc2; A3=m2*(lc2^2)+i2; A4=g1*(lc1*m1+m2*l1);
A5=g1*m2*lc2; A6=b1; A7=b2; A8=fc1; A9=fc2; M = [A1+2*A2*cos(q2) A3+A2*cos(q2) A3+A2*cos(q2) A3]; V = [-2*A2*sin(q2)*q2dot -A2*sin(q2)*q2dot A2*sin(q2)*q1dot 0]; f = [A6*q1dot+A8*sign(q1dot) A7*q2dot+A9*sign(q2dot)]; g = [A4*sin(q1)+A5*sin(q1+q2) A5*sin(q1+q2)];
; ; ; ;
%% kontrol qsetdot = [q1setdot ; q2setdot]; qdot = [q1dot ; q2dot]; qdoublesetdot = [q1setdot ; q2setdot]; thohat = V*qdot + f + g - M*lamda*[e11;e12] + M*qdoublesetdot; k1 = 0.1; k2 = 0.1; k = [k1 0;0 k2]; tho= thohat - k*sign(s); vlyap = 0.5*s'*s; % sdot = inv(M)*(V*qdot+f+g); vdotlyap = s'*inv(M)*-k*sign(s); % vdotlyap = s'*sdot; sys [tho(1);tho(2);s(1);s(2);vlyap;vdotlyap]; function sys=mdlGetTimeOfNextVarHit(t,x,u)
=
sampleTime = 1; % Example, set the next hit to be one second later. sys = t + sampleTime; function sys=mdlTerminate(t,x,u) sys = []; % end mdlTerminate
Source Code Blok robot_lengan function [sys,x0,str,ts,simStateCompliance] = robot_lengan(t,x,u,flag) switch flag, %%%%%%%%%%%%%%%%%% % Initialization % %%%%%%%%%%%%%%%%%% case 0, [sys,x0,str,ts,simStateCompliance]=mdlInitialize Sizes; %%%%%%%%%%%%%%% % Derivatives % %%%%%%%%%%%%%%% case 1, sys=mdlDerivatives(t,x,u); %%%%%%%%%% % Update % %%%%%%%%%% case 2, sys=mdlUpdate(t,x,u); %%%%%%%%%%% % Outputs % %%%%%%%%%%%
case 3, sys=mdlOutputs(t,x,u); %%%%%%%%%%%%%%%%%%%%%%% % GetTimeOfNextVarHit % %%%%%%%%%%%%%%%%%%%%%%% case 4, sys=mdlGetTimeOfNextVarHit(t,x,u); %%%%%%%%%%%%% % Terminate % %%%%%%%%%%%%% case 9, sys=mdlTerminate(t,x,u); %%%%%%%%%%%%%%%%%%%% % Unexpected flags % %%%%%%%%%%%%%%%%%%%% otherwise DAStudio.error('Simulink:blocks:unhandledFlag', num2str(flag)); end function [sys,x0,str,ts,simStateCompliance]=mdlInitialize Sizes sizes = simsizes; sizes.NumContStates sizes.NumDiscStates sizes.NumOutputs sizes.NumInputs sizes.DirFeedthrough sizes.NumSampleTimes sample time is needed
= = = = = =
0; 0; 14; 6; 1; 1;
% at least one
sys = simsizes(sizes); % % initialize the initial conditions % x0 = []; % % str is always an empty matrix % str = []; % % initialize the array of sample times % ts = [0 0]; simStateCompliance = 'UnknownSimState'; function sys=mdlDerivatives(t,x,u) sys = []; function sys=mdlUpdate(t,x,u) sys = []; function sys=mdlOutputs(t,x,u) %% wiring q1=u(1); q2=u(2); q1dot=u(3); q2dot=u(4); tho1=u(5); tho2=u(6); %% dinamik l1= 0.45; %l2=0.45;
m1=23.902; m2=3.880; lc1=0.091; lc2=0.048; i1=1.266; i2=0.093; g1=9.81; b1=2.288; b2=0.175; if q1dot>0 fc1 = 7.17; else fc1 = 8.049; end fc2=1.734; %% persamaan dinamik A1=m1*(lc1^2)+m2*(l1^2+lc2^2)+i1+i2; A2=m2*l1*lc2; A3=m2*(lc2^2)+i2; A4=g1*(lc1*m1+m2*l1); A5=g1*m2*lc2; A6=b1; A7=b2; A8=fc1; A9=fc2;
M = [A1+2*A2*cos(q2) A3+A2*cos(q2) A3]; M1 = A1+2*A2*cos(q2); M2 = A3+A2*cos(q2); M3 = A3+A2*cos(q2); M4 = A3;
A3+A2*cos(q2)
;
V = [-2*A2*sin(q2)*q2dot -A2*sin(q2)*q2dot ; A2*sin(q2)*q1dot 0]; V1 = -2*A2*sin(q2)*q2dot; V2 = -A2*sin(q2)*q2dot; V3 = A2*sin(q2)*q1dot;
V4 = 0; f = [A6*q1dot+A8*sign(q1dot) A7*q2dot+A9*sign(q2dot)]; f1 = A6*q1dot+A8*sign(q1dot); f2 = A7*q2dot+A9*sign(q2dot);
;
g = [A4*sin(q1)+A5*sin(q1+q2) A5*sin(q1+q2)]; g1 = A4*sin(q1)+A5*sin(q1+q2); g2 = A4*sin(q1)+A5*sin(q1+q2);
;
qdot=[q1dot ; q2dot]; tho=[tho1 ; tho2]; %Minv= inv(M); qdoubledot= inv(M)*(tho - V*qdot - f - g); % sys = [qdoubledot(1);qdoubledot(2)]; sys = [qdoubledot(1);qdoubledot(2);M1; M2; M3; M4; V1; V2; V3; V4 ;f1 ;f2 ;g1 ;g2]; function sys=mdlGetTimeOfNextVarHit(t,x,u) sampleTime = 1; % Example, set the next hit to be one second later. sys = t + sampleTime; function sys=mdlTerminate(t,x,u) sys = []; % end mdlTerminate
Source Code plot grafik figure(1) plot(posisilengan1(:,1),posisilengan1(:,2), 'blue','linewidth',3) hold on plot(posisilengan1(:,1),posisilengan1(:,3), 'red','linewidth',2)
hold on grid on axis([0 25 -3 3]) title('Respon posisi lengan 1 dengan Sliding Mode Control'); xlabel('waktu (s)'); ylabel('posisi'); legend('lengan 1', 'lintasan yang diinginkan') figure(2) plot(posisilengan2(:,1),posisilengan2(:,2), 'blue','linewidth',3) hold on plot(posisilengan2(:,1),posisilengan2(:,3), 'red','linewidth',2) hold on grid on axis([0 25 -3 3]) title('Respon posisi lengan 2 dengan Sliding Mode Control'); xlabel('wakatu (s)'); ylabel('posisi'); legend('lengan 2', 'Lintasan yang diinginkan') figure(3) plot(kecepatanlengan1(:,1),kecepatanlengan1 (:,2),'blue','linewidth',3) hold on plot(kecepatanlengan1(:,1),kecepatanlengan1 (:,3),'red','linewidth',2) hold on grid on axis([0 25 -3 3]) title('Respon kecepatan lengan 1 dengan Sliding Mode Control'); xlabel('waktu (s)'); ylabel('kecepatan');
legend('lengan diinginkan')
1',
'Lintasan
yang
figure(4) plot(kecepatanlengan2(:,1),kecepatanlengan2 (:,2),'blue','linewidth',3) hold on plot(kecepatanlengan2(:,1),kecepatanlengan2 (:,3),'red','linewidth',2) hold on grid on axis([0 25 -3 3]) title('Respon kecepatan lengan 2 dengan Sliding Mode Control'); xlabel('waktu (s)'); ylabel('kecepatan'); legend('lengan 2', 'lintasan yang diinginkan')
BIODATA PENULIS Penulis lahir di Maninjau, Sumatera Barat, 22 Maret 1995. Penulis menempuh pendidikan di SD 22 Talawi Payakumbuh lulus tahun 2007, MTsN Koto Nan Gadang Payakumbuh lulus tahun 2010, dan SMA 1 Payakumbuh lulus tahun 2012. Penulis melanjutkan pendidikan sarjana di Jurusan Teknik Fisika ITS. Selama aktif menjadi mahasiswa, penulis bergabung dalam organisasi IMAMI Surabaya sebagai kepala departemen minat bakat dan juga sempat menjabat sebagai asisten laboratorium rekayasa instrumentasi dan kontrol di jurusan Teknik Fisika. Penulis mempunyai pengalaman internship program selama 1 bulan di PT. Dirgantara Indonesia, Bandung. Bidang minat penulis adalah Rekayasa Instrumentasi dan Kontrol. Penulis dapat dihubungi melalui email
[email protected]