Skip to content

Commit 0a2c63f

Browse files
committed
added: linearize and setmodel! to precompilation
1 parent 5877270 commit 0a2c63f

2 files changed

Lines changed: 20 additions & 17 deletions

File tree

src/model/linearization.jl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,8 @@ function get_linearization_func(NT, f!, h!, nu, nx, ny, nd, p)
2929
A_prep = prepare_jacobian(f_x!, xnext, backend, x, cst_u, cst_d; strict)
3030
Bu_prep = prepare_jacobian(f_u!, xnext, backend, u, cst_x, cst_d; strict)
3131
Bd_prep = prepare_jacobian(f_d!, xnext, backend, d, cst_x, cst_u; strict)
32-
C_prep = prepare_jacobian(h_x!, y, backend, x, cst_d ; strict)
33-
Dd_prep = prepare_jacobian(h_d!, y, backend, d, cst_x ; strict)
32+
C_prep = prepare_jacobian(h_x!, y, backend, x, cst_d ; strict)
33+
Dd_prep = prepare_jacobian(h_d!, y, backend, d, cst_x ; strict)
3434
function linfunc!(xnext, y, A, Bu, C, Bd, Dd, x, u, d, cst_x, cst_u, cst_d)
3535
# all the arguments before `x` are mutated in this function
3636
jacobian!(f_x!, xnext, A, A_prep, backend, x, cst_u, cst_d)

src/precompile.jl

Lines changed: 18 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -11,59 +11,59 @@ initstate!(mpc_im, model.uop, y)
1111
preparestate!(mpc_im, [55, 30])
1212
mpc_im.estim()
1313
u = mpc_im([55, 30])
14-
sim!(mpc_im, 3)
14+
sim!(mpc_im, 2)
1515

1616
mpc_kf = setconstraint!(LinMPC(KalmanFilter(model)), ymin=[45, -Inf])
1717
initstate!(mpc_kf, model.uop, model())
1818
preparestate!(mpc_kf, [55, 30])
1919
mpc_kf.estim()
2020
u = mpc_kf([55, 30])
21-
sim!(mpc_kf, 3, [55, 30])
21+
sim!(mpc_kf, 2, [55, 30])
2222

2323
mpc_lo = setconstraint!(LinMPC(Luenberger(model)), ymin=[45, -Inf])
2424
initstate!(mpc_lo, model.uop, model())
2525
preparestate!(mpc_lo, [55, 30])
2626
mpc_lo.estim()
2727
u = mpc_lo([55, 30])
28-
sim!(mpc_lo, 3, [55, 30])
28+
sim!(mpc_lo, 2, [55, 30])
2929

3030
mpc_ukf = setconstraint!(LinMPC(UnscentedKalmanFilter(model)), ymin=[45, -Inf])
3131
initstate!(mpc_ukf, model.uop, model())
3232
preparestate!(mpc_ukf, [55, 30])
3333
mpc_ukf.estim()
3434
u = mpc_ukf([55, 3])
35-
sim!(mpc_ukf, 3, [55, 30])
35+
sim!(mpc_ukf, 2, [55, 30])
3636

3737
mpc_ekf = setconstraint!(LinMPC(ExtendedKalmanFilter(model)), ymin=[45, -Inf])
3838
initstate!(mpc_ekf, model.uop, model())
3939
preparestate!(mpc_ekf, [55, 30])
4040
mpc_ekf.estim()
4141
u = mpc_ekf([55, 30])
42-
sim!(mpc_ekf, 3, [55, 30])
42+
sim!(mpc_ekf, 2, [55, 30])
4343

4444
mpc_skf = setconstraint!(LinMPC(SteadyKalmanFilter(model)), ymin=[45, -Inf])
4545
initstate!(mpc_skf, model.uop, model())
4646
preparestate!(mpc_skf, [55, 30])
4747
mpc_skf.estim()
4848
u = mpc_skf([55, 30])
49-
sim!(mpc_skf, 3, [55, 30])
49+
sim!(mpc_skf, 2, [55, 30])
5050

