MATLAB মধ্যে J2 কক্ষপথ বিস্তার সমস্যা (দ্রাবক অস্থিরতা)


1

সমস্যা হল যে যখন আমি J2 জটিল মাধ্যাকর্ষণ নিম্নলিখিত সমীকরণ সমাধান করার চেষ্টা করি:

function xdot = Gravity( ~ , x )

Re  = 6378.137;
J2  = 1.08262668e-3;
mu  = 398600.4418;

r   = norm(x(1:3));

% xdot = [x(4:6)
%         -mu/r^3*x(1:3)];

xdot    = [ x(4);
            x(5);
            x(6);
            -mu*x(1)/r^3*(1+1.5*J2*(Re/r)^2*(1-5*(x(3)/r)^2));
            -mu*x(2)/r^3*(1+1.5*J2*(Re/r)^2*(1-5*(x(3)/r)^2));
            -mu*x(3)/r^3*(1+1.5*J2*(Re/r)^2*(3-5*(x(3)/r)^2))];
end

কোনও সমাধানকারী (ode45, ode113, ইত্যাদি) ব্যবহার করে, প্রচারিত অবস্থান এবং বেগ একটি বিশ্বস্ত বাণিজ্যিক সফ্টওয়্যার (STK) তুলনায় উল্লেখযোগ্য ত্রুটি রয়েছে এবং ত্রুটিটি ক্রমবর্ধমান থাকে। আমি সহনশীলতা, প্রাথমিক পদক্ষেপ, এবং সর্বোচ্চ পদক্ষেপ বিভিন্ন সেটিংস চেষ্টা করেছি, কিন্তু সমস্যা অব্যাহত!

এটি বিস্ময়কর হতে পারে, কিন্তু যখন আমি নীচের হিসাবে একটি নির্দিষ্ট পদক্ষেপ 4 র্থ আদেশ রানge-কুট্টা কোড লিখেছিলাম, তখন এটি আরও ভাল হয় নি।

function [t,x] = RK4( fn,tspan,x0 )
% An implementation of fixed step 4th order Runge-Kutta method

f = str2func(fn);
t = tspan;
h = tspan(2)-tspan(1);
x(:,1) = x0;

for i = 1:size(t,2)-1
    k1 = f(t(i),x(:,i));
    k2 = f(t(i)+h/2,x(:,i)+k1*h/2);
    k3 = f(t(i)+h/2,x(:,i)+k2*h/2);
    k4 = f(t(i)+h,x(:,i)+k3*h);
    x(:,i+1) = x(:,i) + (k1 + 2*k2 + 2*k3 + k4)*h/6;
end

end

কোন সমস্যা কি সমস্যা হতে পারে? আমি একটি মহান বিস্ময় উল্লেখ করতে হবে, আমি RK4 ব্যবহার করে একটি ফলাফল পেয়েছিলাম, কিন্তু একই অবস্থা সঙ্গে একই কোড পরে misbehaved !!

একটি নমুনা ফলাফল: enter image description here


2
আমি এই প্রশ্নটিকে বন্ধ-বিষয় হিসাবে বন্ধ করার জন্য ভোট দিচ্ছি কারণ এটি একটি সংখ্যাসূচক পদ্ধতির সাইট বা সম্ভবত স্ট্যাকওভারফ্লো
Carl Witthoft

এটি ভাসমান-বিন্দু ত্রুটির কারণে বা কম-সংকুচিত সিস্টেমের সংজ্ঞাের কারণে হতে পারে। যেহেতু আপনি STK ভাল কাজ করে বলে, এই সংখ্যাসূচক ত্রুটিগুলি প্রস্তাব করে। হয়তো এটি মেশিন স্পষ্টতা হতে পারে, সম্ভবত এমন অনেক পদক্ষেপ রয়েছে যেখানে খুব বড় সংখ্যাগুলি সংযুক্ত করা হয় / খুব কম সংখ্যক। কিছু MATLAB gmp সংক্রান্ত সরঞ্জাম ইনস্টল করার কথা বিবেচনা করবেন?
Carl Witthoft

@ কার্ল উইথথফ্ট - এই প্রশ্নটি SO তে ভাল হবে না। এবং AFAIK, এস একটি সংখ্যাসূচক পদ্ধতি সাইট নেই। আমি মনে করি না এই মঠের উপর ভাল ভাড়া হবে। কম্পিউট্যান্সাল সায়েন্স সম্ভবত একটি, কিন্তু এই প্রশ্নের চেয়ে বেশি তাত্ত্বিক বলে মনে হয়।
GlenH7

2
এখানে একটি খুব অনুরূপ প্রশ্ন কম্পিউটেশনাল বিজ্ঞান
Wrzlprmft

