Membuat GUI di Matlab dengan tombol Load *.MAT

File mat merupakan file hasil olah Matlab sebelumnya (image processing, jaringan syaraf tiruan, dan lain-lain). Biasanya hasil oleh ini disimpan dalam file dengan instruksi save <nama_file> dan diberikan ekstensi oleh matlan mat.

Pertama-tama persiapkan satu folder untuk program yang akan kita buat. File mat harus diletakkan pada folder kerja tersebut (pada matlab diberi istilah current directory). Buat suatu GUI baru dengan nama misalnya ambil_file.

guide

Anda akan melihat pilihan mau buat GUI kosong, GUI yg pernah dibuat, atau sudah bertemplate. Pilih saja yang Blank GUI (Default). Drug toolbox command button berlambang “OK” ke arah lembar kerja GUI. Secara default akan diberi nama Push Button.

Untuk mengedit Push Button, klik ganda tombol itu hingga memunculkan properties. Ganti Push Button dengan isian pada String: Ambil File. Dan nama variabel (pada Matlab diberi nama Tag) isi dengan nama ambil. Tag ini akan menampilkan fungsi ambil di file m matlab.

Simpan GUI anda dan beri nama, misalnya ambil. Matlab akan menciptakan dua file yaitu ambil.fig dan ambil.m fungsinya berturut-turut sebagai GUI dan sebagai script. Secara ajaib, Matlab akan memberikan kode yang siap kita isi di sana. Dengan cara yang sama, buat seperti di bawah ini:

Edit text di sebelah kanan biarkan saja, tidak perlu di utak-atik supaya cepat, dan nama Tag (variabel)-nya edit1. Maksudnya adalah menampilkan nama file yang diambil. Masukan listing seperti berikut ini:

  • [x,y] = uigetfile(‘*.mat’, ‘Mengambil Data’);
  • set(handles.edit1,‘String’,x);
  • y=load(x)
  • net=y.network1

Uigetfile akan mengambil jendela get file dengan ekstensi yang akan ditampilkan *.mat. Pada jendela akan muncul nama jendela ‘Mengambil Data‘. Saya mengambil data saya bernama jst.mat, hasil training JST yang lalu. Instruksi y=load(x) akan mengambil variabel x ke workspace dan net=y.network1 mengambil variabel di y yang isinya hanya jst saya (network1). Jika Anda lihat di command window akan muncul y dan net saya, tentu saja jika Anda tidak memiliki file jst.mat milik saya tidak akan muncul networknya (coba buat sendiri). Silahkan cek apakah file tersebut muncul di sebelah kanan tombol Ambil File (Edit Text).

Sekarang kita coba menyimpan data yang kita barusan ambil (atau mungkin data hasil oleh GUI jika ada). Misal kita akan merename. Isi pada fungsi simpan (awas jangan salah kamar) di m-file pada simpan_Callback.

  • y=load(‘jst.mat’)
  • [nm_file] = uiputfile(‘*.mat’,‘Menyimpan File’);
  • data_file = [nm_file];
  • save(data_file);

Jalankan, Anda akan menampilkan jendela simpan. Bisa Anda tambahkan message jika file telah tersimpan. Di sini kita coba menyimpan y hasil dari loading suatu file (‘jst.mat‘). Dan akan menyimpannya menjadi file lain, misalnya jst2.mat.

Contoh di atas hanya mencoba GUI saja, karena tidak ada yang diolah di sini. Anda bisa menyisipkan fungsi-fungsi ini pada sistem yang anda rancang. Dari pengolahan gambar hingga fungsi-fungsi berat seperti Algoritma Genetik yang saya buat untuk mencari lokasi SPBU yang optimal di Bekasi.

Algoritma Genetik dengan Toolbox Matlab

