Смекни!
smekni.com

Тригонометричні ефемериди планет Сонячної системи (стр. 4 из 6)

2: begin Eagth1(EG,ER,ER0,ESD,EH,ER1,EGD, ED,DR);

Venus1(AD,AG,AR,x,AR0,ASD,AH,AR1,AGD,RM,EG);

Venus2(AAD1,ARS,AZE,AZP,ABD,AV,AYD,AYDS,AAD0,AAD,AA,AAM,AAS,AID1,AID2,AID,AB,ABM,AF,

ER,AG,EG,AR, AAH,ABG,R0);

Venus3(AT1,ATK,ATKL,ATKLM,AP,AT2,AT3,ATG,ATS,ATSL,ATSLM,ATZ,ATZL,ATZLM,AZ,AA,EG,k,LB,

AYD,AV,FI,AB, ATKLH,ATSLH,ATZLH,n);end;

3: Eagth1(EG,ER,ER0,ESD,EH,ER1,EGD, ED,DR);

4: begin Eagth1(EG,ER,ER0,ESD,EH,ER1,EGD, ED,DR);

Mars1(AD,AG,AR,x,AR0,ASD,AH,AR1,AGD,RM,EG);

Mars2(AAD1,ARS,AZE,AZP,ABD,AV,AYD,AYDS,AAD0,AAD,AA,AAM,AAS,AID1,AID2,AID,AB,ABM,AF,

ER,AG,EG,AR, AAH,ABG,R0);

Mars3(AT1,ATK,ATKL,ATKLM,AP,AT2,AT3,ATG,ATS,ATSL,ATSLM,ATZ,ATZL,ATZLM,AZ,AA,EG,k,LB,

AYD,AV,FI,AB, ATKLH,ATSLH,ATZLH,n);end;

5: begin Eagth1(EG,ER,ER0,ESD,EH,ER1,EGD, ED,DR);

Jupiter1(AD,AG,AR,x,AR0,ASD,AH,AR1,AGD,RM,EG);

Jupiter2(AAD1,ARS,AZE,AZP,ABD,AV,AYD,AYDS,AAD0,AAD,AA,AAM,AAS,AID1,AID2,AID,AB,ABM,AF,

ER,AG,EG,AR, AAH,ABG,R0);

Jupiter3(AT1,ATK,ATKL,ATKLM,AP,AT2,AT3,ATG,ATS,ATSL,ATSLM,ATZ,ATZL,ATZLM,AZ,AA,EG,k,LB,

AYD,AV,FI,AB, ATKLH,ATSLH,ATZLH,n);end;

6: begin Eagth1(EG,ER,ER0,ESD,EH,ER1,EGD, ED,DR);

Saturn1(AD,AG,AR,x,AR0,ASD,AH,AR1,AGD,RM,EG);

Saturn2(AAD1,ARS,AZE,AZP,ABD,AV,AYD,AYDS,AAD0,AAD,AA,AAM,AAS,AID1,AID2,AID,AB,ABM,AF,

ER,AG,EG,AR, AAH,ABG,R0);

Saturn3(AT1,ATK,ATKL,ATKLM,AP,AT2,AT3,ATG,ATS,ATSL,ATSLM,ATZ,ATZL,ATZLM,AZ,AA,EG,k,LB,

AYD,AV,FI,AB, ATKLH,ATSLH,ATZLH,n);end;

7: begin Eagth1(EG,ER,ER0,ESD,EH,ER1,EGD, ED,DR);

Uran1(AD,AG,AR,x,AR0,ASD,AH,AR1,AGD,RM,EG);

Uran2(AAD1,ARS,AZE,AZP,ABD,AV,AYD,AYDS,AAD0,AAD,AA,AAM,AAS,AID1,AID2,AID,AB,ABM,AF,

ER,AG,EG,AR, AAH,ABG,R0);

