@testset "Phase" begin println("Testing NLP solver") using NLsolve, PlotlyJS # Initial Setup T = rand( 2hour : second : 12hour) revs = 5 n = 10revs start_mass = 12_000. # A simple orbit raising start = gen_orbit(T, start_mass, Earth) thrust = spiral(0.9, n, start, test_sc, revs*T, Earth) final = prop(thrust, start, test_sc, revs*T, Earth)[2] new_T = 2π * √( xyz_to_oe(final, Earth.μ)[1]^3 / Earth.μ ) # This should be close enough to converge thrust_guess = spiral(0.88, n, start, test_sc, revs*T, Earth) result = solve_phase(start, final, test_sc, revs*T, thrust_guess, Earth) calc_path, calc_final = prop(result.zero, start, test_sc, revs*T, Earth) # Test @test converged(result) @test norm(calc_final[1:6] - final[1:6]) < 1e-5 # Plot paths = Pathlist() push!(paths, prop(start, T, Earth), calc_path, prop(calc_final, T, Earth), prop(final, T, Earth) ) fig = plot_orbits(paths, Earth, labels=["init", "transit", "post-transit", "final"], colors=["#FFF","#F44","#4F4","#44F"]) savefig(fig, "../plots/nlp_test.html") end