Simulasi Membutuhkan Bilangan Random

Simulasi mencoba menjalankan suatu model seolah-olah mengikuti kenyataan yang ada. Simulasi banyak diterapkan dalam permainan. Misalnya pemain bola, C. Ronaldo, dalam game memiliki akurasi tinggi dalam mencetak gol, tetapi tentu saja tidak selalu tendangannya akurat, seperti kenyataan di lapangan sesungguhnya. Jadi ketika pemain tersebut mengeksekusi, program harus membangkitkan suatu bilangan acak dalam rentang akurasinya sehingga bisa saja tendangannya (misal pinalti) tidak berhasil.

Fungsi “rand” di Matlab

Salah satu fungsi di Matlab yang membangkitkan bilangan random adalah fungsi rand. Fungsi ini membangkitkan bilangan acak dari nol hingga satu dalam pecahan. Ketik saja “rand” pada command window maka akan dimunculkan bilangan pecahan yang dimaksud.

Silahkan ketik help rand di command window maka akan muncul tata cara penggunaannya. Bahkan ada varian lagi dari fungsi tersebut di bagian akhir help (suggestion). Untuk membuat bilangan random yang dalam rentang tertentu, misal 9 hingga 10 butuh trik kusus, misalnya rand*10 atau 9+rand.

Contoh Kasus

Program berikut mensimulasian fungsi tangga dari suatu rangkaian masa dan suspensi. Disimulasikan beberapa komposisi pegas dan peredam yang menghasilkan beberapa kemungkinan. Perlu pengetahuan fungsi alih (transfer function) dan juga penggunaan fungsi plot pada Matlab. Buku command window.

  • figure
  • hold

Dua instruksi di atas akan menyiapkan satu gambar yang akan digunakan untuk menangkap output tiap-tiap komposisi pegas peredam. Fungsi hold membuat grafik menangkap lebih dari satu komposisi.

  • m=100;
  • for i=1:4
  • c=rand*10;
  • k=rand*10;
  • model=tf([1],[m c k])
  • step(model)
  • end

Kemudian Matlab mengeksekusi kode di atas dengan jumlah loop sebanyak empat kali. Tiap loop mencetak (fungsi step) model yang dalam bentuk fungsi alih tersebut. Massa diset 100 karena memang tidak terlalu berubah (massa motor, mobil, dan sebagainya cenderung tetap). Di sini nilai hanya sebagai contoh saja (tanpa satuan, dan standar yang telah ditentukan dalam perancangan elemen mesin). Selamat mencoba.

Iklan

Variabel Dinamis pada Fungsi Alih Simulink Matlab

[m.kul,ruang,dosen,jur:t-pemodelan-simulasi,software,rahmadya-phd,t-kom-d3]

Berbicara mengenai fungsi alih, mau tidak mau harus sedikit kilas balik ke materi pengenalan pengaturan (tek. Kendali). Untuk mudahnya ambil kasus sederhana suspensi kendaraan (post terdahulu). Fungsi alih suatu sistem suspensi adalah:

Fungsi Alih = 1/(ms^2+cs+k)

m, c dan k berturut-turut massa (Kg), peredam (N.s/m), dan konstanta pegas (N/m). Kemudian untuk memasukan variabel dinamis fungsi alih, buka simulink dengan mengetik simulink pada command window Matlab.

Memasukan Variabel Dinamis

Untuk mensimulasikan sistem suspensi pada model simulink masukan tiga diagram blok antara lain: masukan tangga, fungsi alih, dan keluaran yang ditangkap oleh scope. Masukan tangga berada di bagian SOURCE, fungsi alih di bagian CONTINUOUS, dan scope pada bagian SINK. Caranya adalah dengan mendrag ke lembar model.

 

Atur fungsi alih (transfer function) agar diperoleh persamaan di awal tulisan ini. Gunakan variabel m, c dan k yang mewakili massa, peredaman, dan kekakuan pegas.

