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
 | 