Salah satu hal yang tersulit dari algoritma genetik adalah menentukan persamaan tujuan (objective function). Baik buruk model yang kita buat tergantung dari persamaan tujuan ini. Sebagai contoh ingin menentukan letak terjauh dari beberapa titik tetapi tetap berada di sepanjang jalan tertentu, misalnya untuk menentukan letak optimal SPBU. Setelah kita merancang Sistem Informasi Geografis (SIG) berikutnya kita menentukan layer-layernya, yaitu layer raster data (peta) layer persamaan jalan, layer lokasi-lokasi vital yang harus sejauh mungkin dari SPBU, dan terakhir letak optimal SPBU. Berikut ini contoh penerapannya.

Pada Matlab, untuk membuat model algoritma genetik sangat mudah karena sudah disiapkan toolbox yang dapat dibuka lewat start – toolboxes – dan seterusnya. Cari optimasi toolbox, dan Anda pilih GA toolbox. Ada sedikit pemanggilan fungsi, pertama pada jendela toolbox GA Anda memanggil fungsi tujuan, sementara pada fungsi tujuan, Anda memanggil fungsi jalan. Fungsi jalan adalah persamaan matematis yang mewakili garis jalan, persamaan ini sangat sulit saya kerjakan, tetapi dengan merubah menjadi orde -1, sedikit lebih mudah, walaupun hasilnya jalan menjadi segmen patah-patah.

Selain untuk mencari letak optimal SPBU, GIS yang terbentuk bisa digunakan untuk menentukan letak optimal lainnya yaitu persawahan, perumahan, perkebunan, perkantoran, hingga mendeteksi sebaran penyakit. Tentu saja sekali lagi, persamaan tujuan menjadi penentu baik buruk hasil optimasi.

Matlab 2007 lebih baik dari pada Matlab 2008?

Tiap tahun biasanya Matlab menerbitkan versi terbarunya. Pertama kali saya menggunakan Matlab 6 tahun 2001 ketika menyelesaikan skripsi S1. Waktu itu Matlab mulai meluncurkan pemrograman Visualnya. Karena hanya sebagai alat bantu simulasi perhitungan getaran, saya tidak begitu mengeksplorasi fitur-fitur yang ada di Matlab 6. Baru ketika menyelesaikan Tesis tentang pencocokan pola dengan Jaringan Syaraf Tiruan, fitur-fitur yang ada banyak saya ketahui, dari SIMULINK, toolbox yang beraneka macam dan teknik kompilasi menjadi program executable sudah saya coba.

Berikut ini kita akan menguji kemampuan pembelajaran Jaringan Syaraf Tiruan (JST) antara Matlab 7 dengan Matlab 8. Untuk mudahnya, kita misalnya akan mengajari perkalian dua bilangan. Persiapkan datanya sebagai berikut pada command window.

Pada Matlab 2008 buka jendela toolbox JST dengan mengetik nntool. Masukan data-data tersebut di atas ke dalam toolbox tersebut.

Parameter-parameter yang digunakan antara lain fungsi pembelajaran lavenberg marquadt (TRAINLM), fungsi adaptasi gradien Minimum (LEARNGDM), fungsi performa Mean Square Error (MSE), jumlah lapis 2 (satu lapis tersembunyi), jumlah neuron 3 pada lapis tersembunyi itu. Fungsi transfer yang digunakan di lapis tersembunyi adalah tangen sigmoid (TANSIG) dan lapisan output linear (PURELIN). Lakukan proses training yang dilanjutkan dengan menguji hasil pembelajaran dan data lain di luar data pelatihan.

Masuk ke tab Train, lakukan proses training dan jangan lupa menyimpan Network1 ke workspace agar bisa digunakan untuk menguji data. Lakukan pengujian dengan fungsi SIM.

Perhatikan, hasil belajarnya cukup baik dimana errornya hampir tidak ada jika diuji dengan data pelatihan. Coba uji dengan data lain selain data pelatihan, apakah benar hasilnya masukan pertama dikali masukan kedua.

Perhatikan, ada error di kolom dua antara target dengan hasil simulasi JST. Berikutnya kita lakukan cara yang sama di Matlab 2007, apakah hasilnya lebih baik? Dengan parameter yang setara tentunya.

