Overview
Multiple drone models to demonstrate various capabilities of fmdtools.
Models
drone_mdl_static.py: Base drone model file with very simple static behaviors
drone_mdl_dynamic.py: Extended drone model with dynamic behavior
drone_mdl_hierarchical.py: Extended drone model with component architectures
drone_mdl_rural.py: Extended drone model flying in a rural environment
drone_mdl_urban.py: Extended drone model flying in an urban environment
Scripts and tests:
test_multirotor.py: Tests various drone behaviors
Notebooks
The multirotor example model has several models of drones modeled at differing levels of detail which are then used in the following example notebooks;
fmdtools Paper Demonstration is helpful for understanding how a model can be matured as more details are added, covering:
The
graph
module.Basic simulation of dynamic and static models using methods in
propagate
and usage of classSampleApproach
for fault samplingAnalysis using Basic analysis/results processing capabilities
The Urban Drone Model is helpful for understanding how to set up gridworlds using
Coords
and an Environment class. Urban Drone Demo demonstrates how this gridworld can be used in simulation.Multirotor Optimization shows how the design, operations, and contingency management of a system can be co-optimized with the
ProblemArchitecture
class.The support files include various implementations of the drone model.
drone_mdl_static.py is the baseline model of the drone for static modeling that is used in the other models.
drone_mdl_dynamic.py expands on the static model to allow for dynamic simulation. It generates behavior-over-time graphs and dynamic/phase-based FMEAs.
drone_mdl_hierarchical.py is used to compare system architectures. First by seeing how faults effect the behaviors in each architecture, then by seing how it affects the overall system resilience.
drone_mdl_opt.py is a modified version of the hierarchical done that encompasses autonomous path planning, rotors, electrical system, and control of the drone. It is parameterized with the following parameters: The rotor and battery architecture can be changed, the flight height can be changed to support different heights, which in turn changes the drone’s flight plan, and there is now a ManageHealth function which reconfigures the flight depending on detected faults.
References
Hulse, D., Walsh, H., Dong, A., Hoyle, C., Tumer, I., Kulkarni, C., & Goebel, K. (2021). fmdtools: A fault propagation toolkit for resilience assessment in early design. International Journal of Prognostics and Health Management, 12(3). https://doi.org/10.36001/ijphm.2021.v12i3.2954
Hulse, D., Biswas, A., Hoyle, C., Tumer, I. Y., Kulkarni, C., & Goebel, K. (2021). Exploring architectures for integrated resilience optimization. Journal of Aerospace Information Systems, 18(10), 665-678. https://doi.org/10.2514/1.I010942
Hulse, D, Zhang, H, & Hoyle, C. “Understanding Resilience Optimization Architectures With an Optimization Problem Repository.” Proceedings of the ASME 2021 International Design Engineering Technical Conferences and Computers and Information in Engineering Conference. Volume 3A: 47th Design Automation Conference (DAC). Virtual, Online. August 17–19, 2021. V03AT03A039. ASME. https://doi.org/10.1115/DETC2021-70985