Urban Drone Demo
Copyright © 2024, United States Government, as represented by the Administrator of the National Aeronautics and Space Administration. All rights reserved.
The “"Fault Model Design tools - fmdtools version 2"” software is licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
import fmdtools.sim.propagate as propagate
from fmdtools.analyze import tabulate
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
import pandas as pd
import numpy as np
Model Overview
The drone model is defined in drone_mdl_urban.py
, along with some visualization functions.
from drone_mdl_urban import Drone
mdl = Drone()
This is the model structure:
mg = mdl.as_modelgraph()
fig, ax = mg.draw()

We can also view the grid environment using its show
methods:
collections={"all_occupied": {"color": "red"}, "all_allowed": {"color": "blue"}, "start": {"color": "blue"}, "end": {"color": "blue"}}
fig, ax = mdl.flows['environment'].c.show({"height": {}}, collections=collections)

Which shows the Start, End, and allowed/unsafe locations in the 1000x1000-m grid. In this display, line thickness corresponds to building height, and hatching corresponds to whether or not the space is occupied. We can also display this using show.coord3d
:
fig, ax = mdl.flows['environment'].c.show_z("height", collections=collections)

Nominal Simulation
Below we show how this drone performs in the nominal scenario.
results_nom, hist_nom =propagate.nominal(mdl)
fig, axs = hist_nom.plot_line("fxns.store_ee.s.soc",
'flows.ee_1.s.rate',
'flows.dofs.s.z',
'fxns.plan_path.m.mode',
'fxns.plan_path.s.pt',
'flows.des_traj.s.power')

As shown, the flight ends fairly quickly (in 10 minutes), with the drone successively proceeding through points in the flight plan.
We can also view this flightpath in 3-d space using History.plot_trajectories
:
fig, ax = hist_nom.plot_trajectories('dofs.s.x', 'dofs.s.y', 'dofs.s.z', time_groups=['nominal'], time_ticks=0.1)

Trajectory plots can be overlaid on top of environment plots. In this case, we defined the method plot_env_with_traj
and plot_env_with_traj_z
for this case.
from drone_mdl_urban import plot_env_with_traj, plot_env_with_traj_z
plot_env_with_traj_z(hist_nom, mdl)
(<Figure size 400x400 with 1 Axes>,
<Axes3D: title={'center': 'trajectory'}, xlabel='x', ylabel='y', zlabel='z'>)

plot_env_with_traj(hist_nom, mdl)
(<Figure size 500x500 with 2 Axes>,
<Axes: title={'center': 'trajectory'}, xlabel='x', ylabel='y'>)

As shown, this is a rather simple straight-line path. If we wanted a more complex scenario, we could make the path more complex by adding multiple destinations or planning the path based on allowed flight/landing locations.
As it is, we may also want to adjust the timestep/speed to get more resolution, since the drone only has a few discrete timesteps in the air.
The results for the simulation are:
results_nom
endclass:
--rate: 1.0
--cost: 0.0
--expected_cost: 0.0
--repcost: 0
--unsafe_flight_time: 0
--body_strikes: 0.0
--head_strikes: 0.0
--property_restrictions: 0
--safecost: 0.0
--landcost: 0
--p_safety: 0.0
--severities: {'hazardous': 0.0, 'minor': 1.0}
Resilience model
A number of different faults have been implemented in the system.
For example, here we inject a mechanical fault in the left-rear rotor during flight:
mdl.fxns['affect_dof'].get_faults(only_present=False)
{'drone.fxns.affect_dof': {},
'drone.fxns.affect_dof.ca': {},
'drone.fxns.affect_dof.ca.comps.lf': {'ctlbreak': Fault(prob=2.0000000000000003e-06, cost=1000, phases=(), disturbances=(), units='sim'),
'ctldn': Fault(prob=2.0000000000000003e-06, cost=500, phases=(), disturbances=(), units='sim'),
'ctlup': Fault(prob=2.0000000000000003e-06, cost=500, phases=(), disturbances=(), units='sim'),
'mechbreak': Fault(prob=1.0000000000000002e-06, cost=500, phases=(), disturbances=(), units='sim'),
'mechfriction': Fault(prob=5.000000000000001e-07, cost=500, phases=(), disturbances=(), units='sim'),
'openc': Fault(prob=1.0000000000000002e-06, cost=200, phases=(), disturbances=(), units='sim'),
'propbreak': Fault(prob=3.0000000000000004e-07, cost=200, phases=(), disturbances=(), units='sim'),
'propstuck': Fault(prob=2.0000000000000002e-07, cost=200, phases=(), disturbances=(), units='sim'),
'propwarp': Fault(prob=1.0000000000000001e-07, cost=200, phases=(), disturbances=(), units='sim'),
'short': Fault(prob=1.0000000000000002e-06, cost=200, phases=(), disturbances=(), units='sim')},
'drone.fxns.affect_dof.ca.comps.lr': {'ctlbreak': Fault(prob=2.0000000000000003e-06, cost=1000, phases=(), disturbances=(), units='sim'),
'ctldn': Fault(prob=2.0000000000000003e-06, cost=500, phases=(), disturbances=(), units='sim'),
'ctlup': Fault(prob=2.0000000000000003e-06, cost=500, phases=(), disturbances=(), units='sim'),
'mechbreak': Fault(prob=1.0000000000000002e-06, cost=500, phases=(), disturbances=(), units='sim'),
'mechfriction': Fault(prob=5.000000000000001e-07, cost=500, phases=(), disturbances=(), units='sim'),
'openc': Fault(prob=1.0000000000000002e-06, cost=200, phases=(), disturbances=(), units='sim'),
'propbreak': Fault(prob=3.0000000000000004e-07, cost=200, phases=(), disturbances=(), units='sim'),
'propstuck': Fault(prob=2.0000000000000002e-07, cost=200, phases=(), disturbances=(), units='sim'),
'propwarp': Fault(prob=1.0000000000000001e-07, cost=200, phases=(), disturbances=(), units='sim'),
'short': Fault(prob=1.0000000000000002e-06, cost=200, phases=(), disturbances=(), units='sim')},
'drone.fxns.affect_dof.ca.comps.rf': {'ctlbreak': Fault(prob=2.0000000000000003e-06, cost=1000, phases=(), disturbances=(), units='sim'),
'ctldn': Fault(prob=2.0000000000000003e-06, cost=500, phases=(), disturbances=(), units='sim'),
'ctlup': Fault(prob=2.0000000000000003e-06, cost=500, phases=(), disturbances=(), units='sim'),
'mechbreak': Fault(prob=1.0000000000000002e-06, cost=500, phases=(), disturbances=(), units='sim'),
'mechfriction': Fault(prob=5.000000000000001e-07, cost=500, phases=(), disturbances=(), units='sim'),
'openc': Fault(prob=1.0000000000000002e-06, cost=200, phases=(), disturbances=(), units='sim'),
'propbreak': Fault(prob=3.0000000000000004e-07, cost=200, phases=(), disturbances=(), units='sim'),
'propstuck': Fault(prob=2.0000000000000002e-07, cost=200, phases=(), disturbances=(), units='sim'),
'propwarp': Fault(prob=1.0000000000000001e-07, cost=200, phases=(), disturbances=(), units='sim'),
'short': Fault(prob=1.0000000000000002e-06, cost=200, phases=(), disturbances=(), units='sim')},
'drone.fxns.affect_dof.ca.comps.rr': {'ctlbreak': Fault(prob=2.0000000000000003e-06, cost=1000, phases=(), disturbances=(), units='sim'),
'ctldn': Fault(prob=2.0000000000000003e-06, cost=500, phases=(), disturbances=(), units='sim'),
'ctlup': Fault(prob=2.0000000000000003e-06, cost=500, phases=(), disturbances=(), units='sim'),
'mechbreak': Fault(prob=1.0000000000000002e-06, cost=500, phases=(), disturbances=(), units='sim'),
'mechfriction': Fault(prob=5.000000000000001e-07, cost=500, phases=(), disturbances=(), units='sim'),
'openc': Fault(prob=1.0000000000000002e-06, cost=200, phases=(), disturbances=(), units='sim'),
'propbreak': Fault(prob=3.0000000000000004e-07, cost=200, phases=(), disturbances=(), units='sim'),
'propstuck': Fault(prob=2.0000000000000002e-07, cost=200, phases=(), disturbances=(), units='sim'),
'propwarp': Fault(prob=1.0000000000000001e-07, cost=200, phases=(), disturbances=(), units='sim'),
'short': Fault(prob=1.0000000000000002e-06, cost=200, phases=(), disturbances=(), units='sim')}}
results_fault, hist_fault =propagate.one_fault(mdl, "affect_dof.ca.comps.lr", "mechbreak", time=5)
fig, axs = hist_fault.plot_line("fxns.store_ee.s.soc",
'flows.ee_1.s.rate',
'flows.dofs.s.z',
'fxns.plan_path.m.mode',
'fxns.plan_path.s.pt',
'flows.des_traj.s.power')

plot_env_with_traj_z(hist_fault, mdl)
(<Figure size 400x400 with 1 Axes>,
<Axes3D: title={'center': 'trajectory'}, xlabel='x', ylabel='y', zlabel='z'>)

plot_env_with_traj(hist_fault, mdl)
(<Figure size 500x500 with 2 Axes>,
<Axes: title={'center': 'trajectory'}, xlabel='x', ylabel='y'>)

