حاسبة المنحنيات الرأسية لمشاريع الهندسة المدنية
احسب معلمات المنحنيات الرأسية لتصميم الطرق والسكك الحديدية. اعثر على الارتفاعات، وقيم 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)
في البناء المبكر للطرق، غالبًا ما كانت المحاذاة العمودية تحدد من خلال التضاريس الطبيعية مع الحد الأدنى من التسوية. مع زيادة سرعة المركبات وانتشارها، أصبح من الواضح الحاجة إلى أساليب أكثر علمية لتصميم الطرق.
تطوير المنحنيات البارابولية (أوائل القرن العشرين)
أصبحت المنحنيات العمودية البارابولية هي المعيار في أوائل القرن العشرين حيث أدرك المهندسون مزاياها:
- معدل تغيير ثابت في الدرجة
- خصائص رياضية بسيطة نسبيًا
- توازن جيد بين الراحة وقابلية البناء
التوحيد (منتصف القرن العشرين)
بحلول منتصف القرن العشرين، بدأت وكالات النقل في تطوير أساليب موحدة لتصميم المنحنيات العمودية:
- وضعت AASHTO (الرابطة الأمريكية لهيئات النقل السريع والطرق) إرشادات لقيم K الدنيا بناءً على سرعة التصميم
- تم تطوير معايير مماثلة دوليًا
- أصبحت مسافة الرؤية عاملاً رئيسيًا في تحديد أطوال المنحنيات
الأساليب الحسابية الحديثة (أواخر القرن العشرين حتى الحاضر)
مع ظهور الحواسيب، أصبحت تصميم المنحنيات العمودية أكثر تعقيدًا:
- أتمت برمجيات التصميم بمساعدة الكمبيوتر (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' دالة Excel 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: حساب الحد الأدنى لطول المنحنى
الأدوات ذات الصلة
اكتشف المزيد من الأدوات التي قد تكون مفيدة لسير عملك