Vertikaalkõverate kalkulaator tsiviilehituse projektide jaoks
Arvutage vertikaalkõverate parameetrid teede ja raudteede projekteerimiseks. Leiate kõrgused, K-väärtused, kõrged/madalad punktid ja palju muud tõusude ja languste kõverate jaoks transpordiprojektides.
Vertikaalkõveruse kalkulaator
Sisendparameetrid
Curve Parameters
PVI Information
Tulemused
Kõveruse omadused
Peamised punktid
Jaama päring
Visualiseerimine
Dokumentatsioon
Vertikaalkõverate kalkulaator tsiviilehituses
Sissejuhatus
Vertikaalkõverate kalkulaator on tsiviilehituse oluline tööriist, mis aitab inseneridel projekteerida sujuvaid üleminekuid erinevate teede kallakute vahel. Vertikaalkõverad on parabolilised kõverad, mida kasutatakse teede ja raudtee projekteerimisel, et luua järkjärguline muutus kahe erineva kallaku või kalde vahel, tagades mugavad sõidutingimused ja nõuetekohase drenaaži. See kalkulaator lihtsustab keerulisi matemaatilisi arvutusi, mis on vajalikud vertikaalkõverate projekteerimiseks, võimaldades tsiviilehituse inseneridel, teede projekteerijatel ja ehitusprofessionaalidel kiiresti määrata olulised parameetrid, nagu kõverate kõrgused, kõrged ja madalad punktid ning K-väärtused.
Olgu tegemist maanteede, kohalike teede või raudteede projekteerimisega, on vertikaalkõverad kriitilise tähtsusega ohutuse, sõidumugavuse ja nõuetekohase sademevee juhtimise tagamiseks. See põhjalik kalkulaator käsitleb nii crest-kõveraid (kus tee tõuseb ja seejärel langeb) kui ka sag-kõveraid (kus tee langeb ja seejärel tõuseb), pakkudes kogu vajalikku teavet nõuetekohase vertikaalse joondamise projekteerimise jaoks transporditehnika projektides.
Vertikaalkõverate alused
Mis on vertikaalkõver?
Vertikaalkõver on paraboliline kõver, mida kasutatakse teede, maanteede, raudteede ja muu transporditaristu vertikaalses joondamises. See tagab sujuva ülemineku kahe erineva kallaku või kalde vahel, kõrvaldades järsu muutuse, mis toimuks, kui kallakud kohtuksid punktis. See sujuv üleminek on hädavajalik:
- Juhtide mugavuse ja ohutuse tagamine
- Juhtide nägemisdistantsi tagamine
- Sõiduki töö efektiivsus
- Tõhus drenaaž
- Teede esteetiline välimus
Vertikaalkõverad on tavaliselt parabolilised, kuna parabool tagab konstantse muutumise määra, mis tulemuseks on sujuv üleminek, mis minimeerib jõudusid, millega sõidukid ja reisijad kokku puutuvad.
Vertikaalkõverate tüübid
Tsiviilehituses on kaks peamist vertikaalkõverate tüüpi:
-
Crest-kõverad: Need tekivad siis, kui algne kallak on suurem kui lõplik kallak (nt +3%-lt -2%-le). Kõver moodustab mäe või kõrge punkti. Crest-kõverad projekteeritakse peamiselt peatamisnägemisdistantsi nõuete alusel.
-
Sag-kõverad: Need tekivad siis, kui algne kallak on väiksem kui lõplik kallak (nt -2%-lt +3%-le). Kõver moodustab orgu või madala punkti. Sag-kõverad projekteeritakse tavaliselt peadlampide nägemisdistantsi ja drenaažiküsimuste alusel.
Olulised vertikaalkõverate parameetrid
Vertikaalkõvera täielikuks määratlemiseks tuleb kindlaks määrata mitu olulist parameetrit:
- Algne kallak (g₁): Teede kallak enne kõverasse sisenemist, väljendatud protsentides
- Lõplik kallak (g₂): Teede kallak pärast kõverast väljumist, väljendatud protsentides
- Kõverate pikkus (L): Horisontaalne kaugus, mille ulatuses vertikaalkõver ulatub, tavaliselt mõõdetud meetrites või jalgades
- PVI (Vertikaalse lõike punkt): Teoreetiline punkt, kus kaks tangentset kallakut kohtuksid, kui kõverat ei oleks
- PVC (Vertikaalkõverate alguspunkt): Vertikaalkõvera alguspunkt
- PVT (Vertikaalkõverate lõpp-punkt): Vertikaalkõvera lõpp-punkt
- K-väärtus: Horisontaalne kaugus, mis on vajalik 1% muutuse saavutamiseks kallakus, kõverate lameduse mõõt
Matemaatilised valemid
Põhiline vertikaalkõvera valem
Iga punkti kõrgust vertikaalkõveras saab arvutada järgmise ruutfunktsiooni abil:
Kus:
- = Kõrgus kaugusel PVC-st
- = Kõrgus PVC-s
- = Algne kallak (decimal kujul)
- = Kaugus PVC-st
- = Kallakute algebraline erinevus ()
- = Vertikaalkõvera pikkus
K-väärtuse arvutamine
K-väärtus on kõverate lameduse mõõt ja arvutatakse järgmiselt:
Kus:
- = Vertikaalse kõveruse määr
- = Vertikaalkõvera pikkus
- = Algne kallak (protsentides)
- = Lõplik kallak (protsentides)
Suuremad K-väärtused viitavad lamedamatele kõveratele. Projekti standardid määravad sageli minimaalsete K-väärtuste alusel, mis põhinevad projekteerimiskiirusel ja kõverate tüüpidel.
Kõrge/madala punkti arvutamine
Crest-kõverate puhul, kus ja , või sag-kõverate puhul, kus ja , on kõveras kõrge või madal punkt. Selle punkti jaam saab arvutada järgmiselt:
Selle kõrge/madala punkti kõrgus arvutatakse seejärel kasutades põhivertikaalkõvera valemit.
PVC ja PVT arvutused
Arvestades PVI jaama ja kõrgust, saab PVC ja PVT arvutada järgmiselt:
Märkus: Kõrguse valemites 200-ga jagamine arvestab kallaku konverteerimist protsentidest decimal vormi ja kõvera poole pikkust.
Äärmuslikud juhtumid
-
Võrdsete kallakute puhul (g₁ = g₂): Kui algne ja lõplik kallak on võrdsed, ei ole vertikaalkõver vajalik. K-väärtus muutub lõpmatuks ja "kõver" on tegelikult sirge joon.
-
Väga väikeste kallakute erinevuste korral: Kui kallakute erinevus on väga väike, muutub K-väärtus väga suureks. See võib nõuda kõverate pikkuse kohandamist praktiliseks rakendamiseks.
-
Nullpikkusega kõverad: Vertikaalkõver, mille pikkus on null, ei ole matemaatiliselt kehtiv ja seda tuleks projekteerimisel vältida.
Kuidas kasutada vertikaalkõverate kalkulaatorit
Meie vertikaalkõverate kalkulaator lihtsustab neid keerulisi arvutusi, võimaldades teil kiiresti määrata kõiki võtmeparameetreid vertikaalkõverate projekteerimiseks. Siin on, kuidas seda kasutada:
1. Samm: Sisestage põhikõverate parameetrid
- Sisestage Algne kallak (g₁) protsentides (nt 2 2% tõusva kallaku jaoks, -3 3% langeva kallaku jaoks)
- Sisestage Lõplik kallak (g₂) protsentides
- Sisestage Kõverate pikkus meetrites
- Määrake PVI jaam (jaama väärtus vertikaalse lõike punktis)
- Sisestage PVI kõrgus meetrites
2. Samm: Vaadake tulemusi
Pärast vajalike parameetrite sisestamist arvutab kalkulaator automaatselt ja kuvab:
- Kõverate tüüp: Kas kõver on crest, sag või mitte
- K-väärtus: Vertikaalse kõveruse määr
- PVC jaama ja kõrgus: Kõverate alguspunkt
- PVT jaama ja kõrgus: Kõverate lõpp-punkt
- Kõrge/madal punkt: Kui see on asjakohane, kõrge või madala punkti jaam ja kõrgus
3. Samm: Küsige konkreetseid jaamu
Saate küsida ka kõrgust mis tahes konkreetses jaamas kõveras:
- Sisestage Küsimuse jaama väärtus
- Kalkulaator kuvab vastava kõrguse sellel jaamas
- Kui jaam on väljaspool kõvera piire, näitab kalkulaator seda
4. Samm: Visualiseerige kõver
Kalkulaator pakub vertikaalkõvera visuaalset esitlemist, näidates:
- Kõveraprofiili
- Peamisi punkte (PVC, PVI, PVT)
- Kõrge või madal punkt (kui see on asjakohane)
- Tangentsed kallakud
See visualiseerimine aitab teil mõista kõvera kuju ja kinnitada, et see vastab teie projekteerimisnõuetele.
Kasutusalad ja rakendused
Vertikaalkõverate arvutused on hädavajalikud paljudes tsiviilehituse rakendustes:
Maanteede ja teede projekteerimine
Vertikaalkõverad on teede projekteerimise põhikomponendid, tagades ohutud ja mugavad sõidutingimused. Need on vajalikud:
- Sujuvate üleminekute loomiseks erinevate teede kallakute vahel
- Juhtide piisava nägemisdistantsi tagamiseks
- Nõuetekohase drenaaži tagamiseks, et vältida vee kogunemist
- Erinevate teede klassifikatsioonide projekteerimisstandardite ja spetsifikatsioonide täitmiseks
Näiteks, kui projekteerida maanteed, mis peab ületama mägiseid maastikke, peavad insenerid hoolikalt arvutama vertikaalkõverad, et tagada, et juhtidel on piisav nägemisdistants, et ohutult peatuda, kui teel ilmub takistus.
Raudtee projekteerimine
Raudteeinsenerias on vertikaalkõverad kriitilise tähtsusega:
- Sujuva rongi toimimise tagamine
- Rööbaste ja rongikomponentide kulumise minimeerimine
- Reisijate mugavuse säilitamine
- Toimimise tagamine projekteerimiskiirusel
Raudtee vertikaalkõveratel on sageli suuremad K-väärtused kui teedel, kuna rongide võime järske kallakute muutusi navigeerida on piiratud.
Lennujaama stardirada projekteerimine
Vertikaalkõverad on lennujaama stardiraja projekteerimisel vajalikud:
- Tagada stardiraja pinna nõuetekohane drenaaž
- Tagada piisav nägemisdistants pilootidele
- Täita FAA või rahvusvahelise lennuautorituse nõudeid
- Soovitada sujuvaid stardisid ja maandumisi
Maaparanduse ja saidi tasandamine
Maaparanduse projekteerimisel on vertikaalkõverad abiks:
- Esteetiliselt meeldivate maastike loomine
- Nõuetekohase sademevee juhtimise tagamine
- Maa tööde koguste minimeerimine
- Juhtimisvõimaluste tagamine, mis vastavad ADA nõuetele
Sademevee juhtimissüsteemid
Vertikaalkõverad on hädavajalikud:
- Drenaažikanalite projekteerimisel
- Ülevoolude projekteerimisel
- Sademevee hoidlate projekteerimisel
- Kanalisatsioonisüsteemide projekteerimisel
Nõuetekohane vertikaalkõverate projekteerimine tagab, et vesi voolab sobivatel kiirusel ja takistab sadestumist või erosiooni.
Alternatiivid parabolilistele vertikaalkõveratele
Kuigi parabolilised vertikaalkõverad on enamikus tsiviilehituse rakendustes standard, on olemas alternatiive:
-
Ringikujulised vertikaalkõverad: Kasutatakse mõnedes vanemates projektides ja teatud rahvusvahelistes standardites. Need pakuvad muutuvat kallaku muutumise määra, mis võib olla juhtidele vähem mugav.
-
Clothoid või spiraalkõverad: Kasutatakse mõnikord spetsiaalsetes rakendustes, kus soovitakse järk-järgult suurenevat muutumise määra.
-
Kubi parabolad: Kasutatakse mõnikord olukordades, kus on vajalikud keerukamad kõverate omadused.
-
Sirged jooned: Eriti esialgsetes projektides või väga tasasel maastikul võib kasutada lihtsaid sirgeid ühendusi, mitte tõelisi vertikaalkõveraid.
Paraboliline vertikaalkõver jääb enamiku rakenduste standardiks, kuna see on lihtne, järjepidev muutumise määr ja hästi kehtestatud projekteerimisprotseduurid.
Vertikaalkõverate projekteerimise ajalugu
Vertikaalkõverate projekteerimise meetodid on arenenud koos transporditehnika arenguga:
Varane teede projekteerimine (enne 1900)
Varases teede ehituses määrati vertikaalsed joondused sageli loodusliku maastiku järgi, kus oli minimaalne tasandamine. Kui sõidukid muutusid kiiremaks ja levinumaks, sai selgeks, et on vajalikud teaduslikumad lähenemisviisid teede projekteerimisele.
Paraboliliste kõverate arendamine (20. sajandi algus)
Paraboliline vertikaalkõver sai 20. sajandi alguses standardiks, kui insenerid tunnustasid selle eeliseid:
- Konstantne muutumise määr
- Suhteliselt lihtsad matemaatilised omadused
- Hea mugavuse ja ehitatavuse tasakaal
Standardiseerimine (20. sajandi keskpaik)
- sajandi keskpaigaks hakkasid transpordiametid välja töötama standardiseeritud lähenemisviise vertikaalkõverate projekteerimiseks:
- AASHTO (Ameerika Ühendriikide osariikide maanteede ja transpordi amet) kehtestas suunised minimaalsete K-väärtuste kohta, mis põhinevad peatamisnägemisdistantsi nõuetel crest-kõverate jaoks ja peadlampide nägemisdistantsi nõuetel sag-kõverate jaoks.
- Sarnased standardid töötati välja rahvusvaheliselt.
- Nägemisdistants muutus peamiseks teguriks, mis määrab kõverate pikkusi.
Kaasaegsed arvutusmeetodid (20. sajandi lõpp kuni tänapäev)
Arvutite tulekuga muutus vertikaalkõverate projekteerimine keerukamaks:
- Arvutiga abistatud projekteerimistarkvara automatiseeris arvutused
- 3D-modelleerimine võimaldas paremat visualiseerimist ja integreerimist horisontaalse joondamisega
- Optimeerimisalgoritmid aitasid leida kõige efektiivsemaid vertikaalseid joondusi
Tänapäeval jätkub vertikaalkõverate projekteerimine uute teadusuuringute abil, mis käsitlevad juhi käitumist, sõiduki dünaamikat ja keskkonnaalaseid kaalutlusi.
Korduma kippuvad küsimused
Mis on K-väärtus vertikaalkõverate projekteerimises?
K-väärtus tähistab horisontaalset kaugust, mis on vajalik 1% muutuse saavutamiseks kallakus. See arvutatakse jagades vertikaalkõvera pikkuse algebralise erinevuse absoluutväärtusega algse ja lõpliku kallaku vahel. Suuremad K-väärtused viitavad lamedamatele, järkjärgulisematele kõveratele. K-väärtusi määravad sageli projekteerimisstandardid, mis põhinevad projekteerimiskiirusel ja kõverate tüüpidel.
Kuidas määrata, kas mul on vaja crest või sag vertikaalkõverat?
Vertikaalkõvera tüüp sõltub algse ja lõpliku kallaku suhte määramisest:
- Kui algne kallak on suurem kui lõplik kallak (g₁ > g₂), vajate crest-kõverat
- Kui algne kallak on väiksem kui lõplik kallak (g₁ < g₂), vajate sag-kõverat
- Kui algne ja lõplik kallak on võrdsed (g₁ = g₂), ei ole vertikaalkõverat vajalik
Milline on minimaalne K-väärtus, mida peaksin oma projekteerimisel kasutama?
Minimaalsed K-väärtused sõltuvad projekteerimiskiirusest, kõverate tüübist ja kehtivatest projekteerimisstandarditest. Näiteks AASHTO pakub minimaalsete K-väärtuste tabeleid, mis põhinevad peatamisnägemisdistantsil crest-kõverate jaoks ja peadlampide nägemisdistantsil sag-kõverate jaoks. Suuremad projekteerimiskiirus nõuavad suuremaid K-väärtusi, et tagada ohutus.
Kuidas arvutada vertikaalkõvera kõrge või madal punkt?
Kõrge punkt (crest-kõverate puhul) või madal punkt (sag-kõverate puhul) esineb seal, kus kõvera kallak on null. Seda saab arvutada järgmise valemi abil:
Kõrge/madal punkt eksisteerib ainult siis, kui see jaam jääb PVC ja PVT vahele.
Mis juhtub, kui algne ja lõplik kallak on võrdsed?
Kui algne ja lõplik kallak on võrdsed, ei ole vertikaalkõverat vajalik. Tulemuseks on lihtsalt sirge joon, millel on konstantne kallak. Sellisel juhul oleks K-väärtus teoreetiliselt lõpmatu.
Kuidas mõjutavad vertikaalkõverad drenaaži?
Vertikaalkõverad mõjutavad vee voolu suunda ja kiirus teedel. Crest-kõverad hõlbustavad tavaliselt drenaaži, suunates vett eemale kõrge punktist. Sag-kõverad võivad luua potentsiaalse drenaažiprobleemi madalas punktis, mis sageli nõuab täiendavaid drenaažistruktuure, nagu sissevoolud või ülevoolud.
Mis on PVI, PVC ja PVT erinevus?
- PVI (Vertikaalse lõike punkt): Teoreetiline punkt, kus pikendatud alg- ja lõppkallakud kohtuksid
- PVC (Vertikaalkõverate alguspunkt): Vertikaalkõvera alguspunkt
- PVT (Vertikaalkõverate lõpp-punkt): Vertikaalkõvera lõpp-punkt
Tavaliselt sümmeetrilise vertikaalkõvera puhul asub PVC PVI-st poole kõvera pikkuse võrra enne ja PVT asub poole kõvera pikkuse võrra pärast PVI-d.
Kui täpsed on vertikaalkõverate arvutused?
Kaasaegsed vertikaalkõverate arvutused võivad olla äärmiselt täpsed, kui neid tehakse õigesti. Siiski võivad ehitustolerantsid, välitingimused ja arvutustes ümardamine tuua kaasa väikseid erinevusi. Enamiku praktiliste eesmärkide jaoks on kõrguste arvutamine lähimasse sentimeetrisse või sajandikku jalga piisav.
Koodinäited
Siin on näited, kuidas arvutada vertikaalkõverate parameetreid erinevates programmeerimiskeeltes:
1' Excel VBA funktsioon, et arvutada kõrgust mis tahes punktis vertikaalkõveras
2Function VerticalCurveElevation(initialGrade, finalGrade, curveLength, pvcStation, pvcElevation, queryStation)
3 ' Muuda kallakud protsentidest decimal vormiks
4 Dim g1 As Double
5 Dim g2 As Double
6 g1 = initialGrade / 100
7 g2 = finalGrade / 100
8
9 ' Arvuta kallakute algebraline erinevus
10 Dim A As Double
11 A = g2 - g1
12
13 ' Arvuta kaugus PVC-st
14 Dim x As Double
15 x = queryStation - pvcStation
16
17 ' Kontrolli, kas jaam on kõvera piirides
18 If x < 0 Or x > curveLength Then
19 VerticalCurveElevation = "Väljaspool kõvera piire"
20 Exit Function
21 End If
22
23 ' Arvuta kõrgus vertikaalkõvera valemi abil
24 Dim elevation As Double
25 elevation = pvcElevation + g1 * x + (A * x * x) / (2 * curveLength)
26
27 VerticalCurveElevation = elevation
28End Function
29
30' Funktsioon K-väärtuse arvutamiseks
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 """Arvuta vertikaalkõvera K-väärtus."""
5 grade_change = abs(final_grade - initial_grade)
6 if grade_change < 0.0001: # Vältida nulliga jagamist
7 return float('inf')
8 return curve_length / grade_change
9
10def calculate_curve_type(initial_grade, final_grade):
11 """Määrake, kas kõver on crest, sag või mitte."""
12 if initial_grade > final_grade:
13 return "crest"
14 elif initial_grade < final_grade:
15 return "sag"
16 else:
17 return "ei midagi"
18
19def calculate_elevation_at_station(station, initial_grade, final_grade,
20 pvi_station, pvi_elevation, curve_length):
21 """Arvuta kõrgus mis tahes jaamas vertikaalkõveras."""
22 # Arvuta PVC ja PVT jaamad
23 pvc_station = pvi_station - curve_length / 2
24 pvt_station = pvi_station + curve_length / 2
25
26 # Kontrolli, kas jaam on kõvera piirides
27 if station < pvc_station or station > pvt_station:
28 return None # Väljaspool kõvera piire
29
30 # Arvuta PVC kõrgus
31 g1 = initial_grade / 100 # Muuda decimaliks
32 g2 = final_grade / 100 # Muuda decimaliks
33 pvc_elevation = pvi_elevation - (g1 * curve_length / 2)
34
35 # Arvuta kaugus PVC-st
36 x = station - pvc_station
37
38 # Arvuta kallakute algebraline erinevus
39 A = g2 - g1
40
41 # Arvuta kõrgus vertikaalkõvera valemi abil
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 """Arvuta vertikaalkõvera kõrge või madal punkt, kui see eksisteerib."""
49 g1 = initial_grade / 100
50 g2 = final_grade / 100
51
52 # Kõrge/madal punkt eksisteerib ainult siis, kui kallakud on vastupidised
53 if g1 * g2 >= 0 and g1 != 0:
54 return None
55
56 # Arvuta kaugus PVC-st kõrge/madala punkti
57 pvc_station = pvi_station - curve_length / 2
58 x = -g1 * curve_length / (g2 - g1)
59
60 # Kontrolli, kas kõrge/madal punkt on kõvera piirides
61 if x < 0 or x > curve_length:
62 return None
63
64 # Arvuta kõrge/madala punkti jaam
65 hl_station = pvc_station + x
66
67 # Arvuta PVC kõrgus
68 pvc_elevation = pvi_elevation - (g1 * curve_length / 2)
69
70 # Arvuta kõrgus kõrge/madala punkti
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 * Arvuta vertikaalkõvera K-väärtus
3 * @param {number} curveLength - Vertikaalkõvera pikkus meetrites
4 * @param {number} initialGrade - Algne kallak protsentides
5 * @param {number} finalGrade - Lõplik kallak protsentides
6 * @returns {number} K-väärtus
7 */
8function calculateKValue(curveLength, initialGrade, finalGrade) {
9 const gradeChange = Math.abs(finalGrade - initialGrade);
10 if (gradeChange < 0.0001) {
11 return Infinity; // Võrdsete kallakute puhul
12 }
13 return curveLength / gradeChange;
14}
15
16/**
17 * Määrake vertikaalkõvera tüüp
18 * @param {number} initialGrade - Algne kallak protsentides
19 * @param {number} finalGrade - Lõplik kallak protsentides
20 * @returns {string} Kõveratüüp: "crest", "sag" või "ei midagi"
21 */
22function determineCurveType(initialGrade, finalGrade) {
23 if (initialGrade > finalGrade) {
24 return "crest";
25 } else if (initialGrade < finalGrade) {
26 return "sag";
27 } else {
28 return "ei midagi";
29 }
30}
31
32/**
33 * Arvuta kõrgus mis tahes jaamas vertikaalkõveras
34 * @param {number} station - Küsimuse jaam
35 * @param {number} initialGrade - Algne kallak protsentides
36 * @param {number} finalGrade - Lõplik kallak protsentides
37 * @param {number} pviStation - PVI jaam
38 * @param {number} pviElevation - PVI kõrgus meetrites
39 * @param {number} curveLength - Vertikaalkõvera pikkus meetrites
40 * @returns {number|null} Kõrgus jaamas või null, kui väljaspool kõvera piire
41 */
42function calculateElevationAtStation(
43 station,
44 initialGrade,
45 finalGrade,
46 pviStation,
47 pviElevation,
48 curveLength
49) {
50 // Arvuta PVC ja PVT jaamad
51 const pvcStation = pviStation - curveLength / 2;
52 const pvtStation = pviStation + curveLength / 2;
53
54 // Kontrolli, kas jaam on kõvera piirides
55 if (station < pvcStation || station > pvtStation) {
56 return null; // Väljaspool kõvera piire
57 }
58
59 // Muuda kallakud decimaliks
60 const g1 = initialGrade / 100;
61 const g2 = finalGrade / 100;
62
63 // Arvuta PVC kõrgus
64 const pvcElevation = pviElevation - (g1 * curveLength / 2);
65
66 // Arvuta kaugus PVC-st
67 const x = station - pvcStation;
68
69 // Arvuta kallakute algebraline erinevus
70 const A = g2 - g1;
71
72 // Arvuta kõrgus vertikaalkõvera valemi abil
73 const elevation = pvcElevation + g1 * x + (A * x * x) / (2 * curveLength);
74
75 return elevation;
76}
77
1public class VerticalCurveCalculator {
2 /**
3 * Arvuta vertikaalkõvera K-väärtus
4 * @param curveLength - Vertikaalkõvera pikkus meetrites
5 * @param initialGrade - Algne kallak protsentides
6 * @param finalGrade - Lõplik kallak protsentides
7 * @return K-väärtus
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; // Võrdsete kallakute puhul
13 }
14 return curveLength / gradeChange;
15 }
16
17 /**
18 * Määrake vertikaalkõvera tüüp
19 * @param initialGrade - Algne kallak protsentides
20 * @param finalGrade - Lõplik kallak protsentides
21 * @return Kõveratüüp: "crest", "sag" või "ei midagi"
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 "ei midagi";
30 }
31 }
32
33 /**
34 * Arvuta PVC jaama ja kõrgus
35 * @param pviStation - PVI jaam
36 * @param pviElevation - PVI kõrgus meetrites
37 * @param initialGrade - Algne kallak protsentides
38 * @param curveLength - Vertikaalkõvera pikkus meetrites
39 * @return Objekt, mis sisaldab PVC jaama ja kõrgust
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 * Arvuta PVT jaama ja kõrgus
50 * @param pviStation - PVI jaam
51 * @param pviElevation - PVI kõrgus meetrites
52 * @param finalGrade - Lõplik kallak protsentides
53 * @param curveLength - Vertikaalkõvera pikkus meetrites
54 * @return Objekt, mis sisaldab PVT jaama ja kõrgust
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 * Sisemine klass, et esindada punkti jaama ja kõrgusega
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
Praktilised näited
Näide 1: Maantee crest-kõvera projekteerimine
Maanteede projekteerimine nõuab vertikaalkõverat, et üleminek +3% kallakult -2% kallakule. PVI asub jaamal 1000+00 kõrgusega 150,00 meetrit. Projekti kiirus on 100 km/h, mis nõuab minimaalset K-väärtust 80 vastavalt projekteerimisstandarditele.
1. Samm: Arvutage minimaalne kõverate pikkus
Seotud tööriistad
Avasta rohkem tööriistu, mis võivad olla kasulikud teie töövoos