Anastruct: Pondasi Tumpuan Pegas Hanya Tekan

Artikel kali ini mau nyoba analisis pondasi telapak; yang terangkat salah satu sisinya, akibat gaya luar. Akibatnya tumpuan pegas tertarik pada salah satu sisinya dan perlu disesuaikan lagi, karena tanah dianggap tidak mampu menerima tarik.

Soal original merupakan postingan Suyono Nt dalam blognya disini atau soal dan solusinya dalam file pdf di sini. Begitu banyak tulisan beliau yang menginspirasi saya, termasuk contoh kasus pada kali ini.

Baiklah..

Adapun soalnya sebagai berikut:

Soal

Strategi

Adapun strategi dalam analisis kali ini adalah sebagai berikut:

  1. Awalnya, menganalisis pondasi sesuai kondisi awal/soal.
  2. Identifikasi tumpuan pegas (spring) yang mengalami reaksi tarik.
  3. Menghapus kekakuan pegas (atur k=0) yang mengalami tarik.
  4. Menganalisis kembali.
  5. Mengulangi tahapan, sampai tidak lagi ditemukan tumpuan yang mengalami tarik atau nilai tarik minimal (toleransi >0.0001)
  6. Mencoba pembagian elemen pias, 20, 60 dan 120 buah.
  7. Membandingkan tekanan teoritis dan hasil analisis.

Analisa struktur dilakukan menggunakan program Anastruct dan bahasa pemrograman Python. Adapun file analisis secara lengkap dapat diunduh pada link berikut ini:

Pondasi tumpuan pegas hanya tekan.pdf

Pondasi tumpuan pegas hanya tekan.ipynb

Hasil analisis

Berikut reaksi tumpuan untuk kasus 20 elemen pias; sebelum dilakukan penyesuaian.

Terlihat pada tumpuan bagian paling kanan terdapat reaksi tarik sebesar 10.58 kN. Dan terdapat beberapa tumpuan dengan reaksi tarik lagi.

N_pias = 20; Struktur dan Pembebanan
N_pias = 20; Reaksi perletakan, sebelum penyesuaian.

Tumpuan yang mengalami tarik tersebut dihapus kekakuannya (k=0), kemudian di analisis kembali. Adapun hasilnya sebagai berikut:

N_pias = 20; Reaksi perletakan, setelah penyesuaian
N_pias = 20; Diagram moment, setelah penyesuaian

Dari grafik reaksi perletakan di atas diketahui tekanan maksimal sebesar:

sigma_max = 70.38/(0.1*1) = 703 kPa < 780 kPa (tekanan maks teoritis)

Terlihat tekanan maksimal hasil analisis masih cukup jauh dari tekanan teoritis. Adapun grafik tekanan setelah dilakukan penyesuaian untuk kasus n elemen pias = 20 adalah sebagai berikut:

N_pias = 20; Tekanan fondasi; Maksimal = 703 kPa

Maka, dicoba jumlah elemen pias 60 buah dan 120 buah.

N_pias = 60; Tekanan fondasi; Maksimal = 763 kPa

N_pias = 120; Tekanan fondasi; Maksimal = 780 kPa
Jumlah Elemen PiasTekanan Maks (kPa)
20 buah703 kPa
60 buah763 kPa
120 buah780 kPa
Rekapitulasi Tekanan Pondasi

Dari tabel rekapitulasi di atas, diketahui digunakan jumlah elemen pias 120 buah untuk memperoleh nilai tekanan tanah yang sama dengan teoritis.

Namun, dengan jumlah elemen pias begitu banyak; sehingga tidak begitu efisien untuk keperluan analisis sehari-hari.

Dari hasil berikut ini, diketahui perulangan (iterasi) dilakukan sebanyak tiga (3) kali untuk menyesuaikan tumpuan hanya tekan saja. Berikut hasil eksekusi program analisis:

N_pias = 20

>> Mulai analisis..
hapus kekakuan tumpuan 1
hapus kekakuan tumpuan 2
hapus kekakuan tumpuan 3
>> Analisis kembali
hapus kekakuan tumpuan 4
>> Analisis kembali
hapus kekakuan tumpuan 5
>> Analisis kembali
Analisis selesai!
N_pias = 60

>> Mulai analisis..
hapus kekakuan tumpuan 1
hapus kekakuan tumpuan 2
hapus kekakuan tumpuan 3
hapus kekakuan tumpuan 4
hapus kekakuan tumpuan 5
hapus kekakuan tumpuan 6
hapus kekakuan tumpuan 7
hapus kekakuan tumpuan 8
hapus kekakuan tumpuan 9
hapus kekakuan tumpuan 10
>> Analisis kembali
hapus kekakuan tumpuan 11
hapus kekakuan tumpuan 12
hapus kekakuan tumpuan 13
hapus kekakuan tumpuan 14
>> Analisis kembali
hapus kekakuan tumpuan 15
>> Analisis kembali
Analisis selesai!
N_pias = 120

>> Mulai analisis..
hapus kekakuan tumpuan 1
hapus kekakuan tumpuan 2
hapus kekakuan tumpuan 3
hapus kekakuan tumpuan 4
hapus kekakuan tumpuan 5
hapus kekakuan tumpuan 6
hapus kekakuan tumpuan 7
hapus kekakuan tumpuan 8
hapus kekakuan tumpuan 9
hapus kekakuan tumpuan 10
hapus kekakuan tumpuan 11
hapus kekakuan tumpuan 12
hapus kekakuan tumpuan 13
hapus kekakuan tumpuan 14
hapus kekakuan tumpuan 15
hapus kekakuan tumpuan 16
hapus kekakuan tumpuan 17
hapus kekakuan tumpuan 18
hapus kekakuan tumpuan 19
hapus kekakuan tumpuan 20
>> Analisis kembali
hapus kekakuan tumpuan 21
hapus kekakuan tumpuan 22
hapus kekakuan tumpuan 23
hapus kekakuan tumpuan 24
hapus kekakuan tumpuan 25
hapus kekakuan tumpuan 26
hapus kekakuan tumpuan 27
hapus kekakuan tumpuan 28
>> Analisis kembali
hapus kekakuan tumpuan 29
hapus kekakuan tumpuan 30
>> Analisis kembali
Analisis selesai!


Baiklah.. demikian artikel kali ini, semoga bermanfaat.

Advertisement

Studi Kasus: Pengaruh Angin pada Rangka Atap Baja Ringan

Sudah tidak asing lagi, begitu banyak atap baja ringan yang diberitakan runtuh akibat terjangan angin kencang.

Material baja ringan banyak digunakan pada atap rumah sederhana dan hampir tidak ada hitungan pembebanannya (analisa struktur). Sangat miris memang, keamanan bangunan dilimpahkan sepenuhnya kepada tukang bangunan.

Tidak heran, untuk struktur sederhana seperti ini; mungkin pemilik rumah tidak terpikirkan untuk membayar insinyur struktur (tenaga ahli). Dan bisa jadi pula insinyur struktur tidak minat dengan struktur sederhana karena budget-nya dikit atau bahkan tidak ada sama sekali.

Oleh karena itu, pada artikel ini mau coba bahas, kira-kira apa sih kemungkinan penyebabnya? Bagaimana pengaruh beban angin dan analisis struktur yang dilakukan?

Contoh kasus:

Ditinjau Desain Rumah Tipe – 36 sebagai berikut:

  • Ukuran denah = 6 m x 6 m
  • Tinggi dinding 3 m
  • Sudut atap 30 derajat
  • Tinggi atap 1.73 m
  • Penutup atap spandek
Gambar 1 – Sketsa Desain Rumah

Model rangka atap baja ringan yang akan ditinjau sebagai berikut:

  • Bahan baja ringan profil 75x35x0.75 mm
  • Tumpuan sendi-sendi (sesuai keadaan umum terpasang di lapangan)
  • Jarak antar kuda-kuda sebesar 1.2 m.
  • Kecepatan angin 10 m/s sampai 90 m/s (umumnya digunakan 40 m/s untuk desain)
  • Desain sesuai Gambar 2.
Gambar 2 – Desain Rangka Atap

Pembebanan dan Analisis Struktur

Agar artikel ini tidak begitu rumit dan panjang, maka detail analisis tidak ditampilkan disini. Silahkan hubungi email penulis jika menginginkan detail perhitungan dan analisis; atau melalui kolom komentar di bawah ini.

Berikut ini beberapa asumsi analisis dan pembebanan yang digunakan:

  • Beban angin ditentukan berdasarkan SNI 1727:2020
  • Kapasitas Baja Ringan (Baja Canai Dingin) dihitung berdasarkan SNI 7971:2013
  • Mutu bahan menggunakan G 550 (fy 550 MPa)
  • Sambungan menggunakan sekrup D4.5 mm

Sebelum menuju hasil analisa struktur, mari kita perhatikan sejenak grafik pada Gambar 3 berikut ini.

Grafik ini adalah hubungan panjang batang baja ringan dengan kemampuan berapa kilogram yang bisa dipikul.

Gambar 3 – Kapasitas Tekuk (Kg) Profil Baja Ringan Tunggal

Sebagai contoh baja ringan dengan panjang 120 cm, memiliki kemampuan 933 Kg beban yang dapat dipikul. Ini adalah panjang batang bawah dan atas rangka atap pada Gambar 2.

Ini dikenal dengan kapasitas tekuk batang.

Dalam contoh ini, kapasitas tarik batang tidak ditinjau. Umumnya, kapasitas tekuk lebih rendah dibanding kapasitas tarik; sehingga tekuk batang menentukan.

Analisa struktur dilakukan menggunakan program Anastruct dan Bahasa Pemrograman Python.

Berikut pembahasan hasilnya.

Apakah batang baja tertekuk?

Berdasarkan hasil analisis, untuk kecepatan angin 10 m/s sampai 90 m/s; diketahui Gaya aksial tekan maksimal yang terjadi tidak melampaui kapasitas tekuk. Seperti yang terlihat pada Gambar 4 berikut.

Dengan demikian, batang baja tidak tertekuk atau batang baja masih aman.

Perlu diperhatikan, berdasarkan aturan di sini untuk Indonesia digunakan 40 m/s sebagai kecepatan angin desain. Dan tenyata pada kecepatan itu batang baja masih aman terhadap tekuk.

Gambar 4 – Perbandingan Kapasitas dan Gaya Tekan Maksimal yang terjadi

Bagaimana dengan sambungan?

Pada contoh kasus ini, sambungan antar batang (joint) dianggap aman.

Penulis lebih tertarik pada sambungan pada tumpuan rangka, dapat dilihat contoh pemasangan di bawah ini. Umumnya menggunakan sambungan dynabolt ke dalam balok/dinding dan dengan jumlah sekrup baja bervariasi.

Gambar 5 – Sambungan 2 buah sekrup
Gambar 6 – Sambungan 3 buah sekrup

Dari hasil analisa kapasitas sambungan, dianggap kapasitas cabut (pull out) sekrup yang akan menentukan. Karena kapasitas ini merupakan nilai terkecil dari kapasitas sambungan geser dan tarik.

Untuk 2 buah sekrup, mampu memikul 148 Kg gaya tarik (cabut/pull out).

Sedangkan untuk 3 buah sekrup, mampu memikul 237 Kg gaya tarik (cabut/pull out).

Berdasarkan hasil analisis struktur diketahui, sambungan tidak mampu memikul beban pada kurang lebih kecepatan angin 37 m/s untuk 2 buah sekrup. Dan 44 m/s untuk 3 buah sekrup.

Dengan demikian, kemungkinan terbesar penyebab utama keruntuhan rangka baja ringan adalah karena keruntuhan sambungan sekrup pada tumpuan.

Berikut ini plot grafik Kapasitas dan Gaya yang terjadi.

Gambar 7 – Perbandingan Kapasitas Cabut Sambungan dan Gaya yang terjadi

Mekanisme Keruntuhan

Baja ringan atau baja canai dingin terlihat sederhana, namun dalam analisis struktur dan desain sangat tidak sederhana.

Tipisnya bahan yang digunakan sangat mengganggu kestabilan penampang.

Dalam analisis ini begitu banyak hal yang diabaikan dan disederhanakan. Oleh karena itu, bisa jadi mekanisme berikut ini hanyalah salah satu dari sekian banyak mekanisme yang terjadi.

Berdasarkan hasil analisis,

Terlihat gaya angkat atau hisapan angin pada atap menyebabkan keruntuhan sambungan tumpuan. Gambar 8 menunjukkan deformasi struktur yang terjadi akibat beban angin 40 m/s.

Gambar 8 – Output Analisis Struktur: Deformasi Rangka
Gambar 9 – Beban Angin pada Atap
Gambar 10 – Output Gaya Batang (Kecepatan Angin 40 m/s)
Gambar 11 – Output Gaya pada Tumpuan (Kecepatan Angin 40 m/s)

Berikut ini ilustrasi penyebab keruntuhan atap baja ringan akibat beban angin.

Gambar 12 – Kerusakan Sambungan
Gambar 13 – Atap Tercabut dari Badan Rumah

Hal ini sejalan dengan berita di lapangan, banyak ditemukan kondisi atap yang terbalik dengan kondisi rangka yang masih utuh. Berikut ini beberapa foto dokumentasi keruntuhan baja ringan akibat angin.

Ilustrasi–Atap baja ringan ruko kurang lebih sepanjang 26 meter di daerah Kukun, Rajeg ambruk akibat diterjang angin kencang pada Senin dini hari di Rajeg, Tangerang, Banten, Senin (19/3). Akibat hujan deras disertai angin kencang atap baja ringan dari 11 ruko ambruk, tidak ada korban jiwa dalam kejadian tersebut. (Foto: ANTARA/Lucky.R/Koz). Sumber: www.beritasatu.com

Dikawasan Kompleks Grand Residence 3 di Jalan H.M Puna Sembiring, Deli Serdang sekira pukul 17.30 wib angin kencang disertai hujan membuat atap rumah milik Luqman Saksono terbang hingga kurang lebih 100 meter yang akhirnya menimpa canopy milik Romulo Makarios Sinaga, salah seorang wartawan, Senin (28/6/2021). Sumber: www.armadaberita.com

Kesimpulan:

Pada contoh kasus ini:

  1. Keruntuhan sambungan pada tumpuan, diperkirakan sebagai penyebab utama keruntuhan atap akibat beban angin.
  2. Perlunya perkuatan sambungan minimal 4 buah sekrup.
  3. Perlu tinjauan kekuatan sambungan dynabolt.
  4. Kapasitas batang tarik dan tekan masih memadai.
  5. Untuk stabilitas arah longitudinal dibutuhkan ikatan silang/ ikatan angin yang memadai.

