Skip to content

Commit 5ba5fe7

Browse files
committed
fixed_init
1 parent e11596f commit 5ba5fe7

29 files changed

+426
-494
lines changed

available_problems_cache.txt

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1 @@
11
dielectrophoretic_particle
2-
jackson
3-
rocket

ext/JuMPModels/cart_pendulum.jl

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -21,13 +21,13 @@ function OptimalControlProblems.cart_pendulum(::JuMPBackend; nh::Int64=100)
2121
@variables(
2222
model,
2323
begin
24-
0.0 <= tf
25-
ddx
26-
-max_x <= x[0:nh] <= max_x
27-
-max_v <= dx[0:nh] <= max_v
28-
theta[0:nh]
29-
omega[0:nh]
30-
-max_f <= Fex[0:nh] <= max_f
24+
0.0 <= tf, (start = 0.1)
25+
ddx, (start = 0.1)
26+
-max_x <= x[0:nh] <= max_x, (start = 0.1)
27+
-max_v <= dx[0:nh] <= max_v, (start = 0.1)
28+
theta[0:nh], (start = 0.1)
29+
omega[0:nh], (start = 0.1)
30+
-max_f <= Fex[0:nh] <= max_f, (start = 0.1)
3131
end
3232
)
3333

ext/JuMPModels/double_oscillator.jl

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,11 +19,11 @@ function OptimalControlProblems.double_oscillator(::JuMPBackend; nh::Int=100)
1919
@variables(
2020
model,
2121
begin
22-
x1[0:nh]
23-
x2[0:nh]
24-
x3[0:nh]
25-
x4[0:nh]
26-
-1.0 <= u[0:nh] <= 1.0
22+
x1[0:nh], (start = 0.1)
23+
x2[0:nh], (start = 0.1)
24+
x3[0:nh], (start = 0.1)
25+
x4[0:nh], (start = 0.1)
26+
-1.0 <= u[0:nh] <= 1.0, (start = 0.1)
2727
end
2828
)
2929

ext/JuMPModels/ducted_fan.jl

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -14,14 +14,14 @@ function OptimalControlProblems.ducted_fan(::JuMPBackend; nh::Int=100)
1414

1515
model = Model()
1616

17-
@variable(model, x1[0:nh])
18-
@variable(model, v1[0:nh])
19-
@variable(model, x2[0:nh])
20-
@variable(model, v2[0:nh])
21-
@variable(model, -deg2rad(30.0) <= α[0:nh] <= deg2rad(30.0)) # radian
22-
@variable(model, vα[0:nh])
23-
@variable(model, -5.0 <= u1[0:nh] <= 5.0) # [nh]
24-
@variable(model, 0.0 <= u2[0:nh] <= 17.0) # [nh]
17+
@variable(model, x1[0:nh], start = 0.1)
18+
@variable(model, v1[0:nh], start = 0.1)
19+
@variable(model, x2[0:nh], start = 0.1)
20+
@variable(model, v2[0:nh], start = 0.1)
21+
@variable(model, -deg2rad(30.0) <= α[0:nh] <= deg2rad(30.0), start = 0.1) # radian
22+
@variable(model, vα[0:nh], start = 0.1)
23+
@variable(model, -5.0 <= u1[0:nh] <= 5.0, start = 0.1) # [nh]
24+
@variable(model, 0.0 <= u2[0:nh] <= 17.0, start = 0.1) # [nh]
2525
@variable(model, 0 <= tf, start = 1.0)
2626

2727
@objective(model, Min, tf / nh * sum(2 * u1[t]^2 + u2[t]^2 for t in 0:nh) + μ * tf)

ext/JuMPModels/electrical_vehicle.jl

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,9 @@ function OptimalControlProblems.electrical_vehicle(::JuMPBackend; nh::Int=100)
1818

1919
model = Model()
2020

21-
@variable(model, x[0:nh])
22-
@variable(model, v[0:nh])
23-
@variable(model, u[0:nh])
21+
@variable(model, x[0:nh], start = 0.1)
22+
@variable(model, v[0:nh], start = 0.1)
23+
@variable(model, u[0:nh], start = 0.1)
2424

2525
@objective(model, Min, sum(b1 * u[t] * v[t] + b2 * u[t]^2 for t in 0:nh))
2626

