コード例 #1
0
ファイル: peec.py プロジェクト: verivital/daev
def main():
    'main function'

    E, A, B, C = get_benchmark()
    dae_sys = construct_dae_automaton(E, A, B, C)
    dae_auto = convert_to_auto_dae(dae_sys)
    adm_projs = get_admissible_projectors(dae_auto)
    print "\nindex of the peec benchmark is: {}".format(len(adm_projs))
    decoupled_dae = decouple_auto_dae(dae_auto)
    basic_matrix = generate_consistent_basic_matrix(decoupled_dae)
    init_set = construct_init_set(basic_matrix)

    totime = 10.0
    num_steps = 1000
    solver_names = ['vode', 'zvode', 'lsoda', 'dopri5', 'dop853']

    # print spaceex model
    spaceex_printer(decoupled_dae, init_set, totime, 0.01, 'peec')

    unsafe_set = construct_unsafe_set(dae_auto)
    veri_res = verify_safety(dae_auto, init_set, unsafe_set, totime, num_steps,
                             solver_names[3])

    for vr in veri_res:
        if vr.status == 'unsafe':
            Plot().plot_unsafe_trace(vr)
    Plot().plot_output_reachset_vs_time(
        vr, dae_auto.matrix_c.todense())  # plot state x_478 (output) reach set
コード例 #2
0
def main():
    'main function'

    E, A, B, C = get_benchmark()
    dae_sys = construct_dae_automaton(E, A, B, C)
    dae_auto = convert_to_auto_dae(dae_sys)
    decoupled_dae = decouple_auto_dae(dae_auto)
    basic_matrix = generate_consistent_basic_matrix(decoupled_dae)
    init_set = construct_init_set(basic_matrix)

    totime = 10.0
    num_steps = 1000
    solver_names = ['vode', 'zvode', 'lsoda', 'dopri5', 'dop853']

    # print spaceex model
    spaceex_printer(decoupled_dae, init_set, totime, 0.01,
                    'interconnected_rotating_masses')

    unsafe_set = construct_unsafe_set(dae_auto)
    veri_res = verify_safety(dae_auto, init_set, unsafe_set, totime, num_steps,
                             solver_names[3])

    reachset = veri_res[0].reach_set
    list_of_line_set_list = get_line_set(reachset, dae_auto.matrix_c.todense())
    plot_vline_set(list_of_line_set_list, totime, num_steps)
    plot_boxes(list_of_line_set_list)
    plot_boxes_vs_time(list_of_line_set_list, totime, num_steps)

    if veri_res[0].status == 'unsafe':
        plot_unsafe_trace(veri_res[0])

    Plot().plot_state_reachset_vs_time(veri_res[0])
コード例 #3
0
ファイル: damped_mass_sping.py プロジェクト: verivital/daev
def main():
    'main function'

    print "\n############################################################"
    print "\nVERIFY/FALSIFY SAFETY PROPERTY OF A DAMPED-MASS-SPRING SYSTEM"
    E, A, B, C = get_benchmark(5)
    dae_sys = construct_dae_automaton(E, A, B, C)
    dae_auto = convert_to_auto_dae(dae_sys)
    decoupled_dae = decouple_auto_dae(dae_auto)
    basic_matrix = generate_consistent_basic_matrix(decoupled_dae)
    init_set = construct_init_set(basic_matrix)

    totime = 100.0
    num_steps = 1000
    solver_names = ['vode', 'zvode', 'lsoda', 'dopri5',
                    'dop853']  # similar to ode45 mathlab

    # print spaceex model
    spaceex_printer(decoupled_dae, init_set, totime, 0.1, 'damped_mass_spring')

    unsafe_set = construct_unsafe_set(dae_auto)
    veri_res = verify_safety(dae_auto, init_set, unsafe_set, totime, num_steps,
                             solver_names[3])
    for vr in veri_res:
        if vr.status == 'unsafe':
            Plot().plot_unsafe_trace(vr)
コード例 #4
0
ファイル: mna_4.py プロジェクト: verivital/daev
def main():
    'main function'

    E, A, B, C = get_benchmark()
    dae_sys = construct_dae_automaton(E, A, B, C)
    dae_auto = convert_to_auto_dae(dae_sys)
    # It is interesting that the index of this example is 3 not 2 as other MNA examples
    decoupled_dae = decouple_auto_dae(dae_auto)
    basic_matrix = generate_consistent_basic_matrix(decoupled_dae)
    init_set = construct_init_set(basic_matrix)

    totime = 1.0
    num_steps = 100
    solver_names = ['vode', 'zvode', 'lsoda', 'dopri5', 'dop853']

    # print spaceex model
    spaceex_printer(decoupled_dae, init_set, totime, 0.01, 'mna4')

    unsafe_set = construct_unsafe_set(dae_auto)
    veri_res = verify_safety(dae_auto, init_set, unsafe_set, totime, num_steps, solver_names[4])

    for vr in veri_res:
        if vr.status == 'unsafe':
            Plot().plot_unsafe_trace(vr)
    Plot().plot_output_reachset_vs_time(vr, dae_auto.matrix_c.todense())    # plot state x_478 (output) reach set
コード例 #5
0
def main():
    'main function'

    E, A, B, C = get_benchmark()
    dae_sys = construct_dae_automaton(E, A, B, C)
    dae_auto = convert_to_auto_dae(dae_sys)
    decoupled_dae = decouple_auto_dae(dae_auto)
    basic_matrix = generate_consistent_basic_matrix(decoupled_dae)
    init_set = construct_init_set(basic_matrix)

    totime = 10.0
    num_steps = 1000
    solver_names = ['vode', 'zvode', 'lsoda', 'dopri5', 'dop853']

    # print spaceex model
    spaceex_printer(decoupled_dae, init_set, totime, 0.01, 'RLC_circuit')

    unsafe_set = construct_unsafe_set(dae_auto)
    veri_res = verify_safety(dae_auto, init_set, unsafe_set, totime, num_steps,
                             solver_names[3])
    for vr in veri_res:
        if vr.status == 'unsafe':
            Plot().plot_unsafe_trace(vr)