lengan robot

31
TUGAS PEMODELAN & SIMULASI NUMERIK OLEH: F E B R I A N (10 32 003) WICAKSONO CAKRAHALIM (10 32 004) C H R I S T I A N (10 32 007)

Upload: christian-alexander-thungady

Post on 20-Oct-2015

65 views

Category:

Documents


4 download

DESCRIPTION

Simulasi Lengan Robot

TRANSCRIPT

Page 1: Lengan Robot

TUGAS PEMODELAN & SIMULASI

NUMERIK

OLEH:

F E B R I A N (10 32 003)

WICAKSONO CAKRAHALIM (10 32 004)

C H R I S T I A N (10 32 007)

UNIVERSITAS ATMA JAYA MAKASSAR

Page 2: Lengan Robot

Lengan Robot

Lengan 1 bisa berputar 90º atau 180º

Sistem lengan robot pada gambar bekerja mengambil dan meletakkan kotak coklat

yang datang secara random, satu kotak datang setiap 16 detik. Berat kotak coklat

0,5 kg atau 1 kg. Terdapat tiga kali lebih banyak kotak 0,5 kg daripada 1 kg. Jika

kotaknya 0,5 kg, lengan robot akan mengambil dan meletakkan kotak coklat di

titik A. Jika 1 kg akan diambil dan diletakkan di titik B. Kedua robot digerakkan

oleh motor DC (Servo Motor). Lengan 1 dapat bergerak 90º atau 180º, lengan 2

bergerak naik dan turun.

Page 3: Lengan Robot

Motor 1

Ẋ₁ = -10 x₁ + 333,333 x₂

Ẋ₂ = -0,5 x₁ - 10 x₂ + 0,1 Vt

Motor 2

Ẋ₁ = -7,3 x₁ + 250 x₂

Ẋ₂ = -0,5 x₁ - 10 x₂ + 0,1 Vt

PID Controller

Vt = 5000 {0,3 (wp - w) + 0,01 (wp – w) dt + 0,1 (d (wp – w))}

dt

Page 4: Lengan Robot

Cara Membuat Sistem Lengan Robot dengan Simulink

1. Buka aplikasi matlab dengan mengklik shortcut matlab pada desktop

2. Setelah itu akan terbuka halaman kerja matlab

3. Klik icon simulink

Page 5: Lengan Robot

4. Muncul jendela kerja Simulink Library Browser lalu pilih Commonly

Used Blocks

5. Dari rumus motor 1 dapat dibuat rangkaian seperti pada gambar

Rumus

Motor 1

Ẋ₁ = -10 x₁ + 333,333 x₂

Ẋ₂ = -0,5 x₁ - 10 x₂ + 0,1 Vt

Page 6: Lengan Robot

6. Buatlah rangkaian dari rumus seperti pada gambar di atas dengan simulink

7. Masukkan nilai – nilai sesuai dengan rumus motor 1 dengan cara klik icon

yang ingin diubah nilainya.

a. Sum

Klik dua kali icon sum

Masukkan data seperti berikut

Page 7: Lengan Robot

Maka icon sum akan berubah seperti icon dibawah

Untuk mengubah model sum dari round (mode awal) menjadi

persegi seperti pada gambar dibawah, pilih icon shape lalu pilih

menu Rectangular.

b. Gain

Klik dua kali icon gain

Masukkan data seperti berikut

Page 8: Lengan Robot

Maka icon gain akan berubah seperti icon dibawah

Untuk gain yang lain, lakukan cara yang sama untuk

memasukkan nilai

8. Hasil dari rangkaian motor 1

Page 9: Lengan Robot

9. Setelah rangkaian selesai buatlah rangkaian menjadi sebuah subsystem

dengan cara block semua hasil rangkain lalu klik kanan dan pilh create

subsystem

Setelah memilih subsystem maka rangkaian akan berubah menjadi

10. Setelah rangkaian motor 1 selesai, lanjutkan membuat motor 2 dengan

mengikuti rumus.

Rumus

Motor 2

Ẋ₁ = -7,3 x₁ + 250 x₂

Ẋ₂ = -0,5 x₁ - 10 x₂ + 0,1 Vt

Page 10: Lengan Robot

11. Setelah motor 1 dan motor 2 selesai, lanjutkan dengan membuat PID

Controller

a. Rumus PID Controller

Vt = 5000 {0,3 (wp - w) + 0,01 (wp – w) dt + 0,1 (d (wp – w))}

dt

b. Buat rangkaian PID Controller dengan memasukkan angka – angka

yang terdapat pada rumus

Page 11: Lengan Robot

c. Setelah selesai buatlah rangkaian menjadi subsystem

12. Setelah Motor 1, Motor 2 dan rangkaian PID selesai, buat switch seperti

pada gambar dibawah ini

Kemudian, pada kolom Treshold masukkan angka sesuai pada rumus yang

telah dibahas, seperti pada gambar dibawah ini.

Switch ini akan diperlukan 3 buah, yang nantinya akan menjadi input pada

PID Controller, Motor 1 dan Motor 2

Page 12: Lengan Robot

13. Kemudian, berikutnya kita akan membuat random variable yang nantinya

akan menentukan kotak yang akan keluar secara random, pada fungsi ini

kita akan menggunakan Uniform Random Variabel seperti pada gambar

dibawah ini

Page 13: Lengan Robot

Kemudian, ubah pengaturan sample time, seperti yang telah diminta oleh

soal, bahwa kotak akan tiba secara random setiap 16 detik.

Page 14: Lengan Robot

14. Berikutnya, kita akan membuat matlab function yang berfungsi sebagai

