Differential Algebra software library with automatic code generation for space embedded applications

Differential Algebra (DA) techniques have become increasingly popular in various aerospace engineering applications over the past 5-10 years. They allow computing polynomial expansions of functions representing a dynamical system in terms of initial conditions or parameters. The calculation of these polynomials is computationally expensive, but can often replace many iterations of a pointwise computation or provide valuable higher order information otherwise not readily available. DA will allow reducing the computational burden associated to onboard implementation of such high order Kalman filters which are needed to increase the level of autonomy in active debris removal (ADR) missions. In this paper we describe the implementation of the DA Core Engine 2.0 (DACE 2.0) which is entirely developed in C11 with a powerful modern C++ interface. Current space processors developed in Europe (LEON-3, LEON-4) run at speeds of hundreds of MHz, providing limited computational power on board of current and near-future spacecraft. Any developed software which target embedded hardware onboard spacecraft is subject to some strong limitation in both coding and resource utilization, mainly the need of using C only. In order to partly maintain the advantages given by operator overloading and object oriented programming for writing mathematical expression, an automatic translation of the DACE 2.0 C++ code into pure C11 code have been implemented. The resulting implementation is tested in a processor in the loop (PIL) test-bench using simple problems which are representative of the computational resources needed by an high order filter.