Диссертация (1091538), страница 17
Текст из файла (страница 17)
Программный код для получения числовых параметров таблиц 1.1, 2.1Функции для расчета параметров таблицы 1.1150raschet1.mfunction raschet1r_0=6.96*10^8;m(1)=1.989*10^30;m(2)=5.974*10^24;a0 = 149597887500;e = 0.0167;a=4.753*10^(-9)f=6.67*10^(-11);%%%%%%%Радиус СолнцаМасса СолнцаМасса ЗемлиБольшая полуось ЗемлиЭксцентриситет ЗемлиСкорость изменения большой полуоси Земли (м/сек) - 15 см/годУниверсальная гравитеционная постояннаяT(1)=25.38;% Сидерический период СолнцаOmega =(2*pi) / (T(1)*86400); % Угловая скорость вращения Солнцаn = get_n(f,m,a0);C1 = get_C1(f,m,n,e,r_0);delta = get_delta(C1,e,a,n,Omega);disp(’delta=’), disp(delta);%Меркурийm(2)=3.3022*10^23; % Массаa0 = 57909068000; % Большая полуосьe = 0.20530294;% Эксцентриситетshow_aPlanet(f,m,e,a0,r_0,Omega,delta,’aMer=’);%Венераm(2)= 4.8685*10^24; % Массаa0 = 108208930000; % Большая полуосьe = 0.0068;% Эксцентриситетshow_aPlanet(f,m,e,a0,r_0,Omega,delta,’aVen=’);%Марсm(2)= 6.4185*10^23; % Массаa0 = 227.92*10^9; % Большая полуосьe = 0.093315;% Эксцентриситетshow_aPlanet(f,m,e,a0,r_0,Omega,delta,’aMar=’);%Юпитерm(2)= 1.8986*10^27; % Массаa0 = 778570*10^6; % Большая полуосьe = 0.0489;% Эксцентриситетshow_aPlanet(f,m,e,a0,r_0,Omega,delta,’aUp=’);%Сатурн151m(2)= 5.6846*10^26; % Массаa0 = 1433449370*10^3; % Большая полуосьe = 0.055723219;% Эксцентриситетshow_aPlanet(f,m,e,a0,r_0,Omega,delta,’aSat=’);%Уранm(2)= 8.6832*10^25; % Массаa0 = 2.87246*10^12; % Большая полуосьe = 0.046;% Эксцентриситетshow_aPlanet(f,m,e,a0,r_0,Omega,delta,’aUr=’);%Нептунm(2)= 1.0243*10^26; % Массаa0 = 4503443661*10^3; % Большая полуосьe = 0.011214269;% Эксцентриситетshow_aPlanet(f,m,e,a0,r_0,Omega,delta,’aNep=’);end% Вычисление среднего движения по орбите nfunction n=get_n(f,m,a0)n = ((f * (m(1)+m(2)))^(1/2)) / (a0^(3/2));end% Вычисление коэффициента C1function C1=get_C1(f,m,n,e,r_0)C1 =˓→(27*m(1)*m(2)*r_0*(n^(11/3)))/((35*pi*(f^(1/3))*((m(1)+m(2))^(4/3))*((1-e^2)^(15/2))));end% Вычисление коэффициента delta - параметра, влияющего на эволюциюfunction delta=get_delta(C1,e,a,n,Omega)h = helpers();delta = a / (C1*(Omega*((1-e^2)^(3/2))*h.F_2(e) - n*h.F_3(e)));end% Вычисление скорости изменения большой полуоси для планетыfunction show_aPlanet(f,m,e,a0,r_0,Omega,delta,name)h = helpers();n = get_n(f,m,a0);C1 = get_C1(f,m,n,e,r_0);aPlanet = delta*(C1*(Omega*((1-e^2)^(3/2))*h.F_2(e) - n*h.F_3(e)));disp(name), disp(aPlanet);end152Функции для расчета параметров таблицы 2.1function raschet2format long;%а) Земля-Лунаm=5.9736*10^24;r = 6.378*10^6;Tp = 23.93419;mu = 734.9*10^20;a = 384.4*10^6;e = 0.0549;I = 5.15;Ts = 27.321661;disp(’Земля-Луна’);getParam(m,mu,r,a,e,I,Tp,Ts);%б) Юпитер-Иоm=1898.6*10^24;r = 71.398*10^6;Tp = 9.92425;mu = 893.3*10^20;a=421.6*10^6;e = 0.0041;I=0.04;Ts = 1.769138;disp(’Юпитер-Ио’);getParam(m,mu,r,a,e,I,Tp,Ts);%в) Юпитер-Европаm=1898.6*10^24;r = 71.398*10^6;Tp = 9.92425;mu = 479.7*10^20;a=670.9*10^6;e = 0.0101;I= 0.47;Ts = 3.55181;disp(’Юпитер-Европа’);getParam(m,mu,r,a,e,I,Tp,Ts);%г) Юпитер-Ганимедm=1898.6*10^24;r = 71.398*10^6;Tp = 9.92425;mu = 1482*10^20;raschet2.m153a=1070*10^6;e = 0.0015;I=0.195;Ts = 7.154553;disp(’Юпитер-Ганимед’);getParam(m,mu,r,a,e,I,Tp,Ts);%д) Юпитер-Каллистоm=1898.6*10^24;r = 71.398*10^6;Tp = 9.92425;mu = 1076*10^20;a=1883*10^6;e = 0.007;I=0.281;Ts = 16.689018;disp(’Юпитер-Каллисто’);getParam(m,mu,r,a,e,I,Tp,Ts);%е) Марс-Фобосm=0.64185*10^24;r = 3.394*10^6;Tp = 24.622962;mu = 10.8*10^15;a=9337.2*10^3;e = 0.0151;I=1.082;Ts = 0.318910;disp(’Марс-Фобос’);getParam(m,mu,r,a,e,I,Tp,Ts);%ж) Марс-Деймосm=0.64185*10^24;r = 3.394*10^6;Tp = 24.622962;mu = 1.8*10^15;a=23463.2*10^3;e = 0.00033;I=1.791;Ts = 1.262441;disp(’Марс-Деймос’);getParam(m,mu,r,a,e,I,Tp,Ts);%з) Сатурн-Титанm=568.46*10^24;r = 60.330*10^6;Tp = 10.65622;mu = 1345.5*10^20;154a=1221.85*10^6;e = 0.0292;I=0.33;Ts = 15.945421;disp(’Сатурн-Титан’);getParam(m,mu,r,a,e,I,Tp,Ts);endfunction getParam(m,mu,r,a,e,I,Tp,Ts)% Вычисление параметров p и n0(0),n01,no2 для систем планета-спутникI=I*pi/180;w=2*pi/(Tp*3600);n=2*pi/(Ts*86400);f=6.67*10^(-11);f0=f*(m+mu);mr=m*mu/(m+mu);A=(2/5)*m*r^2;G0=A*w + mr*f0^(2/3)*sqrt(1-e^2)*cos(I)/n^(1/3);p=A^(1/3)*f0^(2/3)*mr/G0^(4/3)n0=n*A/G0xc=GetRoot(1,0,0,-1,p);n01=xc(2)n02=xc(1)end155ПРИЛОЖЕНИЕВ3D ВИЗУАЛИЗАЦИЯ§В.1.
Программы визуализации движения спутникаРис. В.1. Интерфейс программы 3D визуализации движения спутникаСистемные требованияПрограмма разработана на языке Python версии 2.7. Для работы необходимо наличие следующих библиотек:PyQt4 - графический интерфейс программы;VTK 5.8.x - 3D визуализация;matplotlib 1.3.x - построение графиков;scipy 0.13.x, numpy 1.8.x - интегрирование системы уравнений и другиерасчеты.Тестирование проводилось на стационарном ПК со следующими параметрами:Процессор: Intel(R) Core(TM) i3-2130 CPU @ 3.40GHzRAM: 8GbОперационная система: Ubuntu 14.04.5 LTS (trusty)156Инструкция по использованиюИнтерфейс программы имеет следующие зоны и компоненты:∙ 1. Графики эволюции параметров , и на интервале интегрирования.∙ 2.
Слайдер для перемещения по интервалу интегрирования.∙ 3. 3D анимированное изображение движения спутника относительнопланеты.∙ 4. Горизонтальный и вертикальный слайдеры для изменения позициинаблюдателя (рис. В.2). Позволяют вращать сцену по двум осям.∙ 5. Кнопки управления расчетами и анимацией.∙ 6. Исходные параметры для интегрирования и визуализации.∙ 7. Рассчитанные значения для эксцентриситета , наклонения ибольшой полуоси Рис.
В.2. Изменение ориентации 3D визуализации движения спутникаДля начала работы необходимо задать начальные значения для системы интегрирования в блоке Параметры (6). Описание и масштаб величин:Масса планеты () - 1024 кгРадиус планеты (0) - 106 мПериод обращения спутника ( ) - часы157Масса спутника () - 1024 кгЭксцентриситет орбиты спутника ()Большая полуось орбиты спутника () - 106 мНаклонение орбиты спутника () - градусыКоэффициент времени (0) - 10 в указанной степени секунд - задаетконечное значение времени для интервала интегрирования, начальное - 0Коэффициент скорости анимации (_) - 86400 на 10 вуказанной степени - задает коэффициент для периода обращения спутника.После установки всех необходимых начальных значений для получениярасчетных значений нужно нажать кнопку «Рассчитать» из блока (5).
Длязапуска и остановки анимации имеются соответствующие кнопки «Запустить» и «Остановить». После расчета значений в области (1) строятсяграфики эволюции параметров , и от времени интегрирования.После запуска анимации для 3D визуализации (3) устанавливаются вычисленные значения эксцентриситета и наклонения. Размеры планеты испутника, а так же масштаб большой полуоси в (3) не зависят от задаваемых параметров. Наклонение, эксцентриситет орбиты соответствуютрасчетным данным, период обращения спутника вокруг планеты задаетсяв масштабе, указываемом в блоке Параметры (6).Слайдер (2) позволяет выбирать конкретное время из интервала ин-тегрирования. 3D визуализация (3) и рассчитанные параметры Инфо (4)меняются синхронно с перемещением слайдера.
Текущее положение на графиках отмечается значком ⋆ (рис. В.3).Рис. В.3. Метка текущего положенияВведенные значения в блоке Параметры (6) можно сохранить в текстовый файл с расширением .json, воспользовавшись меню «Файл»◁«Сохранить158. Файл можно открыть в любом текстовом редакторе и припараметры»необходимости изменить.
Установить параметры из файла можно черезменю◁Пример файла:.«Файл» «Загрузить параметры»{"a": 384.4,"e": 0.0549,"mp": 5.9736,"ms": 734.9,"i": 5.15,"r0": 6.378,"speed": 0,"Tp": 23.93419,"time_integration": 10}.