Perhatikan gambar di atas, tampak adanya perbedaan dengan Matlab 2008. Pada Matlab 2007, gambarnya masih kurang baik menurut saya. Salah satu perbedaan lainnya adalah saat training tidak dijumpai bentuk GUI penjelasan training, melainkan hanya grafik saja.

Uji terhadap data pelatihan cukup baik dan mendekatai Matlab 2008, hanya saja ada dua data yang harusnya 6 tetapi dijawab 5,9997. Tetapi tentu saja dianggap berharga 6. Sedangkan untuk data lain (data yang sama dengan uji pada Matlab 2008) dihasilkan:

Ternyata hasilnya pun tidak jauh berbeda dengan Matlab 2008, yaitu error di kolom 2 yang disebabkan keluaran yang bernilai 12, jauh dari nilai saat pelatihan. Lebih baik Matlab 2008? Tunggu dulu, coba data lain misalnya logika OR.

Jika menggunakan cara di atas, untuk Matlab 2007 menghasilkan keluaran:

Sedangkan untuk Matlab 2008 menghasilkan keluaran:

Hal ini saya temukan ketika mengajar data mining di kelas Sistem Informasi Darma Persada, lab yang terinstall Matlab 2007 menghasilkan keluaran yang baik dibanding laptop saya yang terinstall Matlab 2008. Kalau ingin membuktikannya coba sendiri di komputer Anda. Salah satu keunggulan versi 2008 adalah dari sisi kompilasi (Deployment Project) yang sudah lengkap.

Instalasi Octave di Windows

Salah satu keunggulan Matlab dibanding bahasa C atau Fortran di masa-nya adalah dalam perhitungan Matriks. Matlab mampu memenuhi permintaan para saintis yang sangat membutuhkan alat bantu perhitungan matriks yang memang banyak dibutuhkan untuk risetnya. Namun demikian, harga lisensi yang mahal menarik simpati para open source programmer menciptakan aplikasi sejenis Matlab tetapi dengan tanpa membayar sepeserpun ketika menggunakannya. Salah satu aplikasi dengan format bahasa seperti Matlab yang open source adalah octave yang bisa diunduh pada situs resminya, www.gnu.org/software/octave

Setelah selesai mengunduh, lakukan instalasi sederhana dengan mengklik installernya. O iya, sebelum mengunduh pastikan dahulu versi sistem operasi yang akan menjalankan octave, linux atau window. Berikut ini saya menginstall octave versi 3.4.3 untuk windows. Selain itu, ternyata tersedia pula fungsi-fungsi untuk mengolah gambar/citra yang sangat bermanfaat untuk aplikasi-aplikasi deteksi gambar atau sistem biometrik.

Butuh waktu beberapa menit untuk menginstal octave. Beberapa file DLL extract dan diletakkan di system windows serta dibentuk beberapa folder penting octave sebelum akhirnya octave berhasil diinstal di komputer kita.

Setelah tombol FINISH ditekan, maka octave telah berhasil kita instal. Perhatikan bentuk simbol lebih besar (‘>’) yang merupakan ciri khas bahasa berbasis Matlab. Perlu diketahui, tampilan matlab pertama kali pada tahun 80-an mirim sekali dengan tampilan octave ini.

Membuat Aplikasi Sederhana Berbasis Support Vector Machine (SVM)

Berikut ini kita akan mencoba membagi kelas IPA, IPS, dan Bahasa terhadap satu kelompok kelas. Istilah yang digunakan untuk lebih dari dua kelas adalah MULTICLASS. Untuk contoh kita buat data IPA, IPS, dan Bahasa dengan data sedikit saja:

Berikutnya kita membuat tiga garis pemisah y1, y2, dan y3 yang akan memisahkan data berdasarkan kriteria seperti gambar di bawah ini:

Pertama kita buat y1:

Berikutnya kita membuat pemisah IPA dan Bahasa, y2:

Terakhir kita membuat pemisah IPS dan Bahasa, y3:

