@@ -25,6 +25,7 @@ struct CasADiModel
25
25
U:: MXLinearInterpolation
26
26
V:: MXLinearInterpolation
27
27
tₛ:: MX
28
+ is_free_final:: Bool
28
29
end
29
30
30
31
struct CasADiDynamicOptProblem{uType, tType, isinplace, P, F, K} < :
@@ -90,10 +91,10 @@ function MTK.CasADiDynamicOptProblem(sys::System, u0map, tspan, pmap;
90
91
CasADiDynamicOptProblem (f, u0, tspan, p, model, kwargs... )
91
92
end
92
93
93
- MTK. generate_U (model, dims) = 1
94
- MTK. generate_V (model, dims) = 1
95
- MTK. generate_timescale (model, dims) = 1
96
94
MTK. generate_internal_model (:: Type{CasADiModel} ) = CasADi. opti ()
95
+ MTK. generate_state_variable (model, u0, ns, nt)
96
+ MTK. generate_input_variable (model, c0, nc, nt) = 1
97
+ MTK. generate_timescale (model, dims) = 1
97
98
98
99
function init_model (sys, tspan, steps, u0map, pmap, u0; is_free_t = false )
99
100
ctrls = MTK. unbound_inputs (sys)
@@ -317,7 +318,7 @@ function add_solve_constraints(prob, tableau)
317
318
for k in 1 : (length (tsteps) - 1 )
318
319
τ = tsteps[k]
319
320
Kᵢ = variable! (solver_opti, nᵤ, length (α))
320
- ΔUs = A * Kᵢ' # the stepsize at each stage of the implicit method
321
+ ΔUs = A * Kᵢ'
321
322
for (i, h) in enumerate (c)
322
323
ΔU = ΔUs[i, :]'
323
324
Uₙ = U. u[:, k] + ΔU * dt
0 commit comments