def reception(coordSat, Pexacte, indvisi, nbvisi, t): """ Reception du signal function [TGps,TRecep,X,Y,Z] = mesure Parameters ---------- coordSat : array_like Coordonnées des satellites Pexacte : array_like Position exacte de l'utilisateur indvisi : array_like Indices des satellites visibles nbvisi : int Nombre de satellites visibles (len(indvisi)...) t : int Return ------ TGps : vecteur colonne de taille le nombre de satellites visibles indiquant le temps GPS à l'émission du signal TRecep : vecteur colonne de taille le nombre de satellites visibles indiquant le temps Recepteur à la réception du signal X : vecteur colonne de taille le nombre de satellites visibles indiquant la coordonnée X des satellites visibles Y : vecteur colonne de taille le nombre de satellites visibles indiquant la coordonnée Y des satellites visibles Z : vecteur colonne de taille le nombre de satellites visibles indiquant la coordonnée Z des satellites visibles """ from params import c, sigma # Distance reelle ut-sat (sans erreur de mesure, sans biais d'horloge) sat = coordSat[:, indvisi] TGps = t * np.ones((nbvisi, 1)) TRecep = np.zeros((nbvisi, 1)) # init for i in range(nbvisi): D = sat[:, i:i+1] - Pexacte[:3] N = np.linalg.norm(D, 2) TRecep[i] = TGps[i] + N / c + Pexacte[3] EPS = np.zeros((nbvisi, 1)) EPS = algos.normrnd(0, sigma, nbvisi, 1) X = np.array([coordSat[0, indvisi]]).T + EPS EPS = algos.normrnd(0, sigma, nbvisi, 1) Y = np.array([coordSat[1, indvisi]]).T + EPS EPS = algos.normrnd(0, sigma, nbvisi, 1) Z = np.array([coordSat[2, indvisi]]).T + EPS return TGps, TRecep, X, Y, Z
H_UT = H_UT_DEP + IT * PAS_H # vars locales DUT = H_UT + Re r_ut = DUT * np.cos(LAT_UT) Pexacte = np.zeros((4, 1)) Pexacte[0] = r_ut * np.cos(LON_UT) # X Pexacte[1] = r_ut * np.sin(LON_UT) # Y Pexacte[2] = DUT * np.sin(LAT_UT) # Z Pexacte[3] = BH ### XXX XXX ## init_pos # Tirage d'un point initial proche de la solution P0 = Pexacte EPS = np.zeros((4, 1)) EPS[:3] = algos.normrnd(0, 200000, 3, 1) # fct P0 = P0 + EPS P0[3] = 0 LAT_INI = np.arcsin(P0[2] / np.linalg.norm(P0[:3], 2)) LON_INI = np.arccos(P0[0] / np.linalg.norm(P0[:2], 2)) if P0[1] < 0: LON_INI = 2 * np.pi - LON_INI # XXX POSINIT = P0 LON_SOL = [] LAT_SOL = [] PSOL = []