Skip to content

Commit 7189ca7

Browse files
authored
Merge pull request #89 from control-toolbox/auto-juliaformatter-pr
[AUTO] JuliaFormatter.jl run
2 parents 0b18581 + 340dd37 commit 7189ca7

69 files changed

Lines changed: 502 additions & 543 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

ext/JuMPModels/beam.jl

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,13 +36,13 @@ function OptimalControlProblems.beam(::JuMPBackend; nh::Int=500)
3636
@constraints(
3737
model,
3838
begin
39-
∂x1[t=1:nh], x1[t] == x1[t - 1] + 0.5 * step * (x2[t] + x2[t - 1])
40-
∂x2[t=1:nh], x2[t] == x2[t - 1] + 0.5 * step * (u[t] + u[t - 1])
39+
∂x1[t = 1:nh], x1[t] == x1[t - 1] + 0.5 * step * (x2[t] + x2[t - 1])
40+
∂x2[t = 1:nh], x2[t] == x2[t - 1] + 0.5 * step * (u[t] + u[t - 1])
4141
end
4242
)
4343

4444
# objective
45-
@objective(model, Min, 0.5 * step * sum(u[t]^2 + u[t-1]^2 for t in 1:nh))
45+
@objective(model, Min, 0.5 * step * sum(u[t]^2 + u[t - 1]^2 for t in 1:nh))
4646

4747
return model
4848
end

ext/JuMPModels/bioreactor.jl

Lines changed: 14 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -48,36 +48,35 @@ function OptimalControlProblems.bioreactor(::JuMPBackend; nh::Int=500)
4848
step, T / nh
4949

5050
# intermediate variables
51-
growth[k=0:nh], μ2m * s[k] / (s[k] + Ks)
52-
μ2[k=0:nh], growth[k]
51+
growth[k = 0:nh], μ2m * s[k] / (s[k] + Ks)
52+
μ2[k = 0:nh], growth[k]
5353

54-
days[k=0:nh], (k * step) / (halfperiod * 2)
55-
tau[k=0:nh], (days[k] - floor(days[k])) * 2π
56-
light[k=0:nh], max(0, sin(tau[k]))^2
57-
μ[k=0:nh], light[k] * μbar
54+
days[k = 0:nh], (k * step) / (halfperiod * 2)
55+
tau[k = 0:nh], (days[k] - floor(days[k])) * 2π
56+
light[k = 0:nh], max(0, sin(tau[k]))^2
57+
μ[k = 0:nh], light[k] * μbar
5858

5959
# dynamics
60-
dy[k=0:nh], μ[k] * y[k] / (1 + y[k]) - (r + u[k]) * y[k]
61-
ds[k=0:nh], -μ2[k] * b[k] + u[k] * β * (gamma * y[k] - s[k])
62-
db[k=0:nh], (μ2[k] - u[k] * β) * b[k]
60+
dy[k = 0:nh], μ[k] * y[k] / (1 + y[k]) - (r + u[k]) * y[k]
61+
ds[k = 0:nh], -μ2[k] * b[k] + u[k] * β * (gamma * y[k] - s[k])
62+
db[k = 0:nh], (μ2[k] - u[k] * β) * b[k]
6363

6464
# objective
65-
dc[k=0:nh], -μ2[k] * b[k] /+ c)
66-
65+
dc[k = 0:nh], -μ2[k] * b[k] /+ c)
6766
end
6867
)
6968

7069
@constraints(
7170
model,
7271
begin
73-
∂y[k=1:nh], y[k] == y[k - 1] + 0.5 * step * (dy[k] + dy[k - 1])
74-
∂s[k=1:nh], s[k] == s[k - 1] + 0.5 * step * (ds[k] + ds[k - 1])
75-
∂b[k=1:nh], b[k] == b[k - 1] + 0.5 * step * (db[k] + db[k - 1])
72+
∂y[k = 1:nh], y[k] == y[k - 1] + 0.5 * step * (dy[k] + dy[k - 1])
73+
∂s[k = 1:nh], s[k] == s[k - 1] + 0.5 * step * (ds[k] + ds[k - 1])
74+
∂b[k = 1:nh], b[k] == b[k - 1] + 0.5 * step * (db[k] + db[k - 1])
7675
end
7776
)
7877