HYRCAN : Verifikasi Tekanan Tanah

Sudah lama tidak menulis di blog ini. Maklum, semangat menulis kadang naik kadang turun.

Baiklah, kali ini mau nyoba HYRCAN program analisis stabilitas lereng yang digratiskan oleh Roozbeh Geraili Mikola, PhD, P.E.

Perlu diperhatikan bahwa program ini menggunakan metode kesetimbangan batas (limit equilibrum method) atau dikenal juga dengan metode irisan.

Dengan menggunakan soal yang sama di sini, maka dicoba verifikasi tekanan tanah lateral menggunakan aplikasi ini.

Berikut tampilan soal menggunakan HYRCAN 1.90

HYRCAN 1.9

Sesuai dengan teori, dengan kondisi soal tersebut harusnya diperoleh faktor aman (FS) sama dengan satu (1.0).

Berdasarkan hasil analisis menggunakan 4 metode diperoleh faktor aman (FS) sebagai berikut:

MetodeFaktor Aman
Spencer1,01824
Bishop Simplified1,00071
Janbu Simplified1,00258
GLE/Morgenstern-Price1,00102
Hasil Analisis Hyrcan

Dari tabel hasil di atas terlihat faktor aman FS ≈ 1.0, dengan demikian pemodelan dianggap sudah benar.

Berikut tampilan faktor aman dalam aplikasi HYRCAN.

Metode Spencer
Metode Bishop Simplified
Metode Janbu Simplified
Metode GLE/Morgenstern-Price

Selain faktor aman FS = 1.0, verifikasi juga bisa dilakukan terhadap sudut bidang geser.

Menurut teori Rankine sudut bidang geser dapat dihitung menggunakan persamaan,

α = 45° + φ/2 = 45° + 30°/2 = 60.0°

Dimana, φ = 30° (sudut gesek internal tanah).

Sedangkan dari hasil analisis yang paling mendekati menggunakan metode Spencer diperoleh,

α = arc tan(10 / 20-13.822) = 58.292° cukup mendekati 60° (teori)

Untuk melakukan analisis di atas dapat pula menggunakan perintah pada command line, sebagai berikut:

newmodel()
set("failureDir","l2r","Method","GLE/M-P","on","Method","JanbuSim","on","Method","Spencer","on")
extboundary(0,0,30,0,30,5,20.01,5,20,15,0,15,0,0)
definemat("ground","matID",1,"matName","Tanah","uw",18,"cohesion",0)
assignsoilmat("matid",1,"atpoint",15.6816,6.12131)
definelimits("limit",10,17,"limit2",20.01,22)
applyload("line","loadid",1,"mag",300,"orientation","normal","atpoint",20.0066,8.39072)
compute()

Demikian artikel kali ini semoga bermanfaat.

Studi kasus: Python untuk Geoteknik

Beberapa bulan terakhir involve dalam proyek yang mempunyai data pengujian geoteknik yang sangat banyak. Baik itu data pengujian in-situ (bor SPT, sondir..) dan data laboratorium (triaxial, analisa saringan, direct shear..)

Pekerjaan pengujian tanah tersebut dilakukan oleh kontraktor geoteknik, kemudian diserahkan ke konsultan untuk analisa lebih lanjut.

Sayangnya, data yang diberikan ada kemiripan/sama satu sama lain. Kontraktor dicurigai melakukan kecurangan.

Singkat kata, Bos memerintahkan saya untuk mengecek data laboratorium tersebut. Data apa saja yang sama/mirip dan teridentifikasi kecurangan.

Sialnya, data yang diberikan hanyalah file pdf. Dan dalam satu file pdf terdapat beberapa format tabel seperti analisa saringan, analisa saringan+hidrometer, geser langsung, triaxial test, berat jenis, dan beberapa uji atterberg.

Sekitar 1020an halaman khusus data lab (total 2000an) yang akan dicek, dan harus diselesaikan kurang dari 2 hari.

Ini bisa saja kita lakukan secara manual, melihat dan membandingkan. Namun, saya tidak begitu yakin apakah bisa diselesaikan dengan waktu kurang dari 2 hari dengan hasil akurat.

Bekerja dengan data yang banyak dan berulang. Disinilah bahasa pemrograman python menjadi senjata ampuh.

Hal yang dilakukan adalah:

  1. Meng-extract file pdf per page ke dalam file text
  2. Mengidentifikasi page termasuk dalam format data apa? (triaxial, direct shear, sieve analysis.. etc)
  3. Memilah tulisan (angka) yang termasuk dalam data, memasukkan angka tersebut dalam dataframe pandas dan meng-export ke file csv untuk diolah.
  4. Membanding data sesuai jenis pengujian/test, dengan cara menghitung selisih setiap data. Jika selisih = nol (0) maka data dikatakan sama persis
  5. Selesai

Tugas ini diselesaikan dalam beberapa jam saja. Karena membutuhkan waktu untuk ngulik google, dan perlu debugging codingan error. Selain itu, ternyata proses ekstrasi text pdf per halaman membutuhkan waktu.

Paling banyak error karena ternyata dalam satu format tabel juga masih beda. Data uji analisa saringan misalnya, ukuran saringan yang digunakan tidak seragam sehingga jumlah baris atau row data berbeda-beda.

Ini hanyalah contoh kasus sederhana, dimana kita dapat menggunakan python untuk keperluan sehari-hari. Tentunya jika diperlukan analisa lebih lanjut akan lebih mudah. Misal koreksi N-SPT untuk setiap titik pengujian dan per 1,5m kedalaman. Koreksi bisa dilakukan dengan cepat dan akurat (tentunya dengan verifikasi).

Demikian semoga bermanfaat.

Anastruct: Solusi Beban Terdistribusi Tidak Seragam

Dalam analisa struktur, biasanya ditemukan beban merata yang tidak seragam (non-uniform). Seperti beban akibat tekanan tanah lateral berbentuk segitiga, trapesium atau sembarang bentuk.

Tekanan tanah lateral (Hardiyatmo, C. 2011)

Menjadi masalah ketika program tidak menyediakan opsi input beban tidak seragam, seperti package Anastruct hanya menyediakan beban merata (q) uniform atau seragam.

Artikel ini terinspirasi dari blog Syont di sini : Beban titik kesetaran pada elemen balok

Secara ringkas, beliau menggunakan beban titik sebagai solusi analisa beban tidak seragam.

***

Baiklah..

Artikel kali ini akan membahas solusi analisa struktur beban tidak seragam menggunakan Anastruct/ Python.

Strategi Pemodelan

Strategi yang digunakan yaitu dengan membagi elemen dalam elemen pias/diskrit. Kemudian menggunakan beban q rata-rata (q tengah elemen) sebagai beban merata.

Berikut kira-kira ilustrasinya,

Strategi pemodelan beban tidak seragam

1. Membuat fungsi beban

Mulai dari sini pemodelan akan menggunakan Python dan Jupyter Notebook. Langkah pertama adalah membuat fungsi beban. Fungsi ini akan meng-handle beban merata setiap variasi kedalaman (z) atau jarak.

Lateral pressure due to line load Q:
\sigma_h = \frac{4Q}{\pi} \frac{x^2z}{R^4} 
Lateral active earth pressure Rankine theory:
K_a = \tan (45 - \phi/2)^2 
\sigma_a = \gamma z K_a

