コード例 #1
0
def F():
    # FT FROM PROXEL EXAMPLE
    rel_exp_dist = ['EXP', 1 / 3]
    main_exp_dist = ['EXP', 1 / 2]
    lognorm_dist = ['LOGNORM', 2, 1]
    norm_dist = ['NORMAL', 4, 1]
    weibull = ['WEIBULL', 5, 2]
    top_event = Event("Top Event")
    and1 = Gate("AND", parent=top_event)
    intermediate_event_1 = Event("Intermediate Event 1", parent=and1)
    intermediate_event_2 = Event("Intermediate Event 2", parent=and1)
    voting2 = Gate("VOTING", parent=intermediate_event_1, k=2)
    basic_event_3 = Event("Basic Event 3",
                          norm_dist, ['LOGNORM', 4, 1],
                          parent=voting2)
    basic_event_4 = Event("Basic Event 4",
                          rel_exp_dist,
                          weibull,
                          parent=voting2)
    basic_event_5 = Event("Basic Event 5",
                          lognorm_dist,
                          main_exp_dist,
                          parent=voting2)
    or3 = Gate("OR", parent=intermediate_event_2)
    basic_event_1 = Event("Basic Event 1",
                          norm_dist,
                          main_exp_dist,
                          parent=or3)
    basic_event_2 = Event("Basic Event 2", ['EXP', 1 / 3],
                          norm_dist,
                          parent=or3)

    FT = FaultTree(top_event)

    return FT
コード例 #2
0
def H():
    # SECOND PROXEL EXAMPLE
    rel_exp_dist = ['EXP', 1 / 3]
    main_exp_dist = ['EXP', 1 / 2]
    lognorm_dist = ['LOGNORM', 4, 1]
    norm_dist = ['NORMAL', 4, 1]
    weibull = ['WEIBULL', 5, 2]

    top_event = Event("Top Event")
    and1 = Gate("AND", parent=top_event)
    intermediate_event_1 = Event("Intermediate Event 1", parent=and1)
    intermediate_event_2 = Event("Intermediate Event 2", parent=and1)
    and2 = Gate("AND", parent=intermediate_event_1, k=2)
    basic_event_1 = Event("Basic Event 1",
                          norm_dist,
                          main_exp_dist,
                          parent=and2)
    basic_event_2 = Event("Basic Event 2", ['EXP', 1 / 10],
                          norm_dist,
                          parent=and2)
    or3 = Gate("OR", parent=intermediate_event_2)
    basic_event_3 = Event("Basic Event 3",
                          norm_dist,
                          main_exp_dist,
                          parent=or3)
    basic_event_4 = Event("Basic Event 4", lognorm_dist, weibull, parent=or3)
    fault_tree = FaultTree(top_event)

    return fault_tree
コード例 #3
0
def B():
    topEvent = Event('Top Event')
    and1 = Gate('AND', parent=topEvent)
    basicEvent1 = Event('Basic Event 1',
                        rel_exp_dist,
                        main_exp_dist,
                        parent=and1)
    basicEvent2 = Event('Basic Event 2', ['EXP', 1 / 6],
                        main_exp_dist,
                        parent=and1)

    fault_tree = FaultTree(topEvent)

    return fault_tree
コード例 #4
0
def E():
    topEvent = Event('Top Event')
    and1 = Gate('AND', parent=topEvent)
    intermediateEvent1 = Event('Intermediate Event 1', parent=and1)
    intermediateEvent2 = Event('Intermediate Event 2', parent=and1)
    and2 = Gate('AND', parent=intermediateEvent1)
    basicEvent1 = Event('Basic Event 1', ['EXP', 1 / 15], ['EXP', 1 / 5],
                        parent=and2)
    basicEvent2 = Event('Basic Event 2', ['NORMAL', 12, 2], ['NORMAL', 5, 1],
                        parent=and2)
    or3 = Gate('OR', parent=intermediateEvent2)
    basicEvent3 = Event('Basic Event 3', ['LOGNORM', 3, 1], ['LOGNORM', 2, 1],
                        parent=or3)
    basicEvent4 = Event('Basic Event 4', ['WEIBULL', 10, 8], ['WEIBULL', 5, 2],
                        parent=or3)

    fault_tree = FaultTree(topEvent)

    return fault_tree
