Исследование движения центра масс межпланетных космических аппаратов

               << " 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;

Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14



Реклама
В соцсетях
рефераты скачать рефераты скачать рефераты скачать рефераты скачать рефераты скачать рефераты скачать рефераты скачать