রাস্তা এবং রেলপথ ডিজাইনের জন্য উল্লম্ব বক্রতা প্যারামিটার গণনা করুন। ক্রেস্ট এবং সাগ বক্রতার জন্য উচ্চতা, K মান, উচ্চ/নিম্ন পয়েন্ট এবং আরও অনেক কিছু খুঁজুন পরিবহন প্রকল্পে।
একটি উল্লম্ব বক্ররেখা ক্যালকুলেটর সিভিল ইঞ্জিনিয়ারিংয়ের একটি অপরিহার্য সরঞ্জাম যা ইঞ্জিনিয়ারদের বিভিন্ন সড়ক গ্রেডের মধ্যে মসৃণ স্থানান্তর ডিজাইন করতে সাহায্য করে। উল্লম্ব বক্ররেখা হল প্যারাবোলিক বক্ররেখা যা সড়ক এবং রেলপথের ডিজাইনে ব্যবহৃত হয় যাতে দুটি ভিন্ন ঢাল বা গ্রেডের মধ্যে ধীরে ধীরে পরিবর্তন তৈরি করা যায়, যা আরামদায়ক ড্রাইভিং শর্ত এবং সঠিক নিষ্কাশন নিশ্চিত করে। এই ক্যালকুলেটরটি উল্লম্ব বক্ররেখা ডিজাইনের জন্য প্রয়োজনীয় জটিল গাণিতিক গণনাগুলি সহজ করে, সিভিল ইঞ্জিনিয়ার, সড়ক ডিজাইনার এবং নির্মাণ পেশাদারদের জন্য দ্রুত মূল প্যারামিটারগুলি নির্ধারণ করতে সক্ষম করে, যেমন বক্ররেখার উচ্চতা, উচ্চ এবং নিম্ন পয়েন্ট এবং K মান।
আপনি একটি হাইওয়ে, স্থানীয় সড়ক বা রেলপথ ডিজাইন করছেন কিনা, উল্লম্ব বক্ররেখা নিরাপত্তা, ড্রাইভার আরাম এবং সঠিক বৃষ্টির জল ব্যবস্থাপনার জন্য অত্যন্ত গুরুত্বপূর্ণ। এই ব্যাপক ক্যালকুলেটরটি উভয় শিখর বক্ররেখা (যেখানে সড়কটি ওঠে তারপর পড়ে) এবং সাগ বক্ররেখা (যেখানে সড়কটি নিচে ডুব দেয় তারপর ওঠে) পরিচালনা করে, পরিবহন প্রকৌশল প্রকল্পগুলিতে সঠিক উল্লম্ব সমন্বয় ডিজাইনের জন্য প্রয়োজনীয় সমস্ত তথ্য প্রদান করে।
একটি উল্লম্ব বক্ররেখা হল সড়ক, হাইওয়ে, রেলপথ এবং অন্যান্য পরিবহন অবকাঠামোর উল্লম্ব সমন্বয়ের জন্য ব্যবহৃত একটি প্যারাবোলিক বক্ররেখা। এটি দুটি ভিন্ন গ্রেড বা ঢালের মধ্যে একটি মসৃণ স্থানান্তর প্রদান করে, যা একটি পয়েন্টে গ্রেডগুলির মধ্যে তীব্র পরিবর্তন ঘটায়। এই মসৃণ স্থানান্তরটি নিম্নলিখিতগুলির জন্য অত্যাবশ্যক:
উল্লম্ব বক্ররেখাগুলি সাধারণত প্যারাবোলিক আকারের হয় কারণ একটি প্যারাবোলা গ্রেডের পরিবর্তনের একটি স্থির হার প্রদান করে, যার ফলে একটি মসৃণ স্থানান্তর ঘটে যা যানবাহন এবং যাত্রীদের অভিজ্ঞতাকে সর্বনিম্ন করে।
সিভিল ইঞ্জিনিয়ারিংয়ে ব্যবহৃত দুটি প্রাথমিক প্রকারের উল্লম্ব বক্ররেখা রয়েছে:
শিখর বক্ররেখা: এগুলি ঘটে যখন প্রাথমিক গ্রেড চূড়ান্ত গ্রেডের চেয়ে বেশি (যেমন, +3% থেকে -2% এ যাওয়া)। বক্ররেখাটি একটি পাহাড় বা উচ্চ পয়েন্ট গঠন করে। শিখর বক্ররেখাগুলি প্রধানত থামার দৃশ্যমানতার প্রয়োজনীয়তার ভিত্তিতে ডিজাইন করা হয়।
সাগ বক্ররেখা: এগুলি ঘটে যখন প্রাথমিক গ্রেড চূড়ান্ত গ্রেডের চেয়ে কম (যেমন, -2% থেকে +3% এ যাওয়া)। বক্ররেখাটি একটি উপত্যকা বা নিম্ন পয়েন্ট গঠন করে। সাগ বক্ররেখাগুলি সাধারণত হেডলাইট দৃশ্যমানতা এবং নিষ্কাশন বিবেচনাগুলির ভিত্তিতে ডিজাইন করা হয়।
একটি উল্লম্ব বক্ররেখাকে সম্পূর্ণরূপে সংজ্ঞায়িত করতে, বেশ কয়েকটি প্রধান প্যারামিটার প্রতিষ্ঠিত করতে হবে:
উল্লম্ব বক্ররেখার যে কোনও পয়েন্টের উচ্চতা গণনা করা যেতে পারে নিম্নলিখিত গাণিতিক সমীকরণ ব্যবহার করে:
যেখানে:
K মান একটি বক্ররেখার সমতলতার পরিমাপ এবং এটি হিসাব করা হয়:
যেখানে:
উচ্চ K মানগুলি সমতল বক্ররেখাকে নির্দেশ করে। ডিজাইন মানগুলি প্রায়শই ডিজাইন গতির উপর ভিত্তি করে ন্যূনতম K মান নির্দিষ্ট করে।
যখন এবং এর জন্য শিখর বক্ররেখা বা এবং এর জন্য সাগ বক্ররেখার মধ্যে একটি উচ্চ বা নিম্ন পয়েন্ট থাকবে। এই পয়েন্টের স্টেশন গণনা করা যেতে পারে:
এই উচ্চ/নিম্ন পয়েন্টের উচ্চতা তারপরে মৌলিক উল্লম্ব বক্ররেখার সমীকরণ ব্যবহার করে গণনা করা হয়।
PVI স্টেশন এবং উচ্চতা দেওয়া হলে, PVC এবং PVT গণনা করা যেতে পারে:
দ্রষ্টব্য: উচ্চতা সূত্রে 200 দ্বারা ভাগ করা শতাংশ থেকে দশমিক ফর্মে গ্রেডের রূপান্তর এবং বক্ররেখার অর্ধেক দৈর্ঘ্যকে হিসাব করে।
সমান গ্রেড (g₁ = g₂): যখন প্রাথমিক এবং চূড়ান্ত গ্রেড সমান হয়, তখন কোনও উল্লম্ব বক্ররেখার প্রয়োজন নেই। K মান অসীম হয়ে যায়, এবং "বক্ররেখা" আসলে একটি সোজা লাইন।
খুব ছোট গ্রেডের পার্থক্য: যখন গ্রেডের মধ্যে পার্থক্য খুব ছোট হয়, K মান খুব বড় হয়ে যায়। এটি বাস্তবায়নের জন্য বক্ররেখার দৈর্ঘ্যে সমন্বয় প্রয়োজন করতে পারে।
শূন্য দৈর্ঘ্যের বক্ররেখা: একটি উল্লম্ব বক্ররেখা যার শূন্য দৈর্ঘ্য গাণিতিকভাবে বৈধ নয় এবং ডিজাইন করতে এড়ানো উচিত।
আমাদের উল্লম্ব বক্ররেখা ক্যালকুলেটর এই জটিল গণনাগুলিকে সহজ করে তোলে, আপনাকে আপনার উল্লম্ব বক্ররেখার ডিজাইনের জন্য সমস্ত মূল প্যারামিটার দ্রুত নির্ধারণ করতে সক্ষম করে। এটি ব্যবহার করার জন্য এখানে কীভাবে:
প্রয়োজনীয় প্যারামিটারগুলি প্রবেশ করার পরে, ক্যালকুলেটর স্বয়ংক্রিয়ভাবে গণনা করবে এবং প্রদর্শন করবে:
আপনি বক্ররেখার যে কোনও নির্দিষ্ট স্টেশনের উচ্চতা অনুসন্ধান করতে পারেন:
ক্যালকুলেটর একটি উল্লম্ব বক্ররেখার একটি ভিজ্যুয়াল উপস্থাপনাও প্রদান করে, যা দেখায়:
এই ভিজ্যুয়ালাইজেশন আপনাকে বক্ররেখার আকার বুঝতে এবং নিশ্চিত করতে সাহায্য করে যে এটি আপনার ডিজাইন প্রয়োজনীয়তাগুলি পূরণ করে।
উল্লম্ব বক্ররেখার গণনা অনেক সিভিল ইঞ্জিনিয়ারিংয়ের অ্যাপ্লিকেশনের জন্য অপরিহার্য:
উল্লম্ব বক্ররেখাগুলি সড়ক ডিজাইনের মৌলিক উপাদান, নিরাপদ এবং আরামদায়ক ড্রাইভিং শর্ত নিশ্চিত করে। এগুলি ব্যবহৃত হয়:
যেমন, একটি হাইওয়ে ডিজাইন করার সময় যা পাহাড়ি ভূখণ্ড অতিক্রম করতে হবে, ইঞ্জিনিয়ারদের উল্লম্ব বক্ররেখাগুলি সাবধানে গণনা করতে হবে যাতে ড্রাইভারদের জন্য যথেষ্ট দৃশ্যমানতা থাকে যাতে যদি সড়কে কোনও বাধা দেখা দেয় তবে নিরাপদে থামতে পারে।
রেলপথ প্রকৌশলে, উল্লম্ব বক্ররেখাগুলি অত্যন্ত গুরুত্বপূর্ণ:
রেলপথের উল্লম্ব বক্ররেখাগুলির প্রায়শই সড়কগুলির তুলনায় বড় K মান থাকে কারণ ট্রেনগুলির তীক্ষ্ণ গ্রেড পরিবর্তন পরিচালনা করার সীমিত ক্ষমতা থাকে।
উল্লম্ব বক্ররেখাগুলি বিমানবন্দর রানওয়ে ডিজাইনে ব্যবহৃত হয়:
নির্মাণ প্রকল্পের জন্য ভূমি উন্নয়ন করার সময়, উল্লম্ব বক্ররেখাগুলি সাহায্য করে:
উল্লম্ব বক্ররেখাগুলি ডিজাইন করতে অপরিহার্য:
সঠিক উল্লম্ব বক্ররেখার ডিজাইন নিশ্চিত করে যে জল সঠিক গতিতে প্রবাহিত হয় এবং সিডিমেন্টেশন বা ক্ষয় প্রতিরোধ করে।
যদিও প্যারাবোলিক উল্লম্ব বক্ররেখাগুলি বেশিরভাগ সিভিল ইঞ্জিনিয়ারিং অ্যাপ্লিকেশনের জন্য মানক, তবে কিছু বিকল্প রয়েছে:
বৃত্তাকার উল্লম্ব বক্ররেখা: কিছু পুরানো ডিজাইন এবং নির্দিষ্ট আন্তর্জাতিক মানে ব্যবহৃত হয়। তারা গ্রেড পরিবর্তনের একটি পরিবর্তনশীল হার প্রদান করে, যা ড্রাইভারদের জন্য কম আরামদায়ক হতে পারে।
ক্লথয়েড বা স্পাইরাল বক্ররেখা: কখনও কখনও বিশেষ অ্যাপ্লিকেশনে ব্যবহৃত হয় যেখানে একটি ধীরে ধীরে বাড়ানো পরিবর্তনের হার প্রয়োজন।
কিউবিক প্যারাবোলাস: কখনও কখনও বিশেষ পরিস্থিতির জন্য ব্যবহৃত হয় যেখানে আরও জটিল বক্ররেখার বৈশিষ্ট্য প্রয়োজন।
সোজা লাইন অনুমান: খুব প্রাথমিক ডিজাইন বা খুব সমতল ভূখণ্ডের জন্য, প্রকৃত উল্লম্ব বক্ররেখার পরিবর্তে সাধারণ সোজা লাইন সংযোগ ব্যবহার করা যেতে পারে।
প্যারাবোলিক উল্লম্ব বক্ররেখা বেশিরভাগ অ্যাপ্লিকেশনের জন্য মানক থাকে কারণ এর সরলতা, স্থির পরিবর্তনের হার এবং প্রতিষ্ঠিত ডিজাইন পদ্ধতিগুলি।
উল্লম্ব বক্ররেখা ডিজাইন পদ্ধতির উন্নয়ন পরিবহন প্রকৌশলের সাথে সাথে বিকশিত হয়েছে:
প্রাথমিক সড়ক নির্মাণে, উল্লম্ব সমন্বয় প্রায়শই প্রাকৃতিক ভূখণ্ড দ্বারা নির্ধারিত হয়েছিল, খুব কম গ্রেডিং সহ। যানবাহনগুলি দ্রুত এবং সাধারণ হয়ে ওঠার সাথে সাথে, সড়ক ডিজাইনের জন্য আরও বৈজ্ঞানিক পদ্ধতির প্রয়োজনীয়তা স্পষ্ট হয়ে ওঠে।
প্রাথমিক 20 শতকে প্যারাবোলিক উল্লম্ব বক্ররেখা মানক হয়ে ওঠে যখন ইঞ্জিনিয়াররা এর সুবিধাগুলি স্বীকার করেন:
20 শতকের মধ্যভাগে, পরিবহন সংস্থাগুলি উল্লম্ব বক্ররেখা ডিজাইনের জন্য মানক পদ্ধতি বিকাশ করতে শুরু করে:
কম্পিউটারগুলির আবির্ভাবের সাথে, উল্লম্ব বক্ররেখার ডিজাইন আরও জটিল হয়ে ওঠে:
আজ, উল্লম্ব বক্ররেখার ডিজাইন নতুন গবেষণার সাথে বিকশিত হতে থাকে যা ড্রাইভার আচরণ, যানবাহনের গতিশীলতা এবং পরিবেশগত বিবেচনাগুলির উপর দৃষ্টি নিবদ্ধ করে।
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 কিমি/ঘণ্টা, যা ডিজাইন মান অনুযায়ী 80 এর ন্যূনতম K মান প্রয়োজন।
পদক্ষেপ 1: ন্যূনতম বক্ররেখার দৈর্ঘ্য গণনা করুন
আপনার কাজে দরকারী হতে পারে আরো টুল খুঁজে বের করুন