41 lines
1.5 KiB
Julia
41 lines
1.5 KiB
Julia
@testset "NLP Solver" begin
|
|
|
|
using PlotlyJS: savefig
|
|
|
|
println("Testing NLP solver")
|
|
|
|
# This will be the only test to verify rather than testing different complexities
|
|
n = 50
|
|
flybys = [Earth, Venus, Mars]#, Jupiter]
|
|
launch_window = DateTime(2021,10,1), DateTime(2021,12,1)
|
|
latest_arrival = DateTime(2028,1,1)
|
|
dates = [DateTime(2021,11,1),
|
|
DateTime(2022,3,27),
|
|
DateTime(2022,8,28)]
|
|
# DateTime(2028,3,1)]
|
|
phases = Vector{Phase}()
|
|
launch_v∞, _, tof1 = Thesis.lamberts(flybys[1], flybys[2], dates[1], dates[2])
|
|
for i in 1:length(dates)-2
|
|
v∞_in1, tof1 = Thesis.lamberts(flybys[i], flybys[i+1], dates[i], dates[i+1])[2:3]
|
|
v∞_out2 = Thesis.lamberts(flybys[i+1], flybys[i+2], dates[i+1], dates[i+2])[1]
|
|
push!(phases, Phase(flybys[i+1], v∞_in1, v∞_out2, tof1, 0.01*ones(50,3)))
|
|
end
|
|
v∞_in, tof = Thesis.lamberts(flybys[end-1], flybys[end], dates[end-1], dates[end])[2:3]
|
|
push!(phases, Phase(flybys[end], v∞_in, v∞_in, tof, 0.01*ones(50,3)))
|
|
guess = Mission_Guess(bepi, 3_600., dates[1], launch_v∞, phases)
|
|
m = solve_mission(guess,
|
|
launch_window,
|
|
latest_arrival,
|
|
200.,
|
|
20.,
|
|
verbose=true,
|
|
print_level=4)
|
|
@test typeof(m) == Mission
|
|
if typeof(m) == Mission
|
|
p = plot(m, title="NLP Test Solution (2 Phases)")
|
|
savefig(p,"../plots/nlp_test_2_phase.html")
|
|
store(m, "missions/nlp_2_phase")
|
|
end
|
|
|
|
end
|