ext/JuMPModels/moonlander.jl

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -23,14 +23,14 @@ function OptimalControlProblems.moonlander(
2323
@variables(
2424
model,
2525
begin
26-
0.0 <= step
26+
0.0 <= step, (start = 0.1)
2727
# state variables
28-
p1[k=0:nh]
29-
p2[k=0:nh]
30-
dp1[k=0:nh]
31-
dp2[k=0:nh]
32-
theta[k=0:nh]
33-
dtheta[k=0:nh]
28+
p1[k=0:nh], (start = 0.1)
29+
p2[k=0:nh], (start = 0.1)
30+
dp1[k=0:nh], (start = 0.1)
31+
dp2[k=0:nh], (start = 0.1)
32+
theta[k=0:nh], (start = 0.1)
33+
dtheta[k=0:nh], (start = 0.1)
3434
# control variables
3535
0 <= F1[k=0:nh] <= max_thrust, (start = 5.0)
3636
0 <= F2[k=0:nh] <= max_thrust, (start = 5.0)

ext/JuMPModels/quadrotor.jl

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -22,17 +22,17 @@ function OptimalControlProblems.quadrotor(::JuMPBackend; nh::Int64=60)
2222
@variables(
2323
model,
2424
begin
25-
0.0 <= tf
26-
p1[0:nh]
27-
p2[0:nh]
28-
p3[0:nh]
29-
v1[0:nh]
30-
v2[0:nh]
31-
v3[0:nh]
25+
0.0 <= tf, (start = 0.1)
26+
p1[0:nh], (start = 0.1)
27+
p2[0:nh], (start = 0.1)
28+
p3[0:nh], (start = 0.1)
29+
v1[0:nh], (start = 0.1)
30+
v2[0:nh], (start = 0.1)
31+
v3[0:nh], (start = 0.1)
3232
atmin <= at[0:nh] <= atmax, (start = 10.0)
33-
-pi / 2 <= ϕ[0:nh] <= pi / 2
34-
-pi / 2 <= θ[0:nh] <= pi / 2
35-
ψ[0:nh]
33+
-pi / 2 <= ϕ[0:nh] <= pi / 2, (start = 0.1)
34+
-pi / 2 <= θ[0:nh] <= pi / 2, (start = 0.1)
35+
ψ[0:nh], (start = 0.1)
3636
end
3737
)
3838

ext/JuMPModels/truck_trailer.jl

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -40,16 +40,16 @@ function OptimalControlProblems.truck_trailer(
4040
model,
4141
begin
4242
# Final time
43-
0.0 <= tf
43+
0.0 <= tf, (start = 0.1)
4444
# State variables
45-
x2[0:nh]
46-
y2[0:nh]
45+
x2[0:nh], (start = 0.1)
46+
y2[0:nh], (start = 0.1)
4747
-pi / 2 <= theta0[0:nh] <= pi / 2, (start = 0.1)
4848
-pi / 2 <= theta1[0:nh] <= pi / 2, (start = 0.0)
4949
theta2[0:nh], (start = 0.0)
5050
# Control variables
5151
-0.2 * speedf <= v0[0:nh] <= 0.2 * speedf, (start = -0.2)
52-
-pi / 6 <= delta0[0:nh] <= pi / 6
52+
-pi / 6 <= delta0[0:nh] <= pi / 6, (start = 0.1)
5353
end
5454
)
5555

ext/JuMPModels/vanderpol.jl

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,9 @@ function OptimalControlProblems.vanderpol(::JuMPBackend; nh::Int=100)
1313
@variables(
1414
model,
1515
begin
16-
x1[0:nh]
17-
x2[0:nh]
18-
u[0:nh]
16+
x1[0:nh], (start = 0.1)
17+
x2[0:nh], (start = 0.1)
18+
u[0:nh], (start = 0.1)
1919
step[0:nh] == tf / nh
2020
end
2121
)

ext/OptimalControlModels/cart_pendulum.jl

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,10 @@ function OptimalControlProblems.cart_pendulum(::OptimalControlBackend; nh::Int=1
9090
end
9191

9292
# initial guess
93-
init = ()
93+
xinit = t -> [0.1, 0.1, 0.1, 0.1] # [x1, dx, theta, omega]
94+
uinit = [0.1] # [Fex]
95+
varinit = [0.1, 0.1] # [tf, ddx]
96+
init = (state=xinit, control=uinit, variable=varinit)
9497

9598
# NLPModel + DOCP
9699
docp, nlp = direct_transcription(ocp; init=init, grid_size=nh)

0 commit comments

Comments
 (0)