control.place_varga
- control.place_varga(A, B, p, dtime=False, alpha=None)[source]
Place closed loop eigenvalues using Varga method.
K = place_varga(A, B, p, dtime=False, alpha=None)
- Parameters
- A2D array_like
Dynamics matrix.
- B2D array_like
Input matrix.
- p1D array_like
Desired eigenvalue locations.
- dtimebool, optional
False (default) for continuous-time pole placement or True for discrete time.
- alphafloat, optional
If
dtime
is false then place_varga will leave the eigenvalues with real part less than alpha untouched. Ifdtime
is true then place_varga will leave eigenvalues with modulus less than alpha untouched.By default (alpha=None), place_varga computes alpha such that all poles will be placed.
- Returns
- K2D array
Gain such that A - B K has eigenvalues given in p.
See also
Notes
This function is a wrapper for the Slycot function sb01bd, which implements the pole placement algorithm of Varga [1]. In contrast to the algorithm used by
place
, the Varga algorithm can place multiple poles at the same location. The placement, however, may not be as robust.References
- 1
Varga A. “A Schur method for pole assignment.” IEEE Trans. Automatic Control, Vol. AC-26, pp. 517-519, 1981.
Examples
>>> A = [[-1, -1], [0, 1]] >>> B = [[0], [1]] >>> K = ct.place_varga(A, B, [-2, -5])