You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

46 lines
1.6 KiB

const double T; // time bound
// causes of failues
label "fail_sensors" = i=2&s<MIN_SENSORS; // sensors have failed
label "fail_actuators" = o=2&a<MIN_ACTUATORS; // actuators have failed
label "fail_io" = count=MAX_COUNT+1; // IO has failed
label "fail_main" = m=0; // ,main processor has failed
// system status
label "down" = (i=2&s<MIN_SENSORS)|(count=MAX_COUNT+1)|(o=2&a<MIN_ACTUATORS)|(m=0); // system has shutdown
label "danger" = !down & (i=1 | o=1); // transient fault has occured
label "up" = !down & !danger; // system is operational
// Probability of any failure occurring within T hours
P=? [ true U<=(T*3600) "down" ]
// Probability of each failure type occurring first (within T hours)
P=? [ !"down" U<=(T*3600) "fail_sensors" ]
P=? [ !"down" U<=(T*3600) "fail_actuators" ]
P=? [ !"down" U<=(T*3600) "fail_io" ]
P=? [ !"down" U<=(T*3600) "fail_main" ]
// Probability of any failure occurring within T days
P=? [ true U<=(T*3600*24) "down" ]
// Probability of each failure type occurring first (within T days)
P=? [ !"down" U<=(T*3600*24) "fail_sensors" ]
P=? [ !"down" U<=(T*3600*24) "fail_actuators" ]
P=? [ !"down" U<=(T*3600*24) "fail_io" ]
P=? [ !"down" U<=(T*3600*24) "fail_main" ]
// Long-run probability of each failure type occurring
P=? [ !"down" U "fail_sensors" ]
P=? [ !"down" U "fail_actuators" ]
P=? [ !"down" U "fail_io" ]
P=? [ !"down" U "fail_main" ]
// Expected time spent in "up"/"danger"/"down" by time T
R{"up"}=? [ C<=(T*3600) ]
R{"danger"}=? [ C<=(T*3600) ]
R{"down"}=? [ C<=(T*3600) ]
// Expected time spent in "up"/"danger" before "down"
R{"up"}=? [ F "down" ]
R{"danger"}=? [ F "down" ]