محاسبه منحنی عمودی برای پروژههای مهندسی عمران
پارامترهای منحنی عمودی را برای طراحی جاده و راهآهن محاسبه کنید. ارتفاعات، مقادیر K، نقاط بالا/پایین و موارد دیگر را برای منحنیهای قله و گود در پروژههای حمل و نقل پیدا کنید.
محاسبه منحنی عمودی
پارامترهای ورودی
Curve Parameters
PVI Information
نتایج
ویژگیهای منحنی
نقاط کلیدی
پرسش ایستگاه
تصویری سازی
مستندات
ماشین حساب قوس عمودی برای مهندسی عمران
مقدمه
یک ماشین حساب قوس عمودی ابزاری ضروری در مهندسی عمران است که به مهندسان کمک میکند تا انتقالات نرم بین شیبهای مختلف جاده را طراحی کنند. قوسهای عمودی، قوسهای پارابولیک هستند که در طراحی جادهها و راهآهنها برای ایجاد تغییر تدریجی بین دو شیب یا گرادیان مختلف استفاده میشوند و شرایط رانندگی راحت و تخلیه مناسب را تضمین میکنند. این ماشین حساب محاسبات ریاضی پیچیدهای را که برای طراحی قوسهای عمودی لازم است، ساده میکند و به مهندسان عمران، طراحان جاده و حرفهایهای ساخت و ساز این امکان را میدهد که به سرعت پارامترهای کلیدی مانند ارتفاعات قوس، نقاط بالا و پایین و مقادیر K را تعیین کنند.
چه شما در حال طراحی یک بزرگراه، جاده محلی یا راهآهن باشید، قوسهای عمودی برای ایمنی، راحتی راننده و مدیریت مناسب آبهای باران حیاتی هستند. این ماشین حساب جامع هم قوسهای قله (جایی که جاده بالا میرود و سپس پایین میآید) و هم قوسهای فرورفتگی (جایی که جاده پایین میرود و سپس بالا میآید) را مدیریت میکند و تمام اطلاعات ضروری مورد نیاز برای طراحی صحیح تراز عمودی در پروژههای مهندسی حمل و نقل را فراهم میآورد.
اصول قوس عمودی
قوس عمودی چیست؟
قوس عمودی یک قوس پارابولیک است که در تراز عمودی جادهها، بزرگراهها، راهآهنها و سایر زیرساختهای حمل و نقل استفاده میشود. این قوس انتقالی نرم بین دو شیب یا گرادی مختلف فراهم میکند و تغییر ناگهانی را که اگر شیبها در یک نقطه ملاقات کنند، از بین میبرد. این انتقال نرم برای:
- راحتی و ایمنی راننده
- فاصله دید مناسب برای رانندگان
- کارایی عملکرد وسیله نقلیه
- تخلیه مؤثر
- ظاهر زیبای جاده
قوسهای عمودی معمولاً به شکل پارابولا هستند زیرا یک پارابولا نرخ تغییر ثابت در شیب را فراهم میکند و منجر به انتقال نرم میشود که نیروهای وارد بر وسیله نقلیه و مسافران را به حداقل میرساند.
انواع قوسهای عمودی
دو نوع اصلی قوسهای عمودی که در مهندسی عمران استفاده میشوند عبارتند از:
-
قوسهای قله: این قوسها زمانی رخ میدهند که شیب اولیه بیشتر از شیب نهایی باشد (به عنوان مثال، از +3% به -2%). قوس شکل یک تپه یا نقطه بالایی را تشکیل میدهد. قوسهای قله عمدتاً بر اساس نیازهای فاصله دید توقف طراحی میشوند.
-
قوسهای فرورفتگی: این قوسها زمانی رخ میدهند که شیب اولیه کمتر از شیب نهایی باشد (به عنوان مثال، از -2% به +3%). قوس شکل یک دره یا نقطه پایینی را تشکیل میدهد. قوسهای فرورفتگی معمولاً بر اساس فاصله دید چراغهای جلو و ملاحظات تخلیه طراحی میشوند.
پارامترهای کلیدی قوس عمودی
برای تعریف کامل یک قوس عمودی، چندین پارامتر کلیدی باید تعیین شوند:
- شیب اولیه (g₁): شیب جاده قبل از ورود به قوس، که به صورت درصد بیان میشود
- شیب نهایی (g₂): شیب جاده پس از خروج از قوس، که به صورت درصد بیان میشود
- طول قوس (L): فاصله افقی که قوس عمودی در آن گسترش مییابد، که معمولاً به متر یا فوت اندازهگیری میشود
- PVI (نقطه تقاطع عمودی): نقطه نظری که در آن دو شیب تند به هم میرسند اگر قوس وجود نداشت
- PVC (نقطه قوس عمودی): نقطه شروع قوس عمودی
- PVT (نقطه تند عمودی): نقطه پایان قوس عمودی
- مقدار K: فاصله افقی مورد نیاز برای دستیابی به تغییر 1% در شیب، معیاری از مسطح بودن قوس
فرمولهای ریاضی
معادله پایه قوس عمودی
ارتفاع در هر نقطهای در طول یک قوس عمودی میتواند با استفاده از معادله درجه دو محاسبه شود:
که در آن:
- = ارتفاع در فاصله از PVC
- = ارتفاع در PVC
- = شیب اولیه (به صورت اعشاری)
- = فاصله از PVC
- = تفاوت جبری در شیبها ()
- = طول قوس عمودی
محاسبه مقدار K
مقدار K معیاری از مسطح بودن قوس است و به صورت زیر محاسبه میشود:
که در آن:
- = نرخ قوس عمودی
- = طول قوس عمودی
- = شیب اولیه (درصد)
- = شیب نهایی (درصد)
مقدارهای K بالاتر نشاندهنده قوسهای مسطحتر هستند. استانداردهای طراحی معمولاً حداقل مقادیر K را بر اساس سرعت طراحی و نوع قوس مشخص میکنند.
محاسبات نقاط بالا/پایین
برای قوسهای قله که و هستند، یا قوسهای فرورفتگی که و هستند، یک نقطه بالا یا پایین درون قوس وجود خواهد داشت. ایستگاه این نقطه را میتوان به صورت زیر محاسبه کرد:
ارتفاع در این نقطه بالا/پایین سپس با استفاده از معادله پایه قوس عمودی محاسبه میشود.
محاسبات PVC و PVT
با توجه به ایستگاه و ارتفاع PVI، میتوان PVC و PVT را به صورت زیر محاسبه کرد:
توجه: تقسیم بر 200 در فرمولهای ارتفاع به تبدیل شیب از درصد به فرم اعشاری و نیمه طول قوس مربوط میشود.
موارد خاص
-
شیبهای مساوی (g₁ = g₂): زمانی که شیب اولیه و نهایی برابر باشند، نیازی به قوس عمودی نیست. مقدار K بینهایت میشود و "قوس" در واقع یک خط مستقیم است.
-
تفاوتهای شیب بسیار کوچک: زمانی که تفاوت بین شیبها بسیار کوچک باشد، مقدار K بسیار بزرگ میشود. این ممکن است نیاز به تنظیمات طول قوس برای پیادهسازی عملی داشته باشد.
-
قوسهای با طول صفر: یک قوس عمودی با طول صفر از نظر ریاضی معتبر نیست و باید در طراحی اجتناب شود.
نحوه استفاده از ماشین حساب قوس عمودی
ماشین حساب قوس عمودی ما این محاسبات پیچیده را ساده میکند و به شما این امکان را میدهد که به سرعت همه پارامترهای کلیدی را برای طراحی قوس عمودی خود تعیین کنید. در اینجا نحوه استفاده از آن آمده است:
مرحله 1: وارد کردن پارامترهای پایه قوس
- شیب اولیه (g₁) را به صورت درصدی وارد کنید (به عنوان مثال، 2 برای شیب 2% رو به بالا، -3 برای شیب 3% رو به پایین)
- شیب نهایی (g₂) را به صورت درصدی وارد کنید
- طول قوس را به متر وارد کنید
- ایستگاه PVI (مقدار ایستگاه در نقطه تقاطع عمودی) را مشخص کنید
- ارتفاع PVI را به متر وارد کنید
مرحله 2: بررسی نتایج
پس از وارد کردن پارامترهای مورد نیاز، ماشین حساب به طور خودکار محاسبه و نمایش میدهد:
- نوع قوس: اینکه آیا قوس یک قوس قله، فرورفتگی یا هیچکدام است
- مقدار K: نرخ قوس عمودی
- ایستگاه و ارتفاع PVC: نقطه شروع قوس
- ایستگاه و ارتفاع PVT: نقطه پایان قوس
- نقطه بالا/پایین: در صورت وجود، ایستگاه و ارتفاع نقطه بالاترین یا پایینترین نقطه روی قوس
مرحله 3: پرسش ایستگاههای خاص
شما همچنین میتوانید ارتفاع در هر ایستگاه خاصی در طول قوس را پرسش کنید:
- مقدار ایستگاه پرسشی را وارد کنید
- ماشین حساب ارتفاع مربوطه در آن ایستگاه را نمایش میدهد
- اگر ایستگاه خارج از محدودیتهای قوس باشد، ماشین حساب این موضوع را نشان خواهد داد
مرحله 4: تجسم قوس
ماشین حساب یک نمای بصری از قوس عمودی فراهم میکند که نشان میدهد:
- پروفایل قوس
- نقاط کلیدی (PVC، PVI، PVT)
- نقطه بالا یا پایین (در صورت وجود)
- شیبهای تند
این تجسم به شما کمک میکند تا شکل قوس را درک کرده و تأیید کنید که با الزامات طراحی شما مطابقت دارد.
موارد استفاده و کاربردها
محاسبات قوس عمودی در بسیاری از کاربردهای مهندسی عمران ضروری هستند:
طراحی بزرگراه و جاده
قوسهای عمودی اجزای بنیادی طراحی جاده هستند که شرایط رانندگی ایمن و راحت را تضمین میکنند. آنها برای:
- ایجاد انتقالات نرم بین شیبهای مختلف جاده
- تضمین فاصله دید مناسب برای رانندگان
- فراهم کردن تخلیه مناسب برای جلوگیری از تجمع آب
- رعایت استانداردها و مشخصات طراحی برای دستهبندیهای مختلف جاده
به عنوان مثال، هنگام طراحی یک بزرگراه که باید از زمینهای تپهای عبور کند، مهندسان باید به دقت قوسهای عمودی را محاسبه کنند تا اطمینان حاصل کنند که رانندگان فاصله دید کافی برای توقف ایمن در صورت بروز مانع در جاده دارند.
طراحی راهآهن
در مهندسی راهآهن، قوسهای عمودی برای:
- تضمین عملیات نرم قطار
- به حداقل رساندن سایش بر روی ریلها و اجزای قطار
- حفظ راحتی مسافران
- امکان عملیات در سرعتهای طراحی
قوسهای عمودی راهآهن معمولاً دارای مقادیر K بزرگتری نسبت به جادهها هستند به دلیل محدودیت توانایی قطارها در گذر از تغییرات شیب تند.
طراحی باند فرودگاه
قوسهای عمودی در طراحی باند فرودگاه برای:
- تضمین تخلیه مناسب سطح باند
- فراهم کردن فاصله دید مناسب برای خلبانان
- رعایت الزامات FAA یا مقامات هوانوردی بینالمللی
- تسهیل برخاستن و فرود نرم
توسعه زمین و تسطیح سایت
هنگام توسعه زمین برای پروژههای ساختمانی، قوسهای عمودی کمک میکنند:
- ایجاد فرمهای زمین زیبا
- تضمین مدیریت مناسب آبهای باران
- به حداقل رساندن مقادیر خاکبرداری
- فراهم کردن مسیرهای دسترسی که با الزامات ADA مطابقت دارند
سیستمهای مدیریت آبهای باران
قوسهای عمودی در طراحی:
- کانالهای تخلیه
- لولههای انتقال آب
- تأسیسات نگهداری آبهای باران
- سیستمهای فاضلاب
طراحی مناسب قوس عمودی تضمین میکند که آب با سرعتهای مناسب جریان یابد و از رسوبگذاری یا فرسایش جلوگیری شود.
جایگزینهای قوسهای پارابولیک عمودی
در حالی که قوسهای عمودی پارابولیک استاندارد در اکثر کاربردهای مهندسی عمران هستند، گزینههای دیگری نیز وجود دارد:
-
قوسهای دایرهای عمودی: در برخی طراحیهای قدیمی و در برخی استانداردهای بینالمللی استفاده میشوند. آنها نرخ تغییر متغیری در شیب فراهم میکنند که ممکن است برای رانندگان راحتتر نباشد.
-
قوسهای کلاچوئید یا مارپیچ: گاهی اوقات در کاربردهای خاصی که نیاز به نرخ تغییر تدریجی بیشتری دارند، استفاده میشوند.
-
پارابولاهای مکعبی: گاهی اوقات برای موقعیتهای خاصی که خواص قوس پیچیدهتری نیاز دارند، استفاده میشوند.
-
تقریبهای خطی مستقیم: در طراحیهای بسیار اولیه یا برای زمینهای بسیار مسطح، ممکن است به جای قوسهای واقعی از اتصالات خط مستقیم ساده استفاده شود.
قوس عمودی پارابولیک به دلیل سادگی، نرخ تغییر ثابت و رویههای طراحی خوب مستقر، استاندارد برای اکثر کاربردها باقی مانده است.
تاریخ طراحی قوس عمودی
توسعه روشهای طراحی قوس عمودی همزمان با مهندسی حمل و نقل تکامل یافته است:
طراحی جادههای اولیه (قبل از 1900)
در ساخت و ساز جادههای اولیه، ترازهای عمودی غالباً توسط زمین طبیعی با حداقل خاکبرداری تعیین میشدند. با افزایش سرعت و فراوانی وسایل نقلیه، نیاز به رویکردهای علمیتر در طراحی جادهها آشکار شد.
توسعه قوسهای پارابولیک (اوایل 1900)
قوس عمودی پارابولیک به استانداردی در اوایل قرن بیستم تبدیل شد زیرا مهندسان مزایای آن را شناسایی کردند:
- نرخ تغییر ثابت در شیب
- خواص ریاضی نسبتاً ساده
- تعادل خوب بین راحتی و قابلیت ساخت
استانداردسازی (اواسط 1900)
تا اواسط قرن بیستم، آژانسهای حمل و نقل شروع به توسعه رویکردهای استاندارد برای طراحی قوسهای عمودی کردند:
- AASHTO (انجمن آمریکایی مهندسان راه و حمل و نقل) راهنماهایی برای حداقل مقادیر K بر اساس سرعت طراحی ایجاد کرد
- استانداردهای مشابهی به صورت بینالمللی توسعه یافت
- فاصله دید به عنوان یک عامل اصلی در تعیین طول قوس تبدیل شد
رویکردهای محاسباتی مدرن (اواخر 1900 تا حال)
با ظهور کامپیوترها، طراحی قوس عمودی پیچیدهتر شد:
- نرمافزار طراحی با کمک کامپیوتر (CAD) محاسبات را خودکار کرد
- مدلسازی سهبعدی امکان تجسم بهتر و ادغام با تراز افقی را فراهم کرد
- الگوریتمهای بهینهسازی به یافتن ترازهای عمودی کارآمدتر کمک کردند
امروزه طراحی قوس عمودی همچنان با تحقیقات جدید در مورد رفتار راننده، دینامیک وسیله نقلیه و ملاحظات زیستمحیطی تکامل مییابد.
سوالات متداول
مقدار K در طراحی قوس عمودی چیست؟
مقدار K نمایانگر فاصله افقی مورد نیاز برای دستیابی به تغییر 1% در شیب است. این مقدار با تقسیم طول قوس عمودی بر تفاوت مطلق بین شیبهای اولیه و نهایی محاسبه میشود. مقادیر K بالاتر قوسهای مسطحتر را نشان میدهند. استانداردهای طراحی معمولاً حداقل مقادیر K را بر اساس سرعت طراحی و نوع قوس مشخص میکنند.
چگونه میتوانم تعیین کنم که آیا به قوس قله یا فرورفتگی نیاز دارم؟
نوع قوس به رابطه بین شیبهای اولیه و نهایی بستگی دارد:
- اگر شیب اولیه بیشتر از شیب نهایی باشد (g₁ > g₂)، به قوس قله نیاز دارید
- اگر شیب اولیه کمتر از شیب نهایی باشد (g₁ < g₂)، به قوس فرورفتگی نیاز دارید
- اگر شیبهای اولیه و نهایی برابر باشند (g₁ = g₂)، نیازی به قوس عمودی نیست
چه مقدار حداقل K باید برای طراحی خود استفاده کنم؟
حداقل مقادیر K به سرعت طراحی، نوع قوس و استانداردهای قابل اجرا بستگی دارد. به عنوان مثال، AASHTO جداولی از حداقل مقادیر K را بر اساس فاصله دید توقف برای قوسهای قله و فاصله دید چراغهای جلو برای قوسهای فرورفتگی ارائه میدهد. سرعتهای طراحی بالاتر نیاز به مقادیر K بزرگتری برای تضمین ایمنی دارند.
چگونه میتوانم نقطه بالا یا پایین یک قوس عمودی را محاسبه کنم؟
نقطه بالا (برای قوسهای قله) یا نقطه پایین (برای قوسهای فرورفتگی) در جایی رخ میدهد که شیب در طول قوس برابر با صفر باشد. این میتواند با استفاده از فرمول زیر محاسبه شود:
نقطه بالا/پایین فقط در صورتی درون قوس وجود دارد که این ایستگاه بین PVC و PVT قرار گیرد.
چه اتفاقی میافتد اگر شیبهای اولیه و نهایی برابر باشند؟
اگر شیبهای اولیه و نهایی برابر باشند، نیازی به قوس عمودی نیست. نتیجه یک خط مستقیم با شیب ثابت است. در این حالت، مقدار K به طور نظری بینهایت خواهد بود.
چگونه قوسهای عمودی بر تخلیه تأثیر میگذارند؟
قوسهای عمودی بر جهت و سرعت جریان آب در جادهها تأثیر میگذارند. قوسهای قله معمولاً تخلیه را تسهیل میکنند و آب را از نقطه بالایی دور میکنند. قوسهای فرورفتگی ممکن است در نقطه پایینی مشکلات تخلیه ایجاد کنند و معمولاً نیاز به ساختارهای تخلیه اضافی مانند ورودیها یا لولهها دارند.
تفاوت بین PVI، PVC و PVT چیست؟
- PVI (نقطه تقاطع عمودی): نقطه نظری که در آن خطوط شیب اولیه و نهایی به هم میرسند
- PVC (نقطه قوس عمودی): نقطه شروع قوس عمودی
- PVT (نقطه تند عمودی): نقطه پایان قوس عمودی
در یک قوس عمودی متقارن استاندارد، PVC در نیمه طول قوس قبل از PVI قرار دارد و PVT در نیمه طول قوس بعد از PVI قرار دارد.
دقت محاسبات قوس عمودی چقدر است؟
محاسبات مدرن قوس عمودی میتوانند در صورت انجام صحیح بسیار دقیق باشند. با این حال، تحملهای ساخت، شرایط میدانی و گرد کردن در محاسبات میتوانند تغییرات کوچکی را وارد کنند. برای اکثر مقاصد عملی، محاسبات تا نزدیکترین سانتیمتر یا صدم فوت برای ارتفاعات کافی هستند.
مثالهای کد
در اینجا مثالهایی از نحوه محاسبه پارامترهای قوس عمودی در زبانهای برنامهنویسی مختلف آورده شده است:
1' تابع VBA اکسل برای محاسبه ارتفاع در هر نقطهای از یک قوس عمودی
2Function VerticalCurveElevation(initialGrade, finalGrade, curveLength, pvcStation, pvcElevation, queryStation)
3 ' تبدیل شیبها از درصد به اعشاری
4 Dim g1 As Double
5 Dim g2 As Double
6 g1 = initialGrade / 100
7 g2 = finalGrade / 100
8
9 ' محاسبه تفاوت جبری در شیبها
10 Dim A As Double
11 A = g2 - g1
12
13 ' محاسبه فاصله از PVC
14 Dim x As Double
15 x = queryStation - pvcStation
16
17 ' بررسی اینکه آیا ایستگاه در محدودیتهای قوس قرار دارد
18 If x < 0 Or x > curveLength Then
19 VerticalCurveElevation = "خارج از محدودیتهای قوس"
20 Exit Function
21 End If
22
23 ' محاسبه ارتفاع با استفاده از معادله قوس عمودی
24 Dim elevation As Double
25 elevation = pvcElevation + g1 * x + (A * x * x) / (2 * curveLength)
26
27 VerticalCurveElevation = elevation
28End Function
29
30' تابع برای محاسبه مقدار 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 """محاسبه مقدار K یک قوس عمودی."""
5 grade_change = abs(final_grade - initial_grade)
6 if grade_change < 0.0001: # جلوگیری از تقسیم بر صفر
7 return float('inf')
8 return curve_length / grade_change
9
10def calculate_curve_type(initial_grade, final_grade):
11 """تعیین اینکه آیا قوس یک قوس قله، فرورفتگی یا هیچکدام است."""
12 if initial_grade > final_grade:
13 return "قله"
14 elif initial_grade < final_grade:
15 return "فرورفتگی"
16 else:
17 return "هیچکدام"
18
19def calculate_elevation_at_station(station, initial_grade, final_grade,
20 pvi_station, pvi_elevation, curve_length):
21 """محاسبه ارتفاع در هر ایستگاه در طول یک قوس عمودی."""
22 # محاسبه ایستگاههای PVC و PVT
23 pvc_station = pvi_station - curve_length / 2
24 pvt_station = pvi_station + curve_length / 2
25
26 # بررسی اینکه آیا ایستگاه در محدودیتهای قوس قرار دارد
27 if station < pvc_station or station > pvt_station:
28 return None # خارج از محدودیتهای قوس
29
30 # محاسبه ارتفاع PVC
31 g1 = initial_grade / 100 # تبدیل به اعشاری
32 g2 = final_grade / 100 # تبدیل به اعشاری
33 pvc_elevation = pvi_elevation - (g1 * curve_length / 2)
34
35 # محاسبه فاصله از PVC
36 x = station - pvc_station
37
38 # محاسبه تفاوت جبری در شیبها
39 A = g2 - g1
40
41 # محاسبه ارتفاع با استفاده از معادله قوس عمودی
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 """محاسبه نقطه بالا یا پایین قوس عمودی در صورت وجود."""
49 g1 = initial_grade / 100
50 g2 = final_grade / 100
51
52 # نقطه بالا/پایین فقط در صورتی وجود دارد که شیبها علامتهای مخالف داشته باشند
53 if g1 * g2 >= 0 and g1 != 0:
54 return None
55
56 # محاسبه فاصله از PVC به نقطه بالا/پایین
57 pvc_station = pvi_station - curve_length / 2
58 x = -g1 * curve_length / (g2 - g1)
59
60 # بررسی اینکه آیا نقطه بالا/پایین در محدودیتهای قوس قرار دارد
61 if x < 0 or x > curve_length:
62 return None
63
64 # محاسبه ایستگاه نقطه بالا/پایین
65 hl_station = pvc_station + x
66
67 # محاسبه ارتفاع PVC
68 pvc_elevation = pvi_elevation - (g1 * curve_length / 2)
69
70 # محاسبه ارتفاع در نقطه بالا/پایین
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 * محاسبه مقدار K برای یک قوس عمودی
3 * @param {number} curveLength - طول قوس عمودی به متر
4 * @param {number} initialGrade - شیب اولیه به درصد
5 * @param {number} finalGrade - شیب نهایی به درصد
6 * @returns {number} مقدار K
7 */
8function calculateKValue(curveLength, initialGrade, finalGrade) {
9 const gradeChange = Math.abs(finalGrade - initialGrade);
10 if (gradeChange < 0.0001) {
11 return Infinity; // برای شیبهای مساوی
12 }
13 return curveLength / gradeChange;
14}
15
16/**
17 * تعیین نوع قوس عمودی
18 * @param {number} initialGrade - شیب اولیه به درصد
19 * @param {number} finalGrade - شیب نهایی به درصد
20 * @returns {string} نوع قوس: "قله"، "فرورفتگی" یا "هیچکدام"
21 */
22function determineCurveType(initialGrade, finalGrade) {
23 if (initialGrade > finalGrade) {
24 return "قله";
25 } else if (initialGrade < finalGrade) {
26 return "فرورفتگی";
27 } else {
28 return "هیچکدام";
29 }
30}
31
32/**
33 * محاسبه ارتفاع در هر ایستگاه در طول یک قوس عمودی
34 * @param {number} station - ایستگاه پرسشی
35 * @param {number} initialGrade - شیب اولیه به درصد
36 * @param {number} finalGrade - شیب نهایی به درصد
37 * @param {number} pviStation - ایستگاه PVI
38 * @param {number} pviElevation - ارتفاع PVI به متر
39 * @param {number} curveLength - طول قوس عمودی به متر
40 * @returns {number|null} ارتفاع در ایستگاه یا null اگر خارج از محدودیتهای قوس باشد
41 */
42function calculateElevationAtStation(
43 station,
44 initialGrade,
45 finalGrade,
46 pviStation,
47 pviElevation,
48 curveLength
49) {
50 // محاسبه ایستگاههای PVC و PVT
51 const pvcStation = pviStation - curveLength / 2;
52 const pvtStation = pviStation + curveLength / 2;
53
54 // بررسی اینکه آیا ایستگاه در محدودیتهای قوس قرار دارد
55 if (station < pvcStation || station > pvtStation) {
56 return null; // خارج از محدودیتهای قوس
57 }
58
59 // تبدیل شیبها به اعشاری
60 const g1 = initialGrade / 100;
61 const g2 = finalGrade / 100;
62
63 // محاسبه ارتفاع PVC
64 const pvcElevation = pviElevation - (g1 * curveLength / 2);
65
66 // محاسبه فاصله از PVC
67 const x = station - pvcStation;
68
69 // محاسبه تفاوت جبری در شیبها
70 const A = g2 - g1;
71
72 // محاسبه ارتفاع با استفاده از معادله قوس عمودی
73 const elevation = pvcElevation + g1 * x + (A * x * x) / (2 * curveLength);
74
75 return elevation;
76}
77
1public class VerticalCurveCalculator {
2 /**
3 * محاسبه مقدار K برای یک قوس عمودی
4 * @param curveLength طول قوس عمودی به متر
5 * @param initialGrade شیب اولیه به درصد
6 * @param finalGrade شیب نهایی به درصد
7 * @return مقدار 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; // برای شیبهای مساوی
13 }
14 return curveLength / gradeChange;
15 }
16
17 /**
18 * تعیین نوع قوس عمودی
19 * @param initialGrade شیب اولیه به درصد
20 * @param finalGrade شیب نهایی به درصد
21 * @return نوع قوس: "قله"، "فرورفتگی" یا "هیچکدام"
22 */
23 public static String determineCurveType(double initialGrade, double finalGrade) {
24 if (initialGrade > finalGrade) {
25 return "قله";
26 } else if (initialGrade < finalGrade) {
27 return "فرورفتگی";
28 } else {
29 return "هیچکدام";
30 }
31 }
32
33 /**
34 * محاسبه ایستگاه و ارتفاع PVC
35 * @param pviStation ایستگاه PVI
36 * @param pviElevation ارتفاع PVI به متر
37 * @param initialGrade شیب اولیه به درصد
38 * @param curveLength طول قوس عمودی به متر
39 * @return شیء حاوی ایستگاه و ارتفاع 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 * محاسبه ایستگاه و ارتفاع PVT
50 * @param pviStation ایستگاه PVI
51 * @param pviElevation ارتفاع PVI به متر
52 * @param finalGrade شیب نهایی به درصد
53 * @param curveLength طول قوس عمودی به متر
54 * @return شیء حاوی ایستگاه و ارتفاع 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 * کلاس داخلی برای نمایش یک نقطه با ایستگاه و ارتفاع
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
مثالهای عملی
مثال 1: طراحی قوس قله بزرگراه
طراحی یک بزرگراه نیاز به یک قوس عمودی دارد تا از شیب +3% به شیب -2% منتقل شود. PVI در ایستگاه 1000+00 با ارتفاع 150.00 متر قرار دارد. سرعت طراحی 100 کیلومتر در ساعت است که نیاز به حداقل مقدار K برابر با 80 دارد طبق استانداردهای طراحی.
مرحله 1: محاسبه حداقل طول قوس
ابزارهای مرتبط
کشف ابزارهای بیشتری که ممکن است برای جریان کاری شما مفید باشند