Измените gps-sdr-sim, чтобы направить антенны в сторону от надира Земли

#gps #simulation #satellite

#gps #simulation #trigonometry #satellite

Вопрос:

В настоящее время я пытаюсь смоделировать производительность пользовательской спутниковой группировки PNT, которую я разработал в программном обеспечении. Я проанализировал данные спутниковой эфемериды в формате навигационного файла RINEX и успешно ввел их в gps-sdr-sim. Однако теперь мне нужно изменить gps-sdr-sim, чтобы каким-то образом «направить» антенны «GPS» в сторону/за пределы Земли, поскольку целью созвездия PNT является обслуживание пользователей Cislunar.

Я нашел только следующую строку кода, которая предполагает, что приемник (основанный на Земле) использует угол возвышения в небе/над горизонтом для расчета соответствующего усиления на основе диаграммы направленности антенны.

 ibs = (int)((90.0-rho.azel[1]*R2D)/5.0); // covert elevation to boresight ant_gain = ant_pat[ibs];  

Существует также функция проверки видимости, которая просто проверяет, находится ли она над горизонтом (elvMask = 0).

 int checkSatVisibility(ephem_t eph, gpstime_t g, double *xyz, double elvMask, double *azel) {  double llh[3],neu[3];  double pos[3],vel[3],clk[3],los[3];  double tmat[3][3];   if (eph.vflg != 1)  return (-1); // Invalid   xyz2llh(xyz,llh);  ltcmat(llh, tmat);   satpos(eph, g, pos, vel, clk);  subVect(los, pos, xyz);  ecef2neu(los, tmat, neu);  neu2azel(azel, neu);   if (azel[1]*R2D gt; elvMask)  return (1); // Visible  // else  return (0); // Invisible }  

Я думаю, что могу изменить это, чтобы это было ПРАВДОЙ, если и только если спутник не скрыт в двух нижеприведенных случаях (сверху и сбоку).: Скрытый спутник