Skip to content

Commit 2039a0d

Browse files
committed
allow matrix and 0dim ndarrays as placeable poles
1 parent b65b719 commit 2039a0d

File tree

1 file changed

+7
-7
lines changed

1 file changed

+7
-7
lines changed

control/statefbk.py

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@ def place(A, B, p):
108108
raise ControlDimension(err_str)
109109

110110
# Convert desired poles to numpy array
111-
placed_eigs = np.array(p)
111+
placed_eigs = np.atleast_1d(np.squeeze(np.asarray(p)))
112112

113113
result = place_poles(A_mat, B_mat, placed_eigs, method='YT')
114114
K = result.gain_matrix
@@ -184,7 +184,7 @@ def place_varga(A, B, p, dtime=False, alpha=None):
184184

185185
# Compute the system eigenvalues and convert poles to numpy array
186186
system_eigs = np.linalg.eig(A_mat)[0]
187-
placed_eigs = np.array(p)
187+
placed_eigs = np.atleast_1d(np.squeeze(np.asarray(p)))
188188

189189
# Need a character parameter for SB01BD
190190
if dtime:
@@ -231,7 +231,7 @@ def lqe(A, G, C, QN, RN, NN=None):
231231
.. math::
232232
x = Ax + Bu + Gw
233233
y = Cx + Du + v
234-
234+
235235
with unbiased process noise w and measurement noise v with covariances
236236
237237
.. math:: E{ww'} = QN, E{vv'} = RN, E{wv'} = NN
@@ -264,12 +264,12 @@ def lqe(A, G, C, QN, RN, NN=None):
264264
A P + P A^T - (P C^T + G N) R^-1 (C P + N^T G^T) + G Q G^T = 0
265265
E: 1D array
266266
Eigenvalues of estimator poles eig(A - L C)
267-
267+
268268
269269
Examples
270270
--------
271-
>>> K, P, E = lqe(A, G, C, QN, RN)
272-
>>> K, P, E = lqe(A, G, C, QN, RN, NN)
271+
>>> L, P, E = lqe(A, G, C, QN, RN)
272+
>>> L, P, E = lqe(A, G, C, QN, RN, NN)
273273
274274
See Also
275275
--------
@@ -381,7 +381,7 @@ def lqr(*args, **keywords):
381381
See Also
382382
--------
383383
lqe
384-
384+
385385
"""
386386

387387
# Make sure that SLICOT is installed

0 commit comments

Comments
 (0)