care: Continuous-time Algebraic Riccati Equation solution

Description Usage Arguments Details Value Note Examples

View source: R/care.R

Description

Computes the unique solution to the continuous-time Riccati equation:

A'* X + X*A - X * B * R^-1 * B' * X + Q'*Q = 0

Usage

1
care(A, B, Q, R = 1)

Arguments

A

State-matrix of a state-space system

B

Input-matrix of a state-space system

Q

Symmetric output-matrix of a state-space system

R

Single number

Details

X <- care(A, B, Q, R) returns the stablizing solution (if it exists) to the continuous-time Riccati equation.

The care function also returns the gain matrix, G and a vector, L of the closed-loop eigenvalues, where

G = R^-1 B'X*E

L = eig(a-b*g)

Value

Returns the stabilizing matrix, gain and closed-loop eigenvalues in a list.

Note

A, B must be controllable

Examples

1
2
3
4
5
6
a <- matrix(c(-3, 2,1, 1), byrow = TRUE, ncol = 2)
b <- matrix(c(0, 1), nrow = 2)
c <- matrix(c(1, -1), ncol = 2)
q <- t(c)%*%c
r <- 3
care(a, b, q, r)

benubah/control documentation built on May 10, 2020, 1:38 a.m.