Di sini disiapkan dua fungsi. Yaitu fungsi tekanan tanah Rankine dan tekanan lateral akibat beban garis di atas dinding. Berikut script nya:

import math
def Q_pressure(H, q, x, z):
    R = math.sqrt(x**2 + z**2)
    sigma_q = 4*q/math.pi * (x**2)*z / (R**4)
    return(sigma_q)
def Rankine(phi, gamma, z):
    Ka = math.tan(math.radians(45-(phi/2)))**2
    sigma_a = gamma*z*Ka
    return(sigma_a)
Persamaan/fungsi tekanan tanah

2. Menentukan data dimensi, material, dan pengaturan yang digunakan

Sebagai verifikasi awal, maka akan ditinjau

  • Dinding kantilever
  • Tinggi total 6 m
  • Beban = tekanan tanah aktif teori Rankine
  • Jumlah elemen diskrit = 6 elemen

Sehingga panjang setiap elemen menjadi 6/6 = 1 m. Berikut input data keseluruhan:

import numpy as np
import pandas as pd
df = pd.DataFrame()
# Dimensions
H = 6 # wall height (m)
t = H/10 # thickness of the wall (m)
b = 1 # width (m)
A = b*t # area section (m^2)
Ix = (b*t**3)/12 # Momen inertia (m4)
# Materials
## Concrete
fc = 21 # MPa
E = 4700*math.sqrt(fc) * 1000 # concrete modulus elasticity (kPa)
## Soil
gamma = 18 # unit weight of soil
phi = 30 # internal friction angle
# Loads
Q = 112.5 # acting load (kN/m)
x = 2.0 # horizontal distance from wall (m)
# Settings
n_ele = 6 # number of element
dx = H/n_ele # lenght of dicretized element (m)

3. Membuat tabel beban tekanan tanah untuk setiap kedalaman (z)

Pada tahap ini, terlebih dahulu akan dicoba tekanan tanah rankine (beban segitiga).

z_list = [0]
sigma_list = [0]
for n in range(1,n_ele+1,1):
    z = n*dx
    z_list.append(-z)
    
    sigma_list.append(Rankine(phi,gamma,z)) # Rankine only
    #sigma_list.append(Q_pressure(H,Q,x,z)) # Lateral pressure due to line load only
    #sigma_list.append(Q_pressure(H,Q,x,z) + Rankine(phi,gamma,z)) # Rankine + Q lateral pressure
    
df['z (m)'] = z_list
df['sigma (kPa)'] = sigma_list 
df
Tabel tekanan tanah dibuat dalam data frame pandas
Plot data tekanan tanah

4. Analisa struktur dengan Anastruct

Berdasarkan data di atas, kemudian lakukan analisa struktur dengan Anastruct. Perlu diperhatikan, input beban ke dalam elemen dilakukan pada perintah loop “for i in range ()“; dengan terlebih dahulu dilakukan interpolasi pada kedalaman (z) tengah elemen. Ditunjukkan pada garis <<< assign q load each element.

Perlu perhatian khusus pada tumpuan, disesuaikan dengan dinding tinjauan yaitu fixed pada dasar dinding.

from scipy.interpolate import interp1d
from anastruct import SystemElements
ss = SystemElements(EI=E*Ix, EA=E*A)
ss.add_multiple_elements([[0, H], [0, 0]], n_ele)
##------------Support conditions very important!----------##
# first_node == node on the top of the wall
first_node = 1
last_node = n_ele+1
# ss.add_support_roll(first_node,direction='y')
# ss.add_support_hinged(last_node)
ss.add_support_fixed(last_node)
first_ele_z = dx/2
for i in range(n_ele):
    z = (i*dx) + first_ele_z
    interp = interp1d(df['z (m)'], df['sigma (kPa)']) # <<< assign q load each element
    sigma_interp = interp(-z)
    ss.q_load(q=-sigma_interp, element_id = i+1)
# Run Analysis
ss.solve()
# Plot graph
ss.show_structure(verbosity=0)
ss.show_bending_moment(verbosity=1)
ss.show_shear_force(verbosity=1)
# verbosity=0 to show value

Berikut tampilan beban yang telah di input:

Input beban
Output reaksi perletakan

Untuk verifikasi hasil reaksi tumpuan di atas dapat dilakukan dengan cara sederhana sebagai berikut:

Ka = tan(45 – 30/2)2 = 0.333

Pa = 0.5 x gamma x H2 x Ka = 107,89 kN ≈ Ranastruct = 108.0 kN (mendekati)

Mo = Pa x H/3 = 215,78 kNm ≈ Manastruct = 219.0 kNm (cukup mendekati nilai teori)

Terlihat reaksi hasil pemodelan cukup mendekati, perlu di perhatikan ini adalah hasil untuk 6 element diskrit. Nilai akan semakin mendekati jika jumlah elemen di perbanyak; misal 100 elemen.

5. Tahapan post processing

Pada tahap ini, gaya dan perpindahan untuk setiap node akan dirangkum dalam table pandas data frame. Kemudian di plot dalam grafik agar lebih mudah dilihat.

moment_list = ss.get_element_result_range('moment')
shear_list = ss.get_element_result_range('shear')
axial_list = ss.get_element_result_range('axial')
for n in range(0,n_ele+1):
    if n == n_ele:
        df.loc[n,'Moment (kNm)'] = ss.get_node_results_system(node_id=n+1)['Ty']
        df.loc[n,'Shear (kN)'] = -ss.get_node_results_system(node_id=n+1)['Fx']
        df.loc[n,'Axial (kNm)'] = ss.get_node_results_system(node_id=n+1)['Fy']
    else:
        df.loc[n,'Moment (kNm)'] = moment_list[n]
        df.loc[n,'Shear (kN)'] = shear_list[n]
        df.loc[n,'Axial (kNm)'] = axial_list[n]
    df.loc[n,'Displacement (mm)'] = 1000 * ss.get_node_results_system(node_id=n+1)['ux']
    
# Display table
df
Tabel output gaya dan perpindahan

Kemudian di plot menggunakan package plotly:

from plotly.subplots import make_subplots
import plotly.graph_objects as go
fig = make_subplots(rows=1, cols=4)
fig.add_trace(go.Scatter(name="Lateral Pressure (kPa)",x=df['sigma (kPa)'], y=df['z (m)'], mode="lines"), row=1, col=1)
fig.add_trace(go.Scatter(name="Bending Moment (kNm)",x=df['Moment (kNm)'], y=df['z (m)'], mode="lines"), row=1, col=2)
fig.add_trace(go.Scatter(name="Shear (kN)",x=df['Shear (kN)'], y=df['z (m)'], mode="lines"), row=1, col=3)
fig.add_trace(go.Scatter(name="Displacement (mm)", x=df['Displacement (mm)'], y=df['z (m)'], mode="lines"), row=1, col=4)
fig.update_yaxes(title_text="Depth, z (m)", row=1, col=1)
fig.update_xaxes(title_text="Lateral Pressure (kPa)", row=1, col=1)
fig.update_xaxes(title_text="Moment (kNm)", row=1, col=2)
fig.update_xaxes(title_text="Shear (kN)", row=1, col=3)
fig.update_xaxes(title_text="Displacement (mm)", row=1, col=4)
fig.update_layout(height=800, width=1000, title_text="Result",)
fig.show()
Plot kedalaman (z) vs gaya/ perpindahan