pemisah, antara dimana kotak 0,5Kg dan kotak 1Kg akan diletakkan,

seperti pada gambar dibawah ini :

Page 15: Lengan Robot

Kita akan membutuhkan 2 matlab function, yang berguna untuk

membedakan arah peletakan kotak 0,5Kg dan kotak 1Kg, pada kedua

matlab function ini, ubah masing-masing fungsinya seperti gambar

dibawah ini

Profile 90

Page 16: Lengan Robot

Profile 180

Page 17: Lengan Robot

15. Kemudian, untuk mengaktivkan fungsi matlab function, yaitu profile_90

dan profile_180, kita memerlukan perintah-perintah dalam bahasa Matlab

yang akan digunakan untuk memanggil masing-masing dari fungsi

tersebut, dan untuk menjalankan fungsi itu sendiri.

Untuk Menjalankan Fungsi Profile_90 maka berikut adalah

perintah yang dapat kita gunakan :

function x = profile_90(t)t=rem(t,16); % pickingif t<0.25 x=(pi/(2*0.25))*-t; else if t<1 x=-pi/2; else if t<1.25 x=(pi/(2*0.25))*(t-1.25); else if t<1.5 x=0; else if t<1.75 x=(pi/(2*0.25))*(t-1.5); else if t<2.5 x=pi/2; else if t<2.75 x=(pi/(2*0.25))*(-t+2.75);% interval else if t<3.25 x=0;% move_90 else if t<3.5 x=(pi/(2*0.25))*(t-3.25); else if t<4.25 x=pi/2; else if t<4.5 x=(pi/(2*0.25))*(-t+4.5);% interval else if t<5 x=0;

Page 18: Lengan Robot

% dropping else if t<5.25 x=(pi/(2*0.25))*(-t+5); else if t<6 x=-pi/2; else if t<6.25 x=(pi/(2*0.25))*(t-6.25); else if t<6.5 x=0; else if t<6.75 x=(pi/(2*0.25))*(t-6.5); else if t<7.5 x=pi/2; else if t<7.75 x=(pi/(2*0.25))*(-t+7.75);% interval else if t<8.25 x=0;% back_move_90 else if t<8.5 x=(pi/(2*0.25))*(-t+8.25); else if t<9.25

Page 19: Lengan Robot

x=-pi/2; else if t<9.5 x=(pi/(2*0.25))*(t-9.5); else x=0; end end end end end end end end end end end end end end end end end end end end end end end

Page 20: Lengan Robot

Kemudian, untuk memanggil fungsi profile_90 agar pada saat

dijalankan dapat berfungsi dengan baik, kita akan memerlukan

perintah sebagai berikut :

t=[0:0.001:16];for i=1:size(t,2) x(i)=profile_90(t(i));endfigureplot(t,x);grid;

Page 21: Lengan Robot

Untuk Menjalankan Fungsi Profile_180 maka berikut adalah

perintah yang dapat kita gunakan :

function x = profile_180(t)t=rem(t,16); % pickingif t<0.25 x=(pi/(2*0.25))*-t; else if t<1 x=-pi/2; else if t<1.25 x=(pi/(2*0.25))*(t-1.25); else if t<1.5 x=0; else if t<1.75 x=(pi/(2*0.25))*(t-1.5); else if t<2.5 x=pi/2; else if t<2.75 x=(pi/(2*0.25))*(-t+2.75); % interval else if t<3.25 x=0; % move_180 else if t<3.5 x=(pi/(2*0.25))*(t-3.25); else if t<5.75 x=pi/2; else if t<6 x=(pi/(2*0.25))*(-t+6); % interval else if t<6.5 x=0; % dropping else if t<6.75

Page 22: Lengan Robot

x=(pi/(2*0.25))*(-t+6.5); else if t<7.5 x=-pi/2; else if t<7.75 x=(pi/(2*0.25))*(t-7.75); else if t<8 x=0; else if t<8.25 x=(pi/(2*0.25))*(t-8); else if t<9 x=pi/2; else if t<9.25 x=(pi/(2*0.25))*(-t+9.25); % interval else if t<9.75 x=0; % back_move_180 else if t<10 x=(pi/(2*0.25))*(-t+9.75); else if t<12.25

Page 23: Lengan Robot

x=-pi/2; else if t<12.5 x=(pi/(2*0.25))*(t-12.5); else x=0; end end end end end end end end end end end end end end end end end end end end end end endend

Page 24: Lengan Robot

Kemudian, untuk memanggil fungsi profile_180 agar pada saat

dijalankan dapat berfungsi dengan baik, kita akan memerlukan

perintah sebagai berikut :

t=[0:0.001:16];for i=1:size(t,2) x(i)=profile_180(t(i));endplot(t,x);grid

16. Setelah semua fungsi diatas yang dibutuhkan selesai dibuat, masukkan

clock, constant, simout dan scope, sebagai tahap akhir seperti pada gambar

dibawah ini :

17. Jika semua fungsi telah selesai, langkah selanjutnya yaitu menjalankan

simulasi lengan robot ini dengan menekan tombol “Start Simulation”

seperti pada gambar dibawah ini :

Page 25: Lengan Robot

18. Jika pada saat start simulation terjadi error, maka periksalah kembali pada

bagian mana error tersebut berasal, dan jika tidak ada kesalahan, hasil dari

simulation dapat kita lihat pada scope bagian terakhir, seperti pada gambar

dibawah ini :

19. Untuk melihat hasil akhir, klik 2x scope yang dilingkar pada gambar

diatas, kemudian, untuk hasilnya dapat kita lihat pada gambar dibawah ini: