# Performance Analyses of a RAIM Algorithm for Kalman Filter with GPS and NavIC Constellations
## 3 Modified Pseudorange Error Models and \(\mathbf{\
Change in \(\theta\) between two consecutive epochs, \((\theta^{(i+1)}(i)\ -\ \theta^{(i)}(i))\), lies between \(\pm\frac{v_{\text{m}}^{sat}+v_{\text{m}}^{user}}{r_{\text{su}}^{(i)}}\times \frac{180}{\pi}\), where \(v_{\text{m}}^{sat}\) = maximum satellite speed, \(v_{\text{m}}^{user}\) = maximum user speed = Mach 1, \(r_{\text{su}}^{(i)}\) = range between the user and satellite at \(\theta^{(i)}\) calculated using the approach of [36], and maximum user altitude = 15 km. With \(M\) and \((N-M)\) less than or equal to 20, three different values of \(q\) are chosen for the calculation of \(\beta_{\ell q}\). With maximum satellite and user speeds and user altitude, equivalent time constants, \(1/\beta_{\ell q}\), and \(a_{l1,\,\ell q}^{\text{max}}\) are plotted as a function of \(\theta^{(\ell)}\) with increasing and decreasing \(\theta\) over \(t_{\ell},\ldots,t_{\ell+q}\) and presented in Figures 1 and 2, respectively, for both GPSand NavIC. \(a_{i1,\,\ell q}^{\min}\) is not shown to avoid clutter. It can be obtained along with the time constants and \(a_{i1,\,\ell q}^{\max}\) using the Matlab program matlab_program_figures_1_2.m provided in the Supplementary Materials. It is apparent that at a given \(\theta^{(\ell)}\), the variation of \(a_{i1,\,\ell q}^{\max}\) with \(q\) is very small. The maximum difference is 0.0004 between \(q\) = 1 and \(q\) = 19. For \(a_{i1,\,\ell q}^{\min}\), it is 0.0002. The selected \(a_{\max}\ (=\max_{q,\theta}a_{i1,\,\ell q}^{\max})\) and \(a_{\min}\ (=\min_{q,\theta}a_{i1,\,\ell q}^{\min})\) are shown with thick black lines in Figure 2.  
Exhaustive simulations are also performed to validate \(a_{\min}\) and \(a_{\max}\) of Figure 2. This is described next. Uniformly random user speeds within [\(-v_{\rm m}^{user}\ v_{\rm m}^{user}\)] are selected over \(q\) epochs. An initial satellite speed is chosen by a uniformly random sample within [\(-v_{\rm m}^{sat}\)]. Then, the satellite speed is propagated over \(q\) epochs with an acceleration randomly picked between its minimum and maximum limits. This way, four hundred thousand sets of user and satellite speeds are obtained. Half of these are for GPS, and the other half are for NavIC. For GPS, with each \(\theta^{(\ell)}\) between \(5^{\circ}\) and \(90^{\circ}\) and each of three \(q\)s, each of the two hundred thousand sets of speeds is used to calculate \(\theta^{(\ell+1)},\ldots,\theta^{(\ell+q)}\) for a given user altitude, and the corresponding \(a_{i1,\,\ell q}^{\min}\) and \(a_{i1,\,\ell q}^{\max}\) are noted. With half of the speeds, \(\theta^{(i+1)}=\theta^{(i)}\ +\ \frac{v_{sat}^{(i)}+v_{user}^{(i)}}{r_{ \rm st}^{(i)}}\times\frac{180}{\pi}\), \(\iota=\ell,\ldots\ell+q-1\), where \(v_{sat}^{(i)}\) and \(v_{user}^{(i)}\) are satellite and user speeds at epoch \(\iota\), and \(\theta^{(i+1)}=\theta^{(i)}\ -\ \frac{v_{sat}^{(i)}+v_{user}^{(i)}}{r_{ \rm st}^{(i)}}\times\frac{180}{\pi}\) with the other one hundred thousand sets. Considering all sets of data, \((\max_{q,\theta}a_{i1,\,\ell q}^{\max})\) is found to be less than the selected \(a_{\max}\) and \((\min_{q,\theta}a_{i1,\,\ell q}^{\min})\ >\ a_{\min}\). The same is repeated for NavIC with the other two hundred thousand sets. This is performed numerous times with the Matlab program matlab_program_figures_1_2.m of the Supplementary Materials. Next, it is repeated for each user altitude from 0 to 15 km in steps of 5 km. Finally, in each simulation, the user altitude is varied randomly with uniform distribution between 0 and 15 km over \(q\) epochs. In all simulations, \(a_{\max}\) and \(a_{\min}\) of Figure 2 are found to be the correct upper and lower bounds. Figure 1: Equivalent time constants, \(1/\beta_{\ell q}\) as a function of \(\theta^{(\ell)}\); time interval \(=q\Delta t\); \(\Delta t=1\) s.  
The structure of the corresponding \(\boldsymbol{\Psi}_{\text{sub, max}}^{i}\) remains the same. That is, \(\boldsymbol{\Psi}_{\text{sub, max}}^{i}=