Changeset 8619 in ntrip for trunk/BNC/src/pppModel.cpp


Ignore:
Timestamp:
Feb 28, 2019, 2:49:35 PM (5 years ago)
Author:
stuerze
Message:

special ssr wind up computation is added

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/BNC/src/pppModel.cpp

    r8204 r8619  
    369369///////////////////////////////////////////////////////////////////////////
    370370double t_windUp::value(const bncTime& etime, const ColumnVector& rRec,
    371                        t_prn prn, const ColumnVector& rSat) {
     371                       t_prn prn, const ColumnVector& rSat, bool ssr,
     372                       double yaw, const ColumnVector& vSat) {
    372373
    373374  if (etime.mjddec() != lastEtime[prn.toInt()]) {
     
    380381    // GPS Satellite unit Vectors sz, sy, sx
    381382    // -------------------------------------
     383    ColumnVector sHlp;
     384    if (!ssr) {
     385      sHlp = t_astro::Sun(etime.mjddec());
     386    }
     387    else {
     388      ColumnVector Omega(3);
     389      Omega[0] = 0.0;
     390      Omega[1] = 0.0;
     391      Omega[2] = t_CST::omega;
     392      sHlp = vSat + crossproduct(Omega, rSat);
     393    }
     394    sHlp /= sHlp.norm_Frobenius();
     395
    382396    ColumnVector sz = -rSat / rSat.norm_Frobenius();
    383 
    384     ColumnVector xSun = t_astro::Sun(etime.mjddec());
    385     xSun /= xSun.norm_Frobenius();
    386 
    387     ColumnVector sy = crossproduct(sz, xSun);
     397    ColumnVector sy = crossproduct(sz, sHlp);
    388398    ColumnVector sx = crossproduct(sy, sz);
     399
     400    // Yaw consideration
     401    sx = t_astro::rotZ(yaw) * sx;
    389402
    390403    // Effective Dipole of the GPS Satellite Antenna
    391404    // ---------------------------------------------
    392     ColumnVector dipSat = sx - rho * DotProduct(rho,sx)
    393                                                 - crossproduct(rho, sy);
     405    ColumnVector dipSat = sx - rho * DotProduct(rho,sx) - crossproduct(rho, sy);
    394406
    395407    // Receiver unit Vectors rx, ry
     
    397409    ColumnVector rx(3);
    398410    ColumnVector ry(3);
    399 
    400411    double recEll[3]; xyz2ell(rRec.data(), recEll) ;
    401412    double neu[3];
     
    413424    // Effective Dipole of the Receiver Antenna
    414425    // ----------------------------------------
    415     ColumnVector dipRec = rx - rho * DotProduct(rho,rx)
    416                                                    + crossproduct(rho, ry);
     426    ColumnVector dipRec = rx - rho * DotProduct(rho,rx) + crossproduct(rho, ry);
    417427
    418428    // Resulting Effect
     
    420430    double alpha = DotProduct(dipSat,dipRec) /
    421431                      (dipSat.norm_Frobenius() * dipRec.norm_Frobenius());
    422 
     432/*
    423433    if (alpha >  1.0) alpha =  1.0;
    424434    if (alpha < -1.0) alpha = -1.0;
    425 
     435*/
    426436    double dphi = acos(alpha) / 2.0 / M_PI;  // in cycles
    427437
Note: See TracChangeset for help on using the changeset viewer.