# Performance Analyses of a RAIM Algorithm for Kalman Filter with GPS and NavIC Constellations
## 7 Conclusions
plot; filter_innovations.png: SKF and full-state EKF innovations and equivalent delta range for WLS; KF_rain_perf1.png: KF test statistics, PLs, and position error plots for long duration data; KF_rain_perf2.png: KF RAIM parameters of Figure 9 for long duration data; wls_full-state_ekf_rain_results.png: WLS and full-state EKF results. **Funding:** This work was supported by the Space Applications Centre, Ahmedabad, Indian Space Research Organisation (grant number STC0225). **Institutional Review Board Statement:** Not applicable. **Informed Consent Statement:** Not applicable. **Data Availability Statement:** IF data used for the paper are available from the author upon request. Similar data can also be generated with the details provided in the beginning of Simulation Studies. **Conflicts of Interest:** The author declares no conflict of interest. Appendix A Algorithm to Justify Use of \(\boldsymbol{\
abla_{\max}}\) in Place of \(\boldsymbol{\
abla}\)  
```
% Enter constellation specific details and maximum number of visible satellites % Enter values of \(a_{\min}\) and \(a_{\max}\) for constellations (e.g., for GPS and NavIC, see % Figure 2) for batch no = 1:10 % Ten batches each with 50,000 simulations for sim no = 1:50,000 % Run 50,000 simulations % Assume a value for number of epochs (i.e. \(M\) for \(\alpha_{1}^{\prime}\), or \((N-M)\) for \(\alpha_{2}^{\prime}\)); % time between two epochs is 1 s; select user speeds and heights within range % over these epochs for \(i=1\):total number of satellites % Pick initially a uniformly random elevation angle \(\theta^{(1)}(i)\) within 5.1\({}^{\circ}\) and % 90\({}^{\circ}\). % Pick random scale factors for all \(\tau\)s and error standard deviations % within range for \(\ell=1\): number of epochs - 1 % If \(\ell==1\), find \(\sigma^{(\ell)}(i)\); else take the value from previous iteration % If \(\ell==1\), assume satellite speed over \(M\) or \((N-M)\) epochs, as % described toward the end of Section 3, or keep it constant as it changes slowly % Calculate change in elevation angle as \(\theta^{(\ell+1)}\ -\ \theta^{(\ell)}=\) % \(\pm\)\(\dfrac{v_{sat}^{(\ell)}+v_{user}^{(\ell)}}{r_{su}^{(\ell)}}\times\dfrac{180}{ \pi}\); user height is between 0 and 15 km; select % '+' or '-' to update \(\theta\) % Find \(\theta^{(\ell+1)}(i)\) by adding/subtracting change in elevation angle % to/from \(\theta^{(\ell)}(i)\) % If \(\theta^{(\ell+1)}(i)<5^{\circ}\), ignore the satellite in subsequent epochs and break % from \(\ell\) loop % Find \(\sigma^{(\ell+1)}(i)\) % Calculate \(\beta_{\ell q}^{\text{mod}}\) for \(q=1,\ldots\), number of epochs - \(\ell\) (see Equation (23)) end % End of \(\ell\) loop % Form \(\boldsymbol{\
abla}_{\text{sub}}^{i}\) with \(a_{\ell 0}\) and \(a_{\ell q}\), and \(\boldsymbol{\
abla}_{\text{sub, max}}^{i}\) with \(a_{\max}\) for satellite \(i\) over \(M\) % or \((N-M)\) epochs % Check if each element of \(\boldsymbol{\
abla}_{\text{sub}}^{i}\leq a_{\max}^{\text{1 row number - column number! of the element % and each element \(\geq\mathcal{K}_{\min}(a_{\min})^{\text{1 row number - column number! }}}\) (Equation (29))
```
% Check if the minimum eigenvalue of \(\mathbf{\Psi}_{\text{sub}}^{i}\) is greater than zero % If any of the previous three conditions is violated, display a message and % halt end % End of satellite loop % Form \(\mathbf{\Psi}\) and \(\mathbf{\Psi}_{\text{max}}\); Consider white noise bound in \(\mathbf{\Psi}\) (Equation (32)), and in % \(\mathbf{\Psi}_{\text{max}}\) for \(\alpha_{1}^{\prime}\), but not in \(\mathbf{\Psi}_{\text{max}}\) for \(\alpha_{2}^{\prime}\).