***

Pemodelan beban distribusi untuk sembarang bentuk

Eksperimen terakhir, akan dicoba pemodelan beban untuk sembarang bentuk sesuai dua fungsi yang telah dibuat (seperti gambar tekanan tanah pada awal artikel). Berikut deskripsi soalnya:

Data:

  • Tinggi dinding, H = 6 m
  • Kondisi tumpuan = jepit – jepit (fixed)
  • Jumlah element diskrit = 100
  • Data material sama dengan soal di atas

Tinjauan kondisi beban:

  1. Beban tekanan tanah aktif Rankine
  2. Beban tekanan lateral akibat beban garis (Q) di atas dinding
  3. Kombinasi beban 1 dan 2

Berikut hasilnya..

Kondisi 1. Tekanan tanah aktif Rankine
Kondisi 2. Tekanan tanah lateral akibat beban garis Q di atas dinding
Kondisi 3. Kombinasi tekanan tanah aktif Rankine dan beban garis Q di atas dinding

Bagi yang ingin mencoba silahkan download file jupyter notebook berikut:

Lateral Pressure Due to Surcharge

Bila ada yang ingin didiskusikan, silahkan tinggalkan komentar di bawah ini. Demikian semoga bermanfaat.

Catatan:

  • Untuk variasi beban lain dapat dimasukkan dalam tambahan fungsi.

LEMSlope: Verifikasi Kapasitas Dukung Fondasi Dangkal

Program analisa stabilitas lereng, dapat digunakan untuk analisa faktor aman fondasi dangkal. Sebagai contoh Geostudio Slope/W menganalisa fondasi telapak di sini.

Artikel kali ini, akan mencoba memakai aplikasi LEMSlope untuk analisa fondasi; kemudian dilakukan perbandingan dengan hasil analisis manual (analitik) dan hasil Geostudio.

Soal berikut ditinjau dua (2) kondisi:

  1. Kondisi undrained
  2. Kondisi drained

Lebar pondasi telapak B = 2,0 m. Adapun parameter tanah yang digunakan untuk dua (2) kondisi tersebut, dapat dilihat pada gambar berikut. Berdasarkan hasil manual/analitik diperoleh kapasitas dukung:

Kondisi undrained, qu = NcBSu = 5,52 x 2,0 m x 100 kPa = 552 kPa

Kondisi drained, qu = 0,5γBNγ = 0,5 x 20 kN/m3 x 2,0m x 15,1 =302 kPa


Secara teori, apabila permukaan tanah diberi beban merata sebesar qu; maka akan diperoleh hasil faktor aman (FS) = 1,0.

Strategi tinjauan kapasitas dukung, menggunakan setengah lebar fondasi B/2 = 1,0 m.

Berikut hasil dari running Geostudio. Terlihat faktor aman mendekati 1,0 sesuai dengan asumsi. Namun dengan beberapa catatan.

Analisis Menggunakan LEMSlope

Untuk kondisi 1 – undrained, maka digunakan script sebagai berikut:

#~units: m|kN|kPa|kN/m3|degree or ft|lbs|psf|pcf|degree

# Kondisi 1 tanah undrained

import lem

# beban merata kPa
q = 552

#~materials
tanah = lem.new_material_mohr_coulomb(
	name = 'tanah',
	color = '#ADFF2F', 
	unit_weight = 20,
	c = 100, 
	phi = 0)

#~base
base = lem.create_base()
base.set_limits(left = 0, right = 5, bottom = 0)
base.add_hline(3)
base.assign_material(tanah, (1,1))

#~analysis cases
case1 = lem.new_case('Case 1')
case1.set_entry_exit_limits(
	left_limits = (0, 0.01), 
	left_points_number = 2, 
	right_limits = (1.5, 2.25), 
	right_points_number = 12, 
	radius_increment_number = 5, 
	slice_number = 30)
case1.apply_distributed_load_on_surface(
	load_pairs = [(0,q), (1,q)],
	vertical_load = True)

case1.set_analysis_method(
	method = 'spencer')
Hasil Kondisi 1 – Undrained

Untuk kondisi 2 – drained, maka digunakan script sebagai berikut:

#~units: m|kN|kPa|kN/m3|degree or ft|lbs|psf|pcf|degree
# Kondisi 2 tanah drained

import lem
# beban merata kPa
q = 302

#~materials
tanah = lem.new_material_mohr_coulomb(
	name = 'tanah', 
	color = '#FFFBA9', 
	unit_weight = 20, 
	c = 0, 
	phi = 30)

#~base
base = lem.create_base()
base.set_limits(left = 0, right = 5, bottom = 0)
base.add_hline(3)
base.assign_material(tanah, (1,1))

#~analysis cases
case1 = lem.new_case('Case 1')
case1.set_entry_exit_limits(
	left_limits = (0, 0.01), 
	left_points_number = 2, 
	right_limits = (2.5, 4.5), 
	right_points_number = 50, 
	radius_increment_number = 5, 
	slice_number = 27)
case1.apply_distributed_load_on_surface(
	load_pairs = [(0,q), (1,q)],
	vertical_load = True)

case1.set_analysis_method(
	method = 'janbu')
Hasil Kondisi 2 – Drained

Dari hasil analisis menggunakan LEMSlope diperoleh FS ≈ 1,0 untuk kedua kondisi baik drained maupun undrained.

*Catatan:

  • Kondisi 1 menggunakan bidang gelincir lingkaran sesuai dengan teori bidang runtuh untuk tanah kohesif
  • Kondisi 2 seharusnya menggunakan bidang gelincir log-spiral; akan tetapi pada LEMSlope belum bisa dilakukan. Pada Geostudio dapat dilakukan dengan opsi passive angle pada pilihan entry-exit
  • Sehingga, untuk kondisi 2 dipilih bidang gelincir yang paling mendekati bentuk bidang gelincir dan faktor aman; digunakan metode janbu dengan 27 buah irisan
  • LEMSlope sudah dapat digunakan untuk analisa faktor aman fondasi dangkal

Demikian semoga bermanfaat.

LEMSlope: Analisis stabilitas lereng

Setelah perkenalan dengan LEMSlope di sini. Maka, artikel kali ini mau nyoba bagaimana analisa stabilitas lereng menggunakan program ini.

Perlu ditekankan, bahwa pembuatan model dan analisis dalam program ini adalah dengan cara menulis kode perintah (script) pada konsol, seperti pada gambar berikut.

Oleh karena itu, dalam contoh ini akan dijelaskan lebih detail bagaimana perintah/kode yang digunakan sesuai soal yang ada.

Bagi yang ingin coba, silahkan download installer aplikasinya disini. Cara install cukup mudah, yaitu cukup extract kemudian install file di dalamnya. Klik next.. next hingga selesai.

Tampilan LEMSlope

Sebagai pembanding, maka dicoba Contoh Soal 5.9 dalam buku Braja M. Das. Hasil faktor aman menurut Das adalah sebesar FS = 1,55.

Adapun soalnya sebagai berikut:

Gambar Soal

Rincian soal:

  1. Parameter tanah seperti pada gambar di atas
  2. Tinggi lereng = 14 m
  3. Sudut lereng = 30 derajat
  4. Metode Ordinary/Fellenius
  5. Jumlah irisan = 7

