मिसाइल की ओर जाने वाले टर्न हेडिंग की गणना कैसे करें?


14

मेरे पास एक मिसाइल है जिसे एक कोण पर एक जहाज से गोली मारी जाती है, मिसाइल फिर एक दिए गए मोड़ त्रिज्या के साथ एक चाप में लक्ष्य की ओर मुड़ जाती है। जब मैं मिसाइल चालू करना चाहता हूं तो मैं आर्क पर बिंदु को कैसे निर्धारित कर सकता हूं ताकि मिसाइल सीधे निशाने पर जा रही हो?

संपादित करें

मिसाइल लॉन्च की गणना करने और उड़ान के रास्ते निकालने से पहले मुझे क्या करना होगा। इसलिए संलग्न उदाहरण में लॉन्च वाहन में 90 डिग्री की हेडिंग है और इसके पीछे लक्ष्य हैं। दोनों मिसाइलों को प्रक्षेपण यान के हेडिंग के -45 डीजी या 45 डिग्री के सापेक्ष शीर्ष पर प्रक्षेपित किया जाता है। मिसाइलें शुरुआत में एक ज्ञात मोड़ त्रिज्या के साथ लक्ष्य की ओर मुड़ती हैं। मुझे उस बिंदु की गणना करनी है जिस पर मोड़ने के लिए मिसाइल ले जाता है, जिस पर वह सीधे लक्ष्य पर हमला करने के लिए बदल जाएगा। जाहिर है कि अगर लक्ष्य 45 डिग्री या उसके आस-पास है, तो कोई प्रारंभिक मोड़ नहीं है मिसाइल सिर्फ लक्ष्य के लिए सीधे जाती है।

प्रक्षेपास्त्र के प्रक्षेपित होने के बाद, मानचित्र इस रेखा पर प्रक्षेपास्त्र को अपने उड़ान पथ के संकेत के रूप में भी दिखाएगा।

मैं जो कर रहा हूं वह एक सिम्युलेटर पर काम कर रहा है जो परिचालन सॉफ्टवेयर की नकल करता है। मिसाइल को लॉन्च करने की अनुमति देने से पहले मुझे गणना किए गए उड़ान पथ को खींचने की आवश्यकता है।

दो मिसाइलों ने दो निशाने लगाए

इस उदाहरण में लक्ष्य प्रक्षेपण वाहन के पीछे हैं, लेकिन पूर्व-निर्धारित पथ तैयार हैं।


1
शीर्षक अग्रगामी है या क्या यह प्रक्षेपवक्र के दौरान बदलता है? (होमिंग मिसाइल की तरह?)
जोनाथन कोनेल

1
क्या यह तब नहीं होगा जब (x2-X1) ^ 2 + (y2-y1) ^ 2 = r ^ 2, जहां (X1, y1) वर्तमान मिसाइल स्थिति है और (x2, y2) लक्ष्य है?
कम्युनिस्ट डक

हो सकता है कि आप जो चाहते हैं, उसकी ड्राइंग बना लें।
आआआआआआआआआआ आआआआआ

3
क्या यह 2 डी या 3 डी समस्या है?
स्टीव एच।

यदि आप किसी घर की-मिसाइल की तरह देख रहे हैं, तो आप इसे किसी भी त्रिकोणमिति का उपयोग किए बिना कर सकते हैं। इस प्रश्न को
ब्लूराजा - डैनी पफ्लुगुफ्ट

जवाबों:


9

मेरा गणित थोड़ा गलत हो सकता है, इसलिए मैंने उत्तर को मिटा दिया है।

मुझे लगता है कि आप लगातार होमिंग परिदृश्य करना चाहते हैं - जहां एक वेग V1 पर यात्रा करने वाली मिसाइल पी 1 लगातार खिलाड़ी पी 2 की ओर मुड़ने की कोशिश करती है; लेकिन एक सीमित मोड़ दर पर।

  1. खिलाड़ी और मिसाइल के बीच वेक्टर का निर्धारण करें।

    V2 = P2 - P1
  2. उन्हें यूनिट वैक्टर में बदल दें।

    V3 = UNIT(V1)
    V4 = UNIT(V2)
  3. वैक्टर के बीच का कोण निर्धारित करें।

    a = ARCCOS(V3 * V4) (* indicating dot product)
  4. उनके बीच के कोण का मान सीमित करें (याद रखें कि आपके ट्रिगर कार्य शायद रेडियन के साथ काम करते हैं, इसलिए 0.1 को टर्निंग रेट के रूप में देखें)।

    a = SIGN(a) * MINIMUM(ABS(a), MaximumTurningRate)
  5. नया आंदोलन वेक्टर बनाएं।

    V1 = UNIT(V3.x + SIN(a), V4.y + COS(a)) * MissileSpeed

