The Brazilian National Institute for Space Research (INPE) selected Julia to perform the following tasks:
-
Build a simulator to verify mission operational concepts
-
Create multidisciplinary design optimization (MDO) tools to identify optimal solutions for a given space mission
-
Perform general computations to design the attitude and orbit control subsystem (AOCS)
Why did they choose Julia?
According to INPE Space Systems Engineer Dr. Ronan Arraes Jardim Chagas, the team selected Julia because:
-
Julia looks like an interpreted language, which makes the transition from Matlab easier
-
Julia performs like a compiled language
-
Julia can be easily embedded into C/C++ software
-
Julia runs on Linux, macOS and Windows
INPE Amazonia-1 Satellite
Dr. Ronan Arraes Jardim Chagas explains:
Performance is especially important for our use case. The evolutionary algorithms used to search the design space for optimal solutions have to evaluate the objective functions many times. If the algorithm is slow, then the optimization process can be prohibitive for the time-span of a concurrent study.
Julia has the best of both worlds. When we are prototyping, we can rapidly create simple simulations or algorithms to perform general tests, taking advantage of the ease usually available in interpreted languages. After this phase, when algorithms are then used in simulators or multidisciplinary design optimization (MDO) tools, we can tune Julia code to have very high performance by making minor modifications. Without Julia, we would have to complete translate the algorithm into a compiled language such as C or Fortran.
I have been a supporter of Julia since v0.2, dating back to 2013. The language always permitted me to code algorithms related to satellite simulations in a very elegant, simple, and understandable way. A compilation of all algorithms developed since 2013 was recently published in the package called SatelliteToolbox.jl. In my opinion, besides all the superb features available in Julia, what kept me using was the community, which is very active and friendly.
As a result, we were able to build in a very short time a mission concept satellite simulator for the Space Mission Integrated Design Center (CPRIME), which is continuously used in the studies performed there.
Looking ahead, the team is focused on integrating the developed algorithms to create a full-featured mission planner that will be used for planning future space missions.