Berikutnya persamaan garis y1, y2, dan y3 dijadikan dasar patokan menentukan jurusan seorang siswa, misalnya IPA= 75, IPS= 85, dan Bahasa= 90]. Kita gunakan y1 untuk menguji apakah IPA atau IPS. Simpan data persamaan garis dalam bentuk file, misalnya namanya y, ketik save y di Command Window.

Karena hasil pengujian tahap pertama masuk kategori IPS, maka pengujian berikutnya dengan y3 untuk menentukan apakah dia IPS atau Bahasa. Perhatikan gambar diagram pohon sebelumnya, dimana jika diperoleh uji pertama = 1, maka digunakan uji ketiga antara IPS dan Bahasa.

Dan hasil akhir diperoleh 2 yang artinya, siswa tesebut masuk kategori kelas bahasa berdasarkan enam data sebelumnya. Bagaimana membuat aplikasi terapannya? Rancang GUI seperti berikut ini:

Gunakan kode berikut ini:

  • load y
  • uji=[handles.ipa handles.ips handles.bahasa]
  • uji1=svmclassify(y1,uji(:,1:2))

 

  • if uji1==0
  • uji2=svmclassify(y2,[uji(:,1) uji(:,3)])
  • if uji2==0
    • msgbox(‘Kelas IPA’)
  • else
    • msgbox(‘Kelas IPS’)
  • end
  • else
  • uji3=svmclassify(y3,uji(:,2:3))
  • if uji3==1
    • msgbox(‘Kelas IPS’)
  • else
    • msgbox(‘Kelas Bahasa’)
  • end
  • end

Masukan data seperti data uji sebelumnya, hasilnya harus sama.

 

 

Membandingkan Respon Sistem

Pengenalan Pengaturan/30.04.2013/Teknik komputer

Terkadang dibutuhkan grafik yang membandingkan beberapa jenis sistem kendali dalam satu SCOPE. Untuk itu diperlukan Multiplexer (MUX) yang memadukan dua atau lebih keluaran dalam satu SCOPE. Untuk latihan buat contoh Sistem Kendali sebagai berikut.


Multiplexer diperoleh dengan mudah lewat SEARCH di Simulink Library Browser.


Secara Default, MUX menyediakan dua masukan. Ganti “Number of Input” dengan tiga karena kita akan merancang tiga masukan.


Jalankan Model Simulink yang baru saja dibuat. Ketika SCOPE dilihat (dengan cara dobel klik) akan tampak respon perbandingan seperti berikut ini.


Terkadang kita diminta menampilkan grafik bukan dalam bentuk SCOPE karena kurang nyaman dicetak akibat background yang berwarna gelap. Oleh karena itu kita harus menampilkannya dalam format PLOT yang dapat diedit. Untuk itu pada gambar di atas, tekan Parameters. Pada Tab Data History, check list tombol Save Data to Workspace, dengan format Array. Maksudnya adalah ketika Simulasi berjalan, SCOPE akan menyimpan informasi grafik Workspace. Nama variabel (ScopeData) dapat kita ganti sesuai keinginan.


Berikutnya kita akan membuat PLOT lewat Command Window. Sebelumnya tekan tombol OK terlebih dahulu pada gambar di atas. Jalankan SIMULASI kemudian masuk ke Command Window. Perhatikan, pada Workspace terdapat variabel baru hasil tangkapan SCOPE dengan nama ScopeData. Buat kode berikut ini:

  • plot(ScopeData(:,1),ScopeData(:,2))
  • hold
    • Current plot held
  • plot(ScopeData(:,1),ScopeData(:,3))
  • plot(ScopeData(:,1),ScopeData(:,4))
  • grid

Perintah hold bermaksud agar gambar yang lalu tidak dihapus dan tetap dipertahankan ada di figure. Instruksi GRID agar dihasilkan garis bantu pada grafik.

Metode Elemen Hingga pada Thrust Element dengan Matlab