7978
# objective
80-
@objective(model, Min, 0.5 * step * sum(dc[k] + dc[k-1] for k in 1:nh))
79+
@objective(model, Min, 0.5 * step * sum(dc[k] + dc[k - 1] for k in 1:nh))
8180

8281
return model
8382
end

ext/JuMPModels/cart_pendulum.jl

Lines changed: 23 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ The Cart-Pendulum Problem:
55
The problem is formulated as a JuMP model, and can be found [here](https://arxiv.org/pdf/2303.16746).
66
"""
77
function OptimalControlProblems.cart_pendulum(::JuMPBackend; nh::Int=500)
8-
8+
99
# parameters
1010
g = 9.81 # gravitation [m/s^2]
1111
L = 1 # pendulum length [m]
@@ -23,13 +23,13 @@ function OptimalControlProblems.cart_pendulum(::JuMPBackend; nh::Int=500)
2323
@variables(
2424
model,
2525
begin
26-
0.1 <= tf, (start = 1.0)
27-
ddx, (start = 0.1)
28-
-max_x <= x[0:nh] <= max_x, (start = 0.1)
29-
-max_v <= v[0:nh] <= max_v, (start = 0.1)
30-
θ[0:nh], (start = 0.1)
31-
ω[0:nh], (start = 0.1)
32-
-max_f <= Fex[0:nh] <= max_f, (start = 0.1)
26+
0.1 <= tf, (start = 1.0)
27+
ddx, (start = 0.1)
28+
-max_x <= x[0:nh] <= max_x, (start = 0.1)
29+
-max_v <= v[0:nh] <= max_v, (start = 0.1)
30+
θ[0:nh], (start = 0.1)
31+
ω[0:nh], (start = 0.1)
32+
-max_f <= Fex[0:nh] <= max_f, (start = 0.1)
3333
end
3434
)
3535

@@ -51,32 +51,33 @@ function OptimalControlProblems.cart_pendulum(::JuMPBackend; nh::Int=500)
5151
begin
5252
step, tf / nh
5353

54-
α_ddx[i=0:nh], 1 / (I + 0.25 * m * L^2) * 0.5 * L * m * (-ddx * cos(θ[i]) - g * sin(θ[i]))
55-
56-
ddCOG_1[i=0:nh], - L * sin(θ[i]) * ω[i] + L / 2 * cos(θ[i]) * α_ddx[i] + ddx
57-
ddCOG_2[i=0:nh], L * cos(θ[i]) * ω[i] + L / 2 * sin(θ[i]) * α_ddx[i]
54+
α_ddx[i = 0:nh],
55+
1 / (I + 0.25 * m * L^2) * 0.5 * L * m * (-ddx * cos(θ[i]) - g * sin(θ[i]))
56+
57+
ddCOG_1[i = 0:nh], - L * sin(θ[i]) * ω[i] + L / 2 * cos(θ[i]) * α_ddx[i] + ddx
58+
ddCOG_2[i = 0:nh], L * cos(θ[i]) * ω[i] + L / 2 * sin(θ[i]) * α_ddx[i]
5859

59-
FXFY_1[i=0:nh], m * ddCOG_1[i]
60+
FXFY_1[i = 0:nh], m * ddCOG_1[i]
6061
#FXFY_2[i=0:nh], m * ddCOG_2[i] + m * g
6162

62-
eq[i=0:nh], -FXFY_1[i] + Fex[i] - mcart * ddx
63+
eq[i = 0:nh], -FXFY_1[i] + Fex[i] - mcart * ddx
6364

6465
J, mcart
65-
c[i=0:nh], eq[i] - J * ddx
66-
67-
dv[i=0:nh], -1 / J * c[i]
68-
dω[i=0:nh], 1 / (I + 0.25 * m * L^2) * 0.5 * L * m * (-dv[i] * cos(θ[i]) - g * sin(θ[i]))
66+
c[i = 0:nh], eq[i] - J * ddx
6967

68+
dv[i = 0:nh], -1 / J * c[i]
69+
dω[i = 0:nh],
70+
1 / (I + 0.25 * m * L^2) * 0.5 * L * m * (-dv[i] * cos(θ[i]) - g * sin(θ[i]))
7071
end
7172
)
7273

7374
@constraints(
7475
model,
7576
begin
76-
∂x[k=1:nh], x[k] == x[k - 1] + 0.5 * step * ( v[k] + v[k - 1])
77-
∂v[k=1:nh], v[k] == v[k - 1] + 0.5 * step * (dv[k] + dv[k - 1])
78-
∂θ[k=1:nh], θ[k] == θ[k - 1] + 0.5 * step * ( ω[k] + ω[k - 1])
79-
∂ω[k=1:nh], ω[k] == ω[k - 1] + 0.5 * step * (dω[k] + dω[k - 1])
77+
∂x[k = 1:nh], x[k] == x[k - 1] + 0.5 * step * (v[k] + v[k - 1])
78+
∂v[k = 1:nh], v[k] == v[k - 1] + 0.5 * step * (dv[k] + dv[k - 1])
79+
∂θ[k = 1:nh], θ[k] == θ[k - 1] + 0.5 * step * (ω[k] + ω[k - 1])
80+
∂ω[k = 1:nh], ω[k] == ω[k - 1] + 0.5 * step * (dω[k] + dω[k - 1])
8081
end
8182
)
8283

ext/JuMPModels/chain.jl

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -22,23 +22,24 @@ function OptimalControlProblems.chain(::JuMPBackend; nh::Int=500)
2222
@expressions(
2323
model,
2424
begin
25-
t[k=0:nh], k * tf / nh
25+
t[k = 0:nh], k * tf / nh
2626
end
2727
)
2828

2929
# variables and initial guess
3030
@variables(
3131
model,
3232
begin
33-
u[k=0:nh], (start = 4 * abs(b - a) * (t[k] / tf - tmin))
34-
x1[k=0:nh], (start = 4 * abs(b - a) * t[k] / tf * (0.5 * t[k] / tf - tmin) + a)
35-
x2[k=0:nh],
33+
u[k = 0:nh], (start = 4 * abs(b - a) * (t[k] / tf - tmin))
34+
x1[k = 0:nh],
35+
(start = 4 * abs(b - a) * t[k] / tf * (0.5 * t[k] / tf - tmin) + a)
36+
x2[k = 0:nh],
3637
(
3738
start =
3839
(4 * abs(b - a) * t[k] / tf * (0.5 * t[k] / tf - tmin) + a) *
3940
(4 * abs(b - a) * (t[k] / tf - tmin))
4041
)
41-
x3[k=0:nh], (start = 4 * abs(b - a) * (t[k] / tf - tmin))
42+
x3[k = 0:nh], (start = 4 * abs(b - a) * (t[k] / tf - tmin))
4243
end
4344
)
4445

@@ -58,18 +59,18 @@ function OptimalControlProblems.chain(::JuMPBackend; nh::Int=500)
5859
model,
5960
begin
6061
step, tf / nh
61-
dx1[k=0:nh], u[k]
62-
dx2[k=0:nh], x1[k] * (1 + u[k]^2)
63-
dx3[k=0:nh], (1 + u[k]^2)
62+
dx1[k = 0:nh], u[k]
63+
dx2[k = 0:nh], x1[k] * (1 + u[k]^2)
64+
dx3[k = 0:nh], (1 + u[k]^2)
6465
end
6566
)
6667

6768
@constraints(
6869
model,
6970
begin
70-
∂x1[k=1:nh], x1[k] == x1[k - 1] + 0.5 * step * (dx1[k] + dx1[k - 1])
71-
∂x2[k=1:nh], x2[k] == x2[k - 1] + 0.5 * step * (dx2[k] + dx2[k - 1])
72-
∂x3[k=1:nh], x3[k] == x3[k - 1] + 0.5 * step * (dx3[k] + dx3[k - 1])
71+
∂x1[k = 1:nh], x1[k] == x1[k - 1] + 0.5 * step * (dx1[k] + dx1[k - 1])
72+
∂x2[k = 1:nh], x2[k] == x2[k - 1] + 0.5 * step * (dx2[k] + dx2[k - 1])
73+
∂x3[k = 1:nh], x3[k] == x3[k - 1] + 0.5 * step * (dx3[k] + dx3[k - 1])
7374
end
7475
)
7576

ext/JuMPModels/dielectrophoretic_particle.jl

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -30,16 +30,16 @@ function OptimalControlProblems.dielectrophoretic_particle(::JuMPBackend; nh::In
3030
model,
3131
begin
3232
step, tf / nh
33-
dx[k=0:nh], y[k] * u[k] + α * u[k]^2
34-
dy[k=0:nh], -c * y[k] + u[k]
33+
dx[k = 0:nh], y[k] * u[k] + α * u[k]^2
34+
dy[k = 0:nh], -c * y[k] + u[k]
3535
end
3636
)
3737
# Collocation
3838
@constraints(
3939
model,
4040
begin
41-
∂x[k=1:nh], x[k] == x[k - 1] + 0.5 * step * (dx[k] + dx[k - 1])
42-
∂y[k=1:nh], y[k] == y[k - 1] + 0.5 * step * (dy[k] + dy[k - 1])
41+
∂x[k = 1:nh], x[k] == x[k - 1] + 0.5 * step * (dx[k] + dx[k - 1])
42+
∂y[k = 1:nh], y[k] == y[k - 1] + 0.5 * step * (dy[k] + dy[k - 1])
4343
end
4444
)
4545
# Boundary constraints

ext/JuMPModels/double_oscillator.jl

Lines changed: 15 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ Double Oscillator Problem:
55
Ref: [CLP2018] Coudurier, C., Lepreux, O., & Petit, N. (2018). Optimal bang-bang control of a mechanical double oscillator using averaging methods. IFAC-PapersOnLine, 51(2), 49-54.
66
"""
77
function OptimalControlProblems.double_oscillator(::JuMPBackend; nh::Int=500)
8-
8+
99
# parameters
1010
m1 = 100 # [kg]
1111
m2 = 2 # [kg]
@@ -42,36 +42,35 @@ function OptimalControlProblems.double_oscillator(::JuMPBackend; nh::Int=500)
4242
@expressions(
4343
model,
4444
begin
45-
45+
4646
#
4747
step, tf / nh
48-
t[k=0:nh], k * tf / nh
49-
F[k=0:nh], sin(t[k] * 2π / tf)
50-
48+
t[k = 0:nh], k * tf / nh
49+
F[k = 0:nh], sin(t[k] * 2π / tf)
50+
5151
# dynamics
52-
dx1[k=0:nh], x3[k]
53-
dx2[k=0:nh], x4[k]
54-
dx3[k=0:nh], -(k1 + k2) / m1 * x1[k] + k2 / m1 * x2[k] + 1 / m1 * F[k]
55-
dx4[k=0:nh], k2 / m2 * x1[k] - k2 / m2 * x2[k] - c * (1 - u[k]) / m2 * x4[k]
52+
dx1[k = 0:nh], x3[k]
53+
dx2[k = 0:nh], x4[k]
54+
dx3[k = 0:nh], -(k1 + k2) / m1 * x1[k] + k2 / m1 * x2[k] + 1 / m1 * F[k]
55+
dx4[k = 0:nh], k2 / m2 * x1[k] - k2 / m2 * x2[k] - c * (1 - u[k]) / m2 * x4[k]
5656

5757
# objective
58-
dc[k=0:nh], 0.5 * (x1[k]^2 + x2[k]^2 + u[k]^2)
59-
58+
dc[k = 0:nh], 0.5 * (x1[k]^2 + x2[k]^2 + u[k]^2)
6059
end
6160
)
6261

6362
@constraints(
6463
model,
6564
begin
66-
∂x1[k=1:nh], x1[k] == x1[k - 1] + 0.5 * step * (dx1[k] + dx1[k - 1])
67-
∂x2[k=1:nh], x2[k] == x2[k - 1] + 0.5 * step * (dx2[k] + dx2[k - 1])
68-
∂x3[k=1:nh], x3[k] == x3[k - 1] + 0.5 * step * (dx3[k] + dx3[k - 1])
69-
∂x4[k=1:nh], x4[k] == x4[k - 1] + 0.5 * step * (dx4[k] + dx4[k - 1])
65+
∂x1[k = 1:nh], x1[k] == x1[k - 1] + 0.5 * step * (dx1[k] + dx1[k - 1])
66+
∂x2[k = 1:nh], x2[k] == x2[k - 1] + 0.5 * step * (dx2[k] + dx2[k - 1])
67+
∂x3[k = 1:nh], x3[k] == x3[k - 1] + 0.5 * step * (dx3[k] + dx3[k - 1])
68+
∂x4[k = 1:nh], x4[k] == x4[k - 1] + 0.5 * step * (dx4[k] + dx4[k - 1])
7069
end
7170
)
7271

7372
# objective: trapeze rule
74-
@objective(model, Min, 0.5 * step * sum(dc[k] + dc[k-1] for k in 1:nh))
73+
@objective(model, Min, 0.5 * step * sum(dc[k] + dc[k - 1] for k in 1:nh))
7574

7675
return model
7776
end

ext/JuMPModels/ducted_fan.jl

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,6 @@ function OptimalControlProblems.ducted_fan(::JuMPBackend; nh::Int=250)
4848
v₂[nh] == 0
4949
α[nh] == 0
5050
vα[nh] == 0
51-
5251
end
5352
)
5453

