@@ -61,6 +61,42 @@ function get_nZ(estim::StateEstimator, ::MultipleShooting, Hp, Hc)
6161 return estim. model. nu* Hc + estim. nx̂* Hp
6262end
6363
64+
65+ @doc raw """
66+ TrapezoidalMethod()
67+
68+ An implicit trapezoidal transcription method (not yet implemented).
69+
70+ This is presumably the simplest collocation method. It can handle moderately stiff systems
71+ and is A-stable. However, it may not be as efficient as more advanced methods for highly
72+ stiff systems. The decision variables are the same as for [`MultipleShooting`](@ref), hence
73+ a similar algorithm complexity.
74+
75+ # Extended Help
76+
77+ !!! details "Extended Help"
78+ The trapezoidal method estimates the defects with:
79+ by:
80+ ```math
81+ \m athbf{Ŝ}(k) = \m athbf{Ẽ_ŝ Z̃} + \m athbf{K_ŝ x̂_0}(k) + 0.5\f rac{T_s}\b ig(\m athbf{F̂}(k+1) + \m athbf{F̂}(k)\b ig)
82+ ```
83+ where ``T_s`` is the sampling period, ``\m athbf{Ẽ}`` the matrix defined at
84+ [`init_defectmat`](@ref), and ``\m athbf{F̂}(k+j)`` the stacked vector of system
85+
86+ where ``\m athbf{f̂}(k+j) = \m athbf{f̂}\b ig(\m athbf{x̂}(k+j), \m athbf{u}(k+j), \m athbf{d}(k+j)\b ig)``.
87+ This leads to the following defect constraints for ``j=0`` to ``H_p-1``:
88+ ```math
89+ \m athbf{ŝ}(k+j) = \m athbf{x̂}(k+j+1) - \m athbf{x̂}(k+j) - \f rac{T_s}{2} \b ig( \m athbf{f̂}(k+j) + \m athbf{f̂}(k+j+1) \b ig) = 0
90+ ```
91+ which are added as equality constraints in the optimization problem. The initial state
92+ ``\m athbf{x̂}(k)`` is given by the state estimator, and the future states
93+ ``\m athbf{x̂}(k+j+1)`` are decision variables in the optimization problem. The method
94+ requires evaluating the system dynamics at both the current and next time steps, which
95+ can increase computational complexity compared to explicit methods like single shooting.
96+ """
97+ struct TrapezoidalMethod <: TranscriptionMethod end
98+
99+
64100@doc raw """
65101 init_ZtoΔU(estim::StateEstimator, transcription::TranscriptionMethod, Hp, Hc) -> PΔu
66102
0 commit comments