Skip to content

Commit 7063eef

Browse files
committed
corrected minreal call
1 parent 57e7b8e commit 7063eef

File tree

1 file changed

+8
-3
lines changed

1 file changed

+8
-3
lines changed

src/statesp.py

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -495,14 +495,19 @@ def feedback(self, other=1, sign=-1):
495495

496496
return StateSpace(A, B, C, D, dt)
497497

498-
def minreal(self, tol=None):
498+
def minreal(self, tol=0.0):
499499
"""Calculate a minimal realization, removes unobservable and
500500
uncontrollable states"""
501501
try:
502502
from slycot import tb01pd
503+
B = empty((self.states, max(self.inputs, self.outputs)))
504+
B[:,:self.inputs] = self.B
505+
C = empty((max(self.outputs, self.inputs), self.states))
506+
C[:self.outputs,:] = self.C
503507
A, B, C, nr = tb01pd(self.states, self.inputs, self.outputs,
504-
self.A, self.B, self.C, tol=tol)
505-
return StateSpace(A[:nr,:nr], B[:nr,:], C[:,:nr], self.D)
508+
self.A, B, C, tol=tol)
509+
return StateSpace(A[:nr,:nr], B[:nr,:self.inputs],
510+
C[:self.outputs,:nr], self.D)
506511
except ImportError:
507512
raise TypeError("minreal requires slycot tb01pd")
508513

0 commit comments

Comments
 (0)