{"text_format":"1","workbook":"xlsx","n_sheets":4,"sheets":["MainPage - Fault trees","What we need to do","Bike","Exercise 1"],"not_rendered":{"charts":0,"images":3,"macros":1,"external_links":0,"defined_names":6,"comments":0,"pivot_tables":0},"unopened":[],"bounds":{"document_bytes":16777216,"sheet_cells":100000,"rows_first":2000,"rows_last":500,"rows_between":2000,"halvings":0,"cell_chars":16384,"cell_head_chars":4096},"cells_cut":0,"cells_raw":0,"read":"whole","date_system":"1900"}

{"sheet":"MainPage - Fault trees","index":0,"n_rows":27,"n_cols":2,"rows_kept":27,"cut":false,"hidden":false,"merged":[]}
["<Alt> + F11 to open VBA editor"]
[]
["<fn> + <alt> + F11 on Mac"]
[]
["Modules:"]
["setOperationsLib","Library for set oprations"]
["mainProg","Main program, obtaining cut sets"]
["FTAelements","Module to hold list of gates and basic events"]
[]
[]
["Example fault tree: FaultTree1"]
["TOP AND G1 G2 B1 B2"]
["G1 OR B3 B4"]
["G2 AND B5 B6"]
[]
["Example fault tree: FaultTree2 (From lecture)"]
["TOP OR  PUMPS PU"]
["PUMPS AND OutP1 OutP2"]
["OutP1 OR P1 M"]
["OutP2 OR P2 M"]
[]
["Example fault tree: PSDTree"]
["TOP OR PSDV LU PSW"]
["PSDV OR PSDC PSDI"]
["PSDI AND PSD1 PSD2"]
["PSW OR PSWC PSWI"]
["PSWI AND PSW1 PSW2"]

{"sheet":"What we need to do","index":1,"n_rows":25,"n_cols":1,"rows_kept":25,"cut":false,"hidden":false,"merged":[]}
["We need the following in the programming"]
[]
["Load the fault tree, FTA, into memory, for example from a WorkShhet"]
["Names (text strings) are converted to numbers, negative numbers are used for basic events to separate from gates"]
["Identify the gates of the FTA, found in the first \"column\" of the FTA"]
["For each gate, identify \"AND\" or \"OR\""]
["For each gate, find the children, children may be existing gates, or basic events"]
["Essentially, this formatting of the FTA results in "]
["   - A list of gate names"]
["   - A list of types for each gate (True = AND, False = OR)"]
["   - A list of list of children"]
["MOCUS"]
["   - Initially CutSets = {{TOP}}"]
["   - Repeat as long as required (the repetition is required, if a gate name is used in the list before it is defined)"]
["   - For each gate in the definition list of gates"]
["      + Check if the gate is found in one of the temporary cut sets"]
["      + If found, and AND gate, extend the cut set vertically with all the children of that gate"]
["      + If found, and OR gate, extend the total cut set list vertically by copying variants of the cut set"]
["Finally, we need to remove non-minimal cut sets"]
[]
["As we work, the (temporary) CutSets would look like this:"]
["G1,B1,B2"]
["G2,B3,G3"]
[]
["I.e., a combination of unresolved gates, and basic events"]

{"sheet":"Bike","index":2,"n_rows":7,"n_cols":1,"rows_kept":7,"cut":false,"hidden":false,"merged":[]}
["Example fault tree: BikeExample"]
["TOPP OR WT SW"]
["SW AND FWS BWS"]
["FWS OR FWBP FWF"]
["FWF OR FWWire FWM Rider"]
["BWS OR BWBP BWF"]
["BWF OR BWWire BWM Rider"]

{"sheet":"Exercise 1","index":3,"n_rows":11,"n_cols":5,"rows_kept":11,"cut":false,"hidden":false,"merged":[]}
["Example fault tree: Exercise1",null,null,null,"To run, open the visual basic editor, then from the immediate window type: main \"Exercise1\""]
["G0 OR DC G1 SR"]
["G1 AND G2 G3 G4"]
["G2 OR PS G5"]
["G5 AND FP1 FP2 FP3 FP4"]
["G3 OR G6 VU"]
["G6 OR G7 G8 G9"]
["G7 AND SD1 SD2"]
["G8 AND SD1 SD3"]
["G9 SD2 SD3"]
["G4 MS PS OP"]