Skip to content

Commit 815d5a6

Browse files
author
jcaillau
committed
test_goddard.jl: added abstract def
1 parent ee5480f commit 815d5a6

File tree

1 file changed

+54
-0
lines changed

1 file changed

+54
-0
lines changed

test/old/test_goddard.jl

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,3 +6,57 @@ sol = solve(prob.model, grid_size=10, print_level=0, init=init)
66
@testset verbose = true showtiming = true ":goddard :all_constraints" begin
77
@test sol.objective prob.solution.objective rtol=1e-2
88
end
9+
10+
# goddard, abstract def
11+
const Cd = 310
12+
const Tmax = 3.5
13+
const β = 500
14+
const b = 2
15+
const t0 = 0
16+
r0 = 1
17+
v0 = 0
18+
vmax = 0.1
19+
m0 = 1
20+
mf = 0.6
21+
x0 = [ r0, v0, m0 ]
22+
23+
@def ocp begin
24+
25+
tf, variable
26+
t [ t0, tf ], time
27+
x R³, state
28+
u R, control
29+
30+
r = x₁
31+
v = x₂
32+
m = x₃
33+
34+
x(t0) == [ r0, v0, m0 ]
35+
0 u(t) 1
36+
r0 r(t) Inf, (1)
37+
0 v(t) vmax, (2)
38+
mf m(t) m0, (3)
39+
40+
(t) == F0(x(t)) + u(t) * F1(x(t))
41+
42+
r(tf) max
43+
44+
end
45+
46+
F0(x) = begin
47+
r, v, m = x
48+
D = Cd * v^2 * exp(-β*(r - 1))
49+
F = [ v, -D/m - 1/r^2, 0 ]
50+
return F
51+
end
52+
53+
F1(x) = begin
54+
r, v, m = x
55+
F = [ 0, Tmax/m, -b*Tmax ]
56+
return F
57+
end
58+
59+
sol = solve(ocp, grid_size=10, print_level=5)
60+
@testset verbose = true showtiming = true ":goddard :all_constraints" begin
61+
@test sol.objective prob.solution.objective rtol=1e-2
62+
end

0 commit comments

Comments
 (0)