control.matlab.place

control.matlab.place(A, B, p)

Place closed loop eigenvalues

K = place(A, B, p)

Parameters
  • A (2D array) – Dynamics matrix

  • B (2D array) – Input matrix

  • p (1D list) – Desired eigenvalue locations

Returns

K – Gain such that A - B K has eigenvalues given in p

Return type

2D array (or matrix)

Notes

Algorithm

This is a wrapper function for scipy.signal.place_poles(), which implements the Tits and Yang algorithm 1. It will handle SISO, MISO, and MIMO systems. If you want more control over the algorithm, use scipy.signal.place_poles() directly.

Limitations

The algorithm will not place poles at the same location more than rank(B) times.

The return type for 2D arrays depends on the default class set for state space operations. See use_numpy_matrix().

References

1

A.L. Tits and Y. Yang, “Globally convergent algorithms for robust pole assignment by state feedback, IEEE Transactions on Automatic Control, Vol. 41, pp. 1432-1452, 1996.

Examples

>>> A = [[-1, -1], [0, 1]]
>>> B = [[0], [1]]
>>> K = place(A, B, [-2, -5])

See also

place_varga, acker

Notes

The return type for 2D arrays depends on the default class set for state space operations. See use_numpy_matrix().