@@ -21,30 +21,21 @@ begin
2121 r[2 ] = xf[1 ]
2222 return nothing
2323 end
24- # bc!(r, x0, xf, v) = r .= [x0[1], xf[1]]
25- CTModels. constraint! (
26- pre_ocp, :boundary ; f= bc!, lb= [- 1 , 0 ], ub= [- 1 , 0 ], label= :boundary1
27- )
28- CTModels. constraint! (
29- pre_ocp, :boundary ; f= bc!, lb= [- 1 , 0 ], ub= [- 1 , 0 ], label= :boundary2
30- )
31- CTModels. constraint! (
32- pre_ocp, :boundary ; f= bc!, lb= [- 1 , 0 ], ub= [- 1 , 0 ], label= :boundary3
33- )
34- CTModels. constraint! (
35- pre_ocp, :control ; rg= 1 : 2 , lb= [0 , 0 ], ub= [Inf , Inf ], label= :control_rg
36- )
24+ CTModels. constraint! (pre_ocp, :boundary , f= bc!, lb= [- 1 , 0 ], ub= [- 1 , 0 ], label= :boundary1 ); N = 2
25+ # CTModels.constraint!(pre_ocp, :boundary, f=bc!, lb=[-1, 0], ub=[-1, 0], label=:boundary2); N += 2
26+ # CTModels.constraint!(pre_ocp, :boundary, f=bc!, lb=[-1, 0], ub=[-1, 0], label=:boundary3); N += 2
27+ CTModels. constraint! (pre_ocp, :control , rg= 1 : 2 , lb= [0 , 0 ], ub= [Inf , Inf ], label= :control_rg )
3728 CTModels. definition! (pre_ocp, Expr (:simple_integrator_min_energy ))
3829 ocp = CTModels. build_model (pre_ocp)
39- return ocp
30+ return ocp, N
4031 end
4132
42- ocp = simple_integrator_model ()
33+ ocp, N = simple_integrator_model ()
4334
4435 x0 = [1.0 ]
4536 xf = [0.0 ]
46- v = Float64[]
47- r = zeros (Float64, 6 )
37+ v = Float64[]
38+ r = zeros (Float64, N )
4839 bc_constraint = CTModels. boundary_constraints_nl (ocp)
4940 boundary! = bc_constraint[2 ]
5041 boundary! (r, x0, xf, v)
6152 println (" --------------------------------" )
6253 println (" Boundary constraint" )
6354 @code_warntype bc! (r, x0, xf, v)
64-
55+ println ( " \n " )
6556 println (" --------------------------------" )
6657 println (" Boundary constraint from model" )
6758 @code_warntype boundary! (r, x0, xf, v)
6859end
6960
7061let
62+ println (" --------------------------------" )
7163 println (" Boundary constraint" )
72- @btime bc! (r, x0, xf, v)
64+ display (@benchmark bc! (r, x0, xf, v))
65+ println (" \n " )
66+ println (" --------------------------------" )
7367 println (" Boundary constraint from model" )
74- @btime boundary! (r, x0, xf, v)
68+ display ( @benchmark boundary! (r, x0, xf, v) )
7569end
7670
7771let
7872 println (" --------------------------------" )
7973 println (" Boundary constraint" )
80- @code_native debuginfo = :none dump_module = false bc! (r, x0, xf, v)
81-
74+ @code_native debuginfo= :none dump_module= false bc! (r, x0, xf, v)
75+ println ( " \n " )
8276 println (" --------------------------------" )
8377 println (" Boundary constraint from model" )
8478 @code_native debuginfo = :none dump_module = false boundary! (r, x0, xf, v)
0 commit comments