Beregn vertikale kurveparametre til vej- og jernbanedesign. Find højder, K-værdier, høj/lav punkter og mere for top- og bundkurver i transportprojekter.
En vertikal kurve beregner er et essentielt værktøj inden for civil engineering, der hjælper ingeniører med at designe glatte overgange mellem forskellige vejgrader. Vertikale kurver er paraboliske kurver, der bruges i vej- og jernbanedesign til at skabe en gradvis ændring mellem to forskellige hældninger eller gradienter, hvilket sikrer komfortable kørselsforhold og korrekt dræning. Denne beregner forenkler de komplekse matematiske beregninger, der kræves for at designe vertikale kurver, hvilket gør det muligt for civilingeniører, vejdesignere og byggeprofessionelle hurtigt at bestemme nøgleparametre som kurvehøjder, høje og lave punkter samt K-værdier.
Uanset om du designer en motorvej, lokal vej eller jernbane, er vertikale kurver kritiske for sikkerhed, førerkomfort og korrekt stormvandshåndtering. Denne omfattende beregner håndterer både crest kurver (hvor vejen stiger og derefter falder) og sag kurver (hvor vejen dykker ned og derefter stiger), og giver alle de essentielle oplysninger, der er nødvendige for korrekt vertikal justering design i transportingeniørprojekter.
En vertikal kurve er en parabolsk kurve, der bruges i den vertikale justering af veje, motorveje, jernbaner og anden transportinfrastruktur. Den giver en glat overgang mellem to forskellige grader eller hældninger, hvilket eliminerer den pludselige ændring, der ville opstå, hvis graderne mødtes på et punkt. Denne glatte overgang er essentiel for:
Vertikale kurver er typisk paraboliske i form, fordi en parabola giver en konstant ændringshastighed i hældning, hvilket resulterer i en glat overgang, der minimerer de kræfter, der opleves af køretøjer og passagerer.
Der er to primære typer af vertikale kurver, der anvendes i civil engineering:
Crest Kurver: Disse opstår, når den indledende hældning er større end den endelige hældning (f.eks. går fra +3% til -2%). Kurven danner en bakke eller højpunkt. Crest kurver er primært designet baseret på krav til stop-sigtafstand.
Sag Kurver: Disse opstår, når den indledende hældning er mindre end den endelige hældning (f.eks. går fra -2% til +3%). Kurven danner en dal eller lavpunkt. Sag kurver er typisk designet baseret på hovedlys-sigtafstand og dræningsovervejelser.
For fuldt ud at definere en vertikal kurve skal flere nøgleparametre fastlægges:
Højden på et hvilket som helst punkt langs en vertikal kurve kan beregnes ved hjælp af den kvadratiske ligning:
Hvor:
K værdien er et mål for kurvens fladhed og beregnes som:
Hvor:
Højere K værdier indikerer fladere kurver. Designstandarder specificerer ofte minimum K værdier baseret på designhastighed og kurvetype.
For crest kurver, hvor og , eller sag kurver, hvor og , vil der være et højt eller lavt punkt inden for kurven. Stationen for dette punkt kan beregnes som:
Højden på dette høje/lave punkt beregnes derefter ved hjælp af den grundlæggende vertikale kurve ligning.
Givet PVI station og højde kan PVC og PVT beregnes som:
Bemærk: Divisionen med 200 i højdeformlerne tager højde for konverteringen af hældning fra procent til decimalform og den halve længde af kurven.
Lige Grader (g₁ = g₂): Når de indledende og endelige grader er lige, er der ikke behov for en vertikal kurve. K værdien bliver uendelig, og "kurven" er faktisk en lige linje.
Meget Små Hældningsforskelle: Når forskellen mellem graderne er meget lille, bliver K værdien meget stor. Dette kan kræve justeringer af kurvelængden til praktisk implementering.
Nul Længde Kurver: En vertikal kurve med nul længde er matematisk ugyldig og bør undgås i design.
Vores vertikal kurve beregner forenkler disse komplekse beregninger, så du hurtigt kan bestemme alle nøgleparametre for dit vertikale kurvedesign. Her er, hvordan du bruger den:
Efter indtastning af de krævede parametre vil beregneren automatisk beregne og vise:
Du kan også forespørge højden ved en hvilken som helst specifik station langs kurven:
Beregneren giver en visuel repræsentation af den vertikale kurve, der viser:
Denne visualisering hjælper dig med at forstå kurvens form og bekræfte, at den opfylder dine designkrav.
Beregninger af vertikale kurver er essentielle i adskillige civilingeniørapplikationer:
Vertikale kurver er grundlæggende komponenter i vejdesign, der sikrer sikre og komfortable kørselsforhold. De bruges til at:
For eksempel, når man designer en motorvej, der skal krydse bakket terræn, skal ingeniører omhyggeligt beregne vertikale kurver for at sikre, at førerne har tilstrækkelig sigtafstand til sikkert at stoppe, hvis der opstår et forhindring på vejen.
I jernbaneingeniørarbejde er vertikale kurver kritiske for:
Jernbanens vertikale kurver har ofte større K værdier end veje på grund af den begrænsede evne hos tog til at navigere i stejle hældningsændringer.
Vertikale kurver bruges i design af lufthavnens landingsbaner til:
Når man udvikler land til byggeprojekter, hjælper vertikale kurver med:
Vertikale kurver er essentielle i design af:
Korrekt design af vertikale kurver sikrer, at vand strømmer med passende hastigheder og forhindrer sedimentation eller erosion.
Mens paraboliske vertikale kurver er standarden i de fleste civilingeniørapplikationer, er der alternativer:
Cirkulære Vertikale Kurver: Bruges i nogle ældre designs og i visse internationale standarder. De giver en varierende ændringshastighed i hældning, hvilket kan være mindre komfortabelt for førere.
Clothoid eller Spiral Kurver: Nogle gange brugt i specialiserede applikationer, hvor en gradvist stigende ændringshastighed ønskes.
Kubiske Paraboler: Bruges lejlighedsvis til specielle situationer, hvor der er behov for mere komplekse kurveegenskaber.
Lige Linje Approksimationer: I meget indledende designs eller for meget fladt terræn kan enkle lige linjeforbindelser bruges i stedet for ægte vertikale kurver.
Den paraboliske vertikale kurve forbliver standarden for de fleste applikationer på grund af sin enkelhed, konstante ændringshastighed og velkendte designprocedurer.
Udviklingen af metoder til design af vertikale kurver er udviklet sammen med transportingeniørarbejde:
I tidlig vejbygning blev vertikale justeringer ofte bestemt af det naturlige terræn med minimal gradering. Efterhånden som køretøjer blev hurtigere og mere almindelige, blev behovet for mere videnskabelige tilgange til vejdesign tydeligt.
Den paraboliske vertikale kurve blev standarden i det tidlige 20. århundrede, da ingeniører anerkendte dens fordele:
I midten af det 20. århundrede begyndte transportagenturer at udvikle standardiserede tilgange til design af vertikale kurver:
Med fremkomsten af computere blev design af vertikale kurver mere sofistikeret:
I dag fortsætter design af vertikale kurver med at udvikle sig med ny forskning om føreradfærd, køretøjsdynamik og miljømæssige overvejelser.
K værdien repræsenterer den horisontale afstand, der kræves for at opnå en 1% ændring i hældning. Den beregnes ved at dividere længden af den vertikale kurve med den absolutte forskel mellem den indledende og endelige hældning. Højere K værdier indikerer fladere, mere gradvise kurver. K værdier specificeres ofte i designstandarder baseret på designhastighed og om kurven er en crest eller sag kurve.
Type af vertikal kurve afhænger af forholdet mellem den indledende og endelige hældning:
Minimum K værdier afhænger af designhastigheden, kurvetypen og gældende designstandarder. For eksempel angiver AASHTO tabeller over minimum K værdier baseret på stop-sigtafstand for crest kurver og hovedlys-sigtafstand for sag kurver. Højere designhastigheder kræver større K værdier for at sikre sikkerhed.
Det høje punkt (for crest kurver) eller lave punkt (for sag kurver) opstår, hvor hældningen langs kurven er lig med nul. Dette kan beregnes ved hjælp af formlen:
Det høje/lave punkt findes kun inden for kurven, hvis denne station falder mellem PVC og PVT.
Hvis de indledende og endelige grader er lige, er der ikke behov for en vertikal kurve. Resultatet er blot en lige linje med en konstant hældning. I dette tilfælde ville K værdien teoretisk være uendelig.
Længere vertikale kurver giver mere gradvise overgange mellem graderne, hvilket resulterer i større førerkomfort. Korte vertikale kurver kan skabe pludselige ændringer i vertikal acceleration, hvilket kan være ubehageligt for førere og passagerer. Den passende kurvelængde afhænger af designhastighed, hældningsforskel og stedbegrænsninger.
Matematisk kan en vertikal kurve ikke have nul længde, da dette ville skabe en øjeblikkelig ændring i hældning, hvilket ikke er en kurve. I praksis kan meget korte vertikale kurver bruges i lavhastighedsmiljøer, men de bør stadig have tilstrækkelig længde til at give en glat overgang.
Vertikale kurver påvirker retningen og hastigheden af vandstrømmen på vejbaner. Crest kurver letter typisk dræning ved at lede vand væk fra højpunktet. Sag kurver kan skabe potentielle dræningsproblemer ved lavpunktet, hvilket ofte kræver yderligere dræningsstrukturer som indløb eller kulverter.
I en standard symmetrisk vertikal kurve ligger PVC typisk halvdelen af kurvelængden før PVI, og PVT ligger halvdelen af kurvelængden efter PVI.
Moderne beregninger af vertikale kurver kan være ekstremt nøjagtige, når de udføres korrekt. Imidlertid kan konstruktions-tolerancer, feltforhold og afrunding i beregningerne introducere små variationer. For de fleste praktiske formål er beregninger til nærmeste centimeter eller hundrededel fod tilstrækkelige for højder.
Her er eksempler på, hvordan man beregner vertikale kurveparametre i forskellige programmeringssprog:
1' Excel VBA Funktion til at beregne højden ved et hvilket som helst punkt på en vertikal kurve
2Function VerticalCurveElevation(initialGrade, finalGrade, curveLength, pvcStation, pvcElevation, queryStation)
3 ' Konverter grader fra procent til decimal
4 Dim g1 As Double
5 Dim g2 As Double
6 g1 = initialGrade / 100
7 g2 = finalGrade / 100
8
9 ' Beregn algebraisk forskel i grader
10 Dim A As Double
11 A = g2 - g1
12
13 ' Beregn afstand fra PVC
14 Dim x As Double
15 x = queryStation - pvcStation
16
17 ' Tjek om stationen er inden for kurvens grænser
18 If x < 0 Or x > curveLength Then
19 VerticalCurveElevation = "Uden for kurvens grænser"
20 Exit Function
21 End If
22
23 ' Beregn højden ved hjælp af vertikal kurve ligningen
24 Dim elevation As Double
25 elevation = pvcElevation + g1 * x + (A * x * x) / (2 * curveLength)
26
27 VerticalCurveElevation = elevation
28End Function
29
30' Funktion til at beregne K-værdi
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 """Beregner K værdien for en vertikal kurve."""
5 grade_change = abs(final_grade - initial_grade)
6 if grade_change < 0.0001: # Undgå division med nul
7 return float('inf')
8 return curve_length / grade_change
9
10def calculate_curve_type(initial_grade, final_grade):
11 """Bestemmer om kurven er en crest, sag eller ingen."""
12 if initial_grade > final_grade:
13 return "crest"
14 elif initial_grade < final_grade:
15 return "sag"
16 else:
17 return "ingen"
18
19def calculate_elevation_at_station(station, initial_grade, final_grade,
20 pvi_station, pvi_elevation, curve_length):
21 """Beregner højden ved en hvilken som helst station langs en vertikal kurve."""
22 # Beregn PVC og PVT stationer
23 pvc_station = pvi_station - curve_length / 2
24 pvt_station = pvi_station + curve_length / 2
25
26 # Tjek om stationen er inden for kurvens grænser
27 if station < pvc_station or station > pvt_station:
28 return None # Uden for kurvens grænser
29
30 # Beregn PVC højde
31 g1 = initial_grade / 100 # Konverter til decimal
32 g2 = final_grade / 100 # Konverter til decimal
33 pvc_elevation = pvi_elevation - (g1 * curve_length / 2)
34
35 # Beregn afstand fra PVC
36 x = station - pvc_station
37
38 # Beregn algebraisk forskel i grader
39 A = g2 - g1
40
41 # Beregn højden ved hjælp af vertikal kurve ligningen
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 """Beregner det høje eller lave punkt i en vertikal kurve, hvis det findes."""
49 g1 = initial_grade / 100
50 g2 = final_grade / 100
51
52 # Højt/lavt punkt findes kun, hvis graderne har modsatte tegn
53 if g1 * g2 >= 0 and g1 != 0:
54 return None
55
56 # Beregn afstand fra PVC til højt/lavt punkt
57 pvc_station = pvi_station - curve_length / 2
58 x = -g1 * curve_length / (g2 - g1)
59
60 # Tjek om højt/lavt punkt er inden for kurvens grænser
61 if x < 0 or x > curve_length:
62 return None
63
64 # Beregn stationen for højt/lavt punkt
65 hl_station = pvc_station + x
66
67 # Beregn PVC højde
68 pvc_elevation = pvi_elevation - (g1 * curve_length / 2)
69
70 # Beregn højden ved højt/lavt punkt
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 * Beregn K værdi for en vertikal kurve
3 * @param {number} curveLength - Længden af den vertikale kurve i meter
4 * @param {number} initialGrade - Indledende hældning i procent
5 * @param {number} finalGrade - Endelig hældning i procent
6 * @returns {number} K værdi
7 */
8function calculateKValue(curveLength, initialGrade, finalGrade) {
9 const gradeChange = Math.abs(finalGrade - initialGrade);
10 if (gradeChange < 0.0001) {
11 return Infinity; // For lige grader
12 }
13 return curveLength / gradeChange;
14}
15
16/**
17 * Bestem kurvetypen
18 * @param {number} initialGrade - Indledende hældning i procent
19 * @param {number} finalGrade - Endelig hældning i procent
20 * @returns {string} Kurvetype: "crest", "sag" eller "ingen"
21 */
22function determineCurveType(initialGrade, finalGrade) {
23 if (initialGrade > finalGrade) {
24 return "crest";
25 } else if (initialGrade < finalGrade) {
26 return "sag";
27 } else {
28 return "ingen";
29 }
30}
31
32/**
33 * Beregn højden ved en hvilken som helst station langs en vertikal kurve
34 * @param {number} station - Forespørgselsstation
35 * @param {number} initialGrade - Indledende hældning i procent
36 * @param {number} finalGrade - Endelig hældning i procent
37 * @param {number} pviStation - PVI station
38 * @param {number} pviElevation - PVI højde i meter
39 * @param {number} curveLength - Længden af den vertikale kurve i meter
40 * @returns {number|null} Højde ved stationen eller null, hvis uden for kurvens grænser
41 */
42function calculateElevationAtStation(
43 station,
44 initialGrade,
45 finalGrade,
46 pviStation,
47 pviElevation,
48 curveLength
49) {
50 // Beregn PVC og PVT stationer
51 const pvcStation = pviStation - curveLength / 2;
52 const pvtStation = pviStation + curveLength / 2;
53
54 // Tjek om stationen er inden for kurvens grænser
55 if (station < pvcStation || station > pvtStation) {
56 return null; // Uden for kurvens grænser
57 }
58
59 // Konverter grader til decimal
60 const g1 = initialGrade / 100;
61 const g2 = finalGrade / 100;
62
63 // Beregn PVC højde
64 const pvcElevation = pviElevation - (g1 * curveLength / 2);
65
66 // Beregn afstand fra PVC
67 const x = station - pvcStation;
68
69 // Beregn algebraisk forskel i grader
70 const A = g2 - g1;
71
72 // Beregn højden ved hjælp af vertikal kurve ligningen
73 const elevation = pvcElevation + g1 * x + (A * x * x) / (2 * curveLength);
74
75 return elevation;
76}
77
1public class VerticalCurveCalculator {
2 /**
3 * Beregn K værdi for en vertikal kurve
4 * @param curveLength Længden af den vertikale kurve i meter
5 * @param initialGrade Indledende hældning i procent
6 * @param finalGrade Endelig hældning i procent
7 * @return K værdi
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 lige grader
13 }
14 return curveLength / gradeChange;
15 }
16
17 /**
18 * Bestem kurvetypen
19 * @param initialGrade Indledende hældning i procent
20 * @param finalGrade Endelig hældning i procent
21 * @return Kurvetype: "crest", "sag" eller "ingen"
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 "ingen";
30 }
31 }
32
33 /**
34 * Beregn PVC station og højde
35 * @param pviStation PVI station
36 * @param pviElevation PVI højde i meter
37 * @param initialGrade Indledende hældning i procent
38 * @param curveLength Længden af den vertikale kurve i meter
39 * @return Objekt, der indeholder station og højde af 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 * Beregn PVT station og højde
50 * @param pviStation PVI station
51 * @param pviElevation PVI højde i meter
52 * @param finalGrade Endelig hældning i procent
53 * @param curveLength Længden af den vertikale kurve i meter
54 * @return Objekt, der indeholder station og højde af 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 * Indre klasse til at repræsentere et punkt med station og højde
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
Et motorvejsdesign kræver en vertikal kurve for at overgå fra en +3% hældning til en -2% hældning. PVI er ved station 1000+00 med en højde på 150,00 meter. Designhastigheden er 100 km/t, hvilket kræver en minimum K værdi på 80 ifølge designstandarder.
Trin 1: Beregn den minimale kurvelængde
Opdag flere værktøjer, der måske kan være nyttige for din arbejdsgang.