Tekan ganda transfer function dan isikan sebagai berikut. NOTE: Nilai m, c dan k di sini berupa variabel yang jika langsung dijalankan akan memunculkan pesan kesalahan.

Mengisi Variabel lewat Command Window

Bagaimana memasukan m, c, dan k? Mudah saja, kembali ke command window, ketikan saja tiga variabel itu dengan bilangan.

>> m=100;

>> c=20;

>> k=5;

Kembali ke jendela model. Tekan tombol RUN pada jendela model yang berupa segitiga warna hijau. Pastikan tidak muncul error. Lanjutkan dengan mengklik ganda SCOPE untuk melihat grafiknya.

Atur komposisi c dan k agar diperoleh respon yang halus (smooth). Bagaimana terapan ke program GUI-nya? Sepertinya butuh postingan tersendiri karena ada sedikit masalah saat praktek tadi, yaitu data m, c, dan k tidak terkirim ke jendela model.

 

Membuat Fungsi Alih Motor Listrik

Perkenalan saya dengan Matlab pertama kali adalah lewat bidang sistem kontrol/kendali. Waktu itu saya diminta dosen pembimbing untuk mensimulasikan sistem suspensi ketika ada beberapa respon masukan (impulse, step, dan sinusoidal) mengenainya. Kembali saya membuka buku catatan mata kuliah getaran dan teknik pengaturan. Untuk mensimulasikan sesuatu kita harus mampu membuat model matematis dari sistem yang akan kita simulasikan. Model matematis itu kemudian disimulasikan di Matlab untuk melihat respon dan kinerja dari model tersebut. Asalkan sudah dalam bentuk model matematis, Matlab mampu mensimulasikan tanpa memandang domain ilmu dari model tersebut, apakah kimia, elektro, ekonomi, biologi, dan lain-lain. Misalnya kasus motor listrik (atau bisa juga generator).

Gambar di atas adalah motor DC yang saya ambil dari situs kampus UPI ini semoga masih ada. Fungsi alih sendiri (dalam istilah Inggris transfer function) dari arti katanya fungsi yang mengalihkan dari satu masukan ke keluaran tertentu. Jika masukannya tegangan dan keluarannya tegangan yang lebih besar, bisasanya disebut penguat, tetapi ada juga masukannya putaran, misal potensiometer, keluarannya arus/tegangan dan sering diistilahkan dengan transducer. Ada juga istilah lainnya yakni sensor, yang merubah masukan tertentu seperti suhu, level ketinggian air, dan lain-lain menjadi tegangan atau arus yang masuk ke dalam perangkat elektronika.

Untuk kasus motor DC di atas jika dilihat, masukannya adalah tegangan dari baterai arus searah dan keluaranya adalah puntiran di motor em. Variabel s adalah variabel Laplace. Apa itu? Yah .. mau nggak mau belajar dulu dasar-dasar sistem kontrol. Karena nanti setelah ada variabel laplace ada lagi variabel z kalau sudah masuk ke sistem digital yang melibatkan metode cuplik/sampling. Untuk orang elektro tidak ada masalah dengan besaran-besaran di atas beserta satuannya yang pasti. Situs dari malang ini lebih lengkap dengan besaran dan satuan juga teknik simulasinya.

Jika J= 10, D=5, km=2, dan Rα=0.5 maka diperoleh fungsi alih sebesar, pembilang=2/(0.5*5)=0.8 dan penyebut=s(s*(10/5)+1)=s(2s+1). Buka Matlab dan masuk ke command window. Masukan instruksi ini:

Lalu muncul plot setelah instruksi masukan impulse diterima fungsi alih, demikian pula setelah masukan tangga (step) diberikan.

Ntah bener atau salah, mohon koreksinya. Tapi setahu saya, motor DC itu harus diberi beban karena tanpa beban dia akan bertambah kencang bahkan bisa merusak motor itu sendiri.

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.