Uran3(AT1,ATK,ATKL,ATKLM,AP,AT2,AT3,ATG,ATS,ATSL,ATSLM,ATZ,ATZL,ATZLM,AZ,AA,EG,k,LB,

AYD,AV,FI,AB, ATKLH,ATSLH,ATZLH,n);end;

8: begin Eagth1(EG,ER,ER0,ESD,EH,ER1,EGD, ED,DR);

Neptun1(AD,AG,AR,x,AR0,ASD,AH,AR1,AGD,RM,EG);

Neptun2(AAD1,ARS,AZE,AZP,ABD,AV,AYD,AYDS,AAD0,AAD,AA,AAM,AAS,AID1,AID2,AID,AB,ABM,AF,

ER,AG,EG,AR, AAH,ABG,R0);

Neptun3(AT1,ATK,ATKL,ATKLM,AP,AT2,AT3,ATG,ATS,ATSL,ATSLM,ATZ,ATZL,ATZLM,AZ,AA,EG,k,LB,

AYD,AV,FI,AB, ATKLH,ATSLH,ATZLH,n);end;

9: begin Eagth1(EG,ER,ER0,ESD,EH,ER1,EGD, ED,DR);

Pluton1(AD,AG,AR,x,AR0,ASD,AH,AR1,AGD,RM,EG);

Pluton2(AAD1,ARS,AZE,AZP,ABD,AV,AYD,AYDS,AAD0,AAD,AA,AAM,AAS,AID1,AID2,AID,AB,ABM,AF,

ER,AG,EG,AR, AAH,ABG,R0);

Pluton3(AT1,ATK,ATKL,ATKLM,AP,AT2,AT3,ATG,ATS,ATSL,ATSLM,ATZ,ATZL,ATZLM,AZ,AA,EG,k,LB,

AYD,AV,FI,AB, ATKLH,ATSLH,ATZLH,n);end;

end;

if PLN=3 then

begin

Label4.Visible:=true;

Label14.Visible:=true;

Label27.Visible:=true;

Label27.Caption:=FloatToStrF(EG,ffGeneral,7,3);

Label5.Visible:=true;

Label15.Visible:=true;

Label28.Visible:=true;

Label28.Caption:=FloatToStrF(ER,ffGeneral,6,3);

D0:=0;

M0:=0;

R0:=0;

end

else

begin

Label4.Visible:=true;

Label14.Visible:=true;

Label27.Visible:=true;

Label27.Caption:=FloatToStrF(AG,ffGeneral,7,3);

Label5.Visible:=true;

Label15.Visible:=true;

Label28.Visible:=true;

Label28.Caption:=FloatToStrF(AR,ffGeneral,6,3);

Label6.Visible:=true;

Label29.Visible:=true;

Label16.Visible:=true;

Label30.Visible:=true;

Label17.Visible:=true;

Label29.Caption:=FloatToStrF(AAH,ffGeneral,2,0);

Label30.Caption:=FloatToStrF(AAM,ffGeneral,4,2);

Label7.Visible:=true;

Label31.Visible:=true;

Label18.Visible:=true;

Label41.Visible:=true;

Label42.Visible:=true;

Label31.Caption:=FloatToStrF(ABG,ffGeneral,2,0);

Label41.Caption:=FloatToStrF(ABM,ffGeneral,4,2);

Label8.Visible:=true;

Label32.Visible:=true;

Label19.Visible:=true;

Label32.Caption:=FloatToStrF(AYDS,ffGeneral,3,1);

Label9.Visible:=true;

Label33.Visible:=true;

Label33.Caption:=FloatToStrF(AF,ffGeneral,3,2);

Label10.Visible:=true;

Label34.Visible:=true;

Label21.Visible:=true;

Label35.Visible:=true;

Label23.Visible:=true;

Label34.Caption:=FloatToStrF(ATSLH,ffGeneral,2,0);

Label35.Caption:=FloatToStrF(ATSLM,ffGeneral,4,2);

Label11.Visible:=true;

Label36.Visible:=true;

Label20.Visible:=true;

Label37.Visible:=true;

