findLocal_tk

Find a local minimizer tk to define the length of the step tk*Nk in continuousRiccatiIterative and discreteRiccatiIterative

Information

This information is part of the Modelica Standard Library maintained by the Modelica Association.

Syntax

           tk = Matrices.Utilities.findLocal_tk(Rk, Vk);

Description

Function findLocal_tk() is an auxiliary function called in iterative solver for algebraic Riccati equation based on Newton's method with exact line search like continuousRiccatiIterative
and discreteRiccatiIterative.
The function computes the local minimum of the function f_k(t_k)

  f_k(t_k) = alpha_k*(1-t_k)^2 + 2*beta_k*(1-t)*t^2 + gamma_k*t^4

by calculating the zeros of the derivation d f_k/d t_k. It is known that the function f_k(t_k) has a local minimum at some value t_k_min in [0, 2].
With t_k_min the norm of the next residual of the algorithm will be minimized.
See [1] for more information

References

  [1] Benner, P., Byers, R.
      An Exact Line Search Method for Solving Generalized Continuous-Time Algebraic Riccati Equations
      IEEE Transactions On Automatic Control, Vol. 43, No. 1, pp. 101-107, 1998.

See also

Matrices.Utilities.continuousRiccatiIterative
Matrices.Utilities.discreteRiccatiIterative

Syntax

tk = findLocal_tk(Rk, Vk)

Inputs (2)

Rk

Type: Real[:,size(Rk, 1)]

Vk

Type: Real[size(Rk, 1),size(Rk, 2)]

Outputs (1)

tk

Type: Real