Adapun langkah-langkah pembuatan model pada LEMSlope adalah sebagai berikut:

Pertama,

Hal yang penting untuk diperhatikan adalah satuan. Dalam program ini dapat menggunakan satuan metric atau imperial sebagai berikut.

#~units: m|kN|kPa|kN/m3|degree or ft|lbs|psf|pcf|degree

Dalam contoh ini menggunakan satuan metric; yaitu meter, kN, kPa, kN/m3 dan derajat.

Kedua,

Input parameter tanah menggunakan model material Mohr-Coulomb dengan cara berikut:

import lem

#~materials
tanah = lem.new_material_mohr_coulomb(
	name = 'tanah',
	unit_weight = 16,
	c = 20,
	phi = 20,
	color= '#FFFBA9')

Ketiga,

Kemudian strategi pembuatan geometri/bentuk lereng. Berdasarkan Gambar di atas, kemudian dibuat geometri sebagai berikut,

Gambar Geometri

Terlebih dahulu dibuat base, yaitu daerah kotak bergaris kuning seperti yang terlihat pada gambar di atas. Batas kiri dan kanan daerah menggunakan perintah set_limits(), left untuk batas kiri, right untuk batas kanan, dan bottom untuk batas bawah dalam satuan meter.

add_hline() untuk memasukkan tinggi daerah berwarna kuning dan assign_material untuk memasukkan material tanah yang sudah dibuat sebelumnya di tahap ke dua. Kode perintah adalah seperti berikut:

#~base
base = lem.create_base()
base.set_limits(left = 0, right = 36, bottom = 0)
base.add_hline(20)
base.assign_material(tanah, (18,10))

Keempat,

Setelah itu masuk dalam tahap analisis. Membuat case atau kasus dengan cara,

#~analysis cases
case1 = lem.new_case('Case 1')

Kelima,

Memotong daerah/bidang lereng sesuai gambar geometri, dengan perintah

case1.cut_left_slope(
	bottom_elevation = 6,
	slope = 30,
	x = 5,
	is_top_x = False)

Keenam,

Membuat entry exit untuk bidang gelincir, sama seperti opsi pada Geostudio. Jangan lupa untuk memasukkan jumlah irisan slice_number = 7; sesuai soal. Adapun perintahnya sebagai berikut

case1.set_entry_exit_limits(
	left_limits = (0, 6),
	left_points_number = 12, 
	right_limits = (30, 36),
	right_points_number = 12, 
	radius_increment_number = 5,
	slice_number = 7)

Ketujuh,

Memilih metode analisis yang digunakan, dengan cara menuliskan

case1.set_analysis_method(
	method = 'ordinary')

Kedelapan,

Kode perintah/script yang digunakan secara keseluruhan jika digabungkan menjadi:

#~units: m|kN|kPa|kN/m3|degree or ft|lbs|psf|pcf|degree

import lem

#~materials
tanah = lem.new_material_mohr_coulomb(
	name = 'tanah',
	unit_weight = 16,
	c = 20,
	phi = 20,
	color = '#FFFBA9')

#~base
base = lem.create_base()
base.set_limits(
	left = 0,
	right = 36,
	bottom = 0)
base.add_hline(20)
base.assign_material(tanah, (18,10))

#~analysis cases
case1 = lem.new_case('Case 1')
case1.cut_left_slope(
	bottom_elevation = 6,
	slope = 30,
	x = 5,
	is_top_x = False)
case1.set_entry_exit_limits(
	left_limits = (0, 6),
	left_points_number = 12, 
	right_limits = (30, 36),
	right_points_number = 12, 
	radius_increment_number = 5,
	slice_number = 7)
case1.set_analysis_method(
	method = 'ordinary')

Kesembilan

Running analisis dengan cara tekan tombol keyboard F5 atau Fn+F5. Atau dengan cara klik menu Analysis, kemudian Run All Case.


Perbandingan LEMSLope dan Buku Braja

Adapun hasil analisis stabilitas menggunakan LEMSlope ada sebesar FS = 1.513.

Cukup mendekati faktor aman dari contoh perhitungan buku yaitu sebesar FS =1,55. Maka, pemodelan dianggap sudah benar.

Walaupun ada perbedaan sebesar 0,037 masih dianggap kecil dan tidak begitu signifikan.

Berikut gambar model dan faktor aman yang diperoleh.

Hasil Analisis LEMSlope

Demikian, semoga bermanfaat. Silahkan isi kolom komentar jika ada pertanyaan atau saran terkait contoh ini.

Nyoba SSI Modeling Challenge


Sebenarnya challenge ini dilaksanakan dari 15 Juli 2020 (tanggal postingan) sampai 31 Agustus 2020. Tapi, tidak ada salahnya untuk dicoba.

Jika ingin membaca postingan soal aslinya silahkan ke sini SSI Model Challenge.

Dan hasilnya dapat dibaca di sini SSI Modeling Challenge Results.

Oke.. baiklah.. mari kita mulai

Diberikan kasus pilar-fondasi jembatan diberikan gaya horizontal P = 1 kN di puncaknya seperti gambar berikut.

Ditanyakan berapakah perpindahan lateral di puncak pilar?

Cukup rumit bila ditinjau interaksi tanah-struktur (soil-struktur interaction, SSI). Untuk itu mari kita coba dengan cara yang lebih sederhana.

Diasumsikan pilar sebagai balok kantilever (linear elastik), kemudian perpindahan dihitung dengan rumus;
perpindahan = PL^3 / 3EI.

P = gaya horizontal di puncak pier = 1 kN
L = panjang kantilever
E = Modulus elastisitas tiang = 25 GPa = 25 x 10^6 kN/m3
I = inersia tiang = pi x D^4 / 64 = 0,071832 m4

Seperti yang kita ketahui, jepit atau kekangan tanah tidak berada di permukaan tanah. Umumnya diasumsikan kekangan tanah berada pada jarak Lp/3 dari permukaan tanah. Lp = panjang tiang yang tertanam.

Sehingga panjang kantilever menjadi, L = Lp/3 + h = 20/3 + 6,1 = 12,76 m

Maka, diperoleh perpindahan lateral dipuncak sebesar disp = PL^3 / 3EI = 0,385 mm

Jika diplot dalam grafik hasil modelling dari 7 partisipan lain, terlihat perpindahan masuk dalam rentang (min/max) dan mendekati nilai median sebesar 0,31 mm.

Perlu diperhatikan, persamaan di atas (asumsi 1) belum menggunakan parameter tanah dalam perhitungan. Kedalaman kekangan/jepit tanah hanya sebatas asumsi Lp/3. Oleh karena itu, mari kita coba gunakan persamaan FEMA 55 (Equation 10.4), kedalaman kekangan dihitung dengan rumus:

D = 1,8 x (EI / nh)^(1/5)

Dimana modulus subgrade tanah (nh) = 41 MN/m3; diperoleh dari hasil plot grafik hubungan kepadatan relative Dr = 90% dan modulus subgrade sebagai berikut.

Grafik korelasi kerapatan relatif dan modulus subgrade tanah (sumber)

Kedalaman kekangan menjadi D = 1,8 x (EI / nh)^(1/5) = 3,83 m

Total panjang kantilver (asumsi 2) menjadi, L = H + D = 6,1 + 3,83 = 9,93 m

