PENGUKURAN DISTRIBUSI TEMPERATUR PADA PELAT
LOGAM MENGGUNAKAN METODE FINITE ELEMENT
AGUNG RIDWAN SN
DEPARTEMEN FISIKA
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
INSTITUT PERTANIAN BOGOR
ABSTRACT
AGUNG RIDWAN SN.
Measuring Thermal Distribution of Metal Plate Using Finite Element
Method. Supervised by Mahfudin Zuhri, M.Si dan Faozan Ahmad, M.Si.
To measure temperature in an object, we use temperature sensor. But what if the
temperature which we are going to measure has many of nodes? Putting all sensors on that nodes
is less efficient. Solution for this problem is reducing the quantity of sensors and put it on
boundary system and use that for computation purpose. This research was using finite element
method two-dimensional with triangular element. The output for this research is distribution of
heat transfer on metal surface.
This research measuring thermal conductivity metal plate in steady state problem in
two-dimensional conductivity direction.
The comparison between measurement with digital thermometer EXTECH and
computational finite element method on node coordinate (21, 5.5) is 98.18%, node (21, 1.1) is
96.67%, node 28, 5.5) is 97.55%, node (21, 33.9) is 97.96%.
ABSTRAK
AGUNG RIDWAN SN.
Pengukuran Distribusi Temperatur pada Pelat Logam Menggunakan
Metode Finite Element. Dibimbing oleh Mahfudin Zuhri, M.Si dan Faozan Ahmad, M.Si.
Pengukuran temperatur dapat dilakukan dengan menggunakan thermometer. Namun
bagaimana jika nilai temperatur yang ingin dicari lebih dari satu titik pengukuran. Apakah berarti
harus menggunakan banyak sensor dan memasangnya di tiap titik pengukuran? Tentu saja hal ini
menjadi tidak efisien. Solusi dari permasalahan tersebut adalah mengurangi penggunaan sensor
dan menempatkan sensor pada sistem
boundary
yang mana akan menjadi nilai referensi
perhitungan komputasi. Metode numerik yang dipakai pada penelitian ini adalah metode elemen
hingga (
Finite Element Method
). Metode ini dapat mengefisienkan penggunaan sensor karena
hanya dipasang pada wilayah
boundary
saja. Hasil keluarannya adalah distribusi penyebaran
temperatur pada titik-titik di dalam
boundary system
.
Penelitian ini melakukan pengukuran konduktivitas termal dalam keadaan
steady state
pada pelat logam dengan arah bidang rambat konduksi dua dimensi.
Hasil pengukuran distribusi temperatur dengan membandingkan pengukuran pada
digital
thermometer
EXTECH dengan perhitungan metode elemen hingga mendapat nilai ketepatan di
titik (21, 5,5) sebesar 98.18 %, titik (21, 1,1) sebesar 96,67%, titik (28, 5,5) sebesar 97.55%, titik
(21, 33,9) sebesar 97,96%.
PENGUKURAN DISTRIBUSI TEMPERATUR PADA PELAT
LOGAM MENGGUNAKAN METODE FINITE ELEMENT
AGUNG RIDWAN SN
SKRIPSI
Sebagai salah satu syarat untuk memperoleh gelar
Sarjana Sains pada
Program Studi Fisika
DEPARTEMEN FISIKA
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
INSTITUT PERTANIAN BOGOR
RIWAYAT HIDUP
Penulis dilahirkan di Jakarta pada tanggal 1 Mei 1987/2 Ramadhan 1407 H
buah dari pasangan Bambang Anggoro dan Darminingsih. Penulis merupakan
anak kedua dari dua bersaudara. Memiliki satu kakak yang bernama Endang
Pusnita R.
Pendidikan penulis dimulai tahun 1992 di sebuah TK (Taman Kanak-kanak)
kecil yang bernama TK. Dahlia. Kemudian melanjutkan ke Sekolah Dasar Negeri
(SDN) 1 Cirendeu pada tahun 1993 dan lulus tahun 1999. Pada tahun yang sama
penulis melanjutkan studi ke Sekolah Lanjutan Pertama Negeri (SLTPN) 1
Ciputat (sekarang SMPN 2 Kota Tangerang Selatan) dan lulus tahun 2002. Di
jenjang ini penulis sempat masuk kelas unggulan dan mulai mengalami banyak
perubahan pola pikir. Lalu penulis melanjutkan studi ke SMAN 1 Ciputat
(sekarang SMAN 1 Kota Tangerang Selatan) dan lulus tahun 2005.
Pada tahun 2005, penulis diterima melanjutkan studi di Institut Pertanian
Bogor (IPB) melalui jalur Seleksi Penerimaan Mahasiswa Baru (SPMB) program
Mayor-Minor. Setahun kemudian penulis diterima masuk di Departemen Fisika,
Fakultas Matematika dan Ilmu Pengetahuan Alam, Institut Pertanian Bogor pada
tahun 2006. Selama perkuliahan, penulis tidak hanya belajar namun juga sempat
LEMBAR PENGESAHAN
Judul
:
Pengukuran Distribusi Temperatur pada Pelat Logam
Menggunakan Metode Finite Element
Nama
:
Agung Ridwan SN
NRP
:
G4051818
Menyetujui :
Pembimbing I
Pembimbing
II
(
Mahfuddin
Zuhri, M.Si
)
(
Faozan Ahmad, M.Si
)
NIP
:
196911041997021001
NIP
:
197909232007011001
Mengetahui
:
Ketua Departemen
(
Dr
.
Ir. Irzaman, M.Si.
)
NIP
:
196307081995121001
KATA PENGANTAR
Alhamdulillahirobbil’alamin, puji dan syukur penulis panjatkan hanya kepada Allah
Subhanahu wa
Ta’ala. Sholawat serta salam semoga tercurah kepada Rasulullah
Shallallahu
‘alaihi wa
Sallam
. Dengan rahmat-Nya penulis dapat menyelesaikan skripsi yang berjudul
“Pengukuran Distribusi Temperatur pada Pelat Logam Menggunakan Metode Finite Element
”
sebagai salah satu syarat untuk memperoleh gelar Sarjana Sains (S.Si) Departemen Fisika Institut
Pertanian Bogor.
Dalam penyusunan penelitian ini penulis ingin berterima kasih kepada pihak-pihak yang
telah banyak membantu baik berupa dukungan materil maupun moril:
Bapak Mahfuddin Zuhri, M.Si dan Bapak Faozan Ahmad, M.Si selaku dosen
pembimbing atas ilmu, waktu, saran dan kritik yang sangat berharga.
Ibu dan Bapak serta kakak tercinta yang selalu siap membantu dalam doa, motivasi, dan
lainnya. Maaf, kalau masih merepotkan. ^^
Ibnu Sudar, Abu Sufyan, Ibnu Salam, Mas Abdur Rahmat yang selalu cerewet tentang
skripsi penulis, serta seluruh warga At Tauhid, Al Furqon, Al Ghuroba, dan seluruh
ikhwan Salafiyyin atas nasehat dan semangatnya.
Seluruh Teman-teman Fisika 42. Terima kasih atas kebersamaan yang telah diberikan.
Khususnya untuk mikonerz dan exper-erz.
Ka Subhi makasih atas sensor dan supportnya, Pa Mamat makasih atas kesempatannya,
Auriza makasih atas codingnya, Fisika 40,41,43 & ALL: thanks for everything.
Pa Firman, Pa Toni, Pa Jun, Bu Dini, seluruh dosen, staf, dan laboran Fisika IPB.
Rekan-rekan DKSI IPB yang telah kehilangan penulis karena penyelesaian skripsi ini.
Semua pihak yang telah ikut berperan dalam penyusunan proposal ini yang mungkin
belum disebut satu-persatu.
Penulis menyadari bahwa penyusunan skripsi ini masih jauh dari kesempurnaan. Oleh
karena itu penulis mengharapkan masukan baik kritikan, saran maupun koreksi yang sifatnya
membangun. Semoga karya ini dapat bermanfaat untuk umat.
Wassalaamu’alaykum Warahmatullah Wabarakatuh
Bogor, Oktober 2010
DAFTAR ISI
Halaman
KATA PENGANTAR ... i
DAFTAR ISI ... ii
DAFTAR TABEL ... iii
DAFTAR GAMBAR ... iv
PENDAHULUAN ... 1
Latar Belakang ... 1
Tujuan ... 1
Hipotesa ... 1
TINJAUAN PUSTAKA ... 1
Sensor Temperatur DS18b20 ... 1
Embedded Networked DSTINIm400 ... 2
Bahasa Pemrograman Java ... 2
Bahasa Pemrograman XML dan XSL ... 3
Bahasa Pemrograman PHP dan AJAX... 3
Metode Elemen Hingga ... 3
Konduksi Thermal Dua Dimensi ... 4
Database MySQL ... 5
SolidWorks 2009 SP 2.1 ... 5
ALAT DAN METODE ... 5
Waktu dan Tempat ... 5
Alat dan Bahan ... 5
Metode Penelitian ... 5
Persiapan Alat dan Bahan ... 5
Pembuatan Program ... 6
Analisis Keluaran Data ... 6
HASIL DAN PEMBAHASAN ... 6
Sensor Temperatur ... 6
Pemanas ... 7
Data Logger Temperatur ... 7
Metode Elemen Hingga ... 7
KESIMPULAN DAN SARAN ... 8
DAFTAR PUSTAKA ... 8
DAFTAR TABEL
No. Halaman
LAMPIRAN
1.
Perbandingan data eksperimen (Extech) dengan data literatur (FEM) ... 7
2.
Data temperatur pemanas terhadap waktu ... 11
3.
Terminologi matriks untuk metode elemen hingga ... 13
4.
MAC Address (64-bit unique) sensor temperatur DS18b20 ... 13
5.
Resolusi sensor temperatur ds18b20... 13
DAFTAR GAMBAR
No. Halaman
TEKS
1.
Sensor suhu DS18B20 ... 1
2.
Blok diagram daya internal pada DS18B20 ... 1
3.
Blok diagram daya external pada DS18B20 ... 1
4.
Blok diagram DS18B20 ... 1
5.
Modul DSTINIm400 ... 2
6.
Diagram Modul DSTINIm400 ... 2
7.
Heatsink Compounds ... 5
8.
Setup Pengukuran ... 5
9.
Diagram Alur Penelitian ... 6
10.
Format Data Keluaran DS18b20 ... 6
11.
Hubungan temperatur dengan waktu ... 7
12.
Diskritisasi Menggunakan Elemen Triangular ... 7
13.
Meshing menjadi beberapa elemen... 7
14.
Probe Nilai Temperature di Node Mesh Object ... 7
LAMPIRAN
1.
Sebuah pelat dengan kondisi batas temperatur yang berbeda ... 14
2.
Diskritisasi menggunakan elemen triangular ... 14
LAMPIRAN
No. Halaman
LAMPIRAN
1.
Rumus Ketepatan ... 14
2.
Contoh perhitungan menggunakan metode elemen hingga ... 14
3.
Skema Mikrokontroller DSTINIm400 ... 16
4.
Program utama (tws.java) ... 17
5.
Contoh konfigurasi pada (prefs.ini) ... 30
6.
Program XML (weather.xml) ... 30
7.
Program PHP (index.php) untuk mengambil data dari mikrokontroller ke PC Server ... 32
8.
Program PHP (table.php) untuk menampilkan tabel temperatur... 33
9.
Program PHP (dbkoneksi.php) untuk menghubungkan ke Database MySQL ... 34
10.
Program PHP (logsaver.php) untuk menyimpan data temperatur ... 34
11.
Stylesheet CSS (style.css) ... 36
12.
SQL Struktur data tws table log ... 37
PENDAHULUAN
Latar Belakang
Pengukuran temperatur dapat dilakukan
dengan menggunakan thermometer. Namun
bagaimana jika nilai temperatur yang ingin
dicari lebih dari satu titik pengukuran.
Apakah berarti harus menggunakan banyak
sensor dan memasangnya di tiap titik
pengukuran? Tentu saja hal ini menjadi
tidak efisien.
Solusi
dari
permasalahan
tersebut
adalah mengurangi penggunaan sensor dan
menempatkan sensor pada titik-titik tertentu
kemudian dengan menggunakan metode
numerik akan dilakukan penghitungan
terhadap titik-titik tertentu yang ingin
diketahui dengan referensi nilai temperatur
sensor. Metode numerik yang dipakai pada
penelitian ini adalah metode elemen hingga
(
Finite Element Method
). Metode ini dapat
mengefisienkan penggunaan sensor karena
hanya dipasang pada wilayah
boundary
saja.
Hasil
keluarannya
adalah
distribusi
penyebaran temperatur pada titik-titik di
dalam
boundary system
.
Penelitian ini melakukan pengukuran
konduktivitas termal dalam keadaan
steady
state
pada pelat alumunium dengan arah
bidang rambat konduksi dua dimensi.
Tujuan
Penelitian
ini
bertujuan
untuk
mengetahui
suhu
di
beberapa
titik
permukaan pelat dengan menggunakan
metode elemen hingga.
Hipotesis
Penyebaran distribusi temperatur dalam
keadaan
steady state
di tiap titik pada difusi
konduksi termal akan berbeda tapi dengan
nilai
heat transfer
(q) yang konstan.
TINJAUAN PUSTAKA
Sensor Temperatur DS18b20
Sensor
DS18b20 merupakan jenis
sensor onewire yang dikeluarkan oleh
Dallas Semiconductor
. DS18b20 merupakan
sensor suhu yang telah memiliki keluaran
digital
sehingga tidak diperlukan rangkaian
ADC (
Analog Digital Converter
) dan
proporsional dengan suhu pada orde derajat
Celcius. Bentuk fisik dari DS18b20 dapat
terlihat pada Gambar 1,
device
ini
mempunyai tiga kaki yang terdiri dari GND
untuk
ground
, DQ untuk data masukan atau
data keluaran, dan VDD untuk daya
device
.
Salah satu keunggulan lain yaitu
device
ini
tidak memerlukan daya dari luar, daya dapat
diambil langsung oleh
device
ini dari kaki
DQ atau kaki untuk data, istilah lainnya
yaitu
parasite
power
. Bentuk contoh
rangkaiannya dapat dilihat pada Gambar 2.
Jika DS18b20 yang digunakan sedikit maka
dapat menggunakan pendayaan dari luar,
melalui kaki VDD, rangkaiannya dapat dilihat
pada Gambar 3. Namun jika
device
yang
dipasangkan berjumlah banyak baiknya
menggunakan
parasite
power
. Daya yang
dibutuhkan sensor ini berkisar antara 3,0 V
sampai 5,5 V.
Gambar 1. Sensor suhu DS18B20
Gambar 2. Blok diagram daya internal
pada DS18B20
Gambar 3. Blok diagram daya external
pada DS18B20
Gambar 4. Blok diagram DS18B20
Gambar 4 memperlihatkan struktur
DS18b20. Sebanyak 64-bit ROM pada
dengan MAC Address. Memori
scratchpad
mengandung
register
2-bit yang digunakan
untuk menyimpan keluaran digital dari
sensor
temperatur.
Sebagai
tambahan,
scratchpad
menyediakan akses ke 1-byte
Upper
dan
Lower
alarm register trigger (TH
dan TL). Register TH dan TL adalah
non-volatile
(EEPROM), sehingga alat ini dapat
mempertahankan
data
saat
tidak
dihubungkan dengan catu daya.
DS18b20 menggunakan
1-wire
bus
protokol eksklusif yang menerapkan bus
komunikasi
menggunakan
satu
sinyal
kendali. Garis kendali memerlukan
strong
pull
-
up
resistor karena semua
device
dihubungkan melalui 3-
state
atau port
open
drain
(pin DQ). Dalam sistem bus ini,
mikrokontroler
mengidentifikasi
dan
melakukan pengalamatan device pada bus
menggunakan kode 64-bit yang unik. [1]
Embedded Networked DSTINIm400
DSTINIm400 (
Dallas
Semiconductor
Tiny Internet Interface module
) merupakan
sebuah modul yang dapat digunakan untuk
keperluan
embedded networked system
.
Modul ini sangat cocok digunakan dalam
perancangan
embedded server
. Hal ini
dikarenakan modul ini dapat bekerja seperti
komputer atau disebut juga
Single Board
Computer
. Modul ini bekerja dengan
menggunakan sistem operasi seperti halnya
sebuah
komputer.
Sistem
operasinya
dinamakan dengan TinyOS (
Tiny Operating
System
). Dalam sistem operasi DSTINIm400
telah
terdapat
JRE
(
Java
Runtime
Evironment
)
sehingga
pengembangan
aplikasi dapat dilakukan dalam bahasa
tingkat tinggi (
High-Level Language
) yaitu
dengan menggunakan bahasa pemrograman
Java.
Pada dasarnya komponen inti dari
modul
DSTINIm400
adalah
sebuah
mikrokontroler
jaringan
(
network
microcontroller
) tipe DS80C400, dimana
mikrokontroller
ini
merupakan
mikrokontroler yang telah menyertakan
10/100 Ethernet, TCP IPv4/6 network stack
dan
firmware
yang telah di-
burning
ke
dalam ROM-nya. Selain TCP IP, DS80C400
ini juga mendukung komunikasi via protokol
UDP (
User Datagram Protocol
), DHCP
(
Dynamic Host Configuration Protocol
),
ICMP, dan IGMP. Oleh karena itu, modul
DSTINIm400 ini sangat
reliable
untuk
komunikasi jaringan lokal maupun internet.
Selain
mikrokontroler
DS80C400
sebagai komponen utama, DSTINIm400
juga memiliki memori flash dan RAM
sebesar 1MB, hal ini yang membuat
DSTINIm400 dapat beroperasi dengan
menggunakan
sistem
operasi.
Untuk
keterangan lebih lanjut mengenai modul
DSTINIm400 ini, dapat mengacu pada
datasheet
yang terlampir. Bentuk fisik dari
modul DSTINIm400 dapat dilihat pada
Gambar 5. Diagram modul DSTINIm400
dapat dilihat pada Gambar 6. [2]
Gambar 5. Modul DSTINIm400
Gambar 6. Diagram Modul DSTINIm400
Bahasa Pemrograman Java
Java merupakan bahasa pemograman
berorientasi objek yang dikembangkan oleh
perusahaan
Sun Microsytems
, yang terkenal
dengan
Workstation
High
-
end
-nya. Java
merupakan pengembangan dari bahasa
pemograman C++ yang dirancang memiliki
ukuran yang lebih kecil,
source
dan
binary
level
-nya sederhana, dapat digunakan untuk
platform
dan sistem operasi apapun. Dengan
jargon
”write once, run everywhere”
menunjukkan bahwa program java dapat
dijalankan pada mesin apa saja dengan
syarat mempunyai fasilitas JVM (
Java
Virtual Machine
). [3]
Untuk memudahkan kompilasi
listing
program
, menjalankan program, membuat
file aplikasi java, dan mengubah ekstensi
.class
menjadi
.tini
, dalam penelitian ini
menggunakan IDE (
Integrated Development
Environment
) Borland JBuilder 9 Enterprise.
Keunggulan dari software ini yaitu :
Tampilan GUI (
Graphical User
Interface
)
Mudah digunakan
Dapat menentukan path dengan
mudah
Dengan
menambah
library
TINIConverter dapat mengubah file
.
class
menjadi .
tini
Dapat menempatkan secara langung
file .
tini
ke dalam mikrokontroller
TINI. [4]
Bahasa Pemrograman XML dan XSL
XML (
Extensible Markup Language
)
adalah bahasa
markup
,
markup
digunakan
untuk menyampaikan informasi tentang
beberapa teks atau data lain. XML berbeda
dari bahasa markup seperti HTML
(
Hypertext Markup Language
) karena
XML dapat memiliki jumlah elemen jenis
nama yang sering disebut informal tag
name, Sehingga memberikan kemampuan
yang
lebih
fleksibel
kepada
para
programmer web.
XML dikembangan oleh grup kerja
xml (awalnya SGML
Editorial Review
Board
) dibawah badan W3C (
World Wide
Web Consortium
) pada tahun 1996.
XML adalah class dari object data yang
disebut XML document. XML dokumen
dapat digunakan untuk menyimpan data
yang Anda simpan sebagai huruf, laporan,
manual dan sebagainya atau data yang
mungkin anda hubungkan dengan
database. [5]
XSL dirancang untuk digunakan
dengan
XML
dokumen
untuk
mentransformasikan data dalam bentuk
yang sesuai untuk presentasi dalam
konteks tertentu atau menjadi alternatif
struktur XML. XSL cocok untuk
membuat dokumen HTML dari
server-side
XML dengan HTML yang dihasilkan
diproses oleh pengguna Web browser
dengan cara biasa. XSL memiliki output
untuk mengaktifkan modus HTML output
yang akan ditentukan. Selain itu, XSL
dapat digunakan untuk memproduksi
HTML
browser
untuk
desktop
, dan WML
(
Wireless Markup Language
) untuk
mobile
browser
yang sama dari XML penyimpan
data. [6]
Bahasa Pemrograman PHP dan AJAX
PHP adalah bahasa
server-side
yang
termasuk bahasa pemrograman kode sumber
terbuka (
opensource
). Maksud
server-side
berarti kode sumber berada disisi server.
Sedangkan
AJAX
(
Asynchronuous
Javascript and XML
) adalah teknik untuk
me-
request
dan
respond
halaman web yang
bekerja terus-menerus secara background.
Pada penelitian ini menggunakan
framework
jQuery versi 1.3.2.
Keunggulan PHP yaitu:
-
Kode sumber terbuka.
-
Mendukung penulisan dari bahasa
prosedural hingga
Object Oriented
Programming (OOP).
-
Ringan digunakan.
-
Tidak membutuhkan compiler hanya
butuh web server saja.
-
Tidak harus mendefinisikan variabel
di awal program. Variabel dapat
digunakan kembali.
-
Skalabilitas sehingga dipakai oleh
perusahaan besar seperti facebook.
Keunggulan AJAX yaitu:
-
Auto reload
request suatu halaman
sehingga menjadi halaman yang
dinamis.
-
Bekerja secara
background dengan
menggunakan sumber daya client.
-
Cepat, karena setiap saat ada
perubahan akan segera di-request.
-
Dapat membuat website semakin
responsif dan dinamis. [7]
Data dari XML ‘dijemput’ oleh script
php yang secara asinkron dipanggil
terus-menerus oleh AJAX tiap dua detik.
Metode Elemen Hingga
Metode Elemen Hingga (FEM) adalah
sebuah teknik numerik yang digunakan
untuk memperkirakan suatu problem fisis
dari persamaan diferensial parsial pada
persoalan yang menyangkut aliran fluida,
analisa
struktur,
dan
lainnya
dengan
mendiskritisasikan suatu objek menjadi
bagian kecil (elemen hingga). Metode
pendekatan yang sering digunakan saat
merumuskan problem fisis ke dalam
diskritisasi metode elemen hingga, yaitu
metode Galerkin dan metode Variasi [8][9].
Pada penelitian ini menggunakan metode
Galerkin yang didasarkan pada minimasi
residu yang tertinggal setelah suatu solusi
pendekatan
disubtitusikan
ke
dalam
persamaan diferensial dari suatu problem
fisis.
diperhitungkan
sebagai
bagian
dalam
permasalahan
utama,
dimana
terdapat
hubungan
antarelemen
yang
saling
berkaitan melalui informasi global tentang
deformasi, yang biasanya berhubungan
dengan karakteristik elemen. Keakuratan
metode elemen hingga dapat ditingkatkan
dengan cara menyempurnakan
mesh
pada
model dengan menambahkan elemen dan
nodes
. Metode ini disebut dengan
hp
-FEM.
Keunggulan dari metode elemen hingga
adalah
dapat
menyelesaikan
persoalan
sistem yang kompleks dimana tidak dapat
diselesaikan dengan perhitungan analitis,
dapat menghitung dari persamaan linear
hingga persamaan nonlinear, penghitungan
secara komputasi ini menjadi sangat efisien,
dan untuk beberapa permasalahan metode
ini mungkin adalah satu-satunya cara.
Komputer digunakan untuk melakukan
jutaan penghitungan yang diperlukan untuk
mensimulasikan elemen-elemen penyusun
suatu model yang kompleks yang digunakan
dalam pemodelan atau simulasi ini. Software
yang digunakan adalah SolidWorks 2009
SP 2.1 versi standard.
Konduksi Thermal Dua Dimensi
Pada
penelitian
ini
menggunakan
distribusi konduksi thermal pada pelat logam
dalam bidang dua dimensi arah rambatnya.
Konduksi
thermal
dua
dimensi
dituliskan dengan: [10]
�
=
−
���
(1)
�
=
−
���
(2)
dimana :
q
: konduksi thermal [J]
k
xx =k
yy : konduktivitas thermal [J/oCms]
T
: Temperatur [
oC]
Jika dituliskan dengan matrix menjadi:
= =− 0
0
�� � �� �
=−�∇� (
3
)Kemudian sesuai dengan teorema divergensi
gauss, maka didapat
strong formulation
konduksi panas dua dimensi:
� �∇�
+
�
=
� � �� �+
�
�
��
�
+
�
= 0
(4)
Kalikan dengan fungsi bobot (
weight
function
) lalu integralkan terhadap domain
lalu menghasilkan:
(
∇
)
� ��∇� �
=
−
ℒℒ
− �
ℒ�ℒ
+
�� �
(5)
dengan
�
=
�
pada
ℒ
�=
pada
ℒ
Kemudian
diskritisasikan
domain
menjadi
elemen
berhingga.
Dengan
menggunakan
metode
Galerkin
maka
variabel utama (yaitu temperatur) dan fungsi
bobot menggunakan interpolasi yang sama.
�
,
=
�
1,
�
1+
�
2,
�
2+
�
3,
�
3+
�
4,
�
4=
�
1,
�
2,
�
3,
�
4,
�
1�
2�
3�
4=
�
,
�
(6)
Karena
v
dan
a
adalah konstan, dan setelah
dilakukan subtitusi maka menghasilkan:
�
��
�� ��
=
− �
ℒ �ℒ
− �
��
ℒ�ℒ
+
�
� �� �
(7)
Dimana:
�
=
∇�
(8)
Diketahui:
�
=
�
� ��� ��
(9)
sebagai stiffness matrix (matriks kekakuan)
�
=
− �
ℒ �ℒ − �
ℒ ��
�
ℒ
(10)
sebagai boundary load vector
�
ℓ=
�
� �� �
(11)
sebagai internal load vector
��
=
�
+
�
ℓ(12)
atau
��
=
�
(13)
dengan
�
=
�
+
�
ℓ(14)
Keterangan:
K
adalah matrix 4x4
�
=
�
1�
2�
3�
4,
�
=
�
1�
2�
3�
4Database MySQL
MySQL adalah
Relational Database
Management
System
(RDBMS)
yang
didistribusikan secara gratis dibawah lisensi
GPL (
General Public License
). Dimana
setiap orang bebas untuk menggunakan
MySQL, namun tidak boleh dijadikan
produk turunan yang bersifat
closed source
atau
komersial.
MySQL
sebenarnya
merupakan turunan salah satu konsep utama
dalam database sejak lama, yaitu SQL
(
Structured Query Language
). SQL adalah
sebuah konsep pengoperasian database,
terutama untuk pemilihan atau seleksi dan
pemasukan
data,
yang
memungkinkan
pengoperasian
data
dikerjakan
dengan
mudah secara otomatis. Keandalan suatu
sistem database (DBMS) dapat diketahui
dari
cara
kerja
optimizer
-nya
dalam
melakukan proses perintah-perintah SQL,
yang dibuat oleh user maupun
program-program aplikasinya. Sebagai database
server
, MySQL dapat dikatakan lebih
unggul
dibandingkan
database
server
lainnya dalam
query
data. Hal ini terbukti
untuk
query
yang dilakukan oleh
single user
,
kecepatan
query
MySQL bisa sepuluh kali
lebih cepat dari PostgreSQL dan lima kali
lebih cepat dibandingkan Interbase. Selain
itu
MySQL
juga
memiliki
beberapa
keistimewaan, antara lain : portability, open
source, multiuser, performance tuning,
column types, command dan functions,
security, scalability dan limits, connectivity,
localisation, interface, clients dan tools, dan
struktur table. [12]
SolidWorks 2009 SP 2.1
Pada
penelitian
ini
menggunakan
software SolidWorks versi 2009 Service
Pack 2.1 dengan lisensi a.n. Institut
Pertanian Bogor. Program ini mirip seperti
program CAD, namun tidak hanya untuk
menggambar
saja
tetapi
juga
dapat
digunakan untuk analisis suatu problem
fisis. Dalam memecahkan suatu problem
SolidWorks menggunakan metode elemen
hingga tipe
hp
-FEM, sehingga waktu
penghitungannya lebih cepat dengan tingkat
keakuratan yang cukup presisi. Namun
sayang
dalam
melakukan
komputasi,
SolidWorks sangat menghabiskan sumber
daya CPU komputer. [13]
ALAT DAN METODE
Waktu dan Tempat
Penelitian
ini
dilakukan
di
Laboratorium Mikrokontroler dan Bengkel
Mekanik
Departemen
Fisika
Fakultas
Matematika dan Ilmu Pengetahuan Alam
Institut Pertanian Bogor mulai dari bulan
Mei 2009 sampai bulan Oktober 2010.
Alat dan Bahan
Alat yang digunakan pada penelitian ini
meliputi
PC
(
Personal
Computer
),
termometer digital EXTECH 421305,
digital
multimeter, adapter power supply, signal
generator
, m
icrocontroller
DSTINIm400,
protoboard
,
solder,
penyedot
timah,
stopwatch
, tulang ikan, kabel tipe RJ11,
kabel UTP (
Unshielded Twisted-Pair
) tipe
crossover
, dan konektor RJ45.
Bahan-bahan yang digunakan pada
penelitian ini meliputi sensor temperatur
onewire DS18B20, komponen elektronika,
PCB (
Printed Board Circuit
) kosong,
heater
,
heatsink high thermal conductivity,
timah, dan logam aluminium.
Gambar 7. Heatsink Compounds
Gambar 8. Setup Pengukuran
Metode Penelitian
1.
Persiapan Alat dan Bahan
Mengkalibrasi nilai temperatur
heater
sebesar 100
oC, dan kalibrasi antara sensor
dengan thermometer EXTECH 421305.
Kemudian ujung pelat logam dipotong dan
dihaluskan
sehingga
dapat
menempel
dengan
heater
.
2.
Pembuatan Program
Pembuatan program dilakukan secara
bertahap, yakni pembuatan program java
kemudian di-compile menghasilkan .class.
Dari
.class
dikonversi
menjadi
.tini.
Kemudian
selanjutnya,
menyiapkan
database MySQL dan membuat program
PHP yang akan menangkap nilai temperatur
di dalam XML untuk langsung disimpan ke
dalam database. Kemudian menyiapkan
simulasi model objek komputasi sesuai
dengan eksperimen.
3.
Analisis keluaran data
Menginput data yang telah tersimpan di
database ke dalam simulasi program di
SolidWorks. Kemudian menganalisis hasil
eksperimen
dengan
hasil
perhitungan
numerik metode elemen hingga.
Adapun diagram alur penelitian ini
digambarkan dengan:
Gambar 9. Diagram Alur Penelitian
HASIL DAN PEMBAHASAN
Sensor Temperatur
Device sensor yang dipakai adalah
DS18b20. Didalamnya terdapat sensor
temperatur semikonduktor dimana terdapat
2-byte register memori
scratchpad
yang
dapat menyimpan data temperatur. Keluaran
dari sensor ini sudah berupa data digital
sehingga tidak diperlukan lagi konverter
ADC.
Format
pengalokasian
memori
DS18b20 digambarkan sebagai berikut:
Gambar 10. Format Data Keluaran
DS18b20
Untuk menentukan kevalidan data
temperatur maka keluaran sensor temperatur
dibandingkan menggunakan alat Extech
Digital Temperature seri 421305. Jika
ternyata belum mendapat nilai yang tepat
dan itu bukan kesalahan program, maka
akan dicek ulang disisi
device
(sensor, kabel,
tegangan,
dan
lainnya).
Namun
jika
penyebabnya adalah kesalahan program
maka akan diprogram ulang dan dilakukan
pengujian sensor lagi.
Range temperatur yang dapat diterima
oleh sensor DS18b20 berkisar antara -55
oC
s.d. 125
oC. Dengan keakuratan sensor yang
baik pada kisaran -10
oC s.d. 85
oC, dengan
toleransi + 0,5
oC. Oleh karena itu, jika
sensor mendapat temperatur lebih dari
125
oC maka sensor akan rusak dan jika
sensor men-
sensing
nilai temperatur lebih
dari 85
oC maka keakuratannya akan semakin
buruk. Inilah salah satu sebab mengapa ada
sensor yang tidak terbaca saat pengujian
pembacaan data sensor, yakni disebabkan
oleh solder yang bertemperatur tinggi
(180
oC) dan menginduksi ke sensor.
Jika
di-
debug
running
program
pengambilan data sensor maka akan terlihat
di database selang waktu berkisar 6-10 detik
tiap interval pengambilan datanya. Hal ini
disebabkan program perlu membaca file
konfigurasi (
prefs.initerlampir) dan
meng-update setiap data yang baru ke dalam
log file (
ddmmyy.log) dan file XML
(
weather.xmlterlampir) [14]. Pada saat
mikrokontroller mengupdate data baru ke
weather.xml kemudian PC Server akan
mengambil data tersebut dan menyimpannya
ke dalam database MySQL. Namun pada
penelitian sebelumnya [4] mengatakan
bahwa sensor DS18b20 memiliki rata-rata
selang interval selama 4 detik dengan
tingkat akurasi diatas 86.5%.
Sensor ds18b20 memiliki 4 bit resolusi,
yaitu 9, 10, 11, dan 12 (Tabel 5). Pada
Analisis Data(Metode Elemen Hingga) Data
Temperatur Valid? Persiapan Alat dan Bahan
Pembuatan dan Pengujian Program Ya Tidak Kesalahan Program? Ya Tidak
penelitian ini menggunakan resolusi 9 bit
dengan besar resolusi 0.5
oC dimana hal ini
didefinisikan pada baris program berikut:
device.setTemperatureResolution(d evice.RESOLUTION_9_BIT, state);
Pemanas
Pemanas (
heater
) yang digunakan
adalah seterika listrik dengan spesifikasi
besar tegangan = 220 V, daya = 300-350 W,
Temperatur maksimal = 210
oC. Pemanas ini
diusahakan agar bekerja pada kisaran nilai
temperatur + 100
oC.
Antara pelat logam dengan pemanas
dioleskan
heatsink
thermal conductivity
dengan
spesifikasi
besar
thermal
conductivity > 1,22 W/m.k dan thermal
resistance
<
0.201
oC-in
2/w.
Fungsi
pengolesan ini bertujuan untuk membantu
penghantaran aliran konduksi kalor dari
pemanas ke pelat logam dan menghindari
adanya celah diantara keduanya. Grafik
hubungan antara temperatur dengan waktu
digambarkan sebagai berikut:
Gambar 11. Hubungan temperatur
dengan waktu
Data Logger Temperatur
Saat ds18b20 men-
sensing
temperatur,
data diterima oleh modul mikrokontroller
DSTINIm400 dan hasilnya ditampilkan
dalam bentuk XML dengan
user interface
(UI)
web-based
. Dengan menggunakan
regular-expression
(regex)
pada
pemrograman PHP, tag XML yang berisi
data temperatur diambil nilainya dan
disimpan ke dalam database MySQL
(Lampiran 15) di komputer yang bertindak
sebagai server.
Saat melakukan
fetching data,
agar data
dapat terambil secara terus-menerus maka
pada penelitian ini digunakan teknik
pemrograman AJAX. Dalam selang waktu 4
sampai dengan 6 detik akan didapat data
temperatur. Selang waktu ini bukan delay
dari AJAX tetapi delay saat pemrosesan
pengambilan
data
dari
sensor
ke
mikrokontroller.
Metode Elemen Hingga
Penelitian ini menggunakan elemen
berbentuk
triangular.
Pada
software
SolidWorks dapat diatur banyak elemen
yang digunakan, semakin banyak elemen
yang digunakan
maka
akan semakin
membutuhkan waktu yang cukup lama untuk
melakukan komputasi.
Gambar 12. Elemen triangular pertama,
kedua, dan ke-n
Penelitian ini membandingkan nilai
temperatur yang ada di node-node elemen
hingga dengan nilai temperatur secara
eksperimen di titik koordinat yang sama.
Diambil empat titik node, yaitu pada node
13 (28, 5,5), node 16 (21, 5,5), node 19 (21,
165), dan node 20 (21, 1,1) (Gambar 14)
dengan melakukan lima kali perulangan.
(Tabel 1).
Tabel 1. Perbandingan data eksperimen (Extech) dengan data perhitungan (FEM)
Koordinat (cm)
SolidWorks
Temp Extech (Celcius)
Temp
Rata-rata
x
y
ulangan 1
ulangan 2
ulangan 3
ulangan 4
ulangan 5
21
5,5
22,00
23,00
22,70
22,00
22,30
22,00
22,40
21
11
33,06
33,00
31,50
31,50
31,80
32,00
31,96
28
5,5
22,00
22,50
22,90
22,20
22,10
23,00
22,54
21
16,5
33,91
33,70
33,30
32,90
33,00
33,20
33,22
0,00 20,00 40,00 60,00 80,00 100,00 120,00
1 16 31 46 61 76 91
106 121 136 151 166 181 196 211 226
T e m p e r a tu r ( C e lc iu s) Waktu (detik) 3(28,16.5 ) 1(28,5.5) 2(21,11.5 )
3(28,16.5) 4(28,16.5)
Gambar
13.
Meshing
menjadi
beberapa elemen
Gambar 14. Probe nilai temperatur di
node
mesh object
Saat nilai temperatur referensi telah
didapat dan telah dibuat desain simulasi,
memasukkan variabel input, dan
atribut-atributnya pada software SolidWorks maka
input
boundary
akan dievaluasi terhadap
persamaan 10 dan persamaan 11. Setelah itu
akan didapat nilai matriks
f
. Kemudian
dihitung nilai matriks kekakuan (
K
) terhadap
persamaan 9. Sesuai persamaan 13 akan
didapat nilai temperatur pada matriks
d
.
Perhitungan ini berlaku di tiap elemen yang
kemudian dinamakan dengan perhitungan
matriks secara lokal. Setelah itu, di-
assembly
(hasil masing-masing elemen) menjadi nilai
global. Karena tiap titik node telah terhitung
nilai temperaturnya, maka akan terlihat
distribusi penyebaran temperaturnya. Jumlah
mesh elemen penelitian ini sedikit sehingga
terlihat penyebaran distribusi yang ‘kasar’.
KESIMPULAN DAN SARAN
Kesimpulan
Berdasarkan hasil dan pembahasan
diatas maka dapat disimpulkan sebagai
berikut:
Dengan referensi nilai temperatur
sensor disuatu titik, dapat diketahui
penyebaran
distribusi
temperatur
disuatu objek menggunakan metode
elemen hingga. (Table 1)
Semakin banyak elemen maka akan
semakin mendekati solusi eksak.
Metode
elemen
hingga
dapat
mengefisiensikan penggunaan sensor
dengan mengambil nilai boundary.
Ketepatan
pengukuran
rata-rata
sebesar 97.6%.
Saran
Saran
yang dapat diberikan dari
penelitian ini adalah:
Jika menggunakan banyak sensor, lebih
baik mengambil daya dari kaki DQ yang
berfungsi sebagai parasite power.
Menggunakan solder yang berkualitas
dan hendaknya mengukur temperatur
solder terlebih dahulu agar tidak
merusak sensor.
Dengan
User Interface Web, maka
percobaan ini dapat dijadikan sebagai
remote
laboratory
dengan
menambahkan IP public sehingga dapat
diakses melalui media internet.
DAFTAR PUSTAKA
[1]
Anonim.
DS18S20b High-Precision
1-Wire
Digital
Thermometer
.
www.maxim-ic.com
.
10
Januari
2007.
[2]
Loomis, Don. 2001.
The TINI™
Specification and Developer’s Guide.
Addison-Wesley: Boston.
[3]
Deitel, Harvey M., Deitel, Paul J.
2004.
Java How to Program Sixth
Edition
. Prentice Hall: New Jersey.
[4]
Priatna,
Subhi.
2009.
Rancang
Bangun Prototipe Sistem Kontrol
Temperatur
Greenhouse
melalui
Jaringan
Wireless
Berbasis
Mikrokontroller
DSTINI.
Skripsi.
Institut Pertanian Bogor.
[5]
Anonim.
http://www.w3.org/TR/REC-xml
/ .
25 November 2008.
[6]
Arsenal, Bobi. 2007.
Monitoring
Temperatur
Melalui
Jaringan
Menggunakan
DSTINI400
.
Tugas
Akhir. Institut Pertanian Bogor.
[7]
Darie, Cristian., Bogdan, Brinzarea.,
[8]
Nikishkov, G.P. 2004.
Introduction to
The Finite Element Method
. Lecture
Note. University of Aizau, Japan.
(19 Januari).
[9]
Desai, Candrakant S. 1988.
Dasar-Dasar
Metode
Elemen-Hingga
.
Jakarta: Penerbit Erlangga.
[10] Fish, Jacob., Belytschko, Ted. 2007.
A First Course of A Finite Element
.
JohnWiley&Sons: England.
[11] Lewis,
Roland
W.,
Nithiarasu,
Perumal., Seetharamu, Kankanhalli
N.,
Fundamentals of the Finite
Element Method of Heat and Fluid
Flow
. 2004. England: John Wiley &
Sons.
[12] Anonim.
http://id.wikipedia.org/wiki/MySQL
.
7 Mei 2009.
[13] Adams, Vince.
Do FEA Tools Give
Same Answer? A Comparison of
Finite Element Analysis Software
.
IMPACT Engineering Solutions, Inc.
[14] Bitson, Tim. 2006.
Weather Toys,
Tabel Lampiran 2. Data temperatur pemanas terhadap waktu
Waktu (s)
Temp (Celcius)
41,00
43,30
42,00
43,70
43,00
43,70
44,00
44,70
45,00
43,80
46,00
46,00
47,00
45,10
48,00
46,40
49,00
45,90
50,00
46,80
51,00
48,30
52,00
49,20
53,00
49,60
54,00
48,80
55,00
50,10
56,00
50,30
57,00
49,70
58,00
52,10
59,00
51,70
60,00
51,70
61,00
51,20
62,00
53,00
63,00
54,00
64,00
55,20
65,00
54,40
66,00
56,10
67,00
54,70
68,00
55,30
69,00
57,70
70,00
57,70
71,00
58,10
72,00
59,80
73,00
57,40
74,00
61,30
75,00
61,70
76,00
62,30
77,00
62,60
78,00
62,80
79,00
63,40
80,00
63,60
Waktu (s)
Temp (Celcius)
81,00
64,50
82,00
65,20
83,00
65,40
84,00
66,70
85,00
67,00
86,00
67,50
87,00
67,70
88,00
68,80
89,00
69,40
90,00
70,30
91,00
71,00
92,00
71,50
93,00
72,30
94,00
73,30
95,00
72,30
96,00
73,90
97,00
74,50
98,00
74,50
99,00
75,30
100,00
76,20
101,00
75,60
102,00
75,60
103,00
77,50
104,00
78,20
105,00
78,40
106,00
79,30
107,00
79,60
108,00
79,60
109,00
80,10
110,00
80,50
111,00
81,20
112,00
81,50
113,00
81,70
114,00
82,90
115,00
83,20
116,00
83,40
117,00
84,50
118,00
84,50
119,00
84,50
120,00
85,70
Waktu (s)
Temp (Celcius)
1,00
28,40
2,00
28,50
3,00
28,70
4,00
29,20
5,00
29,20
6,00
29,40
7,00
29,60
8,00
30,40
9,00
30,50
10,00
30,70
11,00
30,90
12,00
30,12
13,00
30,14
14,00
30,14
15,00
30,20
16,00
30,21
17,00
30,25
18,00
30,27
19,00
30,30
20,00
30,32
21,00
30,34
22,00
30,36
23,00
30,37
24,00
30,40
25,00
30,50
26,00
30,51
27,00
35,20
28,00
35,40
29,00
35,60
30,00
35,90
31,00
35,10
32,00
35,74
33,00
37,10
34,00
37,40
35,00
38,20
36,00
38,40
37,00
39,00
38,00
39,70
39,00
40,80
Waktu (s)
Temp (Celcius)
121,00
86,20
122,00
86,40
123,00
86,60
124,00
87,10
125,00
87,30
126,00
87,50
127,00
87,90
128,00
88,00
129,00
88,10
130,00
88,70
131,00
88,70
132,00
89,10
133,00
89,50
134,00
89,10
135,00
90,10
136,00
89,90
137,00
90,00
138,00
90,60
139,00
89,40
140,00
89,80
141,00
90,90
142,00
91,10
143,00
91,10
144,00
91,00
145,00
90,80
146,00
90,40
147,00
91,00
148,00
91,10
149,00
91,60
150,00
91,50
151,00
91,50
152,00
91,90
153,00
91,80
154,00
92,20
155,00
92,30
156,00
92,10
157,00
92,80
158,00
92,90
159,00
93,00
160,00
93,20
Waktu (s)
Temp (Celcius)
161,00
93,40
162,00
93,40
163,00
93,50
164,00
93,80
165,00
93,90
166,00
94,20
167,00
94,30
168,00
94,40
169,00
94,50
170,00
94,50
171,00
94,50
172,00
94,80
173,00
94,60
174,00
94,90
175,00
94,90
176,00
95,00
177,00
95,20
178,00
95,20
179,00
95,30
180,00
95,50
181,00
95,30
182,00
95,30
183,00
95,40
184,00
95,50
185,00
95,70
186,00
95,80
187,00
95,90
188,00
95,80
189,00
96,20
190,00
96,30
191,00
96,30
192,00
96,70
193,00
96,70
194,00
96,90
195,00
97,60
196,00
98,20
197,00
98,10
198,00
98,50
199,00
98,60
200,00
98,60
Waktu (s)
Temp (Celcius)
201,00
98,80
202,00
99,30
203,00
99,00
204,00
99,50
205,00
99,50
206,00
99,80
207,00
99,40
208,00
99,80
209,00
100,20
210,00
99,90
211,00
100,10
212,00
100,40
213,00
100,30
214,00
100,40
215,00
100,70
216,00
100,80
217,00
100,50
218,00
100,70
219,00
100,70
220,00
100,70
221,00
99,30
222,00
98,70
223,00
99,40
224,00
99,10
225,00
99,70
226,00
100,10
227,00
99,90
228,00
99,80
229,00
100,20
230,00
100,30
231,00
100,30
232,00
100,30
233,00
100,70
234,00
100,50
235,00
100,60
236,00
100,90
237,00
100,00
Tabel Lampiran 3. Terminologi matriks untuk metode elemen hingga [10]
Matriks
Elastisitas
Difusi
Konduksi Panas
K
Stiffness
Difusivitas
Konduktansi
F
Gaya
Fluks
Fluks
D
Perpindahan
Konsentrasi
Temperatur
Tabel Lampiran 4. MAC Address (64-bit unique) sensor temperatur DS18b20
Device Name
MAC Address
Sensor 1
9D000001986C7C28
Sensor 2
F400000109860728
Sensor 3
500000010A003E28
Sensor 4
730000019871E628
Sensor 5
9700000198546920
Tabel Lampiran 5. Resolusi sensor temperatur ds18b20
R1
R2
RESOLUSI
(BIT)
MAX WAKTU
KONVERSI
BESAR
RESOLUSI (
oC)
0
0
9
93.75ms
(tconv/8)
0.5
0
1
10
187.5ms
(tconv/4)
0.25
1
0
11
375ms
(tconv/2)
0.125
1
1
12
750ms
(tconv)
0.0625
Lampiran 1. Rumus Ketepatan
�
=
1
−
|� − |�
× 100%
(15)
Lampiran 2. Contoh perhitungan menggunakan metode elemen hingga.[11]
Sebuah pelat mendapat keadaan isotermal sebesar 100
oC di semua sisinya kecuali di sisi atas
yang sebesar 500
oC. Jika konduktivitas termal konstan dengan nilai sebesar 10 W/m
oC, bagaimana
distribusi temperaturnya dengan menggunakan metode elemen hingga elemen triangular.
Pelat tersebut dibagi menjadi 8 bagian yang sama ukurannya dengan bentuk elemen triangular,
seperti yang terlihat pada Gambar 15. Berikut ini merupakan matriks K untuk elemen 1, 3, 5,dan 7:
b1 = y2 – y4 = -0.50;
c1 = x4 – x2 = -0.50
b2 = y4 – y1 = 0.50;
c2 = x1 – x4 = 0.00
b4 = y1 – y2 = 0.00;
c4 = x2 – x1 = 0.50
Gambar 15. Sebuah pelat dengan kondisi batas temperatur yang berbeda
Gambar 16. Diskritisasi menggunakan elemen triangular
Matriks elemen K untuk elemen 1, 3, 5, dan 7 dapat dituliskan sebagai
�
1=
�
3=
�
5=
�
7=
4�12
+
12 1 2+
1 2 1 4+
1 4 1 2+
1 2 22+
22 2 4+
2 4 1 4+
1 4 2 4+
2 4 42+
42(16)
dimana luas area elemen dapat dituliskan sebagai
2
�
= det
1.0
0.0
0.0
1.0
0.5
0.0
1.0
0.0
0.5
= 0.25
2(17)
dengan mensubtitusikan luas area ke persamaan 16 didapat
�
1=
�
3=
�
5=
�
7=
22.0
−
1.0
−
1.0
−
1.0
1.0
0.0
−
1.0
0.0
1.0
(18)
�
2=
�
4=
�
6=
�
8=
21.0
−
1.0
0.0
−
1.0
2.0
−
1.0
0.0
−
1.0
1.0
(19)
setelah di-
assemble
keseluruhan matriks tiap elemen menjadi
dapat dilihat bahwa nilai yang tidak diketahui hanyalah T5 saja yang mana selanjutnya dapat
dihitung dari node ke-5
8
�
5= 2
�
2+ 2
�
4+ 2
�
6+ 2
�
8(21)
Lalu dengan mensubtitusikan T2 = T4 = T6 = 100
oC dan T8 = 500
oC, didapat nilai T
5= 200
oC.
Solusi analisis untuk problem seperti ini dapat dihitung dengan: (Holman 1989)
�
,
=
� − �
� 2�
−1 +1+1
sin
� � ℎ�
� ℎ �� ∞
=1
+
�
�(22)
dan akan didapat hasil yang sama seperti dalam perhitungan menggunakan metode elemen hingga.
Lampiran
4. Program utama (
tws.java)
/****************************************************************************** Project Name: TiniWeatherServer
File name: tws.java (main) Version: 5.0.1
Last Updated: 11/16/07
(C) 2007 T. Bitson, All Rights Reserved Edited by Subhi Priatna
Things to add:
email on device error out move chart logger into OWDevice
*****************************************************************************/
import java.net.*; import java.io.*; import java.util.*;
import com.dalsemi.system.*; public class TWS
{
public static final String VERSION = "TWS 5.0.1";
public static final boolean IS_TINI = System.getProperty("os.arch").equals("TINI"); protected static boolean debugFlag = false;
protected static String system = ""; protected static Object lock;
protected static DataLogger todaysLog, yesterdaysLog = null; private static long startTime;
private static boolean firstTime = true; private static final char BACKSPACE = 0x08;
private static final String DEG_SYMBOL = BACKSPACE + "I"; private Prefs pr;
private WeatherStation ws; private Wunderground wu; private TimeSetter ts; private WebPage webPage; private WebWorker webWorker; public TWS()
{
// create the lock object lock = new Object(); // create a webWorker
webWorker = new WebWorker(lock); // instantiate a new weather station ws = new WeatherStation();
// create a weather underground object wu = new Wunderground();
// create the web page webPage = new WebPage();
// create a new time setter class, we'll run it later ts = new TimeSetter();
// get the start time of this session Date d = new Date();
// main program loop: Start the various servers, get the weather and update the web page
public void mainLoop() {
boolean go = true; boolean resetFlag = true; Charter chart = null; BitPort bp = null; Date date = new Date(); int minute, hour ,second ; int lastSecond = -99; int lastMinute = -99; int lastHour = -99;
InputStreamReader in = new InputStreamReader(System.in); // get bit port to Tini's activity LED
if (IS_TINI) {
if (TINIOS.getCPU() == TINIOS.DS80C400) bp = new BitPort(BitPort.Port3Bit5); else
bp = new BitPort(BitPort.Port5Bit2); }
try {
// create the web server thread and start it Thread webServer = new Thread(webWorker); webServer.setName("Web Server");
webServer.start();
// build a log file name & create a log file object todaysLog = new DataLogger();
// build a chart data file chart = new Charter();
// if (Prefs.isChartingEnabled()) // {
// chart.reset(); // }
// enable the Watchdog Timer with a 120 second timeout if (Prefs.isWatchdogEnabled())
TINIOS.setWatchdogTimeout(120000);
// main program loop - loop forever, getting weather data while(go)
{
// sleep for 1 second Thread.sleep(1000);
// toggle activity led to show we're alive if (IS_TINI)
{
if (bp.read() == 1) bp.clear(); else
bp.set(); }
// feed the 'dog
if (Prefs.isWatchdogEnabled()) TINIOS.feedWatchdog(); // check current time
date.setTime(System.currentTimeMillis()); second = date.getSeconds();
//reset setiap 6 jam
if (hour == 18 && minute == 00) //RESET 6 JAM ATAU JAM6? {
// re-read prefs file Prefs.read();
if (debugFlag)
System.out.println("Reseting Logs");
// if data logging is on, start a new log file if (Prefs.isDataLoggingEnabled())
{
// first, get rid of yesterday's log file if (yesterdaysLog != null)
yesterdaysLog.deleteLog();
// then store today's log as the 'new' yesterday's log yesterdaysLog = todaysLog;
// finally, start a new log file for today todaysLog = new DataLogger();
}
// if charting is enabled, restart chart data files if (Prefs.isChartingEnabled())
chart.reset();
// reset the highs & lows ws.resetAllStats(); }
if (hour == 12 && minute == 00) {
// re-read prefs file Prefs.read();
if (debugFlag)
System.out.println("Reseting Logs");
// if data logging is on, start a new log file if (Prefs.isDataLoggingEnabled())
{
// first, get rid of yesterday's log file if (yesterdaysLog != null)
yesterdaysLog.deleteLog();
// then store today's log as the 'new' yesterday's log yesterdaysLog = todaysLog;
// finally, start a new log file for today todaysLog = new DataLogger();
}
// if charting is enabled, restart chart data files if (Prefs.isChartingEnabled())
chart.reset();
// reset the highs & lows ws.resetAllStats(); }
if (hour == 06 && minute == 00) {
// re-read prefs file Prefs.read();
if (debugFlag)
System.out.println("Reseting Logs");
// if data logging is on, start a new log file if (Prefs.isDataLoggingEnabled())
{
yesterdaysLog.deleteLog();
// then store today's log as the 'new' yesterday's log yesterdaysLog = todaysLog;
// finally, start a new log file for today todaysLog = new DataLogger();
}
// if charting is enabled, restart chart data files if (Prefs.isChartingEnabled())
chart.reset();
// reset the highs & lows ws.resetAllStats(); }
// check if its midnite, if so re-read prefs & restart logs if (hour == 00 && minute == 00)
{
// re-read prefs file Prefs.read();
if (debugFlag)
System.out.println("Reseting Logs");
// if data logging is on, start a new log file if (Prefs.isDataLoggingEnabled())
{
// first, get rid of yesterday's log file if (yesterdaysLog != null)
yesterdaysLog.deleteLog();
// then store today's log as the 'new' yesterday's log yesterdaysLog = todaysLog;
// finally, start a new log file for today todaysLog = new DataLogger();
}
// if charting is enabled, restart chart data files if (Prefs.isChartingEnabled())
chart.reset();
// reset the highs & lows ws.resetAllStats(); }
// now go get the current weather data if (debugFlag)
System.out.println("Getting weather at " + date.toString()); // ***** here's the call that actually gets the weather data ***** ws.getWeather();
// if data logging is enabled, log measured data if (Prefs.isDataLoggingEnabled())
todaysLog.logData(date, ws);
// if charting is enabled, update chart files if (Prefs.isChartingEnabled())
chart.log(date, ws);
// if time = 10 minute, crunch weather data & update web page if ((minute % 1) == 0) //ARTINYA TRUE
{
// calc index to 24 hour data
int index = (hour * 6) + (minute / 10); if (debugFlag)
// now update the weather web page webPage.updateWeatherPage(date, ws); // update the history data
ws.updateHistories(); // update Wunderground
if (Prefs.isWUPostingEnabled()) wu.send(date, ws);
// reset weather measurement averages ws.resetAllAverages();
}
// if its 1am, mail the error log if (hour == 01 && minute == 00) {
// if error log mail is enabled and log has data, mail it
if (Prefs.isErrorLoggingEnabled() && Logger.checkFileSize() > 0) {
// mail the error log
Mailer.mailLog("TWS Log", Prefs.getErrorLogFileName()); // now delete it
Logger.deleteLog(); }
}
// if its 2am, mail yesterday's weather log if (hour == 02 && minute == 00)
{
// if logging is enabled, mail log
if (Prefs.isLogMailingEnabled() && yesterdaysLog != null) Mailer.mailLog(yesterdaysLog.getFilename(),
yesterdaysLog.getFilePathname()); }
// if its 3:30 am, set the clock if (hour == 03 && minute == 30) {
// update the real-time clock if (Prefs.isAutoTimeSetEnabled()) new Thread(ts).start();
}
// update the time lastSecond = second; lastMinute = minute; lastHour = hour;
// clean up the mess we left behind java.lang.System.gc();
}
// check keyboard if not running on Tini if (!IS_TINI)
{
if (in.ready())
if (in.read() == 'q') go = false;
} } }
catch(Throwable t) {
Logger.log("mainLoop(): " + t); t.printStackTrace();
} finally {
}
public static boolean setTimeZone() {
try {
if (debugFlag)
System.out.println("Setting Tini's Timezone..."); // get the OS timezone
String tz = com.dalsemi.system.TINIOS.getTimeZone().trim(); if (debugFlag)
System.out.println("Timezone = " + tz); // get if time zone is default
if (!tz.equals("GMT")) {
// compare to the java time zone i.e. has it already been set? if (!TimeZone.getDefault().getID().equals(tz))
{
// now try to set the java timezone TimeZone zone = TimeZone.getTimeZone(tz); if (zone == null)
{ try {
if (tz.charAt(0) != '-') tz = "+" + tz;
com.dalsemi.system.TINIOS.setTimeZone(tz); zone = TimeZone.getDefault();
}
catch(NumberFormatException nfe) { }
}
if (zone!=null)
TimeZone.setDefault(zone); }
} }
catch(Exception e) {
Logger.log("Error Setting the Timezone - Check Tini's Clock"); return false;
}
return true; }
// main routine - program starts here public static void main(String[] args) {
System.out.print(VERSION + " Started on " + System.getProperty("os.arch")); System.out.println(" using " + System.getProperty("os.name"));
if (args.length != 0) {
if (args[0].equals("-d")) {
System.out.println("debug on"); debugFlag = true;
} }
// set Tini's Timezone if (IS_TINI)
setTimeZone();
System.out.println("TWS Local Time = " + new Date()); try
{
Prefs.read();
Logger.log("TWS " + VERSION + " Started on " + System.getProperty("os.arch"));
// create an instance of the weather server TWS tws = new TWS();
// start the main loop tws.mainLoop();
}
catch(Throwable t) {
Logger.log("Exception: Main() " + t); }
finally {
Logger.log("TiniWeatherServer Stopped"); System.exit(1);
} } }
/****************************************************************************** Project Name: TiniWeatherServer
File name: TempDevice.java Version: 2.0
Last Updated: 04/04/07 T. Bitson edited by Subhi Priatna
*****************************************************************************/ import com.dalsemi.onewire.*;
import com.dalsemi.onewire.adapter.*; import com.dalsemi.onewire.container.*; public class TempDevice extends OWDevice {
protected float result = NO_VALUE;
private OneWireContainer28 device = null;
pub