@@ -61,33 +60,34 @@ function OptimalControlProblems.ducted_fan(::JuMPBackend; nh::Int=250)
6160
step, tf / nh
6261

6362
# dynamics
64-
dx₁[k=0:nh], v₁[k]
65-
dv₁[k=0:nh], (u₁[k] * cos(α[k]) - u₂[k] * sin(α[k])) / m
66-
dx₂[k=0:nh], v₂[k]
67-
dv₂[k=0:nh], (-mg + u₁[k] * sin(α[k]) + u₂[k] * cos(α[k])) / m
68-
dα[k=0:nh], vα[k]
69-
dvα[k=0:nh], r * u₁[k] / J
63+
dx₁[k = 0:nh], v₁[k]
64+
dv₁[k = 0:nh], (u₁[k] * cos(α[k]) - u₂[k] * sin(α[k])) / m
65+
dx₂[k = 0:nh], v₂[k]
66+
dv₂[k = 0:nh], (-mg + u₁[k] * sin(α[k]) + u₂[k] * cos(α[k])) / m
67+
dα[k = 0:nh], vα[k]
68+
dvα[k = 0:nh], r * u₁[k] / J
7069

7170
# objective
72-
dc[k=0:nh], 2 * u₁[k]^2 + u₂[k]^2
73-
71+
dc[k = 0:nh], 2 * u₁[k]^2 + u₂[k]^2
7472
end
7573
)
76-
74+
7775
@constraints(
7876
model,
7977
begin
80-
∂x₁[k=1:nh], x₁[k] == x₁[k - 1] + 0.5 * step * (dx₁[k] + dx₁[k - 1])
81-
∂v₁[k=1:nh], v₁[k] == v₁[k - 1] + 0.5 * step * (dv₁[k] + dv₁[k - 1])
82-
∂x₂[k=1:nh], x₂[k] == x₂[k - 1] + 0.5 * step * (dx₂[k] + dx₂[k - 1])
83-
∂v₂[k=1:nh], v₂[k] == v₂[k - 1] + 0.5 * step * (dv₂[k] + dv₂[k - 1])
84-
∂α[k=1:nh], α[k] == α[k - 1] + 0.5 * step * ( dα[k] + dα[k - 1])
85-
∂vα[k=1:nh], vα[k] == vα[k - 1] + 0.5 * step * (dvα[k] + dvα[k - 1])
78+
∂x₁[k = 1:nh], x₁[k] == x₁[k - 1] + 0.5 * step * (dx₁[k] + dx₁[k - 1])
79+
∂v₁[k = 1:nh], v₁[k] == v₁[k - 1] + 0.5 * step * (dv₁[k] + dv₁[k - 1])
80+
∂x₂[k = 1:nh], x₂[k] == x₂[k - 1] + 0.5 * step * (dx₂[k] + dx₂[k - 1])
81+
∂v₂[k = 1:nh], v₂[k] == v₂[k - 1] + 0.5 * step * (dv₂[k] + dv₂[k - 1])
82+
∂α[k = 1:nh], α[k] == α[k - 1] + 0.5 * step * (dα[k] + dα[k - 1])
83+
∂vα[k = 1:nh], vα[k] == vα[k - 1] + 0.5 * step * (dvα[k] + dvα[k - 1])
8684
end
8785
)
8886