संपादित करें: यह कोई 'शुरुआती बिंदु' नहीं है क्योंकि यह लगातार घरेलू परिदृश्य के लिए अधिक मजबूत (और एक आसान कार्यान्वयन है)। आपको एक सर्कल के लिए शुरुआती बिंदु खोजने की ज़रूरत नहीं है - बस उस दर को सीमित करें जिस पर मिसाइल दिशा बदल सकती है और बाकी मशीन में भूत के कारण होता है।


1
मम्म ... यदि स्मृति कार्य करती है, तो मुझे लगता है कि कोण की दिशा प्राप्त करने के लिए आपको एक क्रॉस-उत्पाद करने की आवश्यकता है। यदि आप केवल एक डॉट उत्पाद करते हैं, तो आप कोण के परिमाण को जानेंगे, लेकिन दिशा नहीं (क्योंकि डॉट उत्पादों में V3 * V4 = V4 * V3 हो सकता है, अभिविन्यास में अंतर नोट करने का कोई तरीका नहीं लगता है)। तो, डॉट उत्पाद करते हैं, और फिर एक क्रॉस उत्पाद करते हैं - जेड समन्वय के संकेत की जांच - उन्मुखीकरण खोजने के लिए।
16E पर क्रिस

@ क्रिस का उदाहरण 2 डी में है (5. को देखकर), इसलिए मूल अभिविन्यास और कोण परिमाण पर्याप्त होना चाहिए।
कीब्लेब्रॉक्स

के बीच के कोण की गणना करना सही है, लेकिन मुझे यकीन नहीं है कि चरण 5 के साथ आपका इरादा क्या है या यह क्या पैदा करता है। चरण 5 मान लीजिए कि कोण को v3 में जोड़ना है क्योंकि मुझे गणित की समझ नहीं है।
'12

@dlots चरण 5 को वर्तमान आंदोलन वेक्टर में नए 'सीमित मोड़ दर कोण' को जोड़ना है - मूल रूप से यह मिसाइल की दिशा बदलता है।
जोनाथन डिकिंसन

SIGNचरण 4 में क्या है ?
डेनियल कपलान

2

मुझे लगता है कि आप लॉन्चिंग हेडिंग को टारगेट हेडिंग में बदलकर दिशा बदलना चाहते हैं, फिर सीधे टारगेट पर जाते रहें (मुड़ते समय टारगेट को हिट करने के लिए अधिक मजेदार समस्या होनी चाहिए!)।

मुझे यह मानना ​​होगा कि आप सभी दिशाओं में एक ही मोड़ त्रिज्या के साथ मुड़ सकते हैं (यह एक सरलीकरण है जो वास्तविक मिसाइलों में देखना मुश्किल है)।

सबसे सरल समाधान 90 ° झुकने का उपयोग करना है : मिसाइल फाइलें जब तक इसका प्रक्षेपवक्र लक्ष्य के साथ एक समकोण बनाता है। यदि आप 90 ° बिंदु पर बिल्कुल मुड़ते हैं, तो आप टार्गेट त्रिज्या द्वारा बिल्कुल लक्ष्य चूक जाएंगे, क्योंकि आपको टर्निंग को ध्यान में रखना होगा। समाधान 90 ° बिंदु तक पहुंचने से पहले "टर्न त्रिज्या" मीटर (?) को बिल्कुल चालू करने के लिए शुरू करना है, फिर अपने लक्ष्य पर सीधे जाने के लिए 90 ° चाप (अनुमान लगाने की कोशिश करें) का गठन करें।

