We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
1 parent 57e7b8e commit 7063eefCopy full SHA for 7063eef
src/statesp.py
@@ -495,14 +495,19 @@ def feedback(self, other=1, sign=-1):
495
496
return StateSpace(A, B, C, D, dt)
497
498
- def minreal(self, tol=None):
+ def minreal(self, tol=0.0):
499
"""Calculate a minimal realization, removes unobservable and
500
uncontrollable states"""
501
try:
502
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
507
A, B, C, nr = tb01pd(self.states, self.inputs, self.outputs,
- self.A, self.B, self.C, tol=tol)
- 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)
511
except ImportError:
512
raise TypeError("minreal requires slycot tb01pd")
513
0 commit comments