Label24.Visible:=true;

Label36.Caption:=FloatToStrF(ATKLH,ffGeneral,2,0);

Label37.Caption:=FloatToStrF(ATKLM,ffGeneral,4,2);

Label12.Visible:=true;

Label38.Visible:=true;

Label22.Visible:=true;

Label39.Visible:=true;

Label25.Visible:=true;

Label38.Caption:=FloatToStrF(ATZLH,ffGeneral,2,0);

Label39.Caption:=FloatToStrF(ATZLM,ffGeneral,4,2);

Label13.Visible:=true;

Label40.Visible:=true;

Label26.Visible:=true;

Label40.Caption:=FloatToStrF(AZ,ffGeneral,4,2);

if abs(int(AG-EG))<=5 then

begin

Label43.Visible:=true;

end;

Label44.Visible:=true;

Label45.Visible:=true;

Label46.Visible:=true;

Label45.Caption:=FloatToStrF(AV,ffGeneral,6,3);

ZAA:=AA;

ZAB:=AB;

ZAA1:=AA;

ZAB1:=AB;

D0:=0;

M0:=0;

R0:=0;

Button2.Enabled:=true;

end;

end;

procedure TForm2.Button2Click(Sender: TObject);

begin

Form3:=TForm3.Create(Application);

Form3.ShowModal;

Form3.Free;

Button2.Enabled:=false;

end;

end.

unit KonstPLN;

interface

Const AO=149597870; N0=0.01; //астрономічна одиниця км

Eri=23.452295;Ari=25.2;Jri=3.1;Mri=7;Vri=3.4;Sri=26.8;

Uri=98;Nri=29;Pri=1;//нахил екватора до екліптики

Eao=1;Aao=1.523688;Jao=5.202803;Mao=0.387099;Vao=0.723322;Sao=9.538843;

Uao=19.190978;Nao=30.070672;Pao=39.51774;//велика піввісь орбіти

Eeo=0.016738;Aeo=0.09334;Jeo=0.048387;Meo=0.20562;Veo=0.006806;Seo=0.056;

Ueo=0.0472;Neo=0.008553;Peo=0.253;//ексцентриситет орбіти

Eap=104.24375;Aap=335.7197;Jap=15.2;Map=77.31552;Vap=131.53526;Sap=86.25;

Uap=171.14;Nap=45.5;Pap=225;//довгота перигелію орбіти

Etd=365.24219;Atd=686.9797;Jtd=4332.5879;Mtd=87.9693;Vtd=224.7008;Std=10759.201;

Utd=30685.93;Ntd=60187.65;Ptd=90731.2;//період обертання навколо Сонця дн.

Ere=6378.14;Are=3390;Jre=71492;Mre=2440;Vre=6052;Sre=60268;

Ure=24300;Nre=25000;Pre=1500;//екваторіальний радіус планети км.

Evo=29.77;Avo=24.22;Jvo=13.07;Mvo=48.89;Vvo=35;Svo=9.65;

Uvo=6.8;Nvo=5.43;Pvo=4.74;//орбітальна швидкість планети км/с

Avy=49.966942;Jvy=40.690276;Mvy=48.450552;Vvy=76.998886;Svy=113.99442;

Uvy=74.590276;Nvy=131.95776;Pvy=109.9036;//довгота висхідного вузла орбіти

Aie=1.85;Jie=1.3069442;Mie=7.0033332;Vie=3.3938886;Sie=2.491111;

Uie=0.772777;Nie=1.7763886;Pie=17.313332;//нахил орбіти до екліптики

implementation

begin

end.

unit Eagth;

interface

Uses Math,KonstPLN;

Const ED5=9; EG5=108.6; ER5=0.9833; // початкові координати Землі 9 січня 1990р.

Procedure Eagth1(var EG,ER,ER0,ESD,EH,ER1,EGD,ED:real;var DR:integer);

implementation

Procedure Eagth1;

begin

ED:=ED5; EG:=EG5; ER:=ER5;

ER0:=Evo*86400/AO*N0; {формула 4} //шлях проходження за N3 дні

ESD:=(PI*sqr(Eao)*sqrt(1-sqr(Eeo))/Etd)*N0;//формула 3 площа еліпса орбіти за N3дні

Repeat

ED:=ED+N0; //2 закон Кеплера

EH:=2*ESD/ER; //радіус-вектор через N3 днів

ER1:=sqrt(sqr(EH)+sqr(ER-sqrt(abs(sqr(ER0)-sqr(EH)))));//формула 5

EGD:=arctan((1/ER1*EH)/sqrt(1-sqr(1/ER1*EH)))*180/PI; //формула 6

EG:=EG+EGD; //кут проходу за N3 дні

while EG>=360 do

begin

EG:=EG-360

end;

ER1:=(Eao*(1-sqr(Eeo)))/(1+Eeo*cos((EG-Eap)*PI/180)); //формула 2

ER:=ER1;

Until DR<=ED; //обчислення до моменту спостереження

end;

end.

unit Mars;

interface

Uses KonstPLN,Eagth,Math;

Const AD5=32852; //номер дня 9 січня 1990р. з 1 березня 1900р.

AG5=235.0; AR5=1.538; //початкове положення Марса 9 січня 1990р.

Procedure Mars1(var AD,AG,AR,x,AR0,ASD,AH,AR1,AGD,RM,EG:real);

Procedure Mars2(var AAD1,ARS,AZE,AZP,ABD,AV,AYD,AYDS,AAD0,AAD,AA,AAM,AAS,AID1,AID2,AID,AB,

ABM,AF, ER,AG,EG,AR,AAH,ABG:real;var R0:integer);

Procedure Mars3(var AT1,ATK,ATKL,ATKLM,AP,AT2,AT3,ATG,ATS,ATSL,ATSLM,ATZ,ATZL,ATZLM,AZ,

AA,EG,k,LB,AYD,AV,FI,AB,ATKLH,ATSLH,ATZLH:real;var n:integer);

implementation

Procedure Mars1;

begin

AD:=AD5; AG:=AG5; AR:=AR5; x:=0;

AR0:=Avo*86400/AO*N0; //формула 4 шлях проходження за N4 дні

ASD:=(PI*sqr(Aao)*sqrt(1-sqr(Aeo))/Atd)*N0;//формула 3 площа еліпса орбіти за N4 дні

Repeat

AD:=AD+N0; //2 закон Кеплера

AH:=2*ASD/AR; //радіус-вектор через N4 дні

AR1:=sqrt(sqr(AH)+sqr(AR-sqrt(abs(sqr(AR0)-sqr(AH)))));//формула 5

AGD:=arctan((1/AR1*AH)/sqrt(1-sqr(1/AR1*AH)))*180/PI;//формула 6

AG:=AG+AGD; //кут проходу за N4 дні

While AG>=360 do

begin

AG:=AG-360

end;

AR1:=(Aao*(1-sqr(Aeo)))/(1+Aeo*cos((AG-Aap)*PI/180));//формула 2

AR:=AR1;

x:=x+1 //кількість циклів обчислення

Until RM<=AD; //обчислення до моменту спостереження

end;//Mars1

Procedure Mars2;

begin

AAD1:=arctan((ER*sin((AG-EG)*PI/180))/(AR-ER*cos((AG-EG)*PI/180)))*180/PI;//зміщення прямого

ARS:=sin((AG-Avy)*PI/180)*sin(Aie*PI/180); //піднесення, формула 7

AZE:=AR*ARS;

AZP:=sqrt(sqr(ER*sin((EG-AG)*PI/180))+sqr(AR*sqrt(1-sqr(ARS))-ER*cos((EG-AG)*PI/180)));

ABD:=arctan(AZE/AZP)*180/PI; //зміщення схилення, формула 8

AV:=sqrt(sqr(AZE)+sqr(AZP));//лінійна відстань між Землею і Марсом, формула 9