Metode Elemen Hingga, 26.11.2012, T. Mesin – S1

Materi UTS yang lalu sampai kekakuan pegas dan kali ini kita mulai masuk ke bidang struktur, khususnya thrust element. Batang ini hanya menerima tegangan tarik dan tekan saja, tidak ada gaya geser dan bending. Banyak dimanfaatkan sebagai penyangga pada jembatan (berupa tali atau kolom). Di bawah ini contoh kasus yang akan kita selesaikan dengan metode elemen hingga.

Elemen 1 dan 2 memiliki luas penampang dan modulus elastisitas yang sama berturut-turut 30.000.000 psi dan 1 in2 sementara elemen 3 E sebesar 15.000.000 psi dan A3 = 2 in2. Berapakah: a) Matriks kekakuan K (General Stiffness Matrix) b) Pergeseran titik 2 dan 3? Dan c) Gaya reaksi di titik 1 dan 4.

Dari matriks-matriks kekakuan k di atas dirakit menjadi K:

Dan karena tidak ada pergeseran di titik 1 dan 4 maka diperoleh persamaan berikut ini:

Buka Matlab Anda, masukkan k (untuk elemen 2) dan d (defleksi titik 2 dan 3). Pada command window masukan instruksi:

Diperoleh pergeseran di titik 2 sebesar 0.002 in dan titik 3 0.001 in. Untuk memperoleh gaya di titik 4 gunakan persamaan umumnya. Masukan K dan D yang menyatakan berturut-turut matriks kekakuan umum dan pergeseran titik-titiknya.

Diperoleh gaya reaksi di titik 1 sebesar 2000 lb ke arah kiri dan di titik 4 sebesar 1000 lb ke kiri. Jangan lupa mengalikan dengan 1000000 pada matriks kekakuannya (biasanya mahasiswa lupa).

Membuat Logika AND di Anfis

Upload Via Word, 1.11.2012. Tk. Elektronika

And merupakan operator logika dimana masukan kiri dan masukan kanan harus berharga ‘1’ jika ingin dihasilkan keluaran = 1. Untuk mempraktekannya coba buka Matlab anda. Masukkan data di matlab:

>> dat

 

dat =

 

0 0 0

1 0 0

0 1 0

1 1 1

Kemudian ketik anfisedit

Load data dari workspace yang baru saja dibuat, rancang struktur dengan dua mf di tiap tiap masukan. Hasilnya seperti ini, dibuat dua, karena rencananya hanya aka nada dua masukan dekat ke 0 atau ke 1

Lakukan training, kemudian simpan ke file. Buka fuzzy hasil create. Uji RULEnya.

Tarik garis merah ke kenan semua (berarti masukan 1 =1 dan masukan kanan 1), maka hasil output harus satu. Sebaliknya selain itu, missal kiri 0 dan kanan 1, hasilnya harus 0.

Merancang Apliksai Sederhana Perhitungan Kalor dgn Matlab

Metode Elemen Hingga, 29.10.2012, Tek Mesin S1

Setelah pada pertemuan sebelumnya kita membuat aplikasi perhitungan suhu suatu bidang dua dimensi dengan console (text-based), sekarang kita coba untuk membuat aplikasi yang berbasis Graphical User Interface (GUI). Untuk mempraktekannya download gambar berikut ini.

Kemudian pada command window ketik guide. Rancang disain seperti di bawah ini:

Gunakan teknik yang telah dijelaskan pada pertemuan yang lalu untuk menghitung nilai empat suhu di tengah jika atas, bawah, kiri dan kanan diberi suhu. Jika dijalankan hasilnya kira2 seperti di bawah ini.

Graph Theory 2

Mat Diskrit, 29.10.2012, T. Komputer D3

Jika pada pertemuan yang lalu kita menggunakan graph berarah, sekarang kita coba graph yang tidak berarah. Dalam Matlab tidak jauh berbeda teknik memasukkan datanya. Tetap gunakan arah panah sebagai patokan.

Setelah memasukan matriks graphnya:

