04-30-2015 10:52 PM
punten ngalangkung...
Maaf menggangu pagi menjelang siang-nya. Saya Ridho Ismoyo Putra dan pengguna baru LabVIEW berkenaan dengan Tugas Akhir saya. Saya mohon bantuannya, para master. Saya dituntut untuk membuat program akuisisi data sensor tekanan 6 axis tanpa blok Express dengan spesifikasi sebagai berikut :
- 6 Analog Input
- Pengaturan Sampling
- Pengaturan Jumlah Data
- Averaging
- FFT
- Zero Calibration
ini foto dari diagram blok yang saya buat. Ada beberapa blok yang saya buatkan kotak dari berbagai warna merujuk ke spesifikasi program yang saya buat. Maksud warna kotak-kotak tersebut adalah sebagai berikut:
- Hitam : untuk Analog Input (bisa diatur untuk langsung mengukur 6 axis)
- Hijau muda : untuk Sampling
- Ungu : untuk Pengaturan Waktu (berkenaan dengan jumlah data yang dihasilkan)
- Biru Muda : untuk Zero Calibration
- Merah muda : untuk FFT beserta Write to Spreadsheet File
- Kuning : untuk Averaging beserta Write to Spreadsheet File
Saya ingin minta bantuan :
1. pada blok Zero Calibration, setelah Merge Signal, harus diberi blok tambahan apa? sebab ternyata Source-nya itu Dynamic data, sedangkan Sink-nya adalah 1D Array Data.
2. untuk blok Write to Spreadsheet File, jika saya ingin membuat dalam bentuk *txt, harus seperti apa blok diagramnya? Saya benar-benar baru menggunakan program LabVIEW, jadi tidak terlalu mengerti fungsi-fungsinya harus dibagaimanakan.
3. sensor mempunyai matriks kalibrasi. Supaya bisa memasukkan matriks kalibrasi ini ke blok Zero Calibration, apakah ada yang tahu seperti apa blok diagram-nya?
4. mohon koreksi-nya jikalau ada pemikiran blok diagram yang lebih baik. Saya akan terima saran-saran yang baik dari para master sekalian.
Saya juga melampirkan vi diagram blok yang saya buat. saya menggunakan LabVIEW 2010. Terima kasih sudah mau membantu saya. Hatur Nuhun...
05-04-2015 01:08 AM
Siang Kang Ridho,
Gimana apakah sudah ada kemajuan dari aplikasinya?
Saya mau nanya dulu,
1. Kalau boleh tahu sensor apa dan hardware akusisi data yang digunakan apa?
2. Apakah untuk blok pengambilan data seperti gambar di bawah sudah bisa berfungsi dengan baik? Maksudnya data tegangan analog dari masing-masing axis sudah keluar di chart measurement jika diberi beban.
Sebelum berlanjut ke blok zero calibration dll.
Sekedar berbagi pengalaman, saya juga pernah menggunakan sensor load cell 6 axis ( 3 axis force Fx, Fy, Fz dan 3 axis moment Mx, My dan Mz). Keluaran dari sensor berupa enam sinyal tegangan analog (matrik 1x6 atau 6x1) yang harus dikalikan matrix kalibrasi 6x6 untuk mendapatkan nilai Fx, Fy, Fz, Mx, My dan Mz)
05-04-2015 02:34 AM
Terima kasih sudah mau menanggapi posting-an saya, kang Chandra.
1. Saya menggunakan sensor JR3, namun saya disuruh mencoba menggunakan NI hardware yang 4 analog input dan baterai terlebih dahulu.2. Sayangnya belum. saya belum diberi izin untuk mengukur beban yang langsung dari sensor dan dari blok diagram, hanya blok averaging yang benar karena sudah diujicobakan (tetapi belum di zero calibration) dan keluar hasilnya di measurement, namun belum di write ke file *txt karena belum tahu blok diagram-nya sebaiknya seperti apa.
Iya. Saya juga memang harus membuat blok diagram zero calibration yang harus memasukkan matriks kalibrasi terlebih dahulu. Maaf kalau info yang seharusnya saya sampaikan kurang lengkap, sebab saya memang sama sekali baru dengan LabVIEW. Terlihat mudah, namun jika tidak mengerti fungsi - fungsi blok-nya, ya sama saja dengan belum bisa. Saya hanya punya pengalaman program berbasis teks dan program yang berbasis blok diagram hanay Multisim dan Simulink yang ada di MatLab.
05-04-2015 03:31 AM
Mungkin Kang Ridho bisa menjelaskan sedikit yang kang ridho maksud dengan "zero kalibration" dan kegunaan matriks kalibrasi di aplikasi ini apa..
05-04-2015 06:31 AM
Terima kasih untuk pertanyaannya.
Baik. zero calibration disini maksudnya adalah berfungsi untuk membandingkan hasil sebelum pengukuran yang tanpa beban dengan hasil sesudah pengukuran. Kenapa? karena terkadang sebelum pengukuran, sensor ternyata sudah menghasilkan angka atau dapat dikatakan sudah melakukan pengukuran/tidak dalam kondisi yang ideal untuk melakukan pengukuran/tidak nol saat memulai pengukuran.Sedangkan matriks kalibrasi digunakan untuk membuat hasil pengukuran menjadi akurat, karena sensor mempunyai error dalam (device error) sehingga dibutuhkan suatu pengali agar hasil pengukuran/sensing menjadi akurat.
05-04-2015 07:28 AM
luar biasa, tanpa blok Express. Saya acungkan jempol!
Komentar saya untuk block diagramnya:
1. Merge Signal dan Split Signals, ini adalah bagian dari blok Express. Mohon dihindari. Alternatifnya, signal yang input-an Split Signals adalah 1D Waveform, jadi kalau mau dipecah-pecah, gunakan fungsi dari Array yaitu Index Array. Kasih input 0, untuk signal pertama. Untuk dapatkan signal lebih banyak lagi, "expand" Index Array dengan mouse.
2. Kenapa mesti ada dua While Loop? Kalau satu loop saja kenapa?
3. Kenapa harus ada While Loop? Secara fungsi saya lihat tidak perlu ada While Loop. Di remove saja kan tidak ada bedanya.
4. Zero Calibration, term ini sebaiknya diganti menjadi Null Offset. Standar industri untuk me"nol"kan pengukuran disebut dengan Null Offset. Sementara Calibration biasanya digunakan untuk mengkalibrasikan pengukuran ke standar atau referensi tertentu, misalnya, saya mengukur 1kg dengan alat ukur saya, tapi ini bisa dibilang tidak terkalibrasi karena 1kg dengan alat ukur saya bukan berarti 1kg sebenarnya. Untuk itu saya kalibrasikan alat ukur saya, untuk mengukur 1kg milik suatu badan resmi, lalu terbacanya berapa di alat ukur saya, misalnya 1.05kg, berarti saya offsetkan 0.05kg untuk alat ukur saya untuk mengukur "true" 1kg.
Saya coba jawab nomer 2 dulu:
2. untuk blok Write to Spreadsheet File, jika saya ingin membuat dalam bentuk *txt, harus seperti apa blok diagramnya? Saya benar-benar baru menggunakan program LabVIEW, jadi tidak terlalu mengerti fungsi-fungsinya harus dibagaimanakan.
Pastinya harus eksplorasi dan bertanya, lihat example di internet dan juga di dalam LabVIEW. Banyak cara untuk menulis dalam bentuk *.txt. Bisa menggunakan High Level, seperti Write to Spreadsheet File atau menggunakan yang Low Level, seperti Write Text File. Coba buka NI Example Finder, lalu search "text", eksplorasi examplenya ya.
05-04-2015 07:52 AM
Untuk Zero Calibration:
Hasil sebelum pengukuran yang tanpa beban ditunjukkan array konstanta yang tunjukkan dalam lingkaran biru bukan?
Pertanyaan kenapa Kang Ridho untuk perbandingannya ditambah bukan dikurangi hasil pengukuran saat tanpa beban -offset- ?
Bukankah jika tujuannya adalah menjadikan nilai pengukuran "mendekati" nol pada saat awal pengukuran (kondisi tanpa beban) maka harus nilai pengukuran tersebut harus dikurangi hasil pengukuran saat tanpa beban yang sudah didapat sebelumnya?
Jika ditambah bukankah semakin membesar bukan mendekati nol?
(udah dibantuin mas Krisna )
Saya ngasih contoh untuk zero kalibrasi dan perkalian dengan matrix berdasarkan pengalaman saya menggunakan load cell 6 axis.
Untuk blok zero calibration sendiri, nilai array konstanta yang didalam lingkaran biru tidak perlu diindex (dipecah).
Nilai array 1D waveform juga tidak perlu di split signal (split signal bisa digantikan index array).
Karena setahu saya jika ada array 1D waveform (x element) yang ditambah atau dikurangi array konstanta (y element) maka otomatis x0+ y0, x1+y1 dst dst. Hasilnya tetap berupa array 1D waveform.
Proses zero calibration ditunjukkan lingkaran orange.
Array konstanta zero offset sendiri saya bikin bukan konstanta tapi variabel control
Setelah dilakukan zero calibration (dikurangi/ditambah offset), maka array 1D waveform dipecah (diindex). Ditunjukkan lingkaran biru.
Kemudian masing-masing elemen diekstrak untuk diambil nilai datanya saja. Karena waveform itu terdiri dari 3 komponen yaitu waktu awal (t0), jeda waktu (dt), dan datanya sendiri. Ditunjukkan lingkaran ungu.
Elemen data ini digabungkan lagi menjadi appended array untuk kemudian dikalikan matrik kalibrasi
Hasilnya perkalian adalah array data yang sudah berupa nilai gaya untuk masing-masing sumbu.
Mungkin jika dibandingkan dengan TA Kang Ridho ada beda pada dimensi matrik kalibrasi dan jumlah analog input karena output yang diminta juga 6 axis.
Tapi kemungkinan alurnya sama:
1. Ambil data analog input berupa tegangan dengan sampling rate tertentu.
2. Kurangi data tersebut dengan offset saat kondisi tanpa beban
3. kalikan matrik kalibrasi.
Sori kalau malah bikin tambah bingung hahaha
05-04-2015 10:14 AM
@KrisnaWisnu : wah, dedengkot-nya dateng...Terima kasih udah nyempetin waktunya menanggapi posting-an saya...saya manggilnya apa, nih? mas, kang atau bang?
tanpa blok Express karena keperluan TA. saya harus mengerti fisis-nya, tidak asal masukin blok...
1. Itu blok Index Array saja, ya? Terima kasih sarannya.
2. & 3. Saya sudah menghapus While Loop, bahkan saya jadikan Sub VI. saya menggunakan While Loop karena mengikuti Example. Tapi dipikir lagi, While Loop sepertinya tidak digunakan juga tidak apa-apa.
4. Ooh, term "Null Offset" lebih mudah dikenali daripada Zero Calibration? Terima kasih. Saya banyak belajar hal baru. Tapi Null Offset dengan Zero Claibration beda?
Komentar jawaban no.2 :Iya, saya lupa kalau ada Example File. Terima kasih sudah mengingatkan saya. Saya memang belum terlalu banyak eksplorasi mengenai LabVIEW.
@Chandrapzm :
gambar 1 : Saya mengikuti file example yang ada di community lain di LabVIEW(saya lupa dimananya. ketika saya search, saya menemukan file itu). Yang di lingkaran biru, saya mengikuti dari file example itu. Saya kira itu membuat pengukuran awal yang tanpa beban menjadi nol, dan saya belum mencobanya (kata terakhir yang penting)...hehe...
Mungkin kalimat saya yang salah. Maksud saya membandingkan dari yang sebelumnya tanpa beban dengan yang setelah diberi beban, sehingga hasil pengukurannya itu dari tanpa beban dikurangi yang diberi beban.
gambar 2 & 3 : jadi, nilai "zero"-nya dimasukin sendiri? kok saya enggak ngerti ya? haha...
Saya memang sudah bingung, kang. Akang tidak perlu khawatir saya tambah bingung...hahaha...
05-04-2015 10:58 PM
Kang Ridho,
Mungkin saya perlu menjelaskan dulu pemahaman saya tentang nilai "zero" atau offset.
Nilai zero yang saya maksud disini adalah nilai tegangan keluaran dari masing-masing 6 analog input dalam keadaan sensor tidak dibebani. Idealnya tegangan keluaran tersebut adalah nol volt. Akan tetapi dalam kenyataannya nilai tegangan keluaran tersebut tidak nol. Nilai ini yang yang saya sebut sebagai offset.
Cara menentukannya adalah, sensor tidak saya bebani. Dalam keadaan tidak dibebani, nilai tegangan keluaran dari masing-masing 6 analog input kemudian saya ukur selama +- 30 detik. Kemudian saya rata-ratakan untuk masing-masing channel analog input.
Nilai rata-rata (nilai offset) ini yang kemudian saya masukkan sebagai nilai pengurang dari nilai tegangan keluaran dari masing-masing 6 analog input pada saat pengukuran dimana sensor dibebani.
Algoritma pengurangan ini jika diterjemahkan ke block diagram labview ditunjukkan pada lingkaran orange
Di block diagram yang kang Ridho uplod (gambar dibawah) sebenarnya mirip, hanya saja nilai offset (lingkaran biru) ditambahkan ke nilai analog input bukan dikurangi. Nilai offsetnya juga "dimasukin sendiri" ke dalam array (isi 6 elemen) yang dilingkari warna biru.
Untuk penggunaan while loop saya kira tetap butuh ya, terutama bila akusisi datanya kontinu alias stop hanya jika diperintah user untuk stop. Saran saya untuk akusisi data voltage analog input bisa dilihat di NI Example
05-05-2015 09:26 PM
Wah, terima kasih banyak, kang Chandra...
Saya cukup jelas dengan penjelasan ini. Jadi, nilai sensor tanpa beban di masukkan secara manual.
Kalau boleh tahu, apakah yang kang Chandra kerjakan sudah pernah dipublikasikan? Bolehkah saya mencantumkan-nya di laporan TA alias skripsi saya? jika tidak bisa dicantumkan di forum ini, silahkan kirim ke email saya : ridho_ipa2@rocketmail.com...itupun jika kang Chandra berkenan...^^