এটি একটি সংখ্যাসূচক পদ্ধতি সমস্যা। কিন্তু এসেই কোন সম্পর্কিত সাইট নেই, যেমন গ্লেনহ 7 উল্লেখ করেছেন। বিটিডব্লিউ, এটি বিষয় নয় এবং এটি একটি বাস্তব বিশ্ব প্রকৌশল সমস্যা। অনেক প্রকৌশল সমস্যা numerical পদ্ধতি সঙ্গে sth আছে।
AliRD

উত্তর:


2

যতদূর আমি দেখতে পাচ্ছি, আপনি একটি রক্ষণশীল সিস্টেমের একটি nonlinear ODE সংহত করার চেষ্টা করছেন। আপনার সিস্টেম বিশৃঙ্খল আচরণ প্রদর্শন করে খুব সম্ভবত। RK4 একটি চতুর্থ ক্রম সংখ্যাসূচক প্রকল্প। এই সংখ্যাসূচক সংহতকারী সিস্টেমটির মোট শক্তি পরিবর্তন করতে থাকে, যা সিস্টেমের রক্ষণশীলতাকে বিপরীত করে তবে আপনার সমাধান এবং আপনি যে প্রোগ্রাম সম্পর্কে কথা বলছেন তার সমাধানটির মধ্যে পার্থক্য ব্যাখ্যা করে (btw আমি নিশ্চিত না যে প্রোগ্রাম সমীকরণগুলিকে সংহত করে কিনা) সঠিকভাবে, কিন্তু আসুন এটি অনুমান করা যাক। আপনি ব্যবহারকারীর ম্যানুয়ালটি সন্ধান করতে পারেন বা সফটওয়্যারটি আপনার সমস্যাটির জন্য উপযুক্ত কিনা তা খুঁজে বের করতে সহায়তার সাথে যোগাযোগ করুন)। ভাল সংখ্যাসূচক ইন্টিগ্রেশন পেতে, আপনি বিভিন্ন সম্ভাবনার আছে।

  1. উচ্চ অর্ডার আনুমানিকতা প্রকল্পটি ব্যবহার করুন (উদাঃ 8 ষ্ঠ ক্রমিক সংখ্যাসূচক প্রকল্প): এই সিস্টেমটি এখনও মোট শক্তির মধ্যে একটি ড্রিফট দেখাবে, তবে বিপদাশঙ্কা RK4 এর চেয়ে কম দ্রুত হবে। সুতরাং আপনার সিমুলেশন দীর্ঘ সময়ের জন্য "বাস্তব" ট্রাজেক্টোরি অনুসরণ করবে। কিন্তু আপনি কিছু সময়ে কল্পনা করতে পারেন যে আপনার গতিপথটি আর "বাস্তব" গতিপথ অনুসরণ করবে না।

  2. মত কাস্টম সংহতকারী ব্যবহার করুন সমান্তরাল সংহতকারী (হ্যামিল্টনীয় সিস্টেমগুলির জন্য: হ্যামিল্টিয়ান ধ্রুবক রাখে) অথবা বৈকল্পিক সংহতকারী (Lagrangian সিস্টেমের জন্য: Lagrangian ধ্রুবক রাখে)। এই সংহতকারীগুলির সম্পর্কে হার্ড অংশটি আপনাকে তাদের সমস্যাটিকে নির্ভরশীল করে তুলতে হবে, তবে সাধারণত তারা সংখ্যাসূচক পরিকল্পনার ক্রম বৃদ্ধি করার চেয়ে অনেক বেশি ভাল।


0

এটি সমাধান, একটি সহকর্মীর ধন্যবাদ। সমস্যা হচ্ছে, আমি STK তে "J2 প্রচারক" ব্যবহার করেছি, যা আসলে কক্ষপথের প্রিজেশনের ধর্মনিরপেক্ষ হারগুলি ব্যবহার করে। MATLAB যে বাস্তব ইন্টিগ্রেশন সঙ্গে যে ফলাফল তুলনা, এই ফলাফল নেতৃত্বে। যখন আমি ডিগ্রী 2 এবং ক্রম 0 সহ HPOP প্রচারক ব্যবহার করতাম (যা কেবলমাত্র জে 2 প্রতিক্রিয়া ব্যবহার করে একই), ফলাফলগুলি আরও ভাল হয়ে গেছে। HPOP প্রকৃতপক্ষে ডিফারেনশিয়াল সমীকরণ সংহত করে। প্রতিদিন 500 মিটারের হারে ক্রমবর্ধমান ত্রুটি ঘটেছে এবং এটি হপ্পলটি হ'ল পৃথিবীর অক্ষের পূর্বাভাস, নোটেশন এবং মেরু গতির বিবেচনা করে, যা উপরের সমীকরণগুলির মধ্যে এই ঘটনাগুলি ধারণ করে না।

আমি উল্লেখ করতে হবে, J2 পার্শ্বেড কক্ষপথে সঠিক সমাধান পেতে, 1e-8 বা আরও সূক্ষ্মের আপেক্ষিক সহনশীলতা ব্যবহার করুন।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.