Exemplo n.º 1
0
def tb01pd_example():
    A = array([[-1, 0],[0,-1]])
    B = ones((2,1))
    C = array([[0,1]])
    out = slycot.tb01pd(2, 1, 1, A, B, C)
    print('--- Example for tb01pd ...')
    print('Minimal realization for A, B, C')
    print('reduced order', out[-2])
    print(out)
Exemplo n.º 2
0
def tb01pd_example():
    A = array([[-1, 0],[0,-1]])
    B = ones((2,1))
    C = array([[0,1]])
    out = slycot.tb01pd(2, 1, 1, A, B, C)
    print('--- Example for tb01pd ...')
    print('Minimal realization for A, B, C')
    print('reduced order', out[-2])
    print(out)
Exemplo n.º 3
0
 def minreal(self, tol=0.0):
     """Calculate a minimal realization, removes unobservable and
     uncontrollable states"""
     try:
         from slycot import tb01pd
         B = empty((self.states, max(self.inputs, self.outputs)))
         B[:,:self.inputs] = self.B
         C = empty((max(self.outputs, self.inputs), self.states))
         C[:self.outputs,:] = self.C
         A, B, C, nr = tb01pd(self.states, self.inputs, self.outputs,
                                 self.A, B, C, tol=tol)
         return StateSpace(A[:nr,:nr], B[:nr,:self.inputs],
                           C[:self.outputs,:nr], self.D)
     except ImportError:
         raise TypeError("minreal requires slycot tb01pd")