5151
mpc_mhe = setconstraint!(LinMPC(MovingHorizonEstimator(model, He=2)), ymin=[45, -Inf])
5252
setconstraint!(mpc_mhe.estim, x̂min=[-50,-50,-50,-50], x̂max=[50,50,50,50])
5353
initstate!(mpc_mhe, model.uop, model())
5454
preparestate!(mpc_mhe, [55, 30])
5555
mpc_mhe.estim()
5656
u = mpc_mhe([55, 30])
57-
sim!(mpc_mhe, 3, [55, 30])
57+
sim!(mpc_mhe, 2, [55, 30])
5858

5959
nmpc_skf = setconstraint!(NonLinMPC(SteadyKalmanFilter(model), Cwt=Inf), ymin=[45, -Inf])
6060
initstate!(nmpc_skf, model.uop, model())
6161
preparestate!(nmpc_skf, [55, 30])
6262
nmpc_skf.estim()
6363
u = nmpc_skf([55, 30])
64-
sim!(nmpc_skf, 3, [55, 30])
64+
sim!(nmpc_skf, 2, [55, 30])
6565

66-
res = sim!(model, 3)
66+
res = sim!(model, 2)
6767

6868
res_man = SimResult(model, res.U_data, res.Y_data; X_data=res.X_data)
6969

@@ -72,7 +72,7 @@ initstate!(exmpc, model.uop, model())
7272
preparestate!(exmpc, [55, 30])
7373
exmpc.estim()
7474
u = exmpc([55, 30])
75-
sim!(exmpc, 3, [55, 30])
75+
sim!(exmpc, 2, [55, 30])
7676

7777
f(x,u,_,model) = model.A*x + model.Bu*u
7878
h(x,_,model) = model.C*x
@@ -87,21 +87,21 @@ initstate!(nmpc_im, nlmodel.uop, y)
8787
preparestate!(nmpc_im, [55, 30])
8888
nmpc_im.estim()
8989
u = nmpc_im([55, 30])
90-
sim!(nmpc_im, 3, [55, 30])
90+
sim!(nmpc_im, 2, [55, 30])
9191

9292
nmpc_ukf = setconstraint!(
9393
NonLinMPC(UnscentedKalmanFilter(nlmodel), Hp=10, Cwt=1e3), ymin=[45, -Inf]
9494
)
9595
initstate!(nmpc_ukf, nlmodel.uop, y)
9696
preparestate!(nmpc_ukf, [55, 30])
9797
u = nmpc_ukf([55, 30])
98-
sim!(nmpc_ukf, 3, [55, 30])
98+
sim!(nmpc_ukf, 2, [55, 30])
9999

100100
nmpc_ekf = setconstraint!(NonLinMPC(ExtendedKalmanFilter(model), Cwt=Inf), ymin=[45, -Inf])
101101
initstate!(nmpc_ekf, model.uop, model())
102102
preparestate!(nmpc_ekf, [55, 30])
103103
u = nmpc_ekf([55, 30])
104-
sim!(nmpc_ekf, 3, [55, 30])
104+
sim!(nmpc_ekf, 2, [55, 30])
105105

106106
nmpc_mhe = setconstraint!(
107107
NonLinMPC(MovingHorizonEstimator(nlmodel, He=2), Hp=10, Cwt=Inf), ymin=[45, -Inf]
@@ -110,7 +110,7 @@ setconstraint!(nmpc_mhe.estim, x̂min=[-50,-50,-50,-50], x̂max=[50,50,50,50])
110110
initstate!(nmpc_mhe, nlmodel.uop, y)
111111
preparestate!(nmpc_mhe, [55, 30])
112112
u = nmpc_mhe([55, 30])
113-
sim!(nmpc_mhe, 3, [55, 30])
113+
sim!(nmpc_mhe, 2, [55, 30])
114114

115115
function JE( _ , Ŷe, _ , R̂y)
116116
= Ŷe[3:end]
@@ -123,4 +123,7 @@ empc = setconstraint!(
123123
)
124124
preparestate!(empc, [55, 30])
125125
u = empc()
126-
sim!(empc, 3)
126+
sim!(empc, 2)
127+
128+
linearizemodel = linearize(nlmodel)
129+
setmodel!(mpc_kf, linearizemodel)

0 commit comments

Comments
 (0)