コード例 #5
0
def G():
    topEvent = Event('Top Event')
    or1 = Gate('OR', parent=topEvent)
    intermediateEvent1 = Event('Intermediate Event 1', parent=or1)
    intermediateEvent2 = Event('Intermediate Event 2', parent=or1)
    or2 = Gate('OR', parent=intermediateEvent1)
    basicEvent1 = Event('Basic Event 1', lognorm_dist, norm_dist, parent=or2)
    basicEvent2 = Event('Basic Event 2',
                        rel_exp_dist,
                        weibull_dist,
                        parent=or2)
    or3 = Gate('OR', parent=intermediateEvent2)
    basicEvent3 = Event('Basic Event 3',
                        rel_exp_dist,
                        main_exp_dist,
                        parent=or3)
    basicEvent4 = Event('Basic Event 4', norm_dist, main_exp_dist, parent=or3)

    fault_tree = FaultTree(topEvent)

    return fault_tree
コード例 #6
0
def C():
    rel_exp = ['EXP', 1 / 9]

    topEvent = Event('Top Event')
    and1 = Gate('AND', parent=topEvent)
    intermediateEvent1 = Event('Intermediate Event 1', parent=and1)
    intermediateEvent2 = Event('Intermediate Event 2', parent=and1)
    vote2 = Gate('VOTING', parent=intermediateEvent1, k=2)
    basicEvent1 = Event('Basic Event 1', rel_exp, main_exp_dist, parent=vote2)
    basicEvent2 = Event('Basic Event 2', rel_exp, main_exp_dist, parent=vote2)
    intermediateEvent3 = Event('Intermediate Event 3', parent=vote2)
    and2 = Gate('AND', parent=intermediateEvent3)
    basicEvent3 = Event('Basic Event 3',
                        rel_exp_dist,
                        main_exp_dist,
                        parent=and2)
    basicEvent4 = Event('Basic Event 4',
                        rel_exp_dist,
                        main_exp_dist,
                        parent=and2)
    or1 = Gate('OR', parent=intermediateEvent2)
    basicEvent5 = Event('Basic Event 5', rel_exp, main_exp_dist, parent=or1)
    intermediateEvent4 = Event('Intermediate Event 4', parent=or1)
    and3 = Gate('AND', parent=intermediateEvent4)
    basicEvent6 = Event('Basic Event 6',
                        rel_exp_dist,
                        main_exp_dist,
                        parent=and3)
    basicEvent7 = Event('Basic Event 7',
                        rel_exp_dist,
                        main_exp_dist,
                        parent=and3)
    basicEvent8 = Event('Basic Event 8',
                        rel_exp_dist,
                        main_exp_dist,
                        parent=and3)

    fault_tree = FaultTree(topEvent)

    return fault_tree
コード例 #7
0
def D():
    topEvent = Event('Top Event')
    or1 = Gate('OR', parent=topEvent)
    intermediateEvent1 = Event('Intermediate Event 1', parent=or1)
    intermediateEvent2 = Event('Intermediate Event 2', parent=or1)
    vote2 = Gate('VOTING', parent=intermediateEvent1, k=2)
    basicEvent1 = Event('Basic Event 1', lognorm_dist, norm_dist, parent=vote2)
    basicEvent2 = Event('Basic Event 2', ['EXP', 1 / 10],
                        weibull_dist,
                        parent=vote2)
    basicEvent3 = Event('Basic Event 3',
                        rel_exp_dist,
                        main_exp_dist,
                        parent=vote2)
    and2 = Gate('AND', parent=intermediateEvent2)
    basicEvent4 = Event('Basic Event 4', norm_dist, main_exp_dist, parent=and2)
    basicEvent5 = Event('Basic Event 5', ['EXP', 1 / 10],
                        lognorm_dist,
                        parent=and2)

    fault_tree = FaultTree(topEvent)

    return fault_tree