>> W=[.5 .4 .3 .4 .2 .1];

>> DG=sparse([2 1 4 4 3 5],[1 3 3 2 5 4],W)

>>view(biograph(DG,[],’ShowWeights’,’on’))

Tekan tombol Accept. Akan dihasilkan gambar graph sebagai berikut:

Sekarang mencari Matriks graph untuk mengetahui jalur terpendek:

>> graphallshortestpaths(DG)

 

ans =

 

0 1.1000 0.4000 0.7000 0.6000

0.5000 0 0.9000 1.2000 1.1000

1.2000 0.7000 0 0.3000 0.2000

0.9000 0.4000 0.3000 0 0.5000

1.0000 0.5000 0.4000 0.1000 0

Untuk yang tidak berarah:

>> UG = tril(DG + DG’)

Matriks jalur terpendeknya:

>> graphallshortestpaths(UG)

 

ans =

 

0 Inf Inf Inf Inf

0.5000 0 Inf Inf Inf

0.4000 Inf 0 Inf Inf

0.7000 0.4000 0.3000 0 Inf

0.6000 0.5000 0.2000 0.1000 0

Graph Theory

Discrete Mathematic, Lab of Software, 23.10.2012, Comp. Engineering D3

Graph theory is an old theory about connection between vertex and edge. It was found in eighteen century by Euler. The first case was about bridge called konisberg. So, as a exercise we try to solve the smallest path to problem below.

Open your Matlab application and try to input that problem into Matlab. In command window, firstly, we create Matrix of vertexes and edges.

  • W=[.5 .4 .3 .4 .2 .1];
  • >> DG=sparse([2 1 4 4 3 5],[1 3 3 2 5 4],W)
  • DG =
  • (2,1) 0.5000
  • (5,4) 0.1000
  • (4,2) 0.4000
  • (1,3) 0.4000
  • (4,3) 0.3000
  • (3,5) 0.2000
  • view(biograph(DG,[],’ShowWeights’,’on’))

Finaly, we get the shortest path for every node using function ‘graphallshortestpaths

>> graphallshortestpaths(DG)

 

ans =

 

0 1.1000 0.4000 0.7000 0.6000

0.5000 0 0.9000 1.2000 1.1000

1.2000 0.7000 0 0.3000 0.2000

0.9000 0.4000 0.3000 0 0.5000

1.0000 0.5000 0.4000 0.1000 0

What is that matrix mean? The rows are represent nodes and the columns are another nodes. For example, the shortest path from node 2 to node 5 can be seen at that matrix are the number of row 2 column 5 is 1.1. You can count by your self that the node 2 to node 5 are across node 1 and 3 with 0.5, 0.4 and 0.2 = 1.1 which the same as element (2,5).

Algoritma Genetik

M.Kul: Matematika Diskrit :Fungsi & Relasi, Lab Hardware

Fungsi dan relasi merupakan inti dari komputasi. Karena komputasi melibatkan bilangan-bilangan maka pengetahuan terhadap jenis-jenis bilangan perlu dikuasai. Fungsi melakukan komputasi terhadap bilangan bilangan itu. Jika komputasi dilakukan berulang dalam suatu iterasi maka perlu ada relasi antara fungsi dengan jangkauan iterasi tersebut. Misal kita akan melakukan komputasi dengan fungsi:

y=(x-3)^2+10 dengan jangkauan x=1 hingga 10.

Buka Matlab dan buat fungsinya:

Terkadang kita tidak hanya diminta mencari nilai suatu fungsi saja, melainkan mencari nilai optimumnya. Pada fungsi di atas, misalkan kita diminta mencari hariga y terendah dalam rentang tersebut. Berbagai macam cara banyak ditempuh. Cara konvensional adalah dengan menyamadengankan nol fungsi turunannya, sehingga nilai x-nya, yang merupakan nilai yang menghasilkan y terendah, diketahui. Kita akan mencoba melakukan optimasi dengan Algoritma Genetik.