AYD:=2*arctan(Are/(AV*AO))*180/PI;//кутовий діаметр Марса, формула 10

AYDS:=AYD*3600;

AAD0:=arctan(sqrt(1-sqr((sqr(AV)+sqr(AR)-sqr(ER))/(2*AV*AR)))/((sqr(AV)+sqr(AR)-sqr(ER))/

(2*AV*AR)))*180/PI;

AAD:=sqrt(abs(sqr(AAD0)-sqr(ABD)));

If AAD1<0 then

begin

AAD:=-AAD;

end;

AA:=(AG+AAD)/15; //пряме піднесення Марса

If AA>=24 then

begin

AA:=AA-24;

end;

If AA<0 then

begin

AA:=AA+24;

end;

AAH:=int(AA);

AAM:=frac(AA)*60;

AAS:=frac(AAM)*60;

AID1:=sin((AA*15)*PI/180)*(Eri-0.00013011111*(R0-1900));//схилення точки екліптики

AID2:=arctan((sin((180-AA*15)*PI/180)*sin((Eri-0.00013011111*(R0-1900))*PI/180))/

(sqrt(1-sqr(sin((180-AA*15)*PI/180)*sin((Eri-0.00013011111*(R0-1900))*PI/180)))))*

180/PI; //те саме другим методом

AID:=(AID1+AID2)/2; //їх середнє значення

AB:=AID+ABD; //Схилення Марса

ABG:=int(AB);

ABM:=frac(AB)*60;

AF:=(1/2)+(cos(AAD0*PI/180)/2); //фаза диска Марса, формула 11

end;//Mars2

Procedure Mars3;

begin

AT1:=AA-(EG/15+k);

If AT1<0 then

begin

AT1:=AT1+24;

end;

ATK:=AT1/1.002738; //час кульмінації Марса, формула 14

ATKL:=ATK-LB/15+n; //місцевий час кульмінації

if ATKL<0 then

begin

ATKL:=ATKL+24;

end;

ATKLH:=int(ATKL); ATKLM:=frac(ATKL)*60;

AP:=90+0.59+(AYD/2)-(arctan(Ere/(AV*AO))*180/PI);

AT2:=(cos(AP*PI/180)-sin(FI*PI/180)*sin(AB*PI/180))/(cos(FI*PI/180)*cos(AB*PI/180));

AT3:=arctan(sqrt(1-sqr(AT2))/AT2)*180/PI;//годинний кут сходу і заходу Марса

if AT3<=0 then //формула 12

begin

AT3:=AT3+180;

end;

ATG:=AT3/15;

ATS:=ATK-ATG; //час сходу Марса

if ATS<0 then

begin

ATS:=ATS+24;

end;

ATSL:=ATS-LB/15+n; //місцевий час сходу

if ATSL<0 then

begin

ATSL:=ATSL+24;

end;

ATSLH:=int(ATSL); ATSLM:=frac(ATSL)*60;

ATZ:=ATK+ATG; //час заходу Марса

if ATZ>=24 then

begin

ATZ:=ATZ-24;

end;

ATZL:=ATZ-LB/15+n; //місцевий час заходу

if ATZL<0 then

begin

ATZL:=ATZL+24;

end;

ATZLH:=int(ATZL); ATZLM:=frac(ATZL)*60;

AZ:=arctan((cos(AB*PI/180)*sin(AT3*PI/180)/sin(AP*PI/180))/sqrt(1-sqr((cos(AB*PI/180)*

sin(AT3*PI/180))/sin(AP*PI/180))))*180/PI; //азимут Марса при сході і заході

if AB>0 then //формула 13

begin

AZ:=180-AZ;

end;

end;//Mars3

end.

unit Common;

interface

var

ZPL,ZD,ZM,ZR,ZPL1,ZD1,ZM1,ZR1 : integer;

ZAA,ZAB,ZAA1,ZAB1 :real;

implementation

end.

unit Unit3;

interface