Skip to content

dare validation unsuitable for H-inf synthesis #440

@kjellqvist

Description

@kjellqvist

The command dare(A, B, Q, R) has validation on R > 0, this is unsuitable for H-infinity synthesis.

finding the stationary H-inf controller amounts to finding a fixpoint to the dare:

P = Q + A'(P^(-1) + BR^(-1)B -I/gamma^2)A.

This is equivalent to solving the lqr problem with augmented B* = [B I] and R* = [R 0;0 -gamma^2]. The algorithm which is already implemented works well, however R* is indefinite so calling dare(A, B, Q, R) throws an error.

Minimal test case:

gamma = 2
A = ones((1,1))
B = ones((1,2))
Q = ones((1,1))
R = [1. 0;0 -gamma^2]

P = dare(A,B,Q,R)

@test P[1,1] \approx 1/2 + sqrt(4/3 + 1/4)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions