Pengira Lengkung Menegak untuk Projek Kejuruteraan Awam
Kira parameter lengkung menegak untuk reka bentuk jalan raya dan kereta api. Cari ketinggian, nilai K, titik tinggi/rendah, dan banyak lagi untuk lengkung puncak dan lengkung sag dalam projek pengangkutan.
Pengira Lengkung Menegak
Parameter Input
Curve Parameters
PVI Information
Keputusan
Ciri-Ciri Lengkung
Titik Utama
Pertanyaan Stesen
Visualisasi
Dokumentasi
Kalkulator Lengkung Menegak untuk Kejuruteraan Awam
Pengenalan
Kalkulator lengkung menegak adalah alat penting dalam kejuruteraan awam yang membantu jurutera merancang peralihan yang lancar antara pelbagai darjah jalan. Lengkung menegak adalah lengkung parabolik yang digunakan dalam reka bentuk jalan dan kereta api untuk mencipta perubahan secara beransur-ansur antara dua cerun atau gradien yang berbeza, memastikan keadaan memandu yang selesa dan saliran yang betul. Kalkulator ini memudahkan pengiraan matematik yang kompleks yang diperlukan untuk merancang lengkung menegak, membolehkan jurutera awam, pereka jalan, dan profesional pembinaan dengan cepat menentukan parameter utama seperti ketinggian lengkung, titik tinggi dan rendah, dan nilai K.
Sama ada anda merancang lebuh raya, jalan tempatan, atau kereta api, lengkung menegak adalah kritikal untuk keselamatan, keselesaan pemandu, dan pengurusan air hujan yang betul. Kalkulator komprehensif ini mengendalikan kedua-dua lengkung puncak (di mana jalan naik kemudian turun) dan lengkung sag (di mana jalan turun kemudian naik), memberikan semua maklumat penting yang diperlukan untuk reka bentuk penjajaran menegak yang betul dalam projek kejuruteraan pengangkutan.
Asas Lengkung Menegak
Apakah itu Lengkung Menegak?
Lengkung menegak adalah lengkung parabolik yang digunakan dalam penjajaran menegak jalan, lebuh raya, kereta api, dan infrastruktur pengangkutan lain. Ia memberikan peralihan yang lancar antara dua darjah atau cerun yang berbeza, menghapuskan perubahan mendadak yang akan berlaku jika cerun bertemu pada satu titik. Peralihan yang lancar ini adalah penting untuk:
- Keselesaan dan keselamatan pemandu
- Jarak penglihatan yang betul untuk pemandu
- Kecekapan operasi kenderaan
- Saliran yang berkesan
- Penampilan estetik jalan raya
Lengkung menegak biasanya berbentuk parabolik kerana parabola memberikan kadar perubahan yang tetap dalam darjah, menghasilkan peralihan yang lancar yang meminimumkan daya yang dialami oleh kenderaan dan penumpang.
Jenis-Jenis Lengkung Menegak
Terdapat dua jenis utama lengkung menegak yang digunakan dalam kejuruteraan awam:
-
Lengkung Puncak: Ini berlaku apabila darjah awal lebih besar daripada darjah akhir (contohnya, pergi dari +3% ke -2%). Lengkung ini membentuk bukit atau titik tinggi. Lengkung puncak terutamanya direka berdasarkan keperluan jarak penglihatan berhenti.
-
Lengkung Sag: Ini berlaku apabila darjah awal kurang daripada darjah akhir (contohnya, pergi dari -2% ke +3%). Lengkung ini membentuk lembah atau titik rendah. Lengkung sag biasanya direka berdasarkan jarak penglihatan lampu depan dan pertimbangan saliran.
Parameter Utama Lengkung Menegak
Untuk sepenuhnya mendefinisikan lengkung menegak, beberapa parameter utama mesti ditetapkan:
- Darjah Awal (gā): Cerun jalan sebelum memasuki lengkung, dinyatakan dalam bentuk peratus
- Darjah Akhir (gā): Cerun jalan selepas keluar dari lengkung, dinyatakan dalam bentuk peratus
- Panjang Lengkung (L): Jarak mendatar di mana lengkung menegak memanjang, biasanya diukur dalam meter atau kaki
- PVI (Titik Pertemuan Menegak): Titik teoritis di mana dua darjah tangen akan bertemu jika tiada lengkung
- PVC (Titik Lengkung Menegak): Titik permulaan lengkung menegak
- PVT (Titik Tangen Menegak): Titik akhir lengkung menegak
- Nilai K: Jarak mendatar yang diperlukan untuk mencapai perubahan 1% dalam darjah, ukuran rata lengkung
Formula Matematik
Persamaan Lengkung Menegak Asas
Ketinggian pada mana-mana titik sepanjang lengkung menegak boleh dikira menggunakan persamaan kuadratik:
Di mana:
- = Ketinggian pada jarak dari PVC
- = Ketinggian pada PVC
- = Darjah awal (bentuk perpuluhan)
- = Jarak dari PVC
- = Perbezaan algebraik dalam darjah ()
- = Panjang lengkung menegak
Pengiraan Nilai K
Nilai K adalah ukuran rata lengkung dan dikira sebagai:
Di mana:
- = Kadar lengkung menegak
- = Panjang lengkung menegak
- = Darjah awal (peratus)
- = Darjah akhir (peratus)
Nilai K yang lebih tinggi menunjukkan lengkung yang lebih rata. Piawaian reka bentuk sering menetapkan nilai K minimum berdasarkan kelajuan reka bentuk dan jenis lengkung.
Pengiraan Titik Tinggi/Rendah
Untuk lengkung puncak di mana dan , atau lengkung sag di mana dan , akan terdapat titik tinggi atau rendah dalam lengkung. Stesen titik ini boleh dikira sebagai:
Ketinggian pada titik tinggi/rendah ini kemudian dikira menggunakan persamaan lengkung menegak asas.
Pengiraan PVC dan PVT
Memandangkan stesen dan ketinggian PVI, PVC dan PVT boleh dikira sebagai:
Nota: Pembahagian dengan 200 dalam formula ketinggian mengambil kira penukaran darjah dari peratus kepada bentuk perpuluhan dan panjang separuh lengkung.
Kes-Kes Tepi
-
Darjah Sama (gā = gā): Apabila darjah awal dan akhir adalah sama, tiada lengkung menegak diperlukan. Nilai K menjadi infiniti, dan "lengkung" sebenarnya adalah garis lurus.
-
Perbezaan Darjah yang Sangat Kecil: Apabila perbezaan antara darjah sangat kecil, nilai K menjadi sangat besar. Ini mungkin memerlukan pelarasan pada panjang lengkung untuk pelaksanaan praktikal.
-
Lengkung Tanpa Panjang: Lengkung menegak dengan panjang sifar tidak sah secara matematik dan harus dielakkan dalam reka bentuk.
Cara Menggunakan Kalkulator Lengkung Menegak
Kalkulator lengkung menegak kami memudahkan pengiraan kompleks ini, membolehkan anda dengan cepat menentukan semua parameter utama untuk reka bentuk lengkung menegak anda. Berikut adalah cara untuk menggunakannya:
Langkah 1: Masukkan Parameter Asas Lengkung
- Masukkan Darjah Awal (gā) dalam bentuk peratus (contohnya, 2 untuk cerun menaik 2%, -3 untuk cerun menurun 3%)
- Masukkan Darjah Akhir (gā) dalam bentuk peratus
- Masukkan Panjang Lengkung dalam meter
- Nyatakan Stesen PVI (nilai stesen di titik pertemuan menegak)
- Masukkan Ketinggian PVI dalam meter
Langkah 2: Semak Hasil
Selepas memasukkan parameter yang diperlukan, kalkulator akan secara automatik mengira dan memaparkan:
- Jenis Lengkung: Sama ada lengkung itu puncak, sag, atau tidak
- Nilai K: Kadar lengkung menegak
- Stesen dan Ketinggian PVC: Titik permulaan lengkung
- Stesen dan Ketinggian PVT: Titik akhir lengkung
- Titik Tinggi/Rendah: Jika berkenaan, stesen dan ketinggian titik tertinggi atau terendah pada lengkung
Langkah 3: Tanya Stesen Khusus
Anda juga boleh menyoal ketinggian pada mana-mana stesen tertentu sepanjang lengkung:
- Masukkan nilai Stesen Tanya
- Kalkulator akan memaparkan ketinggian yang sepadan pada stesen tersebut
- Jika stesen berada di luar had lengkung, kalkulator akan menunjukkan ini
Langkah 4: Visualisasikan Lengkung
Kalkulator menyediakan representasi visual lengkung menegak, menunjukkan:
- Profil lengkung
- Titik kunci (PVC, PVI, PVT)
- Titik tinggi atau rendah (jika berkenaan)
- Darjah tangen
Visualisasi ini membantu anda memahami bentuk lengkung dan mengesahkan bahawa ia memenuhi keperluan reka bentuk anda.
Kes Penggunaan dan Aplikasi
Pengiraan lengkung menegak adalah penting dalam pelbagai aplikasi kejuruteraan awam:
Reka Bentuk Lebuh Raya dan Jalan
Lengkung menegak adalah komponen asas reka bentuk jalan, memastikan keadaan memandu yang selamat dan selesa. Ia digunakan untuk:
- Mencipta peralihan yang lancar antara pelbagai darjah jalan
- Memastikan jarak penglihatan yang mencukupi untuk pemandu
- Menyediakan saliran yang betul untuk mengelakkan pengumpulan air
- Memenuhi piawaian dan spesifikasi reka bentuk untuk pelbagai klasifikasi jalan
Sebagai contoh, semasa merancang lebuh raya yang perlu melintasi kawasan berbukit, jurutera mesti mengira lengkung menegak dengan teliti untuk memastikan pemandu mempunyai jarak penglihatan yang mencukupi untuk berhenti dengan selamat jika terdapat halangan di jalan.
Reka Bentuk Kereta Api
Dalam kejuruteraan kereta api, lengkung menegak adalah kritikal untuk:
- Memastikan operasi kereta api yang lancar
- Meminimumkan haus pada rel dan komponen kereta api
- Menjaga keselesaan penumpang
- Membolehkan operasi yang betul pada kelajuan reka bentuk
Lengkung menegak kereta api sering mempunyai nilai K yang lebih besar daripada jalan raya kerana keupayaan terhad kereta api untuk mengharungi perubahan cerun yang curam.
Reka Bentuk Landasan Lapangan Terbang
Lengkung menegak digunakan dalam reka bentuk landasan lapangan terbang untuk:
- Memastikan saliran yang betul pada permukaan landasan
- Menyediakan jarak penglihatan yang mencukupi untuk juruterbang
- Memenuhi keperluan FAA atau pihak berkuasa penerbangan antarabangsa
- Memudahkan lepas landas dan mendarat yang lancar
Pembangunan Tanah dan Penggredan Tapak
Apabila membangunkan tanah untuk projek pembinaan, lengkung menegak membantu:
- Mencipta bentuk tanah yang menarik secara estetik
- Memastikan pengurusan air hujan yang betul
- Meminimumkan kuantiti kerja tanah
- Menyediakan laluan yang boleh diakses yang mematuhi keperluan ADA
Sistem Pengurusan Air Hujan
Lengkung menegak adalah penting dalam merancang:
- Saluran saliran
- Saluran air
- Kemudahan penahanan air hujan
- Sistem pembetungan
Reka bentuk lengkung menegak yang betul memastikan bahawa air mengalir pada kelajuan yang sesuai dan mengelakkan pengendapan atau hakisan.
Alternatif kepada Lengkung Menegak Parabolik
Walaupun lengkung menegak parabolik adalah standard dalam kebanyakan aplikasi kejuruteraan awam, terdapat alternatif:
-
Lengkung Bulat: Digunakan dalam beberapa reka bentuk lama dan dalam piawaian antarabangsa tertentu. Ia memberikan kadar perubahan darjah yang berbeza, yang mungkin kurang selesa untuk pemandu.
-
Lengkung Clothoid atau Spiral: Kadang-kadang digunakan dalam aplikasi khusus di mana kadar perubahan yang semakin meningkat diinginkan.
-
Parabola Kubik: Kadang-kadang digunakan untuk situasi khas di mana sifat lengkung yang lebih kompleks diperlukan.
-
Angka Lurus: Dalam reka bentuk awal yang sangat awal atau untuk kawasan yang sangat rata, sambungan garis lurus yang mudah mungkin digunakan sebagai ganti lengkung menegak yang sebenar.
Lengkung menegak parabolik kekal sebagai standard untuk kebanyakan aplikasi kerana kesederhanaannya, kadar perubahan yang konsisten, dan prosedur reka bentuk yang telah ditetapkan.
Sejarah Reka Bentuk Lengkung Menegak
Perkembangan metodologi reka bentuk lengkung menegak telah berkembang seiring dengan kejuruteraan pengangkutan:
Reka Bentuk Jalan Awal (Sebelum 1900)
Dalam pembinaan jalan awal, penjajaran menegak sering ditentukan oleh terrain semulajadi dengan penggredan yang minimum. Apabila kenderaan menjadi lebih pantas dan lebih biasa, keperluan untuk pendekatan yang lebih saintifik kepada reka bentuk jalan menjadi jelas.
Perkembangan Lengkung Parabolik (Awal 1900)
Lengkung menegak parabolik menjadi standard pada awal abad ke-20 apabila jurutera menyedari kelebihannya:
- Kadar perubahan yang tetap dalam darjah
- Ciri matematik yang agak mudah
- Keseimbangan yang baik antara keselesaan dan kebolehlaksanaan
Penyeragaman (Tengah 1900)
Menjelang pertengahan abad ke-20, agensi pengangkutan mula membangunkan pendekatan yang diseragamkan untuk reka bentuk lengkung menegak:
- AASHTO (Persatuan Kebangsaan untuk Jalan Raya dan Pengangkutan) menetapkan garis panduan untuk nilai K minimum berdasarkan kelajuan reka bentuk
- Piawaian serupa dibangunkan di peringkat antarabangsa
- Jarak penglihatan menjadi faktor utama dalam menentukan panjang lengkung
Pendekatan Komputasi Moden (Akhir 1900 hingga Kini)
Dengan kemunculan komputer, reka bentuk lengkung menegak menjadi lebih canggih:
- Perisian reka bentuk berasaskan komputer (CAD) mengautomasikan pengiraan
- Pemodelan 3D membolehkan visualisasi yang lebih baik dan integrasi dengan penjajaran mendatar
- Algoritma pengoptimuman membantu mencari penjajaran menegak yang paling berkesan
Hari ini, reka bentuk lengkung menegak terus berkembang dengan penyelidikan baru mengenai tingkah laku pemandu, dinamik kenderaan, dan pertimbangan alam sekitar.
Soalan Lazim
Apakah itu nilai K dalam reka bentuk lengkung menegak?
Nilai K mewakili jarak mendatar yang diperlukan untuk mencapai perubahan 1% dalam darjah. Ia dikira dengan membahagikan panjang lengkung menegak dengan perbezaan mutlak antara darjah awal dan akhir. Nilai K yang lebih tinggi menunjukkan lengkung yang lebih rata. Piawaian reka bentuk sering menetapkan nilai K minimum berdasarkan jarak penglihatan berhenti untuk lengkung puncak dan jarak penglihatan lampu depan untuk lengkung sag.
Bagaimana saya menentukan sama ada saya memerlukan lengkung puncak atau sag?
Jenis lengkung menegak bergantung pada hubungan antara darjah awal dan akhir:
- Jika darjah awal lebih besar daripada darjah akhir (gā > gā), anda memerlukan lengkung puncak
- Jika darjah awal kurang daripada darjah akhir (gā < gā), anda memerlukan lengkung sag
- Jika darjah awal dan akhir adalah sama (gā = gā), tiada lengkung menegak diperlukan
Apakah nilai K minimum yang harus saya gunakan untuk reka bentuk saya?
Nilai K minimum bergantung pada kelajuan reka bentuk, jenis lengkung, dan piawaian reka bentuk yang berkenaan. Sebagai contoh, AASHTO menyediakan jadual nilai K minimum berdasarkan jarak penglihatan berhenti untuk lengkung puncak dan jarak penglihatan lampu depan untuk lengkung sag. Kelajuan reka bentuk yang lebih tinggi memerlukan nilai K yang lebih besar untuk memastikan keselamatan.
Bagaimana saya mengira titik tinggi atau rendah lengkung menegak?
Titik tinggi (untuk lengkung puncak) atau titik rendah (untuk lengkung sag) berlaku di mana darjah sepanjang lengkung sama dengan sifar. Ini boleh dikira menggunakan formula:
Titik tinggi/rendah hanya wujud dalam lengkung jika stesen ini jatuh antara PVC dan PVT.
Apa yang berlaku jika darjah awal dan akhir adalah sama?
Jika darjah awal dan akhir adalah sama, tiada lengkung diperlukan. Hasilnya hanyalah garis lurus dengan darjah yang tetap. Dalam kes ini, nilai K akan menjadi teorinya infiniti.
Bagaimana lengkung menegak mempengaruhi keselesaan pemandu?
Lengkung menegak yang lebih panjang menyediakan peralihan yang lebih beransur-ansur antara darjah, menghasilkan keselesaan pemandu yang lebih besar. Lengkung menegak yang pendek boleh mencipta perubahan mendadak dalam pecutan menegak, yang mungkin tidak selesa bagi pemandu dan penumpang. Panjang lengkung yang sesuai bergantung pada kelajuan reka bentuk, perbezaan darjah, dan kekangan tapak.
Bolehkah lengkung menegak mempunyai panjang sifar?
Secara matematik, lengkung menegak tidak boleh mempunyai panjang sifar kerana ini akan mencipta perubahan mendadak dalam darjah, yang bukanlah lengkung. Dalam amalan, lengkung menegak yang sangat pendek mungkin digunakan dalam persekitaran kelajuan rendah, tetapi ia masih harus mempunyai panjang yang mencukupi untuk memberikan peralihan yang lancar.
Bagaimana lengkung menegak mempengaruhi saliran?
Lengkung menegak mempengaruhi arah dan kelajuan aliran air di jalan raya. Lengkung puncak biasanya memudahkan saliran dengan mengarahkan air menjauh dari titik tinggi. Lengkung sag boleh mencipta masalah saliran yang berpotensi di titik rendah, sering memerlukan struktur saliran tambahan seperti inlet atau saluran.
Apakah perbezaan antara PVI, PVC, dan PVT?
- PVI (Titik Pertemuan Menegak): Titik teoritis di mana garis darjah awal dan akhir yang diperluaskan akan bertemu
- PVC (Titik Lengkung Menegak): Titik permulaan lengkung menegak
- PVT (Titik Tangen Menegak): Titik akhir lengkung menegak
Dalam lengkung menegak simetri standard, PVC terletak separuh panjang lengkung sebelum PVI, dan PVT terletak separuh panjang lengkung selepas PVI.
Seberapa tepat pengiraan lengkung menegak?
Pengiraan lengkung menegak moden boleh menjadi sangat tepat apabila dilakukan dengan betul. Walau bagaimanapun, toleransi pembinaan, keadaan lapangan, dan pembundaran dalam pengiraan boleh memperkenalkan variasi kecil. Untuk kebanyakan tujuan praktikal, pengiraan hingga ke sentimeter terdekat atau seratusan kaki adalah mencukupi untuk ketinggian.
Contoh Kod
Berikut adalah contoh cara mengira parameter lengkung menegak dalam pelbagai bahasa pengaturcaraan:
1' Fungsi VBA Excel untuk mengira ketinggian pada mana-mana titik di lengkung menegak
2Function VerticalCurveElevation(initialGrade, finalGrade, curveLength, pvcStation, pvcElevation, queryStation)
3 ' Tukar darjah dari peratus kepada perpuluhan
4 Dim g1 As Double
5 Dim g2 As Double
6 g1 = initialGrade / 100
7 g2 = finalGrade / 100
8
9 ' Kira perbezaan algebraik dalam darjah
10 Dim A As Double
11 A = g2 - g1
12
13 ' Kira jarak dari PVC
14 Dim x As Double
15 x = queryStation - pvcStation
16
17 ' Semak jika stesen berada dalam had lengkung
18 If x < 0 Or x > curveLength Then
19 VerticalCurveElevation = "Di luar had lengkung"
20 Exit Function
21 End If
22
23 ' Kira ketinggian menggunakan persamaan lengkung menegak
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 mengira 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 """Kira nilai K untuk lengkung menegak."""
5 grade_change = abs(final_grade - initial_grade)
6 if grade_change < 0.0001: # Elakkan pembahagian dengan sifar
7 return float('inf')
8 return curve_length / grade_change
9
10def calculate_curve_type(initial_grade, final_grade):
11 """Tentukan sama ada lengkung itu puncak, sag, atau tidak."""
12 if initial_grade > final_grade:
13 return "puncak"
14 elif initial_grade < final_grade:
15 return "sag"
16 else:
17 return "tidak"
18
19def calculate_elevation_at_station(station, initial_grade, final_grade,
20 pvi_station, pvi_elevation, curve_length):
21 """Kira ketinggian pada mana-mana stesen sepanjang lengkung menegak."""
22 # Kira stesen PVC dan PVT
23 pvc_station = pvi_station - curve_length / 2
24 pvt_station = pvi_station + curve_length / 2
25
26 # Semak jika stesen berada dalam had lengkung
27 if station < pvc_station or station > pvt_station:
28 return None # Di luar had lengkung
29
30 # Kira ketinggian PVC
31 g1 = initial_grade / 100 # Tukar kepada perpuluhan
32 g2 = final_grade / 100 # Tukar kepada perpuluhan
33 pvc_elevation = pvi_elevation - (g1 * curve_length / 2)
34
35 # Kira jarak dari PVC
36 x = station - pvc_station
37
38 # Kira perbezaan algebraik dalam darjah
39 A = g2 - g1
40
41 # Kira ketinggian menggunakan persamaan lengkung menegak
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 """Kira titik tinggi atau rendah lengkung menegak jika ia wujud."""
49 g1 = initial_grade / 100
50 g2 = final_grade / 100
51
52 # Titik tinggi/rendah hanya wujud jika darjah mempunyai tanda bertentangan
53 if g1 * g2 >= 0 and g1 != 0:
54 return None
55
56 # Kira jarak dari PVC ke titik tinggi/rendah
57 pvc_station = pvi_station - curve_length / 2
58 x = -g1 * curve_length / (g2 - g1)
59
60 # Semak jika titik tinggi/rendah berada dalam had lengkung
61 if x < 0 or x > curve_length:
62 return None
63
64 # Kira stesen titik tinggi/rendah
65 hl_station = pvc_station + x
66
67 # Kira ketinggian PVC
68 pvc_elevation = pvi_elevation - (g1 * curve_length / 2)
69
70 # Kira ketinggian pada 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 * Kira nilai K untuk lengkung menegak
3 * @param {number} curveLength - Panjang lengkung menegak dalam meter
4 * @param {number} initialGrade - Darjah awal dalam peratus
5 * @param {number} finalGrade - Darjah akhir dalam peratus
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 darjah yang sama
12 }
13 return curveLength / gradeChange;
14}
15
16/**
17 * Tentukan jenis lengkung menegak
18 * @param {number} initialGrade - Darjah awal dalam peratus
19 * @param {number} finalGrade - Darjah akhir dalam peratus
20 * @returns {string} Jenis lengkung: "puncak", "sag", atau "tidak"
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";
29 }
30}
31
32/**
33 * Kira ketinggian pada mana-mana stesen sepanjang lengkung menegak
34 * @param {number} station - Stesen tanya
35 * @param {number} initialGrade - Darjah awal dalam peratus
36 * @param {number} finalGrade - Darjah akhir dalam peratus
37 * @param {number} pviStation - Stesen PVI
38 * @param {number} pviElevation - Ketinggian PVI dalam meter
39 * @param {number} curveLength - Panjang lengkung menegak dalam meter
40 * @returns {number|null} Ketinggian pada stesen atau null jika di luar had lengkung
41 */
42function calculateElevationAtStation(
43 station,
44 initialGrade,
45 finalGrade,
46 pviStation,
47 pviElevation,
48 curveLength
49) {
50 // Kira stesen PVC dan PVT
51 const pvcStation = pviStation - curveLength / 2;
52 const pvtStation = pviStation + curveLength / 2;
53
54 // Semak jika stesen berada dalam had lengkung
55 if (station < pvcStation || station > pvtStation) {
56 return null; // Di luar had lengkung
57 }
58
59 // Tukar darjah kepada perpuluhan
60 const g1 = initialGrade / 100;
61 const g2 = finalGrade / 100;
62
63 // Kira ketinggian PVC
64 const pvcElevation = pviElevation - (g1 * curveLength / 2);
65
66 // Kira jarak dari PVC
67 const x = station - pvcStation;
68
69 // Kira perbezaan algebraik dalam darjah
70 const A = g2 - g1;
71
72 // Kira ketinggian menggunakan persamaan lengkung menegak
73 const elevation = pvcElevation + g1 * x + (A * x * x) / (2 * curveLength);
74
75 return elevation;
76}
77
1public class VerticalCurveCalculator {
2 /**
3 * Kira nilai K untuk lengkung menegak
4 * @param curveLength Panjang lengkung menegak dalam meter
5 * @param initialGrade Darjah awal dalam peratus
6 * @param finalGrade Darjah akhir dalam peratus
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 darjah yang sama
13 }
14 return curveLength / gradeChange;
15 }
16
17 /**
18 * Tentukan jenis lengkung menegak
19 * @param initialGrade Darjah awal dalam peratus
20 * @param finalGrade Darjah akhir dalam peratus
21 * @return Jenis lengkung: "puncak", "sag", atau "tidak"
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";
30 }
31 }
32
33 /**
34 * Kira stesen dan ketinggian PVC
35 * @param pviStation Stesen PVI
36 * @param pviElevation Ketinggian PVI dalam meter
37 * @param initialGrade Darjah awal dalam peratus
38 * @param curveLength Panjang lengkung menegak dalam meter
39 * @return Objek yang mengandungi stesen dan ketinggian 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 * Kira stesen dan ketinggian PVT
50 * @param pviStation Stesen PVI
51 * @param pviElevation Ketinggian PVI dalam meter
52 * @param finalGrade Darjah akhir dalam peratus
53 * @param curveLength Panjang lengkung menegak dalam meter
54 * @return Objek yang mengandungi stesen dan ketinggian 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 mewakili titik dengan stesen dan ketinggian
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 Praktikal
Contoh 1: Reka Bentuk Lengkung Puncak Lebuh Raya
Reka bentuk lebuh raya memerlukan lengkung menegak untuk peralihan dari cerun +3% ke cerun -2%. PVI berada di stesen 1000+00 dengan ketinggian 150.00 meter. Kelajuan reka bentuk adalah 100 km/j, yang memerlukan nilai K minimum 80 menurut piawaian reka bentuk.
Langkah 1: Kira panjang lengkung minimum
Alat Berkaitan
Temui lebih banyak alat yang mungkin berguna untuk aliran kerja anda