Commit 3093195d authored by jean-marie.gauthier's avatar jean-marie.gauthier

Add AltaRica Model for AIDA

parent 0cdc469f
This source diff could not be displayed because it is too large. You can view the blob instead.
<!DOCTYPE AltaRicaWizard>
<project name="AIDA_AltaRica3_Project">
<file path="AIDASystem_andEnv.gts" name="AIDASystem_andEnv.gts"/>
<file path="AIDA_AltaRica3_Project.opsa" name="AIDA_AltaRica3_Project.opsa"/>
<file path="AIDA_library.alt" name="AIDA_library.alt"/>
<file path="AIDA_model.alt" name="AIDA_model.alt"/>
</project>
This source diff could not be displayed because it is too large. You can view the blob instead.
<?xml version="1.0" ?>
<!DOCTYPE xfta>
<xfta>
<load>
<model input="AIDA_AltaRica3_Project.opsa"/>
</load>
<build>
<minimal-cutsets handle="MCS" top-event="obs_FC1_deterministe_true" mission-time="1"/>
</build>
<print>
<minimal-cutsets handle="MCS" mode="write" top-event="obs_FC1_deterministe_true" mission-time="1" output="resultat_xfta_fc1.csv">
<option name="print-minimal-cutset-rank" value="on"/>
<option name="print-minimal-cutset-order" value="on"/>
<option name="print-minimal-cutset-probability" value="on"/>
<option name="print-minimal-cutset-contribution" value="on"/>
</minimal-cutsets>
</print>
</xfta>
/*
* AltaRica 3.0 model
* System of interest : AIDA Library
* by Anthony Legendre - Fractus
*
* This file is part of the S2C project.
* Copyright (c) 2021-2022 Fractus - All Rights Reserved.
*/
/* Table of Contents
* --------------
* 0. Domain
* 1. Abstract Classes
* 2. Classes component_behavior
* 3. Class concrete_component
*/
/*
* 0. Domain
* -------------------
*/
domain Status {OK, LOST, ERR}
/*
* 1. Abstract Classes
* -------------------
*/
class ObjetState
//internal state
Status vsWorking (init = OK);
end
class FM_Loss_Behaviour
extends ObjetState;
//parameter
parameter Real lambda_Loss = 0.0003;
//event
event ev_Loss_Failure (delay = exponential(lambda_Loss));
//transition
transition
ev_Loss_Failure: vsWorking==OK -> vsWorking := LOST;
end
class FM_Erroneous_Behaviour
extends ObjetState;
//parameter
parameter Real lambda_ERR = 0.00003;
//event
event ev_ERR_Failure (delay = exponential(lambda_ERR));
//transition
transition
ev_ERR_Failure: vsWorking==OK -> vsWorking := ERR;
end
class FM_Erroneous_Loss_Behaviour
extends ObjetState;
//parameter
parameter Real lambda_Loss = 0.00003;
parameter Real lambda_ERR = 0.00003;
//event
event ev_Loss_Failure (delay = exponential(lambda_Loss));
event ev_ERR_Failure (delay = exponential(lambda_ERR));
//transition
transition
ev_Loss_Failure: vsWorking==OK -> vsWorking := LOST;
ev_ERR_Failure: vsWorking==OK -> vsWorking := ERR;
end
class FM_Erroneous_Loss_CANbus_Behaviour
extends ObjetState;
//parameter
parameter Real lambda_Loss = 0.00003;
parameter Real lambda_ERR = 0.00003;
parameter Real lambda_CANbus_Loss = 0.0003;
parameter Real lambda_CANbus_ERR = 0.00003;
//event
event ev_Loss_Failure (delay = exponential(lambda_Loss));
event ev_ERR_Failure (delay = exponential(lambda_ERR));
event ev_CANbus_Loss_Failure (delay = exponential(lambda_CANbus_Loss));
event ev_CANbus_ERR_Failure (delay = exponential(lambda_CANbus_ERR));
//transition
transition
ev_Loss_Failure: vsWorking==OK -> vsWorking := LOST;
ev_ERR_Failure: vsWorking==OK -> vsWorking := ERR;
ev_CANbus_Loss_Failure: vsWorking==OK -> vsWorking := LOST;
ev_CANbus_ERR_Failure: vsWorking==OK -> vsWorking := ERR;
end
/*
* 2. Classes component_behavior
* -------------------
*/
class flow1_behavior
extends FM_Erroneous_Loss_Behaviour;
//flow variables
Status in (reset = LOST);
Status out (reset = LOST);
assertion
if (vsWorking==OK) then out := in;
if (vsWorking==ERR) and not (in==LOST) then out := ERR;
end
class flow2_behavior
extends FM_Erroneous_Loss_Behaviour;
//flow variables
Status in1, in2 (reset = LOST);
Status out1, out2 (reset = LOST);
assertion
if (vsWorking==OK) then out1 := in1;
if (vsWorking==ERR) and not (in1==LOST) then out1 := ERR;
if (vsWorking==OK) then out2 := in2;
if (vsWorking==ERR) and not (in2==LOST) then out2 := ERR;
end
class Power_Supply_behavior
extends FM_Loss_Behaviour; // a mettre jour en fonction des In et Out
//flow variables
Status out_EPL_Power_supply (reset = LOST);
// assertion
assertion
out_EPL_Power_supply := vsWorking;
end
class Main_flight_control_board
//class instances
flow2_behavior can_sensor (lambda_ERR = 4.501e-07, lambda_Loss = 1.121e-05);
flow2_behavior ccdl_behavior (lambda_ERR = 1.713e-07, lambda_Loss = 5.213e-06);
flow1_behavior rc_acquisition (lambda_ERR = 1.273e-06, lambda_Loss = 2.670e-05);
flow1_behavior wifi_driver (lambda_ERR = 3.734e-06, lambda_Loss = 1.294e-07);
flow1_behavior wifi_acquisition (lambda_ERR = 7.379e-06, lambda_Loss = 9.613e-06);
flow1_behavior pwm1_driver (lambda_ERR = 2.961e-06, lambda_Loss = 3.322e-05);
flow1_behavior pwm2_driver (lambda_ERR = 1.830e-06, lambda_Loss = 1.559e-05);
flow1_behavior pwm3_driver (lambda_ERR = 9.833e-07, lambda_Loss = 3.016e-05);
flow1_behavior pwm4_driver (lambda_ERR = 3.236e-07, lambda_Loss = 2.451e-05);
flow1_behavior global_flight_control_board (lambda_ERR = 1e-09, lambda_Loss = 4.920e-06);
//flow variables
Status in_PowerSupply (reset = LOST);
Status in_Inertial_reference_sensors_behavior (reset = LOST);
Status in_Magnetometer_behavior (reset = LOST);
Status in_Pressure_sensor_behavior (reset = LOST);
Status in_CAN_Wire_LIDAR_Altimeter (reset = LOST);
Status in_CAN_Wire_Optical_Flow_Sensor (reset = LOST);
Status in_CAN_Wire_GPS_Receiver (reset = LOST);
Status in_RC_Serial_Bus (reset = LOST);
Status in_WIFI_Serial_Bus (reset = LOST);
Status in_WSL_Cross_channel_data_link (reset = LOST);
Status out_WSL_Cross_channel_data_link (reset = LOST);
Status out_WIFI_Serial_Bus (reset = LOST);
Status out_CAN_Wire_LIDAR_Altimeter (reset = LOST);
Status out_CAN_Wire_Optical_Flow_Sensor (reset = LOST);
Status out_CAN_Wire_GPS_Receiver (reset = LOST);
Status out_PWM1 (reset = LOST);
Status out_PWM2 (reset = LOST);
Status out_PWM3 (reset = LOST);
Status out_PWM4 (reset = LOST);
// local flow
Status in_CAN_flows(reset = LOST);
Status in_local_flow(reset = LOST);
//assertion
assertion
//CAN SENSOR
if (in_CAN_Wire_LIDAR_Altimeter == OK and in_CAN_Wire_Optical_Flow_Sensor == OK and in_CAN_Wire_GPS_Receiver == OK) then in_CAN_flows := OK;
if (in_CAN_Wire_LIDAR_Altimeter == ERR or in_CAN_Wire_Optical_Flow_Sensor == ERR or in_CAN_Wire_GPS_Receiver == ERR) and not (in_CAN_Wire_LIDAR_Altimeter == LOST or in_CAN_Wire_Optical_Flow_Sensor == LOST or in_CAN_Wire_GPS_Receiver == LOST) then in_CAN_flows := ERR ;
can_sensor.in1 := in_CAN_flows;
out_CAN_Wire_LIDAR_Altimeter:= can_sensor.out2;
out_CAN_Wire_Optical_Flow_Sensor:= can_sensor.out2;
out_CAN_Wire_GPS_Receiver:= can_sensor.out2;
//WIFI ACQ
wifi_acquisition.in := in_WIFI_Serial_Bus;
//RC ACQ
rc_acquisition.in := in_RC_Serial_Bus;
//WIFI driver
out_WIFI_Serial_Bus := wifi_driver.out;
//CCDL
ccdl_behavior.in1 := in_WSL_Cross_channel_data_link;
out_WSL_Cross_channel_data_link := ccdl_behavior.out2;
//PWMDriver
out_PWM1 := pwm1_driver.out ;
out_PWM2 := pwm2_driver.out ;
out_PWM3 := pwm3_driver.out ;
out_PWM4 := pwm4_driver.out ;
// Global in
if (can_sensor.out1== OK and wifi_acquisition.out== OK and rc_acquisition.out== OK and ccdl_behavior.out1== OK and in_PowerSupply== OK and in_Inertial_reference_sensors_behavior== OK and in_Magnetometer_behavior== OK and in_Pressure_sensor_behavior== OK) then in_local_flow := OK;
if (can_sensor.out1== ERR or wifi_acquisition.out== ERR or rc_acquisition.out== ERR or ccdl_behavior.out1== ERR or in_PowerSupply== ERR or in_Inertial_reference_sensors_behavior== ERR or in_Magnetometer_behavior== ERR or in_Pressure_sensor_behavior== ERR) and not (can_sensor.out1== LOST or wifi_acquisition.out== LOST or rc_acquisition.out== LOST or ccdl_behavior.out1== LOST or in_PowerSupply== LOST or in_Inertial_reference_sensors_behavior== LOST or in_Magnetometer_behavior== LOST or in_Pressure_sensor_behavior== LOST) then in_local_flow := ERR;
global_flight_control_board.in := in_local_flow;
// Global out
//Global Out CAN SENSOR
// pour dboucler le loop de controle entre Main et CAN SENSOR
if (/*ccdl_behavior.out1== OK and */in_PowerSupply== OK and in_Inertial_reference_sensors_behavior== OK and in_Magnetometer_behavior== OK and in_Pressure_sensor_behavior== OK) then can_sensor.in2 := global_flight_control_board.vsWorking;
if (/*ccdl_behavior.out1== ERR or */in_PowerSupply== ERR or in_Inertial_reference_sensors_behavior== ERR or in_Magnetometer_behavior== ERR or in_Pressure_sensor_behavior== ERR) or global_flight_control_board.vsWorking == ERR then can_sensor.in2 := ERR;
//Global Out Wifi Driver
// pour dboucler le loop de controle entre Main et Wifi
if (/*ccdl_behavior.out1== OK and */in_PowerSupply== OK and in_Inertial_reference_sensors_behavior== OK and in_Magnetometer_behavior== OK and in_Pressure_sensor_behavior== OK) then wifi_driver.in := global_flight_control_board.vsWorking;
if (/*ccdl_behavior.out1== ERR or */in_PowerSupply== ERR or in_Inertial_reference_sensors_behavior== ERR or in_Magnetometer_behavior== ERR or in_Pressure_sensor_behavior== ERR) or global_flight_control_board.vsWorking == ERR then wifi_driver.in := ERR;
//Global Out MAIN et Monitoring
// pour dboucler le loop de controle MAIN et Monitoring
if (can_sensor.vsWorking== OK and wifi_acquisition.vsWorking== OK and rc_acquisition.vsWorking== OK and ccdl_behavior.vsWorking== OK and pwm1_driver.vsWorking== OK and pwm2_driver.vsWorking== OK and pwm3_driver.vsWorking== OK and pwm4_driver.vsWorking== OK and wifi_driver.vsWorking== OK) then ccdl_behavior.in2 := global_flight_control_board.vsWorking;
if (can_sensor.vsWorking== ERR or wifi_acquisition.vsWorking== ERR or rc_acquisition.vsWorking== ERR or ccdl_behavior.vsWorking== ERR or pwm1_driver.vsWorking== ERR or pwm2_driver.vsWorking== ERR or pwm3_driver.vsWorking== ERR or pwm4_driver.vsWorking== ERR or wifi_driver.vsWorking== ERR or global_flight_control_board.vsWorking==ERR) and not (can_sensor.vsWorking== LOST or wifi_acquisition.vsWorking== LOST or rc_acquisition.vsWorking== LOST or ccdl_behavior.vsWorking== LOST or pwm1_driver.vsWorking== LOST or pwm2_driver.vsWorking== LOST or pwm3_driver.vsWorking== LOST or pwm4_driver.vsWorking== LOST or wifi_driver.vsWorking== LOST or global_flight_control_board.vsWorking==LOST) then ccdl_behavior.in2 := ERR;
//Global Out MAIN et PWM
pwm1_driver.in := global_flight_control_board.out;
pwm2_driver.in := global_flight_control_board.out;
pwm3_driver.in := global_flight_control_board.out;
pwm4_driver.in := global_flight_control_board.out;
end
class Monitoring_flight_control_board
//class instances
flow2_behavior MON_can_sensor (lambda_ERR = 4.501e-07, lambda_Loss = 1.121e-05);
flow2_behavior MON_ccdl_behavior (lambda_ERR = 5.482e-06, lambda_Loss = 1.059e-06);
flow1_behavior MON_rc_acquisition (lambda_ERR = 3.497e-07, lambda_Loss = 2.936e-05);
flow1_behavior MON_wifi_driver (lambda_ERR = 5.767e-06, lambda_Loss = 3.308e-06);
flow1_behavior MON_wifi_acquisition (lambda_ERR = 6.241e-06, lambda_Loss = 2.280e-06);
flow2_behavior MON_CAN_motor_driver (lambda_ERR = 1.121e-05, lambda_Loss = 4.501e-07);
flow1_behavior MON_global_flight_control_board (lambda_ERR = 1e-09, lambda_Loss = 4.237e-05);
//flow variables
Status in_Inertial_reference_sensors_behavior (reset = LOST);
Status in_Magnetometer_behavior (reset = LOST);
Status in_Pressure_sensor_behavior (reset = LOST);
Status in_PowerSupply (reset = LOST);
Status in_CAN_Wire_LIDAR_Altimeter (reset = LOST);
Status in_CAN_Wire_Optical_Flow_Sensor (reset = LOST);
Status in_CAN_Wire_GPS_Receiver (reset = LOST);
Status in_RC_Serial_Bus (reset = LOST);
Status in_WIFI_Serial_Bus (reset = LOST);
Status in_WSL_Cross_channel_data_link (reset = LOST);
Status out_WSL_Cross_channel_data_link (reset = LOST);
Status out_WIFI_Serial_Bus (reset = LOST);
Status out_CAN_Wire_LIDAR_Altimeter (reset = LOST);
Status out_CAN_Wire_Optical_Flow_Sensor (reset = LOST);
Status out_CAN_Wire_GPS_Receiver (reset = LOST);
Status in_CAN_Wire_motor1 (reset = LOST);
Status in_CAN_Wire_motor2 (reset = LOST);
Status in_CAN_Wire_motor3 (reset = LOST);
Status in_CAN_Wire_motor4 (reset = LOST);
Status out_CAN_Wire_motor1 (reset = LOST);
Status out_CAN_Wire_motor2 (reset = LOST);
Status out_CAN_Wire_motor3 (reset = LOST);
Status out_CAN_Wire_motor4 (reset = LOST);
// local flow
Status in_CAN_sensors_flows(reset = LOST);
Status in_local_flow(reset = LOST);
//assertion TODO
assertion
//CAN SENSOR
if (in_CAN_Wire_LIDAR_Altimeter == OK and in_CAN_Wire_Optical_Flow_Sensor == OK and in_CAN_Wire_GPS_Receiver == OK) then in_CAN_sensors_flows := OK;
if (in_CAN_Wire_LIDAR_Altimeter == ERR or in_CAN_Wire_Optical_Flow_Sensor == ERR or in_CAN_Wire_GPS_Receiver == ERR) and not (in_CAN_Wire_LIDAR_Altimeter == LOST or in_CAN_Wire_Optical_Flow_Sensor == LOST or in_CAN_Wire_GPS_Receiver == LOST) then in_CAN_sensors_flows := ERR ;
MON_can_sensor.in1 := in_CAN_sensors_flows;
out_CAN_Wire_LIDAR_Altimeter:= MON_can_sensor.out2;
out_CAN_Wire_Optical_Flow_Sensor:= MON_can_sensor.out2;
out_CAN_Wire_GPS_Receiver:= MON_can_sensor.out2;
//WIFI ACQ
MON_wifi_acquisition.in := in_WIFI_Serial_Bus;
//RC ACQ
MON_rc_acquisition.in := in_RC_Serial_Bus;
//WIFI driver
out_WIFI_Serial_Bus := MON_wifi_driver.out;
//CCDL
MON_ccdl_behavior.in1 := in_WSL_Cross_channel_data_link;
out_WSL_Cross_channel_data_link := MON_ccdl_behavior.out2;
MON_ccdl_behavior.in2 := MON_global_flight_control_board.out;
//CAN WIRE motor
out_CAN_Wire_motor1 := MON_CAN_motor_driver.out2 ;
out_CAN_Wire_motor2 := MON_CAN_motor_driver.out2 ;
out_CAN_Wire_motor3 := MON_CAN_motor_driver.out2 ;
out_CAN_Wire_motor4 := MON_CAN_motor_driver.out2 ;
if (in_CAN_Wire_motor1 == OK and in_CAN_Wire_motor2 == OK and in_CAN_Wire_motor3 == OK and in_CAN_Wire_motor4 == OK) then MON_CAN_motor_driver.in1 := OK;
if (in_CAN_Wire_motor1== ERR or in_CAN_Wire_motor2== ERR or in_CAN_Wire_motor3== ERR or in_CAN_Wire_motor4== ERR) and not (in_CAN_Wire_motor1== LOST or in_CAN_Wire_motor2== LOST or in_CAN_Wire_motor3== LOST or in_CAN_Wire_motor4== LOST) then MON_CAN_motor_driver.in1 := ERR;
// Global in
if (MON_can_sensor.out1== OK and MON_wifi_acquisition.out== OK and MON_rc_acquisition.out== OK and MON_ccdl_behavior.out1== OK and MON_CAN_motor_driver.out1 == OK and in_PowerSupply== OK and in_Inertial_reference_sensors_behavior== OK and in_Magnetometer_behavior== OK and in_Pressure_sensor_behavior== OK) then in_local_flow := OK;
if (MON_can_sensor.out1== ERR or MON_wifi_acquisition.out== ERR or MON_rc_acquisition.out== ERR or MON_ccdl_behavior.out1== ERR or MON_CAN_motor_driver.out1 == ERR or in_PowerSupply== ERR or in_Inertial_reference_sensors_behavior== ERR or in_Magnetometer_behavior== ERR or in_Pressure_sensor_behavior== ERR) and not (MON_can_sensor.out1== LOST or MON_wifi_acquisition.out== LOST or MON_rc_acquisition.out== LOST or MON_ccdl_behavior.out1== LOST or MON_CAN_motor_driver.out1 == LOST or in_PowerSupply== LOST or in_Inertial_reference_sensors_behavior== LOST or in_Magnetometer_behavior== LOST or in_Pressure_sensor_behavior== LOST) then in_local_flow := ERR;
MON_global_flight_control_board.in := in_local_flow;
// Global out
//Global Out CAN SENSOR
// pour dboucler le loop de controle entre MONITORING et CAN SENSOR
if (/*MON_ccdl_behavior.out1== OK and*/ in_PowerSupply== OK and in_Inertial_reference_sensors_behavior== OK and in_Magnetometer_behavior== OK and in_Pressure_sensor_behavior== OK) then MON_can_sensor.in2 := MON_global_flight_control_board.vsWorking;
if (/*MON_ccdl_behavior.out1== ERR or */in_PowerSupply== ERR or in_Inertial_reference_sensors_behavior== ERR or in_Magnetometer_behavior== ERR or in_Pressure_sensor_behavior== ERR) or MON_global_flight_control_board.vsWorking == ERR then MON_can_sensor.in2 := ERR;
//Global Out Wifi
// pour dboucler le loop de controle entre MONITORING et Wifi
if (/*MON_ccdl_behavior.out1== OK and */in_PowerSupply== OK and in_Inertial_reference_sensors_behavior== OK and in_Magnetometer_behavior== OK and in_Pressure_sensor_behavior== OK) then MON_wifi_driver.in := MON_global_flight_control_board.vsWorking;
if (/*MON_ccdl_behavior.out1== ERR or */in_PowerSupply== ERR or in_Inertial_reference_sensors_behavior== ERR or in_Magnetometer_behavior== ERR or in_Pressure_sensor_behavior== ERR) or MON_global_flight_control_board.vsWorking == ERR then MON_wifi_driver.in := ERR;
//Global Out CAN MOTOR
// pour dboucler le loop de controle entre MONITORING et CAN MOTOR
if (/*MON_ccdl_behavior.out1== OK and */in_PowerSupply== OK and in_Inertial_reference_sensors_behavior== OK and in_Magnetometer_behavior== OK and in_Pressure_sensor_behavior== OK) then MON_CAN_motor_driver.in2 := MON_global_flight_control_board.vsWorking;
if (/*MON_ccdl_behavior.out1== ERR or */in_PowerSupply== ERR or in_Inertial_reference_sensors_behavior== ERR or in_Magnetometer_behavior== ERR or in_Pressure_sensor_behavior== ERR) or MON_global_flight_control_board.vsWorking == ERR then MON_CAN_motor_driver.in2 := ERR;
end
class sensors_behavior
extends FM_Erroneous_Loss_Behaviour;
//flow variables
Status in_PowerSupply (reset = LOST);
Status out_cmd (reset = LOST);
//local flow variables
Status in_local_flow (reset = LOST);
assertion
if (in_PowerSupply == OK) then in_local_flow := OK;
if (in_PowerSupply == ERR) and not (in_PowerSupply == LOST) then in_local_flow := ERR ;
if (vsWorking==OK and in_local_flow == OK) then out_cmd := in_local_flow;
if (vsWorking==ERR or in_local_flow == ERR) and not (vsWorking==LOST or in_local_flow ==LOST) then out_cmd := ERR;
end
class Flight_control_main_channel_behavior
//class instances
Main_flight_control_board main_flight_control_board;
sensors_behavior inertial_reference_sensors_behavior(lambda_ERR = 1.483e-07, lambda_Loss = 3.017e-05);
sensors_behavior magnetometer_behavior(lambda_ERR = 2.559e-07, lambda_Loss = 3.077e-06);
sensors_behavior pressure_sensor_behavior(lambda_ERR = 3.302e-06, lambda_Loss = 1.116e-05);
//flow variables
Status in_PowerSupply (reset = LOST);
assertion
inertial_reference_sensors_behavior.in_PowerSupply:= in_PowerSupply;
magnetometer_behavior.in_PowerSupply:= in_PowerSupply;
pressure_sensor_behavior.in_PowerSupply:= in_PowerSupply;
main_flight_control_board.in_PowerSupply:= in_PowerSupply;
main_flight_control_board.in_Inertial_reference_sensors_behavior := inertial_reference_sensors_behavior.out_cmd;
main_flight_control_board.in_Magnetometer_behavior := magnetometer_behavior.out_cmd;
main_flight_control_board.in_Pressure_sensor_behavior := pressure_sensor_behavior.out_cmd;
end
class Flight_control_monitoring_channel_behavior
//class instances
Monitoring_flight_control_board monitoring_flight_control_board;
sensors_behavior inertial_reference_sensors_MON_behavior(lambda_ERR = 2.628e-06, lambda_Loss = 1.419e-06);
sensors_behavior magnetometer_MON_behavior(lambda_ERR = 1.901e-07, lambda_Loss = 1.286e-05);
sensors_behavior pressure_sensor_MON_behavior(lambda_ERR = 4.594e-07, lambda_Loss = 3.949e-05);
//flow variables
Status in_PowerSupply (reset = LOST);
assertion
inertial_reference_sensors_MON_behavior.in_PowerSupply:= in_PowerSupply;
magnetometer_MON_behavior.in_PowerSupply:= in_PowerSupply;
pressure_sensor_MON_behavior.in_PowerSupply:= in_PowerSupply;
monitoring_flight_control_board.in_PowerSupply:= in_PowerSupply;
monitoring_flight_control_board.in_Inertial_reference_sensors_behavior := inertial_reference_sensors_MON_behavior.out_cmd;
monitoring_flight_control_board.in_Magnetometer_behavior := magnetometer_MON_behavior.out_cmd;
monitoring_flight_control_board.in_Pressure_sensor_behavior := pressure_sensor_MON_behavior.out_cmd;
end
class Motor_controller_behavior
extends FM_Erroneous_Loss_Behaviour;
//flow variables
Status in_EPL_Power_Supply (reset = LOST);
Status in_WSL_Motor_voltage_feedback (reset = LOST);
Status in_PWM (reset = LOST);
Status out_Command (reset = LOST);
//assertion
assertion
//assertion avec la boucle
// if (in_EPL_Power_Supply == OK and in_WSL_Motor_voltage_feedback == OK and in_PWM == OK and vsWorking==OK) then out_Command := OK ;
// if (in_EPL_Power_Supply == ERR or in_WSL_Motor_voltage_feedback == ERR or in_PWM == ERR or vsWorking==ERR) and not (in_EPL_Power_Supply == LOST or in_WSL_Motor_voltage_feedback == LOST or in_PWM == LOST or vsWorking==LOST) then out_Command := ERR ;
//assertion sans la boucle
if (in_EPL_Power_Supply == OK and in_PWM == OK and vsWorking==OK) then out_Command := OK ;
if (in_EPL_Power_Supply == ERR or in_PWM == ERR and vsWorking==ERR) and not (in_EPL_Power_Supply == LOST or in_PWM == LOST or vsWorking==LOST) then out_Command := ERR ;
end
class Motor_protection_behavior
extends FM_Erroneous_Loss_Behaviour;
//flow variables
Status in_EPL_Power_Supply (reset = LOST);
Status in_Command (reset = LOST);
Status in_Speed_measure (reset = LOST);
Status in_Can_transmission (reset = LOST);
Status out_Can_transmission (reset = LOST);
Status out_Command (reset = LOST);
//assertion
assertion
if (in_EPL_Power_Supply == OK and in_Command == OK and in_Can_transmission == OK and vsWorking==OK) then out_Command := OK ;
if (in_EPL_Power_Supply == ERR or in_Command == ERR or in_Can_transmission == ERR or vsWorking==ERR) and not (in_EPL_Power_Supply == LOST or in_Command == LOST or in_Can_transmission == LOST or vsWorking==LOST) then out_Command := ERR ;
if (in_EPL_Power_Supply == OK and in_Speed_measure == OK) then out_Can_transmission := OK ;
if (in_EPL_Power_Supply == ERR or in_Speed_measure == ERR) and not (in_EPL_Power_Supply == LOST or in_Speed_measure == LOST) then out_Can_transmission := ERR ;
end
/*
* 3. Class concrete_component
* -------------------
* 3.1 Classes for system level 3
* -------------------
*/
//concrete class for system level 3
class Propeller
extends FM_Erroneous_Loss_Behaviour;
//flow variables
Status out_ML_Propeller_thrust_and_torque (reset = LOST);
Status in_ML_rotation (reset = LOST);
//assertion
assertion
if (vsWorking == OK) then out_ML_Propeller_thrust_and_torque := in_ML_rotation ;
if (vsWorking == ERR) and not(vsWorking == LOST) then out_ML_Propeller_thrust_and_torque := ERR;
end
class Motor
extends FM_Loss_Behaviour;
//class instances
flow1_behavior rotation_generation (lambda_ERR = 8.648e-06, lambda_Loss = 6.409e-05);
flow1_behavior speed_measurement (lambda_ERR = 1.154e-07, lambda_Loss = 1.332e-06);
//flow variables
Status in_ML (reset = LOST);
Status in_command (reset = LOST);
Status out_Speed_measure (reset = LOST);
Status out_WSL_Motor_voltage_feedback (reset = LOST);
Status out_ML_rotation (reset = LOST);
//assertion
assertion
if (in_ML == OK and vsWorking==OK) then rotation_generation.in := in_command;
if (in_ML == ERR) then rotation_generation.in := ERR;
if (in_ML == OK and vsWorking==OK) then out_WSL_Motor_voltage_feedback := rotation_generation.out;
if (in_ML == ERR) then out_WSL_Motor_voltage_feedback := ERR;
if (in_ML == OK and vsWorking==OK) then out_ML_rotation := rotation_generation.out;
if (in_ML == ERR) then out_ML_rotation := ERR;
if (in_ML == OK and vsWorking==OK) then speed_measurement.in := in_command;
if (in_ML == ERR) then speed_measurement.in := ERR;
if (in_ML == OK) then out_Speed_measure := speed_measurement.vsWorking; // debouclage des motors et du bus can motor
end
class Motor_Control_Protection
//class instances
Motor_controller_behavior motor_controller_behavior (lambda_ERR = 1.089e-07, lambda_Loss = 1.218e-05);
Motor_protection_behavior motor_protection_behavior (lambda_ERR = 1.301e-06, lambda_Loss = 1.425e-06);
flow2_behavior can_motor_driver (lambda_ERR = 4.501e-07, lambda_Loss = 1.121e-05);
//flow variables
Status in_ML (reset = LOST);
Status in_CAN_Wire_motor (reset = LOST);
Status in_PWM (reset = LOST);
Status in_EPL_Power_Supply (reset = LOST);
Status in_WSL_Motor_voltage_feedback (reset = LOST);
Status in_Speed_measure (reset = LOST);
Status out_CAN_Wire_motor (reset = LOST);
Status out_command (reset = LOST);
//assertion
assertion
if (in_ML==OK) then motor_protection_behavior.in_EPL_Power_Supply:= in_EPL_Power_Supply;
if (in_ML==OK) then motor_protection_behavior.in_Can_transmission := can_motor_driver.out1 ;
if (in_ML==OK) then motor_controller_behavior.in_WSL_Motor_voltage_feedback := in_WSL_Motor_voltage_feedback;
if (in_ML==OK) then motor_controller_behavior.in_EPL_Power_Supply:= in_EPL_Power_Supply;
if (in_ML==OK) then motor_controller_behavior.in_PWM := in_PWM;
if (in_ML==OK) then can_motor_driver.in1 := in_CAN_Wire_motor;
if (in_ML==OK) then can_motor_driver.in2 := motor_protection_behavior.out_Can_transmission ;
if (in_ML==OK) then out_CAN_Wire_motor := can_motor_driver.out2 ;
if (in_ML==OK) then motor_protection_behavior.in_Command := motor_controller_behavior.out_Command;
if (in_ML==OK) then out_command := motor_protection_behavior.out_Command;
if (in_ML==OK) then motor_protection_behavior.in_Speed_measure := in_Speed_measure;
end
/*
* 3.2 Classes for system level 2
* -------------------
*/
class Propulsion_Unit
//class instances
Motor motor (lambda_Loss = 2.392e-06);
Propeller propeller (lambda_ERR = 3.326e-07, lambda_Loss = 1.918e-05);
Motor_Control_Protection motor_Control_Protection;
//flow variables
Status in_ML (reset = LOST);
//assertion
assertion
motor_Control_Protection.in_ML:=in_ML;
motor.in_ML:=in_ML;
motor_Control_Protection.in_WSL_Motor_voltage_feedback := motor.out_WSL_Motor_voltage_feedback ;
motor_Control_Protection.in_Speed_measure := motor.out_Speed_measure ;
motor.in_command := motor_Control_Protection.out_command ;
propeller.in_ML_rotation := motor.out_ML_rotation ;
end
class RC_Receiver
extends FM_Erroneous_Loss_Behaviour;
//flow variables
Status in_USL_Remote_Control (reset = LOST);
Status in_ML (reset = LOST);
Status in_RC_Serial_Bus_Supply (reset = LOST);
Status out_RC_serial_Bus (reset = LOST);
//local flow variables
Status in_local_flow (reset = LOST);
//assertion
assertion
if (in_USL_Remote_Control == OK and in_ML == OK and in_RC_Serial_Bus_Supply == OK) then in_local_flow := OK ;
if (in_USL_Remote_Control == ERR or in_ML == ERR or in_RC_Serial_Bus_Supply == ERR) and not (in_USL_Remote_Control == LOST or in_ML == LOST or in_RC_Serial_Bus_Supply == LOST) then in_local_flow := ERR ;
if (vsWorking==OK and in_local_flow == OK) then out_RC_serial_Bus := in_local_flow;
if (vsWorking==ERR or in_local_flow == ERR) and not (vsWorking==LOST or in_local_flow ==LOST) then out_RC_serial_Bus := ERR;
end
class Wifi_Controller
extends FM_Erroneous_Loss_Behaviour;
//flow variables
Status in_USL_Mission_Data (reset = LOST);
Status in_ML (reset = LOST);
Status in_WIFI_Serial_Bus (reset = LOST);
Status in_WIFI_Serial_Bus_Supply (reset = LOST);
Status out_WIFI_Serial_Bus (reset = LOST);
Status out_USL_Mission_Data (reset = LOST);
//local flow variables
Status in_local_flow (reset = LOST);
//assertion
assertion
if (in_USL_Mission_Data == OK and in_ML == OK and in_WIFI_Serial_Bus == OK and in_WIFI_Serial_Bus_Supply == OK) then in_local_flow := OK ;
if (in_USL_Mission_Data == ERR or in_ML == ERR or in_WIFI_Serial_Bus == ERR or in_WIFI_Serial_Bus_Supply == ERR) and not (in_USL_Mission_Data == LOST or in_ML == LOST or in_WIFI_Serial_Bus == LOST or in_WIFI_Serial_Bus_Supply == LOST) then in_local_flow := ERR ;
if (vsWorking==OK) then out_WIFI_Serial_Bus := in_local_flow;
if (vsWorking==OK) then out_USL_Mission_Data := in_local_flow;
if (vsWorking==ERR or in_local_flow == ERR) and not (vsWorking==LOST or in_local_flow ==LOST) then out_WIFI_Serial_Bus := ERR;
if (vsWorking==ERR or in_local_flow == ERR) and not (vsWorking==LOST or in_local_flow ==LOST) then out_USL_Mission_Data := ERR;
end
class LIDAR_Altimeter
extends FM_Erroneous_Loss_CANbus_Behaviour;
//flow variables
Status in_ML (reset = LOST);
Status in_CAN_Wire (reset = LOST);
Status out_CAN_Wire (reset = LOST);
//local flow variables
Status in_local_flow (reset = LOST);
//assertion
assertion
if (in_ML == OK and in_CAN_Wire == OK) then in_local_flow := OK;
if (in_ML == ERR or in_CAN_Wire == ERR) and not (in_ML == LOST or in_CAN_Wire == LOST) then in_local_flow := ERR ;
if (vsWorking==OK and in_local_flow == OK) then out_CAN_Wire := in_local_flow;
if (vsWorking==ERR or in_local_flow == ERR) and not (vsWorking==LOST or in_local_flow ==LOST) then out_CAN_Wire := ERR;
end
class GPS_Receiver
extends FM_Erroneous_Loss_Behaviour;
//flow variables
// Status in_USL_Positioning_Signal (reset = LOST); //inutile car aucune dfaillance dfinis pour Positioning system
Status in_ML (reset = LOST);
Status in_CAN_Wire (reset = LOST);
Status out_CAN_Wire (reset = LOST);
//local flow variables
Status in_local_flow (reset = LOST);
parameter Real lambda_CANbus_Loss = 0.0003;
parameter Real lambda_CANbus_ERR = 0.00003;
//event
event ev_CANbus_Loss_Failure (delay = exponential(lambda_CANbus_Loss));
event ev_CANbus_ERR_Failure (delay = exponential(lambda_CANbus_ERR));
//transition
transition
ev_CANbus_Loss_Failure: vsWorking==OK -> vsWorking := LOST;
ev_CANbus_ERR_Failure: vsWorking==OK -> vsWorking := ERR;
//assertion
assertion
if (in_ML == OK and in_CAN_Wire == OK) then in_local_flow := OK ;
if (in_CAN_Wire == ERR) and not (in_ML == LOST) then in_local_flow := ERR ;
if (vsWorking==OK and in_local_flow == OK) then out_CAN_Wire := in_local_flow;
if (vsWorking==ERR or in_local_flow == ERR) and not (vsWorking==LOST or in_local_flow ==LOST) then out_CAN_Wire := ERR;
end
class Optical_Flow_Sensor
extends FM_Erroneous_Loss_CANbus_Behaviour;
//flow variables
Status in_ML (reset = LOST);
Status in_CAN_Wire (reset = LOST);
Status out_CAN_Wire (reset = LOST);
//local flow variables
Status in_local_flow (reset = LOST);
//assertion
assertion
if (in_ML == OK and in_CAN_Wire == OK) then in_local_flow := OK;
if (in_ML == ERR or in_CAN_Wire == ERR) and not (in_ML == LOST or in_CAN_Wire == LOST) then in_local_flow := ERR ;
if (vsWorking==OK and in_local_flow == OK) then out_CAN_Wire := in_local_flow;
if (vsWorking==ERR or in_local_flow == ERR) and not (vsWorking==LOST or in_local_flow ==LOST) then out_CAN_Wire := ERR;
end
class Flight_Controller
extends FM_Loss_Behaviour;
//class instances
Flight_control_main_channel_behavior Flight_control_main_channel_behavior_AIDA;
Flight_control_monitoring_channel_behavior Flight_control_monitoring_channel_behavior_AIDA;
//flow variables
Status in_ML (reset = LOST);
Status in_PowerSupply (reset = LOST);
Status in_CAN_Wire_LIDAR_Altimeter (reset = LOST);
Status in_CAN_Wire_Optical_Flow_Sensor (reset = LOST);
Status in_CAN_Wire_GPS_Receiver (reset = LOST);
Status in_RC_Serial_Bus (reset = LOST);
Status in_WIFI_Serial_Bus (reset = LOST);
Status in_CAN_Wire_motor1 (reset = LOST);
Status in_CAN_Wire_motor2 (reset = LOST);
Status in_CAN_Wire_motor3 (reset = LOST);
Status in_CAN_Wire_motor4 (reset = LOST);
Status out_WIFI_Serial_Bus_Supply (reset = LOST);
Status out_RC_Serial_Bus_Supply (reset = LOST);
Status out_WIFI_Serial_Bus (reset = LOST);
Status out_CAN_Wire_LIDAR_Altimeter (reset = LOST);
Status out_CAN_Wire_Optical_Flow_Sensor (reset = LOST);
Status out_CAN_Wire_GPS_Receiver (reset = LOST);
Status out_CAN_Wire_motor1 (reset = LOST);
Status out_CAN_Wire_motor2 (reset = LOST);
Status out_CAN_Wire_motor3 (reset = LOST);
Status out_CAN_Wire_motor4 (reset = LOST);
Status out_PWM1 (reset = LOST);
Status out_PWM2 (reset = LOST);
Status out_PWM3 (reset = LOST);
Status out_PWM4 (reset = LOST);
//local flow variables
Status in_local_flow (reset = LOST);
//assertion
assertion
//in distribution
//energy distribution
if (in_PowerSupply == OK and in_ML == OK) then in_local_flow := OK;
if (in_PowerSupply == ERR or in_ML == ERR) and not (in_PowerSupply == LOST or in_ML == LOST) then in_local_flow := ERR;
if (vsWorking==OK) then out_RC_Serial_Bus_Supply := in_local_flow;
if (vsWorking==ERR) then out_RC_Serial_Bus_Supply := ERR;
if (vsWorking==OK) then out_WIFI_Serial_Bus_Supply := in_local_flow;
if (vsWorking==ERR) then out_WIFI_Serial_Bus_Supply := ERR;
if (vsWorking==OK) then Flight_control_main_channel_behavior_AIDA.in_PowerSupply := in_local_flow;
if (vsWorking==ERR) then Flight_control_main_channel_behavior_AIDA.in_PowerSupply := ERR;
if (vsWorking==OK) then Flight_control_monitoring_channel_behavior_AIDA.in_PowerSupply := in_local_flow;
if (vsWorking==ERR) then Flight_control_monitoring_channel_behavior_AIDA.in_PowerSupply := ERR;
if (in_ML == OK) then Flight_control_main_channel_behavior_AIDA.main_flight_control_board.in_CAN_Wire_LIDAR_Altimeter:= in_CAN_Wire_LIDAR_Altimeter;
if (in_ML == OK) then Flight_control_main_channel_behavior_AIDA.main_flight_control_board.in_CAN_Wire_Optical_Flow_Sensor:= in_CAN_Wire_Optical_Flow_Sensor;
if (in_ML == OK) then Flight_control_main_channel_behavior_AIDA.main_flight_control_board.in_CAN_Wire_GPS_Receiver:= in_CAN_Wire_GPS_Receiver;
if (in_ML == OK) then Flight_control_main_channel_behavior_AIDA.main_flight_control_board.in_RC_Serial_Bus:= in_RC_Serial_Bus;
if (in_ML == OK) then Flight_control_main_channel_behavior_AIDA.main_flight_control_board.in_WIFI_Serial_Bus:= in_WIFI_Serial_Bus;
if (in_ML == OK) then Flight_control_monitoring_channel_behavior_AIDA.monitoring_flight_control_board.in_CAN_Wire_LIDAR_Altimeter:= in_CAN_Wire_LIDAR_Altimeter;
if (in_ML == OK) then Flight_control_monitoring_channel_behavior_AIDA.monitoring_flight_control_board.in_CAN_Wire_Optical_Flow_Sensor:= in_CAN_Wire_Optical_Flow_Sensor;
if (in_ML == OK) then Flight_control_monitoring_channel_behavior_AIDA.monitoring_flight_control_board.in_CAN_Wire_GPS_Receiver:= in_CAN_Wire_GPS_Receiver;
if (in_ML == OK) then Flight_control_monitoring_channel_behavior_AIDA.monitoring_flight_control_board.in_RC_Serial_Bus:= in_RC_Serial_Bus;
if (in_ML == OK) then Flight_control_monitoring_channel_behavior_AIDA.monitoring_flight_control_board.in_WIFI_Serial_Bus:= in_WIFI_Serial_Bus;
if (in_ML == OK) then Flight_control_monitoring_channel_behavior_AIDA.monitoring_flight_control_board.in_CAN_Wire_motor1:=in_CAN_Wire_motor1;
if (in_ML == OK) then Flight_control_monitoring_channel_behavior_AIDA.monitoring_flight_control_board.in_CAN_Wire_motor2:=in_CAN_Wire_motor2;
if (in_ML == OK) then Flight_control_monitoring_channel_behavior_AIDA.monitoring_flight_control_board.in_CAN_Wire_motor3:=in_CAN_Wire_motor3;
if (in_ML == OK) then Flight_control_monitoring_channel_behavior_AIDA.monitoring_flight_control_board.in_CAN_Wire_motor4:=in_CAN_Wire_motor4;
//out distribution
//QUESTION : test a modifier plus tard - en fonction de la question 8 pour le porjet S2C - si il faut prendre en compte le retour du monitoring
if (in_ML == OK and Flight_control_main_channel_behavior_AIDA.main_flight_control_board.out_WIFI_Serial_Bus==OK and Flight_control_monitoring_channel_behavior_AIDA.monitoring_flight_control_board.out_WIFI_Serial_Bus==OK) then out_WIFI_Serial_Bus :=OK;
if (Flight_control_main_channel_behavior_AIDA.main_flight_control_board.out_WIFI_Serial_Bus==ERR or Flight_control_monitoring_channel_behavior_AIDA.monitoring_flight_control_board.out_WIFI_Serial_Bus==ERR) and not (in_ML == LOST or Flight_control_main_channel_behavior_AIDA.main_flight_control_board.out_WIFI_Serial_Bus==LOST or Flight_control_monitoring_channel_behavior_AIDA.monitoring_flight_control_board.out_WIFI_Serial_Bus==LOST) then out_WIFI_Serial_Bus :=ERR;
if (in_ML == OK and Flight_control_main_channel_behavior_AIDA.main_flight_control_board.out_CAN_Wire_LIDAR_Altimeter==OK and Flight_control_monitoring_channel_behavior_AIDA.monitoring_flight_control_board.out_CAN_Wire_LIDAR_Altimeter==OK) then out_CAN_Wire_LIDAR_Altimeter :=OK;
if (Flight_control_main_channel_behavior_AIDA.main_flight_control_board.out_CAN_Wire_LIDAR_Altimeter==ERR or Flight_control_monitoring_channel_behavior_AIDA.monitoring_flight_control_board.out_CAN_Wire_LIDAR_Altimeter==ERR) and not (in_ML == LOST or Flight_control_main_channel_behavior_AIDA.main_flight_control_board.out_CAN_Wire_LIDAR_Altimeter==LOST or Flight_control_monitoring_channel_behavior_AIDA.monitoring_flight_control_board.out_CAN_Wire_LIDAR_Altimeter==LOST) then out_CAN_Wire_LIDAR_Altimeter :=ERR;
if (in_ML == OK and Flight_control_main_channel_behavior_AIDA.main_flight_control_board.out_CAN_Wire_Optical_Flow_Sensor==OK and Flight_control_monitoring_channel_behavior_AIDA.monitoring_flight_control_board.out_CAN_Wire_Optical_Flow_Sensor==OK) then out_CAN_Wire_Optical_Flow_Sensor :=OK;
if (Flight_control_main_channel_behavior_AIDA.main_flight_control_board.out_CAN_Wire_Optical_Flow_Sensor==ERR or Flight_control_monitoring_channel_behavior_AIDA.monitoring_flight_control_board.out_CAN_Wire_Optical_Flow_Sensor==ERR) and not (in_ML == LOST or Flight_control_main_channel_behavior_AIDA.main_flight_control_board.out_CAN_Wire_Optical_Flow_Sensor==LOST or Flight_control_monitoring_channel_behavior_AIDA.monitoring_flight_control_board.out_CAN_Wire_Optical_Flow_Sensor==LOST) then out_CAN_Wire_Optical_Flow_Sensor :=ERR;
if (in_ML == OK and Flight_control_main_channel_behavior_AIDA.main_flight_control_board.out_CAN_Wire_GPS_Receiver==OK and Flight_control_monitoring_channel_behavior_AIDA.monitoring_flight_control_board.out_CAN_Wire_GPS_Receiver==OK) then out_CAN_Wire_GPS_Receiver :=OK;
if (Flight_control_main_channel_behavior_AIDA.main_flight_control_board.out_CAN_Wire_GPS_Receiver==ERR or Flight_control_monitoring_channel_behavior_AIDA.monitoring_flight_control_board.out_CAN_Wire_GPS_Receiver==ERR) and not (in_ML == LOST or Flight_control_main_channel_behavior_AIDA.main_flight_control_board.out_CAN_Wire_GPS_Receiver==LOST or Flight_control_monitoring_channel_behavior_AIDA.monitoring_flight_control_board.out_CAN_Wire_GPS_Receiver==LOST) then out_CAN_Wire_GPS_Receiver :=ERR;
// if (in_ML == OK) then out_WIFI_Serial_Bus := Flight_control_main_channel_behavior_AIDA.main_flight_control_board.out_WIFI_Serial_Bus;
// if (in_ML == OK) then out_CAN_Wire_LIDAR_Altimeter := Flight_control_main_channel_behavior_AIDA.main_flight_control_board.out_CAN_Wire_LIDAR_Altimeter;
// if (in_ML == OK) then out_CAN_Wire_Optical_Flow_Sensor := Flight_control_main_channel_behavior_AIDA.main_flight_control_board.out_CAN_Wire_Optical_Flow_Sensor;
// if (in_ML == OK) then out_CAN_Wire_GPS_Receiver := Flight_control_main_channel_behavior_AIDA.main_flight_control_board.out_CAN_Wire_GPS_Receiver;
if (in_ML == OK) then out_PWM1 := Flight_control_main_channel_behavior_AIDA.main_flight_control_board.out_PWM1;
if (in_ML == OK) then out_PWM2 := Flight_control_main_channel_behavior_AIDA.main_flight_control_board.out_PWM2;
if (in_ML == OK) then out_PWM3 := Flight_control_main_channel_behavior_AIDA.main_flight_control_board.out_PWM3;
if (in_ML == OK) then out_PWM4 := Flight_control_main_channel_behavior_AIDA.main_flight_control_board.out_PWM4;
if (in_ML == OK) then out_CAN_Wire_motor1 := Flight_control_monitoring_channel_behavior_AIDA.monitoring_flight_control_board.out_CAN_Wire_motor1;
if (in_ML == OK) then out_CAN_Wire_motor2 := Flight_control_monitoring_channel_behavior_AIDA.monitoring_flight_control_board.out_CAN_Wire_motor2;
if (in_ML == OK) then out_CAN_Wire_motor3 := Flight_control_monitoring_channel_behavior_AIDA.monitoring_flight_control_board.out_CAN_Wire_motor3;
if (in_ML == OK) then out_CAN_Wire_motor4 := Flight_control_monitoring_channel_behavior_AIDA.monitoring_flight_control_board.out_CAN_Wire_motor4;
// WSL Connection main and monitoring
if (in_ML == OK) then Flight_control_monitoring_channel_behavior_AIDA.monitoring_flight_control_board.in_WSL_Cross_channel_data_link := Flight_control_main_channel_behavior_AIDA.main_flight_control_board.out_WSL_Cross_channel_data_link ;
if (in_ML == OK) then Flight_control_main_channel_behavior_AIDA.main_flight_control_board.in_WSL_Cross_channel_data_link := Flight_control_monitoring_channel_behavior_AIDA.monitoring_flight_control_board.out_WSL_Cross_channel_data_link ;
end
/*class Payload_Control extends component_flowInOut; // a mettre jour en fonction des In et Out
end
class Camera_Rotary_Support extends component_flowInOut; // a mettre jour en fonction des In et Out
end
class Camera_Sensor extends component_flowInOut; // a mettre jour en fonction des In et Out
end*/
/*
* 3.3 Classes for system level 1
* -------------------
*/
class Flight_Control_System
//class instances
RC_Receiver RC_Receiver_AIDA (lambda_ERR = 1e-09, lambda_Loss = 1.338e-05);
Wifi_Controller Wifi_Controller_AIDA (lambda_ERR = 1.744e-05, lambda_Loss = 1.338e-07);
GPS_Receiver GPS_Receiver_AIDA (lambda_ERR = 4.846e-07, lambda_Loss = 6.546e-06, lambda_CANbus_ERR = 4.501e-07, lambda_CANbus_Loss = 1.121e-05);
FM_Erroneous_Behaviour GPS_Receiver_ERR (lambda_ERR = 4.846e-07);
FM_Erroneous_Behaviour GPS_Receiver_CANBus_ERR (lambda_ERR = 4.501e-07);
Optical_Flow_Sensor Optical_Flow_Sensor_AIDA (lambda_ERR = 9.468e-07, lambda_Loss = 8.244e-05, lambda_CANbus_ERR = 4.501e-07,lambda_CANbus_Loss = 1.121e-05);
LIDAR_Altimeter LIDAR_Altimeter_AIDA (lambda_ERR = 4.501e-07, lambda_Loss = 1.121e-05, lambda_CANbus_ERR = 4.501e-07,lambda_CANbus_Loss = 1.121e-05);
Flight_Controller Flight_Controller_AIDA (lambda_Loss = 9.660e-05);
// assertion
assertion
//energy distribution
RC_Receiver_AIDA.in_RC_Serial_Bus_Supply := Flight_Controller_AIDA.out_RC_Serial_Bus_Supply;
Wifi_Controller_AIDA.in_WIFI_Serial_Bus_Supply := Flight_Controller_AIDA.out_WIFI_Serial_Bus_Supply;
// RC serieal bus
Flight_Controller_AIDA.in_RC_Serial_Bus := RC_Receiver_AIDA.out_RC_serial_Bus;
// WIFI serial bus
Wifi_Controller_AIDA.in_WIFI_Serial_Bus := Flight_Controller_AIDA.out_WIFI_Serial_Bus;
Flight_Controller_AIDA.in_WIFI_Serial_Bus := Wifi_Controller_AIDA.out_WIFI_Serial_Bus;
//CAN WIRE SENSOR
LIDAR_Altimeter_AIDA.in_CAN_Wire := Flight_Controller_AIDA.out_CAN_Wire_LIDAR_Altimeter;
Flight_Controller_AIDA.in_CAN_Wire_LIDAR_Altimeter := LIDAR_Altimeter_AIDA.out_CAN_Wire;
Optical_Flow_Sensor_AIDA.in_CAN_Wire := Flight_Controller_AIDA.out_CAN_Wire_Optical_Flow_Sensor;
Flight_Controller_AIDA.in_CAN_Wire_Optical_Flow_Sensor := Optical_Flow_Sensor_AIDA.out_CAN_Wire;
GPS_Receiver_AIDA.in_CAN_Wire := Flight_Controller_AIDA.out_CAN_Wire_GPS_Receiver;
Flight_Controller_AIDA.in_CAN_Wire_GPS_Receiver := GPS_Receiver_AIDA.out_CAN_Wire;
end
/*class Payload //Out of the scope
end*/
class Power_Supply_System
extends FM_Loss_Behaviour; //commun Loss
//class instances
Power_Supply_behavior flightControlSupply_behavior (lambda_Loss = 8.363e-08);
Power_Supply_behavior propulsionSupply_1_behavior (lambda_Loss = 8.041e-11);
Power_Supply_behavior propulsionSupply_2_behavior (lambda_Loss = 8.041e-11);
Power_Supply_behavior propulsionSupply_3_behavior (lambda_Loss = 8.041e-11);
Power_Supply_behavior propulsionSupply_4_behavior (lambda_Loss = 8.041e-11);
//flow variables
Status in_ML_power_supply (reset = LOST);
Status out_EPL_Power_supply_flight_control_system (reset = LOST);
Status out_EPL_Power_supply_PU1 (reset = LOST);
Status out_EPL_Power_supply_PU2 (reset = LOST);
Status out_EPL_Power_supply_PU3 (reset = LOST);
Status out_EPL_Power_supply_PU4 (reset = LOST);
// assertion
assertion
if (vsWorking==OK and in_ML_power_supply == OK) then out_EPL_Power_supply_flight_control_system := flightControlSupply_behavior.out_EPL_Power_supply;
if (vsWorking==OK and in_ML_power_supply == OK) then out_EPL_Power_supply_PU1 := propulsionSupply_1_behavior.out_EPL_Power_supply;
if (vsWorking==OK and in_ML_power_supply == OK) then out_EPL_Power_supply_PU2 := propulsionSupply_2_behavior.out_EPL_Power_supply;
if (vsWorking==OK and in_ML_power_supply == OK) then out_EPL_Power_supply_PU3 := propulsionSupply_3_behavior.out_EPL_Power_supply;
if (vsWorking==OK and in_ML_power_supply == OK) then out_EPL_Power_supply_PU4 := propulsionSupply_4_behavior.out_EPL_Power_supply;
if (vsWorking==OK and in_ML_power_supply == ERR) then out_EPL_Power_supply_flight_control_system := ERR;
if (vsWorking==OK and in_ML_power_supply == ERR) then out_EPL_Power_supply_PU1 := ERR;
if (vsWorking==OK and in_ML_power_supply == ERR) then out_EPL_Power_supply_PU2 := ERR;
if (vsWorking==OK and in_ML_power_supply == ERR) then out_EPL_Power_supply_PU3 := ERR;
if (vsWorking==OK and in_ML_power_supply == ERR) then out_EPL_Power_supply_PU4 := ERR;
end
class Structure
extends FM_Loss_Behaviour;
//flow variables Flight control system
Status out_ML_RC_Receiver (reset = LOST);
Status out_ML_Wifi_Controller (reset = LOST);
Status out_ML_LIDAR_Altimeter (reset = LOST);
Status out_ML_GPS_Recerver (reset = LOST);
Status out_ML_Optical_Flow_Sensor (reset = LOST);
Status out_ML_Flight_Controller (reset = LOST);
//flow variables Propulsion system
// Status in_ML_Propeller_1_thrust_and_torque (reset = LOST);
// Status in_ML_Propeller_2_thrust_and_torque (reset = LOST);
// Status in_ML_Propeller_3_thrust_and_torque (reset = LOST);
// Status in_ML_Propeller_4_thrust_and_torque (reset = LOST);
Status out_ML_Propulsion_Unit1 (reset = LOST);
Status out_ML_Propulsion_Unit2 (reset = LOST);
Status out_ML_Propulsion_Unit3 (reset = LOST);
Status out_ML_Propulsion_Unit4 (reset = LOST);
//flow variables Flight control system
Status out_ML_power_supply (reset = LOST);
//local flow variables
Status in_local_flow (reset = LOST);
// assertion
assertion
// if (in_ML_Propeller_1_thrust_and_torque == OK and in_ML_Propeller_2_thrust_and_torque == OK and in_ML_Propeller_3_thrust_and_torque == OK and in_ML_Propeller_4_thrust_and_torque == OK) then in_local_flow := OK ;
// if (in_ML_Propeller_1_thrust_and_torque == ERR or in_ML_Propeller_2_thrust_and_torque == ERR or in_ML_Propeller_3_thrust_and_torque == ERR or in_ML_Propeller_4_thrust_and_torque == ERR) then in_local_flow := ERR ;
in_local_flow := OK;
if (vsWorking==OK) then out_ML_RC_Receiver := in_local_flow;
if (vsWorking==OK) then out_ML_Wifi_Controller := in_local_flow;
if (vsWorking==OK) then out_ML_LIDAR_Altimeter := in_local_flow;
if (vsWorking==OK) then out_ML_GPS_Recerver := in_local_flow;
if (vsWorking==OK) then out_ML_Optical_Flow_Sensor := in_local_flow;
if (vsWorking==OK) then out_ML_Flight_Controller := in_local_flow;
if (vsWorking==OK) then out_ML_Propulsion_Unit1 := in_local_flow;
if (vsWorking==OK) then out_ML_Propulsion_Unit2 := in_local_flow;
if (vsWorking==OK) then out_ML_Propulsion_Unit3 := in_local_flow;
if (vsWorking==OK) then out_ML_Propulsion_Unit4 := in_local_flow;
if (vsWorking==OK) then out_ML_power_supply := in_local_flow;
end
class Propulsion_System
//class instances
Propulsion_Unit propulsion_Unit1;
Propulsion_Unit propulsion_Unit2;
Propulsion_Unit propulsion_Unit3;
Propulsion_Unit propulsion_Unit4;
end
/*------------------------------
//concrete class for system level 0
-----------------------------*/
class Drone
//class instances
Flight_Control_System Flight_Control_System_AIDA;
Power_Supply_System Power_Supply_System_AIDA (lambda_Loss = 1.415e-08);
Structure Structure_AIDA(lambda_Loss = 1.744e-05);
Propulsion_System Propulsion_System_AIDA;
//flow variables
Status in_USL_Remote_Control (reset = LOST);
// Status in_USL_Positioning_Signal (reset = LOST);
Status in_USL_Mission_Data (reset = LOST);
// assertion
assertion
// ML assertion
// Structure_AIDA.in_ML_Propeller_1_thrust_and_torque := Propulsion_System_AIDA.propulsion_Unit1.propeller.out_ML_Propeller_thrust_and_torque;
// Structure_AIDA.in_ML_Propeller_2_thrust_and_torque := Propulsion_System_AIDA.propulsion_Unit2.propeller.out_ML_Propeller_thrust_and_torque;
// Structure_AIDA.in_ML_Propeller_3_thrust_and_torque := Propulsion_System_AIDA.propulsion_Unit3.propeller.out_ML_Propeller_thrust_and_torque;
// Structure_AIDA.in_ML_Propeller_4_thrust_and_torque := Propulsion_System_AIDA.propulsion_Unit4.propeller.out_ML_Propeller_thrust_and_torque;
Flight_Control_System_AIDA.RC_Receiver_AIDA.in_ML := Structure_AIDA.out_ML_RC_Receiver;
Flight_Control_System_AIDA.Wifi_Controller_AIDA.in_ML := Structure_AIDA.out_ML_Wifi_Controller;
Flight_Control_System_AIDA.LIDAR_Altimeter_AIDA.in_ML := Structure_AIDA.out_ML_LIDAR_Altimeter;
Flight_Control_System_AIDA.Optical_Flow_Sensor_AIDA.in_ML := Structure_AIDA.out_ML_Optical_Flow_Sensor;
Flight_Control_System_AIDA.GPS_Receiver_AIDA.in_ML := Structure_AIDA.out_ML_GPS_Recerver;
Flight_Control_System_AIDA.Flight_Controller_AIDA.in_ML := Structure_AIDA.out_ML_Flight_Controller;
Power_Supply_System_AIDA.in_ML_power_supply := Structure_AIDA.out_ML_power_supply;
Propulsion_System_AIDA.propulsion_Unit1.in_ML := Structure_AIDA.out_ML_Propulsion_Unit1;
Propulsion_System_AIDA.propulsion_Unit2.in_ML := Structure_AIDA.out_ML_Propulsion_Unit2;
Propulsion_System_AIDA.propulsion_Unit3.in_ML := Structure_AIDA.out_ML_Propulsion_Unit3;
Propulsion_System_AIDA.propulsion_Unit4.in_ML := Structure_AIDA.out_ML_Propulsion_Unit4;
// USL assertion
Flight_Control_System_AIDA.RC_Receiver_AIDA.in_USL_Remote_Control := in_USL_Remote_Control;
Flight_Control_System_AIDA.Wifi_Controller_AIDA.in_USL_Mission_Data := in_USL_Mission_Data;
// Flight_Control_System_AIDA.GPS_Receiver_AIDA.in_USL_Positioning_Signal := in_USL_Positioning_Signal;
//CAN MOTOR
Propulsion_System_AIDA.propulsion_Unit1.motor_Control_Protection.in_CAN_Wire_motor := Flight_Control_System_AIDA.Flight_Controller_AIDA.out_CAN_Wire_motor1;
Propulsion_System_AIDA.propulsion_Unit2.motor_Control_Protection.in_CAN_Wire_motor := Flight_Control_System_AIDA.Flight_Controller_AIDA.out_CAN_Wire_motor2;
Propulsion_System_AIDA.propulsion_Unit3.motor_Control_Protection.in_CAN_Wire_motor := Flight_Control_System_AIDA.Flight_Controller_AIDA.out_CAN_Wire_motor3;
Propulsion_System_AIDA.propulsion_Unit4.motor_Control_Protection.in_CAN_Wire_motor := Flight_Control_System_AIDA.Flight_Controller_AIDA.out_CAN_Wire_motor4;
Flight_Control_System_AIDA.Flight_Controller_AIDA.in_CAN_Wire_motor1 := Propulsion_System_AIDA.propulsion_Unit1.motor_Control_Protection.out_CAN_Wire_motor;
Flight_Control_System_AIDA.Flight_Controller_AIDA.in_CAN_Wire_motor2 := Propulsion_System_AIDA.propulsion_Unit2.motor_Control_Protection.out_CAN_Wire_motor;
Flight_Control_System_AIDA.Flight_Controller_AIDA.in_CAN_Wire_motor3 := Propulsion_System_AIDA.propulsion_Unit3.motor_Control_Protection.out_CAN_Wire_motor;
Flight_Control_System_AIDA.Flight_Controller_AIDA.in_CAN_Wire_motor4 := Propulsion_System_AIDA.propulsion_Unit4.motor_Control_Protection.out_CAN_Wire_motor;
//PWM MOTOR
Propulsion_System_AIDA.propulsion_Unit1.motor_Control_Protection.in_PWM := Flight_Control_System_AIDA.Flight_Controller_AIDA.out_PWM1;
Propulsion_System_AIDA.propulsion_Unit2.motor_Control_Protection.in_PWM := Flight_Control_System_AIDA.Flight_Controller_AIDA.out_PWM2;
Propulsion_System_AIDA.propulsion_Unit3.motor_Control_Protection.in_PWM := Flight_Control_System_AIDA.Flight_Controller_AIDA.out_PWM3;
Propulsion_System_AIDA.propulsion_Unit4.motor_Control_Protection.in_PWM := Flight_Control_System_AIDA.Flight_Controller_AIDA.out_PWM4;
//Energy Distribution
Flight_Control_System_AIDA.Flight_Controller_AIDA.in_PowerSupply := Power_Supply_System_AIDA.out_EPL_Power_supply_flight_control_system;
Propulsion_System_AIDA.propulsion_Unit1.motor_Control_Protection.in_EPL_Power_Supply := Power_Supply_System_AIDA.out_EPL_Power_supply_PU1;
Propulsion_System_AIDA.propulsion_Unit2.motor_Control_Protection.in_EPL_Power_Supply := Power_Supply_System_AIDA.out_EPL_Power_supply_PU2;
Propulsion_System_AIDA.propulsion_Unit3.motor_Control_Protection.in_EPL_Power_Supply := Power_Supply_System_AIDA.out_EPL_Power_supply_PU3;
Propulsion_System_AIDA.propulsion_Unit4.motor_Control_Protection.in_EPL_Power_Supply := Power_Supply_System_AIDA.out_EPL_Power_supply_PU4;
end
class Remote_Battery
extends FM_Loss_Behaviour;
//flow variables
Status out_energy_flow (reset = LOST);
// assertion
assertion
if (vsWorking==OK) then out_energy_flow := OK;
end
class Remote_Communication
extends FM_Erroneous_Loss_Behaviour;
//flow variables
Status in_energy_flow (reset = LOST);
Status out_USL_Remote_Control (reset = LOST);
assertion
if (vsWorking==OK) then out_USL_Remote_Control := in_energy_flow;
if (vsWorking==ERR) then out_USL_Remote_Control := ERR;
end
//TODO : placer des observers pour chaque SF (suivant l'allocation avec les composants)
\ No newline at end of file
/*
// * AltaRica 3.0 model
// * System of interest : AIDA Model
// * by Anthony Legendre - Fractus
// * This file is part of the S2C project.
// * Copyright (c) 2021-2022 Fractus - All Rights Reserved.
// */
/* Table of Contents
* --------------
* 0. Import
* 1. AIDASystem & Environment
* 2. AIDASystem
* 3. Drone
* 4. RemoteControl
* 5. ControlDesk
*/
/*
* 0. Import
* -------------------
*/
include "AIDA_library.alt"
/*
* 1. AIDASystem & Environment
* -------------------
*/
block AIDASystem_andEnv
// observer deterministe
Boolean obs_FC10 (reset = false);
Boolean obs_FC11 (reset = false);
Boolean obs_FC12 (reset = false);
Boolean obs_FC13 (reset = false);
Boolean obs_FC14 (reset = false);
Boolean obs_FC15 (reset = false);
Boolean obs_FC16 (reset = false);
Boolean obs_FC17 (reset = false);
Boolean obs_FC18 (reset = false);
Boolean obs_FC19 (reset = false);
Boolean obs_FC110 (reset = false);
Boolean obs_FC111 (reset = false);
Boolean obs_FC112 (reset = false);
Boolean obs_FC113 (reset = false);
Boolean obs_FC114 (reset = false);
Boolean obs_FC115 (reset = false);
Boolean obs_FC116 (reset = false);
observer Boolean obs_FC1_deterministe = obs_FC115 or obs_FC116;
observer Boolean obs_FC11_deterministe = obs_FC115;
observer Boolean obs_FC12_deterministe = obs_FC116;
Boolean obsGPS (reset = false);
Boolean obs_FC20 (reset = false);
Boolean obs_FC21 (reset = false);
Boolean obs_FC22 (reset = false);
Boolean obs_FC23 (reset = false);
Boolean obs_FC24 (reset = false);
Boolean obs_FC25 (reset = false);
observer Boolean obs_FC2_deterministe = obs_FC20 or obs_FC21 or obs_FC22 or obs_FC23 or obs_FC24 or obs_FC25;
Boolean obs_FC31 (reset = false);
Boolean obs_FC32 (reset = false);
Boolean obs_FC33 (reset = false);
observer Boolean obs_FC3_deterministe = obs_FC31 or obs_FC32 or obs_FC33;
observer Boolean obs_FC4_deterministe = (AIDA_System.drone_AIDA.Flight_Control_System_AIDA.Flight_Controller_AIDA.Flight_control_main_channel_behavior_AIDA.main_flight_control_board.pwm3_driver.vsWorking==LOST) or (AIDA_System.drone_AIDA.Flight_Control_System_AIDA.Flight_Controller_AIDA.Flight_control_main_channel_behavior_AIDA.main_flight_control_board.pwm3_driver.vsWorking==ERR) or (AIDA_System.Remote_Control.remote_Communication.vsWorking==LOST);
block AIDA_System
//class instances
Drone drone_AIDA;
//flow variables
// Status in_USL_Positioning_signal (reset = LOST);
block Remote_Control
//flow variables
Status out_USL_Remote_Control (reset = LOST);
//class instances
Remote_Battery remote_Battery (lambda_Loss = 2.702e-05);
Remote_Communication remote_Communication (lambda_ERR = 1e-09, lambda_Loss = 8.430e-05);
// assertion
assertion
remote_Communication.in_energy_flow := remote_Battery.out_energy_flow;
out_USL_Remote_Control := remote_Communication.out_USL_Remote_Control;
end
block Drone_control_desk
extends ObjetState;
Status out_USL_Mission_Data (reset = LOST);
Status in_USL_Mission_Data (reset = LOST);
// assertion
assertion
if (vsWorking==OK) then out_USL_Mission_Data := OK ;
end
// assertion
assertion
drone_AIDA.in_USL_Remote_Control := Remote_Control.out_USL_Remote_Control;
// drone_AIDA.in_USL_Positioning_Signal := in_USL_Positioning_signal;
drone_AIDA.in_USL_Mission_Data := Drone_control_desk.out_USL_Mission_Data;
end
/* block Positioning_System
extends ObjetState;
//flow variables
Status out_USL_Positioning_signal (reset = LOST);
assertion
out_USL_Positioning_signal := vsWorking;
end*/
//out of scope
/* block Drone_Environment
end
block Drone_Operator
end
block Air_Traffic_Management_Authorities
end
block Aircraft
end
block Airline_database
end
block Aircraft_flight_crew
end*/
// assertion
assertion
// AIDA_System.in_USL_Positioning_signal := Positioning_System.out_USL_Positioning_signal;
// observeur setting definition obs_FC10 ... obs_FC116
obs_FC10 := (AIDA_System.drone_AIDA.Propulsion_System_AIDA.propulsion_Unit1.motor_Control_Protection.can_motor_driver.vsWorking == LOST) or (AIDA_System.drone_AIDA.Propulsion_System_AIDA.propulsion_Unit1.motor_Control_Protection.can_motor_driver.vsWorking == ERR) or (AIDA_System.drone_AIDA.Propulsion_System_AIDA.propulsion_Unit1.motor_Control_Protection.motor_controller_behavior.vsWorking == LOST) or (AIDA_System.drone_AIDA.Propulsion_System_AIDA.propulsion_Unit1.motor_Control_Protection.motor_controller_behavior.vsWorking == ERR) or (AIDA_System.drone_AIDA.Propulsion_System_AIDA.propulsion_Unit1.motor_Control_Protection.motor_protection_behavior.vsWorking == LOST);
obs_FC11 := (AIDA_System.drone_AIDA.Propulsion_System_AIDA.propulsion_Unit1.motor_Control_Protection.motor_protection_behavior.vsWorking == ERR) or (AIDA_System.drone_AIDA.Propulsion_System_AIDA.propulsion_Unit2.motor_Control_Protection.can_motor_driver.vsWorking == LOST) or (AIDA_System.drone_AIDA.Propulsion_System_AIDA.propulsion_Unit2.motor_Control_Protection.can_motor_driver.vsWorking == ERR) or (AIDA_System.drone_AIDA.Propulsion_System_AIDA.propulsion_Unit2.motor_Control_Protection.motor_controller_behavior.vsWorking == LOST) or (AIDA_System.drone_AIDA.Propulsion_System_AIDA.propulsion_Unit2.motor_Control_Protection.motor_controller_behavior.vsWorking == ERR);
obs_FC12 := (AIDA_System.drone_AIDA.Propulsion_System_AIDA.propulsion_Unit2.motor_Control_Protection.motor_protection_behavior.vsWorking == LOST) or (AIDA_System.drone_AIDA.Propulsion_System_AIDA.propulsion_Unit2.motor_Control_Protection.motor_protection_behavior.vsWorking == ERR) or (AIDA_System.drone_AIDA.Propulsion_System_AIDA.propulsion_Unit3.motor_Control_Protection.can_motor_driver.vsWorking == LOST) or (AIDA_System.drone_AIDA.Propulsion_System_AIDA.propulsion_Unit3.motor_Control_Protection.can_motor_driver.vsWorking == ERR) or (AIDA_System.drone_AIDA.Propulsion_System_AIDA.propulsion_Unit3.motor_Control_Protection.motor_controller_behavior.vsWorking == LOST);
obs_FC13 := (AIDA_System.drone_AIDA.Propulsion_System_AIDA.propulsion_Unit3.motor_Control_Protection.motor_controller_behavior.vsWorking == ERR) or (AIDA_System.drone_AIDA.Propulsion_System_AIDA.propulsion_Unit3.motor_Control_Protection.motor_protection_behavior.vsWorking == LOST) or (AIDA_System.drone_AIDA.Propulsion_System_AIDA.propulsion_Unit3.motor_Control_Protection.motor_protection_behavior.vsWorking == ERR) or (AIDA_System.drone_AIDA.Propulsion_System_AIDA.propulsion_Unit4.motor_Control_Protection.can_motor_driver.vsWorking == LOST) or (AIDA_System.drone_AIDA.Propulsion_System_AIDA.propulsion_Unit4.motor_Control_Protection.can_motor_driver.vsWorking == ERR);
obs_FC14 := (AIDA_System.drone_AIDA.Propulsion_System_AIDA.propulsion_Unit4.motor_Control_Protection.motor_controller_behavior.vsWorking == LOST) or (AIDA_System.drone_AIDA.Propulsion_System_AIDA.propulsion_Unit4.motor_Control_Protection.motor_controller_behavior.vsWorking == ERR) or (AIDA_System.drone_AIDA.Propulsion_System_AIDA.propulsion_Unit4.motor_Control_Protection.motor_protection_behavior.vsWorking == LOST) or (AIDA_System.drone_AIDA.Propulsion_System_AIDA.propulsion_Unit4.motor_Control_Protection.motor_protection_behavior.vsWorking == ERR) or (AIDA_System.drone_AIDA.Propulsion_System_AIDA.propulsion_Unit1.motor.vsWorking == LOST) ;
obs_FC15 := (AIDA_System.drone_AIDA.Propulsion_System_AIDA.propulsion_Unit1.motor.rotation_generation.vsWorking == LOST) or (AIDA_System.drone_AIDA.Propulsion_System_AIDA.propulsion_Unit1.motor.rotation_generation.vsWorking == ERR) or (AIDA_System.drone_AIDA.Propulsion_System_AIDA.propulsion_Unit1.motor.speed_measurement.vsWorking == LOST) or (AIDA_System.drone_AIDA.Propulsion_System_AIDA.propulsion_Unit1.motor.speed_measurement.vsWorking == ERR)or (AIDA_System.drone_AIDA.Propulsion_System_AIDA.propulsion_Unit2.motor.vsWorking == LOST);
obs_FC16 := (AIDA_System.drone_AIDA.Propulsion_System_AIDA.propulsion_Unit2.motor.rotation_generation.vsWorking == LOST) or (AIDA_System.drone_AIDA.Propulsion_System_AIDA.propulsion_Unit2.motor.rotation_generation.vsWorking == ERR) or (AIDA_System.drone_AIDA.Propulsion_System_AIDA.propulsion_Unit2.motor.speed_measurement.vsWorking == LOST) or (AIDA_System.drone_AIDA.Propulsion_System_AIDA.propulsion_Unit2.motor.speed_measurement.vsWorking == ERR)or (AIDA_System.drone_AIDA.Propulsion_System_AIDA.propulsion_Unit3.motor.vsWorking == LOST);
obs_FC17 := (AIDA_System.drone_AIDA.Propulsion_System_AIDA.propulsion_Unit3.motor.rotation_generation.vsWorking == LOST) or (AIDA_System.drone_AIDA.Propulsion_System_AIDA.propulsion_Unit3.motor.rotation_generation.vsWorking == ERR) or (AIDA_System.drone_AIDA.Propulsion_System_AIDA.propulsion_Unit3.motor.speed_measurement.vsWorking == LOST) or (AIDA_System.drone_AIDA.Propulsion_System_AIDA.propulsion_Unit3.motor.speed_measurement.vsWorking == ERR)or (AIDA_System.drone_AIDA.Propulsion_System_AIDA.propulsion_Unit4.motor.vsWorking == LOST);
obs_FC18 := (AIDA_System.drone_AIDA.Propulsion_System_AIDA.propulsion_Unit4.motor.rotation_generation.vsWorking == LOST) or (AIDA_System.drone_AIDA.Propulsion_System_AIDA.propulsion_Unit4.motor.rotation_generation.vsWorking == ERR) or (AIDA_System.drone_AIDA.Propulsion_System_AIDA.propulsion_Unit4.motor.speed_measurement.vsWorking == LOST) or (AIDA_System.drone_AIDA.Propulsion_System_AIDA.propulsion_Unit4.motor.speed_measurement.vsWorking == ERR) or (AIDA_System.drone_AIDA.Propulsion_System_AIDA.propulsion_Unit1.propeller.vsWorking == LOST);
obs_FC19 := (AIDA_System.drone_AIDA.Propulsion_System_AIDA.propulsion_Unit1.propeller.vsWorking == ERR) or (AIDA_System.drone_AIDA.Propulsion_System_AIDA.propulsion_Unit2.propeller.vsWorking == LOST) or (AIDA_System.drone_AIDA.Propulsion_System_AIDA.propulsion_Unit2.propeller.vsWorking == ERR) or (AIDA_System.drone_AIDA.Propulsion_System_AIDA.propulsion_Unit3.propeller.vsWorking == LOST) or (AIDA_System.drone_AIDA.Propulsion_System_AIDA.propulsion_Unit3.propeller.vsWorking == ERR);
obs_FC110 := (AIDA_System.drone_AIDA.Propulsion_System_AIDA.propulsion_Unit4.propeller.vsWorking == LOST) or (AIDA_System.drone_AIDA.Propulsion_System_AIDA.propulsion_Unit4.propeller.vsWorking == ERR) or (AIDA_System.drone_AIDA.Power_Supply_System_AIDA.propulsionSupply_1_behavior.vsWorking == LOST) or (AIDA_System.drone_AIDA.Power_Supply_System_AIDA.propulsionSupply_2_behavior.vsWorking == LOST) or (AIDA_System.drone_AIDA.Power_Supply_System_AIDA.propulsionSupply_3_behavior.vsWorking == LOST);
obs_FC111 := (AIDA_System.drone_AIDA.Power_Supply_System_AIDA.propulsionSupply_4_behavior.vsWorking == LOST) or (AIDA_System.drone_AIDA.Structure_AIDA.vsWorking == LOST) or (AIDA_System.drone_AIDA.Flight_Control_System_AIDA.RC_Receiver_AIDA.vsWorking == LOST) or (AIDA_System.drone_AIDA.Flight_Control_System_AIDA.RC_Receiver_AIDA.vsWorking == ERR) or (AIDA_System.drone_AIDA.Flight_Control_System_AIDA.LIDAR_Altimeter_AIDA.vsWorking==ERR);
obs_FC112 := (AIDA_System.drone_AIDA.Flight_Control_System_AIDA.Optical_Flow_Sensor_AIDA.vsWorking==ERR) /*or (AIDA_System.drone_AIDA.Flight_Control_System_AIDA.GPS_Receiver_AIDA.vsWorking==ERR) change here*/ or (AIDA_System.drone_AIDA.Flight_Control_System_AIDA.Flight_Controller_AIDA.Flight_control_monitoring_channel_behavior_AIDA.magnetometer_MON_behavior.vsWorking==LOST) or (AIDA_System.drone_AIDA.Flight_Control_System_AIDA.Flight_Controller_AIDA.Flight_control_monitoring_channel_behavior_AIDA.magnetometer_MON_behavior.vsWorking==ERR) or (AIDA_System.drone_AIDA.Flight_Control_System_AIDA.Flight_Controller_AIDA.Flight_control_main_channel_behavior_AIDA.main_flight_control_board.global_flight_control_board.vsWorking==LOST);
obs_FC113 := (AIDA_System.drone_AIDA.Flight_Control_System_AIDA.Flight_Controller_AIDA.Flight_control_main_channel_behavior_AIDA.main_flight_control_board.global_flight_control_board.vsWorking==ERR) or (AIDA_System.drone_AIDA.Flight_Control_System_AIDA.Flight_Controller_AIDA.Flight_control_main_channel_behavior_AIDA.main_flight_control_board.pwm1_driver.vsWorking==LOST) or (AIDA_System.drone_AIDA.Flight_Control_System_AIDA.Flight_Controller_AIDA.Flight_control_main_channel_behavior_AIDA.main_flight_control_board.pwm1_driver.vsWorking==ERR) or (AIDA_System.drone_AIDA.Flight_Control_System_AIDA.Flight_Controller_AIDA.Flight_control_main_channel_behavior_AIDA.main_flight_control_board.pwm2_driver.vsWorking==LOST) or (AIDA_System.drone_AIDA.Flight_Control_System_AIDA.Flight_Controller_AIDA.Flight_control_main_channel_behavior_AIDA.main_flight_control_board.pwm2_driver.vsWorking==ERR);
obs_FC114 := (AIDA_System.drone_AIDA.Flight_Control_System_AIDA.Flight_Controller_AIDA.Flight_control_main_channel_behavior_AIDA.main_flight_control_board.can_sensor.vsWorking==ERR) or (AIDA_System.drone_AIDA.Flight_Control_System_AIDA.Flight_Controller_AIDA.Flight_control_monitoring_channel_behavior_AIDA.monitoring_flight_control_board.MON_can_sensor.vsWorking==ERR) or (AIDA_System.drone_AIDA.Flight_Control_System_AIDA.Flight_Controller_AIDA.Flight_control_monitoring_channel_behavior_AIDA.monitoring_flight_control_board.MON_ccdl_behavior.vsWorking==ERR);
obsGPS := (AIDA_System.drone_AIDA.Flight_Control_System_AIDA.GPS_Receiver_ERR.vsWorking==ERR)or (AIDA_System.drone_AIDA.Flight_Control_System_AIDA.GPS_Receiver_CANBus_ERR.vsWorking==ERR);
obs_FC115 := obs_FC10 or obs_FC11 or obs_FC12 or obs_FC13 or obs_FC14 or obs_FC15 or obs_FC16 or obs_FC17 or obs_FC18 or obs_FC19 ;
obs_FC116 := obs_FC110 or obs_FC111 or obs_FC112 or obs_FC113 or obs_FC114 or obsGPS;
// observeur setting definition obs_FC21 ... obs_FC25
obs_FC20 := (AIDA_System.drone_AIDA.Power_Supply_System_AIDA.flightControlSupply_behavior.vsWorking==LOST) or (AIDA_System.drone_AIDA.Power_Supply_System_AIDA.vsWorking==LOST) or (AIDA_System.drone_AIDA.Flight_Control_System_AIDA.LIDAR_Altimeter_AIDA.vsWorking==LOST) or (AIDA_System.drone_AIDA.Flight_Control_System_AIDA.Optical_Flow_Sensor_AIDA.vsWorking==LOST) or (AIDA_System.drone_AIDA.Flight_Control_System_AIDA.GPS_Receiver_AIDA.vsWorking==LOST);
obs_FC21 := (AIDA_System.drone_AIDA.Flight_Control_System_AIDA.Flight_Controller_AIDA.Flight_control_main_channel_behavior_AIDA.inertial_reference_sensors_behavior.vsWorking==LOST)or (AIDA_System.drone_AIDA.Flight_Control_System_AIDA.Flight_Controller_AIDA.Flight_control_main_channel_behavior_AIDA.inertial_reference_sensors_behavior.vsWorking==ERR) or (AIDA_System.drone_AIDA.Flight_Control_System_AIDA.Flight_Controller_AIDA.Flight_control_monitoring_channel_behavior_AIDA.inertial_reference_sensors_MON_behavior.vsWorking==LOST) or (AIDA_System.drone_AIDA.Flight_Control_System_AIDA.Flight_Controller_AIDA.Flight_control_monitoring_channel_behavior_AIDA.inertial_reference_sensors_MON_behavior.vsWorking==ERR) or (AIDA_System.drone_AIDA.Flight_Control_System_AIDA.Flight_Controller_AIDA.Flight_control_main_channel_behavior_AIDA.pressure_sensor_behavior.vsWorking==LOST);
obs_FC22 := (AIDA_System.drone_AIDA.Flight_Control_System_AIDA.Flight_Controller_AIDA.Flight_control_main_channel_behavior_AIDA.pressure_sensor_behavior.vsWorking==ERR) or (AIDA_System.drone_AIDA.Flight_Control_System_AIDA.Flight_Controller_AIDA.Flight_control_monitoring_channel_behavior_AIDA.pressure_sensor_MON_behavior.vsWorking==LOST) or (AIDA_System.drone_AIDA.Flight_Control_System_AIDA.Flight_Controller_AIDA.Flight_control_monitoring_channel_behavior_AIDA.pressure_sensor_MON_behavior.vsWorking==ERR) or (AIDA_System.drone_AIDA.Flight_Control_System_AIDA.Flight_Controller_AIDA.Flight_control_main_channel_behavior_AIDA.magnetometer_behavior.vsWorking==LOST) or (AIDA_System.drone_AIDA.Flight_Control_System_AIDA.Flight_Controller_AIDA.Flight_control_main_channel_behavior_AIDA.magnetometer_behavior.vsWorking==ERR);
obs_FC23 := (AIDA_System.drone_AIDA.Flight_Control_System_AIDA.Flight_Controller_AIDA.Flight_control_main_channel_behavior_AIDA.main_flight_control_board.wifi_acquisition.vsWorking==LOST) or (AIDA_System.drone_AIDA.Flight_Control_System_AIDA.Flight_Controller_AIDA.Flight_control_main_channel_behavior_AIDA.main_flight_control_board.wifi_acquisition.vsWorking==ERR) or (AIDA_System.drone_AIDA.Flight_Control_System_AIDA.Flight_Controller_AIDA.Flight_control_main_channel_behavior_AIDA.main_flight_control_board.wifi_driver.vsWorking==LOST) or (AIDA_System.drone_AIDA.Flight_Control_System_AIDA.Flight_Controller_AIDA.Flight_control_main_channel_behavior_AIDA.main_flight_control_board.wifi_driver.vsWorking==ERR) or (AIDA_System.drone_AIDA.Flight_Control_System_AIDA.Flight_Controller_AIDA.Flight_control_main_channel_behavior_AIDA.main_flight_control_board.can_sensor.vsWorking==LOST);
obs_FC24 := (AIDA_System.drone_AIDA.Flight_Control_System_AIDA.Flight_Controller_AIDA.Flight_control_main_channel_behavior_AIDA.main_flight_control_board.ccdl_behavior.vsWorking==LOST) or (AIDA_System.drone_AIDA.Flight_Control_System_AIDA.Flight_Controller_AIDA.Flight_control_main_channel_behavior_AIDA.main_flight_control_board.ccdl_behavior.vsWorking==ERR) or (AIDA_System.drone_AIDA.Flight_Control_System_AIDA.Flight_Controller_AIDA.Flight_control_monitoring_channel_behavior_AIDA.monitoring_flight_control_board.MON_wifi_acquisition.vsWorking==LOST) or (AIDA_System.drone_AIDA.Flight_Control_System_AIDA.Flight_Controller_AIDA.Flight_control_monitoring_channel_behavior_AIDA.monitoring_flight_control_board.MON_wifi_acquisition.vsWorking==ERR) or (AIDA_System.drone_AIDA.Flight_Control_System_AIDA.Flight_Controller_AIDA.Flight_control_monitoring_channel_behavior_AIDA.monitoring_flight_control_board.MON_wifi_driver.vsWorking==LOST);
obs_FC25 := (AIDA_System.drone_AIDA.Flight_Control_System_AIDA.Flight_Controller_AIDA.Flight_control_monitoring_channel_behavior_AIDA.monitoring_flight_control_board.MON_wifi_driver.vsWorking==ERR) or (AIDA_System.drone_AIDA.Flight_Control_System_AIDA.Flight_Controller_AIDA.Flight_control_monitoring_channel_behavior_AIDA.monitoring_flight_control_board.MON_can_sensor.vsWorking==LOST) or (AIDA_System.drone_AIDA.Flight_Control_System_AIDA.Flight_Controller_AIDA.Flight_control_monitoring_channel_behavior_AIDA.monitoring_flight_control_board.MON_ccdl_behavior.vsWorking==LOST) or (AIDA_System.drone_AIDA.Flight_Control_System_AIDA.Flight_Controller_AIDA.Flight_control_monitoring_channel_behavior_AIDA.monitoring_flight_control_board.MON_CAN_motor_driver.vsWorking==LOST) or (AIDA_System.drone_AIDA.Flight_Control_System_AIDA.Flight_Controller_AIDA.Flight_control_monitoring_channel_behavior_AIDA.monitoring_flight_control_board.MON_CAN_motor_driver.vsWorking==ERR);
// observeur setting definition obs_FC31, obs_FC32, obs_FC33
obs_FC31 := (AIDA_System.drone_AIDA.Flight_Control_System_AIDA.Wifi_Controller_AIDA.vsWorking==LOST)or (AIDA_System.drone_AIDA.Flight_Control_System_AIDA.Wifi_Controller_AIDA.vsWorking==ERR) or (AIDA_System.drone_AIDA.Flight_Control_System_AIDA.Flight_Controller_AIDA.Flight_control_main_channel_behavior_AIDA.main_flight_control_board.pwm4_driver.vsWorking==LOST) or (AIDA_System.drone_AIDA.Flight_Control_System_AIDA.Flight_Controller_AIDA.Flight_control_main_channel_behavior_AIDA.main_flight_control_board.pwm4_driver.vsWorking==ERR) or (AIDA_System.drone_AIDA.Flight_Control_System_AIDA.Flight_Controller_AIDA.Flight_control_main_channel_behavior_AIDA.main_flight_control_board.rc_acquisition.vsWorking==LOST) ;
obs_FC32 := (AIDA_System.drone_AIDA.Flight_Control_System_AIDA.Flight_Controller_AIDA.Flight_control_main_channel_behavior_AIDA.main_flight_control_board.rc_acquisition.vsWorking==ERR) or (AIDA_System.drone_AIDA.Flight_Control_System_AIDA.Flight_Controller_AIDA.Flight_control_monitoring_channel_behavior_AIDA.monitoring_flight_control_board.MON_global_flight_control_board.vsWorking==LOST) or (AIDA_System.drone_AIDA.Flight_Control_System_AIDA.Flight_Controller_AIDA.Flight_control_monitoring_channel_behavior_AIDA.monitoring_flight_control_board.MON_global_flight_control_board.vsWorking==ERR) or (AIDA_System.drone_AIDA.Flight_Control_System_AIDA.Flight_Controller_AIDA.Flight_control_monitoring_channel_behavior_AIDA.monitoring_flight_control_board.MON_rc_acquisition.vsWorking==LOST) or (AIDA_System.drone_AIDA.Flight_Control_System_AIDA.Flight_Controller_AIDA.Flight_control_monitoring_channel_behavior_AIDA.monitoring_flight_control_board.MON_rc_acquisition.vsWorking==ERR);
obs_FC33 := (AIDA_System.Remote_Control.remote_Communication.vsWorking==ERR) or (AIDA_System.Remote_Control.remote_Battery.vsWorking==LOST);
end
\ No newline at end of file
1 1 6.40879e-05 0.106272 AIDA_System.drone_AIDA.Propulsion_System_AIDA.propulsion_Unit1.motor.rotation_generation.ev_Loss_Failure
2 1 6.40879e-05 0.106272 AIDA_System.drone_AIDA.Propulsion_System_AIDA.propulsion_Unit2.motor.rotation_generation.ev_Loss_Failure
3 1 6.40879e-05 0.106272 AIDA_System.drone_AIDA.Propulsion_System_AIDA.propulsion_Unit3.motor.rotation_generation.ev_Loss_Failure
4 1 6.40879e-05 0.106272 AIDA_System.drone_AIDA.Propulsion_System_AIDA.propulsion_Unit4.motor.rotation_generation.ev_Loss_Failure
5 1 3.32194e-05 0.0550851 AIDA_System.drone_AIDA.Flight_Control_System_AIDA.Flight_Controller_AIDA.Flight_control_main_channel_behavior_AIDA.main_flight_control_board.pwm1_driver.ev_Loss_Failure
6 1 1.91798e-05 0.0318043 AIDA_System.drone_AIDA.Propulsion_System_AIDA.propulsion_Unit1.propeller.ev_Loss_Failure
7 1 1.91798e-05 0.0318043 AIDA_System.drone_AIDA.Propulsion_System_AIDA.propulsion_Unit2.propeller.ev_Loss_Failure
8 1 1.91798e-05 0.0318043 AIDA_System.drone_AIDA.Propulsion_System_AIDA.propulsion_Unit3.propeller.ev_Loss_Failure
9 1 1.91798e-05 0.0318043 AIDA_System.drone_AIDA.Propulsion_System_AIDA.propulsion_Unit4.propeller.ev_Loss_Failure
10 1 1.74398e-05 0.0289191 AIDA_System.drone_AIDA.Structure_AIDA.ev_Loss_Failure
11 1 1.55899e-05 0.0258514 AIDA_System.drone_AIDA.Flight_Control_System_AIDA.Flight_Controller_AIDA.Flight_control_main_channel_behavior_AIDA.main_flight_control_board.pwm2_driver.ev_Loss_Failure
12 1 1.33799e-05 0.0221868 AIDA_System.drone_AIDA.Flight_Control_System_AIDA.RC_Receiver_AIDA.ev_Loss_Failure
13 1 1.28599e-05 0.0213246 AIDA_System.drone_AIDA.Flight_Control_System_AIDA.Flight_Controller_AIDA.Flight_control_monitoring_channel_behavior_AIDA.magnetometer_MON_behavior.ev_Loss_Failure
14 1 1.21799e-05 0.020197 AIDA_System.drone_AIDA.Propulsion_System_AIDA.propulsion_Unit1.motor_Control_Protection.motor_controller_behavior.ev_Loss_Failure
15 1 1.21799e-05 0.020197 AIDA_System.drone_AIDA.Propulsion_System_AIDA.propulsion_Unit2.motor_Control_Protection.motor_controller_behavior.ev_Loss_Failure
16 1 1.21799e-05 0.020197 AIDA_System.drone_AIDA.Propulsion_System_AIDA.propulsion_Unit3.motor_Control_Protection.motor_controller_behavior.ev_Loss_Failure
17 1 1.21799e-05 0.020197 AIDA_System.drone_AIDA.Propulsion_System_AIDA.propulsion_Unit4.motor_Control_Protection.motor_controller_behavior.ev_Loss_Failure
18 1 1.12099e-05 0.0185885 AIDA_System.drone_AIDA.Propulsion_System_AIDA.propulsion_Unit1.motor_Control_Protection.can_motor_driver.ev_Loss_Failure
19 1 1.12099e-05 0.0185885 AIDA_System.drone_AIDA.Propulsion_System_AIDA.propulsion_Unit2.motor_Control_Protection.can_motor_driver.ev_Loss_Failure
20 1 1.12099e-05 0.0185885 AIDA_System.drone_AIDA.Propulsion_System_AIDA.propulsion_Unit3.motor_Control_Protection.can_motor_driver.ev_Loss_Failure
21 1 1.12099e-05 0.0185885 AIDA_System.drone_AIDA.Propulsion_System_AIDA.propulsion_Unit4.motor_Control_Protection.can_motor_driver.ev_Loss_Failure
22 1 8.64796e-06 0.0143402 AIDA_System.drone_AIDA.Propulsion_System_AIDA.propulsion_Unit1.motor.rotation_generation.ev_ERR_Failure
23 1 8.64796e-06 0.0143402 AIDA_System.drone_AIDA.Propulsion_System_AIDA.propulsion_Unit2.motor.rotation_generation.ev_ERR_Failure
24 1 8.64796e-06 0.0143402 AIDA_System.drone_AIDA.Propulsion_System_AIDA.propulsion_Unit3.motor.rotation_generation.ev_ERR_Failure
25 1 8.64796e-06 0.0143402 AIDA_System.drone_AIDA.Propulsion_System_AIDA.propulsion_Unit4.motor.rotation_generation.ev_ERR_Failure
26 1 5.48198e-06 0.00909033 AIDA_System.drone_AIDA.Flight_Control_System_AIDA.Flight_Controller_AIDA.Flight_control_monitoring_channel_behavior_AIDA.monitoring_flight_control_board.MON_ccdl_behavior.ev_ERR_Failure
27 1 4.91999e-06 0.00815842 AIDA_System.drone_AIDA.Flight_Control_System_AIDA.Flight_Controller_AIDA.Flight_control_main_channel_behavior_AIDA.main_flight_control_board.global_flight_control_board.ev_Loss_Failure
28 1 2.961e-06 0.00490998 AIDA_System.drone_AIDA.Flight_Control_System_AIDA.Flight_Controller_AIDA.Flight_control_main_channel_behavior_AIDA.main_flight_control_board.pwm1_driver.ev_ERR_Failure
29 1 2.392e-06 0.00396645 AIDA_System.drone_AIDA.Propulsion_System_AIDA.propulsion_Unit1.motor.ev_Loss_Failure
30 1 2.392e-06 0.00396645 AIDA_System.drone_AIDA.Propulsion_System_AIDA.propulsion_Unit2.motor.ev_Loss_Failure
31 1 2.392e-06 0.00396645 AIDA_System.drone_AIDA.Propulsion_System_AIDA.propulsion_Unit3.motor.ev_Loss_Failure
32 1 2.392e-06 0.00396645 AIDA_System.drone_AIDA.Propulsion_System_AIDA.propulsion_Unit4.motor.ev_Loss_Failure
33 1 1.83e-06 0.00303454 AIDA_System.drone_AIDA.Flight_Control_System_AIDA.Flight_Controller_AIDA.Flight_control_main_channel_behavior_AIDA.main_flight_control_board.pwm2_driver.ev_ERR_Failure
34 1 1.425e-06 0.00236296 AIDA_System.drone_AIDA.Propulsion_System_AIDA.propulsion_Unit1.motor_Control_Protection.motor_protection_behavior.ev_Loss_Failure
35 1 1.425e-06 0.00236296 AIDA_System.drone_AIDA.Propulsion_System_AIDA.propulsion_Unit2.motor_Control_Protection.motor_protection_behavior.ev_Loss_Failure
36 1 1.425e-06 0.00236296 AIDA_System.drone_AIDA.Propulsion_System_AIDA.propulsion_Unit3.motor_Control_Protection.motor_protection_behavior.ev_Loss_Failure
37 1 1.425e-06 0.00236296 AIDA_System.drone_AIDA.Propulsion_System_AIDA.propulsion_Unit4.motor_Control_Protection.motor_protection_behavior.ev_Loss_Failure
38 1 1.332e-06 0.00220875 AIDA_System.drone_AIDA.Propulsion_System_AIDA.propulsion_Unit1.motor.speed_measurement.ev_Loss_Failure
39 1 1.332e-06 0.00220875 AIDA_System.drone_AIDA.Propulsion_System_AIDA.propulsion_Unit2.motor.speed_measurement.ev_Loss_Failure
40 1 1.332e-06 0.00220875 AIDA_System.drone_AIDA.Propulsion_System_AIDA.propulsion_Unit3.motor.speed_measurement.ev_Loss_Failure
41 1 1.332e-06 0.00220875 AIDA_System.drone_AIDA.Propulsion_System_AIDA.propulsion_Unit4.motor.speed_measurement.ev_Loss_Failure
42 1 1.301e-06 0.00215734 AIDA_System.drone_AIDA.Propulsion_System_AIDA.propulsion_Unit1.motor_Control_Protection.motor_protection_behavior.ev_ERR_Failure
43 1 1.301e-06 0.00215734 AIDA_System.drone_AIDA.Propulsion_System_AIDA.propulsion_Unit2.motor_Control_Protection.motor_protection_behavior.ev_ERR_Failure
44 1 1.301e-06 0.00215734 AIDA_System.drone_AIDA.Propulsion_System_AIDA.propulsion_Unit3.motor_Control_Protection.motor_protection_behavior.ev_ERR_Failure
45 1 1.301e-06 0.00215734 AIDA_System.drone_AIDA.Propulsion_System_AIDA.propulsion_Unit4.motor_Control_Protection.motor_protection_behavior.ev_ERR_Failure
46 1 9.468e-07 0.00157 AIDA_System.drone_AIDA.Flight_Control_System_AIDA.Optical_Flow_Sensor_AIDA.ev_ERR_Failure
47 1 4.846e-07 0.000803573 AIDA_System.drone_AIDA.Flight_Control_System_AIDA.GPS_Receiver_ERR.ev_ERR_Failure
48 1 4.501e-07 0.000746364 AIDA_System.drone_AIDA.Propulsion_System_AIDA.propulsion_Unit1.motor_Control_Protection.can_motor_driver.ev_ERR_Failure
49 1 4.501e-07 0.000746364 AIDA_System.drone_AIDA.Propulsion_System_AIDA.propulsion_Unit2.motor_Control_Protection.can_motor_driver.ev_ERR_Failure
50 1 4.501e-07 0.000746364 AIDA_System.drone_AIDA.Propulsion_System_AIDA.propulsion_Unit3.motor_Control_Protection.can_motor_driver.ev_ERR_Failure
51 1 4.501e-07 0.000746364 AIDA_System.drone_AIDA.Propulsion_System_AIDA.propulsion_Unit4.motor_Control_Protection.can_motor_driver.ev_ERR_Failure
52 1 4.501e-07 0.000746364 AIDA_System.drone_AIDA.Flight_Control_System_AIDA.LIDAR_Altimeter_AIDA.ev_ERR_Failure
53 1 4.501e-07 0.000746364 AIDA_System.drone_AIDA.Flight_Control_System_AIDA.LIDAR_Altimeter_AIDA.ev_CANbus_ERR_Failure
54 1 4.501e-07 0.000746364 AIDA_System.drone_AIDA.Flight_Control_System_AIDA.Optical_Flow_Sensor_AIDA.ev_CANbus_ERR_Failure
55 1 4.501e-07 0.000746364 AIDA_System.drone_AIDA.Flight_Control_System_AIDA.GPS_Receiver_CANBus_ERR.ev_ERR_Failure
56 1 4.501e-07 0.000746364 AIDA_System.drone_AIDA.Flight_Control_System_AIDA.Flight_Controller_AIDA.Flight_control_main_channel_behavior_AIDA.main_flight_control_board.can_sensor.ev_ERR_Failure
57 1 4.501e-07 0.000746364 AIDA_System.drone_AIDA.Flight_Control_System_AIDA.Flight_Controller_AIDA.Flight_control_monitoring_channel_behavior_AIDA.monitoring_flight_control_board.MON_can_sensor.ev_ERR_Failure
58 1 3.326e-07 0.000551523 AIDA_System.drone_AIDA.Propulsion_System_AIDA.propulsion_Unit1.propeller.ev_ERR_Failure
59 1 3.326e-07 0.000551523 AIDA_System.drone_AIDA.Propulsion_System_AIDA.propulsion_Unit2.propeller.ev_ERR_Failure
60 1 3.326e-07 0.000551523 AIDA_System.drone_AIDA.Propulsion_System_AIDA.propulsion_Unit3.propeller.ev_ERR_Failure
61 1 3.326e-07 0.000551523 AIDA_System.drone_AIDA.Propulsion_System_AIDA.propulsion_Unit4.propeller.ev_ERR_Failure
62 1 1.901e-07 0.000315227 AIDA_System.drone_AIDA.Flight_Control_System_AIDA.Flight_Controller_AIDA.Flight_control_monitoring_channel_behavior_AIDA.magnetometer_MON_behavior.ev_ERR_Failure
63 1 1.154e-07 0.000191358 AIDA_System.drone_AIDA.Propulsion_System_AIDA.propulsion_Unit1.motor.speed_measurement.ev_ERR_Failure
64 1 1.154e-07 0.000191358 AIDA_System.drone_AIDA.Propulsion_System_AIDA.propulsion_Unit2.motor.speed_measurement.ev_ERR_Failure
65 1 1.154e-07 0.000191358 AIDA_System.drone_AIDA.Propulsion_System_AIDA.propulsion_Unit3.motor.speed_measurement.ev_ERR_Failure
66 1 1.154e-07 0.000191358 AIDA_System.drone_AIDA.Propulsion_System_AIDA.propulsion_Unit4.motor.speed_measurement.ev_ERR_Failure
67 1 1.089e-07 0.00018058 AIDA_System.drone_AIDA.Propulsion_System_AIDA.propulsion_Unit1.motor_Control_Protection.motor_controller_behavior.ev_ERR_Failure
68 1 1.089e-07 0.00018058 AIDA_System.drone_AIDA.Propulsion_System_AIDA.propulsion_Unit2.motor_Control_Protection.motor_controller_behavior.ev_ERR_Failure
69 1 1.089e-07 0.00018058 AIDA_System.drone_AIDA.Propulsion_System_AIDA.propulsion_Unit3.motor_Control_Protection.motor_controller_behavior.ev_ERR_Failure
70 1 1.089e-07 0.00018058 AIDA_System.drone_AIDA.Propulsion_System_AIDA.propulsion_Unit4.motor_Control_Protection.motor_controller_behavior.ev_ERR_Failure
71 1 1e-09 1.65822e-06 AIDA_System.drone_AIDA.Flight_Control_System_AIDA.RC_Receiver_AIDA.ev_ERR_Failure
72 1 1e-09 1.65822e-06 AIDA_System.drone_AIDA.Flight_Control_System_AIDA.Flight_Controller_AIDA.Flight_control_main_channel_behavior_AIDA.main_flight_control_board.global_flight_control_board.ev_ERR_Failure
73 1 8.041e-11 1.33337e-07 AIDA_System.drone_AIDA.Power_Supply_System_AIDA.propulsionSupply_3_behavior.ev_Loss_Failure
74 1 8.041e-11 1.33337e-07 AIDA_System.drone_AIDA.Power_Supply_System_AIDA.propulsionSupply_2_behavior.ev_Loss_Failure
75 1 8.041e-11 1.33337e-07 AIDA_System.drone_AIDA.Power_Supply_System_AIDA.propulsionSupply_1_behavior.ev_Loss_Failure
76 1 8.041e-11 1.33337e-07 AIDA_System.drone_AIDA.Power_Supply_System_AIDA.propulsionSupply_4_behavior.ev_Loss_Failure
1 1 8.24366e-05 0.270281 AIDA_System.drone_AIDA.Flight_Control_System_AIDA.Optical_Flow_Sensor_AIDA.ev_Loss_Failure
2 1 3.94892e-05 0.129472 AIDA_System.drone_AIDA.Flight_Control_System_AIDA.Flight_Controller_AIDA.Flight_control_monitoring_channel_behavior_AIDA.pressure_sensor_MON_behavior.ev_Loss_Failure
3 1 3.01695e-05 0.0989156 AIDA_System.drone_AIDA.Flight_Control_System_AIDA.Flight_Controller_AIDA.Flight_control_main_channel_behavior_AIDA.inertial_reference_sensors_behavior.ev_Loss_Failure
4 1 1.12099e-05 0.0367535 AIDA_System.drone_AIDA.Flight_Control_System_AIDA.GPS_Receiver_AIDA.ev_CANbus_Loss_Failure
5 1 1.12099e-05 0.0367535 AIDA_System.drone_AIDA.Flight_Control_System_AIDA.Optical_Flow_Sensor_AIDA.ev_CANbus_Loss_Failure
6 1 1.12099e-05 0.0367535 AIDA_System.drone_AIDA.Flight_Control_System_AIDA.LIDAR_Altimeter_AIDA.ev_Loss_Failure
7 1 1.12099e-05 0.0367535 AIDA_System.drone_AIDA.Flight_Control_System_AIDA.LIDAR_Altimeter_AIDA.ev_CANbus_Loss_Failure
8 1 1.12099e-05 0.0367535 AIDA_System.drone_AIDA.Flight_Control_System_AIDA.Flight_Controller_AIDA.Flight_control_main_channel_behavior_AIDA.main_flight_control_board.can_sensor.ev_Loss_Failure
9 1 1.12099e-05 0.0367535 AIDA_System.drone_AIDA.Flight_Control_System_AIDA.Flight_Controller_AIDA.Flight_control_monitoring_channel_behavior_AIDA.monitoring_flight_control_board.MON_CAN_motor_driver.ev_ERR_Failure
10 1 1.12099e-05 0.0367535 AIDA_System.drone_AIDA.Flight_Control_System_AIDA.Flight_Controller_AIDA.Flight_control_monitoring_channel_behavior_AIDA.monitoring_flight_control_board.MON_can_sensor.ev_Loss_Failure
11 1 1.11599e-05 0.0365896 AIDA_System.drone_AIDA.Flight_Control_System_AIDA.Flight_Controller_AIDA.Flight_control_main_channel_behavior_AIDA.pressure_sensor_behavior.ev_Loss_Failure
12 1 9.61295e-06 0.0315176 AIDA_System.drone_AIDA.Flight_Control_System_AIDA.Flight_Controller_AIDA.Flight_control_main_channel_behavior_AIDA.main_flight_control_board.wifi_acquisition.ev_Loss_Failure
13 1 7.37897e-06 0.0241931 AIDA_System.drone_AIDA.Flight_Control_System_AIDA.Flight_Controller_AIDA.Flight_control_main_channel_behavior_AIDA.main_flight_control_board.wifi_acquisition.ev_ERR_Failure
14 1 6.54598e-06 0.021462 AIDA_System.drone_AIDA.Flight_Control_System_AIDA.GPS_Receiver_AIDA.ev_Loss_Failure
15 1 6.24098e-06 0.020462 AIDA_System.drone_AIDA.Flight_Control_System_AIDA.Flight_Controller_AIDA.Flight_control_monitoring_channel_behavior_AIDA.monitoring_flight_control_board.MON_wifi_acquisition.ev_ERR_Failure
16 1 5.76698e-06 0.018908 AIDA_System.drone_AIDA.Flight_Control_System_AIDA.Flight_Controller_AIDA.Flight_control_monitoring_channel_behavior_AIDA.monitoring_flight_control_board.MON_wifi_driver.ev_ERR_Failure
17 1 5.21299e-06 0.0170916 AIDA_System.drone_AIDA.Flight_Control_System_AIDA.Flight_Controller_AIDA.Flight_control_main_channel_behavior_AIDA.main_flight_control_board.ccdl_behavior.ev_Loss_Failure
18 1 3.73399e-06 0.0122425 AIDA_System.drone_AIDA.Flight_Control_System_AIDA.Flight_Controller_AIDA.Flight_control_main_channel_behavior_AIDA.main_flight_control_board.wifi_driver.ev_ERR_Failure
19 1 3.30799e-06 0.0108458 AIDA_System.drone_AIDA.Flight_Control_System_AIDA.Flight_Controller_AIDA.Flight_control_monitoring_channel_behavior_AIDA.monitoring_flight_control_board.MON_wifi_driver.ev_Loss_Failure
20 1 3.30199e-06 0.0108261 AIDA_System.drone_AIDA.Flight_Control_System_AIDA.Flight_Controller_AIDA.Flight_control_main_channel_behavior_AIDA.pressure_sensor_behavior.ev_ERR_Failure
21 1 3.077e-06 0.0100884 AIDA_System.drone_AIDA.Flight_Control_System_AIDA.Flight_Controller_AIDA.Flight_control_main_channel_behavior_AIDA.magnetometer_behavior.ev_Loss_Failure
22 1 2.628e-06 0.0086163 AIDA_System.drone_AIDA.Flight_Control_System_AIDA.Flight_Controller_AIDA.Flight_control_monitoring_channel_behavior_AIDA.inertial_reference_sensors_MON_behavior.ev_ERR_Failure
23 1 2.28e-06 0.00747533 AIDA_System.drone_AIDA.Flight_Control_System_AIDA.Flight_Controller_AIDA.Flight_control_monitoring_channel_behavior_AIDA.monitoring_flight_control_board.MON_wifi_acquisition.ev_Loss_Failure
24 1 1.419e-06 0.00465241 AIDA_System.drone_AIDA.Flight_Control_System_AIDA.Flight_Controller_AIDA.Flight_control_monitoring_channel_behavior_AIDA.inertial_reference_sensors_MON_behavior.ev_Loss_Failure
25 1 1.059e-06 0.0034721 AIDA_System.drone_AIDA.Flight_Control_System_AIDA.Flight_Controller_AIDA.Flight_control_monitoring_channel_behavior_AIDA.monitoring_flight_control_board.MON_ccdl_behavior.ev_Loss_Failure
26 1 4.594e-07 0.00150621 AIDA_System.drone_AIDA.Flight_Control_System_AIDA.Flight_Controller_AIDA.Flight_control_monitoring_channel_behavior_AIDA.pressure_sensor_MON_behavior.ev_ERR_Failure
27 1 4.501e-07 0.00147572 AIDA_System.drone_AIDA.Flight_Control_System_AIDA.Flight_Controller_AIDA.Flight_control_monitoring_channel_behavior_AIDA.monitoring_flight_control_board.MON_CAN_motor_driver.ev_Loss_Failure
28 1 2.559e-07 0.000839008 AIDA_System.drone_AIDA.Flight_Control_System_AIDA.Flight_Controller_AIDA.Flight_control_main_channel_behavior_AIDA.magnetometer_behavior.ev_ERR_Failure
29 1 1.713e-07 0.000561634 AIDA_System.drone_AIDA.Flight_Control_System_AIDA.Flight_Controller_AIDA.Flight_control_main_channel_behavior_AIDA.main_flight_control_board.ccdl_behavior.ev_ERR_Failure
30 1 1.483e-07 0.000486225 AIDA_System.drone_AIDA.Flight_Control_System_AIDA.Flight_Controller_AIDA.Flight_control_main_channel_behavior_AIDA.inertial_reference_sensors_behavior.ev_ERR_Failure
31 1 1.294e-07 0.000424258 AIDA_System.drone_AIDA.Flight_Control_System_AIDA.Flight_Controller_AIDA.Flight_control_main_channel_behavior_AIDA.main_flight_control_board.wifi_driver.ev_Loss_Failure
32 1 8.363e-08 0.000274194 AIDA_System.drone_AIDA.Power_Supply_System_AIDA.flightControlSupply_behavior.ev_Loss_Failure
33 1 1.415e-08 4.6393e-05 AIDA_System.drone_AIDA.Power_Supply_System_AIDA.ev_Loss_Failure
1 1 4.23691e-05 0.249995 AIDA_System.drone_AIDA.Flight_Control_System_AIDA.Flight_Controller_AIDA.Flight_control_monitoring_channel_behavior_AIDA.monitoring_flight_control_board.MON_global_flight_control_board.ev_Loss_Failure
2 1 2.93596e-05 0.173234 AIDA_System.drone_AIDA.Flight_Control_System_AIDA.Flight_Controller_AIDA.Flight_control_monitoring_channel_behavior_AIDA.monitoring_flight_control_board.MON_rc_acquisition.ev_Loss_Failure
3 1 2.70196e-05 0.159427 AIDA_System.Remote_Control.remote_Battery.ev_Loss_Failure
4 1 2.66996e-05 0.157539 AIDA_System.drone_AIDA.Flight_Control_System_AIDA.Flight_Controller_AIDA.Flight_control_main_channel_behavior_AIDA.main_flight_control_board.rc_acquisition.ev_Loss_Failure
5 1 2.45097e-05 0.144617 AIDA_System.drone_AIDA.Flight_Control_System_AIDA.Flight_Controller_AIDA.Flight_control_main_channel_behavior_AIDA.main_flight_control_board.pwm4_driver.ev_Loss_Failure
6 1 1.74398e-05 0.102902 AIDA_System.drone_AIDA.Flight_Control_System_AIDA.Wifi_Controller_AIDA.ev_ERR_Failure
7 1 1.273e-06 0.00751122 AIDA_System.drone_AIDA.Flight_Control_System_AIDA.Flight_Controller_AIDA.Flight_control_main_channel_behavior_AIDA.main_flight_control_board.rc_acquisition.ev_ERR_Failure
8 1 3.497e-07 0.00206337 AIDA_System.drone_AIDA.Flight_Control_System_AIDA.Flight_Controller_AIDA.Flight_control_monitoring_channel_behavior_AIDA.monitoring_flight_control_board.MON_rc_acquisition.ev_ERR_Failure
9 1 3.236e-07 0.00190937 AIDA_System.drone_AIDA.Flight_Control_System_AIDA.Flight_Controller_AIDA.Flight_control_main_channel_behavior_AIDA.main_flight_control_board.pwm4_driver.ev_ERR_Failure
10 1 1.338e-07 0.000789476 AIDA_System.drone_AIDA.Flight_Control_System_AIDA.Wifi_Controller_AIDA.ev_Loss_Failure
11 1 1e-09 5.90042e-06 AIDA_System.drone_AIDA.Flight_Control_System_AIDA.Flight_Controller_AIDA.Flight_control_monitoring_channel_behavior_AIDA.monitoring_flight_control_board.MON_global_flight_control_board.ev_ERR_Failure
12 1 1e-09 5.90042e-06 AIDA_System.Remote_Control.remote_Communication.ev_ERR_Failure
1 1 8.42964e-05 0.730223 AIDA_System.Remote_Control.remote_Communication.ev_Loss_Failure
2 1 3.01595e-05 0.261259 AIDA_System.drone_AIDA.Flight_Control_System_AIDA.Flight_Controller_AIDA.Flight_control_main_channel_behavior_AIDA.main_flight_control_board.pwm3_driver.ev_Loss_Failure
3 1 9.833e-07 0.00851789 AIDA_System.drone_AIDA.Flight_Control_System_AIDA.Flight_Controller_AIDA.Flight_control_main_channel_behavior_AIDA.main_flight_control_board.pwm3_driver.ev_ERR_Failure
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment