tic = time.time()
    sol, sol_obj = ocp.solve(
        show_online_optim=True,
        return_iterations=False,
        return_objectives=True,
        solver_options={
            "tol": 1e-3,
            "max_iter": 500000,
            "ipopt.bound_push": 1e-10,
            "ipopt.bound_frac": 1e-10,
            "ipopt.hessian_approximation": "limited-memory",
            "output_file": "output.bot",
            "ipopt.linear_solver": "mumps",  # "mumps",  # "ma57", "ma86"
            # "file_print_level": 5,
        },
    )
    toc = time.time() - tic
    print(f"Time to solve : {toc}sec")

    analyse = Objective.Printer(ocp, sol_obj)

    t = time.localtime(time.time())
    date = f"{t.tm_year}_{t.tm_mon}_{t.tm_mday}"
    OptimalControlProgram.save(ocp, sol, f"results/{date}_upDown.bo")
    OptimalControlProgram.save_get_data(ocp, sol, f"results/{date}_upDown.bob")
    OptimalControlProgram.save_get_data(ocp, sol, f"results/{date}_upDown_interpolate.bob", interpolate_nb_frames=100)

    # --- Show results --- #
    result = ShowResult(ocp, sol)
    result.graphs()
Exemplo n.º 2
0
    # --- Solve the program --- #
    tic = time.time()
    sol, sol_iterations = ocp.solve(
        show_online_optim=True,
        return_iterations=True,
        solver_options={
            "tol": 1e-4,
            "max_iter": 3000,
            "ipopt.hessian_approximation": "limited-memory"
        },
    )
    toc = time.time() - tic
    print(f"Time to solve : {toc}sec")

    t = time.localtime(time.time())
    date = f"{t.tm_year}_{t.tm_mon}_{t.tm_mday}"
    OptimalControlProgram.save(ocp, sol, f"results/{date}_xiaModel.bo")
    OptimalControlProgram.save_get_data(ocp,
                                        sol,
                                        f"results/{date}_xiaModel.bob",
                                        sol_iterations=sol_iterations)
    OptimalControlProgram.save_get_data(
        ocp,
        sol,
        f"results/{date}_xiaModel_interpolate.bob",
        interpolate_nb_frames=100)

    # --- Show results --- #
    result = ShowResult(ocp, sol)
    result.graphs()