GPS Computer Program Performed by: Moti Peretz Neta Galil Supervised by: Mony Orbach Spring 2009 Part A Presentation High Speed Digital Systems Lab Electrical Engineering Department Technion – Israel Institute of Technology
GPS Computer Program 2 Objectives Implementing the RPF algorithm in software – C language Serving as reference for implementing the algorithm in hardware Checking if the simulation can run with the given accuracy of the components according to the hardware constraints. If so, check if the results are correct
GPS Computer Program 3 Programming model Initialization Main Loop Results Log File
GPS Computer Program 4 Programming model – Main Loop Phase 2 (every 10 mSec) Phase 3-5 (every 1 sec) Phase 6-9 N Effective > N Threshold NOYES
GPS Computer Program 5 Programming model – Results Revaluated Vector (every 1 sec) True State Vector Comparison (every 1 sec)
GPS Computer Program 6 Programming model – Log File Number of Times Passing Phase 5 Start / Finish Time Total Running Time
GPS Computer Program 7 Programming model - Initialization Initialize the filter by assigning the initial values of 18 components for 30K particles Location in polar coordinates: Velocity in three directions: North, East and Vertical Four components of quaternion Acceleration offsets in three delegates Gyroscope sweeps in three delegates GPS receiver clock deviation
GPS Computer Program 8 Programming model – Main Loop Perform phases 2–9 of the RPF algorithm Every 10 mSec perform the propagation phase, not including the GPS clock deviation propagation Every 1 Sec perform the rest of the phases including the GPS clock deviation propagation If the effective number of particles is greater than the threshold number – 500, go back to phase 2, else, continue to phase 6
GPS Computer Program 9 Programming model – Results The simulation output. Every 1 Sec the revaluated vector components are written to an output file Comparison of the results with the true state vector which represents the body targets
GPS Computer Program 10 Data Structures Particles – P_Arr, an array of 30K elements. Each element is a particle structure which contains the components that represent the particles array - Zeta_Arr, a service particles array. Used in phases 6, 7, 8 Service particles array – Tmp_Zeta_Arr. Used in phase 7
GPS Computer Program 11 Data Structures Satellites data – Sat_Arr, an array which represents active satellites Each element contains 3 components for satellite location in 3 cartesian delegates, the distance from the measured body and the calculated distance Revaluated vector – Rev_Vector, represents the revaluated vector which is used in phases 4, 6
GPS Computer Program 12 Main Loop Implementation
GPS Computer Program 13 C Compared to Matlab Results Every 1 Sec the simulation prints out the revaluated vector Following are graphs which compare the results between C and Matlab simulations
GPS Computer Program 14 C Compared to Matlab Results Location
GPS Computer Program 15 C Compared to Matlab Results Location
GPS Computer Program 16 C Compared to Matlab Results Location
GPS Computer Program 17 C Compared to True State Results Every 1 Sec the simulation calculates a vector which should be compatible to the true state vector The true state vector represents the body targets Following are graphs which compare the C vector and the true state vector
GPS Computer Program 18 C Compared to True State Results Location error
GPS Computer Program 19 C Compared to True State Results Location error
GPS Computer Program 20 C Compared to True State Results Location error
GPS Computer Program 21 Summary and conclusions The C simulation results are very similar to the Matlab simulation results The C results are very close to the true state targets of the body. The differences between them are few meters The C simulation runtime is 31 minutes on 2.99 GHz, 3.23 GB of RAM, 2 core PC By changing the order of phases 4 and 5, the simulation runtime reduced in about 2% and gave exactly the same results
GPS Computer Program 22 Summary and conclusions The effective number of particles is lower than the threshold number - 500, about 30 times out of 100 After running the simulation with the given accuracy of the components according to the hardware constraints, the results diverged after 15 seconds Now, we are working to find the minimum number of bits of each component so that the results will not diverge
GPS Computer Program 23 Objectives for the Second Part Creating an interface for a single FPGA card. This way each hardware group will be able to debug its VHDL implementation Each group will get the relevant data according to the C simulation outputs Creating an interface for the four FPGA card. This will enable to run the complete RPF algorithm In this case we will supply initialization data for the first phase of the algorithm
GPS Computer Program 24 Schedule FinishStartTask NameWBS 15/04/1015/11/09GPS Computer Program0 15/11/09 Project beginning1 16/12/0917/11/09Learning the generic interface for a single FPGA card 2 31/12/0917/12/09Making changes to fit the RPF3 3/01/1029/12/09Preparing the data to send to each group4 10/01/104/01/10Creating a GUI for each FPGA card5 7/03/1023/02/10Learning the interface for the four FPGAs card 6 14/03/108/03/10Preparing the initialization data7 11/04/108/03/10Updating the final report8 14/04/105/04/10Preparing the final presentation9 15/04/10 Final presentation10
GPS Computer Program 25 Gantt Chart
GPS Computer Program 26 Thank You