Calcula els paràmetres de corbes verticals per al disseny de carreteres i ferrocarrils. Troba elevacions, valors K, punts alts/baixos i més per a corbes de cresta i sag en projectes de transport.
Una calculadora de curva vertical és una eina essencial en enginyeria civil que ajuda els enginyers a dissenyar transicions suaus entre diferents pendents de carretera. Les corbes verticals són corbes parabòliques utilitzades en el disseny de carreteres i ferrocarrils per crear un canvi gradual entre dues pendents o gradients diferents, assegurant condicions de conducció còmodes i un drenatge adequat. Aquesta calculadora simplifica els complexos càlculs matemàtics requerits per dissenyar corbes verticals, permetent als enginyers civils, dissenyadors de carreteres i professionals de la construcció determinar ràpidament paràmetres clau com ara elevacions de corba, punts alts i baixos, i valors K.
Ja sigui que estiguis dissenyant una autopista, una carretera local o un ferrocarril, les corbes verticals són crítiques per a la seguretat, el confort del conductor i la gestió adequada de les aigües pluvials. Aquesta calculadora completa maneja tant les corbes de cresta (on la carretera puja i després baixa) com les corbes de sag (on la carretera baixa i després puja), proporcionant tota la informació essencial necessària per al disseny adequat de l'alineació vertical en projectes d'enginyeria de transport.
Una corba vertical és una corba parabòlica utilitzada en l'alineació vertical de carreteres, autopistes, ferrocarrils i altres infraestructures de transport. Proporciona una transició suau entre dues pendents o gradients diferents, eliminant el canvi abrupt que es produiria si les pendents es trobessin en un punt. Aquesta transició suau és essencial per a:
Les corbes verticals són típicament parabòliques perquè una paràbola proporciona una taxa constant de canvi en el gradient, resultant en una transició suau que minimitza les forces experimentades pels vehicles i passatgers.
Hi ha dos tipus principals de corbes verticals utilitzades en enginyeria civil:
Corbes de Cresta: Aquestes es produeixen quan el gradient inicial és més gran que el final (per exemple, passant del +3% al -2%). La corba forma un turó o punt alt. Les corbes de cresta es dissenyen principalment en funció dels requisits de distància de detenció.
Corbes de Sag: Aquestes es produeixen quan el gradient inicial és menor que el final (per exemple, passant del -2% al +3%). La corba forma una vall o punt baix. Les corbes de sag es dissenyen típicament en funció de la distància de visibilitat dels fars i consideracions de drenatge.
Per definir completament una corba vertical, cal establir diversos paràmetres clau:
L'elevació en qualsevol punt al llarg d'una corba vertical es pot calcular utilitzant l'equació quadràtica:
On:
El valor K és una mesura de la planitud de la corba i es calcula com:
On:
Valors K més alts indiquen corbes més planes. Els estàndards de disseny sovint especifiquen valors K mínims basats en la velocitat de disseny i el tipus de corba.
Per a corbes de cresta on i , o corbes de sag on i , hi haurà un punt alt o baix dins de la corba. La estació d'aquest punt es pot calcular com:
L'elevació en aquest punt alt/baix es calcula utilitzant l'equació bàsica de la corba vertical.
Donada l'estació i elevació del PVI, es poden calcular el PVC i el PVT com:
Nota: La divisió per 200 en les fórmules d'elevació té en compte la conversió del gradient de percentatge a forma decimal i la meitat de la longitud de la corba.
Graus Iguals (g₁ = g₂): Quan els gradients inicial i final són iguals, no es necessita cap corba vertical. El valor K esdevé infinit, i la "corba" és en realitat una línia recta.
Diferències de Gradient Molt Petites: Quan la diferència entre gradients és molt petita, el valor K esdevé molt gran. Això pot requerir ajustaments a la longitud de la corba per a una implementació pràctica.
Corbes de Longitud Zero: Una corba vertical amb longitud zero no és matemàticament vàlida i s'hauria d'evitar en el disseny.
La nostra calculadora de corba vertical simplifica aquests càlculs complexos, permetent-te determinar ràpidament tots els paràmetres clau per al teu disseny de corba vertical. Aquí tens com utilitzar-la:
Després d'introduir els paràmetres requerits, la calculadora calcularà automàticament i mostrarà:
També pots consultar l'elevació en qualsevol estació específica al llarg de la corba:
La calculadora proporciona una representació visual de la corba vertical, mostrant:
Aquesta visualització t'ajuda a entendre la forma de la corba i verificar que compleixi els requisits del teu disseny.
Els càlculs de corba vertical són essencials en nombroses aplicacions d'enginyeria civil:
Les corbes verticals són components fonamentals del disseny de carreteres, assegurant condicions de conducció segures i còmodes. S'utilitzen per:
Per exemple, quan es dissenya una autopista que ha de travessar un terreny muntanyós, els enginyers han de calcular amb cura les corbes verticals per assegurar que els conductors tinguin una distància de visibilitat suficient per aturar-se amb seguretat si apareix un obstacle a la carretera.
En l'enginyeria ferroviària, les corbes verticals són crítiques per:
Les corbes verticals ferroviàries sovint tenen valors K més grans que les carreteres a causa de la limitada capacitat dels trens per navegar canvis de pendent pronunciats.
Les corbes verticals s'utilitzen en el disseny de pistes d'aeroport per:
En desenvolupar terrenys per a projectes de construcció, les corbes verticals ajuden a:
Les corbes verticals són essencials en el disseny de:
Un disseny adequat de corbes verticals assegura que l'aigua flueixi a velocitats apropiades i evita la sedimentació o l'erosió.
Encara que les corbes verticals parabòliques són l'estàndard en la majoria d'aplicacions d'enginyeria civil, hi ha alternatives:
Corbes Verticals Circulars: Utilitzades en alguns dissenys antics i en certs estàndards internacionals. Proporcionen una taxa variable de canvi en el gradient, que pot ser menys còmoda per als conductors.
Corbes Clotoides o Espirals: De vegades utilitzades en aplicacions especialitzades on es desitja una taxa de canvi gradual.
Paràboles Cúbiques: Ocasionalment utilitzades per situacions especials on es necessiten propietats de corba més complexes.
Aproximacions de Línia Recta: En dissenys molt preliminars o per terrenys molt plans, es poden utilitzar connexions de línia recta simples en lloc de veritables corbes verticals.
La corba vertical parabòlica continua sent l'estàndard per a la majoria d'aplicacions a causa de la seva simplicitat, taxa de canvi constant i procediments de disseny ben establerts.
El desenvolupament de les metodologies de disseny de corbes verticals ha evolucionat juntament amb l'enginyeria de transports:
En la construcció de carreteres antigues, les alineacions verticals sovint es determinaven pel terreny natural amb un mínim de nivellació. A mesura que els vehicles es tornaven més ràpids i comuns, la necessitat d'enfocaments més científics per al disseny de carreteres es feia evident.
La corba vertical parabòlica es va convertir en l'estàndard a principis del segle XX a mesura que els enginyers reconeixien els seus avantatges:
A mitjans del segle XX, les agències de transport van començar a desenvolupar enfocaments estandarditzats per al disseny de corbes verticals:
Amb l'adveniment dels ordinadors, el disseny de corbes verticals es va fer més sofisticat:
Avui en dia, el disseny de corbes verticals continua evolucionant amb noves investigacions sobre el comportament del conductor, la dinàmica del vehicle i consideracions ambientals.
El valor K representa la distància horitzontal necessària per aconseguir un canvi del 1% en el gradient. Es calcula dividint la longitud de la corba vertical per la diferència absoluta entre els gradients inicial i final. Valors K més alts indiquen corbes més planes. Els estàndards de disseny sovint especifiquen valors K mínims basats en la velocitat de disseny.
El tipus de corba vertical depèn de la relació entre els gradients inicial i final:
Els valors K mínims depenen de la velocitat de disseny, el tipus de corba i els estàndards de disseny aplicables. Per exemple, l'AASHTO proporciona taules de valors K mínims basats en la distància de visibilitat de detenció per a corbes de cresta i distància de visibilitat dels fars per a corbes de sag. Velocitats de disseny més altes requereixen valors K més grans per assegurar la seguretat.
El punt alt (per a corbes de cresta) o baix (per a corbes de sag) es produeix on el gradient al llarg de la corba és igual a zero. Això es pot calcular utilitzant la fórmula:
El punt alt/baix només existeix dins de la corba si aquesta estació es troba entre el PVC i el PVT.
Si els gradients inicial i final són iguals, no es necessita cap corba vertical. El resultat és simplement una línia recta amb un gradient constant. En aquest cas, el valor K seria teòricament infinit.
Les corbes verticals influeixen en la direcció i velocitat del flux d'aigua a les carreteres. Les corbes de cresta normalment faciliten el drenatge dirigint l'aigua lluny del punt alt. Les corbes de sag poden crear problemes de drenatge potencials al punt baix, sovint requerint estructures de drenatge addicionals com entrades o culverts.
En una corba vertical simètrica estàndard, el PVC es troba a la meitat de la longitud de la corba abans del PVI, i el PVT es troba a la meitat de la longitud de la corba després del PVI.
Els càlculs moderns de corbes verticals poden ser extremadament precisos quan es realitzen correctament. No obstant això, les toleràncies de construcció, les condicions de camp i el redondeig en els càlculs poden introduir petites variacions. Per a la majoria dels propòsits pràctics, els càlculs a l'centímetre més proper o a la centèsima de peu són suficients per a les elevacions.
Aquí hi ha exemples de com calcular paràmetres de corba vertical en diversos llenguatges de programació:
1' Funció VBA d'Excel per calcular l'elevació en qualsevol punt d'una corba vertical
2Function VerticalCurveElevation(initialGrade, finalGrade, curveLength, pvcStation, pvcElevation, queryStation)
3 ' Convertir gradients de percentatge a decimal
4 Dim g1 As Double
5 Dim g2 As Double
6 g1 = initialGrade / 100
7 g2 = finalGrade / 100
8
9 ' Calcular la diferència algebraica en gradients
10 Dim A As Double
11 A = g2 - g1
12
13 ' Calcular la distància del PVC
14 Dim x As Double
15 x = queryStation - pvcStation
16
17 ' Comprovar si l'estació està dins dels límits de la corba
18 If x < 0 Or x > curveLength Then
19 VerticalCurveElevation = "Fora dels límits de la corba"
20 Exit Function
21 End If
22
23 ' Calcular l'elevació utilitzant l'equació de la corba vertical
24 Dim elevation As Double
25 elevation = pvcElevation + g1 * x + (A * x * x) / (2 * curveLength)
26
27 VerticalCurveElevation = elevation
28End Function
29
30' Funció per calcular el valor K
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 """Calcular el valor K d'una corba vertical."""
5 grade_change = abs(final_grade - initial_grade)
6 if grade_change < 0.0001: # Evitar divisió per zero
7 return float('inf')
8 return curve_length / grade_change
9
10def calculate_curve_type(initial_grade, final_grade):
11 """Determinar si la corba és de cresta, sag o cap de les dues."""
12 if initial_grade > final_grade:
13 return "cresta"
14 elif initial_grade < final_grade:
15 return "sag"
16 else:
17 return "cap"
18
19def calculate_elevation_at_station(station, initial_grade, final_grade,
20 pvi_station, pvi_elevation, curve_length):
21 """Calcular l'elevació en qualsevol estació al llarg d'una corba vertical."""
22 # Calcular les estacions PVC i PVT
23 pvc_station = pvi_station - curve_length / 2
24 pvt_station = pvi_station + curve_length / 2
25
26 # Comprovar si l'estació està dins dels límits de la corba
27 if station < pvc_station or station > pvt_station:
28 return None # Fora dels límits de la corba
29
30 # Calcular l'elevació PVC
31 g1 = initial_grade / 100 # Convertir a decimal
32 g2 = final_grade / 100 # Convertir a decimal
33 pvc_elevation = pvi_elevation - (g1 * curve_length / 2)
34
35 # Calcular la distància del PVC
36 x = station - pvc_station
37
38 # Calcular la diferència algebraica en gradients
39 A = g2 - g1
40
41 # Calcular l'elevació utilitzant l'equació de la corba vertical
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 """Calcular el punt alt o baix d'una corba vertical si existeix."""
49 g1 = initial_grade / 100
50 g2 = final_grade / 100
51
52 # El punt alt/baix només existeix si els gradients tenen signes oposats
53 if g1 * g2 >= 0 and g1 != 0:
54 return None
55
56 # Calcular la distància del PVC al punt alt/baix
57 pvc_station = pvi_station - curve_length / 2
58 x = -g1 * curve_length / (g2 - g1)
59
60 # Comprovar si el punt alt/baix està dins dels límits de la corba
61 if x < 0 or x > curve_length:
62 return None
63
64 # Calcular l'estació del punt alt/baix
65 hl_station = pvc_station + x
66
67 # Calcular l'elevació PVC
68 pvc_elevation = pvi_elevation - (g1 * curve_length / 2)
69
70 # Calcular l'elevació en el punt alt/baix
71 A = g2 - g1
72 hl_elevation = pvc_elevation + g1 * x + (A * x * x) / (2 * curve_length)
73
74 return {"estació": hl_station, "elevació": hl_elevation}
75
1/**
2 * Calcular el valor K per a una corba vertical
3 * @param {number} curveLength - Longitud de la corba vertical en metres
4 * @param {number} initialGrade - Gradient inicial en percentatge
5 * @param {number} finalGrade - Gradient final en percentatge
6 * @returns {number} Valor K
7 */
8function calculateKValue(curveLength, initialGrade, finalGrade) {
9 const gradeChange = Math.abs(finalGrade - initialGrade);
10 if (gradeChange < 0.0001) {
11 return Infinity; // Per a graus iguals
12 }
13 return curveLength / gradeChange;
14}
15
16/**
17 * Determinar el tipus de corba vertical
18 * @param {number} initialGrade - Gradient inicial en percentatge
19 * @param {number} finalGrade - Gradient final en percentatge
20 * @returns {string} Tipus de corba: "cresta", "sag" o "cap"
21 */
22function determineCurveType(initialGrade, finalGrade) {
23 if (initialGrade > finalGrade) {
24 return "cresta";
25 } else if (initialGrade < finalGrade) {
26 return "sag";
27 } else {
28 return "cap";
29 }
30}
31
32/**
33 * Calcular l'elevació en qualsevol estació al llarg d'una corba vertical
34 * @param {number} station - Estació de consulta
35 * @param {number} initialGrade - Gradient inicial en percentatge
36 * @param {number} finalGrade - Gradient final en percentatge
37 * @param {number} pviStation - Estació PVI
38 * @param {number} pviElevation - Elevació PVI en metres
39 * @param {number} curveLength - Longitud de la corba vertical en metres
40 * @returns {number|null} Elevació a l'estació o null si està fora dels límits de la corba
41 */
42function calculateElevationAtStation(
43 station,
44 initialGrade,
45 finalGrade,
46 pviStation,
47 pviElevation,
48 curveLength
49) {
50 // Calcular les estacions PVC i PVT
51 const pvcStation = pviStation - curveLength / 2;
52 const pvtStation = pviStation + curveLength / 2;
53
54 // Comprovar si l'estació està dins dels límits de la corba
55 if (station < pvcStation || station > pvtStation) {
56 return null; // Fora dels límits de la corba
57 }
58
59 // Convertir gradients a decimal
60 const g1 = initialGrade / 100;
61 const g2 = finalGrade / 100;
62
63 // Calcular l'elevació PVC
64 const pvcElevation = pviElevation - (g1 * curveLength / 2);
65
66 // Calcular la distància del PVC
67 const x = station - pvcStation;
68
69 // Calcular la diferència algebraica en gradients
70 const A = g2 - g1;
71
72 // Calcular l'elevació utilitzant l'equació de la corba vertical
73 const elevation = pvcElevation + g1 * x + (A * x * x) / (2 * curveLength);
74
75 return elevation;
76}
77
1public class VerticalCurveCalculator {
2 /**
3 * Calcular el valor K per a una corba vertical
4 * @param curveLength Longitud de la corba vertical en metres
5 * @param initialGrade Gradient inicial en percentatge
6 * @param finalGrade Gradient final en percentatge
7 * @return Valor K
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; // Per a graus iguals
13 }
14 return curveLength / gradeChange;
15 }
16
17 /**
18 * Determinar el tipus de corba vertical
19 * @param initialGrade Gradient inicial en percentatge
20 * @param finalGrade Gradient final en percentatge
21 * @return Tipus de corba: "cresta", "sag" o "cap"
22 */
23 public static String determineCurveType(double initialGrade, double finalGrade) {
24 if (initialGrade > finalGrade) {
25 return "cresta";
26 } else if (initialGrade < finalGrade) {
27 return "sag";
28 } else {
29 return "cap";
30 }
31 }
32
33 /**
34 * Calcular l'estació i elevació PVC
35 * @param pviStation Estació PVI
36 * @param pviElevation Elevació PVI en metres
37 * @param initialGrade Gradient inicial en percentatge
38 * @param curveLength Longitud de la corba en metres
39 * @return Objecte que conté l'estació i elevació del 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 * Calcular l'estació i elevació PVT
50 * @param pviStation Estació PVI
51 * @param pviElevation Elevació PVI en metres
52 * @param finalGrade Gradient final en percentatge
53 * @param curveLength Longitud de la corba en metres
54 * @return Objecte que conté l'estació i elevació del 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 * Classe interna per representar un punt amb estació i elevació
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
Un disseny d'autopista requereix una corba vertical per transitar d'un gradient del +3% a un del -2%. El PVI es troba a l'estació 1000+00 amb una elevació de 150.00 metres. La velocitat de disseny és de 100 km/h, que requereix un valor K mínim de 80 segons els estàndards de disseny.
Pas 1: Calcular la longitud mínima de la corba
Descobreix més eines que podrien ser útils per al teu flux de treball