Maka, diperoleh perpindahan lateral (asumsi 2) sebesar disp = PL^3 / 3EI = 0,182 mm

Jika diplot lagi kedalam grafik hasil partisipan lain, terlihat perpindahan lebih kecil namun masih masuk dalam range. Hasil yang pertama (warna merah) lebih konservatif dari hasil kedua (warna hijau).

Baiklah..

Mari kita dicoba asumsi ke 3.

Dengan menggunakan paket program Anastruct, tiang dibagi dalam beberapa elemen diskrit. Diberikan tumpuan spring arah horizontal, setiap meter kedalaman tiang. Di dasar tiang diasumsikan tumpuan sendi. Nilai parameter EI tiang sesuai soal di atas.

Penentuan modulus reaksi subgrade horizontal, mengikuti langkah-langkah dalam buku Bowles, Example 16.9.

Berikut script analisa struktur yang ditulis menggunakan bahasa Python dengan paket program Anastruct.
Hasilnya sebagai berikut:

from anastruct.fem.system import SystemElements
import matplotlib.pyplot as plt
import math

d = 1.1
A = (math.pi*d**2)/4
I = (math.pi*d**4)/64
E = 25*10**6
nh = 41000
s = 1

# geometri tiang
Px = 1
H = 6.1
L = 20

ss = SystemElements(EA=E*A, EI=E*I)
ss.add_multiple_elements([[0, 0], [0, L]], 20)
ss.add_multiple_elements([[0, L], [0, L+H]], 6)

for i in range(1,L+2):
    if i == 1:
        ss.add_support_hinged(node_id=[i])
    elif i == L+1:
        kh = (nh*d*s/2)/2
        ss.add_support_spring(node_id=i, translation=1, k=kh)
    else:
        z = L+s-i
        #kh = nh*(z/d)*s*d
        kh = (nh*s*d)/2
        ss.add_support_spring(node_id=i, translation=1, k=kh)

ss.point_load(node_id=27, Fx=Px)

ss.solve()
disp = ss.get_node_displacements(node_id=27)
x_disp= round(disp["ux"]*1000,4)

print("Perpindahan horizontal di puncak tiang; disp = ",x_disp," mm")

list_disp = ss.get_node_result_range('ux')
list_disp_mili = []
for val in (list_disp):
    x = val*1000
    list_disp_mili.append(x)

f = plt.figure()
plt.xlabel('Perpindahan Lateral (mm)')
plt.ylabel('Elevasi tiang (m)')
plt.plot(list_disp_mili,range(-L,7))

f.set_figwidth(6)
f.set_figheight(10)
plt.grid()
plt.show()
#print(list_disp)

ss.show_structure()
ss.show_displacement(factor=20000)
ss.show_bending_moment()
Model Struktur
Diagram Momen
Grafik Perpindahan

Cara ke tiga ini diperoleh perpindahan sebesar disp = 0,207 mm
Jika diplot lagi ke dalam grafik hasil,

Kesimpulan:
Challenge ini adalah analisa interaksi tanah-struktur (SSI). Karena berhubungan dengan tanah, sehingga diperoleh nilai perpindahan yang bervariasi. Behubung modulus subgrade pasir padat juga bervariasi (ada nilai minimum dan maksimumnya).

Hasil perhitungan menunjukkan cara paling sederhana (asumsi 1) cukup konservatif untuk digunakan. Lebih besar dari nilai median (garis putus-putus dalam grafik). Cukup baik digunakan untuk kepentingan desain pendahuluan, penentuan dimensi awal. Kemudian dapat dilakukan analisa struktur yang lebih detail, seperti mengasumsikan kekakuan tanah sebagai tumpuan spring.

Mempercepat Waktu Analisis/Revisi Dengan Program Anastruct

Sudah lama sejak terakhir kali nulis di blog ini. Mungkin sudah beberapa bulan lalu bersamaan dengan pekerjaan yang menumpuk.

Kali ini saya mau cerita sedikit tentang apa sih kelebihan paket program struktur? jika dibandingkan dengan software yang sudah banyak saat ini? seperti SAP2000 atau ETABS.

Paket program struktur yang saya maksud adalah “alat” analisa struktur yang ditulis dalam suatu bahasa pemrograman. Seperti paket program (package) Anastruk yang ditulis dalam bahasa pemrograman Python, yang akan kita bahas disini.

Untuk menggunakan ini, tentunya kita harus belajar bahasa Python lagi. Selain itu, tidak ada tersedia tombol/menu/tool seperti SAP2000. Pengguna harus menulis code/syntax sesuai aturan, untuk melakukan analisa struktur.

Ribet..?

Yah lumayan, lalu apa kelebihannya dibandingkan software yang sudah ada?

Pembuatan model yang sangat cepat.

Dari segi fitur pastinya ada beberapa kekurangan. Namun, kecepatan pembuatan/merevisi model merupakan keunggulan yang sangat signifikan membantu engineer.

Kita tahu, bahwa di dunia kerja engineer dituntut untuk bekerja cepat dan tepat. Belum lagi, terkadang revisi dilakukan secara berulang-ulang.

Sebagai contoh; membuat portal sederhana 1 tingkat, dengan cara menulis code menggunakan paket Anastruct dalam bahasa Python sebagai berikut:

from anastruct.fem.system import SystemElements
ss = SystemElements()

# Tambahkan Material/Properti Penampang
EA = 5e9
EI = 8000

# Geometri
h = 3.         # tinggi portal
L = 6          # lebar portal

# Tambah element balok/kolom
ss.add_element(location=[[0,0], [0,h]], EA=EA, EI=EI)
ss.add_element(location=[[L,0], [L,h]], EA=EA, EI=EI)
ss.add_element(location=[[0,h], [L,h]], EA=EA, EI=EI)

# Tampilkan gambar struktur
ss.show_structure()

Setelah kita Run (shift+enter) code di atas, maka akan tampil model sebagai berikut:

Dengan 18 line code di atas kita sudah dapat membuat portal sederhana. Cepat bukan?

Oke.. sampai di sini gimana? Biasa saja..?

Mari kita tambahkan beban merata dan tumpuan, dengan cara merubah code menjadi berikut:

from anastruct.fem.system import SystemElements
ss = SystemElements()

# Material/Properti Penampang
EA = 5e9
EI = 8000

# Geometri
h = 3.
L = 6

# Tambah element balok/kolom
ss.add_element(location=[[0,0], [0,h]], EA=EA, EI=EI)
ss.add_element(location=[[L,0], [L,h]], EA=EA, EI=EI)
ss.add_element(location=[[0,h], [L,h]], EA=EA, EI=EI)
    
# Tambah beban merata pada balok
ss.q_load(element_id=3, q=-13)

# Tambah tumpuan
ss.add_support_fixed(node_id=1)
ss.add_support_fixed(node_id=3)

# Tampilkan gambar struktur
ss.show_structure()

Maka tampilannya menjadi

Analisa struktur selanjutnya dapat dilakukan dengan menambahkan code berikut di bagian akhir code sebelumnya.

# Run Analisis
ss.solve()

# Tampilkan gambar reaksi perletakan, diagram Momen, geser, aksial, dan deformasi 
ss.show_reaction_force()
ss.show_bending_moment()
ss.show_shear_force()
ss.show_axial_force()
ss.show_displacement()

Setelah Running lagi shift+enter, maka akan tampil gambar diagram gaya berikut.

