Membuat jejaring aliran di Excel tidak semudah membuat jejaring ekuipotensial. Jejaring ekuipotensial dapat diplot dengan mudah menggunakan tipe plot surface di Excel, sedangkan jejaring aliran tidak dapat dibuat dengan salah satu tipe plot default yang telah disediakan Excel.
Alasannya sederhana, yaitu karena jaring aliran sesungguhnya merupakan beda potensial diantara jejaring ekuipotensial, yang mana nilainya merupakan vektor!!
Oleh karena itu disini saya akan menggunakan fitur VBA (Visual Basic for Application) melalui developer tab yang by default sudah terinstall di dalam Excel.
Visual Basic for Application
Mengenai detail cara menggunakan VBA saya rasa tidak akan saya jelaskan disini karena untuk menjabarkan semuanya dari awal memerlukan waktu.
Namun seingat saya, sejak dulu sudah banyak buku-buku (dalam bahasa Indonesia) yang membahas cara memanfaatkan fitur ini. Cat: hati-hati dalam memilih buku VBA berbahasa Indonesia, banyak buku yang isinya hanya copy-paste dari manual yang ada!!
Prinsipnya didalam Excel kita bisa menuliskan script untuk mengotomatisasi/memanipulasi sesuatu. Misalnya kalau kita merekam macro, maka secara otomatis apa yang terekam didalam macro akan tertulis dalam script Visual Basic didalam Excel.
Menggunakan fitur ini kita dapat melakukan hampir segala macam hal menggunakan Excel. Pada kasus jaring aliran, saya akan membuat vektor menggunakan line shape.
Pertama-tama besar dan arah beda tinggi hidrolik dapat dievaluasi dengan menggunakan properti offset, formulasinya didasarkan pada hukum Darcy yang memformulasikan hubungan antara kecepatan aliran dan gradien hidrolik sbb:
Dengan adalah konduktivitas hidrolik dan
adalah gradien hidrolik. Karena pada jejaring ekuipotensial kita telah memiliki besarnya nilai tekanan hidrolik
, maka sekarang yang perlu dihitung adalah besarnya
.
Dibawah ini saya tampilkan sebagian dari script yang digunakan untuk mengkalkulasi beda tinggi hidrolik plus arahnya. 😎
'Menghitung gradien hidrolik DeltaHx = ActiveCell.Offset((RowCount - 1), (ColumnCount)).Value _ - ActiveCell.Offset((RowCount - 1), (ColumnCount - 2)).Value DeltaHy = ActiveCell.Offset((RowCount - 2), (ColumnCount - 1)) _ - ActiveCell.Offset((RowCount), (ColumnCount - 1)) deltaScalar = (DeltaHx ^ 2 + DeltaHy ^ 2) ^ (0.5) 'Menghitung sudut gradien hidrolik If -DeltaHx > 0 And -DeltaHy > 0 Then ' kuadran 1 anglearrow = Atn(DeltaHy / DeltaHx) * (180 / (22 / 7)) ElseIf -DeltaHx < 0 And -DeltaHy > 0 Then ' kuadran 2 anglearrow = Atn(DeltaHy / DeltaHx) * (180 / (22 / 7)) + 180 ElseIf -DeltaHx < 0 And -DeltaHy < 0 Then ' kuadran 3 anglearrow = Atn(DeltaHy / DeltaHx) * (180 / (22 / 7)) + 180 Else ' kuadran 4 anglearrow = Atn(DeltaHy / DeltaHx) * (180 / (22 / 7)) + 360 End If
Kemudian elemen garis (line) dan arrow head dapat dibuat dengan baris kode berikut
ActiveSheet.Shapes.AddLine(x2node, y2node, x1node, y1node).Select Selection.ShapeRange.Line.EndArrowheadStyle = msoArrowheadTriangle
Terakhir warna panah dapat saya atur tergantung besarnya beda tinggi hidrolik, dari merah hingga hijau.
'Menentukan warna arrow (tergantung gradien hidroliknya) If (deltaScalar / deltaScalarMax) > (0.875) Then Selection.ShapeRange.Line.ForeColor.RGB = RGB(238, 0, 0) ' merah ElseIf (deltaScalar / deltaScalarMax) > (0.75) Then Selection.ShapeRange.Line.ForeColor.RGB = RGB(255, 20, 147) ' ungu ElseIf (deltaScalar / deltaScalarMax) > (0.625) Then Selection.ShapeRange.Line.ForeColor.RGB = RGB(255, 140, 0) ' orange ElseIf (deltaScalar / deltaScalarMax) > (0.5) Then Selection.ShapeRange.Line.ForeColor.RGB = RGB(255, 255, 0) ' kuning ElseIf (deltaScalar / deltaScalarMax) > (0.375) Then Selection.ShapeRange.Line.ForeColor.RGB = RGB(65, 105, 225) ' biru tua ElseIf (deltaScalar / deltaScalarMax) > (0.25) Then Selection.ShapeRange.Line.ForeColor.RGB = RGB(135, 206, 255) ' biru muda ElseIf (deltaScalar / deltaScalarMax) > (0.125) Then Selection.ShapeRange.Line.ForeColor.RGB = RGB(35, 142, 35) ' hijau tua Else Selection.ShapeRange.Line.ForeColor.RGB = RGB(0, 255, 0) ' hijau muda End If
Setiap titik pada nodal interior dari metode beda hingga yang telah saya jabarkan di posting sebelumnya akan dievaluasi besar beda tinggi hidroliknya.
Contoh kasus 1: Sheetpile dan ekskavasi (cont)
Bila kembali ke contoh sebelumnya, seperti pada gambar dibawah ini:
Saya telah membuat jejaring ekuipotensialnya menggunakan dengan menggunakan plot tipe surface sbb:
Hasil penggambaran vektor aliranmenggunakan VBA di Excel adalah sbb:
Hasil diatas mengkonfirmasi hasil kalkulasi ekuipotensial yang kita peroleh Dapat kita lihat pula kecepatan aliran relatif tinggi di daerah dekat ujung pile. 😎
Contoh kasus 2: Bendungan beton
Kasus kedua adalah aliran rembesan pada bendungan beton. Bendungan ini dibangun diatas tanah isotrop dengan lapisan impermeable pada kedalaman sekitar 10m. Skematis problemnya dapat dilihat pada gambar berikut.
Dari informasi diatas, kita dapat membuat kondisi-kondisi batasnya didalam excel, setelah melakukan iterasi, kita dapat memperoleh solusi problem beda hingganya.
Kemudian dari hasil diatas kita dapat memperoleh kurva ekuipotensial dan alirannya sbb:
Penutup
Hasil perpotongan antara jejaring ekuipotensial dan jejaring aliran diatas pasti tegak lurus satu sama lain!!
Bila kita telah dapat membuat jejaring ekuipotensial dan jejaring aliran, maka sesungguhnya kita telah mampu membuat apa yang dapat dibuat beberapa program jejaring aliran yang dijual di pasaran!!
Karena untuk kedua kasus diatas kita masih menggunakan tanah isotrop, padahal sesungguhnya jarang sekali ditemui lapisan tanah yang benar-benar isotrop, maka untuk selanjutnya masih seputar jaring aliran, saya akan me-review kasus-kasus dengan tanah anisotropik. 😎
Tinggalkan Balasan