I am trying to set up state space representation of a system using signal.lti. The system has no feedforward so D = 0. I've tried the three options listed in the code below to represent D. The only way I can get it to work is option 2 if C has 1 row. If C has more than 1 row it won't work. Any thoughts? -Bill Code --------------------------------------------------------------- from numpy import ones,matrix from scipy import signal r = ones(3) A = matrix([r,r,r]) B = matrix([r]).T C = matrix([r,r]) #three options of D to make it 0 #1) D=0 #2) D = matrix([0,0]).T #3) D = None D = 0 #D = None #D = matrix([0,0]).T Gss = signal.lti(A,B,C,D) ----------------------------------------------------------- Tracebacks ----------------------------------------------------------- Option 1 /usr/lib/python2.5/site-packages/scipy/signal/ltisys.py in abcd_normalize(A, B, C, D) 101 raise ValueError, "A and C must have the same number of columns." 102 if MD != MC: --> 103 raise ValueError, "C and D must have the same number of rows." 104 if ND != NB: 105 raise ValueError, "B and D must have the same number of columns." <type 'exceptions.ValueError'>: C and D must have the same number of rows. WARNING: Failure executing file: <testlti.py> Option 2 (with C as two rows...if C is a single row I do not get this traceback) /usr/lib/python2.5/site-packages/scipy/signal/ltisys.py in ss2tf(A, B, C, D, input) 147 148 num_states = A.shape[0] --> 149 type_test = A[:,0] + B[:,0] + C[0,:] + D 150 num = numpy.zeros((nout, num_states+1), type_test.dtype) 151 for k in range(nout): <type 'exceptions.ValueError'>: shape mismatch: objects cannot be broadcast to a single shape WARNING: Failure executing file: <testlti.py> Option 3 same as 1