Skip to content

Commit 0d1e708

Browse files
committed
static type of linear constraints
1 parent 265c6ca commit 0d1e708

File tree

2 files changed

+14
-5
lines changed

2 files changed

+14
-5
lines changed

example/juMPC.jl

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -134,19 +134,20 @@ function test_mpc(model, mpc)
134134
u = moveinput!(mpc, r, d)
135135
u_data[:,k+1] = u
136136
y_data[:,k+1] = y
137-
r_data[:,k+1] = r
137+
r_data[:,k+1] = r
138138
d_data[:,k+1] = d
139139
updatestate!(mpc, u, y, d)
140140
updatestate!(model, u, d)
141141
end
142142
return u_data, y_data, r_data, d_data
143143
end
144144

145+
test_mpc(linModel4, mpc)
145146
@time u_data, y_data, r_data, d_data = test_mpc(linModel4, mpc)
146147

147-
@time u_data, y_data, r_data, d_data = test_mpc(linModel4, nmpc)
148+
#@time u_data, y_data, r_data, d_data = test_mpc(linModel4, nmpc)
148149

149-
@time u_data, y_data, r_data, d_data = test_mpc(nonLinModel2, nmpc2)
150+
#@time u_data, y_data, r_data, d_data = test_mpc(nonLinModel2, nmpc2)
150151

151152

152153
using PlotThemes, Plots

src/predictive_control.jl

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,12 @@ julia> u = mpc([5]); round.(u, digits=3)
1919
"""
2020
abstract type PredictiveController end
2121

22+
const LinConVector = Vector{ConstraintRef{
23+
Model,
24+
MOI.ConstraintIndex{MOI.ScalarAffineFunction{Float64}, MOI.LessThan{Float64}},
25+
ScalarShape
26+
}}
27+
2228
"Include all the data for the constraints of [`PredictiveController`](@ref)"
2329
struct ControllerConstraint
2430
Umin ::Vector{Float64}
@@ -389,7 +395,8 @@ function linconstraint!(mpc::PredictiveController, model::LinModel)
389395
-mpc.con.Ŷmin + mpc.F
390396
+mpc.con.Ŷmax - mpc.F
391397
]
392-
set_normalized_rhs.(mpc.optim[:linconstraint], mpc.con.b[mpc.con.i_b])
398+
lincon::LinConVector = mpc.optim[:linconstraint]
399+
set_normalized_rhs.(lincon, mpc.con.b[mpc.con.i_b])
393400
end
394401

395402
"Set `b` excluding predicted output constraints when `model` is not a [`LinModel`](@ref)."
@@ -400,7 +407,8 @@ function linconstraint!(mpc::PredictiveController, model::SimModel)
400407
-mpc.con.ΔŨmin
401408
+mpc.con.ΔŨmax
402409
]
403-
set_normalized_rhs.(mpc.optim[:linconstraint], mpc.con.b[mpc.con.i_b])
410+
lincon::LinConVector = mpc.optim[:linconstraint]
411+
set_normalized_rhs.(lincon, mpc.con.b[mpc.con.i_b])
404412
end
405413

406414
"""

0 commit comments

Comments
 (0)