Framework design for high-fidelity hardware-in-the-loop LEO satellite simulations
I. S. Husain Cerruti – M. España - IAA-LA2-03-04
2nd IAA Latin American Symposium on Small Satellites
11–16 Nov. 2019, Buenos Aires, Argentina
Slide 1of 55
Framework design for high-fidelity hardware-in-the-loop LEO satellite simulations
Santiago Husain Cerruti – Martín España12 November 2019
Framework design for high-fidelity hardware-in-the-loop LEO satellite simulations
I. S. Husain Cerruti – M. España - IAA-LA2-03-04
2nd IAA Latin American Symposium on Small Satellites
11–16 Nov. 2019, Buenos Aires, Argentina
Slide 2of 55
Presentation outline
Motivation
Testbed architecture
Main class diagrams
Observers concept and communication with Spirent GNSS simulator
Technologies used and results
Conclusions and way forward
Framework design for high-fidelity hardware-in-the-loop LEO satellite simulations
I. S. Husain Cerruti – M. España - IAA-LA2-03-04
2nd IAA Latin American Symposium on Small Satellites
11–16 Nov. 2019, Buenos Aires, Argentina
Slide 3of 55
Why do we need a satellite testbed?
Framework design for high-fidelity hardware-in-the-loop LEO satellite simulations
I. S. Husain Cerruti – M. España - IAA-LA2-03-04
2nd IAA Latin American Symposium on Small Satellites
11–16 Nov. 2019, Buenos Aires, Argentina
Slide 4of 55
Why do we need a satellite testbed?
Advanced GNC concepts, especially for Distributed
Space Systems
Framework design for high-fidelity hardware-in-the-loop LEO satellite simulations
I. S. Husain Cerruti – M. España - IAA-LA2-03-04
2nd IAA Latin American Symposium on Small Satellites
11–16 Nov. 2019, Buenos Aires, Argentina
Slide 5of 55
Why do we need a satellite testbed?
Advanced GNC concepts, especially for Distributed
Space Systems
Develop autonomous control strategies (no
ground-station)
Framework design for high-fidelity hardware-in-the-loop LEO satellite simulations
I. S. Husain Cerruti – M. España - IAA-LA2-03-04
2nd IAA Latin American Symposium on Small Satellites
11–16 Nov. 2019, Buenos Aires, Argentina
Slide 6of 55
Why do we need a satellite testbed?
Advanced GNC concepts, especially for Distributed
Space Systems
Develop new hardware: GNSS receivers, on-board cameras, RF ranging system, Comms.
Develop autonomous control strategies (no
ground-station)
Framework design for high-fidelity hardware-in-the-loop LEO satellite simulations
I. S. Husain Cerruti – M. España - IAA-LA2-03-04
2nd IAA Latin American Symposium on Small Satellites
11–16 Nov. 2019, Buenos Aires, Argentina
Slide 7of 55
Why do we need a satellite testbed?
Advanced GNC concepts, especially for Distributed
Space Systems
Develop new hardware: GNSS receivers, on-board cameras, RF ranging system, Comms.
Develop autonomous control strategies (no
ground-station)
Test & develop on-board computers
Framework design for high-fidelity hardware-in-the-loop LEO satellite simulations
I. S. Husain Cerruti – M. España - IAA-LA2-03-04
2nd IAA Latin American Symposium on Small Satellites
11–16 Nov. 2019, Buenos Aires, Argentina
Slide 8of 55
Why do we need a satellite testbed?
Advanced GNC concepts, especially for Distributed
Space Systems
Develop new hardware: GNSS receivers, on-board cameras, RF ranging system, Comms.
Develop autonomous control strategies (no
ground-station)
Test & develop on-board computers
Initial technology demonstration, especially
for small satellites
Framework design for high-fidelity hardware-in-the-loop LEO satellite simulations
I. S. Husain Cerruti – M. España - IAA-LA2-03-04
2nd IAA Latin American Symposium on Small Satellites
11–16 Nov. 2019, Buenos Aires, Argentina
Slide 9of 55
Why do we need a satellite testbed?
Advanced GNC concepts, especially for Distributed
Space Systems
Develop new hardware: GNSS receivers, on-board cameras, RF ranging system, Comms.
Develop autonomous control strategies (no
ground-station)
Test & develop on-board computers
Initial technology demonstration, especially
for small satellites
Develop satellite modules in a component-based fashion
Framework design for high-fidelity hardware-in-the-loop LEO satellite simulations
I. S. Husain Cerruti – M. España - IAA-LA2-03-04
2nd IAA Latin American Symposium on Small Satellites
11–16 Nov. 2019, Buenos Aires, Argentina
Slide 10of 55
What challenges do we face?
Framework design for high-fidelity hardware-in-the-loop LEO satellite simulations
I. S. Husain Cerruti – M. España - IAA-LA2-03-04
2nd IAA Latin American Symposium on Small Satellites
11–16 Nov. 2019, Buenos Aires, Argentina
Slide 11of 55
What challenges do we face?
Initial software design:MatLab’s procedural
programming languageGood to set initial architectureFunctions calling each otherHighly coupled modulesNo clear responsibilities
Framework design for high-fidelity hardware-in-the-loop LEO satellite simulations
I. S. Husain Cerruti – M. España - IAA-LA2-03-04
2nd IAA Latin American Symposium on Small Satellites
11–16 Nov. 2019, Buenos Aires, Argentina
Slide 12of 55
What challenges do we face?
Initial software design:MatLab’s procedural
programming languageGood to set initial architectureFunctions calling each otherHighly coupled modulesNo clear responsibilities
Challenges to face: Many interacting components Diverse ways of communication Changes in HW & SW specifications Scalability
Framework design for high-fidelity hardware-in-the-loop LEO satellite simulations
I. S. Husain Cerruti – M. España - IAA-LA2-03-04
2nd IAA Latin American Symposium on Small Satellites
11–16 Nov. 2019, Buenos Aires, Argentina
Slide 13of 55
What challenges do we face?
Many layers of complexity called for a systematic approach Software Engineering Design Principles Software Engineering Tools Incremental development from simple to complex Modularity through well defined interfaces
Framework design for high-fidelity hardware-in-the-loop LEO satellite simulations
I. S. Husain Cerruti – M. España - IAA-LA2-03-04
2nd IAA Latin American Symposium on Small Satellites
11–16 Nov. 2019, Buenos Aires, Argentina
Slide 14of 55
How do we design the testbed?
Framework design for high-fidelity hardware-in-the-loop LEO satellite simulations
I. S. Husain Cerruti – M. España - IAA-LA2-03-04
2nd IAA Latin American Symposium on Small Satellites
11–16 Nov. 2019, Buenos Aires, Argentina
Slide 15of 55
How do we design the testbed? Define hardware components
Framework design for high-fidelity hardware-in-the-loop LEO satellite simulations
I. S. Husain Cerruti – M. España - IAA-LA2-03-04
2nd IAA Latin American Symposium on Small Satellites
11–16 Nov. 2019, Buenos Aires, Argentina
Slide 16of 55
How do we design the testbed? Define hardware components
Simulation Server
Trajectory Generator
Ground-truth data
Framework design for high-fidelity hardware-in-the-loop LEO satellite simulations
I. S. Husain Cerruti – M. España - IAA-LA2-03-04
2nd IAA Latin American Symposium on Small Satellites
11–16 Nov. 2019, Buenos Aires, Argentina
Slide 17of 55
How do we design the testbed? Define hardware components
Simulation Server
Trajectory Generator
GNSS RF Simulator
SPIRENT SimGen : OMG<<TCP/IP>>
True TimeTrue Satellite Position, Vel, Acc.
Output Magnitudes Generator (OMG) software component
SPIRENT GSS 8000
Framework design for high-fidelity hardware-in-the-loop LEO satellite simulations
I. S. Husain Cerruti – M. España - IAA-LA2-03-04
2nd IAA Latin American Symposium on Small Satellites
11–16 Nov. 2019, Buenos Aires, Argentina
Slide 18of 55
How do we design the testbed? Define hardware components
Simulation Server
Trajectory Generator
Spacecraft
GNSS Receiver
NMG
GNSS RF Simulator
SPIRENT SimGen : OMG<<TCP/IP>>
<<physical connection>>
True GNSS RF signalL1/L2/L5E1/E5ab
Navigation Measurements Generator (NMG) software
component
Framework design for high-fidelity hardware-in-the-loop LEO satellite simulations
I. S. Husain Cerruti – M. España - IAA-LA2-03-04
2nd IAA Latin American Symposium on Small Satellites
11–16 Nov. 2019, Buenos Aires, Argentina
Slide 19of 55
How do we design the testbed? Define hardware components
Simulation Server
Trajectory GeneratorActuator Model
Spacecraft
OBC
GNSS Receiver
NMG
GNSS RF Simulator
SPIRENT SimGen : OMG<<TCP/IP>>
<<physical connection>>
<<TCP/IP>>
Control VectorTime of Application
Navigation solution
Delta-V
Framework design for high-fidelity hardware-in-the-loop LEO satellite simulations
I. S. Husain Cerruti – M. España - IAA-LA2-03-04
2nd IAA Latin American Symposium on Small Satellites
11–16 Nov. 2019, Buenos Aires, Argentina
Slide 20of 55
How do we design the testbed? Define hardware components
Simulation Server
Trajectory GeneratorActuator Model
Accelerometer Simulator
OMG
Spacecraft
OBC
GNSS ReceiverIMU
NMG NMG
GNSS RF Simulator
SPIRENT SimGen : OMG<<TCP/IP>>
<<physical connection>>
<<TCP/IP>>
Framework design for high-fidelity hardware-in-the-loop LEO satellite simulations
I. S. Husain Cerruti – M. España - IAA-LA2-03-04
2nd IAA Latin American Symposium on Small Satellites
11–16 Nov. 2019, Buenos Aires, Argentina
Slide 21of 55
How do we design the testbed? Define hardware components
Simulation Server
Trajectory GeneratorActuator Model
Accelerometer Simulator
OMG
Gyroscope Simulator
OMG
Spacecraft
OBC
GNSS ReceiverIMU
NMG NMG
GNSS RF Simulator
SPIRENT SimGen : OMG<<TCP/IP>>
<<physical connection>>
<<TCP/IP>>
Framework design for high-fidelity hardware-in-the-loop LEO satellite simulations
I. S. Husain Cerruti – M. España - IAA-LA2-03-04
2nd IAA Latin American Symposium on Small Satellites
11–16 Nov. 2019, Buenos Aires, Argentina
Slide 22of 55
What do we solve with this design approach?
Framework design for high-fidelity hardware-in-the-loop LEO satellite simulations
I. S. Husain Cerruti – M. España - IAA-LA2-03-04
2nd IAA Latin American Symposium on Small Satellites
11–16 Nov. 2019, Buenos Aires, Argentina
Slide 23of 55
What do we solve with this design approach?
Many interacting components Modularization
Framework design for high-fidelity hardware-in-the-loop LEO satellite simulations
I. S. Husain Cerruti – M. España - IAA-LA2-03-04
2nd IAA Latin American Symposium on Small Satellites
11–16 Nov. 2019, Buenos Aires, Argentina
Slide 24of 55
What do we solve with this design approach?
Many interacting components Modularization
Diverse ways of communication Common interfaces
Framework design for high-fidelity hardware-in-the-loop LEO satellite simulations
I. S. Husain Cerruti – M. España - IAA-LA2-03-04
2nd IAA Latin American Symposium on Small Satellites
11–16 Nov. 2019, Buenos Aires, Argentina
Slide 25of 55
What do we solve with this design approach?
Many interacting components Modularization
Diverse ways of communication Common interfaces
Change in HW & SW specifications? Just adhere to the rules defined
by the interfaces
Framework design for high-fidelity hardware-in-the-loop LEO satellite simulations
I. S. Husain Cerruti – M. España - IAA-LA2-03-04
2nd IAA Latin American Symposium on Small Satellites
11–16 Nov. 2019, Buenos Aires, Argentina
Slide 26of 55
Specialist develop their own componentsPlug in - Plug outIncrease development
speed and cycles
Many interacting components Modularization
Diverse ways of communication Common interfaces
Change in HW & SW specifications? Just adhere to the rules defined
by the interfaces
What do we solve with this design approach?
Framework design for high-fidelity hardware-in-the-loop LEO satellite simulations
I. S. Husain Cerruti – M. España - IAA-LA2-03-04
2nd IAA Latin American Symposium on Small Satellites
11–16 Nov. 2019, Buenos Aires, Argentina
Slide 27of 55
How do we design the software components?
Framework design for high-fidelity hardware-in-the-loop LEO satellite simulations
I. S. Husain Cerruti – M. España - IAA-LA2-03-04
2nd IAA Latin American Symposium on Small Satellites
11–16 Nov. 2019, Buenos Aires, Argentina
Slide 28of 55
Object-oriented programming Best suited for simulation software
How do we design the software components?
Framework design for high-fidelity hardware-in-the-loop LEO satellite simulations
I. S. Husain Cerruti – M. España - IAA-LA2-03-04
2nd IAA Latin American Symposium on Small Satellites
11–16 Nov. 2019, Buenos Aires, Argentina
Slide 29of 55
Object-oriented programming Best suited for simulation software
How do we design the software components?
Framework design for high-fidelity hardware-in-the-loop LEO satellite simulations
I. S. Husain Cerruti – M. España - IAA-LA2-03-04
2nd IAA Latin American Symposium on Small Satellites
11–16 Nov. 2019, Buenos Aires, Argentina
Slide 30of 55
Object-oriented programming Best suited for simulation software
Use Unified Modeling Language (UML) Convey concepts rapidly using diagrams
How do we design the software components?
Framework design for high-fidelity hardware-in-the-loop LEO satellite simulations
I. S. Husain Cerruti – M. España - IAA-LA2-03-04
2nd IAA Latin American Symposium on Small Satellites
11–16 Nov. 2019, Buenos Aires, Argentina
Slide 31of 55
How do we design the software components?
Model the high-fidelity trajectory generator
Framework design for high-fidelity hardware-in-the-loop LEO satellite simulations
I. S. Husain Cerruti – M. España - IAA-LA2-03-04
2nd IAA Latin American Symposium on Small Satellites
11–16 Nov. 2019, Buenos Aires, Argentina
Slide 32of 55
How do we design the software components?
+ updateState()
+ getVelAndAccAt()
Spacecraft
Model the high-fidelity trajectory generator
Framework design for high-fidelity hardware-in-the-loop LEO satellite simulations
I. S. Husain Cerruti – M. España - IAA-LA2-03-04
2nd IAA Latin American Symposium on Small Satellites
11–16 Nov. 2019, Buenos Aires, Argentina
Slide 33of 55
How do we design the software components?
+ updateState()
+ getVelAndAccAt()
Spacecraft
+ updateState()
Integrator
+ sampleAttachedObjectAt(s : State)
Perturbation
+ getCurrentMass()
+ getAcceleration()
+ getAccumulatedDeltaV()
Actuator
*
*
A Spacecraft is affected by
Framework design for high-fidelity hardware-in-the-loop LEO satellite simulations
I. S. Husain Cerruti – M. España - IAA-LA2-03-04
2nd IAA Latin American Symposium on Small Satellites
11–16 Nov. 2019, Buenos Aires, Argentina
Slide 34of 55
How do we design the software components?
+ updateState()
+ getVelAndAccAt()
Spacecraft
+ updateState()
Integrator
+ sampleAttachedObjectAt(s : State)
Perturbation
+ getCurrentMass()
+ getAcceleration()
+ getAccumulatedDeltaV()
Actuator
*
*
A Spacecraft has
Framework design for high-fidelity hardware-in-the-loop LEO satellite simulations
I. S. Husain Cerruti – M. España - IAA-LA2-03-04
2nd IAA Latin American Symposium on Small Satellites
11–16 Nov. 2019, Buenos Aires, Argentina
Slide 35of 55
How do we design the software components?
+ updateState()
+ getVelAndAccAt()
Spacecraft
+ updateState()
Integrator
+ sampleAttachedObjectAt(s : State)
Perturbation
+ getCurrentMass()
+ getAcceleration()
+ getAccumulatedDeltaV()
Actuator
*
*
A Spacecraft needs
Framework design for high-fidelity hardware-in-the-loop LEO satellite simulations
I. S. Husain Cerruti – M. España - IAA-LA2-03-04
2nd IAA Latin American Symposium on Small Satellites
11–16 Nov. 2019, Buenos Aires, Argentina
Slide 36of 55
How do we design the software components?
+ updateState()
+ getVelAndAccAt()
Spacecraft
+ updateState()
Integrator
+ sampleAttachedObjectAt(s : State)
Perturbation
+ getCurrentMass()
+ getAcceleration()
+ getAccumulatedDeltaV()
Actuator
*
*
Framework design for high-fidelity hardware-in-the-loop LEO satellite simulations
I. S. Husain Cerruti – M. España - IAA-LA2-03-04
2nd IAA Latin American Symposium on Small Satellites
11–16 Nov. 2019, Buenos Aires, Argentina
Slide 37of 55
How do we design the software components?
+ updateState()
+ getVelAndAccAt()
Spacecraft
+ currentState()
+ setInitialState()
+ updateState()
Component
+ updateState()
Integrator
+ sampleAttachedObjectAt(s : State)
Perturbation
+ getCurrentMass()
+ getAcceleration()
+ getAccumulatedDeltaV()
Actuator
+ time()
+ acceleration()
+ velocity()
+ position()
State
*
*
*
Extract common interface
Framework design for high-fidelity hardware-in-the-loop LEO satellite simulations
I. S. Husain Cerruti – M. España - IAA-LA2-03-04
2nd IAA Latin American Symposium on Small Satellites
11–16 Nov. 2019, Buenos Aires, Argentina
Slide 38of 55
How do we design the software components?
+ updateState()
+ getVelAndAccAt()
Spacecraft
+ currentState()
+ setInitialState()
+ updateState()
Component
+ updateState()
Integrator
+ sampleAttachedObjectAt(s : State)
Perturbation
+ getCurrentMass()
+ getAcceleration()
+ getAccumulatedDeltaV()
Actuator
+ time()
+ acceleration()
+ velocity()
+ position()
State
*
*
*
Framework design for high-fidelity hardware-in-the-loop LEO satellite simulations
I. S. Husain Cerruti – M. España - IAA-LA2-03-04
2nd IAA Latin American Symposium on Small Satellites
11–16 Nov. 2019, Buenos Aires, Argentina
Slide 39of 55
How do we design the software components?
+ updateState()
+ getVelAndAccAt()
Spacecraft
+ currentState()
+ setInitialState()
+ updateState()
Component
+ updateState()
Integrator
+ sampleAttachedObjectAt(s : State)
Perturbation
+ getCurrentMass()
+ getAcceleration()
+ getAccumulatedDeltaV()
Actuator
+ time()
+ acceleration()
+ velocity()
+ position()
State
ReferenceSystem
*
*
*
Framework design for high-fidelity hardware-in-the-loop LEO satellite simulations
I. S. Husain Cerruti – M. España - IAA-LA2-03-04
2nd IAA Latin American Symposium on Small Satellites
11–16 Nov. 2019, Buenos Aires, Argentina
Slide 40of 55
How do we design the software components?
+ trigger()
+ run()
Controller
+ update() : void
Scenario
+ updateState()
+ getVelAndAccAt()
Spacecraft
+ currentState()
+ setInitialState()
+ updateState()
Component
+ updateState()
Integrator
+ sampleAttachedObjectAt(s : State)
Perturbation
+ getCurrentMass()
+ getAcceleration()
+ getAccumulatedDeltaV()
Actuator
+ time()
+ acceleration()
+ velocity()
+ position()
State
ReferenceSystem
*
*
*
1*
Extract common interface
Framework design for high-fidelity hardware-in-the-loop LEO satellite simulations
I. S. Husain Cerruti – M. España - IAA-LA2-03-04
2nd IAA Latin American Symposium on Small Satellites
11–16 Nov. 2019, Buenos Aires, Argentina
Slide 41of 55
How do we design the software components?
+ trigger()
+ run()
Controller
+ update() : void
Scenario
+ updateState()
+ getVelAndAccAt()
Spacecraft
+ currentState()
+ setInitialState()
+ updateState()
Component
+ updateState()
Integrator
+ sampleAttachedObjectAt(s : State)
Perturbation
+ getCurrentMass()
+ getAcceleration()
+ getAccumulatedDeltaV()
Actuator
+ time()
+ acceleration()
+ velocity()
+ position()
State
ReferenceSystem
*
*
*
1*
Framework design for high-fidelity hardware-in-the-loop LEO satellite simulations
I. S. Husain Cerruti – M. España - IAA-LA2-03-04
2nd IAA Latin American Symposium on Small Satellites
11–16 Nov. 2019, Buenos Aires, Argentina
Slide 42of 55
How do we design the software components?
+ trigger()
+ run()
Controller
+ update() : void
Scenario
+ updateState()
+ getVelAndAccAt()
Spacecraft
+ currentState()
+ setInitialState()
+ updateState()
Component
+ updateState()
Integrator
+ sampleAttachedObjectAt(s : State)
Perturbation
+ getCurrentMass()
+ getAcceleration()
+ getAccumulatedDeltaV()
Actuator
+ time()
+ acceleration()
+ velocity()
+ position()
State
ReferenceSystem
*
*
*
High-Fidelity
Trajectory Generator
1*
Independent components
Framework design for high-fidelity hardware-in-the-loop LEO satellite simulations
I. S. Husain Cerruti – M. España - IAA-LA2-03-04
2nd IAA Latin American Symposium on Small Satellites
11–16 Nov. 2019, Buenos Aires, Argentina
Slide 43of 55
How do we design the software components?
RungeKutta
BullirshStoer
AdaptiveStep
AtmosphericDrag
SRP
ContinuousThruster
PulsedThruster
IAU76/FK5ITRFHill UTCGPS Time
Perturbation
Albedo
Integrator
Actuator
ReferenceSystem
Earth Gravity
Third-body gravity
Framework design for high-fidelity hardware-in-the-loop LEO satellite simulations
I. S. Husain Cerruti – M. España - IAA-LA2-03-04
2nd IAA Latin American Symposium on Small Satellites
11–16 Nov. 2019, Buenos Aires, Argentina
Slide 44of 55
Modules communication
Framework design for high-fidelity hardware-in-the-loop LEO satellite simulations
I. S. Husain Cerruti – M. España - IAA-LA2-03-04
2nd IAA Latin American Symposium on Small Satellites
11–16 Nov. 2019, Buenos Aires, Argentina
Slide 45of 55
Modules communication
Component-based design conceptClasses must minimize coupling
Interfaces
General communication mechanisms
Solved through Observer design pattern (DP)
DP: solution to a common recurring problem
Framework design for high-fidelity hardware-in-the-loop LEO satellite simulations
I. S. Husain Cerruti – M. España - IAA-LA2-03-04
2nd IAA Latin American Symposium on Small Satellites
11–16 Nov. 2019, Buenos Aires, Argentina
Slide 46of 55
Modules communication
+ update()
<<interface>>
Observer
+ sendMeasurement()
+ generateMeasurement()
+ storeDataPacket()
<<interface>>
OutputMeasurementGenerator
+ sendUDPDatagram()
SimGenSocket
+ generateUDPDatagram()
SPIRENT_GNSS_Simulator
Framework design for high-fidelity hardware-in-the-loop LEO satellite simulations
I. S. Husain Cerruti – M. España - IAA-LA2-03-04
2nd IAA Latin American Symposium on Small Satellites
11–16 Nov. 2019, Buenos Aires, Argentina
Slide 47of 55
Modules communication
+ notifyObservers()
+ subscribeObserver()
<<interface>>
ObservedSubject
+ update()
<<interface>>
Observer
+ sendMeasurement()
+ generateMeasurement()
+ storeDataPacket()
<<interface>>
OutputMeasurementGenerator
*
+ sendUDPDatagram()
SimGenSocket
+ generateUDPDatagram()
SPIRENT_GNSS_Simulator
*
Integrator
Framework design for high-fidelity hardware-in-the-loop LEO satellite simulations
I. S. Husain Cerruti – M. España - IAA-LA2-03-04
2nd IAA Latin American Symposium on Small Satellites
11–16 Nov. 2019, Buenos Aires, Argentina
Slide 48of 55
Preliminary validationsLEO at 700km, i=98°, circular orbit
1 orbital period simulation.
JGM-3 70x70
RK-4 100 ms step
IAU76/FK5 - J2000 ECI reference frame
Developed a MatLab interface to control STK and automate tests.P-V-A differences and absolute values with
respect to STK/HPOP0,4 mm position difference
0,6 um/s velocity difference
0,4 nm/s^2 acceleration difference
Framework design for high-fidelity hardware-in-the-loop LEO satellite simulations
I. S. Husain Cerruti – M. España - IAA-LA2-03-04
2nd IAA Latin American Symposium on Small Satellites
11–16 Nov. 2019, Buenos Aires, Argentina
Slide 49of 55
Technologies used
C++ 17
Eigen Linear Algebra Library
C++ Boost Libraries
YAML
Standards of Fundamental Astronomy Library - SOFA
Automate simulations through any scripting language
Framework design for high-fidelity hardware-in-the-loop LEO satellite simulations
I. S. Husain Cerruti – M. España - IAA-LA2-03-04
2nd IAA Latin American Symposium on Small Satellites
11–16 Nov. 2019, Buenos Aires, Argentina
Slide 50of 55
Conclusions and way forwardDeveloped a framework to implement a high-fidelity spacecraft testbed with
real-time and hardware-in-the-loop capabilities
Framework design for high-fidelity hardware-in-the-loop LEO satellite simulations
I. S. Husain Cerruti – M. España - IAA-LA2-03-04
2nd IAA Latin American Symposium on Small Satellites
11–16 Nov. 2019, Buenos Aires, Argentina
Slide 51of 55
Conclusions and way forwardDeveloped a framework to implement a high-fidelity spacecraft testbed with
real-time and hardware-in-the-loop capabilities
Developed modules can be used in other projects.
Framework design for high-fidelity hardware-in-the-loop LEO satellite simulations
I. S. Husain Cerruti – M. España - IAA-LA2-03-04
2nd IAA Latin American Symposium on Small Satellites
11–16 Nov. 2019, Buenos Aires, Argentina
Slide 52of 55
Conclusions and way forwardDeveloped a framework to implement a high-fidelity spacecraft testbed with
real-time and hardware-in-the-loop capabilities
Developed modules can be used in other projects.
Test autonomous GNC algorithms developed by different specialists.
Framework design for high-fidelity hardware-in-the-loop LEO satellite simulations
I. S. Husain Cerruti – M. España - IAA-LA2-03-04
2nd IAA Latin American Symposium on Small Satellites
11–16 Nov. 2019, Buenos Aires, Argentina
Slide 53of 55
Conclusions and way forwardDeveloped a framework to implement a high-fidelity spacecraft testbed with
real-time and hardware-in-the-loop capabilities
Developed modules can be used in other projects.
Test autonomous GNC algorithms developed by different specialists.
Allows real-time and multi-CPU simulations.
Framework design for high-fidelity hardware-in-the-loop LEO satellite simulations
I. S. Husain Cerruti – M. España - IAA-LA2-03-04
2nd IAA Latin American Symposium on Small Satellites
11–16 Nov. 2019, Buenos Aires, Argentina
Slide 54of 55
Conclusions and way forwardDeveloped a framework to implement a high-fidelity spacecraft testbed with
real-time and hardware-in-the-loop capabilities
Developed modules can be used in other projects.
Test autonomous GNC algorithms developed by different specialists.
Allows real-time and multi-CPU simulations.
Framework not only applied to LEO satellite simulations, it’s flexible and generally applicable to any space vehicle simulation: Simulate satellite injectors
Servicing non-cooperative satellite simulation
Simulate distributed satellite platforms
Framework design for high-fidelity hardware-in-the-loop LEO satellite simulations
I. S. Husain Cerruti – M. España - IAA-LA2-03-04
2nd IAA Latin American Symposium on Small Satellites
11–16 Nov. 2019, Buenos Aires, Argentina
Slide 55of 55
Questions?
Framework design for high-fidelity hardware-in-the-loop LEO satellite simulations
I. S. Husain Cerruti – M. España - IAA-LA2-03-04
2nd IAA Latin American Symposium on Small Satellites
11–16 Nov. 2019, Buenos Aires, Argentina
Slide 56of 55
References1. J. Relloso - A. Laudari - J. Lavirgen - M. España, Hardware in the Loop Test Bed for Distributed Satellite
Platform Navigation and Orbit Control, 2nd IAA Latin American Symposium on Small Satellites, IAA-LA2-03-03, Buenos Aires, Argentina (2019)
2. R. C. Martin, Agile software development: principles, patterns, and practices, Pearson Education, Inc. (2003)3. I. S. Husain - M. España, Generation of GNSS Observables for LEO Satellites Using High-Fidelity Models, 1st
IAA Latin American Symposium on Small Satellites, IAA-LA-14-04, Buenos Aires, Argentina (2017)4. M. Page-Jones, Fundamentals of Object-Oriented Design in UML, Addison-Wesley (2000)5. B. Meyer, Object-Oriented Software Construction, 2nd edn., Prentice Hall (1997)6. E. Gamma, et al., Design Patterns: elements of reusable object-oriented software, Addison-Wesley
professional computing series (1994)7. S. D’Amico, Autonomous Formation Flying in Low Earth Orbit, Technische Universiteit Delft (2010)8. S. D’Amico, et al., GPS-Based Real-Time Navigation for the PRISMA Formation Flying Mission, NAVITEC’2006,
11-13 December 2006, Noordwijk (2006)
Framework design for high-fidelity hardware-in-the-loop LEO satellite simulations
I. S. Husain Cerruti – M. España - IAA-LA2-03-04
2nd IAA Latin American Symposium on Small Satellites
11–16 Nov. 2019, Buenos Aires, Argentina
Slide 57of 55
Authors contact information
Ignacio Santiago Husain Cerruti EE Student at the School of Engineering of the University of Buenos Aires
Martín EspañaSenior researcher at CONAE
+54 11 4331 0074
Framework design for high-fidelity hardware-in-the-loop LEO satellite simulations
I. S. Husain Cerruti – M. España - IAA-LA2-03-04
2nd IAA Latin American Symposium on Small Satellites
11–16 Nov. 2019, Buenos Aires, Argentina
Slide 58of 55
Back-up slides
Framework design for high-fidelity hardware-in-the-loop LEO satellite simulations
I. S. Husain Cerruti – M. España - IAA-LA2-03-04
2nd IAA Latin American Symposium on Small Satellites
11–16 Nov. 2019, Buenos Aires, Argentina
Slide 59of 55
Simulation Server
Trajectory GeneratorActuator Model
Accelerometer Simulator
OMG
Sky Imaging Simulator
OMG
Gyroscope Simulator
OMG
Spacecraft
OBC
Star TrackerGNSS Receiver IMU
NMGNMG NMG
GNSS RF Simulator
SPIRENT SimGen : OMG<<TCP/IP>>
<<physical connection>>
<<TCP/IP>>
Framework design for high-fidelity hardware-in-the-loop LEO satellite simulations
I. S. Husain Cerruti – M. España - IAA-LA2-03-04
2nd IAA Latin American Symposium on Small Satellites
11–16 Nov. 2019, Buenos Aires, Argentina
Slide 60of 55
+ trigger()
+ run()
Controller
+ update() : void
Scenario
+ updateState()
+ getVelAndAccAt()
Spacecraft + currentState()
+ setInitialState()
+ updateState()
Component
+ updateState()
Integrator
+ sampleAttachedObjectAt(s : State)
Perturbation
+ getCurrentMass()
+ getAcceleration()
+ getAccumulatedDeltaV()
Actuator
+ time()
+ acceleration()
+ velocity()
+ position()
State ReferenceSystem
*
*
*
High-Fidelity
Model
May be triggered
by PPS signal
coming from
SPIRENT GNSS
signal simulator.
1*
Framework design for high-fidelity hardware-in-the-loop LEO satellite simulations
I. S. Husain Cerruti – M. España - IAA-LA2-03-04
2nd IAA Latin American Symposium on Small Satellites
11–16 Nov. 2019, Buenos Aires, Argentina
Slide 61of 55
RungeKutta
BullirshStoer
AdaptiveStep
AtmosphericDrag
SRP
ContinuousThruster
PulsedThruster
IAU76/FK5ITRFHill UTCGPS Time
Perturbation
Albedo
Integrator
Actuator
ReferenceSystem
Earth Gravity
Third-body gravity
Framework design for high-fidelity hardware-in-the-loop LEO satellite simulations
I. S. Husain Cerruti – M. España - IAA-LA2-03-04
2nd IAA Latin American Symposium on Small Satellites
11–16 Nov. 2019, Buenos Aires, Argentina
Slide 62of 55
Synchronization of the testbed?
Framework design for high-fidelity hardware-in-the-loop LEO satellite simulations
I. S. Husain Cerruti – M. España - IAA-LA2-03-04
2nd IAA Latin American Symposium on Small Satellites
11–16 Nov. 2019, Buenos Aires, Argentina
Slide 63of 55
Synchronization of the testbed?
× Initial design in MatLab was not adequate× Depended on a particular calling sequence of functions× The integrator was in charge of doing it
× No loose-coupling and mixed responsibilities
Framework design for high-fidelity hardware-in-the-loop LEO satellite simulations
I. S. Husain Cerruti – M. España - IAA-LA2-03-04
2nd IAA Latin American Symposium on Small Satellites
11–16 Nov. 2019, Buenos Aires, Argentina
Slide 64of 55
Synchronization of the testbed?
Controller class
× Initial design in MatLab was not adequate× Depended on a particular calling sequence of functions× The integrator was in charge of doing it
× No loose-coupling and mixed responsibilities
Framework design for high-fidelity hardware-in-the-loop LEO satellite simulations
I. S. Husain Cerruti – M. España - IAA-LA2-03-04
2nd IAA Latin American Symposium on Small Satellites
11–16 Nov. 2019, Buenos Aires, Argentina
Slide 65of 55
Simulation Server
Trajectory GeneratorActuator Model
Accelerometer Simulator
OMG
Sky Imaging Simulator
OMG
Gyroscope Simulator
OMG
Spacecraft
OBC
Star TrackerGNSS ReceiverIMU
NMGNMG NMG
GNSS RF Simulator
SPIRENT SimGen : OMG<<TCP/IP>>
<<physical connection>>
<<TCP/IP>>
How do we synchronize the testbed?
Precise Pulse-per-second (PPS) signal
Framework design for high-fidelity hardware-in-the-loop LEO satellite simulations
I. S. Husain Cerruti – M. España - IAA-LA2-03-04
2nd IAA Latin American Symposium on Small Satellites
11–16 Nov. 2019, Buenos Aires, Argentina
Slide 66of 55
+ trigger()
+ run()
Controller
+ update() : void
Scenario
+ updateState()
+ getVelAndAccAt()
Spacecraft
+ currentState()
+ setInitialState()
+ updateState()
Component
+ updateState()
Integrator
+ sampleAttachedObjectAt(s : State)
Perturbation
+ getCurrentMass()
+ getAcceleration()
+ getAccumulatedDeltaV()
Actuator
+ time()
+ acceleration()
+ velocity()
+ position()
State
ReferenceSystem
*
*
*
High-Fidelity
Trajectory Generator
May be
triggered by
PPS signal
coming from
SPIRENT
GNSS signal
simulator.
1*
How do we synchronize the testbed?
Synchronization
Framework design for high-fidelity hardware-in-the-loop LEO satellite simulations
I. S. Husain Cerruti – M. España - IAA-LA2-03-04
2nd IAA Latin American Symposium on Small Satellites
11–16 Nov. 2019, Buenos Aires, Argentina
Slide 67of 55
Modules communicationComponent-based design conceptClasses must minimize coupling
Interfaces
General communication mechanisms
Solved through Observer design pattern (DP)
DP: solution to a common recurring problem
Component
+ notifyObservers()
+ subscribeObserver()
<<interface>>
ObservedSubject
+ update()
<<interface>>
Observer
*
AnotherComponent
Framework design for high-fidelity hardware-in-the-loop LEO satellite simulations
I. S. Husain Cerruti – M. España - IAA-LA2-03-04
2nd IAA Latin American Symposium on Small Satellites
11–16 Nov. 2019, Buenos Aires, Argentina
Slide 68of 55
Modules communication
+ notifyObservers()
+ subscribeObserver()
<<interface>>
ObservedSubject
+ update()
<<interface>>
Observer
+ sendMeasurement()
+ generateMeasurement()
+ storeDataPacket()
<<interface>>
OutputMeasurementGenerator
*
GNSSreceiver
<<interface>>
NavigationMeasurementGenerator
+ sendUDPDatagram()
SimGenSocket
+ generateUDPDatagram()
SPIRENT_GNSS_Simulator
*
Integrator
Real Spacecraft
Framework design for high-fidelity hardware-in-the-loop LEO satellite simulations
I. S. Husain Cerruti – M. España - IAA-LA2-03-04
2nd IAA Latin American Symposium on Small Satellites
11–16 Nov. 2019, Buenos Aires, Argentina
Slide 69of 55
Modules communication
+ notifyObservers()
+ subscribeObserver()
<<interface>>
ObservedSubject
+ update()
<<interface>>
Observer
+ sendMeasurement()
+ generateMeasurement()
+ storeDataPacket()
<<interface>>
OutputMeasurementGenerator
*
AutonomousFormationControl
OnBoardComputer
GNSSreceiver
<<interface>>
NavigationMeasurementGenerator
+ sendUDPDatagram()
SimGenSocket
+ generateUDPDatagram()
SPIRENT_GNSS_Simulator
*
Integrator
Real Spacecraft
Produces maneuvers commands based on the nominal orbit calculated
by the OBC.
Framework design for high-fidelity hardware-in-the-loop LEO satellite simulations
I. S. Husain Cerruti – M. España - IAA-LA2-03-04
2nd IAA Latin American Symposium on Small Satellites
11–16 Nov. 2019, Buenos Aires, Argentina
Slide 70of 55
Modules communication
+ notifyObservers()
+ subscribeObserver()
<<interface>>
ObservedSubject
+ update()
<<interface>>
Observer
+ sendMeasurement()
+ generateMeasurement()
+ storeDataPacket()
<<interface>>
OutputMeasurementGenerator
*
Thruster
AutonomousFormationControl
OnBoardComputer
GNSSreceiver
<<interface>>
NavigationMeasurementGenerator
+ sendUDPDatagram()
SimGenSocket
+ generateUDPDatagram()
SPIRENT_GNSS_Simulator
*
Integrator
Real Spacecraft
Framework design for high-fidelity hardware-in-the-loop LEO satellite simulations
I. S. Husain Cerruti – M. España - IAA-LA2-03-04
2nd IAA Latin American Symposium on Small Satellites
11–16 Nov. 2019, Buenos Aires, Argentina
Slide 71of 55
Component
+ notifyObservers()
+ subscribeObserver()
<<interface>>
ObservedSubject
+ update()
<<interface>>
Observer
+ sampleMeasurement()
+ generateMeasurement()
+ storeDataPacket()
<<interface>>
OutputMeasurementGenerator
+ logCurrentState()
<<interface>>
DataLogger
*
AccelerometerSimulator
StarTrackerSimulator
GyroscopeSimulator
Thruster
AutonomousFormationControl
OnBoardComputer
GNSSreceiver
IMU
OnBoardCamera
Produces
maneuvers
commands based
on the nominal
orbit calculated by
the OBC.
High-fidelity Model
+ sampleMeasurement()
<<interface>>
NavigationMeasurementGenerator
+ sendUDPDatagram()
SimGenSocket
+ storeDataOnUMTFile()
+ generateUDPDatagram()
SPIRENT_GNSS_SimulatorWhen SimGen receives
the UDP datagram, it
steers the GNSS signal
simulator physically
connected to the GNSS
Rx.
OMGs have a software reference
only for simulated NMGs. If the
IMU, GNSS Rx, etc... are real HW,
then this relationship doesn't exist
because there shouldn't be software
communication between them.
Framework design for high-fidelity hardware-in-the-loop LEO satellite simulations
I. S. Husain Cerruti – M. España - IAA-LA2-03-04
2nd IAA Latin American Symposium on Small Satellites
11–16 Nov. 2019, Buenos Aires, Argentina
Slide 72of 55
: Integrator : SPIRENT_GNSS_Simulator
1: updateState()
: Spacecraft
1.1: getVelAndAccAt()
calculatedState
1.2: notifyObservers()
1.2.1: update()
1.2.1.1: currentState()
currentState 1.2.1.2: generateUDPDatagram()
1.2.1.4: storeDataPacket()
: SimGenSocket
1.2.1.3: sendUDPDatagram()
The high-fidelity spacecraft
state is used by SimGen to
steer the GNSS RF signal
simulator.
After this call completes, the
GNSS Rx may acquire the
GNSS observable.
Framework design for high-fidelity hardware-in-the-loop LEO satellite simulations
I. S. Husain Cerruti – M. España - IAA-LA2-03-04
2nd IAA Latin American Symposium on Small Satellites
11–16 Nov. 2019, Buenos Aires, Argentina
Slide 73of 55
Use Precise Orbit Ephemeris (POE) of GRACE-A from NASA repository POE’s have mm and um/s average position and velocity errors, respectively Selected epoch: 8th july 2005 -> no solar storms, no maneuvers Used 30x30 EGM2008, spherical SC, Jacchia ‘71, SRP, albedo, 3rd body gravity Sun-Moon Runge-Kutta-Fehlberg 7/8 integration method Use POE’s as initial conditions
STK/HPOP vs true orbits validation
Framework design for high-fidelity hardware-in-the-loop LEO satellite simulations
I. S. Husain Cerruti – M. España - IAA-LA2-03-04
2nd IAA Latin American Symposium on Small Satellites
11–16 Nov. 2019, Buenos Aires, Argentina
Slide 74of 55
XYZ pos & vel errors:
In 90 minutes: 20m & 0.03m/s
In 24 hours: 200m & 0.3m/s
Causes: poor spacecraft model & lack of precise knowledge of environmental parameters in that epoch
Framework design for high-fidelity hardware-in-the-loop LEO satellite simulations
I. S. Husain Cerruti – M. España - IAA-LA2-03-04
2nd IAA Latin American Symposium on Small Satellites
11–16 Nov. 2019, Buenos Aires, Argentina
Slide 75of 55
Generation of GNSS observables & validation
Use TG ephemeris and load them into SimGen
Configure SimGen to use ideal GPS Rx (no clock errors)
Load GPS constellation using RINEX file with broadcasted ephemeris (NASA) at propagation epoch
Re-initialize periodically the TG using GRACE-A POE’s to limit synthetic ephemeris errors:
Framework design for high-fidelity hardware-in-the-loop LEO satellite simulations
I. S. Husain Cerruti – M. España - IAA-LA2-03-04
2nd IAA Latin American Symposium on Small Satellites
11–16 Nov. 2019, Buenos Aires, Argentina
Slide 76of 55
GNSS validation
Compare generated L1 pseudo-ranges with real ones recorded on board GRACE-A. Results for GPS SVN = 1.
First 90 minutes: 10m errors compatible with standard PR errors
Found 12 hs periodic pattern (GPS orb. period) and 200m error after 24 hrs. -> real and synthetic constellation misalignment