Kihesabu cha Mviringo wa Wima kwa Miradi ya Uhandisi wa Kiraia
Hesabu vigezo vya mviringo wa wima kwa ajili ya kubuni barabara na reli. Pata urefu, thamani za K, maeneo ya juu/chini, na mengineyo kwa mviringo wa kilele na mviringo wa chini katika miradi ya usafiri.
Kihesabu cha Curve ya Wima
Vigezo vya Kuingiza
Curve Parameters
PVI Information
Matokeo
Sifa za Curve
Pointi Muhimu
Uchunguzi wa Kituo
Uonyeshaji
Nyaraka
Kihesabu cha Curve ya Wima kwa Uhandisi wa Kiraia
Utangulizi
Kihesabu cha curve ya wima ni chombo muhimu katika uhandisi wa kiraia kinachosaidia wahandisi kubuni mpito laini kati ya viwango tofauti vya barabara. Curves za wima ni curves za paraboliki zinazotumika katika kubuni barabara na reli ili kuunda mabadiliko ya taratibu kati ya mwinuko tofauti, kuhakikisha hali nzuri za kuendesha na mifumo sahihi ya mifereji. Kihesabu hiki kinarahisisha hesabu ngumu za kimaadili zinazohitajika katika kubuni curves za wima, ikiruhusu wahandisi wa kiraia, wabunifu wa barabara, na wataalamu wa ujenzi kubaini haraka vigezo muhimu kama vile urefu wa curve, pointi za juu na chini, na thamani za K.
Iwe unabuni barabara kuu, barabara za ndani, au reli, curves za wima ni muhimu kwa usalama, faraja ya dereva, na usimamizi sahihi wa mvua. Kihesabu hiki kinaweza kushughulikia aina zote mbili za curves za crest (ambapo barabara inapaa kisha kushuka) na sag (ambapo barabara inashuka kisha kupaa), ikitoa taarifa zote muhimu zinazohitajika kwa kubuni usawa wa wima katika miradi ya uhandisi wa usafiri.
Msingi wa Curve za Wima
Ni Nini Curve ya Wima?
Curve ya wima ni curve ya paraboliki inayotumika katika usawa wa wima wa barabara, barabara kuu, reli, na miundombinu mingine ya usafiri. Inatoa mpito laini kati ya viwango viwili tofauti, ikiondoa mabadiliko makali ambayo yangetokea kama viwango hivyo vingekutana kwenye pointi moja. Mpito huu laini ni muhimu kwa:
- Faraja na usalama wa dereva
- Umbali wa kuona sahihi kwa madereva
- Ufanisi wa uendeshaji wa gari
- Mifereji bora
- Muonekano mzuri wa barabara
Curves za wima mara nyingi huwa na umbo la paraboliki kwa sababu parabola inatoa kiwango cha mabadiliko ya wima kilichosawazishwa, na kusababisha mpito laini ambao unapunguza nguvu zinazopatikana na magari na abiria.
Aina za Curve za Wima
Kuna aina mbili kuu za curves za wima zinazotumiwa katika uhandisi wa kiraia:
-
Curves za Crest: Hizi hutokea wakati kiwango cha awali ni kikubwa zaidi kuliko kiwango cha mwisho (mfano, kutoka +3% hadi -2%). Curve hii inaunda kilima au pointi ya juu. Curves za crest zinapangwa hasa kulingana na mahitaji ya umbali wa kuona wa kusimama.
-
Curves za Sag: Hizi hutokea wakati kiwango cha awali ni kidogo zaidi kuliko kiwango cha mwisho (mfano, kutoka -2% hadi +3%). Curve hii inaunda bonde au pointi ya chini. Curves za sag zinapangwa kawaida kulingana na umbali wa kuona wa mwanga wa mbele na masuala ya mifereji.
Vigezo Muhimu vya Curve za Wima
Ili kufafanua kabisa curve ya wima, vigezo kadhaa muhimu lazima vianze:
- Kiwango cha Awali (gā): Mwinuko wa barabara kabla ya kuingia kwenye curve, unaonyeshwa kama asilimia
- Kiwango cha Mwisho (gā): Mwinuko wa barabara baada ya kutoka kwenye curve, unaonyeshwa kama asilimia
- Urefu wa Curve (L): Umbali wa usawa ambao curve ya wima inapanuka, kawaida hupimwa kwa mita au futi
- PVI (Pointi ya Mkutano wa Wima): Pointi ya nadharia ambapo viwango viwili vya tangent vitakutana kama hakungekuwa na curve
- PVC (Pointi ya Curve ya Wima): Pointi ya mwanzo ya curve ya wima
- PVT (Pointi ya Tangent ya Wima): Pointi ya mwisho ya curve ya wima
- Thamani ya K: Umbali wa usawa unaohitajika kufikia mabadiliko ya 1% katika kiwango, kipimo cha usawa wa curve
Mifumo ya Kimaadili
Msingi wa Hesabu ya Curve ya Wima
Urefu wa curve ya wima unaweza kuhesabiwa kwa kutumia equation ya quadratic:
Ambapo:
- = Urefu katika pointi ya umbali kutoka PVC
- = Urefu katika PVC
- = Kiwango cha awali (umbo la decimal)
- = Umbali kutoka PVC
- = Tofauti ya algebraic katika viwango ()
- = Urefu wa curve ya wima
Hesabu ya Thamani ya K
Thamani ya K ni kipimo cha usawa wa curve na inahesabiwa kama:
Ambapo:
- = Kiwango cha curvature ya wima
- = Urefu wa curve ya wima
- = Kiwango cha awali (asilimia)
- = Kiwango cha mwisho (asilimia)
Thamani kubwa za K zinaonyesha curves za usawa zaidi. Viwango vya kubuni mara nyingi huweka thamani za K za chini kulingana na kasi ya kubuni na aina ya curve.
Hesabu za Pointi za Juu/Ziara
Kwa curves za crest ambapo na , au curves za sag ambapo na , kutakuwa na pointi ya juu au chini ndani ya curve. Kituo cha pointi hii kinaweza kuhesabiwa kama:
Urefu katika pointi hii ya juu/chini kisha unahesabiwa kwa kutumia equation ya curve ya wima.
Hesabu za PVC na PVT
Kuzingatia kituo na urefu wa PVI, PVC na PVT zinaweza kuhesabiwa kama:
Kumbuka: Kugawanywa na 200 katika mifumo ya urefu inahesabu ubadilishaji wa kiwango kutoka asilimia hadi umbo la decimal na nusu ya urefu wa curve.
Mambo ya Kando
-
Viwango Vifananavyo (gā = gā): Wakati viwango vya awali na vya mwisho ni sawa, hakuna curve ya wima inayohitajika. Thamani ya K inakuwa isiyo na mwisho, na "curve" kwa kweli ni mstari wa moja kwa moja.
-
Tofauti Ndogo za Viwango: Wakati tofauti kati ya viwango ni ndogo sana, thamani ya K inakuwa kubwa sana. Hii inaweza kuhitaji marekebisho ya urefu wa curve kwa utekelezaji wa vitendo.
-
Curves za Urefu wa Sifuri: Curve ya wima yenye urefu wa sifuri si halali kimaadili na inapaswa kuepukwa katika kubuni.
Jinsi ya Kutumia Kihesabu cha Curve ya Wima
Kihesabu chetu cha curve ya wima kinarahisisha hesabu hizi ngumu, ikiruhusu wewe kubaini haraka vigezo vyote vya kubuni curve yako ya wima. Hapa kuna jinsi ya kukitumia:
Hatua ya 1: Ingiza Vigezo vya Msingi vya Curve
- Ingiza Kiwango cha Awali (gā) kwa mfumo wa asilimia (mfano, 2 kwa mwinuko wa 2%, -3 kwa mwinuko wa 3% wa kushuka)
- Ingiza Kiwango cha Mwisho (gā) kwa mfumo wa asilimia
- Ingiza Urefu wa Curve kwa mita
- Eleza Kituo cha PVI (thamani ya kituo katika pointi ya mkutano wa wima)
- Ingiza Urefu wa PVI kwa mita
Hatua ya 2: Kagua Matokeo
Baada ya kuingiza vigezo vinavyohitajika, kihesabu kitaweza moja kwa moja kuhesabu na kuonyesha:
- Aina ya Curve: Ikiwa curve ni crest, sag, au hakuna
- Thamani ya K: Kiwango cha curvature ya wima
- Kituo na Urefu wa PVC: Pointi ya mwanzo ya curve
- Kituo na Urefu wa PVT: Pointi ya mwisho ya curve
- Pointi ya Juu/Ziara: Ikiwa inahitajika, kituo na urefu wa pointi ya juu au chini kwenye curve
Hatua ya 3: Uliza Kituo Maalum
Unaweza pia kuuliza urefu katika kituo chochote maalum kwenye curve:
- Ingiza Thamani ya Kituo ya kuuliza
- Kihesabu kitaonyesha urefu unaolingana katika kituo hicho
- Ikiwa kituo kiko nje ya mipaka ya curve, kihesabu kitaashiria hili
Hatua ya 4: Onyesha Curve
Kihesabu kinatoa uwakilishi wa picha wa curve ya wima, ikionyesha:
- Profaili ya curve
- Pointi muhimu (PVC, PVI, PVT)
- Pointi ya juu au chini (ikiwa inahitajika)
- Viwango vya tangent
Uwakilishi huu wa picha unakusaidia kuelewa umbo la curve na kuthibitisha kuwa inakidhi mahitaji yako ya kubuni.
Matumizi na Maombi
Hesabu za curve za wima ni muhimu katika matumizi mengi ya uhandisi wa kiraia:
Kubuni Barabara na Barabara Kuu
Curves za wima ni sehemu za msingi za kubuni barabara, kuhakikisha hali salama na za faraja za kuendesha. Zinatumika kwa:
- Kuunda mpito laini kati ya viwango tofauti vya barabara
- Kuhakikisha umbali wa kuona wa kutosha kwa madereva
- Kutoa mifereji sahihi ili kuzuia mkusanyiko wa maji
- Kukidhi viwango na maelekezo ya kubuni kwa aina tofauti za barabara
Kwa mfano, wakati wa kubuni barabara kuu inayohitaji kupita kwenye eneo lenye milima, wahandisi lazima wahesabu kwa uangalifu curves za wima ili kuhakikisha kwamba madereva wana umbali wa kuona wa kutosha kusimama salama ikiwa kizuizi kinatokea barabarani.
Kubuni Reli
Katika uhandisi wa reli, curves za wima ni muhimu kwa:
- Kuhakikisha uendeshaji laini wa treni
- Kupunguza kuvaa kwenye njia na vipengele vya treni
- Kudumisha faraja ya abiria
- Kuwezesha uendeshaji sahihi kwa kasi za kubuni
Curves za wima za reli mara nyingi huwa na thamani kubwa za K kuliko barabara kutokana na uwezo mdogo wa treni kuhamasisha mabadiliko makali ya mwinuko.
Kubuni Uwanja wa Ndege
Curves za wima zinatumika katika kubuni uwanja wa ndege ili:
- Kuhakikisha mifereji sahihi ya uso wa uwanja wa ndege
- Kutoa umbali wa kuona wa kutosha kwa marubani
- Kukidhi mahitaji ya FAA au mamlaka ya anga ya kimataifa
- Kuwezesha kupaa na kutua kwa laini
Maendeleo ya Ardhi na Usawazishaji wa Tovuti
Wakati wa kuendeleza ardhi kwa miradi ya ujenzi, curves za wima zinasaidia:
- Kuunda umbo la ardhi linalovutia
- Kuhakikisha usimamizi sahihi wa mvua
- Kupunguza kiasi cha kazi ya ardhi
- Kutoa njia zinazopatikana zinazokidhi mahitaji ya ADA
Mifumo ya Usimamizi wa Mvua
Curves za wima ni muhimu katika kubuni:
- Mifereji ya mifereji
- Mifereji ya mvua
- Vituo vya uhifadhi wa mvua
- Mifumo ya sewage
Kubuni sahihi ya curve za wima inahakikisha kuwa maji yanatiririka kwa kasi inayofaa na kuzuia sedimentation au erosioni.
Mbadala kwa Curves za Wima za Paraboliki
Ingawa curves za wima za paraboliki ndizo kiwango katika matumizi mengi ya uhandisi wa kiraia, kuna mbadala:
-
Curves za Mzunguko: Zinatumika katika baadhi ya kubuni za zamani na katika viwango fulani vya kimataifa. Zinatoa kiwango kinachobadilika cha mabadiliko ya wima, ambacho kinaweza kuwa kisicho na faraja kwa madereva.
-
Curves za Clothoid au Spiral: Wakati mwingine hutumiwa katika matumizi maalum ambapo kiwango kinachoongezeka cha mabadiliko kinahitajika.
-
Parabolas za Cubic: Mara kwa mara hutumiwa kwa hali maalum ambapo mali za curve ngumu zaidi zinahitajika.
-
Mstari wa Moja kwa Moja: Katika kubuni za awali sana au kwa eneo lenye tambarare sana, uhusiano wa mstari wa moja kwa moja unaweza kutumika badala ya curves halisi za wima.
Curve ya wima ya paraboliki inabaki kuwa kiwango kwa matumizi mengi kutokana na urahisi wake, kiwango thabiti cha mabadiliko, na taratibu za kubuni zilizowekwa vizuri.
Historia ya Kubuni Curve za Wima
Maendeleo ya mbinu za kubuni curves za wima yamekua sambamba na uhandisi wa usafiri:
Kubuni Barabara za Mapema (Kabla ya Mwaka wa 1900)
Katika ujenzi wa barabara za mapema, usawa wa wima mara nyingi ulitengwa na eneo la asili bila kusawazishwa. Kadri magari yalivyokuwa ya kasi zaidi na ya kawaida, hitaji la mbinu za kisayansi zaidi katika kubuni barabara lilionekana wazi.
Maendeleo ya Curves za Paraboliki (Mwanzo wa Mwaka wa 1900)
Curve ya wima ya paraboliki ikawa kiwango katika karne ya 20 wakati wahandisi walitambua faida zake:
- Kiwango cha mabadiliko ya wima kilichosawazishwa
- Mali za kimaadili rahisi
- Mchanganyiko mzuri wa faraja na ujenzi
Kuweka Viwango (Kati ya Mwaka wa 1900)
Katika katikati ya karne ya 20, mashirika ya usafiri yalianza kuendeleza mbinu za viwango vya kubuni curves za wima:
- AASHTO (Shirika la Marekani la Barabara na Usafiri) lilianzisha mwongozo wa thamani za K za chini kulingana na umbali wa kuona wa kusimama kwa curves za crest na umbali wa kuona wa mwanga wa mbele kwa curves za sag
- Viwango sawa vilitengenezwa kimataifa
- Umbali wa kuona ukawa kipengele kikuu katika kubaini urefu wa curves
Mbinu za Kisasa za Kihesabu (Mwisho wa Mwaka wa 1900 hadi Sasa)
Pamoja na kuanzishwa kwa kompyuta, kubuni za curves za wima zilikuwa za kisasa zaidi:
- Programu za kubuni zilizoongozwa na kompyuta (CAD) ziliweka hesabu za kiotomatiki
- Uundaji wa 3D uliruhusu uwakilishi bora na uunganisho na usawa wa usawa
- Algorithms za kuboresha zilisaidia kupata usawa bora wa wima
Leo, kubuni za curves za wima zinaendelea kuendelea na utafiti mpya juu ya tabia za madereva, dynamics za magari, na masuala ya mazingira.
Maswali Yanayoulizwa Mara kwa Mara
Ni nini thamani ya K katika kubuni ya curve ya wima?
Thamani ya K inawakilisha umbali wa usawa unaohitajika kufikia mabadiliko ya 1% katika kiwango. Inahesabiwa kwa kugawanya urefu wa curve ya wima na tofauti ya absolute kati ya viwango vya awali na vya mwisho. Thamani kubwa za K zinaonyesha curves za usawa zaidi. Viwango vya kubuni mara nyingi huweka thamani za K za chini kulingana na kasi ya kubuni na aina ya curve.
Nitaamua vipi ikiwa nahitaji curve ya crest au sag?
Aina ya curve inategemea uhusiano kati ya viwango vya awali na vya mwisho:
- Ikiwa kiwango cha awali ni kikubwa zaidi kuliko kiwango cha mwisho (gā > gā), unahitaji curve ya crest
- Ikiwa kiwango cha awali ni kidogo zaidi kuliko kiwango cha mwisho (gā < gā), unahitaji curve ya sag
- Ikiwa viwango vya awali na vya mwisho ni sawa (gā = gā), hakuna curve ya wima inayohitajika
Ni thamani gani ya chini ya K ninapaswa kutumia kwa kubuni yangu?
Thamani za chini za K zinategemea kasi ya kubuni, aina ya curve, na viwango vinavyofaa. Kwa mfano, AASHTO inatoa meza za thamani za K za chini kulingana na umbali wa kuona wa kusimama kwa curves za crest na umbali wa kuona wa mwanga wa mbele kwa curves za sag. Kasi kubwa za kubuni zinahitaji thamani kubwa za K ili kuhakikisha usalama.
Nitahesabu vipi pointi ya juu au chini ya curve ya wima?
Pointi ya juu (kwa curves za crest) au pointi ya chini (kwa curves za sag) hutokea mahali ambapo kiwango kwenye curve kinakuwa sifuri. Hii inaweza kuhesabiwa kwa kutumia formula:
Pointi ya juu/chini inapatikana tu ndani ya curve ikiwa kituo hiki kiko kati ya PVC na PVT.
Kitatokea nini ikiwa viwango vya awali na vya mwisho ni sawa?
Ikiwa viwango vya awali na vya mwisho ni sawa, hakuna haja ya curve ya wima. Matokeo ni mstari wa moja kwa moja wenye kiwango thabiti. Katika kesi hii, thamani ya K itakuwa kimsingi isiyo na mwisho.
Curves za wima zinaathirije mifereji?
Curves za wima zinaathiri mwelekeo na kasi ya mtiririko wa maji kwenye barabara. Curves za crest kwa kawaida husaidia mifereji kwa kuelekeza maji mbali na pointi ya juu. Curves za sag zinaweza kuunda masuala ya mifereji kwenye pointi ya chini, mara nyingi zinahitaji miundo ya ziada ya mifereji kama vile inlets au mifereji.
Ni nini tofauti kati ya PVI, PVC, na PVT?
- PVI (Pointi ya Mkutano wa Wima): Pointi ya nadharia ambapo mistari ya tangent ya awali na ya mwisho ingekutana
- PVC (Pointi ya Curve ya Wima): Pointi ya mwanzo ya curve ya wima
- PVT (Pointi ya Tangent ya Wima): Pointi ya mwisho ya curve ya wima
Katika curve ya wima ya kawaida inayosawazishwa, PVC iko nusu ya urefu wa curve kabla ya PVI, na PVT iko nusu ya urefu wa curve baada ya PVI.
Hesabu za curve za wima zina usahihi kiasi gani?
Hesabu za kisasa za curves za wima zinaweza kuwa sahihi sana wakati zinafanywa kwa usahihi. Hata hivyo, uvumilivu wa ujenzi, hali za uwanja, na kuzunguka katika hesabu zinaweza kuleta tofauti ndogo. Kwa matumizi mengi ya vitendo, hesabu hadi sentimita moja au sehemu ya mia ya futi ni ya kutosha kwa urefu.
Mifano ya Kihesabu
Hapa kuna mifano ya jinsi ya kuhesabu vigezo vya curve za wima katika lugha mbalimbali za programu:
1' Excel VBA Function to calculate elevation at any point on a vertical curve
2Function VerticalCurveElevation(initialGrade, finalGrade, curveLength, pvcStation, pvcElevation, queryStation)
3 ' Convert grades from percentage to decimal
4 Dim g1 As Double
5 Dim g2 As Double
6 g1 = initialGrade / 100
7 g2 = finalGrade / 100
8
9 ' Calculate algebraic difference in grades
10 Dim A As Double
11 A = g2 - g1
12
13 ' Calculate distance from PVC
14 Dim x As Double
15 x = queryStation - pvcStation
16
17 ' Check if station is within curve
18 If x < 0 Or x > curveLength Then
19 VerticalCurveElevation = "Outside curve limits"
20 Exit Function
21 End If
22
23 ' Calculate elevation using vertical curve equation
24 Dim elevation As Double
25 elevation = pvcElevation + g1 * x + (A * x * x) / (2 * curveLength)
26
27 VerticalCurveElevation = elevation
28End Function
29
30' Function to calculate K value
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 """Calculate the K value of a vertical curve."""
5 grade_change = abs(final_grade - initial_grade)
6 if grade_change < 0.0001: # Avoid division by zero
7 return float('inf')
8 return curve_length / grade_change
9
10def calculate_curve_type(initial_grade, final_grade):
11 """Determine if the curve is a crest, sag, or neither."""
12 if initial_grade > final_grade:
13 return "crest"
14 elif initial_grade < final_grade:
15 return "sag"
16 else:
17 return "neither"
18
19def calculate_elevation_at_station(station, initial_grade, final_grade,
20 pvi_station, pvi_elevation, curve_length):
21 """Calculate elevation at any station along a vertical curve."""
22 # Calculate PVC and PVT stations
23 pvc_station = pvi_station - curve_length / 2
24 pvt_station = pvi_station + curve_length / 2
25
26 # Check if station is within curve limits
27 if station < pvc_station or station > pvt_station:
28 return None # Outside curve limits
29
30 # Calculate PVC elevation
31 g1 = initial_grade / 100 # Convert to decimal
32 g2 = final_grade / 100 # Convert to decimal
33 pvc_elevation = pvi_elevation - (g1 * curve_length / 2)
34
35 # Calculate distance from PVC
36 x = station - pvc_station
37
38 # Calculate algebraic difference in grades
39 A = g2 - g1
40
41 # Calculate elevation using vertical curve equation
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 """Calculate the high or low point of a vertical curve if it exists."""
49 g1 = initial_grade / 100
50 g2 = final_grade / 100
51
52 # High/low point only exists if grades have opposite signs
53 if g1 * g2 >= 0 and g1 != 0:
54 return None
55
56 # Calculate distance from PVC to high/low point
57 pvc_station = pvi_station - curve_length / 2
58 x = -g1 * curve_length / (g2 - g1)
59
60 # Check if high/low point is within curve limits
61 if x < 0 or x > curve_length:
62 return None
63
64 # Calculate station of high/low point
65 hl_station = pvc_station + x
66
67 # Calculate PVC elevation
68 pvc_elevation = pvi_elevation - (g1 * curve_length / 2)
69
70 # Calculate elevation at high/low point
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 * Calculate K value for a vertical curve
3 * @param {number} curveLength - Length of the vertical curve in meters
4 * @param {number} initialGrade - Initial grade in percentage
5 * @param {number} finalGrade - Final grade in percentage
6 * @returns {number} K value
7 */
8function calculateKValue(curveLength, initialGrade, finalGrade) {
9 const gradeChange = Math.abs(finalGrade - initialGrade);
10 if (gradeChange < 0.0001) {
11 return Infinity; // For equal grades
12 }
13 return curveLength / gradeChange;
14}
15
16/**
17 * Determine the type of vertical curve
18 * @param {number} initialGrade - Initial grade in percentage
19 * @param {number} finalGrade - Final grade in percentage
20 * @returns {string} Curve type: "crest", "sag", or "neither"
21 */
22function determineCurveType(initialGrade, finalGrade) {
23 if (initialGrade > finalGrade) {
24 return "crest";
25 } else if (initialGrade < finalGrade) {
26 return "sag";
27 } else {
28 return "neither";
29 }
30}
31
32/**
33 * Calculate elevation at any station along a vertical curve
34 * @param {number} station - Query station
35 * @param {number} initialGrade - Initial grade in percentage
36 * @param {number} finalGrade - Final grade in percentage
37 * @param {number} pviStation - PVI station
38 * @param {number} pviElevation - PVI elevation in meters
39 * @param {number} curveLength - Length of the vertical curve in meters
40 * @returns {number|null} Elevation at the station or null if outside curve limits
41 */
42function calculateElevationAtStation(
43 station,
44 initialGrade,
45 finalGrade,
46 pviStation,
47 pviElevation,
48 curveLength
49) {
50 // Calculate PVC and PVT stations
51 const pvcStation = pviStation - curveLength / 2;
52 const pvtStation = pviStation + curveLength / 2;
53
54 // Check if station is within curve limits
55 if (station < pvcStation || station > pvtStation) {
56 return null; // Outside curve limits
57 }
58
59 // Convert grades to decimal
60 const g1 = initialGrade / 100;
61 const g2 = finalGrade / 100;
62
63 // Calculate PVC elevation
64 const pvcElevation = pviElevation - (g1 * curveLength / 2);
65
66 // Calculate distance from PVC
67 const x = station - pvcStation;
68
69 // Calculate algebraic difference in grades
70 const A = g2 - g1;
71
72 // Calculate elevation using vertical curve equation
73 const elevation = pvcElevation + g1 * x + (A * x * x) / (2 * curveLength);
74
75 return elevation;
76}
77
1public class VerticalCurveCalculator {
2 /**
3 * Calculate K value for a vertical curve
4 * @param curveLength Length of the vertical curve in meters
5 * @param initialGrade Initial grade in percentage
6 * @param finalGrade Final grade in percentage
7 * @return K value
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; // For equal grades
13 }
14 return curveLength / gradeChange;
15 }
16
17 /**
18 * Determine the type of vertical curve
19 * @param initialGrade Initial grade in percentage
20 * @param finalGrade Final grade in percentage
21 * @return Curve type: "crest", "sag", or "neither"
22 */
23 public static String determineCurveType(double initialGrade, double finalGrade) {
24 if (initialGrade > finalGrade) {
25 return "crest";
26 } else if (initialGrade < finalGrade) {
27 return "sag";
28 } else {
29 return "neither";
30 }
31 }
32
33 /**
34 * Calculate PVC station and elevation
35 * @param pviStation PVI station
36 * @param pviElevation PVI elevation in meters
37 * @param initialGrade Initial grade in percentage
38 * @param curveLength Length of the vertical curve in meters
39 * @return Object containing station and elevation of 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 * Calculate PVT station and elevation
50 * @param pviStation PVI station
51 * @param pviElevation PVI elevation in meters
52 * @param finalGrade Final grade in percentage
53 * @param curveLength Length of the vertical curve in meters
54 * @return Object containing station and elevation of 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 * Inner class to represent a point with station and elevation
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
Mifano Halisi
Mfano wa 1: Kubuni Curve ya Crest kwa Barabara Kuu
Kubuni barabara kuu inahitaji curve ya wima ili kubadilisha kutoka kiwango cha +3% hadi -2%. PVI iko katika kituo 1000+00 na urefu wa 150.00 mita. Kasi ya kubuni ni 100 km/h, ambayo inahitaji thamani ya K ya chini ya 80 kulingana na viwango vya kubuni.
Hatua ya 1: Hesabu urefu wa chini wa curve
Zana Zinazohusiana
Gundua zana zaidi ambazo zinaweza kuwa na manufaa kwa mtiririko wako wa kazi