Tuesday, March 3, 2015

How to create circle trajectory in matlab

Hal ini merupakan permasalahan sederhana tapi bagaimana cara menerapkanya di dalam sebuah script ?.
contoh fungsi lingkaran adalah sebagai referensi pergerakan suatu sistem, contoh pesawat UAV, Kapal selam (AUV), Robot Manipulator dan banyak lainya. Berikut langkah-langkah untuk membuat referensi lingkaran. yang perlu anda ingat konsep membuat lingkaran pada bidang X-Y adalah lingkaran dibentuk dari Sinus pada satu sumbu dan Cosinus pada sumbu lainya.

1. Buka matlab simulink
2. Buka Library Browser
3. Pilih User defined Function dan pilih Matlab Function. -> add to Untitled
4. pada Source, pilih clock, -> add to Untitled
5. pada Sink, pilih Scope, -> add to Untitled

5. pada Sink, pilih XY-Graph, -> add to Untitled
6. pada matlab function ketik

function [x,y] = Circle(t)
freq = 0.1;
Gain = 10;
x = sin(freq*t)*Gain;
y = cos(freq*t)*Gain;
Gain digunakan untuk memperbesar radius lingkaran, frequensi untuk  kecepatan trajectory dalam 1 putaran. 

6. kemudian hubungkan clock dengan input t dan scope dan XY-Graph dengan output pada blok matlab function seperti gambar berikut :


7. Setelah itu Run, maka pada X-Y Graph akan terlihat seperti hasil berikut :


   
   
Read More

Sunday, March 1, 2015

Curve fitting ialah proses pencocokan pola data dalam bentuk grafik kedalam sebuah persamaan. pengertian sederhananya yaitu mengubah grafik data menjadi sebuah persamaan yang dapat mewakili grafik tersebut. hal ini dapat dilakukan dengan mudah di matlab. berikut tutorialnya :

1. buka matlab
2. siapkan data grafik anda. jika tidak punya sebagai contoh disini kita buat data grafik dengan persamaan berikut ini.
ketik di command windows matlab

x=-10:0.1:10;
y = x^.2 + 10;

pastikan pada jendela workspace terdapat data x dan y.

3. ketik  cftool untuk menggunakan matlab curve fitting, kemudian akan muncul dialog seperti gambar berikut ini:


4. kemudian pilih x data dengan data 'x' dan y data dengan data 'y' yang telah kita hasilkan dengan mengetik persamaan diatas tadi. kemudian pada grafik akan secara otomatis menampilkan data dalam bentuk grafik  seperti gambar berikut ini.


5.  dari gambar diatas dapat kita lihat terdapat dua garis, yang warna hitam adalah data yang kita punya, dan yang biru adalah data perkiraan dengan rumus polynomial. dari grafik tersebut dapat kita lihat tidak ada kecocokan sama sekali. kemudian kita cari dengan pilihan rumus atau degree yang tersedia pada kolom polynomial



 6. pertama mari kita coba dengan meningkatkan degree dari polynomial menjadi dua . Alhasil seperti berikut :


dari gambar diatas terlihat garis biru menyerupai garis warna hitam, sehingga hal ini dapat dikatakan persamaan ini sudah sesuai untuk mewakili persamaan  y = x^.2 + 10 . persamaan baru yang kita peroleh dapat kita lihat pada sisi sebelah kiri grafik. seperti berikut ini :

 dari gambar diatas dapat dilihat persamaan baru yang mewakili grafik, yaitu
y = p1*x^2 + p2*x +p3

dengan nilai p1, p2, p3 seperti tertulis diatas, dengan mengabaikan nilai yang sangat kecil yaitu p2. maka akan kita dapatkan persamaan baru diatas menjadi 
y = x^2 + 10 .. sehingga curve fitting mampu mengenali persamaan hingga 99%. 

untuk mewakili data diatas , tidak terpaku pada persamaan polynomial, anda juga bisa mencoba dengan persamaan exponential atau gaussian degree 2, namun untuk yang exponential kurang bagus hasilnya dibanding dengan gaussian degree 2. 

untuk exponential persamaan yang mewakili adalah :

     f(x) = a*exp(b*x) + c*exp(d*x)
Coefficients (with 95% confidence bounds):
       a =       7.948  (7.274, 8.622)
       b =     -0.2705  (-0.2804, -0.2606)
       c =       7.948  (7.275, 8.622)
       d =      0.2705  (0.2606, 0.2804)

dan untuk gaussian persamaan nya adalah :

     f(x) =  a1*exp(-((x-b1)/c1)^2) + a2*exp(-((x-b2)/c2)^2)
Coefficients (with 95% confidence bounds):
       a1 =       173.8  (168.3, 179.4)
       b1 =       15.77  (15.5, 16.05)
       c1 =       8.442  (8.306, 8.579)
       a2 =       173.8  (168.3, 179.4)
       b2 =      -15.77  (-16.05, -15.5)
       c2 =       8.442  (8.306, 8.579)

Selamat mencoba dengan data anda.
Semoga tulisan ini membantu, :)

Read More

Latest