Beregne vertikale kurveparametere for vei- og jernbanedesign. Finn høyder, K-verdier, høy/lav punkter og mer for topp- og bunnkurver i transportprosjekter.
En vertikal kurve kalkulator er et viktig verktøy innen sivilingeniørfag som hjelper ingeniører med å designe jevne overganger mellom forskjellige veigrader. Vertikale kurver er parabolsk kurver som brukes i veien og jernbanedesign for å skape en gradvis endring mellom to forskjellige skråninger eller gradienter, og sikrer komfortable kjøreforhold og riktig drenering. Denne kalkulatoren forenkler de komplekse matematiske beregningene som kreves for å designe vertikale kurver, noe som gjør det mulig for sivilingeniører, veidesignere og byggeprofesjonelle å raskt bestemme viktige parametere som kurvehøyder, høye og lave punkter, og K-verdier.
Enten du designer en motorvei, lokal vei eller jernbane, er vertikale kurver avgjørende for sikkerhet, førerkomfort og riktig stormvannshåndtering. Denne omfattende kalkulatoren håndterer både toppkurver (hvor veien stiger og deretter faller) og sagkurver (hvor veien dypper ned og deretter stiger), og gir all nødvendig informasjon for riktig vertikal justering design i transportingeniørprosjekter.
En vertikal kurve er en parabolsk kurve som brukes i den vertikale justeringen av veier, motorveier, jernbaner og annen transportinfrastruktur. Den gir en jevn overgang mellom to forskjellige grader eller skråninger, og eliminerer den brå endringen som ville oppstått hvis gradene møttes på et punkt. Denne jevne overgangen er avgjørende for:
Vertikale kurver er vanligvis parabolsk i form fordi en parabola gir en konstant endringshastighet i grad, noe som resulterer i en jevn overgang som minimerer kreftene som oppleves av kjøretøy og passasjerer.
Det er to primære typer vertikale kurver som brukes i sivilingeniørfag:
Toppkurver: Disse oppstår når den innledende graden er større enn den endelige graden (f.eks. går fra +3% til -2%). Kurven danner en bakke eller høydepunkt. Toppkurver er primært designet basert på krav til stoppende synsavstand.
Sagkurver: Disse oppstår når den innledende graden er mindre enn den endelige graden (f.eks. går fra -2% til +3%). Kurven danner en dal eller lavt punkt. Sagkurver er vanligvis designet basert på frontlys synsavstand og dreneringshensyn.
For å fullt definere en vertikal kurve, må flere nøkkelparametere etableres:
Høyden på et hvilket som helst punkt langs en vertikal kurve kan beregnes ved hjelp av den kvadratiske ligningen:
Hvor:
K verdien er et mål på kurvens flathet og beregnes som:
Hvor:
Høyere K verdier indikerer flatere kurver. Designstandarder spesifiserer ofte minimum K verdier basert på designhastighet og kurvetype.
For toppkurver hvor og , eller sagkurver hvor og , vil det være et høyt eller lavt punkt innen kurven. Stasjonen for dette punktet kan beregnes som:
Høyden på dette høye/lave punktet beregnes deretter ved å bruke den grunnleggende vertikale kurve ligningen.
Gitt PVI stasjonen og høyden, kan PVC og PVT beregnes som:
Merk: Divisjonen med 200 i høydeformlene tar hensyn til konverteringen av grad fra prosent til desimalform og halvlengden av kurven.
Like Grader (g₁ = g₂): Når den innledende og den endelige graden er like, er det ikke nødvendig med en vertikal kurve. K verdien blir uendelig, og "kurven" er faktisk en rett linje.
Veldig Små Grad Forskjeller: Når forskjellen mellom gradene er veldig liten, blir K verdien veldig stor. Dette kan kreve justeringer av kurvelengden for praktisk implementering.
Null Lengde Kurver: En vertikal kurve med null lengde er ikke matematisk gyldig og bør unngås i design.
Vår vertikal kurve kalkulator forenkler disse komplekse beregningene, og lar deg raskt bestemme alle nøkkelparametere for ditt vertikale kurvedesign. Slik bruker du den:
Etter å ha skrevet inn de nødvendige parameterne, vil kalkulatoren automatisk beregne og vise:
Du kan også spørre om høyden ved en spesifikk stasjon langs kurven:
Kalkulatoren gir en visuell representasjon av den vertikale kurven, som viser:
Denne visualiseringen hjelper deg med å forstå kurvens form og verifisere at den oppfyller designkravene dine.
Vertikale kurveberegninger er avgjørende i mange sivilingeniørapplikasjoner:
Vertikale kurver er grunnleggende komponenter av veidesign, og sikrer trygge og komfortable kjøreforhold. De brukes til å:
For eksempel, når man designer en motorvei som må krysse kupert terreng, må ingeniører nøye beregne vertikale kurver for å sikre at sjåfører har tilstrekkelig synsavstand til å stoppe trygt hvis et hinder dukker opp på veien.
I jernbaneingeniørfag er vertikale kurver kritiske for:
Jernbanevertikale kurver har ofte større K verdier enn veier på grunn av den begrensede evnen til tog til å navigere bratte gradendringer.
Vertikale kurver brukes i flyplassrullebane design for å:
Når man utvikler land for byggeprosjekter, hjelper vertikale kurver med å:
Vertikale kurver er avgjørende i utformingen av:
Riktig design av vertikale kurver sikrer at vann strømmer med passende hastigheter og forhindrer sedimentering eller erosjon.
Selv om paraboliske vertikale kurver er standard i de fleste sivilingeniørapplikasjoner, finnes det alternativer:
Sirkulære Vertikale Kurver: Brukes i noen eldre design og i visse internasjonale standarder. De gir en variabel endringshastighet i grad, noe som kan være mindre komfortabelt for sjåfører.
Klotoid eller Spiral Kurver: Brukes noen ganger i spesialiserte applikasjoner der en gradvis økende endringsrate er ønskelig.
Kubeparaboler: Brukes av og til for spesielle situasjoner der mer komplekse kurveegenskaper er nødvendige.
Rett Linje Approksimasjoner: I svært tidlige design eller for veldig flatt terreng kan enkle rettlinjede forbindelser brukes i stedet for ekte vertikale kurver.
Den paraboliske vertikale kurven forblir standarden for de fleste applikasjoner på grunn av sin enkelhet, konsistente endringsrate, og veletablerte designprosedyrer.
Utviklingen av metoder for vertikal kurve design har utviklet seg sammen med transportingeniørfag:
I tidlig veibygging ble vertikale justeringer ofte bestemt av det naturlige terrenget med minimal gradering. Etter hvert som kjøretøy ble raskere og mer vanlige, ble behovet for mer vitenskapelige tilnærminger til veidesign åpenbart.
Den paraboliske vertikale kurven ble standarden tidlig på 1900-tallet da ingeniører anerkjente fordelene:
Ved midten av 1900-tallet begynte transportbyråer å utvikle standardiserte tilnærminger til vertikal kurve design:
Med fremveksten av datamaskiner ble vertikal kurve design mer sofistikert:
I dag fortsetter vertikal kurve design å utvikle seg med ny forskning på føreratferd, kjøretøy dynamikk og miljøhensyn.
K verdien representerer den horisontale avstanden som kreves for å oppnå en 1% endring i grad. Den beregnes ved å dele lengden av den vertikale kurven med den absolutte forskjellen mellom den innledende og den endelige graden. Høyere K verdier indikerer flatere, mer gradvise kurver. K verdier spesifiseres ofte i designstandarder basert på designhastighet og om kurven er en topp eller sagkurve.
Type vertikal kurve avhenger av forholdet mellom den innledende og den endelige graden:
Minimum K verdier avhenger av designhastighet, kurvetype og gjeldende designstandarder. For eksempel gir AASHTO tabeller over minimum K verdier basert på stoppende synsavstand for toppkurver og frontlys synsavstand for sagkurver. Høyere designhastigheter krever større K verdier for å sikre sikkerhet.
Det høye punktet (for toppkurver) eller lave punktet (for sagkurver) oppstår der graden langs kurven er lik null. Dette kan beregnes ved hjelp av formelen:
Det høye/lave punktet eksisterer bare innenfor kurven hvis denne stasjonen faller mellom PVC og PVT.
Hvis den innledende og den endelige graden er like, er det ikke nødvendig med en vertikal kurve. Resultatet er ganske enkelt en rett linje med en konstant grad. I dette tilfellet ville K verdien teoretisk være uendelig.
Lengre vertikale kurver gir mer gradvise overganger mellom grader, noe som resulterer i større førerkomfort. Korte vertikale kurver kan skape brå endringer i vertikal akselerasjon, noe som kan være ubehagelig for sjåfører og passasjerer. Den passende kurvelengden avhenger av designhastighet, gradforskjell og stedbegrensninger.
Matematisk kan en vertikal kurve ikke ha null lengde, da dette ville skape en umiddelbar endring i grad, noe som ikke er en kurve. I praksis kan veldig korte vertikale kurver brukes i lavhastighetsmiljøer, men de bør fortsatt ha tilstrekkelig lengde for å gi en jevn overgang.
Vertikale kurver påvirker retningen og hastigheten på vannstrømmen på veier. Toppkurver letter vanligvis drenering ved å lede vann bort fra høydepunktet. Sagkurver kan skape potensielle dreneringsproblemer ved lavpunktet, noe som ofte krever ekstra dreneringsstrukturer som inntak eller kulverter.
I en standard symmetrisk vertikal kurve ligger PVC vanligvis halvveis mellom PVI, og PVT ligger halvveis etter PVI.
Moderne beregninger av vertikale kurver kan være ekstremt nøyaktige når de utføres korrekt. Imidlertid kan konstruksjonstoleranser, feltforhold og avrunding i beregningene introdusere små variasjoner. For de fleste praktiske formål er beregninger til nærmeste centimeter eller hundredel av en fot tilstrekkelige for høyder.
Her er eksempler på hvordan man beregner vertikale kurveparametere i forskjellige programmeringsspråk:
1' Excel VBA Funksjon for å beregne høyde ved et hvilket som helst punkt på en vertikal kurve
2Function VerticalCurveElevation(initialGrade, finalGrade, curveLength, pvcStation, pvcElevation, queryStation)
3 ' Konverter grader fra prosent til desimal
4 Dim g1 As Double
5 Dim g2 As Double
6 g1 = initialGrade / 100
7 g2 = finalGrade / 100
8
9 ' Beregn algebraisk forskjell i grader
10 Dim A As Double
11 A = g2 - g1
12
13 ' Beregn avstand fra PVC
14 Dim x As Double
15 x = queryStation - pvcStation
16
17 ' Sjekk om stasjonen er innenfor kurvens grenser
18 If x < 0 Or x > curveLength Then
19 VerticalCurveElevation = "Utenfor kurvens grenser"
20 Exit Function
21 End If
22
23 ' Beregn høyde ved hjelp av 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' Funksjon for å beregne K verdi
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 """Beregne K verdien av en vertikal kurve."""
5 grade_change = abs(final_grade - initial_grade)
6 if grade_change < 0.0001: # Unngå divisjon med null
7 return float('inf')
8 return curve_length / grade_change
9
10def calculate_curve_type(initial_grade, final_grade):
11 """Bestemme om kurven er en topp, sag eller ingen."""
12 if initial_grade > final_grade:
13 return "topp"
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 """Beregne høyde ved en hvilken som helst stasjon langs en vertikal kurve."""
22 # Beregn PVC og PVT stasjoner
23 pvc_station = pvi_station - curve_length / 2
24 pvt_station = pvi_station + curve_length / 2
25
26 # Sjekk om stasjonen er innenfor kurvens grenser
27 if station < pvc_station or station > pvt_station:
28 return None # Utenfor kurvens grenser
29
30 # Beregn PVC høyde
31 g1 = initial_grade / 100 # Konverter til desimal
32 g2 = final_grade / 100 # Konverter til desimal
33 pvc_elevation = pvi_elevation - (g1 * curve_length / 2)
34
35 # Beregn avstand fra PVC
36 x = station - pvc_station
37
38 # Beregn algebraisk forskjell i grader
39 A = g2 - g1
40
41 # Beregn høyde ved hjelp av 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 """Beregne det høye eller lave punktet på en vertikal kurve hvis det eksisterer."""
49 g1 = initial_grade / 100
50 g2 = final_grade / 100
51
52 # Høyt/lavt punkt eksisterer bare hvis gradene har motsatte tegn
53 if g1 * g2 >= 0 and g1 != 0:
54 return None
55
56 # Beregn avstand fra PVC til høyt/lavt punkt
57 pvc_station = pvi_station - curve_length / 2
58 x = -g1 * curve_length / (g2 - g1)
59
60 # Sjekk om høyt/lavt punkt er innenfor kurvens grenser
61 if x < 0 or x > curve_length:
62 return None
63
64 # Beregn stasjonen for høyt/lavt punkt
65 hl_station = pvc_station + x
66
67 # Beregn PVC høyde
68 pvc_elevation = pvi_elevation - (g1 * curve_length / 2)
69
70 # Beregn høyde ved høyt/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 verdi for en vertikal kurve
3 * @param {number} curveLength - Lengden på den vertikale kurven i meter
4 * @param {number} initialGrade - Innledende grad i prosent
5 * @param {number} finalGrade - Endelig grad i prosent
6 * @returns {number} K verdi
7 */
8function calculateKValue(curveLength, initialGrade, finalGrade) {
9 const gradeChange = Math.abs(finalGrade - initialGrade);
10 if (gradeChange < 0.0001) {
11 return Infinity; // For like grader
12 }
13 return curveLength / gradeChange;
14}
15
16/**
17 * Bestem typen vertikal kurve
18 * @param {number} initialGrade - Innledende grad i prosent
19 * @param {number} finalGrade - Endelig grad i prosent
20 * @returns {string} Kurvetype: "topp", "sag", eller "ingen"
21 */
22function determineCurveType(initialGrade, finalGrade) {
23 if (initialGrade > finalGrade) {
24 return "topp";
25 } else if (initialGrade < finalGrade) {
26 return "sag";
27 } else {
28 return "ingen";
29 }
30}
31
32/**
33 * Beregn høyde ved en hvilken som helst stasjon langs en vertikal kurve
34 * @param {number} station - Spørsmål stasjon
35 * @param {number} initialGrade - Innledende grad i prosent
36 * @param {number} finalGrade - Endelig grad i prosent
37 * @param {number} pviStation - PVI stasjon
38 * @param {number} pviElevation - PVI høyde i meter
39 * @param {number} curveLength - Lengden på den vertikale kurven i meter
40 * @returns {number|null} Høyde ved stasjonen eller null hvis utenfor kurvens grenser
41 */
42function calculateElevationAtStation(
43 station,
44 initialGrade,
45 finalGrade,
46 pviStation,
47 pviElevation,
48 curveLength
49) {
50 // Beregn PVC og PVT stasjoner
51 const pvcStation = pviStation - curveLength / 2;
52 const pvtStation = pviStation + curveLength / 2;
53
54 // Sjekk om stasjonen er innenfor kurvens grenser
55 if (station < pvcStation || station > pvtStation) {
56 return null; // Utenfor kurvens grenser
57 }
58
59 // Konverter grader til desimal
60 const g1 = initialGrade / 100;
61 const g2 = finalGrade / 100;
62
63 // Beregn PVC høyde
64 const pvcElevation = pviElevation - (g1 * curveLength / 2);
65
66 // Beregn avstand fra PVC
67 const x = station - pvcStation;
68
69 // Beregn algebraisk forskjell i grader
70 const A = g2 - g1;
71
72 // Beregn høyde ved hjelp av 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 verdi for en vertikal kurve
4 * @param curveLength Lengden på den vertikale kurven i meter
5 * @param initialGrade Innledende grad i prosent
6 * @param finalGrade Endelig grad i prosent
7 * @return K verdi
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 like grader
13 }
14 return curveLength / gradeChange;
15 }
16
17 /**
18 * Bestem typen vertikal kurve
19 * @param initialGrade Innledende grad i prosent
20 * @param finalGrade Endelig grad i prosent
21 * @return Kurvetype: "topp", "sag", eller "ingen"
22 */
23 public static String determineCurveType(double initialGrade, double finalGrade) {
24 if (initialGrade > finalGrade) {
25 return "topp";
26 } else if (initialGrade < finalGrade) {
27 return "sag";
28 } else {
29 return "ingen";
30 }
31 }
32
33 /**
34 * Beregn PVC stasjon og høyde
35 * @param pviStation PVI stasjon
36 * @param pviElevation PVI høyde i meter
37 * @param initialGrade Innledende grad i prosent
38 * @param curveLength Lengden på den vertikale kurven i meter
39 * @return Objekt som inneholder stasjon og høyde for 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 stasjon og høyde
50 * @param pviStation PVI stasjon
51 * @param pviElevation PVI høyde i meter
52 * @param finalGrade Endelig grad i prosent
53 * @param curveLength Lengden på den vertikale kurven i meter
54 * @return Objekt som inneholder stasjon og høyde for 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 for å representere et punkt med stasjon og høyde
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
En motorveidesign krever en vertikal kurve for å overføre fra en +3% grad til en -2% grad. PVI er på stasjon 1000+00 med en høyde på 150,00 meter. Designhastigheten er 100 km/t, som krever en minimum K verdi på 80 i henhold til designstandarder.
Trinn 1: Beregn minimum kurvelengde
Oppdag flere verktøy som kan være nyttige for arbeidsflyten din