Kalkulator Kurva Vertikal untuk Proyek Teknik Sipil
Hitung parameter kurva vertikal untuk desain jalan dan rel kereta. Temukan elevasi, nilai K, titik tinggi/rendah, dan lainnya untuk kurva puncak dan cekung dalam proyek transportasi.
Kalkulator Kurva Vertikal
Parameter Masukan
Curve Parameters
PVI Information
Hasil
Karakteristik Kurva
Titik Kunci
Kueri Stasiun
Visualisasi
Dokumentasi
Kalkulator Kurva Vertikal untuk Rekayasa Sipil
Pendahuluan
Kalkulator kurva vertikal adalah alat penting dalam rekayasa sipil yang membantu insinyur merancang transisi yang mulus antara berbagai kemiringan jalan. Kurva vertikal adalah kurva parabola yang digunakan dalam desain jalan dan rel kereta api untuk menciptakan perubahan bertahap antara dua kemiringan atau gradien yang berbeda, memastikan kondisi berkendara yang nyaman dan drainase yang tepat. Kalkulator ini menyederhanakan perhitungan matematis kompleks yang diperlukan untuk merancang kurva vertikal, memungkinkan insinyur sipil, perancang jalan, dan profesional konstruksi untuk dengan cepat menentukan parameter kunci seperti elevasi kurva, titik tinggi dan rendah, serta nilai K.
Apakah Anda sedang merancang jalan raya, jalan lokal, atau rel kereta api, kurva vertikal sangat penting untuk keselamatan, kenyamanan pengemudi, dan pengelolaan air hujan yang tepat. Kalkulator komprehensif ini menangani baik kurva puncak (di mana jalan naik kemudian turun) maupun kurva sag (di mana jalan turun kemudian naik), memberikan semua informasi penting yang diperlukan untuk desain penyelarasan vertikal yang tepat dalam proyek rekayasa transportasi.
Dasar-Dasar Kurva Vertikal
Apa itu Kurva Vertikal?
Kurva vertikal adalah kurva parabola yang digunakan dalam penyelarasan vertikal jalan, jalan raya, rel kereta api, dan infrastruktur transportasi lainnya. Ini memberikan transisi yang mulus antara dua gradien atau kemiringan yang berbeda, menghilangkan perubahan mendadak yang akan terjadi jika gradien bertemu pada suatu titik. Transisi yang mulus ini sangat penting untuk:
- Kenyamanan dan keselamatan pengemudi
- Jarak pandang yang memadai untuk pengemudi
- Efisiensi operasi kendaraan
- Drainase yang efektif
- Penampilan estetika jalan
Kurva vertikal biasanya berbentuk parabola karena parabola memberikan laju perubahan yang konstan dalam gradien, menghasilkan transisi yang mulus yang meminimalkan gaya yang dialami oleh kendaraan dan penumpang.
Jenis-Jenis Kurva Vertikal
Ada dua jenis utama kurva vertikal yang digunakan dalam rekayasa sipil:
-
Kurva Puncak: Ini terjadi ketika gradien awal lebih besar dari gradien akhir (misalnya, dari +3% ke -2%). Kurva ini membentuk bukit atau titik tinggi. Kurva puncak terutama dirancang berdasarkan persyaratan jarak pandang berhenti.
-
Kurva Sag: Ini terjadi ketika gradien awal kurang dari gradien akhir (misalnya, dari -2% ke +3%). Kurva ini membentuk lembah atau titik rendah. Kurva sag biasanya dirancang berdasarkan jarak pandang lampu depan dan pertimbangan drainase.
Parameter Kunci Kurva Vertikal
Untuk sepenuhnya mendefinisikan kurva vertikal, beberapa parameter kunci harus ditetapkan:
- Gradien Awal (gā): Kemiringan jalan sebelum memasuki kurva, dinyatakan dalam persentase
- Gradien Akhir (gā): Kemiringan jalan setelah keluar dari kurva, dinyatakan dalam persentase
- Panjang Kurva (L): Jarak horizontal di mana kurva vertikal membentang, biasanya diukur dalam meter atau kaki
- PVI (Titik Interseksi Vertikal): Titik teoritis di mana dua gradien tangen akan berpotongan jika tidak ada kurva
- PVC (Titik Kurva Vertikal): Titik awal dari kurva vertikal
- PVT (Titik Tangen Vertikal): Titik akhir dari kurva vertikal
- Nilai K: Jarak horizontal yang diperlukan untuk mencapai perubahan 1% dalam gradien, ukuran datarnya kurva
Rumus Matematis
Persamaan Dasar Kurva Vertikal
Elevasi pada titik mana pun di sepanjang kurva vertikal dapat dihitung menggunakan persamaan kuadrat:
Di mana:
- = Elevasi pada jarak dari PVC
- = Elevasi di PVC
- = Gradien awal (bentuk desimal)
- = Jarak dari PVC
- = Perbedaan aljabar dalam gradien ()
- = Panjang kurva vertikal
Perhitungan Nilai K
Nilai K adalah ukuran datarnya kurva dan dihitung sebagai:
Di mana:
- = Laju kelengkungan vertikal
- = Panjang kurva vertikal
- = Gradien awal (persentase)
- = Gradien akhir (persentase)
Nilai K yang lebih tinggi menunjukkan kurva yang lebih datar. Standar desain sering kali menentukan nilai K minimum berdasarkan kecepatan desain dan jenis kurva.
Perhitungan Titik Tinggi/Rendah
Untuk kurva puncak di mana dan , atau kurva sag di mana dan , akan ada titik tinggi atau rendah di dalam kurva. Stasiun titik ini dapat dihitung sebagai:
Elevasi di titik tinggi/rendah ini kemudian dihitung menggunakan persamaan kurva vertikal dasar.
Perhitungan PVC dan PVT
Diberikan stasiun dan elevasi PVI, PVC dan PVT dapat dihitung sebagai:
Catatan: Pembagian dengan 200 dalam rumus elevasi memperhitungkan konversi gradien dari persentase ke bentuk desimal dan setengah panjang kurva.
Kasus Khusus
-
Gradien Sama (gā = gā): Ketika gradien awal dan akhir sama, tidak ada kurva vertikal yang dibutuhkan. Nilai K menjadi tak terhingga, dan "kurva" sebenarnya adalah garis lurus.
-
Perbedaan Gradien Sangat Kecil: Ketika perbedaan antara gradien sangat kecil, nilai K menjadi sangat besar. Ini mungkin memerlukan penyesuaian pada panjang kurva untuk implementasi praktis.
-
Kurva Panjang Nol: Kurva vertikal dengan panjang nol tidak valid secara matematis dan harus dihindari dalam desain.
Cara Menggunakan Kalkulator Kurva Vertikal
Kalkulator kurva vertikal kami menyederhanakan perhitungan kompleks ini, memungkinkan Anda untuk dengan cepat menentukan semua parameter kunci untuk desain kurva vertikal Anda. Berikut adalah cara menggunakannya:
Langkah 1: Masukkan Parameter Dasar Kurva
- Masukkan Gradien Awal (gā) dalam bentuk persentase (misalnya, 2 untuk kemiringan naik 2%, -3 untuk kemiringan turun 3%)
- Masukkan Gradien Akhir (gā) dalam bentuk persentase
- Masukkan Panjang Kurva dalam meter
- Tentukan Stasiun PVI (nilai stasiun di titik interseksi vertikal)
- Masukkan Elevasi PVI dalam meter
Langkah 2: Tinjau Hasil
Setelah memasukkan parameter yang diperlukan, kalkulator secara otomatis akan menghitung dan menampilkan:
- Tipe Kurva: Apakah kurva adalah puncak, sag, atau tidak ada
- Nilai K: Laju kelengkungan vertikal
- Stasiun dan Elevasi PVC: Titik awal kurva
- Stasiun dan Elevasi PVT: Titik akhir kurva
- Titik Tinggi/Rendah: Jika berlaku, stasiun dan elevasi titik tertinggi atau terendah pada kurva
Langkah 3: Kuery Stasiun Spesifik
Anda juga dapat menanyakan elevasi di stasiun spesifik mana pun di sepanjang kurva:
- Masukkan nilai Stasiun Kuery
- Kalkulator akan menampilkan elevasi yang sesuai di stasiun tersebut
- Jika stasiun berada di luar batas kurva, kalkulator akan menunjukkan hal ini
Langkah 4: Visualisasikan Kurva
Kalkulator menyediakan representasi visual dari kurva vertikal, menunjukkan:
- Profil kurva
- Titik kunci (PVC, PVI, PVT)
- Titik tinggi atau rendah (jika berlaku)
- Gradien tangen
Visualisasi ini membantu Anda memahami bentuk kurva dan memverifikasi bahwa itu memenuhi persyaratan desain Anda.
Kasus Penggunaan dan Aplikasi
Perhitungan kurva vertikal sangat penting dalam berbagai aplikasi rekayasa sipil:
Desain Jalan Raya dan Jalan
Kurva vertikal adalah komponen dasar dari desain jalan, memastikan kondisi berkendara yang aman dan nyaman. Mereka digunakan untuk:
- Menciptakan transisi yang mulus antara berbagai kemiringan jalan
- Memastikan jarak pandang yang memadai untuk pengemudi
- Menyediakan drainase yang tepat untuk mencegah akumulasi air
- Memenuhi standar dan spesifikasi desain untuk berbagai klasifikasi jalan
Sebagai contoh, ketika merancang jalan raya yang perlu melintasi medan berbukit, insinyur harus dengan hati-hati menghitung kurva vertikal untuk memastikan bahwa pengemudi memiliki jarak pandang yang cukup untuk berhenti dengan aman jika ada rintangan di jalan.
Desain Rel Kereta Api
Dalam rekayasa rel kereta, kurva vertikal sangat penting untuk:
- Memastikan operasi kereta yang mulus
- Meminimalkan keausan pada rel dan komponen kereta
- Mempertahankan kenyamanan penumpang
- Memungkinkan operasi yang tepat pada kecepatan desain
Kurva vertikal rel kereta sering memiliki nilai K yang lebih besar daripada jalan raya karena keterbatasan kemampuan kereta untuk menavigasi perubahan gradien yang curam.
Desain Landasan Bandara
Kurva vertikal digunakan dalam desain landasan bandara untuk:
- Memastikan drainase yang tepat dari permukaan landasan
- Memberikan jarak pandang yang memadai untuk pilot
- Memenuhi persyaratan FAA atau otoritas penerbangan internasional
- Memfasilitasi lepas landas dan pendaratan yang mulus
Pengembangan Tanah dan Penggilingan Situs
Saat mengembangkan tanah untuk proyek konstruksi, kurva vertikal membantu:
- Menciptakan bentuk tanah yang estetis
- Memastikan pengelolaan air hujan yang tepat
- Meminimalkan kuantitas pekerjaan tanah
- Menyediakan rute yang dapat diakses yang mematuhi persyaratan ADA
Sistem Manajemen Air Hujan
Kurva vertikal sangat penting dalam merancang:
- Saluran drainase
- Saluran air
- Fasilitas penahanan air hujan
- Sistem pembuangan
Desain kurva vertikal yang tepat memastikan bahwa air mengalir pada kecepatan yang sesuai dan mencegah sedimentasi atau erosi.
Alternatif untuk Kurva Vertikal Parabola
Meskipun kurva vertikal parabola adalah standar dalam sebagian besar aplikasi rekayasa sipil, ada alternatif:
-
Kurva Vertikal Lingkaran: Digunakan dalam beberapa desain lama dan dalam standar internasional tertentu. Mereka memberikan laju perubahan gradien yang bervariasi, yang dapat kurang nyaman bagi pengemudi.
-
Kurva Clothoid atau Spiral: Kadang-kadang digunakan dalam aplikasi khusus di mana laju perubahan yang meningkat secara bertahap diinginkan.
-
Parabola Kubik: Kadang-kadang digunakan untuk situasi khusus di mana sifat kurva yang lebih kompleks diperlukan.
-
Pendekatan Garis Lurus: Dalam desain yang sangat awal atau untuk medan yang sangat datar, sambungan garis lurus sederhana dapat digunakan sebagai pengganti kurva vertikal yang sebenarnya.
Kurva vertikal parabola tetap menjadi standar untuk sebagian besar aplikasi karena kesederhanaannya, laju perubahan yang konsisten, dan prosedur desain yang telah mapan.
Sejarah Desain Kurva Vertikal
Perkembangan metodologi desain kurva vertikal telah berkembang seiring dengan rekayasa transportasi:
Desain Jalan Awal (Sebelum 1900)
Dalam konstruksi jalan awal, penyelarasan vertikal sering kali ditentukan oleh medan alami dengan sedikit penggilingan. Ketika kendaraan menjadi lebih cepat dan lebih umum, kebutuhan untuk pendekatan yang lebih ilmiah terhadap desain jalan menjadi jelas.
Pengembangan Kurva Parabola (Awal 1900)
Kurva vertikal parabola menjadi standar pada awal abad ke-20 ketika insinyur menyadari keuntungannya:
- Laju perubahan yang konstan dalam gradien
- Sifat matematis yang relatif sederhana
- Keseimbangan yang baik antara kenyamanan dan kemampuan konstruksi
Standardisasi (Pertengahan 1900)
Pada pertengahan abad ke-20, lembaga transportasi mulai mengembangkan pendekatan standar untuk desain kurva vertikal:
- AASHTO (American Association of State Highway and Transportation Officials) menetapkan pedoman untuk nilai K minimum berdasarkan kecepatan desain
- Standar serupa dikembangkan secara internasional
- Jarak pandang menjadi faktor utama dalam menentukan panjang kurva
Pendekatan Komputasi Modern (Akhir 1900 hingga Sekarang)
Dengan munculnya komputer, desain kurva vertikal menjadi lebih canggih:
- Perangkat lunak desain berbantuan komputer (CAD) mengotomatiskan perhitungan
- Pemodelan 3D memungkinkan visualisasi yang lebih baik dan integrasi dengan penyelarasan horizontal
- Algoritma optimisasi membantu menemukan penyelarasan vertikal yang paling efisien
Saat ini, desain kurva vertikal terus berkembang dengan penelitian baru tentang perilaku pengemudi, dinamika kendaraan, dan pertimbangan lingkungan.
Pertanyaan yang Sering Diajukan
Apa itu nilai K dalam desain kurva vertikal?
Nilai K mewakili jarak horizontal yang diperlukan untuk mencapai perubahan 1% dalam gradien. Ini dihitung dengan membagi panjang kurva vertikal dengan perbedaan absolut antara gradien awal dan akhir. Nilai K yang lebih tinggi menunjukkan kurva yang lebih datar. Nilai K sering kali ditentukan dalam standar desain berdasarkan kecepatan desain dan apakah kurva adalah puncak atau sag.
Bagaimana saya menentukan apakah saya memerlukan kurva vertikal puncak atau sag?
Tipe kurva vertikal tergantung pada hubungan antara gradien awal dan akhir:
- Jika gradien awal lebih besar dari gradien akhir (gā > gā), Anda memerlukan kurva puncak
- Jika gradien awal kurang dari gradien akhir (gā < gā), Anda memerlukan kurva sag
- Jika gradien awal dan akhir sama (gā = gā), tidak ada kurva vertikal yang dibutuhkan
Nilai K minimum berapa yang harus saya gunakan untuk desain saya?
Nilai K minimum tergantung pada kecepatan desain, jenis kurva, dan standar desain yang berlaku. Misalnya, AASHTO menyediakan tabel nilai K minimum berdasarkan jarak pandang berhenti untuk kurva puncak dan jarak pandang lampu depan untuk kurva sag. Kecepatan desain yang lebih tinggi memerlukan nilai K yang lebih besar untuk memastikan keselamatan.
Bagaimana saya menghitung titik tinggi atau rendah dari kurva vertikal?
Titik tinggi (untuk kurva puncak) atau titik rendah (untuk kurva sag) terjadi di mana gradien sepanjang kurva sama dengan nol. Ini dapat dihitung menggunakan rumus:
Titik tinggi/rendah hanya ada di dalam kurva jika stasiun ini jatuh di antara PVC dan PVT.
Apa yang terjadi jika gradien awal dan akhir sama?
Jika gradien awal dan akhir sama, tidak ada kurva yang dibutuhkan. Hasilnya hanyalah garis lurus dengan gradien konstan. Dalam hal ini, nilai K akan menjadi tak terhingga.
Bagaimana panjang kurva vertikal mempengaruhi kenyamanan pengemudi?
Kurva vertikal yang lebih panjang memberikan transisi yang lebih bertahap antara gradien, menghasilkan kenyamanan pengemudi yang lebih besar. Kurva vertikal yang pendek dapat menciptakan perubahan mendadak dalam percepatan vertikal, yang mungkin tidak nyaman bagi pengemudi dan penumpang. Panjang kurva yang tepat tergantung pada kecepatan desain, perbedaan gradien, dan batasan lokasi.
Dapatkah kurva vertikal memiliki panjang nol?
Secara matematis, kurva vertikal tidak dapat memiliki panjang nol karena ini akan menciptakan perubahan gradien yang instan, yang bukan merupakan kurva. Dalam praktiknya, kurva vertikal yang sangat pendek mungkin digunakan di lingkungan kecepatan rendah, tetapi mereka harus tetap memiliki panjang yang cukup untuk memberikan transisi yang mulus.
Bagaimana kurva vertikal mempengaruhi drainase?
Kurva vertikal mempengaruhi arah dan kecepatan aliran air di jalan. Kurva puncak biasanya memfasilitasi drainase dengan mengarahkan air menjauh dari titik tinggi. Kurva sag dapat menciptakan potensi masalah drainase di titik rendah, sering kali memerlukan struktur drainase tambahan seperti inlet atau saluran.
Apa perbedaan antara PVI, PVC, dan PVT?
- PVI (Titik Interseksi Vertikal): Titik teoritis di mana garis gradien awal dan akhir yang diperpanjang akan berpotongan
- PVC (Titik Kurva Vertikal): Titik awal dari kurva vertikal
- PVT (Titik Tangen Vertikal): Titik akhir dari kurva vertikal
Dalam kurva vertikal simetris standar, PVC terletak setengah panjang kurva sebelum PVI, dan PVT terletak setengah panjang kurva setelah PVI.
Seberapa akurat perhitungan kurva vertikal?
Perhitungan kurva vertikal modern dapat sangat akurat jika dilakukan dengan benar. Namun, toleransi konstruksi, kondisi lapangan, dan pembulatan dalam perhitungan dapat memperkenalkan variasi kecil. Untuk sebagian besar tujuan praktis, perhitungan hingga sentimeter terdekat atau seratusan kaki sudah cukup untuk elevasi.
Contoh Kode
Berikut adalah contoh cara menghitung parameter kurva vertikal dalam berbagai bahasa pemrograman:
1' Fungsi Excel VBA untuk menghitung elevasi di titik mana pun pada kurva vertikal
2Function VerticalCurveElevation(initialGrade, finalGrade, curveLength, pvcStation, pvcElevation, queryStation)
3 ' Konversi gradien dari persentase ke desimal
4 Dim g1 As Double
5 Dim g2 As Double
6 g1 = initialGrade / 100
7 g2 = finalGrade / 100
8
9 ' Hitung perbedaan aljabar dalam gradien
10 Dim A As Double
11 A = g2 - g1
12
13 ' Hitung jarak dari PVC
14 Dim x As Double
15 x = queryStation - pvcStation
16
17 ' Periksa apakah stasiun berada dalam batas kurva
18 If x < 0 Or x > curveLength Then
19 VerticalCurveElevation = "Di luar batas kurva"
20 Exit Function
21 End If
22
23 ' Hitung elevasi menggunakan persamaan kurva vertikal
24 Dim elevation As Double
25 elevation = pvcElevation + g1 * x + (A * x * x) / (2 * curveLength)
26
27 VerticalCurveElevation = elevation
28End Function
29
30' Fungsi untuk menghitung nilai K
31Function KValue(curveLength, initialGrade, finalGrade)
32 KValue = curveLength / Abs(finalGrade - initialGrade)
33End Function
34
1import math
2
3def calculate_k_value(curve_length, initial_grade, final_grade):
4 """Menghitung nilai K dari kurva vertikal."""
5 grade_change = abs(final_grade - initial_grade)
6 if grade_change < 0.0001: # Hindari pembagian dengan nol
7 return float('inf')
8 return curve_length / grade_change
9
10def calculate_curve_type(initial_grade, final_grade):
11 """Menentukan apakah kurva adalah puncak, sag, atau tidak ada."""
12 if initial_grade > final_grade:
13 return "puncak"
14 elif initial_grade < final_grade:
15 return "sag"
16 else:
17 return "tidak ada"
18
19def calculate_elevation_at_station(station, initial_grade, final_grade,
20 pvi_station, pvi_elevation, curve_length):
21 """Menghitung elevasi di stasiun mana pun di sepanjang kurva vertikal."""
22 # Hitung stasiun PVC dan PVT
23 pvc_station = pvi_station - curve_length / 2
24 pvt_station = pvi_station + curve_length / 2
25
26 # Periksa apakah stasiun berada dalam batas kurva
27 if station < pvc_station or station > pvt_station:
28 return None # Di luar batas kurva
29
30 # Hitung elevasi PVC
31 g1 = initial_grade / 100 # Konversi ke desimal
32 g2 = final_grade / 100 # Konversi ke desimal
33 pvc_elevation = pvi_elevation - (g1 * curve_length / 2)
34
35 # Hitung jarak dari PVC
36 x = station - pvc_station
37
38 # Hitung perbedaan aljabar dalam gradien
39 A = g2 - g1
40
41 # Hitung elevasi menggunakan persamaan kurva vertikal
42 elevation = pvc_elevation + g1 * x + (A * x * x) / (2 * curve_length)
43
44 return elevation
45
46def calculate_high_low_point(initial_grade, final_grade, pvi_station,
47 pvi_elevation, curve_length):
48 """Menghitung titik tinggi atau rendah dari kurva vertikal jika ada."""
49 g1 = initial_grade / 100
50 g2 = final_grade / 100
51
52 # Titik tinggi/rendah hanya ada jika gradien memiliki tanda yang berlawanan
53 if g1 * g2 >= 0 and g1 != 0:
54 return None
55
56 # Hitung jarak dari PVC ke titik tinggi/rendah
57 pvc_station = pvi_station - curve_length / 2
58 x = -g1 * curve_length / (g2 - g1)
59
60 # Periksa apakah titik tinggi/rendah berada dalam batas kurva
61 if x < 0 or x > curve_length:
62 return None
63
64 # Hitung stasiun titik tinggi/rendah
65 hl_station = pvc_station + x
66
67 # Hitung elevasi PVC
68 pvc_elevation = pvi_elevation - (g1 * curve_length / 2)
69
70 # Hitung elevasi di titik tinggi/rendah
71 A = g2 - g1
72 hl_elevation = pvc_elevation + g1 * x + (A * x * x) / (2 * curve_length)
73
74 return {"station": hl_station, "elevation": hl_elevation}
75
1/**
2 * Menghitung nilai K untuk kurva vertikal
3 * @param {number} curveLength - Panjang kurva vertikal dalam meter
4 * @param {number} initialGrade - Gradien awal dalam persentase
5 * @param {number} finalGrade - Gradien akhir dalam persentase
6 * @returns {number} Nilai K
7 */
8function calculateKValue(curveLength, initialGrade, finalGrade) {
9 const gradeChange = Math.abs(finalGrade - initialGrade);
10 if (gradeChange < 0.0001) {
11 return Infinity; // Untuk gradien yang sama
12 }
13 return curveLength / gradeChange;
14}
15
16/**
17 * Menentukan jenis kurva vertikal
18 * @param {number} initialGrade - Gradien awal dalam persentase
19 * @param {number} finalGrade - Gradien akhir dalam persentase
20 * @returns {string} Jenis kurva: "puncak", "sag", atau "tidak ada"
21 */
22function determineCurveType(initialGrade, finalGrade) {
23 if (initialGrade > finalGrade) {
24 return "puncak";
25 } else if (initialGrade < finalGrade) {
26 return "sag";
27 } else {
28 return "tidak ada";
29 }
30}
31
32/**
33 * Menghitung elevasi di stasiun mana pun di sepanjang kurva vertikal
34 * @param {number} station - Stasiun kuery
35 * @param {number} initialGrade - Gradien awal dalam persentase
36 * @param {number} finalGrade - Gradien akhir dalam persentase
37 * @param {number} pviStation - Stasiun PVI
38 * @param {number} pviElevation - Elevasi PVI dalam meter
39 * @param {number} curveLength - Panjang kurva vertikal dalam meter
40 * @returns {number|null} Elevasi di stasiun atau null jika di luar batas kurva
41 */
42function calculateElevationAtStation(
43 station,
44 initialGrade,
45 finalGrade,
46 pviStation,
47 pviElevation,
48 curveLength
49) {
50 // Hitung stasiun PVC dan PVT
51 const pvcStation = pviStation - curveLength / 2;
52 const pvtStation = pviStation + curveLength / 2;
53
54 // Periksa apakah stasiun berada dalam batas kurva
55 if (station < pvcStation || station > pvtStation) {
56 return null; // Di luar batas kurva
57 }
58
59 // Konversi gradien ke desimal
60 const g1 = initialGrade / 100;
61 const g2 = finalGrade / 100;
62
63 // Hitung elevasi PVC
64 const pvcElevation = pviElevation - (g1 * curveLength / 2);
65
66 // Hitung jarak dari PVC
67 const x = station - pvcStation;
68
69 // Hitung perbedaan aljabar dalam gradien
70 const A = g2 - g1;
71
72 // Hitung elevasi menggunakan persamaan kurva vertikal
73 const elevation = pvcElevation + g1 * x + (A * x * x) / (2 * curveLength);
74
75 return elevation;
76}
77
1public class VerticalCurveCalculator {
2 /**
3 * Menghitung nilai K untuk kurva vertikal
4 * @param curveLength Panjang kurva vertikal dalam meter
5 * @param initialGrade Gradien awal dalam persentase
6 * @param finalGrade Gradien akhir dalam persentase
7 * @return Nilai K
8 */
9 public static double calculateKValue(double curveLength, double initialGrade, double finalGrade) {
10 double gradeChange = Math.abs(finalGrade - initialGrade);
11 if (gradeChange < 0.0001) {
12 return Double.POSITIVE_INFINITY; // Untuk gradien yang sama
13 }
14 return curveLength / gradeChange;
15 }
16
17 /**
18 * Menentukan jenis kurva vertikal
19 * @param initialGrade Gradien awal dalam persentase
20 * @param finalGrade Gradien akhir dalam persentase
21 * @return Jenis kurva: "puncak", "sag", atau "tidak ada"
22 */
23 public static String determineCurveType(double initialGrade, double finalGrade) {
24 if (initialGrade > finalGrade) {
25 return "puncak";
26 } else if (initialGrade < finalGrade) {
27 return "sag";
28 } else {
29 return "tidak ada";
30 }
31 }
32
33 /**
34 * Menghitung stasiun dan elevasi PVC
35 * @param pviStation Stasiun PVI
36 * @param pviElevation Elevasi PVI dalam meter
37 * @param initialGrade Gradien awal dalam persentase
38 * @param curveLength Panjang kurva vertikal dalam meter
39 * @return Objek yang berisi stasiun dan elevasi PVC
40 */
41 public static Point calculatePVC(double pviStation, double pviElevation,
42 double initialGrade, double curveLength) {
43 double station = pviStation - curveLength / 2;
44 double elevation = pviElevation - (initialGrade / 100) * (curveLength / 2);
45 return new Point(station, elevation);
46 }
47
48 /**
49 * Menghitung stasiun dan elevasi PVT
50 * @param pviStation Stasiun PVI
51 * @param pviElevation Elevasi PVI dalam meter
52 * @param finalGrade Gradien akhir dalam persentase
53 * @param curveLength Panjang kurva vertikal dalam meter
54 * @return Objek yang berisi stasiun dan elevasi PVT
55 */
56 public static Point calculatePVT(double pviStation, double pviElevation,
57 double finalGrade, double curveLength) {
58 double station = pviStation + curveLength / 2;
59 double elevation = pviElevation + (finalGrade / 100) * (curveLength / 2);
60 return new Point(station, elevation);
61 }
62
63 /**
64 * Kelas dalam untuk merepresentasikan titik dengan stasiun dan elevasi
65 */
66 public static class Point {
67 public final double station;
68 public final double elevation;
69
70 public Point(double station, double elevation) {
71 this.station = station;
72 this.elevation = elevation;
73 }
74 }
75}
76
Contoh Praktis
Contoh 1: Desain Kurva Puncak Jalan Raya
Desain jalan raya memerlukan kurva vertikal untuk transisi dari gradien +3% ke -2%. PVI berada di stasiun 1000+00 dengan elevasi 150,00 meter. Kecepatan desain adalah 100 km/jam, yang memerlukan nilai K minimum 80 menurut standar desain.
Langkah 1: Hitung panjang kurva minimum
Alat Terkait
Temukan lebih banyak alat yang mungkin berguna untuk alur kerja Anda