احسب معلمات المنحنيات الرأسية لتصميم الطرق والسكك الحديدية. اعثر على الارتفاعات، وقيم K، والنقاط العالية/المنخفضة، والمزيد للمنحنيات القمة والمنحنيات الساقطة في مشاريع النقل.
تعتبر حاسبة المنحنى العمودي أداة أساسية في الهندسة المدنية تساعد المهندسين على تصميم انتقالات سلسة بين درجات الطرق المختلفة. المنحنيات العمودية هي منحنيات بارابولية تستخدم في تصميم الطرق والسكك الحديدية لإنشاء تغيير تدريجي بين ميلين أو انحدارين مختلفين، مما يضمن ظروف قيادة مريحة وتصريفًا مناسبًا. تبسط هذه الحاسبة الحسابات الرياضية المعقدة المطلوبة لتصميم المنحنيات العمودية، مما يسمح لمهندسي المدنية ومصممي الطرق والمحترفين في البناء بتحديد المعلمات الرئيسية بسرعة مثل ارتفاعات المنحنى والنقاط العالية والمنخفضة وقيم K.
سواء كنت تقوم بتصميم طريق سريع أو طريق محلي أو سكة حديدية، فإن المنحنيات العمودية ضرورية للسلامة وراحة السائق وإدارة مياه الأمطار بشكل صحيح. تتعامل هذه الحاسبة الشاملة مع كل من منحنيات القمة (حيث يرتفع الطريق ثم ينخفض) ومنحنيات الحفرة (حيث ينخفض الطريق ثم يرتفع)، مما يوفر جميع المعلومات الأساسية اللازمة لتصميم المحاذاة العمودية المناسبة في مشاريع الهندسة النقل.
المنحنى العمودي هو منحنى بارابولي يستخدم في المحاذاة العمودية للطرق والطرق السريعة والسكك الحديدية وغيرها من البنية التحتية للنقل. يوفر انتقالًا سلسًا بين درجتين أو انحدارين مختلفين، مما يلغي التغيير المفاجئ الذي سيحدث إذا التقت الدرجات في نقطة. هذا الانتقال السلس ضروري لـ:
عادة ما تكون المنحنيات العمودية على شكل بارابولا لأن البارابولا توفر معدل تغيير ثابت في الدرجة، مما يؤدي إلى انتقال سلس يقلل من القوى التي تتعرض لها المركبات والركاب.
هناك نوعان رئيسيان من المنحنيات العمودية المستخدمة في الهندسة المدنية:
منحنيات القمة: تحدث عندما يكون الميل الأول أكبر من الميل النهائي (مثل الانتقال من +3% إلى -2%). يشكل المنحنى تلة أو نقطة عالية. يتم تصميم منحنيات القمة بشكل أساسي بناءً على متطلبات مسافة الرؤية للتوقف.
منحنيات الحفرة: تحدث عندما يكون الميل الأول أقل من الميل النهائي (مثل الانتقال من -2% إلى +3%). يشكل المنحنى واديًا أو نقطة منخفضة. يتم تصميم منحنيات الحفرة عادةً بناءً على مسافة رؤية المصابيح الأمامية واعتبارات التصريف.
لتعريف منحنى عمودي بالكامل، يجب تحديد عدة معلمات رئيسية:
يمكن حساب الارتفاع عند أي نقطة على طول منحنى عمودي باستخدام المعادلة التربيعية:
حيث:
تعتبر قيمة K مقياسًا لسطحية المنحنى ويتم حسابها كالتالي:
حيث:
تشير قيم K الأعلى إلى منحنيات أكثر سطحية. غالبًا ما تحدد معايير التصميم قيم K الدنيا بناءً على سرعة التصميم ونوع المنحنى.
بالنسبة لمنحنيات القمة حيث و ، أو منحنيات الحفرة حيث و ، سيكون هناك نقطة عالية أو منخفضة داخل المنحنى. يمكن حساب محطة هذه النقطة كالتالي:
ثم يتم حساب الارتفاع عند هذه النقطة العالية/المنخفضة باستخدام المعادلة الأساسية للمنحنى العمودي.
بالنظر إلى محطة وارتفاع PVI، يمكن حساب PVC و PVT كالتالي:
ملاحظة: الحساب على القسمة بـ 200 في صيغ الارتفاع يأخذ في الاعتبار تحويل الميل من النسبة المئوية إلى الشكل العشري ونصف طول المنحنى.
الميل المتساوي (g₁ = g₂): عندما تكون الدرجتان الأولية والنهائية متساويتين، فلا حاجة لمنحنى عمودي. تصبح قيمة K غير محدودة، و"المنحنى" هو في الواقع خط مستقيم.
اختلافات الميل الصغيرة جدًا: عندما يكون الفرق بين الميلين صغيرًا جدًا، تصبح قيمة K كبيرة جدًا. قد يتطلب ذلك تعديلات على طول المنحنى للتنفيذ العملي.
المنحنيات ذات الطول الصفري: لا يعتبر المنحنى العمودي بطول صفري صالحًا رياضيًا ويجب تجنبه في التصميم.
تسهل حاسبتنا للمنحنى العمودي هذه الحسابات المعقدة، مما يسمح لك بتحديد جميع المعلمات الرئيسية لتصميم المنحنى العمودي الخاص بك بسرعة. إليك كيفية استخدامها:
بعد إدخال المعلمات المطلوبة، ستحسب الحاسبة تلقائيًا وتعرض:
يمكنك أيضًا الاستفسار عن الارتفاع عند أي محطة معينة على طول المنحنى:
توفر الحاسبة تمثيلًا بصريًا للمنحنى العمودي، يظهر:
يساعدك هذا التصور على فهم شكل المنحنى والتحقق من أنه يلبي متطلبات التصميم الخاصة بك.
تعتبر حسابات المنحنى العمودي ضرورية في العديد من تطبيقات الهندسة المدنية:
تعتبر المنحنيات العمودية مكونات أساسية في تصميم الطرق، مما يضمن ظروف قيادة آمنة ومريحة. يتم استخدامها لـ:
على سبيل المثال، عند تصميم طريق سريع يحتاج إلى عبور تضاريس جبلية، يجب على المهندسين حساب المنحنيات العمودية بعناية لضمان أن يكون لدى السائقين مسافة رؤية كافية للتوقف بأمان إذا ظهر عقبة على الطريق.
في هندسة السكك الحديدية، تعتبر المنحنيات العمودية ضرورية لـ:
غالبًا ما تحتوي منحنيات السكك الحديدية على قيم K أكبر من الطرق بسبب القدرة المحدودة للقطارات على التنقل عبر تغييرات انحدار شديدة.
تستخدم المنحنيات العمودية في تصميم مدارج المطارات لـ:
عند تطوير الأراضي لمشاريع البناء، تساعد المنحنيات العمودية في:
تعتبر المنحنيات العمودية ضرورية في تصميم:
يضمن التصميم المناسب للمنحنى العمودي أن تتدفق المياه بسرعات مناسبة ويمنع الترسبات أو التآكل.
بينما تعتبر المنحنيات العمودية البارابولية هي المعيار في معظم تطبيقات الهندسة المدنية، هناك بدائل:
المنحنيات الدائرية العمودية: تستخدم في بعض التصاميم القديمة وفي بعض المعايير الدولية. توفر معدل تغيير متغير في الدرجة، مما قد يكون أقل راحة للسائقين.
المنحنيات الحلزونية أو اللولبية: تستخدم أحيانًا في تطبيقات متخصصة حيث يكون مطلوبًا زيادة تدريجية في معدل التغيير.
البارابولات التكعيبية: تستخدم أحيانًا في حالات خاصة حيث تكون خصائص المنحنى الأكثر تعقيدًا مطلوبة.
التقريبات الخطية المستقيمة: في التصاميم الأولية جدًا أو في التضاريس المسطحة جدًا، قد يتم استخدام اتصالات خطية بسيطة بدلاً من المنحنيات العمودية الحقيقية.
تظل المنحنيات العمودية البارابولية هي المعيار لمعظم التطبيقات بسبب بساطتها وخصائصها الرياضية الثابتة وإجراءات التصميم المعروفة.
تطورت منهجيات تصميم المنحنيات العمودية جنبًا إلى جنب مع الهندسة النقل:
في البناء المبكر للطرق، غالبًا ما كانت المحاذاة العمودية تحدد من خلال التضاريس الطبيعية مع الحد الأدنى من التسوية. مع زيادة سرعة المركبات وانتشارها، أصبح من الواضح الحاجة إلى أساليب أكثر علمية لتصميم الطرق.
أصبحت المنحنيات العمودية البارابولية هي المعيار في أوائل القرن العشرين حيث أدرك المهندسون مزاياها:
بحلول منتصف القرن العشرين، بدأت وكالات النقل في تطوير أساليب موحدة لتصميم المنحنيات العمودية:
مع ظهور الحواسيب، أصبحت تصميم المنحنيات العمودية أكثر تعقيدًا:
اليوم، يستمر تصميم المنحنيات العمودية في التطور مع أبحاث جديدة حول سلوك السائق وديناميات المركبات والاعتبارات البيئية.
تمثل قيمة K المسافة الأفقية المطلوبة لتحقيق تغيير بنسبة 1% في الميل. يتم حسابها بقسمة طول المنحنى العمودي على الفرق المطلق بين الدرجتين الأولية والنهائية. تشير قيم K الأعلى إلى منحنيات أكثر سطحية. غالبًا ما تحدد معايير التصميم قيم K الدنيا بناءً على سرعة التصميم ونوع المنحنى.
يختلف نوع المنحنى بناءً على العلاقة بين الدرجتين الأولية والنهائية:
تعتمد قيم K الدنيا على سرعة التصميم ونوع المنحنى والمعايير المعمول بها. على سبيل المثال، تقدم AASHTO جداول لقيم K الدنيا بناءً على مسافة الرؤية للتوقف لمنحنيات القمة ومسافة رؤية المصابيح الأمامية لمنحنيات الحفرة. تتطلب السرعات الأعلى قيم K أكبر لضمان السلامة.
تحدث النقطة العالية (لمنحنيات القمة) أو النقطة المنخفضة (لمنحنيات الحفرة) حيث يكون الميل على طول المنحنى مساويًا للصفر. يمكن حساب ذلك باستخدام الصيغة:
توجد النقطة العالية/المنخفضة فقط داخل المنحنى إذا كانت هذه المحطة تقع بين PVC و PVT.
إذا كانت الدرجتان الأولية والنهائية متساويتين، فلا حاجة لمنحنى عمودي. تكون النتيجة ببساطة خط مستقيم مع ميل ثابت. في هذه الحالة، ستكون قيمة K نظرًا نظريًا غير محدودة.
تؤثر المنحنيات العمودية على اتجاه وسرعة تدفق المياه على الطرق. عادةً ما تسهل منحنيات القمة التصريف عن طريق توجيه المياه بعيدًا عن النقطة العالية. يمكن أن تخلق منحنيات الحفرة مشكلات تصريف محتملة عند النقطة المنخفضة، مما يتطلب غالبًا هياكل تصريف إضافية مثل الفتحات أو المجاري.
في منحنى عمودي متناظر قياسي، تقع 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
يتطلب تصميم طريق سريع منحنى عمودي للانتقال من ميل +3% إلى ميل -2%. تقع محطة PVI عند 1000+00 بارتفاع 150.00 مترًا. تتطلب سرعة التصميم 100 كم/ساعة، مما يتطلب حدًا أدنى من قيمة K يبلغ 80 وفقًا لمعايير التصميم.
الخطوة 1: حساب الحد الأدنى لطول المنحنى
اكتشف المزيد من الأدوات التي قد تكون مفيدة لسير عملك