Conclusion¶

In this tutorial, we’ve explored the capabilities of Archimedes through the lens of multirotor flight vehicle modeling. We’ve demonstrated how Archimedes can handle complex computational graphs efficiently, provided a proof-of-concept implementation for multirotor dynamics, and laid the groundwork for more advanced modeling and analysis techniques.

We covered the basics of multirotor flight vehicle modeling, including 6-dof rigid body dynamics and blade-element momentum theory for rotor aerodynamics. While the details of this model are fairly specific to this kind of flight vehicle, it represents a moderately complex physics model common in aerospace engineering applications.

Key points from this tutorial include:

  • A straightforward implementation of the model equations in NumPy easily ran with Archimedes, yielding a ~5x speedup in simulation.

  • Archimedes also enabled automatic differentiation for trim point identification and linear stability analysis, again with the same NumPy code

  • We saw the power and simplicity of the implicit function abstraction in Archimedes when implementing the momentum theory inflow model.

Beyond illustrating multirotor flight vehicle modeling, this code (or a similar framework) can be the starting point for more advanced analysis and applications, such as:

  • Trajectory optimization to design optimal flight paths and control sequences

  • Parameter estimation for calibrating model parameters against test data

  • Advanced aerodynamics modeling like dynamic inflow or vortex particle methods

  • Design optimization with an XFOIL-type panel code to solve sectional aerodynamics for variable airfoil profiles

  • State estimation (IMU) algorithms and discrete control system design with automatic C code generation for hardware deployment

We also discussed the design of a modular and extensible modeling framework, combining a hierarchy of classes (inheritance) with nested callable classes that implement well-defined abstract interfaces (composition). By thoughtfully structuring the framework, we were able to add a significantly more complex component model (the blade-element model) while fully reusing our existing code. Similar principles can be applied to a wide range of physics models.

With careful development and application of these modeling principles, Archimedes provides a powerful tool for aerospace engineering and beyond. We encourage you to explore Archimedes further:

  1. Visit our GitHub repository to access the full codebase

  2. Visit the website site for tutorials and in-depth documentation

  3. Join our community forum to discuss your projects and get help from other users

  4. Stay tuned for upcoming tutorials on trajectory optimization, parameter estimation, and more