यह समाधान हमेशा संभव नहीं है, उदाहरण के लिए जब आपके पास 90 ° पथ (इमारतों या अन्य बाधाओं) पर दृश्यता नहीं है।

अच्छी खबर यह है कि समाधान हर कोण (न केवल पौराणिक 90 °) के लिए काम करता है, चाल को ध्यान में रखना है कि अंतरिक्ष को पहले मोड़ना शुरू करने की आवश्यकता है।

कितना पहले? यही कारण है कि 90 ° सामान सबसे सरल उपाय है ...

मान लीजिए कि आप दृश्यता या सबसे अच्छे लक्ष्य तक पहुँचते हैं, जब फायरिंग पथ then ° का कोण बनाता है तो आपको निम्न की आशंका होनी चाहिए:

(sec(90° - θ°) + tan(90° - θ°)) * turning_radius

... जहां धर्मनिरपेक्ष कोसाइन का पारस्परिक है। प्रमाण तुच्छ है और पाठक के लिए छोड़ दिया जाता है।

गंभीरता से, सूत्र एक सरल ज्यामितीय निर्माण से आता है।

टर्निंग पॉइंट ग्राफ

काली रेखा फायरिंग पथ है, जबकि पतली काली रेखा वही पथ है जो टर्न_राडियस इकाइयों द्वारा लक्ष्य की ओर ले जाती है; लाल के लिए वही है जो लक्ष्य पथ हैं।

हरे रंग के खंड लंबाई में बदल रहे हैं इसलिए आपको यह देखना चाहिए कि:

AB 90 ° - the ° का स्पर्शरेखा है

ई.पू. धर्मनिरपेक्ष है।

मोड़ से आने वाली दोनों हरी रेखाएँ लंबाई में टर्न_राडियस हैं और दोनों पथों के लंबवत हैं; इसका मतलब है कि मोड़ त्रिज्या सही है और चाप दोनों रास्तों के लिए स्पर्शरेखा है (जैसा कि यह होना चाहिए अगर आप भौतिक बाधाओं के तहत एक मोड़ बनाते हैं)।

मुझे पता है अगर आप कुछ त्रुटि देखते हैं।

संपादित करें:

आपके द्वारा पोस्ट की गई ड्राइंग से पता चलता है कि तय शूटर और लक्ष्य के साथ भी रास्ते के लिए कई विकल्प हैं जैसा कि आप यहाँ देख सकते हैं:

यहाँ छवि विवरण दर्ज करें

एक बार लक्ष्य चुनने के बाद आप उचित कोणों के साथ ऊपर बताए गए तरीकों को लागू कर सकते हैं।


कृपया ध्यान दें कि यह एक निरंतर अद्यतन प्रणाली नहीं है। चूंकि होमिंग के लिए अधिक सीपीयू (बहुत कुछ) की आवश्यकता होती है, यह निश्चित लक्ष्यों के लिए सही दृष्टिकोण पर विचार किया जाना चाहिए या यदि कोई "सेमी-डंब" मिसाइल को लागू करने के लिए निश्चित रूप से चाहता है। प्रक्षेपवक्र केवल 3 उपपथ में पथ को विभाजित करने वाले टी पर पैरामीट्रिक हो सकता है और आर्क को एक बेजल वक्र द्वारा अनुमानित किया जा सकता है।
FxIII

1

मैं मिसाइल के लिए "स्टीयरिंग व्यवहार" लागू करूंगा। मिसाइल में एक वेग (एक संख्या), एक स्थिति (एक वेक्टर) और एक (वर्तमान) रोटेशन है। आपके गेम के प्रत्येक अपडेट में / प्रत्येक फ्रेम में, मिसाइल का घुमाव बस थोड़ा सा (लक्ष्य की ओर) बदला जाता है। फिर मिसाइल को उसके वर्तमान रोटेशन और वर्तमान वेग के अनुसार आगे बढ़ाया जाता है।

2 डी और 3 डी के लिए काम करता है, क्योंकि केवल अंतर एक अतिरिक्त आयाम है।

एक और संभावना यह होगी कि मिसाइल के पथ की गणना करने से पहले उसकी गणना की जाए। बेज़ियर कर्व्स या स्पलाइन ऊपर देखें ।


