Model Simplification Tools

control.balred(sys, orders, method='truncate')

Balanced reduced order model of sys of a given order. States are eliminated based on Hankel singular value.

Parameters:

sys: StateSpace :

Original system to reduce

orders: integer or array of integer :

Desired order of reduced order model (if a vector, returns a vector of systems)

method: string :

Method of removing states, either 'truncate' or 'matchdc'.

Returns:

rsys: StateSpace :

A reduced order model

Raises:

ValueError :

  • if method is not 'truncate'
  • if eigenvalues of sys.A are not all in left half plane (sys must be stable)

ImportError :

if slycot routine ab09ad is not found

Examples

>>> rsys = balred(sys, order, method='truncate')
control.hsvd(sys)

Calculate the Hankel singular values.

Parameters:

sys : StateSpace

A state space system

Returns:

H : Matrix

A list of Hankel singular values

See also

gram

Notes

The Hankel singular values are the singular values of the Hankel operator. In practice, we compute the square root of the eigenvalues of the matrix formed by taking the product of the observability and controllability gramians. There are other (more efficient) methods based on solving the Lyapunov equation in a particular way (more details soon).

Examples

>>> H = hsvd(sys)
control.modred(sys, ELIM, method='matchdc')

Model reduction of sys by eliminating the states in ELIM using a given method.

Parameters:

sys: StateSpace :

Original system to reduce

ELIM: array :

Vector of states to eliminate

method: string :

Method of removing states in ELIM: either 'truncate' or 'matchdc'.

Returns:

rsys: StateSpace :

A reduced order model

Raises:

ValueError :

  • if method is not either 'matchdc' or 'truncate'
  • if eigenvalues of sys.A are not all in left half plane (sys must be stable)

Examples

>>> rsys = modred(sys, ELIM, method='truncate')