results_fault
endclass.rate: 1.0000000000000002e-06
endclass.cost: 41400.0
endclass.expected_cost: 4140.000000000001
endclass.repcost: 1500
endclass.unsafe_flight_time: 251
endclass.body_strikes: 0.0003
endclass.head_strikes: 0.0002
endclass.property_restrictions: 1
endclass.safecost: 29900.0
endclass.landcost: 10000
endclass.p_safety: 0.00011951429376733103
endclass.severities: {'hazardous': 1.1951429376733104e-10, 'minor': 9.998804857062328e-07}
Here we inject a large list of faults in the system and evaluate their relative consequences in terms of metrics calculated in find_classification:
from fmdtools.analyze.phases import PhaseMap, from_hist
phasemaps = from_hist(hist_nom, fxn_modephases=[], dt=mdl.sp.dt)
phasemaps
{'ctl_dof': PhaseMap({'nominal': [0.0, 30.0]}, {}),
'plan_path': PhaseMap({'taxi': [0.0, 1.0], 'move': [1.1, 8.2], 'land': [8.3, 18.6], 'taxi1': [18.7, 30.0]}, {})}
from drone_mdl_urban import make_move_quad
move_quad=make_move_quad(hist_nom, phasemaps['plan_path'].phases['move'])
move_quad
{'samp': 'quadrature',
'quad': {'nodes': [0.8309859154929577,
-0.2676056338028169,
0.267605633802817],
'weights': [0.006, 1.0, 0.92]}}
from fmdtools.sim.sample import FaultDomain, FaultSample
fd = FaultDomain(mdl)
fd.add_all()
fs = FaultSample(fd, phasemap = phasemaps['plan_path'])
fs.add_fault_phases("move", method = "quad",
args=(move_quad['quad']['nodes'], move_quad['quad']['weights']))
fs
FaultSample of scenarios:
- drone_fxns_manage_health_lostfunction_t7p6
- drone_fxns_manage_health_lostfunction_t3p7
- drone_fxns_manage_health_lostfunction_t5p6
- drone_fxns_store_ee_lowcharge_t7p6
- drone_fxns_store_ee_lowcharge_t3p7
- drone_fxns_store_ee_lowcharge_t5p6
- drone_fxns_store_ee_nocharge_t7p6
- drone_fxns_store_ee_nocharge_t3p7
- drone_fxns_store_ee_nocharge_t5p6
- drone_fxns_store_ee_ca_comps_s1p1_break_t7p6
- ... (177 total)
fs.scenarios()
[SingleFaultScenario(sequence={7.6: Injection(faults={'drone.fxns.manage_health': ['lostfunction']}, disturbances={})}, times=(7.6,), function='drone.fxns.manage_health', fault='lostfunction', rate=4.672897196261682e-11, name='drone_fxns_manage_health_lostfunction_t7p6', time=7.6, phase='move'),
SingleFaultScenario(sequence={3.7: Injection(faults={'drone.fxns.manage_health': ['lostfunction']}, disturbances={})}, times=(3.7,), function='drone.fxns.manage_health', fault='lostfunction', rate=7.78816199376947e-09, name='drone_fxns_manage_health_lostfunction_t3p7', time=3.7, phase='move'),
SingleFaultScenario(sequence={5.6: Injection(faults={'drone.fxns.manage_health': ['lostfunction']}, disturbances={})}, times=(5.6,), function='drone.fxns.manage_health', fault='lostfunction', rate=7.1651090342679115e-09, name='drone_fxns_manage_health_lostfunction_t5p6', time=5.6, phase='move'),
SingleFaultScenario(sequence={7.6: Injection(faults={'drone.fxns.store_ee': ['lowcharge']}, disturbances={})}, times=(7.6,), function='drone.fxns.store_ee', fault='lowcharge', rate=4.3613707165109034e-08, name='drone_fxns_store_ee_lowcharge_t7p6', time=7.6, phase='move'),
SingleFaultScenario(sequence={3.7: Injection(faults={'drone.fxns.store_ee': ['lowcharge']}, disturbances={})}, times=(3.7,), function='drone.fxns.store_ee', fault='lowcharge', rate=7.268951194184839e-06, name='drone_fxns_store_ee_lowcharge_t3p7', time=3.7, phase='move'),
SingleFaultScenario(sequence={5.6: Injection(faults={'drone.fxns.store_ee': ['lowcharge']}, disturbances={})}, times=(5.6,), function='drone.fxns.store_ee', fault='lowcharge', rate=6.687435098650051e-06, name='drone_fxns_store_ee_lowcharge_t5p6', time=5.6, phase='move'),
SingleFaultScenario(sequence={7.6: Injection(faults={'drone.fxns.store_ee': ['nocharge']}, disturbances={})}, times=(7.6,), function='drone.fxns.store_ee', fault='nocharge', rate=1.2461059190031154e-08, name='drone_fxns_store_ee_nocharge_t7p6', time=7.6, phase='move'),
SingleFaultScenario(sequence={3.7: Injection(faults={'drone.fxns.store_ee': ['nocharge']}, disturbances={})}, times=(3.7,), function='drone.fxns.store_ee', fault='nocharge', rate=2.0768431983385256e-06, name='drone_fxns_store_ee_nocharge_t3p7', time=3.7, phase='move'),
SingleFaultScenario(sequence={5.6: Injection(faults={'drone.fxns.store_ee': ['nocharge']}, disturbances={})}, times=(5.6,), function='drone.fxns.store_ee', fault='nocharge', rate=1.9106957424714435e-06, name='drone_fxns_store_ee_nocharge_t5p6', time=5.6, phase='move'),
SingleFaultScenario(sequence={7.6: Injection(faults={'drone.fxns.store_ee.ca.comps.s1p1': ['break']}, disturbances={})}, times=(7.6,), function='drone.fxns.store_ee.ca.comps.s1p1', fault='break', rate=2.2429906542056072e-09, name='drone_fxns_store_ee_ca_comps_s1p1_break_t7p6', time=7.6, phase='move'),
SingleFaultScenario(sequence={3.7: Injection(faults={'drone.fxns.store_ee.ca.comps.s1p1': ['break']}, disturbances={})}, times=(3.7,), function='drone.fxns.store_ee.ca.comps.s1p1', fault='break', rate=3.7383177570093457e-07, name='drone_fxns_store_ee_ca_comps_s1p1_break_t3p7', time=3.7, phase='move'),
SingleFaultScenario(sequence={5.6: Injection(faults={'drone.fxns.store_ee.ca.comps.s1p1': ['break']}, disturbances={})}, times=(5.6,), function='drone.fxns.store_ee.ca.comps.s1p1', fault='break', rate=3.439252336448598e-07, name='drone_fxns_store_ee_ca_comps_s1p1_break_t5p6', time=5.6, phase='move'),
SingleFaultScenario(sequence={7.6: Injection(faults={'drone.fxns.store_ee.ca.comps.s1p1': ['degr']}, disturbances={})}, times=(7.6,), function='drone.fxns.store_ee.ca.comps.s1p1', fault='degr', rate=2.2429906542056072e-09, name='drone_fxns_store_ee_ca_comps_s1p1_degr_t7p6', time=7.6, phase='move'),
SingleFaultScenario(sequence={3.7: Injection(faults={'drone.fxns.store_ee.ca.comps.s1p1': ['degr']}, disturbances={})}, times=(3.7,), function='drone.fxns.store_ee.ca.comps.s1p1', fault='degr', rate=3.7383177570093457e-07, name='drone_fxns_store_ee_ca_comps_s1p1_degr_t3p7', time=3.7, phase='move'),
SingleFaultScenario(sequence={5.6: Injection(faults={'drone.fxns.store_ee.ca.comps.s1p1': ['degr']}, disturbances={})}, times=(5.6,), function='drone.fxns.store_ee.ca.comps.s1p1', fault='degr', rate=3.439252336448598e-07, name='drone_fxns_store_ee_ca_comps_s1p1_degr_t5p6', time=5.6, phase='move'),
SingleFaultScenario(sequence={7.6: Injection(faults={'drone.fxns.store_ee.ca.comps.s1p1': ['lowcharge']}, disturbances={})}, times=(7.6,), function='drone.fxns.store_ee.ca.comps.s1p1', fault='lowcharge', rate=2.9906542056074763e-09, name='drone_fxns_store_ee_ca_comps_s1p1_lowcharge_t7p6', time=7.6, phase='move'),
SingleFaultScenario(sequence={3.7: Injection(faults={'drone.fxns.store_ee.ca.comps.s1p1': ['lowcharge']}, disturbances={})}, times=(3.7,), function='drone.fxns.store_ee.ca.comps.s1p1', fault='lowcharge', rate=4.98442367601246e-07, name='drone_fxns_store_ee_ca_comps_s1p1_lowcharge_t3p7', time=3.7, phase='move'),
SingleFaultScenario(sequence={5.6: Injection(faults={'drone.fxns.store_ee.ca.comps.s1p1': ['lowcharge']}, disturbances={})}, times=(5.6,), function='drone.fxns.store_ee.ca.comps.s1p1', fault='lowcharge', rate=4.5856697819314633e-07, name='drone_fxns_store_ee_ca_comps_s1p1_lowcharge_t5p6', time=5.6, phase='move'),
SingleFaultScenario(sequence={7.6: Injection(faults={'drone.fxns.store_ee.ca.comps.s1p1': ['nocharge']}, disturbances={})}, times=(7.6,), function='drone.fxns.store_ee.ca.comps.s1p1', fault='nocharge', rate=4.4859813084112144e-09, name='drone_fxns_store_ee_ca_comps_s1p1_nocharge_t7p6', time=7.6, phase='move'),
SingleFaultScenario(sequence={3.7: Injection(faults={'drone.fxns.store_ee.ca.comps.s1p1': ['nocharge']}, disturbances={})}, times=(3.7,), function='drone.fxns.store_ee.ca.comps.s1p1', fault='nocharge', rate=7.476635514018691e-07, name='drone_fxns_store_ee_ca_comps_s1p1_nocharge_t3p7', time=3.7, phase='move'),
SingleFaultScenario(sequence={5.6: Injection(faults={'drone.fxns.store_ee.ca.comps.s1p1': ['nocharge']}, disturbances={})}, times=(5.6,), function='drone.fxns.store_ee.ca.comps.s1p1', fault='nocharge', rate=6.878504672897196e-07, name='drone_fxns_store_ee_ca_comps_s1p1_nocharge_t5p6', time=5.6, phase='move'),
SingleFaultScenario(sequence={7.6: Injection(faults={'drone.fxns.store_ee.ca.comps.s1p1': ['short']}, disturbances={})}, times=(7.6,), function='drone.fxns.store_ee.ca.comps.s1p1', fault='short', rate=2.2429906542056072e-09, name='drone_fxns_store_ee_ca_comps_s1p1_short_t7p6', time=7.6, phase='move'),
SingleFaultScenario(sequence={3.7: Injection(faults={'drone.fxns.store_ee.ca.comps.s1p1': ['short']}, disturbances={})}, times=(3.7,), function='drone.fxns.store_ee.ca.comps.s1p1', fault='short', rate=3.7383177570093457e-07, name='drone_fxns_store_ee_ca_comps_s1p1_short_t3p7', time=3.7, phase='move'),
SingleFaultScenario(sequence={5.6: Injection(faults={'drone.fxns.store_ee.ca.comps.s1p1': ['short']}, disturbances={})}, times=(5.6,), function='drone.fxns.store_ee.ca.comps.s1p1', fault='short', rate=3.439252336448598e-07, name='drone_fxns_store_ee_ca_comps_s1p1_short_t5p6', time=5.6, phase='move'),
SingleFaultScenario(sequence={7.6: Injection(faults={'drone.fxns.dist_ee': ['break']}, disturbances={})}, times=(7.6,), function='drone.fxns.dist_ee', fault='break', rate=6.230529595015577e-09, name='drone_fxns_dist_ee_break_t7p6', time=7.6, phase='move'),
SingleFaultScenario(sequence={3.7: Injection(faults={'drone.fxns.dist_ee': ['break']}, disturbances={})}, times=(3.7,), function='drone.fxns.dist_ee', fault='break', rate=1.0384215991692628e-06, name='drone_fxns_dist_ee_break_t3p7', time=3.7, phase='move'),
SingleFaultScenario(sequence={5.6: Injection(faults={'drone.fxns.dist_ee': ['break']}, disturbances={})}, times=(5.6,), function='drone.fxns.dist_ee', fault='break', rate=9.553478712357217e-07, name='drone_fxns_dist_ee_break_t5p6', time=5.6, phase='move'),
SingleFaultScenario(sequence={7.6: Injection(faults={'drone.fxns.dist_ee': ['degr']}, disturbances={})}, times=(7.6,), function='drone.fxns.dist_ee', fault='degr', rate=1.5576323987538942e-08, name='drone_fxns_dist_ee_degr_t7p6', time=7.6, phase='move'),
SingleFaultScenario(sequence={3.7: Injection(faults={'drone.fxns.dist_ee': ['degr']}, disturbances={})}, times=(3.7,), function='drone.fxns.dist_ee', fault='degr', rate=2.596053997923157e-06, name='drone_fxns_dist_ee_degr_t3p7', time=3.7, phase='move'),
SingleFaultScenario(sequence={5.6: Injection(faults={'drone.fxns.dist_ee': ['degr']}, disturbances={})}, times=(5.6,), function='drone.fxns.dist_ee', fault='degr', rate=2.388369678089304e-06, name='drone_fxns_dist_ee_degr_t5p6', time=5.6, phase='move'),
SingleFaultScenario(sequence={7.6: Injection(faults={'drone.fxns.dist_ee': ['short']}, disturbances={})}, times=(7.6,), function='drone.fxns.dist_ee', fault='short', rate=9.345794392523365e-09, name='drone_fxns_dist_ee_short_t7p6', time=7.6, phase='move'),
SingleFaultScenario(sequence={3.7: Injection(faults={'drone.fxns.dist_ee': ['short']}, disturbances={})}, times=(3.7,), function='drone.fxns.dist_ee', fault='short', rate=1.557632398753894e-06, name='drone_fxns_dist_ee_short_t3p7', time=3.7, phase='move'),
SingleFaultScenario(sequence={5.6: Injection(faults={'drone.fxns.dist_ee': ['short']}, disturbances={})}, times=(5.6,), function='drone.fxns.dist_ee', fault='short', rate=1.4330218068535824e-06, name='drone_fxns_dist_ee_short_t5p6', time=5.6, phase='move'),
SingleFaultScenario(sequence={7.6: Injection(faults={'drone.fxns.affect_dof.ca.comps.lf': ['ctlbreak']}, disturbances={})}, times=(7.6,), function='drone.fxns.affect_dof.ca.comps.lf', fault='ctlbreak', rate=6.230529595015577e-09, name='drone_fxns_affect_dof_ca_comps_lf_ctlbreak_t7p6', time=7.6, phase='move'),
SingleFaultScenario(sequence={3.7: Injection(faults={'drone.fxns.affect_dof.ca.comps.lf': ['ctlbreak']}, disturbances={})}, times=(3.7,), function='drone.fxns.affect_dof.ca.comps.lf', fault='ctlbreak', rate=1.0384215991692628e-06, name='drone_fxns_affect_dof_ca_comps_lf_ctlbreak_t3p7', time=3.7, phase='move'),
SingleFaultScenario(sequence={5.6: Injection(faults={'drone.fxns.affect_dof.ca.comps.lf': ['ctlbreak']}, disturbances={})}, times=(5.6,), function='drone.fxns.affect_dof.ca.comps.lf', fault='ctlbreak', rate=9.553478712357217e-07, name='drone_fxns_affect_dof_ca_comps_lf_ctlbreak_t5p6', time=5.6, phase='move'),
SingleFaultScenario(sequence={7.6: Injection(faults={'drone.fxns.affect_dof.ca.comps.lf': ['ctldn']}, disturbances={})}, times=(7.6,), function='drone.fxns.affect_dof.ca.comps.lf', fault='ctldn', rate=6.230529595015577e-09, name='drone_fxns_affect_dof_ca_comps_lf_ctldn_t7p6', time=7.6, phase='move'),
SingleFaultScenario(sequence={3.7: Injection(faults={'drone.fxns.affect_dof.ca.comps.lf': ['ctldn']}, disturbances={})}, times=(3.7,), function='drone.fxns.affect_dof.ca.comps.lf', fault='ctldn', rate=1.0384215991692628e-06, name='drone_fxns_affect_dof_ca_comps_lf_ctldn_t3p7', time=3.7, phase='move'),
SingleFaultScenario(sequence={5.6: Injection(faults={'drone.fxns.affect_dof.ca.comps.lf': ['ctldn']}, disturbances={})}, times=(5.6,), function='drone.fxns.affect_dof.ca.comps.lf', fault='ctldn', rate=9.553478712357217e-07, name='drone_fxns_affect_dof_ca_comps_lf_ctldn_t5p6', time=5.6, phase='move'),
SingleFaultScenario(sequence={7.6: Injection(faults={'drone.fxns.affect_dof.ca.comps.lf': ['ctlup']}, disturbances={})}, times=(7.6,), function='drone.fxns.affect_dof.ca.comps.lf', fault='ctlup', rate=6.230529595015577e-09, name='drone_fxns_affect_dof_ca_comps_lf_ctlup_t7p6', time=7.6, phase='move'),
SingleFaultScenario(sequence={3.7: Injection(faults={'drone.fxns.affect_dof.ca.comps.lf': ['ctlup']}, disturbances={})}, times=(3.7,), function='drone.fxns.affect_dof.ca.comps.lf', fault='ctlup', rate=1.0384215991692628e-06, name='drone_fxns_affect_dof_ca_comps_lf_ctlup_t3p7', time=3.7, phase='move'),
SingleFaultScenario(sequence={5.6: Injection(faults={'drone.fxns.affect_dof.ca.comps.lf': ['ctlup']}, disturbances={})}, times=(5.6,), function='drone.fxns.affect_dof.ca.comps.lf', fault='ctlup', rate=9.553478712357217e-07, name='drone_fxns_affect_dof_ca_comps_lf_ctlup_t5p6', time=5.6, phase='move'),
SingleFaultScenario(sequence={7.6: Injection(faults={'drone.fxns.affect_dof.ca.comps.lf': ['mechbreak']}, disturbances={})}, times=(7.6,), function='drone.fxns.affect_dof.ca.comps.lf', fault='mechbreak', rate=3.1152647975077885e-09, name='drone_fxns_affect_dof_ca_comps_lf_mechbreak_t7p6', time=7.6, phase='move'),
SingleFaultScenario(sequence={3.7: Injection(faults={'drone.fxns.affect_dof.ca.comps.lf': ['mechbreak']}, disturbances={})}, times=(3.7,), function='drone.fxns.affect_dof.ca.comps.lf', fault='mechbreak', rate=5.192107995846314e-07, name='drone_fxns_affect_dof_ca_comps_lf_mechbreak_t3p7', time=3.7, phase='move'),
SingleFaultScenario(sequence={5.6: Injection(faults={'drone.fxns.affect_dof.ca.comps.lf': ['mechbreak']}, disturbances={})}, times=(5.6,), function='drone.fxns.affect_dof.ca.comps.lf', fault='mechbreak', rate=4.776739356178609e-07, name='drone_fxns_affect_dof_ca_comps_lf_mechbreak_t5p6', time=5.6, phase='move'),
SingleFaultScenario(sequence={7.6: Injection(faults={'drone.fxns.affect_dof.ca.comps.lf': ['mechfriction']}, disturbances={})}, times=(7.6,), function='drone.fxns.affect_dof.ca.comps.lf', fault='mechfriction', rate=1.5576323987538942e-09, name='drone_fxns_affect_dof_ca_comps_lf_mechfriction_t7p6', time=7.6, phase='move'),
SingleFaultScenario(sequence={3.7: Injection(faults={'drone.fxns.affect_dof.ca.comps.lf': ['mechfriction']}, disturbances={})}, times=(3.7,), function='drone.fxns.affect_dof.ca.comps.lf', fault='mechfriction', rate=2.596053997923157e-07, name='drone_fxns_affect_dof_ca_comps_lf_mechfriction_t3p7', time=3.7, phase='move'),
SingleFaultScenario(sequence={5.6: Injection(faults={'drone.fxns.affect_dof.ca.comps.lf': ['mechfriction']}, disturbances={})}, times=(5.6,), function='drone.fxns.affect_dof.ca.comps.lf', fault='mechfriction', rate=2.3883696780893044e-07, name='drone_fxns_affect_dof_ca_comps_lf_mechfriction_t5p6', time=5.6, phase='move'),
SingleFaultScenario(sequence={7.6: Injection(faults={'drone.fxns.affect_dof.ca.comps.lf': ['openc']}, disturbances={})}, times=(7.6,), function='drone.fxns.affect_dof.ca.comps.lf', fault='openc', rate=3.1152647975077885e-09, name='drone_fxns_affect_dof_ca_comps_lf_openc_t7p6', time=7.6, phase='move'),
SingleFaultScenario(sequence={3.7: Injection(faults={'drone.fxns.affect_dof.ca.comps.lf': ['openc']}, disturbances={})}, times=(3.7,), function='drone.fxns.affect_dof.ca.comps.lf', fault='openc', rate=5.192107995846314e-07, name='drone_fxns_affect_dof_ca_comps_lf_openc_t3p7', time=3.7, phase='move'),
SingleFaultScenario(sequence={5.6: Injection(faults={'drone.fxns.affect_dof.ca.comps.lf': ['openc']}, disturbances={})}, times=(5.6,), function='drone.fxns.affect_dof.ca.comps.lf', fault='openc', rate=4.776739356178609e-07, name='drone_fxns_affect_dof_ca_comps_lf_openc_t5p6', time=5.6, phase='move'),
SingleFaultScenario(sequence={7.6: Injection(faults={'drone.fxns.affect_dof.ca.comps.lf': ['propbreak']}, disturbances={})}, times=(7.6,), function='drone.fxns.affect_dof.ca.comps.lf', fault='propbreak', rate=9.345794392523365e-10, name='drone_fxns_affect_dof_ca_comps_lf_propbreak_t7p6', time=7.6, phase='move'),
SingleFaultScenario(sequence={3.7: Injection(faults={'drone.fxns.affect_dof.ca.comps.lf': ['propbreak']}, disturbances={})}, times=(3.7,), function='drone.fxns.affect_dof.ca.comps.lf', fault='propbreak', rate=1.5576323987538942e-07, name='drone_fxns_affect_dof_ca_comps_lf_propbreak_t3p7', time=3.7, phase='move'),
SingleFaultScenario(sequence={5.6: Injection(faults={'drone.fxns.affect_dof.ca.comps.lf': ['propbreak']}, disturbances={})}, times=(5.6,), function='drone.fxns.affect_dof.ca.comps.lf', fault='propbreak', rate=1.4330218068535827e-07, name='drone_fxns_affect_dof_ca_comps_lf_propbreak_t5p6', time=5.6, phase='move'),
SingleFaultScenario(sequence={7.6: Injection(faults={'drone.fxns.affect_dof.ca.comps.lf': ['propstuck']}, disturbances={})}, times=(7.6,), function='drone.fxns.affect_dof.ca.comps.lf', fault='propstuck', rate=6.230529595015577e-10, name='drone_fxns_affect_dof_ca_comps_lf_propstuck_t7p6', time=7.6, phase='move'),
SingleFaultScenario(sequence={3.7: Injection(faults={'drone.fxns.affect_dof.ca.comps.lf': ['propstuck']}, disturbances={})}, times=(3.7,), function='drone.fxns.affect_dof.ca.comps.lf', fault='propstuck', rate=1.0384215991692627e-07, name='drone_fxns_affect_dof_ca_comps_lf_propstuck_t3p7', time=3.7, phase='move'),
SingleFaultScenario(sequence={5.6: Injection(faults={'drone.fxns.affect_dof.ca.comps.lf': ['propstuck']}, disturbances={})}, times=(5.6,), function='drone.fxns.affect_dof.ca.comps.lf', fault='propstuck', rate=9.553478712357218e-08, name='drone_fxns_affect_dof_ca_comps_lf_propstuck_t5p6', time=5.6, phase='move'),
SingleFaultScenario(sequence={7.6: Injection(faults={'drone.fxns.affect_dof.ca.comps.lf': ['propwarp']}, disturbances={})}, times=(7.6,), function='drone.fxns.affect_dof.ca.comps.lf', fault='propwarp', rate=3.1152647975077885e-10, name='drone_fxns_affect_dof_ca_comps_lf_propwarp_t7p6', time=7.6, phase='move'),
SingleFaultScenario(sequence={3.7: Injection(faults={'drone.fxns.affect_dof.ca.comps.lf': ['propwarp']}, disturbances={})}, times=(3.7,), function='drone.fxns.affect_dof.ca.comps.lf', fault='propwarp', rate=5.1921079958463137e-08, name='drone_fxns_affect_dof_ca_comps_lf_propwarp_t3p7', time=3.7, phase='move'),
SingleFaultScenario(sequence={5.6: Injection(faults={'drone.fxns.affect_dof.ca.comps.lf': ['propwarp']}, disturbances={})}, times=(5.6,), function='drone.fxns.affect_dof.ca.comps.lf', fault='propwarp', rate=4.776739356178609e-08, name='drone_fxns_affect_dof_ca_comps_lf_propwarp_t5p6', time=5.6, phase='move'),
SingleFaultScenario(sequence={7.6: Injection(faults={'drone.fxns.affect_dof.ca.comps.lf': ['short']}, disturbances={})}, times=(7.6,), function='drone.fxns.affect_dof.ca.comps.lf', fault='short', rate=3.1152647975077885e-09, name='drone_fxns_affect_dof_ca_comps_lf_short_t7p6', time=7.6, phase='move'),
SingleFaultScenario(sequence={3.7: Injection(faults={'drone.fxns.affect_dof.ca.comps.lf': ['short']}, disturbances={})}, times=(3.7,), function='drone.fxns.affect_dof.ca.comps.lf', fault='short', rate=5.192107995846314e-07, name='drone_fxns_affect_dof_ca_comps_lf_short_t3p7', time=3.7, phase='move'),
SingleFaultScenario(sequence={5.6: Injection(faults={'drone.fxns.affect_dof.ca.comps.lf': ['short']}, disturbances={})}, times=(5.6,), function='drone.fxns.affect_dof.ca.comps.lf', fault='short', rate=4.776739356178609e-07, name='drone_fxns_affect_dof_ca_comps_lf_short_t5p6', time=5.6, phase='move'),
SingleFaultScenario(sequence={7.6: Injection(faults={'drone.fxns.affect_dof.ca.comps.lr': ['ctlbreak']}, disturbances={})}, times=(7.6,), function='drone.fxns.affect_dof.ca.comps.lr', fault='ctlbreak', rate=6.230529595015577e-09, name='drone_fxns_affect_dof_ca_comps_lr_ctlbreak_t7p6', time=7.6, phase='move'),
SingleFaultScenario(sequence={3.7: Injection(faults={'drone.fxns.affect_dof.ca.comps.lr': ['ctlbreak']}, disturbances={})}, times=(3.7,), function='drone.fxns.affect_dof.ca.comps.lr', fault='ctlbreak', rate=1.0384215991692628e-06, name='drone_fxns_affect_dof_ca_comps_lr_ctlbreak_t3p7', time=3.7, phase='move'),
SingleFaultScenario(sequence={5.6: Injection(faults={'drone.fxns.affect_dof.ca.comps.lr': ['ctlbreak']}, disturbances={})}, times=(5.6,), function='drone.fxns.affect_dof.ca.comps.lr', fault='ctlbreak', rate=9.553478712357217e-07, name='drone_fxns_affect_dof_ca_comps_lr_ctlbreak_t5p6', time=5.6, phase='move'),
SingleFaultScenario(sequence={7.6: Injection(faults={'drone.fxns.affect_dof.ca.comps.lr': ['ctldn']}, disturbances={})}, times=(7.6,), function='drone.fxns.affect_dof.ca.comps.lr', fault='ctldn', rate=6.230529595015577e-09, name='drone_fxns_affect_dof_ca_comps_lr_ctldn_t7p6', time=7.6, phase='move'),
SingleFaultScenario(sequence={3.7: Injection(faults={'drone.fxns.affect_dof.ca.comps.lr': ['ctldn']}, disturbances={})}, times=(3.7,), function='drone.fxns.affect_dof.ca.comps.lr', fault='ctldn', rate=1.0384215991692628e-06, name='drone_fxns_affect_dof_ca_comps_lr_ctldn_t3p7', time=3.7, phase='move'),
SingleFaultScenario(sequence={5.6: Injection(faults={'drone.fxns.affect_dof.ca.comps.lr': ['ctldn']}, disturbances={})}, times=(5.6,), function='drone.fxns.affect_dof.ca.comps.lr', fault='ctldn', rate=9.553478712357217e-07, name='drone_fxns_affect_dof_ca_comps_lr_ctldn_t5p6', time=5.6, phase='move'),
SingleFaultScenario(sequence={7.6: Injection(faults={'drone.fxns.affect_dof.ca.comps.lr': ['ctlup']}, disturbances={})}, times=(7.6,), function='drone.fxns.affect_dof.ca.comps.lr', fault='ctlup', rate=6.230529595015577e-09, name='drone_fxns_affect_dof_ca_comps_lr_ctlup_t7p6', time=7.6, phase='move'),
SingleFaultScenario(sequence={3.7: Injection(faults={'drone.fxns.affect_dof.ca.comps.lr': ['ctlup']}, disturbances={})}, times=(3.7,), function='drone.fxns.affect_dof.ca.comps.lr', fault='ctlup', rate=1.0384215991692628e-06, name='drone_fxns_affect_dof_ca_comps_lr_ctlup_t3p7', time=3.7, phase='move'),
SingleFaultScenario(sequence={5.6: Injection(faults={'drone.fxns.affect_dof.ca.comps.lr': ['ctlup']}, disturbances={})}, times=(5.6,), function='drone.fxns.affect_dof.ca.comps.lr', fault='ctlup', rate=9.553478712357217e-07, name='drone_fxns_affect_dof_ca_comps_lr_ctlup_t5p6', time=5.6, phase='move'),
SingleFaultScenario(sequence={7.6: Injection(faults={'drone.fxns.affect_dof.ca.comps.lr': ['mechbreak']}, disturbances={})}, times=(7.6,), function='drone.fxns.affect_dof.ca.comps.lr', fault='mechbreak', rate=3.1152647975077885e-09, name='drone_fxns_affect_dof_ca_comps_lr_mechbreak_t7p6', time=7.6, phase='move'),
SingleFaultScenario(sequence={3.7: Injection(faults={'drone.fxns.affect_dof.ca.comps.lr': ['mechbreak']}, disturbances={})}, times=(3.7,), function='drone.fxns.affect_dof.ca.comps.lr', fault='mechbreak', rate=5.192107995846314e-07, name='drone_fxns_affect_dof_ca_comps_lr_mechbreak_t3p7', time=3.7, phase='move'),
SingleFaultScenario(sequence={5.6: Injection(faults={'drone.fxns.affect_dof.ca.comps.lr': ['mechbreak']}, disturbances={})}, times=(5.6,), function='drone.fxns.affect_dof.ca.comps.lr', fault='mechbreak', rate=4.776739356178609e-07, name='drone_fxns_affect_dof_ca_comps_lr_mechbreak_t5p6', time=5.6, phase='move'),
SingleFaultScenario(sequence={7.6: Injection(faults={'drone.fxns.affect_dof.ca.comps.lr': ['mechfriction']}, disturbances={})}, times=(7.6,), function='drone.fxns.affect_dof.ca.comps.lr', fault='mechfriction', rate=1.5576323987538942e-09, name='drone_fxns_affect_dof_ca_comps_lr_mechfriction_t7p6', time=7.6, phase='move'),
SingleFaultScenario(sequence={3.7: Injection(faults={'drone.fxns.affect_dof.ca.comps.lr': ['mechfriction']}, disturbances={})}, times=(3.7,), function='drone.fxns.affect_dof.ca.comps.lr', fault='mechfriction', rate=2.596053997923157e-07, name='drone_fxns_affect_dof_ca_comps_lr_mechfriction_t3p7', time=3.7, phase='move'),
SingleFaultScenario(sequence={5.6: Injection(faults={'drone.fxns.affect_dof.ca.comps.lr': ['mechfriction']}, disturbances={})}, times=(5.6,), function='drone.fxns.affect_dof.ca.comps.lr', fault='mechfriction', rate=2.3883696780893044e-07, name='drone_fxns_affect_dof_ca_comps_lr_mechfriction_t5p6', time=5.6, phase='move'),
SingleFaultScenario(sequence={7.6: Injection(faults={'drone.fxns.affect_dof.ca.comps.lr': ['openc']}, disturbances={})}, times=(7.6,), function='drone.fxns.affect_dof.ca.comps.lr', fault='openc', rate=3.1152647975077885e-09, name='drone_fxns_affect_dof_ca_comps_lr_openc_t7p6', time=7.6, phase='move'),
SingleFaultScenario(sequence={3.7: Injection(faults={'drone.fxns.affect_dof.ca.comps.lr': ['openc']}, disturbances={})}, times=(3.7,), function='drone.fxns.affect_dof.ca.comps.lr', fault='openc', rate=5.192107995846314e-07, name='drone_fxns_affect_dof_ca_comps_lr_openc_t3p7', time=3.7, phase='move'),
SingleFaultScenario(sequence={5.6: Injection(faults={'drone.fxns.affect_dof.ca.comps.lr': ['openc']}, disturbances={})}, times=(5.6,), function='drone.fxns.affect_dof.ca.comps.lr', fault='openc', rate=4.776739356178609e-07, name='drone_fxns_affect_dof_ca_comps_lr_openc_t5p6', time=5.6, phase='move'),
SingleFaultScenario(sequence={7.6: Injection(faults={'drone.fxns.affect_dof.ca.comps.lr': ['propbreak']}, disturbances={})}, times=(7.6,), function='drone.fxns.affect_dof.ca.comps.lr', fault='propbreak', rate=9.345794392523365e-10, name='drone_fxns_affect_dof_ca_comps_lr_propbreak_t7p6', time=7.6, phase='move'),
SingleFaultScenario(sequence={3.7: Injection(faults={'drone.fxns.affect_dof.ca.comps.lr': ['propbreak']}, disturbances={})}, times=(3.7,), function='drone.fxns.affect_dof.ca.comps.lr', fault='propbreak', rate=1.5576323987538942e-07, name='drone_fxns_affect_dof_ca_comps_lr_propbreak_t3p7', time=3.7, phase='move'),
SingleFaultScenario(sequence={5.6: Injection(faults={'drone.fxns.affect_dof.ca.comps.lr': ['propbreak']}, disturbances={})}, times=(5.6,), function='drone.fxns.affect_dof.ca.comps.lr', fault='propbreak', rate=1.4330218068535827e-07, name='drone_fxns_affect_dof_ca_comps_lr_propbreak_t5p6', time=5.6, phase='move'),
SingleFaultScenario(sequence={7.6: Injection(faults={'drone.fxns.affect_dof.ca.comps.lr': ['propstuck']}, disturbances={})}, times=(7.6,), function='drone.fxns.affect_dof.ca.comps.lr', fault='propstuck', rate=6.230529595015577e-10, name='drone_fxns_affect_dof_ca_comps_lr_propstuck_t7p6', time=7.6, phase='move'),
SingleFaultScenario(sequence={3.7: Injection(faults={'drone.fxns.affect_dof.ca.comps.lr': ['propstuck']}, disturbances={})}, times=(3.7,), function='drone.fxns.affect_dof.ca.comps.lr', fault='propstuck', rate=1.0384215991692627e-07, name='drone_fxns_affect_dof_ca_comps_lr_propstuck_t3p7', time=3.7, phase='move'),
SingleFaultScenario(sequence={5.6: Injection(faults={'drone.fxns.affect_dof.ca.comps.lr': ['propstuck']}, disturbances={})}, times=(5.6,), function='drone.fxns.affect_dof.ca.comps.lr', fault='propstuck', rate=9.553478712357218e-08, name='drone_fxns_affect_dof_ca_comps_lr_propstuck_t5p6', time=5.6, phase='move'),
SingleFaultScenario(sequence={7.6: Injection(faults={'drone.fxns.affect_dof.ca.comps.lr': ['propwarp']}, disturbances={})}, times=(7.6,), function='drone.fxns.affect_dof.ca.comps.lr', fault='propwarp', rate=3.1152647975077885e-10, name='drone_fxns_affect_dof_ca_comps_lr_propwarp_t7p6', time=7.6, phase='move'),
SingleFaultScenario(sequence={3.7: Injection(faults={'drone.fxns.affect_dof.ca.comps.lr': ['propwarp']}, disturbances={})}, times=(3.7,), function='drone.fxns.affect_dof.ca.comps.lr', fault='propwarp', rate=5.1921079958463137e-08, name='drone_fxns_affect_dof_ca_comps_lr_propwarp_t3p7', time=3.7, phase='move'),
SingleFaultScenario(sequence={5.6: Injection(faults={'drone.fxns.affect_dof.ca.comps.lr': ['propwarp']}, disturbances={})}, times=(5.6,), function='drone.fxns.affect_dof.ca.comps.lr', fault='propwarp', rate=4.776739356178609e-08, name='drone_fxns_affect_dof_ca_comps_lr_propwarp_t5p6', time=5.6, phase='move'),
SingleFaultScenario(sequence={7.6: Injection(faults={'drone.fxns.affect_dof.ca.comps.lr': ['short']}, disturbances={})}, times=(7.6,), function='drone.fxns.affect_dof.ca.comps.lr', fault='short', rate=3.1152647975077885e-09, name='drone_fxns_affect_dof_ca_comps_lr_short_t7p6', time=7.6, phase='move'),
SingleFaultScenario(sequence={3.7: Injection(faults={'drone.fxns.affect_dof.ca.comps.lr': ['short']}, disturbances={})}, times=(3.7,), function='drone.fxns.affect_dof.ca.comps.lr', fault='short', rate=5.192107995846314e-07, name='drone_fxns_affect_dof_ca_comps_lr_short_t3p7', time=3.7, phase='move'),
SingleFaultScenario(sequence={5.6: Injection(faults={'drone.fxns.affect_dof.ca.comps.lr': ['short']}, disturbances={})}, times=(5.6,), function='drone.fxns.affect_dof.ca.comps.lr', fault='short', rate=4.776739356178609e-07, name='drone_fxns_affect_dof_ca_comps_lr_short_t5p6', time=5.6, phase='move'),
SingleFaultScenario(sequence={7.6: Injection(faults={'drone.fxns.affect_dof.ca.comps.rf': ['ctlbreak']}, disturbances={})}, times=(7.6,), function='drone.fxns.affect_dof.ca.comps.rf', fault='ctlbreak', rate=6.230529595015577e-09, name='drone_fxns_affect_dof_ca_comps_rf_ctlbreak_t7p6', time=7.6, phase='move'),
SingleFaultScenario(sequence={3.7: Injection(faults={'drone.fxns.affect_dof.ca.comps.rf': ['ctlbreak']}, disturbances={})}, times=(3.7,), function='drone.fxns.affect_dof.ca.comps.rf', fault='ctlbreak', rate=1.0384215991692628e-06, name='drone_fxns_affect_dof_ca_comps_rf_ctlbreak_t3p7', time=3.7, phase='move'),
SingleFaultScenario(sequence={5.6: Injection(faults={'drone.fxns.affect_dof.ca.comps.rf': ['ctlbreak']}, disturbances={})}, times=(5.6,), function='drone.fxns.affect_dof.ca.comps.rf', fault='ctlbreak', rate=9.553478712357217e-07, name='drone_fxns_affect_dof_ca_comps_rf_ctlbreak_t5p6', time=5.6, phase='move'),
SingleFaultScenario(sequence={7.6: Injection(faults={'drone.fxns.affect_dof.ca.comps.rf': ['ctldn']}, disturbances={})}, times=(7.6,), function='drone.fxns.affect_dof.ca.comps.rf', fault='ctldn', rate=6.230529595015577e-09, name='drone_fxns_affect_dof_ca_comps_rf_ctldn_t7p6', time=7.6, phase='move'),
SingleFaultScenario(sequence={3.7: Injection(faults={'drone.fxns.affect_dof.ca.comps.rf': ['ctldn']}, disturbances={})}, times=(3.7,), function='drone.fxns.affect_dof.ca.comps.rf', fault='ctldn', rate=1.0384215991692628e-06, name='drone_fxns_affect_dof_ca_comps_rf_ctldn_t3p7', time=3.7, phase='move'),
SingleFaultScenario(sequence={5.6: Injection(faults={'drone.fxns.affect_dof.ca.comps.rf': ['ctldn']}, disturbances={})}, times=(5.6,), function='drone.fxns.affect_dof.ca.comps.rf', fault='ctldn', rate=9.553478712357217e-07, name='drone_fxns_affect_dof_ca_comps_rf_ctldn_t5p6', time=5.6, phase='move'),
SingleFaultScenario(sequence={7.6: Injection(faults={'drone.fxns.affect_dof.ca.comps.rf': ['ctlup']}, disturbances={})}, times=(7.6,), function='drone.fxns.affect_dof.ca.comps.rf', fault='ctlup', rate=6.230529595015577e-09, name='drone_fxns_affect_dof_ca_comps_rf_ctlup_t7p6', time=7.6, phase='move'),
SingleFaultScenario(sequence={3.7: Injection(faults={'drone.fxns.affect_dof.ca.comps.rf': ['ctlup']}, disturbances={})}, times=(3.7,), function='drone.fxns.affect_dof.ca.comps.rf', fault='ctlup', rate=1.0384215991692628e-06, name='drone_fxns_affect_dof_ca_comps_rf_ctlup_t3p7', time=3.7, phase='move'),
SingleFaultScenario(sequence={5.6: Injection(faults={'drone.fxns.affect_dof.ca.comps.rf': ['ctlup']}, disturbances={})}, times=(5.6,), function='drone.fxns.affect_dof.ca.comps.rf', fault='ctlup', rate=9.553478712357217e-07, name='drone_fxns_affect_dof_ca_comps_rf_ctlup_t5p6', time=5.6, phase='move'),
SingleFaultScenario(sequence={7.6: Injection(faults={'drone.fxns.affect_dof.ca.comps.rf': ['mechbreak']}, disturbances={})}, times=(7.6,), function='drone.fxns.affect_dof.ca.comps.rf', fault='mechbreak', rate=3.1152647975077885e-09, name='drone_fxns_affect_dof_ca_comps_rf_mechbreak_t7p6', time=7.6, phase='move'),
SingleFaultScenario(sequence={3.7: Injection(faults={'drone.fxns.affect_dof.ca.comps.rf': ['mechbreak']}, disturbances={})}, times=(3.7,), function='drone.fxns.affect_dof.ca.comps.rf', fault='mechbreak', rate=5.192107995846314e-07, name='drone_fxns_affect_dof_ca_comps_rf_mechbreak_t3p7', time=3.7, phase='move'),
SingleFaultScenario(sequence={5.6: Injection(faults={'drone.fxns.affect_dof.ca.comps.rf': ['mechbreak']}, disturbances={})}, times=(5.6,), function='drone.fxns.affect_dof.ca.comps.rf', fault='mechbreak', rate=4.776739356178609e-07, name='drone_fxns_affect_dof_ca_comps_rf_mechbreak_t5p6', time=5.6, phase='move'),
SingleFaultScenario(sequence={7.6: Injection(faults={'drone.fxns.affect_dof.ca.comps.rf': ['mechfriction']}, disturbances={})}, times=(7.6,), function='drone.fxns.affect_dof.ca.comps.rf', fault='mechfriction', rate=1.5576323987538942e-09, name='drone_fxns_affect_dof_ca_comps_rf_mechfriction_t7p6', time=7.6, phase='move'),
SingleFaultScenario(sequence={3.7: Injection(faults={'drone.fxns.affect_dof.ca.comps.rf': ['mechfriction']}, disturbances={})}, times=(3.7,), function='drone.fxns.affect_dof.ca.comps.rf', fault='mechfriction', rate=2.596053997923157e-07, name='drone_fxns_affect_dof_ca_comps_rf_mechfriction_t3p7', time=3.7, phase='move'),
SingleFaultScenario(sequence={5.6: Injection(faults={'drone.fxns.affect_dof.ca.comps.rf': ['mechfriction']}, disturbances={})}, times=(5.6,), function='drone.fxns.affect_dof.ca.comps.rf', fault='mechfriction', rate=2.3883696780893044e-07, name='drone_fxns_affect_dof_ca_comps_rf_mechfriction_t5p6', time=5.6, phase='move'),
SingleFaultScenario(sequence={7.6: Injection(faults={'drone.fxns.affect_dof.ca.comps.rf': ['openc']}, disturbances={})}, times=(7.6,), function='drone.fxns.affect_dof.ca.comps.rf', fault='openc', rate=3.1152647975077885e-09, name='drone_fxns_affect_dof_ca_comps_rf_openc_t7p6', time=7.6, phase='move'),
SingleFaultScenario(sequence={3.7: Injection(faults={'drone.fxns.affect_dof.ca.comps.rf': ['openc']}, disturbances={})}, times=(3.7,), function='drone.fxns.affect_dof.ca.comps.rf', fault='openc', rate=5.192107995846314e-07, name='drone_fxns_affect_dof_ca_comps_rf_openc_t3p7', time=3.7, phase='move'),
SingleFaultScenario(sequence={5.6: Injection(faults={'drone.fxns.affect_dof.ca.comps.rf': ['openc']}, disturbances={})}, times=(5.6,), function='drone.fxns.affect_dof.ca.comps.rf', fault='openc', rate=4.776739356178609e-07, name='drone_fxns_affect_dof_ca_comps_rf_openc_t5p6', time=5.6, phase='move'),
SingleFaultScenario(sequence={7.6: Injection(faults={'drone.fxns.affect_dof.ca.comps.rf': ['propbreak']}, disturbances={})}, times=(7.6,), function='drone.fxns.affect_dof.ca.comps.rf', fault='propbreak', rate=9.345794392523365e-10, name='drone_fxns_affect_dof_ca_comps_rf_propbreak_t7p6', time=7.6, phase='move'),
SingleFaultScenario(sequence={3.7: Injection(faults={'drone.fxns.affect_dof.ca.comps.rf': ['propbreak']}, disturbances={})}, times=(3.7,), function='drone.fxns.affect_dof.ca.comps.rf', fault='propbreak', rate=1.5576323987538942e-07, name='drone_fxns_affect_dof_ca_comps_rf_propbreak_t3p7', time=3.7, phase='move'),
SingleFaultScenario(sequence={5.6: Injection(faults={'drone.fxns.affect_dof.ca.comps.rf': ['propbreak']}, disturbances={})}, times=(5.6,), function='drone.fxns.affect_dof.ca.comps.rf', fault='propbreak', rate=1.4330218068535827e-07, name='drone_fxns_affect_dof_ca_comps_rf_propbreak_t5p6', time=5.6, phase='move'),
SingleFaultScenario(sequence={7.6: Injection(faults={'drone.fxns.affect_dof.ca.comps.rf': ['propstuck']}, disturbances={})}, times=(7.6,), function='drone.fxns.affect_dof.ca.comps.rf', fault='propstuck', rate=6.230529595015577e-10, name='drone_fxns_affect_dof_ca_comps_rf_propstuck_t7p6', time=7.6, phase='move'),
SingleFaultScenario(sequence={3.7: Injection(faults={'drone.fxns.affect_dof.ca.comps.rf': ['propstuck']}, disturbances={})}, times=(3.7,), function='drone.fxns.affect_dof.ca.comps.rf', fault='propstuck', rate=1.0384215991692627e-07, name='drone_fxns_affect_dof_ca_comps_rf_propstuck_t3p7', time=3.7, phase='move'),
SingleFaultScenario(sequence={5.6: Injection(faults={'drone.fxns.affect_dof.ca.comps.rf': ['propstuck']}, disturbances={})}, times=(5.6,), function='drone.fxns.affect_dof.ca.comps.rf', fault='propstuck', rate=9.553478712357218e-08, name='drone_fxns_affect_dof_ca_comps_rf_propstuck_t5p6', time=5.6, phase='move'),
SingleFaultScenario(sequence={7.6: Injection(faults={'drone.fxns.affect_dof.ca.comps.rf': ['propwarp']}, disturbances={})}, times=(7.6,), function='drone.fxns.affect_dof.ca.comps.rf', fault='propwarp', rate=3.1152647975077885e-10, name='drone_fxns_affect_dof_ca_comps_rf_propwarp_t7p6', time=7.6, phase='move'),
SingleFaultScenario(sequence={3.7: Injection(faults={'drone.fxns.affect_dof.ca.comps.rf': ['propwarp']}, disturbances={})}, times=(3.7,), function='drone.fxns.affect_dof.ca.comps.rf', fault='propwarp', rate=5.1921079958463137e-08, name='drone_fxns_affect_dof_ca_comps_rf_propwarp_t3p7', time=3.7, phase='move'),
SingleFaultScenario(sequence={5.6: Injection(faults={'drone.fxns.affect_dof.ca.comps.rf': ['propwarp']}, disturbances={})}, times=(5.6,), function='drone.fxns.affect_dof.ca.comps.rf', fault='propwarp', rate=4.776739356178609e-08, name='drone_fxns_affect_dof_ca_comps_rf_propwarp_t5p6', time=5.6, phase='move'),
SingleFaultScenario(sequence={7.6: Injection(faults={'drone.fxns.affect_dof.ca.comps.rf': ['short']}, disturbances={})}, times=(7.6,), function='drone.fxns.affect_dof.ca.comps.rf', fault='short', rate=3.1152647975077885e-09, name='drone_fxns_affect_dof_ca_comps_rf_short_t7p6', time=7.6, phase='move'),
SingleFaultScenario(sequence={3.7: Injection(faults={'drone.fxns.affect_dof.ca.comps.rf': ['short']}, disturbances={})}, times=(3.7,), function='drone.fxns.affect_dof.ca.comps.rf', fault='short', rate=5.192107995846314e-07, name='drone_fxns_affect_dof_ca_comps_rf_short_t3p7', time=3.7, phase='move'),
SingleFaultScenario(sequence={5.6: Injection(faults={'drone.fxns.affect_dof.ca.comps.rf': ['short']}, disturbances={})}, times=(5.6,), function='drone.fxns.affect_dof.ca.comps.rf', fault='short', rate=4.776739356178609e-07, name='drone_fxns_affect_dof_ca_comps_rf_short_t5p6', time=5.6, phase='move'),
SingleFaultScenario(sequence={7.6: Injection(faults={'drone.fxns.affect_dof.ca.comps.rr': ['ctlbreak']}, disturbances={})}, times=(7.6,), function='drone.fxns.affect_dof.ca.comps.rr', fault='ctlbreak', rate=6.230529595015577e-09, name='drone_fxns_affect_dof_ca_comps_rr_ctlbreak_t7p6', time=7.6, phase='move'),
SingleFaultScenario(sequence={3.7: Injection(faults={'drone.fxns.affect_dof.ca.comps.rr': ['ctlbreak']}, disturbances={})}, times=(3.7,), function='drone.fxns.affect_dof.ca.comps.rr', fault='ctlbreak', rate=1.0384215991692628e-06, name='drone_fxns_affect_dof_ca_comps_rr_ctlbreak_t3p7', time=3.7, phase='move'),
SingleFaultScenario(sequence={5.6: Injection(faults={'drone.fxns.affect_dof.ca.comps.rr': ['ctlbreak']}, disturbances={})}, times=(5.6,), function='drone.fxns.affect_dof.ca.comps.rr', fault='ctlbreak', rate=9.553478712357217e-07, name='drone_fxns_affect_dof_ca_comps_rr_ctlbreak_t5p6', time=5.6, phase='move'),
SingleFaultScenario(sequence={7.6: Injection(faults={'drone.fxns.affect_dof.ca.comps.rr': ['ctldn']}, disturbances={})}, times=(7.6,), function='drone.fxns.affect_dof.ca.comps.rr', fault='ctldn', rate=6.230529595015577e-09, name='drone_fxns_affect_dof_ca_comps_rr_ctldn_t7p6', time=7.6, phase='move'),
SingleFaultScenario(sequence={3.7: Injection(faults={'drone.fxns.affect_dof.ca.comps.rr': ['ctldn']}, disturbances={})}, times=(3.7,), function='drone.fxns.affect_dof.ca.comps.rr', fault='ctldn', rate=1.0384215991692628e-06, name='drone_fxns_affect_dof_ca_comps_rr_ctldn_t3p7', time=3.7, phase='move'),
SingleFaultScenario(sequence={5.6: Injection(faults={'drone.fxns.affect_dof.ca.comps.rr': ['ctldn']}, disturbances={})}, times=(5.6,), function='drone.fxns.affect_dof.ca.comps.rr', fault='ctldn', rate=9.553478712357217e-07, name='drone_fxns_affect_dof_ca_comps_rr_ctldn_t5p6', time=5.6, phase='move'),
SingleFaultScenario(sequence={7.6: Injection(faults={'drone.fxns.affect_dof.ca.comps.rr': ['ctlup']}, disturbances={})}, times=(7.6,), function='drone.fxns.affect_dof.ca.comps.rr', fault='ctlup', rate=6.230529595015577e-09, name='drone_fxns_affect_dof_ca_comps_rr_ctlup_t7p6', time=7.6, phase='move'),
SingleFaultScenario(sequence={3.7: Injection(faults={'drone.fxns.affect_dof.ca.comps.rr': ['ctlup']}, disturbances={})}, times=(3.7,), function='drone.fxns.affect_dof.ca.comps.rr', fault='ctlup', rate=1.0384215991692628e-06, name='drone_fxns_affect_dof_ca_comps_rr_ctlup_t3p7', time=3.7, phase='move'),
SingleFaultScenario(sequence={5.6: Injection(faults={'drone.fxns.affect_dof.ca.comps.rr': ['ctlup']}, disturbances={})}, times=(5.6,), function='drone.fxns.affect_dof.ca.comps.rr', fault='ctlup', rate=9.553478712357217e-07, name='drone_fxns_affect_dof_ca_comps_rr_ctlup_t5p6', time=5.6, phase='move'),
SingleFaultScenario(sequence={7.6: Injection(faults={'drone.fxns.affect_dof.ca.comps.rr': ['mechbreak']}, disturbances={})}, times=(7.6,), function='drone.fxns.affect_dof.ca.comps.rr', fault='mechbreak', rate=3.1152647975077885e-09, name='drone_fxns_affect_dof_ca_comps_rr_mechbreak_t7p6', time=7.6, phase='move'),
SingleFaultScenario(sequence={3.7: Injection(faults={'drone.fxns.affect_dof.ca.comps.rr': ['mechbreak']}, disturbances={})}, times=(3.7,), function='drone.fxns.affect_dof.ca.comps.rr', fault='mechbreak', rate=5.192107995846314e-07, name='drone_fxns_affect_dof_ca_comps_rr_mechbreak_t3p7', time=3.7, phase='move'),
SingleFaultScenario(sequence={5.6: Injection(faults={'drone.fxns.affect_dof.ca.comps.rr': ['mechbreak']}, disturbances={})}, times=(5.6,), function='drone.fxns.affect_dof.ca.comps.rr', fault='mechbreak', rate=4.776739356178609e-07, name='drone_fxns_affect_dof_ca_comps_rr_mechbreak_t5p6', time=5.6, phase='move'),
SingleFaultScenario(sequence={7.6: Injection(faults={'drone.fxns.affect_dof.ca.comps.rr': ['mechfriction']}, disturbances={})}, times=(7.6,), function='drone.fxns.affect_dof.ca.comps.rr', fault='mechfriction', rate=1.5576323987538942e-09, name='drone_fxns_affect_dof_ca_comps_rr_mechfriction_t7p6', time=7.6, phase='move'),
SingleFaultScenario(sequence={3.7: Injection(faults={'drone.fxns.affect_dof.ca.comps.rr': ['mechfriction']}, disturbances={})}, times=(3.7,), function='drone.fxns.affect_dof.ca.comps.rr', fault='mechfriction', rate=2.596053997923157e-07, name='drone_fxns_affect_dof_ca_comps_rr_mechfriction_t3p7', time=3.7, phase='move'),
SingleFaultScenario(sequence={5.6: Injection(faults={'drone.fxns.affect_dof.ca.comps.rr': ['mechfriction']}, disturbances={})}, times=(5.6,), function='drone.fxns.affect_dof.ca.comps.rr', fault='mechfriction', rate=2.3883696780893044e-07, name='drone_fxns_affect_dof_ca_comps_rr_mechfriction_t5p6', time=5.6, phase='move'),
SingleFaultScenario(sequence={7.6: Injection(faults={'drone.fxns.affect_dof.ca.comps.rr': ['openc']}, disturbances={})}, times=(7.6,), function='drone.fxns.affect_dof.ca.comps.rr', fault='openc', rate=3.1152647975077885e-09, name='drone_fxns_affect_dof_ca_comps_rr_openc_t7p6', time=7.6, phase='move'),
SingleFaultScenario(sequence={3.7: Injection(faults={'drone.fxns.affect_dof.ca.comps.rr': ['openc']}, disturbances={})}, times=(3.7,), function='drone.fxns.affect_dof.ca.comps.rr', fault='openc', rate=5.192107995846314e-07, name='drone_fxns_affect_dof_ca_comps_rr_openc_t3p7', time=3.7, phase='move'),
SingleFaultScenario(sequence={5.6: Injection(faults={'drone.fxns.affect_dof.ca.comps.rr': ['openc']}, disturbances={})}, times=(5.6,), function='drone.fxns.affect_dof.ca.comps.rr', fault='openc', rate=4.776739356178609e-07, name='drone_fxns_affect_dof_ca_comps_rr_openc_t5p6', time=5.6, phase='move'),
SingleFaultScenario(sequence={7.6: Injection(faults={'drone.fxns.affect_dof.ca.comps.rr': ['propbreak']}, disturbances={})}, times=(7.6,), function='drone.fxns.affect_dof.ca.comps.rr', fault='propbreak', rate=9.345794392523365e-10, name='drone_fxns_affect_dof_ca_comps_rr_propbreak_t7p6', time=7.6, phase='move'),
SingleFaultScenario(sequence={3.7: Injection(faults={'drone.fxns.affect_dof.ca.comps.rr': ['propbreak']}, disturbances={})}, times=(3.7,), function='drone.fxns.affect_dof.ca.comps.rr', fault='propbreak', rate=1.5576323987538942e-07, name='drone_fxns_affect_dof_ca_comps_rr_propbreak_t3p7', time=3.7, phase='move'),
SingleFaultScenario(sequence={5.6: Injection(faults={'drone.fxns.affect_dof.ca.comps.rr': ['propbreak']}, disturbances={})}, times=(5.6,), function='drone.fxns.affect_dof.ca.comps.rr', fault='propbreak', rate=1.4330218068535827e-07, name='drone_fxns_affect_dof_ca_comps_rr_propbreak_t5p6', time=5.6, phase='move'),
SingleFaultScenario(sequence={7.6: Injection(faults={'drone.fxns.affect_dof.ca.comps.rr': ['propstuck']}, disturbances={})}, times=(7.6,), function='drone.fxns.affect_dof.ca.comps.rr', fault='propstuck', rate=6.230529595015577e-10, name='drone_fxns_affect_dof_ca_comps_rr_propstuck_t7p6', time=7.6, phase='move'),
SingleFaultScenario(sequence={3.7: Injection(faults={'drone.fxns.affect_dof.ca.comps.rr': ['propstuck']}, disturbances={})}, times=(3.7,), function='drone.fxns.affect_dof.ca.comps.rr', fault='propstuck', rate=1.0384215991692627e-07, name='drone_fxns_affect_dof_ca_comps_rr_propstuck_t3p7', time=3.7, phase='move'),
SingleFaultScenario(sequence={5.6: Injection(faults={'drone.fxns.affect_dof.ca.comps.rr': ['propstuck']}, disturbances={})}, times=(5.6,), function='drone.fxns.affect_dof.ca.comps.rr', fault='propstuck', rate=9.553478712357218e-08, name='drone_fxns_affect_dof_ca_comps_rr_propstuck_t5p6', time=5.6, phase='move'),
SingleFaultScenario(sequence={7.6: Injection(faults={'drone.fxns.affect_dof.ca.comps.rr': ['propwarp']}, disturbances={})}, times=(7.6,), function='drone.fxns.affect_dof.ca.comps.rr', fault='propwarp', rate=3.1152647975077885e-10, name='drone_fxns_affect_dof_ca_comps_rr_propwarp_t7p6', time=7.6, phase='move'),
SingleFaultScenario(sequence={3.7: Injection(faults={'drone.fxns.affect_dof.ca.comps.rr': ['propwarp']}, disturbances={})}, times=(3.7,), function='drone.fxns.affect_dof.ca.comps.rr', fault='propwarp', rate=5.1921079958463137e-08, name='drone_fxns_affect_dof_ca_comps_rr_propwarp_t3p7', time=3.7, phase='move'),
SingleFaultScenario(sequence={5.6: Injection(faults={'drone.fxns.affect_dof.ca.comps.rr': ['propwarp']}, disturbances={})}, times=(5.6,), function='drone.fxns.affect_dof.ca.comps.rr', fault='propwarp', rate=4.776739356178609e-08, name='drone_fxns_affect_dof_ca_comps_rr_propwarp_t5p6', time=5.6, phase='move'),
SingleFaultScenario(sequence={7.6: Injection(faults={'drone.fxns.affect_dof.ca.comps.rr': ['short']}, disturbances={})}, times=(7.6,), function='drone.fxns.affect_dof.ca.comps.rr', fault='short', rate=3.1152647975077885e-09, name='drone_fxns_affect_dof_ca_comps_rr_short_t7p6', time=7.6, phase='move'),
SingleFaultScenario(sequence={3.7: Injection(faults={'drone.fxns.affect_dof.ca.comps.rr': ['short']}, disturbances={})}, times=(3.7,), function='drone.fxns.affect_dof.ca.comps.rr', fault='short', rate=5.192107995846314e-07, name='drone_fxns_affect_dof_ca_comps_rr_short_t3p7', time=3.7, phase='move'),
SingleFaultScenario(sequence={5.6: Injection(faults={'drone.fxns.affect_dof.ca.comps.rr': ['short']}, disturbances={})}, times=(5.6,), function='drone.fxns.affect_dof.ca.comps.rr', fault='short', rate=4.776739356178609e-07, name='drone_fxns_affect_dof_ca_comps_rr_short_t5p6', time=5.6, phase='move'),
SingleFaultScenario(sequence={7.6: Injection(faults={'drone.fxns.ctl_dof': ['degctl']}, disturbances={})}, times=(7.6,), function='drone.fxns.ctl_dof', fault='degctl', rate=7.476635514018692e-09, name='drone_fxns_ctl_dof_degctl_t7p6', time=7.6, phase='move'),
SingleFaultScenario(sequence={3.7: Injection(faults={'drone.fxns.ctl_dof': ['degctl']}, disturbances={})}, times=(3.7,), function='drone.fxns.ctl_dof', fault='degctl', rate=1.2461059190031154e-06, name='drone_fxns_ctl_dof_degctl_t3p7', time=3.7, phase='move'),
SingleFaultScenario(sequence={5.6: Injection(faults={'drone.fxns.ctl_dof': ['degctl']}, disturbances={})}, times=(5.6,), function='drone.fxns.ctl_dof', fault='degctl', rate=1.1464174454828662e-06, name='drone_fxns_ctl_dof_degctl_t5p6', time=5.6, phase='move'),
SingleFaultScenario(sequence={7.6: Injection(faults={'drone.fxns.ctl_dof': ['noctl']}, disturbances={})}, times=(7.6,), function='drone.fxns.ctl_dof', fault='noctl', rate=1.869158878504673e-09, name='drone_fxns_ctl_dof_noctl_t7p6', time=7.6, phase='move'),
SingleFaultScenario(sequence={3.7: Injection(faults={'drone.fxns.ctl_dof': ['noctl']}, disturbances={})}, times=(3.7,), function='drone.fxns.ctl_dof', fault='noctl', rate=3.1152647975077885e-07, name='drone_fxns_ctl_dof_noctl_t3p7', time=3.7, phase='move'),
SingleFaultScenario(sequence={5.6: Injection(faults={'drone.fxns.ctl_dof': ['noctl']}, disturbances={})}, times=(5.6,), function='drone.fxns.ctl_dof', fault='noctl', rate=2.8660436137071655e-07, name='drone_fxns_ctl_dof_noctl_t5p6', time=5.6, phase='move'),
SingleFaultScenario(sequence={7.6: Injection(faults={'drone.fxns.plan_path': ['degloc']}, disturbances={})}, times=(7.6,), function='drone.fxns.plan_path', fault='degloc', rate=7.476635514018692e-09, name='drone_fxns_plan_path_degloc_t7p6', time=7.6, phase='move'),
SingleFaultScenario(sequence={3.7: Injection(faults={'drone.fxns.plan_path': ['degloc']}, disturbances={})}, times=(3.7,), function='drone.fxns.plan_path', fault='degloc', rate=1.2461059190031154e-06, name='drone_fxns_plan_path_degloc_t3p7', time=3.7, phase='move'),
SingleFaultScenario(sequence={5.6: Injection(faults={'drone.fxns.plan_path': ['degloc']}, disturbances={})}, times=(5.6,), function='drone.fxns.plan_path', fault='degloc', rate=1.1464174454828662e-06, name='drone_fxns_plan_path_degloc_t5p6', time=5.6, phase='move'),
SingleFaultScenario(sequence={7.6: Injection(faults={'drone.fxns.plan_path': ['noloc']}, disturbances={})}, times=(7.6,), function='drone.fxns.plan_path', fault='noloc', rate=1.869158878504673e-09, name='drone_fxns_plan_path_noloc_t7p6', time=7.6, phase='move'),
SingleFaultScenario(sequence={3.7: Injection(faults={'drone.fxns.plan_path': ['noloc']}, disturbances={})}, times=(3.7,), function='drone.fxns.plan_path', fault='noloc', rate=3.1152647975077885e-07, name='drone_fxns_plan_path_noloc_t3p7', time=3.7, phase='move'),
SingleFaultScenario(sequence={5.6: Injection(faults={'drone.fxns.plan_path': ['noloc']}, disturbances={})}, times=(5.6,), function='drone.fxns.plan_path', fault='noloc', rate=2.8660436137071655e-07, name='drone_fxns_plan_path_noloc_t5p6', time=5.6, phase='move'),
SingleFaultScenario(sequence={7.6: Injection(faults={'drone.fxns.plan_path.ca.comps.vision': ['lack_of_detection']}, disturbances={})}, times=(7.6,), function='drone.fxns.plan_path.ca.comps.vision', fault='lack_of_detection', rate=0.00018691588785046725, name='drone_fxns_plan_path_ca_comps_vision_lack_of_detection_t7p6', time=7.6, phase='move'),
SingleFaultScenario(sequence={3.7: Injection(faults={'drone.fxns.plan_path.ca.comps.vision': ['lack_of_detection']}, disturbances={})}, times=(3.7,), function='drone.fxns.plan_path.ca.comps.vision', fault='lack_of_detection', rate=0.031152647975077875, name='drone_fxns_plan_path_ca_comps_vision_lack_of_detection_t3p7', time=3.7, phase='move'),
SingleFaultScenario(sequence={5.6: Injection(faults={'drone.fxns.plan_path.ca.comps.vision': ['lack_of_detection']}, disturbances={})}, times=(5.6,), function='drone.fxns.plan_path.ca.comps.vision', fault='lack_of_detection', rate=0.028660436137071643, name='drone_fxns_plan_path_ca_comps_vision_lack_of_detection_t5p6', time=5.6, phase='move'),
SingleFaultScenario(sequence={7.6: Injection(faults={'drone.fxns.plan_path.ca.comps.vision': ['undesired_detection']}, disturbances={})}, times=(7.6,), function='drone.fxns.plan_path.ca.comps.vision', fault='undesired_detection', rate=0.00018691588785046725, name='drone_fxns_plan_path_ca_comps_vision_undesired_detection_t7p6', time=7.6, phase='move'),
SingleFaultScenario(sequence={3.7: Injection(faults={'drone.fxns.plan_path.ca.comps.vision': ['undesired_detection']}, disturbances={})}, times=(3.7,), function='drone.fxns.plan_path.ca.comps.vision', fault='undesired_detection', rate=0.031152647975077875, name='drone_fxns_plan_path_ca_comps_vision_undesired_detection_t3p7', time=3.7, phase='move'),
SingleFaultScenario(sequence={5.6: Injection(faults={'drone.fxns.plan_path.ca.comps.vision': ['undesired_detection']}, disturbances={})}, times=(5.6,), function='drone.fxns.plan_path.ca.comps.vision', fault='undesired_detection', rate=0.028660436137071643, name='drone_fxns_plan_path_ca_comps_vision_undesired_detection_t5p6', time=5.6, phase='move'),
SingleFaultScenario(sequence={7.6: Injection(faults={'drone.fxns.hold_payload': ['break']}, disturbances={})}, times=(7.6,), function='drone.fxns.hold_payload', fault='break', rate=2.2429906542056067e-11, name='drone_fxns_hold_payload_break_t7p6', time=7.6, phase='move'),
SingleFaultScenario(sequence={3.7: Injection(faults={'drone.fxns.hold_payload': ['break']}, disturbances={})}, times=(3.7,), function='drone.fxns.hold_payload', fault='break', rate=3.7383177570093445e-09, name='drone_fxns_hold_payload_break_t3p7', time=3.7, phase='move'),
SingleFaultScenario(sequence={5.6: Injection(faults={'drone.fxns.hold_payload': ['break']}, disturbances={})}, times=(5.6,), function='drone.fxns.hold_payload', fault='break', rate=3.439252336448597e-09, name='drone_fxns_hold_payload_break_t5p6', time=5.6, phase='move'),
SingleFaultScenario(sequence={7.6: Injection(faults={'drone.fxns.hold_payload': ['deform']}, disturbances={})}, times=(7.6,), function='drone.fxns.hold_payload', fault='deform', rate=8.971962616822427e-11, name='drone_fxns_hold_payload_deform_t7p6', time=7.6, phase='move'),
SingleFaultScenario(sequence={3.7: Injection(faults={'drone.fxns.hold_payload': ['deform']}, disturbances={})}, times=(3.7,), function='drone.fxns.hold_payload', fault='deform', rate=1.4953271028037378e-08, name='drone_fxns_hold_payload_deform_t3p7', time=3.7, phase='move'),
SingleFaultScenario(sequence={5.6: Injection(faults={'drone.fxns.hold_payload': ['deform']}, disturbances={})}, times=(5.6,), function='drone.fxns.hold_payload', fault='deform', rate=1.3757009345794388e-08, name='drone_fxns_hold_payload_deform_t5p6', time=5.6, phase='move')]
endresults, hists = propagate.fault_sample(mdl, fs, staged=False)
SCENARIOS COMPLETE: 100%|██████████| 177/177 [02:49<00:00, 1.04it/s]
plot_env_with_traj_z(hists , mdl)
(<Figure size 400x400 with 1 Axes>,
<Axes3D: title={'center': 'trajectory'}, xlabel='x', ylabel='y', zlabel='z'>)

