@@ -822,42 +822,6 @@ function con_nonlinprog!(g, mpc::NonLinMPC, ::SimModel, x̂0end, Ŷ0, gc, ϵ)
822
822
return g
823
823
end
824
824
825
- """
826
- con_nonlinprogeq!(
827
- geq, X̂0, Û0, mpc::NonLinMPC, model::NonLinModel, ::MultipleShooting, U0, Z̃
828
- )
829
-
830
- Nonlinear equality constrains for [`NonLinModel`](@ref) and [`MultipleShooting`](@ref).
831
-
832
- The method mutates the `geq`, `X̂0` and `Û0` vectors in argument.
833
- """
834
- function con_nonlinprogeq! (
835
- geq, X̂0, Û0, mpc:: NonLinMPC , model:: NonLinModel , :: MultipleShooting , U0, Z̃
836
- )
837
- nx̂, nu, nd, Hp, Hc = mpc. estim. nx̂, model. nu, model. nd, mpc. Hp, mpc. Hc
838
- nΔU, nX̂ = nu* Hc, nx̂* Hp
839
- D̂0 = mpc. D̂0
840
- X̂0_Z̃ = @views Z̃[(nΔU+ 1 ): (nΔU+ nX̂)]
841
- x̂0 = @views mpc. estim. x̂0[1 : nx̂]
842
- d0 = @views mpc. d0[1 : nd]
843
- # TODO : allow parallel for loop or threads?
844
- for j= 1 : Hp
845
- u0 = @views U0[(1 + nu* (j- 1 )): (nu* j)]
846
- û0 = @views Û0[(1 + nu* (j- 1 )): (nu* j)]
847
- x̂0next = @views X̂0[(1 + nx̂* (j- 1 )): (nx̂* j)]
848
- f̂! (x̂0next, û0, mpc. estim, model, x̂0, u0, d0)
849
- x̂0next .+ = mpc. estim. f̂op .- mpc. estim. x̂op
850
- x̂0next_Z̃ = @views X̂0_Z̃[(1 + nx̂* (j- 1 )): (nx̂* j)]
851
- ŝnext = @views geq[(1 + nx̂* (j- 1 )): (nx̂* j)]
852
- ŝnext .= x̂0next .- x̂0next_Z̃
853
- x̂0 = x̂0next_Z̃ # using states in Z̃ for next iteration (allow parallel for)
854
- d0 = @views D̂0[(1 + nd* (j- 1 )): (nd* j)]
855
- end
856
- return geq
857
- end
858
- con_nonlinprogeq! (geq,_,_, :: NonLinMPC , :: NonLinModel , :: SingleShooting , _,_) = geq
859
- con_nonlinprogeq! (geq,_,_, :: NonLinMPC , :: LinModel , :: TranscriptionMethod , _,_) = geq
860
-
861
825
@doc raw """
862
826
con_custom!(gc, mpc::NonLinMPC, Ue, Ŷe, ϵ) -> gc
863
827
0 commit comments