यहाँ एक तख़्ता का उपयोग करने के साथ समस्या यह है कि यदि लक्ष्य चलता है तो आपको नियंत्रण बिंदुओं को लगातार अपडेट करने की आवश्यकता होगी। यहां एक सरल स्टीयरिंग एल्गो कम्प्यूटेशनल रूप से सस्ता हो सकता है।
16E पर क्रिस

वास्तव में मैं लक्ष्य के लिए पथ को आगे बढ़ाने का प्रयास कर रहा हूं। मैं जो काम कर रहा हूं वह कुछ वास्तविक उपकरणों के लिए एक सिम्युलेटर है और मैं वास्तविक उपकरणों के व्यवहार की नकल करने की कोशिश कर रहा हूं।
टोनी

0

मुझे लगता है कि आप यहाँ गलत समस्या को हल कर रहे हैं। एक वास्तविक दुनिया की मिसाइल चिंता करने की ज़रूरत नहीं है कि कहाँ मोड़ना है, यह बस तब तक चालू होने वाला है जब तक कि यह लक्ष्य पर इंगित न हो जाए। केवल जहां-जहां गणना शामिल है, वह वास्तविक नियंत्रण वाली मिसाइल के रूप में नियंत्रण को वापस तटस्थ करने के लिए शुरू करने के लिए है जब यह तुरंत दर बदल सकती है। यह गणना केवल मिसाइल के संकेतित एयरस्पीड को इनपुट मूल्य के रूप में ले जाएगी और मुझे लगता है कि यह पहले से निर्धारित होगा।


2
एक वास्तविक विश्व मिसाइल विशेष रूप से बाद के हथियारों में जड़त्वीय मार्गदर्शन प्रणाली या जीपीएस या दोनों हैं ताकि वे एक खोज क्षेत्र में जाने के लिए क्रमादेशित हो जाएं और एक लक्ष्य की तलाश शुरू करें। यदि मित्रवत निकट हो तो विश्वासघात करें। प्रोग्रामिंग आपको एक ऐसे रास्ते पर मिसाइल भेजने में सक्षम करने के लिए माना जाता है जो मित्र देशों और लैंडमास और निर्दोष समझने वाले अन्य बाधाओं से बचा जाता है।
टोनी

0

मुझे लगता है कि सबसे सरल एल्गोरिथ्म सिर्फ दो नियमों का पालन करेगा:

  1. यदि वर्तमान लक्ष्य मोड़ व्यास की तुलना में मिसाइल के करीब है तो सीधे चलते रहें। यह मिसाइलों को वास्तव में उनके पास पहुंचने के बजाय नजदीकी लक्ष्य की परिक्रमा करने से बचाती है।

  2. अन्यथा लक्ष्य की ओर मुड़ें जब तक कि आप उस ओर इशारा नहीं करते।

उस बिंदु की गणना करने के लिए जहां मोड़ 2 डी में समाप्त होता है:

  1. उस बिंदु पर जहां आप मोड़ना शुरू करना चाहते हैं, मोड़ का केंद्र आपके मोड़ की त्रिज्या की दूरी पर वर्तमान शीर्ष पर लंबवत दिशा में स्थित है। ध्यान दें कि उन बिंदुओं में से दो हैं - आप शायद अपने लक्ष्य के सबसे करीब चाहते हैं। उस स्थिति की गणना करें और इसे पी।

  2. अब आप स्पर्शरेखा पर दाहिने कोण और दो ज्ञात बिंदुओं - P और अपने गंतव्य के साथ एक समकोण त्रिभुज का निर्माण कर सकते हैं। इससे आप पाइथागोरस के साथ स्पर्शरेखा से अपने लक्ष्य बिंदु की दूरी की गणना कर सकते हैं। इसे D कहो।

  3. अब आपको अपने मोड़ के साथ अपने गंतव्य पर त्रिज्या डी के एक चक्र के चौराहे की गणना करने की आवश्यकता है । आपको दो समाधान मिलेंगे जो उस वृत्त पर दो स्पर्शरेखा बिंदु हैं जहां मिसाइल मुड़ना बंद कर देगी (सर्कल के प्रत्येक दिशा के लिए एक)। उस बिंदु को चुनें जो मिसाइल के सामने है - वह आपका उत्तर है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.