From f83d73449f444574fd84414dade3f9845afe1815 Mon Sep 17 00:00:00 2001 From: Connor Date: Thu, 7 Oct 2021 15:56:11 -0600 Subject: [PATCH] Update for meeting with Bosanac --- LaTeX/flowcharts/mbh.png | Bin 0 -> 105112 bytes LaTeX/flowcharts/mbh.svg | 915 ++++++++++++++++++++ LaTeX/flowcharts/nlp.png | Bin 0 -> 69209 bytes LaTeX/flowcharts/nlp.svg | 1194 +++++++++++++++++++++++++++ julia/src/Thesis.jl | 4 +- julia/src/errors.jl | 5 + julia/src/inner_loop/nlp_solver.jl | 110 +++ julia/src/inner_loop/phase.jl | 60 -- julia/src/mission.jl | 46 ++ julia/test/inner_loop/nlp_solver.jl | 36 + julia/test/inner_loop/phase.jl | 74 -- julia/test/runtests.jl | 10 +- 12 files changed, 2313 insertions(+), 141 deletions(-) create mode 100644 LaTeX/flowcharts/mbh.png create mode 100644 LaTeX/flowcharts/mbh.svg create mode 100644 LaTeX/flowcharts/nlp.png create mode 100644 LaTeX/flowcharts/nlp.svg create mode 100644 julia/src/inner_loop/nlp_solver.jl delete mode 100644 julia/src/inner_loop/phase.jl create mode 100644 julia/test/inner_loop/nlp_solver.jl delete mode 100644 julia/test/inner_loop/phase.jl diff --git a/LaTeX/flowcharts/mbh.png b/LaTeX/flowcharts/mbh.png new file mode 100644 index 0000000000000000000000000000000000000000..2e272c3e1b59fa025b84b806fdb56f9ae9402462 GIT binary patch literal 105112 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 TJ3jq`fIkwVG9qQdI==r8OiOSS literal 0 HcmV?d00001 diff --git a/LaTeX/flowcharts/mbh.svg b/LaTeX/flowcharts/mbh.svg new file mode 100644 index 0000000..7fe629f --- /dev/null +++ b/LaTeX/flowcharts/mbh.svg @@ -0,0 +1,915 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Generate Random Mission Guess + + Correct the Guess + + Correct the Guess + + Store as Current Best, Set Drill=0 + + Perturb the Best Guess (in Basin) + + Converged? + + Converged? + + Hit Search Limit? + + Hit Drill Limit? + + Better than current best? + + Better than current best? + + Output Best Mission + + + + + + + + + + + + + + + + + + True + False + False + False + False + False + False + True + True + True + True + True + Search += 1 + Drill += 1 + Drill += 1 + + + diff --git a/LaTeX/flowcharts/nlp.png b/LaTeX/flowcharts/nlp.png new file mode 100644 index 0000000000000000000000000000000000000000..9afc1ae83ee15e5b025c88df358362b9e7d6ce58 GIT binary patch literal 69209 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 z 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

xs3gy%N^|IHQ=AL%cwPK0tDHTfIe^xW>b6B% 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 P7=Xaj)z4*}Q$iB}Gu(26 literal 0 HcmV?d00001 diff --git a/LaTeX/flowcharts/nlp.svg b/LaTeX/flowcharts/nlp.svg new file mode 100644 index 0000000..5f556aa --- /dev/null +++ b/LaTeX/flowcharts/nlp.svg @@ -0,0 +1,1194 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + G == 0? + + Output Mission + + + + + + + F + G + X + Generate X + NLP Problem + Mission Guess + Launch Date + + Launch V∞ + + V∞ in (per phase) + + V∞ out (per phase) + + TOF (per phase) + + Thrust Profile + (per phase) + Intermediate Phase: end state == planet state + v∞ + Intermediate Phase: norm(v∞out) == norm(v∞in) + Intermediate Phase: minimum flyby height acceptable + Final Phase: end position == planet position + Final Phase: final mass > dry mass + F = 1.0 + + + + + + + + + + + False + True + + diff --git a/julia/src/Thesis.jl b/julia/src/Thesis.jl index 7ca2c0d..7f51b72 100644 --- a/julia/src/Thesis.jl +++ b/julia/src/Thesis.jl @@ -25,8 +25,8 @@ module Thesis include("./plotting.jl") include("./inner_loop/laguerre-conway.jl") include("./inner_loop/propagator.jl") - include("./inner_loop/phase.jl") - include("./inner_loop/monotonic_basin_hopping.jl") + include("./inner_loop/nlp_solver.jl") + # include("./inner_loop/monotonic_basin_hopping.jl") # include("./outer_loop.jl") end diff --git a/julia/src/errors.jl b/julia/src/errors.jl index 4b0a6b6..0b4f9ad 100644 --- a/julia/src/errors.jl +++ b/julia/src/errors.jl @@ -26,3 +26,8 @@ struct Mass_Error{T} <: Exception where T <: Real mass::T end Base.showerror(io::IO, e::Mass_Error) = print(io, "mass (", e.mass, ") got too low in propagation") + +struct Mission_Creation_Error{T} <: Exception where T <: Real + num_entries::T +end +Base.showerror(io::IO, e::Mission_Creation_Error) = print(io, "Tried to create a mission with $(e.num_entries) entries") diff --git a/julia/src/inner_loop/nlp_solver.jl b/julia/src/inner_loop/nlp_solver.jl new file mode 100644 index 0000000..eace95e --- /dev/null +++ b/julia/src/inner_loop/nlp_solver.jl @@ -0,0 +1,110 @@ +using SNOW + +export solve_mission + +struct Result + converged::Bool + info::Symbol + sol::Matrix{Float64} +end + +""" +This function will take an initial guess to a mission profile and leverage Ipopt to solve the mission +""" +function solve_mission( guess::Mission_Guess; + tol=1e-8, + verbose::Bool=false ) + # First we need to define a function that propagates the mission all the way through + # The function takes in a constraints vector (g) and an input vector (x) and spits out + # the objective function. In my case, the objective will be constant. + # + + # First we define our starting point + x0 = Vector(guess) + n = size(guess.phases[1].thrust_profile)[1] + flybys = [ p.planet for p in guess.phases ] + + # And our NLP + function optimizer!(g,x) + # Establish initial conditions + mass = guess.start_mass + v∞_out = x[2:4] + current_planet = Earth + launch_date = Dates.unix2datetime(x[1]) + time = utc2et(Dates.format(launch_date,"yyyy-mm-ddTHH:MM:SS")) + start = state(current_planet, time, v∞_out, mass) + + # Now, for each phase we must require: + # - That the ending state matches (unless final leg) + # - That the v∞_out == v∞_in (unless final leg) + # - That the minimum height is acceptable (unless final leg) + # - That the ending position matches (if final leg) + # - That the ending mass is acceptable (if final leg) + i = 0 + for flyby in flybys + phase_params = x[ 5 + (3n+7) * i : 5 + (3n+7) * (i+1) - 1 ] + v∞_in = phase_params[1:3] + v∞_out = phase_params[4:6] + tof = phase_params[7] + thrusts = reshape(phase_params[8:end], (n,3)) + current_planet = flyby + time += tof + goal = state(current_planet, time, v∞_in) + final = prop(reshape(thrusts, (n,3)), start, guess.sc, tof)[2] + if flyby != flybys[end] + g[1+8i:6+8i] .= final[1:6] .- goal[1:6] + g[7+8i] = norm(v∞_out) - norm(v∞_in) + δ = acos( ( v∞_in ⋅ v∞_out ) / ( norm(v∞_in) * norm(v∞_out) ) ) + g[8+8i] = (current_planet.μ/(v∞_in ⋅ v∞_in)) * ( 1/sin(δ/2) - 1 ) + else + g[8length(flybys)+1:8length(flybys)+3] .= final[1:3] .- goal[1:3] + g[8length(flybys)+4] = final[7] + end + start = state(current_planet, time, v∞_out, final[7]) + i += 1 + return 1.0 + end + end + g = zeros(8length(flybys)+4) + optimizer!(g,x0) + return g + + + + # n = size(x0)[1] + + # function f!(g,x) + # try + # g[1:6] .= prop(reshape(x,(n,3)), start, craft, tof, primary)[2][1:6] + # return 1. + # catch e + # if isa(e,LaGuerreConway_Error) || isa(e, Mass_Error) || isa(e, PropOne_Error) + # return 10_000. + # else + # rethrow + # end + # end + # end + + # lower_x = -1 * ones(3n) + # upper_x = ones(3n) + # num_constraints = 6 + # filename = "ipopt_"*string(rand(UInt)) + # ipopt_options = Dict("constr_viol_tol" => tol, + # "acceptable_constr_viol_tol" => 1e-4, + # "max_iter" => 10_000, + # "max_cpu_time" => 30., + # "print_level" => 0, + # "output_file" => filename) + # options = Options(solver=IPOPT(ipopt_options), + # derivatives=ForwardAD()) + # x, _, info = minimize(f!, vec(x0), num_constraints, lower_x, upper_x, final[1:6], final[1:6], options) + # rm(filename) + # if info in [:Solve_Succeeded, :Solved_To_Acceptable_Level] + # return Result(true, info, reshape(x,(n,3))) + # else + # if verbose println(info) end + # return Result(false, info, x0) + # end + +end diff --git a/julia/src/inner_loop/phase.jl b/julia/src/inner_loop/phase.jl deleted file mode 100644 index 09f9aad..0000000 --- a/julia/src/inner_loop/phase.jl +++ /dev/null @@ -1,60 +0,0 @@ -using SNOW - -export solve_phase - -struct Result - converged::Bool - info::Symbol - sol::Matrix{Float64} -end - -""" -This function will take a single phase (so an initial state, and a final state) and an initial guess -to the thrust profile and use an NLP solver to find the nearest thrust profile to that initial guess -that satisfies the final state condition -""" -function solve_phase( start::Vector{Float64}, - final::Vector{Float64}, - craft::Sc, - tof::Float64, - x0::Matrix{Float64}, - primary::Body=Sun; - tol=1e-8, - verbose::Bool=false ) - n = size(x0)[1] - - function f!(g,x) - try - g[1:6] .= prop(reshape(x,(n,3)), start, craft, tof, primary)[2][1:6] - return 1. - catch e - if isa(e,LaGuerreConway_Error) || isa(e, Mass_Error) || isa(e, PropOne_Error) - return 10_000. - else - rethrow - end - end - end - - lower_x = -1 * ones(3n) - upper_x = ones(3n) - num_constraints = 6 - filename = "ipopt_"*string(rand(UInt)) - ipopt_options = Dict("constr_viol_tol" => tol, - "acceptable_constr_viol_tol" => 1e-4, - "max_iter" => 10_000, - "max_cpu_time" => 30., - "print_level" => 0, - "output_file" => filename) - options = Options(solver=IPOPT(ipopt_options), - derivatives=ForwardAD()) - x, _, info = minimize(f!, vec(x0), num_constraints, lower_x, upper_x, final[1:6], final[1:6], options) - rm(filename) - if info in [:Solve_Succeeded, :Solved_To_Acceptable_Level] - return Result(true, info, reshape(x,(n,3))) - else - if verbose println(info) end - return Result(false, info, x0) - end - -end diff --git a/julia/src/mission.jl b/julia/src/mission.jl index 250154b..65ab7c5 100644 --- a/julia/src/mission.jl +++ b/julia/src/mission.jl @@ -1,6 +1,7 @@ export Phase, Mission_Guess, Mission, Bad_Mission export test_phase1, test_phase2 export test_mg, test_mission +export Vector struct Phase planet::Body @@ -55,6 +56,51 @@ function Mission_Guess(sc::Sc, mass::Float64, date::DateTime, v∞::Vector{Float Mission_Guess(sc, mass, date, v∞, phases, false) end +""" +This is the opposite of the function below. It takes a vector and any other necessary information and outputs a mission guess +""" +function Mission_Guess(x::Vector{Float64}, sc::Sc, mass::Float64, flybys::Vector{Body}) + # Variable mission params + launch_date = Dates.unix2datetime(x[1]) + launch_v∞ = x[2:4] + + # Try to intelligently determine n + three_n = ((length(x)-4)/length(flybys)) - 7 + three_n % 3 == 0 || throw(Mission_Creation_Error(three_n)) + n::Int = three_n/3 + + # Build the phases + i = 0 + phases = Vector{Phase}() + for flyby in flybys + phase_params = x[ 5 + (3n+7) * i : 5 + (3n+7) * (i+1) - 1 ] + v∞_in = phase_params[1:3] + v∞_out = phase_params[4:6] + tof = phase_params[7] + thrusts = reshape(phase_params[8:end], (n,3)) + push!(phases, Phase(flyby, v∞_in, v∞_out, tof, thrusts)) + i += 1 + end + return Mission_Guess(sc, mass, launch_date, launch_v∞, phases, false) +end + +""" +This is a function to convert a mission guess into an nlp-ready vector. It doesn't contain all +information from the guess though. +""" +function Base.Vector(g::Mission_Guess) + result = Vector{Float64}() + push!(result, Dates.datetime2unix(g.launch_date)) + push!(result, g.launch_v∞...) + for phase in g.phases + push!(result,phase.v∞_in...) + push!(result,phase.v∞_out...) + push!(result,phase.tof) + push!(result,phase.thrust_profile...) + end + return result +end + const test_mg = Mission_Guess(bepi, 12_000., DateTime(1992,11,19), [-3.4,1.2,0.1], test_phases) struct Mission diff --git a/julia/test/inner_loop/nlp_solver.jl b/julia/test/inner_loop/nlp_solver.jl new file mode 100644 index 0000000..49787f1 --- /dev/null +++ b/julia/test/inner_loop/nlp_solver.jl @@ -0,0 +1,36 @@ +@testset "Phase" begin + + println("Testing NLP solver") + + # We'll start by testing the mission_guess -> vector function + vec = Vector(test_mg) + @test typeof(vec) == Vector{Float64} + + # Now we go in the other direction + flybys = [ p.planet for p in test_mg.phases ] + guess = Mission_Guess(vec, test_mg.sc, test_mg.start_mass, flybys) + @test typeof(guess) == Mission_Guess + @test guess.sc == test_mg.sc + @test guess.start_mass == test_mg.start_mass + @test guess.launch_date == test_mg.launch_date + @test guess.launch_v∞ == test_mg.launch_v∞ + @test guess.converged == test_mg.converged + for i in 1:length(guess.phases) + @test guess.phases[i].planet == test_mg.phases[i].planet + @test guess.phases[i].v∞_in == test_mg.phases[i].v∞_in + @test guess.phases[i].v∞_out == test_mg.phases[i].v∞_out + @test guess.phases[i].tof == test_mg.phases[i].tof + @test guess.phases[i].thrust_profile == test_mg.phases[i].thrust_profile + end + + # Now we test an example run of the basic "inner function" + leave, arrive = DateTime(1992,11,19), DateTime(1993,4,1) + earth_state = state(Earth, leave) + venus_state = state(Venus, arrive) + v∞_out, v∞_in, tof = Thesis.lamberts(Earth, Venus, leave, arrive) + phase = Phase(Venus, v∞_in, v∞_in, tof, zeros(20,3)) + guess = Mission_Guess(bepi, 12_000., leave, v∞_out, [phase]) + g = solve_mission(guess) + println(g) + +end diff --git a/julia/test/inner_loop/phase.jl b/julia/test/inner_loop/phase.jl deleted file mode 100644 index 3f428d3..0000000 --- a/julia/test/inner_loop/phase.jl +++ /dev/null @@ -1,74 +0,0 @@ -@testset "Phase" begin - - println("Testing NLP solver") - - using SNOW, PlotlyJS - - # First we'll test an Earth case - # Initial Setup - T = rand( 8hour : second : day ) - revs = 8 - n = 10 * revs - start_mass = 10_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, but Earth orbits are picky - thrust_guess = spiral(0.89, n, start, test_sc, revs*T, Earth) - guess_final = prop(thrust_guess, start, test_sc, revs*T, Earth)[2] - result = solve_phase(start, final, test_sc, revs*T, thrust_guess, Earth, verbose=true) - calc_path, calc_final = prop(result.sol, start, test_sc, revs*T, Earth, interpolate=true) - - # Test - @test norm(guess_final[1:6] - final[1:6]) > 1e-4 - @test result.converged - @test norm(calc_final[1:6] - final[1:6]) < 1e-4 - - # 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_earth.html") - - # Now the sun case - T = rand( 0.5year : hour : 1.5year ) - tof = 0.7T - n = 20 - start_mass = 12_000. - - # A simple orbit raising again, to keep things simple - start = gen_orbit(T, start_mass) - thrust = spiral(0.6, n, start, bepi, tof) - final = prop(thrust, start, bepi, tof)[2] - new_T = 2π * √( xyz_to_oe(final, Sun.μ)[1]^3 / Sun.μ ) - - # This should be close enough to converge - thrust_guess = spiral(0.55, n, start, bepi, tof) - guess_final = prop(thrust_guess, start, bepi, tof)[2] - result = solve_phase(start, final, bepi, tof, thrust_guess, verbose=true) - calc_path, calc_final = prop(result.sol, start, bepi, tof, interpolate=true) - - # Test - @test norm(guess_final[1:6] - final[1:6]) > 1e-4 - @test result.converged - @test norm(calc_final[1:6] - final[1:6]) < 1e-4 - - # Plot - paths = Pathlist() - push!(paths, prop(start, T), calc_path, prop(calc_final, T), prop(final, T) ) - fig = plot_orbits(paths, - labels=["init", "transit", "post-transit", "final"], - colors=["#FFF","#F44","#4F4","#44F"]) - savefig(fig, "../plots/nlp_test_sun.html") - - -end diff --git a/julia/test/runtests.jl b/julia/test/runtests.jl index 46ca670..841f503 100644 --- a/julia/test/runtests.jl +++ b/julia/test/runtests.jl @@ -14,9 +14,9 @@ catch end @testset "All Tests" begin - include("plotting.jl") - include("inner_loop/laguerre-conway.jl") - include("inner_loop/propagator.jl") - include("inner_loop/phase.jl") - include("inner_loop/monotonic_basin_hopping.jl") + # include("plotting.jl") + # include("inner_loop/laguerre-conway.jl") + # include("inner_loop/propagator.jl") + include("inner_loop/nlp_solver.jl") + # include("inner_loop/monotonic_basin_hopping.jl") end