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ė 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.
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:
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.
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.
Norint visiškai apibrėžti vertikalią kreivę, reikia nustatyti keletą pagrindinių parametrų:
Aukštis bet kuriame taške, esančiame vertikalioje kreivėje, gali būti apskaičiuotas naudojant kvadratinę lygtį:
Kur:
K vertė yra kreivės plokštumo matas ir apskaičiuojama taip:
Kur:
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ą.
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į.
Ž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.
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.
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:
Įvedus reikiamus parametrus, skaičiuoklė automatiškai apskaičiuos ir pateiks:
Taip pat galite užklausti aukštį bet kurioje konkrečioje stotyje kreivėje:
Skaičiuoklė pateikia vertikalios kreivės vizualinę atvaizdą, rodydama:
Ši vizualizacija padeda jums suprasti kreivės formą ir patikrinti, ar ji atitinka jūsų projektavimo reikalavimus.
Vertikalios kreivės skaičiavimai yra būtini daugybėje civilinės inžinerijos taikymų:
Vertikalios kreivės yra pagrindiniai kelių projektavimo komponentai, užtikrinantys saugias ir patogias važiavimo sąlygas. Jos naudojamos:
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 inžinerijoje vertikalios kreivės yra kritiškai svarbios:
Geležinkelio vertikalios kreivės dažnai turi didesnes K vertes nei keliai dėl riboto traukinių gebėjimo naviguoti staigiuose nuolydžiuose.
Vertikalios kreivės naudojamos oro uostų takelių projektavime, kad:
Plėtojant žemę statybos projektams, vertikalios kreivės padeda:
Vertikalios kreivės yra būtinos projektuojant:
Tinkamas vertikalios kreivės projektavimas užtikrina, kad vanduo tekėtų tinkamais greičiais ir užkerta kelią nuosėdoms ar erozijai.
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 metodologijų plėtra vystėsi kartu su transporto inžinerija:
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ą.
Parabolinė vertikalioji kreivė tapo standartu XX a. pradžioje, kai inžinieriai pripažino jos privalumus:
XX a. viduryje transporto agentūros pradėjo kurti standartizuotus požiūrius į vertikalios kreivės projektavimą:
Su kompiuterių atsiradimu vertikalios kreivės projektavimas tapo sudėtingesnis:
Šiandien vertikalios kreivės projektavimas ir toliau vystosi kartu su naujais tyrimais apie vairuotojų elgseną, transporto priemonių dinamiką ir aplinkosaugos apsvarstymais.
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į.
Kreivės tipas priklauso nuo pradinio ir galutinio nuolydžio santykio:
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.
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.
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ė.
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.
Standartinėje simetrinėje vertikalioje kreivėje PVC yra pusė kreivės ilgio prieš PVI, o PVT yra pusė kreivės ilgio po PVI.
Š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.
Š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
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į
Raskite daugiau įrankių, kurie gali būti naudingi jūsų darbo eiga.