Vertikalios kreivės skaičiuoklė civilinės inžinerijos projektams
Apskaičiuokite vertikalios kreivės parametrus kelių ir geležinkelių projektams. Raskite aukščius, K vertes, aukštas/žemas taškus ir daugiau kreivėms, skirtoms transporto projektams.
Vertikalios kreivės skaičiuoklė
Įvesties parametrai
Curve Parameters
PVI Information
Rezultatai
Kreivės charakteristikos
Raktiniai taškai
Stoties užklausa
Vizualizacija
Dokumentacija
Vertikalios Kreivės Skaičiuoklė Civilinės Inžinerijos
Įvadas
Vertikalios kreivės skaičiuoklė yra būtinas įrankis civilinėje inžinerijoje, padedantis inžinieriams sukurti sklandžius perėjimus tarp skirtingų kelių nuolydžių. Vertikalios kreivės yra parabolinės kreivės, naudojamos kelių ir geležinkelių projekte, kad būtų sukurtas palaipsnis pokytis tarp dviejų skirtingų nuolydžių, užtikrinant patogias važiavimo sąlygas ir tinkamą drenažą. Ši skaičiuoklė supaprastina sudėtingus matematinius skaičiavimus, reikalingus vertikalioms kreivėms projektuoti, leidžiant civilinės inžinerijos specialistams, kelių projektavimo specialistams ir statybos profesionalams greitai nustatyti pagrindinius parametrus, tokius kaip kreivės aukščiai, aukščiausi ir žemiausi taškai, bei K vertes.
Nepriklausomai nuo to, ar projektuojate greitkelį, vietinį kelią, ar geležinkelį, vertikalios kreivės yra kritiškai svarbios saugumui, vairuotojų komfortui ir tinkamam lietaus vandens valdymui. Ši išsami skaičiuoklė apdoroja tiek viršūnines kreives (kai kelias kyla, o po to krenta), tiek duobines kreives (kai kelias leidžiasi, o po to kyla), teikdama visą būtiną informaciją, reikalingą tinkamam vertikaliojo išdėstymo projektavimui transporto inžinerijos projektuose.
Vertikalios Kreivės Pagrindai
Kas yra Vertikalioji Kreivė?
Vertikalioji kreivė yra parabolinė kreivė, naudojama kelių, greitkelių, geležinkelių ir kitos transporto infrastruktūros vertikalioje išdėstyme. Ji suteikia sklandų perėjimą tarp dviejų skirtingų nuolydžių, panaikindama staigų pokytį, kuris įvyktų, jei nuolydžiai susikirstų taške. Šis sklandus perėjimas yra būtinas:
- Vairuotojų komfortui ir saugumui
- Tinkamam matomumui vairuotojams
- Transporto priemonių veikimo efektyvumui
- Efektyviam drenažui
- Estetinei kelio išvaizdai
Vertikalios kreivės paprastai būna parabolinės formos, nes parabola suteikia pastovią pokyčio normą nuolydyje, dėl to gaunamas sklandus perėjimas, kuris sumažina jėgas, patiriamas transporto priemonėse ir keleiviuose.
Vertikalių Kreivių Tipai
Yra du pagrindiniai vertikalių kreivių tipai, naudojami civilinėje inžinerijoje:
-
Viršūninės Kreivės: Jos atsiranda, kai pradinė nuolydis yra didesnis už galutinį nuolydį (pvz., pereinant iš +3% į -2%). Kreivė formuoja kalną arba aukščiausią tašką. Viršūninės kreivės daugiausia projektuojamos remiantis sustojimo matomumo reikalavimais.
-
Duobinės Kreivės: Jos atsiranda, kai pradinė nuolydis yra mažesnis už galutinį nuolydį (pvz., pereinant iš -2% į +3%). Kreivė formuoja slėnį arba žemiausią tašką. Duobinės kreivės paprastai projektuojamos remiantis žibintų matomumo ir drenažo apsvarstymais.
Pagrindiniai Vertikalios Kreivės Parametrai
Norint visiškai apibrėžti vertikalią kreivę, reikia nustatyti keletą pagrindinių parametrų:
- Pradinis Nuolydis (g₁): Kelių nuolydis prieš įeinant į kreivę, išreikštas procentais
- Galutinis Nuolydis (g₂): Kelių nuolydis po išėjimo iš kreivės, išreikštas procentais
- Kreivės Ilgis (L): Horizontalus atstumas, per kurį tęsiasi vertikali kreivė, paprastai matuojamas metrais arba pėdomis
- PVI (Vertikalios Sankryžos Taškas): Teorinis taškas, kuriame susikirstų du tangentiniai nuolydžiai, jei nebūtų kreivės
- PVC (Vertikalios Kreivės Pradžios Taškas): Vertikalios kreivės pradžios taškas
- PVT (Vertikalios Kreivės Pabaigos Taškas): Vertikalios kreivės pabaigos taškas
- K Vertė: Horizontalus atstumas, reikalingas 1% pokyčiui nuolydyje pasiekti, kreivės plokštumo matas
Matematiniai Formuliai
Pagrindinė Vertikalios Kreivės Lygtis
Aukštis bet kuriame taške, esančiame vertikalioje kreivėje, gali būti apskaičiuotas naudojant kvadratinę lygtį:
Kur:
- = Aukštis atstume nuo PVC
- = Aukštis PVC
- = Pradinis nuolydis (dešimtainė forma)
- = Atstumas nuo PVC
- = Algebrainis nuolydžio skirtumas ()
- = Vertikalios kreivės ilgis
K Vertės Apskaičiavimas
K vertė yra kreivės plokštumo matas ir apskaičiuojama taip:
Kur:
- = Vertikalios kreivės norma
- = Vertikalios kreivės ilgis
- = Pradinis nuolydis (procentais)
- = Galutinis nuolydis (procentais)
Didelės K vertės rodo plokštesnes kreives. Projektavimo standartai dažnai nurodo minimalius K vertes, atsižvelgiant į projektavimo greitį ir kreivės tipą.
Aukšto / Žemo Taško Apskaičiavimas
Viršūninėse kreivėse, kur ir , arba duobinėse kreivėse, kur ir , bus aukštas arba žemas taškas kreivėje. Šio taško stotis gali būti apskaičiuota taip:
Aukštis šiame aukštame/žemame taške tada apskaičiuojamas naudojant pagrindinę vertikalios kreivės lygtį.
PVC ir PVT Apskaičiavimai
Žinant PVI stotį ir aukštį, PVC ir PVT gali būti apskaičiuoti taip:
Pastaba: Dalijimasis 200 aukščio formulėse atsižvelgia į nuolydžio konvertavimą iš procentų į dešimtainę formą ir pusę kreivės ilgio.
Kraštutiniai Atvejai
-
Lygių Nuolydžių Atvejis (g₁ = g₂): Kai pradiniai ir galutiniai nuolydžiai yra lygūs, vertikalios kreivės nereikia. K vertė tampa begalinė, o "kreivė" iš tikrųjų yra tiesi linija.
-
Labai Mažos Nuolydžių Skirtumai: Kai skirtumas tarp nuolydžių yra labai mažas, K vertė tampa labai didelė. Tai gali reikalauti koreguoti kreivės ilgį praktiniam įgyvendinimui.
-
Nulinio Ilgio Kreivės: Vertikalios kreivės su nuliniu ilgiu matematiškai nėra galimos ir turėtų būti vengiamas projekte.
Kaip Naudoti Vertikalios Kreivės Skaičiuoklę
Mūsų vertikalios kreivės skaičiuoklė supaprastina šiuos sudėtingus skaičiavimus, leidžiant jums greitai nustatyti visus pagrindinius parametrus jūsų vertikalios kreivės projektavimui. Štai kaip ją naudoti:
1 Veiksmas: Įveskite Pagrindinius Kreivės Parametrus
- Įveskite Pradinį Nuolydį (g₁) procentais (pvz., 2 už 2% kyla, -3 už 3% leidžiasi)
- Įveskite Galutinį Nuolydį (g₂) procentais
- Įveskite Kreivės Ilgį metrais
- Nurodykite PVI Stotį (vertė stotyje vertikalios sankryžos taške)
- Įveskite PVI Aukštį metrais
2 Veiksmas: Peržiūrėkite Rezultatus
Įvedus reikiamus parametrus, skaičiuoklė automatiškai apskaičiuos ir pateiks:
- Kreivės Tipas: Ar kreivė yra viršūninė, duobinė, ar nei viena
- K Vertė: Vertikalios kreivės norma
- PVC Stotis ir Aukštis: Kreivės pradžios taškas
- PVT Stotis ir Aukštis: Kreivės pabaigos taškas
- Aukštas / Žemas Taškas: Jei taikoma, aukščiausio ar žemiausio taško stotis ir aukštis
3 Veiksmas: Užklauskite Specifinių Stotelių
Taip pat galite užklausti aukštį bet kurioje konkrečioje stotyje kreivėje:
- Įveskite Užklausos Stotį
- Skaičiuoklė parodys atitinkamą aukštį toje stotyje
- Jei stotis yra už kreivės ribų, skaičiuoklė tai nurodys
4 Veiksmas: Vizualizuokite Kreivę
Skaičiuoklė pateikia vertikalios kreivės vizualinę atvaizdą, rodydama:
- Kreivės profilį
- Pagrindinius taškus (PVC, PVI, PVT)
- Aukštą ar žemą tašką (jei taikoma)
- Tangentiniai nuolydžiai
Ši vizualizacija padeda jums suprasti kreivės formą ir patikrinti, ar ji atitinka jūsų projektavimo reikalavimus.
Naudojimo Atvejai ir Taikymas
Vertikalios kreivės skaičiavimai yra būtini daugybėje civilinės inžinerijos taikymų:
Greitkelių ir Kelių Projektavimas
Vertikalios kreivės yra pagrindiniai kelių projektavimo komponentai, užtikrinantys saugias ir patogias važiavimo sąlygas. Jos naudojamos:
- Sukurti sklandžius perėjimus tarp skirtingų kelių nuolydžių
- Užtikrinti pakankamą matomumą vairuotojams
- Teikti tinkamą drenažą, kad būtų išvengta vandens kaupimosi
- Atitikti projektavimo standartus ir specifikacijas skirtingoms kelių klasėms
Pavyzdžiui, projektuojant greitkelį, kuris turi kirsti kalnuotą reljefą, inžinieriai turi atsargiai apskaičiuoti vertikalias kreives, kad užtikrintų, jog vairuotojai turėtų pakankamą matomumą, kad saugiai sustotų, jei kelio kliūtis pasirodytų.
Geležinkelio Projektavimas
Geležinkelio inžinerijoje vertikalios kreivės yra kritiškai svarbios:
- Užtikrinant sklandų traukinių veikimą
- Mažinant geležinkelių ir traukinių komponentų nusidėvėjimą
- Išlaikant keleivių komfortą
- Leidžiant tinkamą veikimą projektavimo greičiais
Geležinkelio vertikalios kreivės dažnai turi didesnes K vertes nei keliai dėl riboto traukinių gebėjimo naviguoti staigiuose nuolydžiuose.
Oro Uostų Tiesimo Projektavimas
Vertikalios kreivės naudojamos oro uostų takelių projektavime, kad:
- Užtikrintų tinkamą takelių paviršiaus drenažą
- Teiktų pakankamą matomumą pilotams
- Atitiktų FAA ar tarptautinių aviacijos institucijų reikalavimus
- Palengvintų sklandų kilimą ir nusileidimą
Žemės Plėtros ir Svetainių Lyginimas
Plėtojant žemę statybos projektams, vertikalios kreivės padeda:
- Sukurti estetiškai patrauklias žemės formas
- Užtikrinti tinkamą lietaus vandens valdymą
- Sumažinti žemės darbų kiekius
- Teikti prieinamą maršrutą, atitinkantį ADA reikalavimus
Lietaus Vandens Valdymo Sistemos
Vertikalios kreivės yra būtinos projektuojant:
- Drenažo kanalus
- Kanalus
- Lietaus vandens kaupimo įrenginius
- Kanalizacijos sistemas
Tinkamas vertikalios kreivės projektavimas užtikrina, kad vanduo tekėtų tinkamais greičiais ir užkerta kelią nuosėdoms ar erozijai.
Alternatyvos Parabolinėms Vertikalioms Kreivėms
Nors parabolinės vertikalios kreivės yra standartas daugelyje civilinės inžinerijos taikymų, yra alternatyvų:
-
Apskritiminės Vertikalios Kreivės: Naudojamos kai kuriuose senesniuose projektuose ir tam tikrose tarptautinėse standartų. Jos suteikia kintamą pokyčio normą nuolydyje, kuri gali būti mažiau patogi vairuotojams.
-
Klothoidinės arba Spiralinės Kreivės: Kartais naudojamos specializuotose taikymuose, kur pageidaujama palaipsnio didėjimo normos.
-
Kubinės Parabolės: Kartais naudojamos specialioms situacijoms, kur reikalingos sudėtingesnės kreivės savybės.
-
Tiesinės Aproksimacijos: Labai preliminariuose projektuose arba labai plokščioje teritorijoje gali būti naudojamos paprastos tiesinės jungtys vietoj tikrų vertikalių kreivių.
Parabolinė vertikalioji kreivė išlieka standartu daugeliui taikymų dėl savo paprastumo, nuolatinės pokyčio normos ir gerai nustatytų projektavimo procedūrų.
Vertikalios Kreivės Projektavimo Istorija
Vertikalios kreivės projektavimo metodologijų plėtra vystėsi kartu su transporto inžinerija:
Ankstyvas Kelių Projektavimas (Prieš 1900 m.)
Ankstyvuoju kelių statyme vertikalūs išdėstymai dažnai buvo nustatomi pagal natūralų reljefą su minimaliais lyginimais. Kai transporto priemonės tapo greitesnės ir labiau paplitusios, tapo akivaizdu, kad reikia mokslinių požiūrių į kelių projektavimą.
Parabolinių Kreivių Plėtra (XX a. Pradžia)
Parabolinė vertikalioji kreivė tapo standartu XX a. pradžioje, kai inžinieriai pripažino jos privalumus:
- Pastovi pokyčio norma nuolydyje
- Santykinai paprastos matematinės savybės
- Geras komforto ir statybos balansas
Standartizacija (XX a. Vidurys)
XX a. viduryje transporto agentūros pradėjo kurti standartizuotus požiūrius į vertikalios kreivės projektavimą:
- AASHTO (Amerikos valstijų greitkelių ir transporto asociacija) nustatė minimalias K vertes, remdamasi sustojimo matomumo reikalavimais viršūninėms kreivėms ir žibintų matomumo reikalavimais duobinėms kreivėms.
- Panašūs standartai buvo sukurti tarptautiniu mastu.
- Matomumas tapo pagrindiniu veiksniu nustatant kreivės ilgius.
Modernūs Kompiuteriniai Požiūriai (XX a. Pabaiga iki Dabar)
Su kompiuterių atsiradimu vertikalios kreivės projektavimas tapo sudėtingesnis:
- Kompiuterinė projektavimo (CAD) programinė įranga automatizavo skaičiavimus
- 3D modeliavimas leido geriau vizualizuoti ir integruoti su horizontaliu išdėstymu
- Optimizavimo algoritmai padėjo rasti efektyviausius vertikalius išdėstymus
Šiandien vertikalios kreivės projektavimas ir toliau vystosi kartu su naujais tyrimais apie vairuotojų elgseną, transporto priemonių dinamiką ir aplinkosaugos apsvarstymais.
Dažnai Užduodami Klausimai
Kas yra K vertė vertikalios kreivės projekte?
K vertė atspindi horizontalų atstumą, reikalingą 1% pokyčiui nuolydyje pasiekti. Ji apskaičiuojama padalijant vertikalios kreivės ilgį iš absoliutaus skirtumo tarp pradinio ir galutinio nuolydžių. Didelės K vertės rodo plokštesnes, lėtesnes kreives. K vertės dažnai nurodomos projektavimo standartų, atsižvelgiant į projektavimo greitį.
Kaip nustatyti, ar man reikia viršūninės ar duobinės vertikalios kreivės?
Kreivės tipas priklauso nuo pradinio ir galutinio nuolydžio santykio:
- Jei pradinė nuolydis yra didesnis už galutinį nuolydį (g₁ > g₂), jums reikia viršūninės kreivės
- Jei pradinė nuolydis yra mažesnis už galutinį nuolydį (g₁ < g₂), jums reikia duobinės kreivės
- Jei pradiniai ir galutiniai nuolydžiai yra lygūs (g₁ = g₂), vertikalios kreivės nereikia
Kokia minimali K vertė turėčiau naudoti savo projekte?
Minimali K vertė priklauso nuo projektavimo greičio, kreivės tipo ir taikomų projektavimo standartų. Pavyzdžiui, AASHTO pateikia minimalių K verčių lenteles, remdamasi sustojimo matomumu viršūninėms kreivėms ir žibintų matomumu duobinėms kreivėms. Dideli projektavimo greičiai reikalauja didesnių K verčių, kad būtų užtikrintas saugumas.
Kaip apskaičiuoti aukštą ar žemą tašką vertikalioje kreivėje?
Aukštas taškas (viršūninėse kreivėse) arba žemas taškas (duobinėse kreivėse) atsiranda ten, kur nuolydis kreivėje lygus nuliui. Tai galima apskaičiuoti naudojant formulę:
Aukštas/žemas taškas egzistuoja tik tada, jei ši stotis patenka tarp PVC ir PVT.
Kas atsitinka, jei pradiniai ir galutiniai nuolydžiai yra lygūs?
Jei pradiniai ir galutiniai nuolydžiai yra lygūs, vertikalios kreivės nereikia. Rezultatas yra tiesi linija su pastoviu nuolydžiu. Šiuo atveju K vertė teoriškai būtų begalinė.
Kaip vertikalios kreivės veikia drenažą?
Vertikalios kreivės daro įtaką vandens tekėjimo krypčiai ir greičiui keliuose. Viršūninės kreivės paprastai palengvina drenažą, nukreipdamos vandenį nuo aukščiausio taško. Duobinės kreivės gali sukelti potencialių drenažo problemų žemiausiame taške, dažnai reikalaujant papildomų drenažo struktūrų, tokių kaip įleidimai ar kanalai.
Koks skirtumas tarp PVI, PVC ir PVT?
- PVI (Vertikalios Sankryžos Taškas): Teorinis taškas, kuriame pratęstos pradinės ir galutinės nuolydžių linijos susikirstų
- PVC (Vertikalios Kreivės Pradžios Taškas): Vertikalios kreivės pradžios taškas
- PVT (Vertikalios Kreivės Pabaigos Taškas): Vertikalios kreivės pabaigos taškas
Standartinėje simetrinėje vertikalioje kreivėje PVC yra pusė kreivės ilgio prieš PVI, o PVT yra pusė kreivės ilgio po PVI.
Kiek tikslūs yra vertikalios kreivės skaičiavimai?
Šiuolaikiniai vertikalios kreivės skaičiavimai gali būti labai tikslūs, kai atliekami teisingai. Tačiau statybos tolerancijos, lauko sąlygos ir skaičiavimų suapvalinimas gali įvesti nedidelius nuokrypius. Daugeliu praktinių atvejų skaičiavimai, apvalinti iki artimiausio centimetro ar šimto dalies pėdos, yra pakankami aukščiams.
Kodo Pavyzdžiai
Štai pavyzdžiai, kaip apskaičiuoti vertikalios kreivės parametrus įvairiose programavimo kalbose:
1' Excel VBA funkcija, skirta apskaičiuoti aukštį bet kuriame vertikalios kreivės taške
2Function VerticalCurveElevation(initialGrade, finalGrade, curveLength, pvcStation, pvcElevation, queryStation)
3 ' Konvertuoti nuolydžius iš procentų į dešimtainę formą
4 Dim g1 As Double
5 Dim g2 As Double
6 g1 = initialGrade / 100
7 g2 = finalGrade / 100
8
9 ' Apskaičiuoti algebraišką nuolydžio skirtumą
10 Dim A As Double
11 A = g2 - g1
12
13 ' Apskaičiuoti atstumą nuo PVC
14 Dim x As Double
15 x = queryStation - pvcStation
16
17 ' Patikrinti, ar stotis yra kreivės ribose
18 If x < 0 Or x > curveLength Then
19 VerticalCurveElevation = "Už kreivės ribų"
20 Exit Function
21 End If
22
23 ' Apskaičiuoti aukštį naudojant vertikalios kreivės lygtį
24 Dim elevation As Double
25 elevation = pvcElevation + g1 * x + (A * x * x) / (2 * curveLength)
26
27 VerticalCurveElevation = elevation
28End Function
29
30' Funkcija K vertei apskaičiuoti
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 """Apskaičiuoti K vertę vertikalioje kreivėje."""
5 grade_change = abs(final_grade - initial_grade)
6 if grade_change < 0.0001: # Vengti dalijimosi iš nulio
7 return float('inf')
8 return curve_length / grade_change
9
10def calculate_curve_type(initial_grade, final_grade):
11 """Nustatyti, ar kreivė yra viršūninė, duobinė ar nei viena."""
12 if initial_grade > final_grade:
13 return "viršūninė"
14 elif initial_grade < final_grade:
15 return "duobinė"
16 else:
17 return "nei viena"
18
19def calculate_elevation_at_station(station, initial_grade, final_grade,
20 pvi_station, pvi_elevation, curve_length):
21 """Apskaičiuoti aukštį bet kurioje stotyje vertikalioje kreivėje."""
22 # Apskaičiuoti PVC ir PVT stotis
23 pvc_station = pvi_station - curve_length / 2
24 pvt_station = pvi_station + curve_length / 2
25
26 # Patikrinti, ar stotis yra kreivės ribose
27 if station < pvc_station or station > pvt_station:
28 return None # Už kreivės ribų
29
30 # Apskaičiuoti PVC aukštį
31 g1 = initial_grade / 100 # Konvertuoti į dešimtainę formą
32 g2 = final_grade / 100 # Konvertuoti į dešimtainę formą
33 pvc_elevation = pvi_elevation - (g1 * curve_length / 2)
34
35 # Apskaičiuoti atstumą nuo PVC
36 x = station - pvc_station
37
38 # Apskaičiuoti algebraišką nuolydžio skirtumą
39 A = g2 - g1
40
41 # Apskaičiuoti aukštį naudojant vertikalios kreivės lygtį
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 """Apskaičiuoti aukštą arba žemą tašką vertikalioje kreivėje, jei jis egzistuoja."""
49 g1 = initial_grade / 100
50 g2 = final_grade / 100
51
52 # Aukštas/žemas taškas egzistuoja tik tada, jei nuolydžiai turi priešingas reikšmes
53 if g1 * g2 >= 0 and g1 != 0:
54 return None
55
56 # Apskaičiuoti atstumą nuo PVC iki aukšto/žemo taško
57 pvc_station = pvi_station - curve_length / 2
58 x = -g1 * curve_length / (g2 - g1)
59
60 # Patikrinti, ar aukštas/žemas taškas yra kreivės ribose
61 if x < 0 or x > curve_length:
62 return None
63
64 # Apskaičiuoti aukšto/žemo taško stotį
65 hl_station = pvc_station + x
66
67 # Apskaičiuoti PVC aukštį
68 pvc_elevation = pvi_elevation - (g1 * curve_length / 2)
69
70 # Apskaičiuoti aukštį aukšto/žemo taško
71 A = g2 - g1
72 hl_elevation = pvc_elevation + g1 * x + (A * x * x) / (2 * curve_length)
73
74 return {"stotis": hl_station, "aukštis": hl_elevation}
75
1/**
2 * Apskaičiuoti K vertę vertikalioje kreivėje
3 * @param {number} curveLength - Vertikalios kreivės ilgis metrais
4 * @param {number} initialGrade - Pradinis nuolydis procentais
5 * @param {number} finalGrade - Galutinis nuolydis procentais
6 * @returns {number} K vertė
7 */
8function calculateKValue(curveLength, initialGrade, finalGrade) {
9 const gradeChange = Math.abs(finalGrade - initialGrade);
10 if (gradeChange < 0.0001) {
11 return Infinity; // Lygiems nuolydžiams
12 }
13 return curveLength / gradeChange;
14}
15
16/**
17 * Nustatyti vertikalios kreivės tipą
18 * @param {number} initialGrade - Pradinis nuolydis procentais
19 * @param {number} finalGrade - Galutinis nuolydis procentais
20 * @returns {string} Kreivės tipas: "viršūninė", "duobinė" ar "nei viena"
21 */
22function determineCurveType(initialGrade, finalGrade) {
23 if (initialGrade > finalGrade) {
24 return "viršūninė";
25 } else if (initialGrade < finalGrade) {
26 return "duobinė";
27 } else {
28 return "nei viena";
29 }
30}
31
32/**
33 * Apskaičiuoti aukštį bet kurioje stotyje vertikalioje kreivėje
34 * @param {number} station - Užklausos stotis
35 * @param {number} initialGrade - Pradinis nuolydis procentais
36 * @param {number} finalGrade - Galutinis nuolydis procentais
37 * @param {number} pviStation - PVI stotis
38 * @param {number} pviElevation - PVI aukštis metrais
39 * @param {number} curveLength - Vertikalios kreivės ilgis metrais
40 * @returns {number|null} Aukštis stotyje arba null, jei už kreivės ribų
41 */
42function calculateElevationAtStation(
43 station,
44 initialGrade,
45 finalGrade,
46 pviStation,
47 pviElevation,
48 curveLength
49) {
50 // Apskaičiuoti PVC ir PVT stotis
51 const pvcStation = pviStation - curveLength / 2;
52 const pvtStation = pviStation + curveLength / 2;
53
54 // Patikrinti, ar stotis yra kreivės ribose
55 if (station < pvcStation || station > pvtStation) {
56 return null; // Už kreivės ribų
57 }
58
59 // Konvertuoti nuolydžius į dešimtainę formą
60 const g1 = initialGrade / 100;
61 const g2 = finalGrade / 100;
62
63 // Apskaičiuoti PVC aukštį
64 const pvcElevation = pviElevation - (g1 * curveLength / 2);
65
66 // Apskaičiuoti atstumą nuo PVC
67 const x = station - pvcStation;
68
69 // Apskaičiuoti algebraišką nuolydžio skirtumą
70 const A = g2 - g1;
71
72 // Apskaičiuoti aukštį naudojant vertikalios kreivės lygtį
73 const elevation = pvcElevation + g1 * x + (A * x * x) / (2 * curveLength);
74
75 return elevation;
76}
77
1public class VerticalCurveCalculator {
2 /**
3 * Apskaičiuoti K vertę vertikalioje kreivėje
4 * @param curveLength Vertikalios kreivės ilgis metrais
5 * @param initialGrade Pradinis nuolydis procentais
6 * @param finalGrade Galutinis nuolydis procentais
7 * @return K vertė
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; // Lygiems nuolydžiams
13 }
14 return curveLength / gradeChange;
15 }
16
17 /**
18 * Nustatyti vertikalios kreivės tipą
19 * @param initialGrade Pradinis nuolydis procentais
20 * @param finalGrade Galutinis nuolydis procentais
21 * @return Kreivės tipas: "viršūninė", "duobinė" ar "nei viena"
22 */
23 public static String determineCurveType(double initialGrade, double finalGrade) {
24 if (initialGrade > finalGrade) {
25 return "viršūninė";
26 } else if (initialGrade < finalGrade) {
27 return "duobinė";
28 } else {
29 return "nei viena";
30 }
31 }
32
33 /**
34 * Apskaičiuoti PVC stotį ir aukštį
35 * @param pviStation PVI stotis
36 * @param pviElevation PVI aukštis metrais
37 * @param initialGrade Pradinis nuolydis procentais
38 * @param curveLength Vertikalios kreivės ilgis metrais
39 * @return Objektas, turintis stotį ir PVC aukštį
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 * Apskaičiuoti PVT stotį ir aukštį
50 * @param pviStation PVI stotis
51 * @param pviElevation PVI aukštis metrais
52 * @param finalGrade Galutinis nuolydis procentais
53 * @param curveLength Vertikalios kreivės ilgis metrais
54 * @return Objektas, turintis stotį ir PVT aukštį
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 * Vidinė klasė, atstovaujanti tašką su stotimi ir aukščiu
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
Praktiniai Pavyzdžiai
Pavyzdys 1: Greitkelio Viršūninės Kreivės Projektavimas
Greitkelio projektavimui reikia vertikalios kreivės, kad būtų pereita iš +3% nuolydžio į -2% nuolydį. PVI yra stotyje 1000+00 su 150,00 metrų aukščiu. Projektavimo greitis yra 100 km/h, kuris reikalauja minimalaus K vertės 80 pagal projektavimo standartus.
1 Veiksmas: Apskaičiuoti minimalią kreivės ilgį
Susiję įrankiai
Raskite daugiau įrankių, kurie gali būti naudingi jūsų darbo eiga.