Реферат Курсовая Конспект
Основной программный модуль main.cpp - раздел Астрономия, Исследование движения центра масс межпланетных космических аппаратов Основной Программный Модуль Main.cpp. Include Fstream.h Include Iostream.h In...
|
Основной программный модуль main.cpp. include fstream.h include iostream.h include conio.h include stdlib.h include rk5.h include sfun.h include init.h include math.h typedef long double real const float g r M PI 180. const float r g 180. M PI real t beg real t end real dt real toler int Np int Curp real dTp real mu z real mu s real mu l real m real m t real W real w s real w z real w l real ww l real xs, ys, zs real xl, yl, zl real Fz,Fs,Fl,Fa,U20 real J1,J2,J3 int nomin real par 8 real parn 8 real a p, e p, p p,Om p, i p, om p,Rp p,Ra p real y main 6 real prmt 5 int Fl u real u last int Fl ka int Fl kp int Fl ki int Fl i int Fl p int Fl a int Fl lu int Fl pkT real dl real T vd real dRa real dRp int Sig int Sig a real Tkor real Tkore real Vkor 3 real akor 3 int Fl l0 int Fl l1 int Fl pki real dV ps real dV as real dV is real dV ss ofstream m y m y.dat ofstream m f m f.dat ofstream m s m s.dat ofstream m l m l.dat ofstream m par m par.dat ofstream u f u f.dat ofstream u par u par.dat ofstream k par k par.dat void out p real, real, real, int, int, real void main clrscr init m real dery .167, .167, .167, .167, .166, .166 int ihlf int ndim 6 Drkgs prmt, y main, dery, ndim, ihlf, fct, out p clrscr if ihlf 11 cout n Успешное завершение моделирования n cout t0 t beg tk t end dt dt cout n Число делений шага ihlf else cout n Ненормальное завершение моделирования n cout t0 t beg tk t end dt dt cout n Число делений шага ihlf getch m y.close m f.close m s.close m l.close m par.close u f.close u par.close k par.close void out p real x, real y, real, int, int, real if x dTp Curp Curp gotoxy 1,20 cout Процесс выполнения float Curp 100. Np n cout.precision 7 m y x t y 0 t y 1 t y 2 t y 3 t y 4 t y 5 n m f x t Fz t Fs t Fl t Fa t U20 n m s x t xs t ys t zs n m l x t xl t yl t zl n m par x t par 0 t par 1 t par 2 t par 3 t par 4 t par 5 t par 6 t par 7 n if Fl u par 7 parn 7 Fl u 0 dl - w z-w s par 6 -parn 6 u par x t par 0 t par 1 t par 2 t par 3 t par 4 t par 5 t par 6 t par 7 n u f x t Fz t Fs t Fl t Fa t U20 n if x 79000 x 81000 k par x t par 5 t par 7 n 6.2. ПОДПРОГРАММА РАСЧЕТА ВОЗМУЩАЮЩИХ УСКОРЕНИЙ, ПАРАМЕТРОВ ОРБИТЫ И КОРРЕКЦИИ SFUN.CPP include sfun.h const real p 4.64e-6 const real sm s 8. const real A 1.496e11 const real Cx 2. const real sm a 2.5 const real ro 5.098e-13 void korr real t, real f, real dery void fct real t, real f, real dery real x f 0 real y f 1 real z f 2 real Vx f 3 real Vy f 4 real Vz f 5 real Tet s 28.1 60 g r w s t real e 0 23.45 g r xs A cos Tet s ys A sin Tet s cos e 0 zs A sin Tet s sin e 0 real Tet l 0 w l t real Om l 0-ww l t real i l acos cos e 0 cos 5.15 g r -sin e 0 sin 5.15 g r cos Om l real rsr l 3.8448e8 xl rsr l cos Tet l cos Om l -cos i l sin Tet l sin Om l yl rsr l cos Tet l sin Om l cos i l sin Tet l cos Om l zl rsr l sin i l sin Tet l real R ka sqrt x x y y z z real Fz x -mu z x pow R ka,3. real Fz y -mu z y pow R ka,3. real Fz z -mu z z pow R ka,3. real mu sd p sm s A A m real R s sqrt x-xs x-xs y-ys y-ys z-zs z-zs real Fs x - mu s-mu sd x pow R s,3. real Fs y - mu s-mu sd y pow R s,3. real Fs z - mu s-mu sd z pow R s,3. real R l sqrt x-xl x-xl y-yl y-yl z-zl z-zl real Fl x -mu l x pow R l,3. real Fl y -mu l y pow R l,3. real Fl z -mu l z pow R l,3. real V ka sqrt Vx Vx Vy Vy Vz Vz real Fa x -Cx sm a 2 m ro V ka Vx real Fa y - Cx sm a 2 m ro V ka Vy real Fa z -Cx sm a 2 m ro V ka Vz const real c20 -1.09808e-3 const real c22 5.74e-6 const real d22 -1.58e-6 const real r e 6378137. real cr mu z r e r e pow R ka,5 real lr 2 atan y x real mr 3 c22 cos lr d22 sin lr real U20 x cr x c20 1.5-7.5 z z pow R ka,2 mr 5 z z pow R ka,2 -3 real U20 y cr y c20 1.5-7.5 z z pow R ka,2 mr 5 z z pow R ka,2 -3 real U20 z cr z c20 4.5-7.5 z z pow R ka,2 5 mr z z pow R ka,2 -1 dery 0 Vx dery 1 Vy dery 2 Vz dery 3 Fz x U20 x Fs x Fl x Fa x akor 0 dery 4 Fz y U20 y Fs y Fl y Fa y akor 1 dery 5 Fz z U20 z Fs z Fl z Fa z akor 2 Fz sqrt Fz x Fz x Fz y Fz y Fz z Fz z Fs sqrt Fs x Fs x Fs y Fs y Fs z Fs z Fl sqrt Fl x Fl x Fl y Fl y Fl z Fl z Fa sqrt Fa x Fa x Fa y Fa y Fa z Fa z U20 sqrt U20 x U20 x U20 y U20 y U20 z U20 z parn 3 parn 3 w s t par or f, par korr t, f,dery if u last-par 7 300 g r Fl u 1 u last par 7 void korr real t, real f, real if t Tkor 172800. if fabs dl 0.1 g r !Fl ka !Fl kp !Fl ki Fl kp 1 Fl ka 0 Fl ki 0 cout Результат измерений накоплен n cout Необходима коррекция периода. dl dl r g град. n cout Период ном. parn 6 Период тек. par 6 n cout Параметры орбиты n cout Rp par 2 1-par 1 n cout Ra par 2 1 par 1 n cout p par 0 n cout a par 2 e par 1 n T par 6 w par 5 r g u par 7 r g n clrscr Fl a 0 Fl p 0 Fl lu 0 real da if par 5 par 7 da fabs par 5 -par 7 -M PI else da fabs par 5 -par 7 M PI if da .1 g r Fl a 1 if fabs par 5 - par 7 .1 g r Fl p 1 if par 7 .1 g r Fl lu 1 real Vk if T vd if t T vd 20 T vd 0 akor 0 0 akor 1 0 akor 2 0 cout Выкл.дв. n t t if Fl kp Fl a Fl ka Fl p Fl ki Fl lu !T vd cout n Коррекция n cout n Начало t t сек n int sim if t-Tkor 2500 cout Не корректировать! return Tkor t real R t sqrt f 0 f 0 f 1 f 1 f 2 f 2 real V t sqrt f 3 f 3 f 4 f 4 f 5 f 5 real R n parn 0 if Fl a dRa R t-R n dRp par 2 1-par 1 -R n cout Апоцентр dRp dRp м n cout dRa dRa м n cout w par 5 r g u par 7 r g n real l, ln l - w z-w s par 6 ln - w z-w s parn 6 dl - w z-w s par 6 -parn 6 cout T par 6 Тном parn 6 T-Tном par 6 -parn 6 n l l r g lном ln r g l-lном l-ln r g dl dl n if dRp 0 Sig a -1 else Sig a 1 cout Знак ускорения Sig a n clrscr real Rp par 2 1-par 1 real Ra p par 2 1 par 1 real Rp p2 Rp real Ra p2 R t cout Rp Rp p2 Ra Ra p2 n cout Ra p Ra p n Rt R t n if fabs Rp - R n 500 Fl kp 0 Fl ka 1 cout Закончить коррекцию в апоцентре n dRp Rp-R n dRa dRa t t n cout Параметры орбиты n Rp par 2 1-par 1 Ra par 2 1 par 1 n p par 0 a par 2 e par 1 n T par 6 w par 5 r g u par 7 r g n cout Суммарный импульс для коррекции перицентра dV ps n clrscr else if R t R n Rp p R n Ra p R t a p Ra p Rp p 2. e p 1-Rp p a p p p a p 1-e p e p Vk sqrt mu z p p 1-e p else Rp p R t Ra p R n a p Ra p Rp p 2. e p 1-Rp p a p p p a p 1-e p e p Vk sqrt mu z p p 1 e p real dV Vk-V t real dVmax 20 25. m cout n dVтреб dV dVmax за 20 сек dVmax if fabs dV dVmax akor 0 Sig a 25. m f 3 V t akor 1 Sig a 25. m f 4 V t akor 2 Sig a 25. m f 5 V t cout n dV dV dVmax dVmax cout n Корректирующее ускорение akor 0 t akor 1 t akor 2 t sqrt akor 0 akor 0 akor 1 akor 1 akor 2 akor 2 n dV ps dV ps dVmax cout Суммарный импульс dV ps n else akor 0 Sig a fabs dV dVmax 25. m f 3 V t akor 1 Sig a fabs dV dVmax 25. m f 4 V t akor 2 Sig a fabs dV dVmax 25. m f 5 V t cout n dV dV dVmax dVmax cout n Корректирующее ускорение akor 0 t akor 1 t akor 2 t sqrt akor 0 akor 0 akor 1 akor 1 akor 2 akor 2 n dV ps dV ps fabs dV cout Суммарный импульс dV ps n if dVmax fabs dV dVmax fabs dV real Vk r Sig a dVmax V t real Ra r R t real e r - Vk r Vk r Ra r mu z 1 real a r Ra r 1 e r real p r a r 1-e r e r real Rp r a r 1-e r cout Параметры орбиты n Rp r Rp r Ra r Ra r n p r p r a r a r e r e r n else real Vk r Sig a dVmax V t real Ra r R t real e r - Vk r Vk r Ra r mu z 1 real a r Ra r 1 e r real p r a r 1-e r e r real Rp r a r 1-e r cout Параметры орбиты n Rp r Rp r Ra r Ra r n p r p r a r a r e r e r n T vd t cout Вкл.дв. t T vd n if Fl p dRp R t-R n dRa par 2 1 par 1 -R n cout Перицентра - dRp dRp м n cout dRa dRa м. n cout w par 5 r g u par 7 r g n real l, ln l - w z-w s par 6 ln - w z-w s parn 6 dl - w z-w s par 6 -parn 6 cout T par 6 Tном parn 6 T-Tном par 6 -parn 6 n l l r g lном ln r g l-lном l-ln r g dl dl n if dRa 0 Sig a -1 else Sig a 1 cout Знак ускорения Sig a n clrscr real Ra par 2 1 par 1 real Rp p1 R t real Ra p1 Ra cout Rp Rp p1 Ra Ra p1 n if fabs Ra-R n 500 fabs dl r g .0001 cout Закончить коррекцию в перицентре n dRa Ra-R n dRp dRp t t n cout Параметры орбиты n Rp par 2 1-par 1 Ra par 2 1 par 1 n p par 0 a par 2 e par 1 n T par 6 w par 5 r g u par 7 r g n cout Суммарный импульс для коррекции перицентра dV as n clrscr Fl ka 0 Fl ki 1 else if R t R n Rp p R n Ra p R t a p Ra p Rp p 2. e p 1-Rp p a p p p a p 1-e p e p Vk sqrt mu z p p 1-e p else Rp p R t Ra p R n a p Ra p Rp p 2. e p 1-Rp p a p p p a p 1-e p e p Vk sqrt mu z p p 1 e p real dV Vk-V t real dVmax 20 25. m cout n dVнадо dV dVmax за 20 сек dVmax if fabs dV dVmax akor 0 Sig a 25. m f 3 V t akor 1 Sig a 25. m f 4 V t akor 2 Sig a 25. m f 5 V t cout n dV dV dVmax dVmax cout n Корректирующее ускорение akor 0 t akor 1 t akor 2 t sqrt akor 0 akor 0 akor 1 akor 1 akor 2 akor 2 n dV as dV as dVmax cout Суммарный импульс dV as n else akor 0 Sig a fabs dV dVmax 25. m f 3 V t akor 1 Sig a fabs dV dVmax 25. m f 4 V t akor 2 Sig a fabs dV dVmax 25. m f 5 V t cout n dV dV dVmax dVmax cout n Корректирующее ускорение akor 0 t akor 1 t akor 2 t sqrt akor 0 akor 0 akor 1 akor 1 akor 2 akor 2 n dV as dV as fabs dV cout Суммарный импульс dV as n if dVmax fabs dV dVmax fabs dV real Vk r Sig a dVmax V t real Ra r R t real e r - Vk r Vk r Ra r mu z 1 real a r Ra r 1 e r real p r a r 1-e r e r real Rp r a r 1-e r cout Параметры орбиты n Rp r Rp r Ra r Ra r n p r p r a r a r e r e r n else real Vk r Sig a dVmax V t real Ra r R t real e r - Vk r Vk r Ra r mu z 1 real a r Ra r 1 e r real p r a r 1-e r e r real Rp r a r 1-e r cout Параметры орбиты n Rp r Rp r Ra r Ra r n p r p r a r a r e r e r n T vd t cout Вкл.дв. t T vd n if Fl lu real di par 4 -parn 4 cout Линия узлов - di di r g град n cout w par 5 r g u par 7 r g n real l, ln l - w z-w s par 6 ln - w z-w s parn 6 dl - w z-w s par 6 -parn 6 cout T par 6 Tном parn 6 T-Tном par 6 -parn 6 n l l r g lном ln r g l-lном l-ln r g dl dl n i par 4 r g iном parn 4 r g n cout Параметры орбиты n Rp par 2 1-par 1 Ra par 2 1 par 1 n p par 0 a par 2 e par 1 n T par 6 w par 5 r g u par 7 r g n i par 4 r g n clrscr real Vk x,Vk y,Vk z if fabs di .0001 g r Fl ki 0 cout Закончить коррекцию наклонения n di par 4 -parn 4 r g t t n cout Параметры орбиты n Rp par 2 1-par 1 Ra par 2 1 par 1 n p par 0 a par 2 e par 1 n T par 6 w par 5 r g u par 7 r g n i par 4 r g n cout Суммарный импульс dV is n clrscr else real teta if par 7 par 5 teta 2 M PI par 7 -par 5 else teta par 7 -par 5 real Vr i sqrt mu z par 0 par 1 sin teta real Vn i sqrt mu z par 0 1 par 1 cos teta V t sqrt f 3 f 3 f 4 f 4 f 5 f 5 Vk x -Vn i cos parn 4 sin par 3 Vr i cos par 3 Vk y Vn i cos parn 4 cos par 3 Vr i sin par 3 Vk z Vn i sin parn 4 Vk sqrt Vk x Vk x Vk y Vk y Vk z Vk z real dV x Vk x-f 3 real dV y Vk y-f 4 real dV z Vk z-f 5 real dV sqrt dV x dV x dV y dV y dV z dV z real dVmax 20 25. m cout Vнач V t Vк Vk teta teta r g n cout dV dV dVmax за 20 сек dVmax if dV dVmax akor 0 25. m dV x dV akor 1 25. m dV y dV akor 2 25. m dV z dV cout n Корректирующее ускорение akor 0 t akor 1 t akor 2 t sqrt akor 0 akor 0 akor 1 akor 1 akor 2 akor 2 n dV is dV is dVmax cout Суммарный импульс dV is n else akor 0 fabs dV dVmax 25. m dV x dV akor 1 fabs dV dVmax 25. m dV y dV akor 2 fabs dV dVmax 25. m dV z dV cout n Корректирующее ускорение akor 0 t akor 1 t akor 2 t sqrt akor 0 akor 0 akor 1 akor 1 akor 2 akor 2 n dV is dV is fabs dV cout Суммарный импульс dV is n T vd t cout Вкл.дв. t T vd n if !Fl ka !Fl kp !Fl ki cout Коррекция окончена! n real m t dV ss dV ps dV as dV is m t m 1-exp -dV ss W cout Потребный импульс n - перицентра dV ps dV ps n апоцентра dV as dV as n Суммарный импульс dV ss Масса топлива m t n dV ps 0 dV as 0 dV is 0 dV ss 0 m t 0 void par or real f, real par real x f 0 real y f 1 real z f 2 real Vx f 3 real Vy f 4 real Vz f 5 real c1 y Vz-z Vy real c2 z Vx-x Vz real c3 x Vy-y Vx real C sqrt c1 c1 c2 c2 c3 c3 par 0 C mu z C real R ka sqrt x x y y z z real V ka sqrt Vx Vx Vy Vy Vz Vz real f1 Vy c3-Vz c2 - mu z x R ka real f2 Vz c1-Vx c3 - mu z y R ka real f3 Vx c2-Vy c1 - mu z z R ka real F sqrt f1 f1 f2 f2 f3 f3 real h V ka V ka- 2 mu z R ka if 1 h C C mu z mu z 0 cout Ошибка! n getch par 1 F mu z if 1-par 1 par 1 0 cout 1-e e 0 Ошибка! n getch par 2 par 0 1-par 1 par 1 par 4 acos c3 C real s Om c1 C sin par 4 real c Om -c2 C sin par 4 if s Om 0 par 3 acos c Om else par 3 2 M PI-acos c Om real c om f1 cos par 3 f2 sin par 3 F real s om f3 F sin par 4 if s om 0 par 5 acos c om else par 5 2 M PI - acos c om if par 2 0 cout Ошибка! n getch par 6 2 M PI sqrt par 2 mu z par 2 par 2 real c u x cos par 3 y sin par 3 R ka real s u z R ka sin par 4 if s u 0 par 7 acos c u else par 7 2 M PI - acos c u include rk5.h include iostream.h void Drkgs real prmt, real y, real dery, int ndim, int ihlf, void fct real, real, real, void out p real, real, real, int, int, real static real a 0.5, 0.292893218811345248, 1.70710678118665475, 0.167 static real b 2.0, 1.0, 1.0, 2.0 static real c 0.5, 0.292893218811345248, 1.70710678118665475, 0.5 real aux 8 int i, j,imod, itest, irec, istep, iend real delt, aj, bj, cj, r,r1,r2,x, xend, h for i 0 i 8 i aux i new real ndim for i 0 i ndim i aux 7 i 1. 15. dery i x prmt 0 xend prmt 1 h prmt 2 prmt 4 0.0 fct x, y,dery r h xend-x if r 0.0 ihlf 13 if r 0.0 ihlf 12 goto l39 for i 0 i ndim i aux 0 i y i aux 1 i dery i aux 2 i 0.0 aux 5 i 0.0 irec 0 h h h ihlf -1 istep 0 iend 0 l4 r x h-xend h if r 0.0 iend 1 if r 0.0 h xend-x out p x, y,dery, irec, ndim, prmt if prmt 4 ! 0.0 goto l40 itest 0 l9 istep j 0 l10 aj a j bj b j cj c j for i 0 i ndim i r1 h dery i r2 aj r1-bj aux 5 i y i y i r2 r2 r2 r2 r2 aux 5 i r2-cj r1 if j-3 0 j if j-2 ! 0 x x 0.5 h fct x, y,dery goto l10 if itest 0 for i 0 i ndim i aux 3 i y i itest 1 istep istep istep-2 l18 ihlf x x-h h 0.5 h for i 0 i ndim i y i aux 0 i dery i aux 1 i aux 5 i aux 2 i goto l9 imod istep 2 if istep-imod-imod ! 0 fct x, y,dery for i 0 i ndim i aux 4 i y i aux 6 i dery i goto l9 delt 0.0 for i 0 i ndim i delt aux 7 i fabs aux 3 i -y i if delt-prmt 3 0.0 if ihlf-10 0 ihlf 11 fct x, y,dery goto l39 for i 0 i ndim i aux 3 i aux 4 i istep istep istep-4 x x-h iend 0 goto l18 fct x, y,dery for i 0 i ndim i aux 0 i y i aux 1 i dery i aux 2 i aux 5 i y i aux 4 i dery i aux 6 i out p x-h, y,dery, ihlf, ndim, prmt if prmt 4 ! 0 goto l40 for i 0 i ndim i y i aux 0 i dery i aux 1 i irec ihlf if iend 0 goto l39 ihlf istep istep 2 h h h if ihlf 0 goto l4 imod istep 2 if istep-2 imod ! 0 delt-0.02 prmt 3 0.0 goto l4 ihlf istep istep 2 h h h goto l4 l39 out p x, y,dery, ihlf, ndim, prmt l40 for i 0 i ndim i delete aux i return 6.3.
– Конец работы –
Эта тема принадлежит разделу:
Точность проведения коррекции зависит от точности направления корректирующего импульса, заданной в ТЗ. Было проведено моделирование системы… В работе приводятся программы, реализующие интегрирование уравнений движения… Расположение плоскости орбиты по отношению к Солнцу выбрано таким образом, чтобы угол между линией узлов и следом…
Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: Основной программный модуль main.cpp
Если этот материал оказался полезным ля Вас, Вы можете сохранить его на свою страничку в социальных сетях:
Твитнуть |
Новости и инфо для студентов