Merubah Sinyal Analog ke Digital pada SIMULINK Matlab

Sekarang kebanyakan perangkat elektronika sudah berbau digital. Termasuk juga sistem kendali. Salah satu komponen terpenting adalah konverter dari analog ke digital dan sebaliknya dari digital ke analog. Untuk materi UAS, kita akan mulai membahas Sistem Kendali Digital dengan seluk beluknya yang rumit jika dianalisa tanpa bantuan komputer. Banyak yang bertanya, block function apa yang berfungsi merubah sinyal analog menjadi digital. Jawabannya sederhana, fungsi Zero Order Hold (ZOH). Buka SIMULINK dan buat diagram sebagai berikut.

Gambar di atas ZOH berisi rangkaian cuplik dan sampling terhadap sinyal sinus analog yang akan dirubah menjadi digital. Running sistem di atas, Anda akan melihat hasil perbandingannya antara sinyal asli analog (warna merah muda) dengan yang digitalnya (kuning). Perhatikan bagaimana prinsip ZOH melakukan sampling di awal (bukan di tengah).

Untuk lengkapnya baca buku yang membahas Digital Control System. Oiya, gunakan MUX untuk menggabungkan dua keluaran menjadi satu SCOPE. Kalo sulit mencarinya, gunakan SEARCH pada SIMULINK Library.

Creating a Transfer Fuction

We have to convert physical equation into laplace equation in order to make a block diagram. Some basic about mathematic, especially differential equation must be considered. First look at the electrical system with Resistor, Inductor and capacitor element (RLC).

According to kirchhoff law we have:

If we want to drop of voltage at capacitor as an output, we get a blog diagram. Inside the block diagram is a transfer function, G. The transfer function is a comparison between output and input. Instead of using equation in time domain, we use s-domain (laplace).

This is a 2-orde system. Other system can be build similar to electrical, for example, mechanical system. We have three component dumper, spring, and mass. That element behave similar to those in electrical system (RLC).

We use Newton law to get mathematical model to this system. The force equal against force at mass, spring, and dumper.

If we want displacement of mass as an output, we will get a transfer function. Remember the force at mass have connection with displacement of spring (kx).

Membuat diagram blok dengan Simulink matlab

 

Simulink adalah salah satu alat bantu dalam matlab khusus untuk perancangan diagram blok. Untuk membuatnya, klik icon di Matlab. Tunggu beberapa saat hingga matlab memunculkan jendela simulink. Untuk menggambar diagram blok baru klik icon (new) pada jendela Simulink Library browser. Gambar bentuk contoh di bawah ini.

Perhatikan cara membuatnya sebagai berikut: Step didrag dari Source, begitu juga Constant. Display dan Scope diambil dari Sink. Sementara Add diambil dari Math Operation. Transfer Fcn diambil dari Continuous. Dobel klik tiap komponen untuk mengganti harga parameter. Misalnya kita ingin mengganti harga parameter Step sebagai set point yaitu 80. Isi final value dengan harga 80.

Begitu juga dengan constant, beri harga -10. Di sini kita ambil contoh pemanas yang akan memanaskah suhu hingga 80 derajat tetapi menerima gangguan dari lingkungan sekitar misalnya 10 derajat di bawah harga set pointnya. Untuk mensimulasikan, klik icon (run) dan ganti angka di sebelah kanannya sesuai keinginan. Defaulnya adalah 10 detik, Anda bisa mengganti menjadi 100 detik atau lebih sesuai dengan kebutuhan. Hasilnya tampak pada gambar di bawah ini.

Perhatikan sistem tidak mampu menjaga suhu tetap 80 derajat karena ada gangguan sekitar -10 derajat, jadi ada error sebesar 10 derajat. Pertemuan yang akan datang akan dibahas cara menjaga suhu tetap 80 derajat walaupun ada gangguan dari lingkungan dengan batas-batas tertentu.