Gambar Reaksi Perletakan
Diagram Momen
Diagram Gaya Geser
Diagram Gaya Aksial
Gambar Deformasi Struktur

Masalah akan timbul jika Owner atau Arsitek ingin merubah desain. Contoh mereka meminta untuk menambahkan tinggi portal menjadi 4 m misalnya. Jika ini dilakukan menggunakan SAP2000 misalnya, maka kita harus mengedit grid lagi dan menarik garis lagi merubah geometri portal.

Di sinilah kelebihan paket program Anastruk. Kita dengan mudah merubah tinggi dalam code sebelumnya dari nilai 3 menjadi 4. Kemudian shift+enter.. simple kan? codenya menjadi:

from anastruct.fem.system import SystemElements
ss = SystemElements()

# Material/Properti Penampang
EA = 5e9
EI = 8000

# Geometri
h = 4     # ganti untuk merubah tinggi 
L = 6     # ganti untuk merubah lebar 

# Tambah element balok/kolom
ss.add_element(location=[[0,0], [0,h]], EA=EA, EI=EI)
ss.add_element(location=[[L,0], [L,h]], EA=EA, EI=EI)
ss.add_element(location=[[0,h], [L,h]], EA=EA, EI=EI)
    
# Tambah beban merata pada balok
ss.q_load(element_id=3, q=-13)

# Tambah tumpuan
ss.add_support_fixed(node_id=1)
ss.add_support_fixed(node_id=3)

# Run Analisis
ss.solve()

# Tampilkan gambar reaksi perletakan, diagram Momen, geser, aksial, dan deformasi 
ss.show_reaction_force()
ss.show_bending_moment()
ss.show_shear_force()
ss.show_axial_force()
ss.show_displacement()

Maka, diagram momen menjadi seperti berikut:

Diagram Momen (tinggi portal 4m)

Bagaimana? cepat bukan?

Oke.. struktur di atas masih sederhana. Mungkin tidak terlalu menyita waktu jika ada revisi.

Bagaimana jika Owner ingin gedung menjadi 7 tingkat?, dengan tinggi menjadi 6 m dan bentang balok menjadi 10m..?

Dengan menggunakan code sebelumnya, namun dengan beberapa baris perubahan code menjadi seperti berikut:

from anastruct.fem.system import SystemElements
ss = SystemElements()

# Material/Properti Penampang
EA = 5e9
EI = 8000

# Geometri
h = 6
L = 10
n_tingkat = 7

for i in range(n_tingkat):
    # Tambah element balok/kolom
    ss.add_element(location=[[0,i*h], [0,(i+1)*h]], EA=EA, EI=EI)
    ss.add_element(location=[[L,i*h], [L,(i+1)*h]], EA=EA, EI=EI)
    ss.add_element(location=[[0,(i+1)*h], [L,(i+1)*h]], EA=EA, EI=EI)
    
    # Tambah beban merata pada balok
    ss.q_load(element_id=(i+1)*3, q=-13)

# Tambah tumpuan
ss.add_support_fixed(node_id=1)
ss.add_support_fixed(node_id=3)

# Run Analisis
ss.solve()

# Tampilkan gambar struktur
ss.show_structure()
ss.show_reaction_force()
ss.show_bending_moment()
ss.show_axial_force()
ss.show_displacement()

Maka, dengan Running shit+enter lagi langsung diperoleh diagram sebagai berikut.

Gambar Geometri Struktur
Reaksi Perletakan
Gambar Digram Momen
Gambar Gaya Aksial
Gambar Deformasi Struktur

Dengan menggunakan paket program analisa struktur, pembuatan/revisi model sangat cepat dilakukan. Walaupun kondisi penambahan tingkat di atas dapat dilakukan dengan fitur Replicate pada program SAP2000 atau ETABS, namun tetap kecepatan tidak melebihi paket program.

Adanya tampilan antar muka (Graphical User Interface/GUI) pada software sekarang memang sangat memudahkan user pemula dalam membuat model struktur. Selain itu software struktur mempunyai fitur yang banyak baik itu fitur analysis dan desain.

User biasanya akan stack jika ditanyakan tentang lisensi/izin. Maka, paket program seperti Anastruct dan Openseespy dapat digunakan, program ini tersedia secara gratis untuk semua orang.

Referensi:

https://anastruct.readthedocs.io/en/latest/

Refleksi 2020

Apa arti tahun 2020 bagi Anda?

Jika jawaban Anda “2020 adalah tahun yang membawa kesialan”, maka sah-sah aja sih. Tapi, bagi saya tahun 2020 memberikan ruang yang lebih untuk melakukan eksplorasi.

Tahun 2020 mungkin membatasi gerakan fisik melalui social distancing dan lockdown-nya, namun tidak membatasi pikiran kita untuk berkreasi, mencoba hal-hal yang baru.

Selepas bangku kuliah Desember 2019, bukannya berhadapan dengan pekerjaan yang saya impikan, malah dihadapkan dengan pandemi Covid-19 di awal tahun 2020.

Dengan kondisi begitu, apa yang bisa dilakukan?

Setidaknya satu hal aja cukup, berbenah diri..

Belajar.. sembari menunggu Covid sedikit mereda dan panggilan kerja (*yang tak kunjung datang). Apa lagi yang bisa saya lakukan selain itu.

Setengah semester saya habiskan untuk browsing update informasi dunia teknik sipil. Mempelajari aplikasi yang sekiranya dapat membantu pekerjaan nantinya.

Mengikuti seminar yang sukar didapat jika tidak dalam kondisi pandemi. Materi online berhamburan dan Saya tidak mungkin menyia-nyiakan begitu saja.

Cukup mengesankan..

Mulai mencoba memberanikan diri Hijrah ke Linux, walaupun belum sepenuhnya. Mencoba pemrograman dasar dengan python. Eksplor QGIS walaupun saya tidak begitu paham apakah ini benar-benar akan berguna.

Saya sangat terobsesi dengan analisis struktur dan desain. Ujung tahun 2019 memberikan pengalaman yang cukup lumayan dalam penyusunan laporan struktur, untuk beberapa proyek gedung dan jembatan.

Untuk itu, saya sangat berterima kasih untuk Pak Suyono, yang sudah memperkenalkan saya dengan Smath Studio untuk desktop kalkulator dan FTool untuk program analisis struktur 2D. Browsing aplikasi sejenis ini membawa saya ke aplikasi-aplikasi lain yang luar biasa.

Pengalaman menarik juga saya peroleh dari hasil ngulik package python, anaStruct. Sangat mengesankan untuk kecepatan merubah dimensi struktur, karena berupa program python. Ini juga sudah mengakomodir struktur 2D nonlinier. Ada pula Openseespy yang masih dalam proses pengenalan.

Selain itu, di tahun 2020 juga mencoba membangun @di_lemba, walaupun belum cukup aktif hingga sekarang. Mengikuti magang menulis di Nemu Buku, mencoba ngulik literasi kebencanaan sesuai tema dan beruntungnya memperoleh wejangan dari beberapa expert.

Menarik..

Namun, apakah aplikasi-aplikasi itu dipakai di dunia kerja yang nyata?

All works for me..

Jangan takut menghabiskan waktu untuk belajar.

Beruntungnya aplikasi di atas sangat berguna dalam pekerjaan yang saya hadapi sekarang.

Viva Geotechnical Engineer..

2021