8987
# objective
90-
@objective(model, Min, (1 / tf) * 0.5 * step * sum(dc[k] + dc[k-1] for k in 1:nh) +* tf))
88+
@objective(
89+
model, Min, (1 / tf) * 0.5 * step * sum(dc[k] + dc[k - 1] for k in 1:nh) +* tf)
90+
)
9191

9292
return model
9393
end

ext/JuMPModels/electric_vehicle.jl

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -34,36 +34,35 @@ function OptimalControlProblems.electric_vehicle(::JuMPBackend; nh::Int=500)
3434
v[nh] == 0
3535
end
3636
)
37-
37+
3838
# dynamics
3939
@expressions(
4040
model,
4141
begin
4242

4343
#
4444
step, tf / nh
45-
road[k=0:nh], α0 + α1 * x[k] + α2 * x[k]^2 + α3 * x[k]^3
45+
road[k = 0:nh], α0 + α1 * x[k] + α2 * x[k]^2 + α3 * x[k]^3
4646

4747
# dynamics
48-
dx[k=0:nh], v[k]
49-
dv[k=0:nh], h1 * u[k] - h2 * v[k]^2 - h0 - road[k]
50-
51-
# objective
52-
dc[k=0:nh], b1 * u[k] * v[k] + b2 * u[k]^2
48+
dx[k = 0:nh], v[k]
49+
dv[k = 0:nh], h1 * u[k] - h2 * v[k]^2 - h0 - road[k]
5350

51+
# objective
52+
dc[k = 0:nh], b1 * u[k] * v[k] + b2 * u[k]^2
5453
end
5554
)
5655

5756
@constraints(
5857
model,
5958
begin
60-
∂x[k=1:nh], x[k] == x[k - 1] + 0.5 * step * (dx[k - 1] + dx[k])
61-
∂v[k=1:nh], v[k] == v[k - 1] + 0.5 * step * (dv[k - 1] + dv[k])
59+
∂x[k = 1:nh], x[k] == x[k - 1] + 0.5 * step * (dx[k - 1] + dx[k])
60+
∂v[k = 1:nh], v[k] == v[k - 1] + 0.5 * step * (dv[k - 1] + dv[k])
6261
end
6362
)
6463

6564
# objective
66-
@objective(model, Min, 0.5 * step * sum(dc[k] + dc[k-1] for k in 1:nh))
65+
@objective(model, Min, 0.5 * step * sum(dc[k] + dc[k - 1] for k in 1:nh))
6766

6867
return model
6968
end

0 commit comments

Comments
 (0)