コード例 #8
0
def A():

    top_event = Event("Top Event")
    and1 = Gate("AND", parent=top_event)
    intermediate_event_1 = Event("Intermediate Event 1", parent=and1)
    intermediate_event_2 = Event("Intermediate Event 2", parent=and1)
    voting2 = Gate("VOTING", parent=intermediate_event_1, k=3)
    basic_event_4 = Event("Basic Event 4",
                          rel_exp_dist,
                          lognorm_dist,
                          parent=voting2)
    basic_event_5 = Event("Basic Event 5",
                          norm_dist,
                          main_exp_dist,
                          parent=voting2)
    basic_event_6 = Event("Basic Event 6",
                          lognorm_dist,
                          main_exp_dist,
                          parent=voting2)
    voting3 = Gate("VOTING", parent=intermediate_event_2, k=1)
    basic_event_1 = Event("Basic Event 1",
                          weibull_dist,
                          main_exp_dist,
                          parent=voting3)
    basic_event_2 = Event("Basic Event 2",
                          rel_exp_dist,
                          lognorm_dist,
                          parent=voting3)
    basic_event_3 = Event("Basic Event 3",
                          weibull_dist,
                          main_exp_dist,
                          parent=voting3)

    fault_tree = FaultTree(top_event)

    return fault_tree
コード例 #9
0
basicEvent2 = Event('Basic Event 2', rel_exp_dist, main_exp_dist, parent=vote2)
intermediateEvent3 = Event('Intermediate Event 3', parent=vote2)
and2 = Gate('AND', parent=intermediateEvent3)
basicEvent3 = Event('Basic Event 3', rel_exp_dist, main_exp_dist, parent=and2)
basicEvent4 = Event('Basic Event 4', rel_exp_dist, main_exp_dist,  parent=and2)
or1 = Gate('OR', parent=intermediateEvent2)
basicEvent5 = Event('Basic Event 5', rel_exp_dist, main_exp_dist, parent=or1)
intermediateEvent4 = Event('Intermediate Event 4', parent=or1)
and3 = Gate('AND', parent=intermediateEvent4)
basicEvent6 = Event('Basic Event 6', rel_exp_dist, main_exp_dist, parent=and3)
basicEvent7 = Event('Basic Event 7', rel_exp_dist, main_exp_dist,  parent=and3)
basicEvent8 = Event('Basic Event 8', rel_exp_dist, main_exp_dist,  parent=and3)



fault_tree = FaultTree(topEvent)
# 5000 takes about 30 seconds depending on FT complexity of course
# 10000 generation size takes a good minute
# 30000 takes more than 30 minutes didn't wait to finish
fault_tree.generate_basic_event_time_series(4000)
fault_tree.calculate_time_series()
fault_tree.print_tree()
fault_tree.export_time_series('time_series.txt')
fault_tree.export_truth_table('truth_table_original.txt')


# --------------------------START RECONSTRUCTION -------------------------------

FT = FaultTree()
FT.import_time_series('time_series.txt')
FT.display_event_time_series(8)
コード例 #10
0
def reconstruct_fault_tree(file_name):
    fault_tree = FaultTree()
    fault_tree.import_time_series(file_name)

    return fault_tree
コード例 #11
0
lognorm_dist = ['LOGNORM', 2, 1]
norm_dist = ['NORMAL', 4, 1]
weibull = ['WEIBULL', 5, 2]
top_event = Event("Top Event")
and1 = Gate("AND", parent=top_event)
intermediate_event_1 = Event("Intermediate Event 1", parent=and1)
intermediate_event_2 = Event("Intermediate Event 2", parent=and1)
voting2 = Gate("VOTING", parent=intermediate_event_1, k=2)
basic_event_3 = Event("Basic Event 3",
                      norm_dist,
                      main_exp_dist,
                      parent=voting2)
basic_event_4 = Event("Basic Event 4", rel_exp_dist, weibull, parent=voting2)
basic_event_5 = Event("Basic Event 5",
                      lognorm_dist,
                      main_exp_dist,
                      parent=voting2)
or3 = Gate("OR", parent=intermediate_event_2)
basic_event_1 = Event("Basic Event 1", norm_dist, main_exp_dist, parent=or3)
basic_event_2 = Event("Basic Event 2", rel_exp_dist, norm_dist, parent=or3)

FT = FaultTree(top_event)

FT.generate_basic_event_time_series(4)

FT.calculate_time_series()

FT.print_tree()

FT.export_time_series('times.txt')