Buka toolbox optimasi dengan mengetik

>>optimtool(‘ga’)

Isikan fitness function dengan @fungsi

Bounds, batas bawah = [1] dan batas atas = [10]

Pada ‘Option‘ pilih plot function ‘Best Fitness‘ dan ‘Best Individual‘.

Klik’Start’, Lihat plot yang dibuat, Hasilnya Nilai Fitness 10, Individual terbaik 3.

Alur cerita mengapa bisa diperoleh nilai tersebut adalah dengan proses pembangkitan bilangan random, diuji nilai fitness-nya, dicari individu yang survive dan dilakukan proses crossover, mutasi, dan lain-lain dengan terlebih dahulu mengkonversinya menjadi biner.

Pemrograman Matlab

Matlab sudah lama dikenal sebagai bahasa pemrograman untuk teknik. Bahasa ini dibutuhkan oleh para insinyur yang merasa perlu bantuan komputer dalam melakukan komputasi. Salah satu keunggulan dari bahasa ini adalah kesederhanaannya dimana alur logika menjadi hal utama dibanding prosedur dan tata tulis yang terkadang membuat frustasi. Beberapa baris pada bahasa Matlab mungkin bila dikerjakan dengan bahasa yang lain membutuhkan jumlah baris yang lebih banyak.

Berikut ini contoh program sederhana untuk menghitung faktorial sebuah bilangan. Kita diminta memasukkan bilangan yang akan dicari faktorialnya, kemudian setelah menekan enter, diperoleh hasil perhitungan faktorialnya. Program masih berbasis text based. Buka M-file editor, dengan cara mengklik file-new-Blank M-file. Ketik instruksi berikut ini:

Gambar di atas merupakan program menghitung faktorial menggunakan M-file editor. Jalankan dengan mengetik faktorial pada command window. Jika dijalankan anda diminta memasukkan bilangan dan hasilnya adalah hasil faktorial dari bilangan itu.

>> faktorial

Masukkan Bilangan =4

 

faktorial =

 

24

 

Membuat KLF di Simulink Matlab

Di antara berbagai jenis kontroler, Kontroler Logika Fuzzy (KLF) merupakan jenis kontroler terbaru dan memiliki kelebihan dari sisi kepraktisan dibanding dengan Proporsional Integral dan Differensial (PID) yang telah lama digunakan. Untuk mempraktekan KLF, buka Matlab.

  1. Arahkan “Current Directory” ke folder Anda.

  2. Kita akan mencoba membuat KLF paling sederhana, hanya dengan satu masukan, misalnya SUHU. Ketik “fuzzy” di command window.

  3. Secara default, Matlab memberikan satu masukan dengan satu keluaran, dan jenis fuzzy “Mamdani”. Baca teori fuzzy untuk mengetahui jenis-jenis fuzzy. Ganti nama input1 menjadi “error” dan output1 menjadi “respon”.
  4. Berikutnya adalah menyeting “Fungsi Keanggotaan (Membersip Function)“. Dobel klik pada masukan (error). Untuk sistem pemanas, kita akan membagi hanya menjadi dua MF, yaitu error yang rendah dan yang tinggi dengan range (jangkauan) antara -10 hingga 90 derajat. Maksudnya, jika error 90 derajat, berarti selisih antara masukan dengan keluaran sebear 90 derajat. Sedangkan -10 terjadi ketika keluaran lebih besar dari masukan. Tetapi kita masukan saja jangkauannya antara -90 dan 90 derajat.

  5. Berikutnya kita merancang keluaran (respon), dengan menekan respon. Sama dengan error, respon misalnya hanya ada dua MF, yaitu hidup dan mati dengan range antara 0 sampai satu.

     

  6. Setelah mengeset masukan dan keluaran, langkah terpenting adalah membuat rule (aturan) dengan if – then. Jika suhu keluaran dingin maka pemanas dihidupkan. Dingin berarti errornya tinggi, maka buat rule: jika error tinggi then respon hidup. Sebaliknya jika suhu keluaran melebihi set point (panas) maka pemanas dimatikan, rule-nya: jika error rendah then respon mati.

  7. Langkah berikutnya adalah menyimpan FUZZY dengan cara klik File – Export – to File. Beri nama, misalnya “pemanas”. Jika Anda lihat di folder kerja, akan tampak satu file fuzzy dengan nama “pemanas.fis”.
  8. Untuk mengujinya buka jendela model, klik (simulink), gambar bentuk di bawah ini, jika tidak bisa menemukan Fuzzy Logic Controller (FLC) ketik “fuzzy” di searching. Dobel klik pada “Fuzzy” di simulink, isi parameter dengan ‘pemanas.fis’ (gunakan petik satu).

     

  9. Jalankan dengan menekan tombol RUN. Lihat hasilnya dengan merubah-rubah nilai masukan. Hasilnya tampak pada Display.

  10. NOTE: untuk Matlab versi 7.0 ternyata ada masalah di Deffuzifikasi, oleh karena itu ganti metode defuzzifikasinya dari centroid menjadi “bisector”. Selamat Mencoba !

Kriteria Kestabilan Nyquist

Pertemuan kali ini membahas kriteria kestabilan Nyquist.

Tiga kemungkinan kestabilan sistem berdasarkan diagram nyquist, antara lain:

  1. Tidak ada pengelilingan di titik -1+j0. Sistem stabil jika tidak ada pole yang terletak di sebelah kanan sumbu J.
  2. Ada satu atau lebih pengelilingan titik -1+j0 berlawanan arah jarum jam. Sistem stabil jika jumlah pengelilingan titik itu sama dengan jumlah pole yang di sebelah kanan j.
  3. Ada satu atau lebih pengelilingan titik -1+j0 searah jarum jam. Sistem tersebut tidak stabil

Contoh:

Tentukan fungsi di bawah ini, stabil atau tidak, dengan diagram nyquist, jelaskan.

Transfer function:

2

————-

s^2 + 3 s + 5

Buka matlab, buat fungsi alih: g=tf(2,[1 3 5]). Jalankan >>nyquist(g), maka akan muncul grafik berikut ini:

    

Diagram di atas masuk kategori (1), tidak ada pengelilingan di titik -1+j0. Stabil jika tidak ada pole di sebelah kanan J. Untuk mengetahui pole sistem tersebut ketik >> pole(g).

ans =

-1.5000 + 1.6583i

-1.5000 – 1.6583i

Seluruh Pole terletak di sebelah kiri J (lihat -1,5, negatif, berarti di sebelah kiri j pada bidang S).

Latihan:

Tentukan kestabilan sistem di bawah ini dengan diagram Nyquist.

>> g=tf(1,[1 2 3 15])

 

Transfer function:

1

———————-

s^3 + 2 s^2 + 3 s + 15

Diagram Nyquist-nya >>nyquist(g)

Karena tidak ada pengelilingan di titik -1+j0, maka masuk kategori (1). Tinggal mencari pole-nya apakah ada yang di sebelah kanan?

>> pole(g)

ans =

-2.8212

0.4106 + 2.2690i

0.4106 – 2.2690i

Ternyata ada dua pole di sebelah kanan j (positif), maka sistem tidak stabil. Coba buktikan untuk masukan step.

>> gclose=g/(1+g)

Transfer function:

s^3 + 2 s^2 + 3 s + 15

—————————————————

s^6 + 4 s^5 + 10 s^4 + 43 s^3 + 71 s^2 + 93 s + 240

>> step(gclose)

Tampak gambar di atas membesar terus tak hingga yang menandakan sistem tidak stabil.

Kesimpulan:

Untuk menjawab pertanyaan, lakukan langkah berikut:

  1. Buat fungsi alih, g
  2. Buat diagram nyquist, nyquist(g)
  3. Lihat apakah mengelilingi titik -1+j0?
  4. Lihat polenya, pole(g). hitung jumlahnya yang di sebelah kanan.