statsfmea = tabulate.FMEA(endresults, fs,
average_metric=['rate', 'unsafe_flight_time', 'cost', 'repcost',
'landcost', 'body_strikes',
'head_strikes', 'property_restrictions'],
rates='rate')
fmeatab = statsfmea.as_table(sort_by="cost")
fmeatab
average_rate | average_unsafe_flight_time | average_cost | average_repcost | average_landcost | average_body_strikes | average_head_strikes | average_property_restrictions | ||
---|---|---|---|---|---|---|---|---|---|
drone.fxns.plan_path.ca.comps.vision | lack_of_detection | 2.000000e-02 | 244.666667 | 24466.666667 | 0.000000 | 0.000000 | 0.0000 | 0.000000 | 0.000000 |
undesired_detection | 2.000000e-02 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.0000 | 0.000000 | 0.000000 | |
drone.fxns.store_ee | lowcharge | 4.666667e-06 | 244.666667 | 25966.666667 | 1500.000000 | 0.000000 | 0.0000 | 0.000000 | 0.000000 |
drone.fxns.dist_ee | degr | 1.666667e-06 | 244.666667 | 30733.333333 | 1333.333333 | 3333.333333 | 0.0001 | 0.000067 | 0.333333 |
drone.fxns.store_ee | nocharge | 1.333333e-06 | 244.666667 | 29966.666667 | 566.666667 | 3333.333333 | 0.0001 | 0.000067 | 0.333333 |
drone.fxns.dist_ee | short | 1.000000e-06 | 244.666667 | 30900.000000 | 1500.000000 | 3333.333333 | 0.0001 | 0.000067 | 0.333333 |
drone.fxns.plan_path | degloc | 8.000000e-07 | 244.666667 | 25466.666667 | 1000.000000 | 0.000000 | 0.0000 | 0.000000 | 0.000000 |
drone.fxns.ctl_dof | degctl | 8.000000e-07 | 244.666667 | 25633.333333 | 1166.666667 | 0.000000 | 0.0000 | 0.000000 | 0.000000 |
drone.fxns.affect_dof.ca.comps.lf | ctldn | 6.666667e-07 | 244.666667 | 30300.000000 | 900.000000 | 3333.333333 | 0.0001 | 0.000067 | 0.333333 |
ctlbreak | 6.666667e-07 | 244.666667 | 30633.333333 | 1233.333333 | 3333.333333 | 0.0001 | 0.000067 | 0.333333 | |
drone.fxns.affect_dof.ca.comps.rr | ctlup | 6.666667e-07 | 244.666667 | 30300.000000 | 900.000000 | 3333.333333 | 0.0001 | 0.000067 | 0.333333 |
drone.fxns.dist_ee | break | 6.666667e-07 | 244.666667 | 30900.000000 | 1500.000000 | 3333.333333 | 0.0001 | 0.000067 | 0.333333 |
drone.fxns.affect_dof.ca.comps.rf | ctldn | 6.666667e-07 | 244.666667 | 30300.000000 | 900.000000 | 3333.333333 | 0.0001 | 0.000067 | 0.333333 |
drone.fxns.affect_dof.ca.comps.rr | ctlbreak | 6.666667e-07 | 244.666667 | 30633.333333 | 1233.333333 | 3333.333333 | 0.0001 | 0.000067 | 0.333333 |
drone.fxns.affect_dof.ca.comps.rf | ctlbreak | 6.666667e-07 | 244.666667 | 30633.333333 | 1233.333333 | 3333.333333 | 0.0001 | 0.000067 | 0.333333 |
drone.fxns.affect_dof.ca.comps.lf | ctlup | 6.666667e-07 | 244.666667 | 30300.000000 | 900.000000 | 3333.333333 | 0.0001 | 0.000067 | 0.333333 |
drone.fxns.affect_dof.ca.comps.rf | ctlup | 6.666667e-07 | 244.666667 | 30300.000000 | 900.000000 | 3333.333333 | 0.0001 | 0.000067 | 0.333333 |
drone.fxns.affect_dof.ca.comps.lr | ctlbreak | 6.666667e-07 | 244.666667 | 30633.333333 | 1233.333333 | 3333.333333 | 0.0001 | 0.000067 | 0.333333 |
ctldn | 6.666667e-07 | 244.666667 | 30300.000000 | 900.000000 | 3333.333333 | 0.0001 | 0.000067 | 0.333333 | |
drone.fxns.affect_dof.ca.comps.rr | ctldn | 6.666667e-07 | 244.666667 | 30300.000000 | 900.000000 | 3333.333333 | 0.0001 | 0.000067 | 0.333333 |
drone.fxns.affect_dof.ca.comps.lr | ctlup | 6.666667e-07 | 244.666667 | 30300.000000 | 900.000000 | 3333.333333 | 0.0001 | 0.000067 | 0.333333 |
drone.fxns.store_ee.ca.comps.s1p1 | nocharge | 4.800000e-07 | 244.666667 | 24566.666667 | 100.000000 | 0.000000 | 0.0000 | 0.000000 | 0.000000 |
drone.fxns.affect_dof.ca.comps.lr | mechbreak | 3.333333e-07 | 244.666667 | 30300.000000 | 900.000000 | 3333.333333 | 0.0001 | 0.000067 | 0.333333 |
openc | 3.333333e-07 | 244.666667 | 30100.000000 | 700.000000 | 3333.333333 | 0.0001 | 0.000067 | 0.333333 | |
drone.fxns.affect_dof.ca.comps.rf | openc | 3.333333e-07 | 244.666667 | 30100.000000 | 700.000000 | 3333.333333 | 0.0001 | 0.000067 | 0.333333 |
mechbreak | 3.333333e-07 | 244.666667 | 30300.000000 | 900.000000 | 3333.333333 | 0.0001 | 0.000067 | 0.333333 | |
drone.fxns.affect_dof.ca.comps.rr | mechbreak | 3.333333e-07 | 244.666667 | 30300.000000 | 900.000000 | 3333.333333 | 0.0001 | 0.000067 | 0.333333 |
openc | 3.333333e-07 | 244.666667 | 30100.000000 | 700.000000 | 3333.333333 | 0.0001 | 0.000067 | 0.333333 | |
short | 3.333333e-07 | 244.666667 | 30100.000000 | 700.000000 | 3333.333333 | 0.0001 | 0.000067 | 0.333333 | |
drone.fxns.affect_dof.ca.comps.lf | mechbreak | 3.333333e-07 | 244.666667 | 30300.000000 | 900.000000 | 3333.333333 | 0.0001 | 0.000067 | 0.333333 |
drone.fxns.affect_dof.ca.comps.lr | short | 3.333333e-07 | 244.666667 | 30100.000000 | 700.000000 | 3333.333333 | 0.0001 | 0.000067 | 0.333333 |
drone.fxns.affect_dof.ca.comps.lf | openc | 3.333333e-07 | 244.666667 | 30100.000000 | 700.000000 | 3333.333333 | 0.0001 | 0.000067 | 0.333333 |
short | 3.333333e-07 | 244.666667 | 30100.000000 | 700.000000 | 3333.333333 | 0.0001 | 0.000067 | 0.333333 | |
drone.fxns.affect_dof.ca.comps.rf | short | 3.333333e-07 | 244.666667 | 30100.000000 | 700.000000 | 3333.333333 | 0.0001 | 0.000067 | 0.333333 |
drone.fxns.store_ee.ca.comps.s1p1 | lowcharge | 3.200000e-07 | 244.666667 | 24566.666667 | 100.000000 | 0.000000 | 0.0000 | 0.000000 | 0.000000 |
degr | 2.400000e-07 | 244.666667 | 30433.333333 | 1033.333333 | 3333.333333 | 0.0001 | 0.000067 | 0.333333 | |
break | 2.400000e-07 | 244.666667 | 29966.666667 | 566.666667 | 3333.333333 | 0.0001 | 0.000067 | 0.333333 | |
short | 2.400000e-07 | 244.666667 | 29966.666667 | 566.666667 | 3333.333333 | 0.0001 | 0.000067 | 0.333333 | |
drone.fxns.plan_path | noloc | 2.000000e-07 | 244.666667 | 25466.666667 | 1000.000000 | 0.000000 | 0.0000 | 0.000000 | 0.000000 |
drone.fxns.ctl_dof | noctl | 2.000000e-07 | 244.666667 | 30566.666667 | 1166.666667 | 3333.333333 | 0.0001 | 0.000067 | 0.333333 |
drone.fxns.affect_dof.ca.comps.lf | mechfriction | 1.666667e-07 | 244.666667 | 30300.000000 | 900.000000 | 3333.333333 | 0.0001 | 0.000067 | 0.333333 |
drone.fxns.affect_dof.ca.comps.rf | mechfriction | 1.666667e-07 | 244.666667 | 30300.000000 | 900.000000 | 3333.333333 | 0.0001 | 0.000067 | 0.333333 |
drone.fxns.affect_dof.ca.comps.lr | mechfriction | 1.666667e-07 | 244.666667 | 30300.000000 | 900.000000 | 3333.333333 | 0.0001 | 0.000067 | 0.333333 |
drone.fxns.affect_dof.ca.comps.rr | mechfriction | 1.666667e-07 | 244.666667 | 30300.000000 | 900.000000 | 3333.333333 | 0.0001 | 0.000067 | 0.333333 |
drone.fxns.affect_dof.ca.comps.lr | propbreak | 1.000000e-07 | 244.666667 | 30100.000000 | 700.000000 | 3333.333333 | 0.0001 | 0.000067 | 0.333333 |
drone.fxns.affect_dof.ca.comps.rr | propbreak | 1.000000e-07 | 244.666667 | 30100.000000 | 700.000000 | 3333.333333 | 0.0001 | 0.000067 | 0.333333 |
drone.fxns.affect_dof.ca.comps.rf | propbreak | 1.000000e-07 | 244.666667 | 30100.000000 | 700.000000 | 3333.333333 | 0.0001 | 0.000067 | 0.333333 |
drone.fxns.affect_dof.ca.comps.lf | propbreak | 1.000000e-07 | 244.666667 | 30100.000000 | 700.000000 | 3333.333333 | 0.0001 | 0.000067 | 0.333333 |
drone.fxns.affect_dof.ca.comps.rf | propstuck | 6.666667e-08 | 244.666667 | 30100.000000 | 700.000000 | 3333.333333 | 0.0001 | 0.000067 | 0.333333 |
drone.fxns.affect_dof.ca.comps.lr | propstuck | 6.666667e-08 | 244.666667 | 30100.000000 | 700.000000 | 3333.333333 | 0.0001 | 0.000067 | 0.333333 |
drone.fxns.affect_dof.ca.comps.rr | propstuck | 6.666667e-08 | 244.666667 | 30100.000000 | 700.000000 | 3333.333333 | 0.0001 | 0.000067 | 0.333333 |
drone.fxns.affect_dof.ca.comps.lf | propstuck | 6.666667e-08 | 244.666667 | 30100.000000 | 700.000000 | 3333.333333 | 0.0001 | 0.000067 | 0.333333 |
drone.fxns.affect_dof.ca.comps.rf | propwarp | 3.333333e-08 | 244.666667 | 30100.000000 | 700.000000 | 3333.333333 | 0.0001 | 0.000067 | 0.333333 |
drone.fxns.affect_dof.ca.comps.rr | propwarp | 3.333333e-08 | 244.666667 | 30100.000000 | 700.000000 | 3333.333333 | 0.0001 | 0.000067 | 0.333333 |
drone.fxns.affect_dof.ca.comps.lf | propwarp | 3.333333e-08 | 244.666667 | 30100.000000 | 700.000000 | 3333.333333 | 0.0001 | 0.000067 | 0.333333 |
drone.fxns.affect_dof.ca.comps.lr | propwarp | 3.333333e-08 | 244.666667 | 30100.000000 | 700.000000 | 3333.333333 | 0.0001 | 0.000067 | 0.333333 |
drone.fxns.hold_payload | deform | 9.600000e-09 | 244.666667 | 30900.000000 | 1500.000000 | 3333.333333 | 0.0001 | 0.000067 | 0.333333 |
drone.fxns.manage_health | lostfunction | 5.000000e-09 | 244.666667 | 25466.666667 | 1000.000000 | 0.000000 | 0.0000 | 0.000000 | 0.000000 |
drone.fxns.hold_payload | break | 2.400000e-09 | 244.666667 | 30900.000000 | 1500.000000 | 3333.333333 | 0.0001 | 0.000067 | 0.333333 |
mdl.flows['environment'].c.in_area(200, 200, "all_safe")
False