Merge pull request #1050 from KybernetikJo/improve_style_era · python-control/python-control@cc0020a
@@ -377,14 +377,14 @@ def minimal_realization(sys, tol=None, verbose=True):
377377def _block_hankel(Y, m, n):
378378"""Create a block Hankel matrix from impulse response."""
379379q, p, _ = Y.shape
380-YY = Y.transpose(0,2,1) # transpose for reshape
380+YY = Y.transpose(0, 2, 1) # transpose for reshape
381381382-H = np.zeros((q*m,p*n))
382+H = np.zeros((q*m, p*n))
383383384384for r in range(m):
385385# shift and add row to Hankel matrix
386-new_row = YY[:,r:r+n,:]
387-H[q*r:q*(r+1),:] = new_row.reshape((q,p*n))
386+new_row = YY[:, r:r+n, :]
387+H[q*r:q*(r+1), :] = new_row.reshape((q, p*n))
388388389389return H
390390@@ -480,22 +480,22 @@ def eigensys_realization(arg, r, m=None, n=None, dt=True, transpose=False):
480480if (l-1) < m+n:
481481raise ValueError("not enough data for requested number of parameters")
482482483-H = _block_hankel(YY[:,:,1:], m, n+1) # Hankel matrix (q*m, p*(n+1))
484-Hf = H[:,:-p] # first p*n columns of H
485-Hl = H[:,p:] # last p*n columns of H
483+H = _block_hankel(YY[:, :, 1:], m, n+1) # Hankel matrix (q*m, p*(n+1))
484+Hf = H[:, :-p] # first p*n columns of H
485+Hl = H[:, p:] # last p*n columns of H
486486487487U,S,Vh = np.linalg.svd(Hf, True)
488-Ur =U[:,0:r]
489-Vhr =Vh[0:r,:]
488+Ur =U[:, 0:r]
489+Vhr =Vh[0:r, :]
490490491491# balanced realizations
492492Sigma_inv = np.diag(1./np.sqrt(S[0:r]))
493493Ar = Sigma_inv @ Ur.T @ Hl @ Vhr.T @ Sigma_inv
494-Br = Sigma_inv @ Ur.T @ Hf[:,0:p]*dt # dt scaling for unit-area impulse
495-Cr = Hf[0:q,:] @ Vhr.T @ Sigma_inv
496-Dr = YY[:,:,0]
494+Br = Sigma_inv @ Ur.T @ Hf[:, 0:p]*dt # dt scaling for unit-area impulse
495+Cr = Hf[0:q, :] @ Vhr.T @ Sigma_inv
496+Dr = YY[:, :, 0]
497497498-return StateSpace(Ar,Br,Cr,Dr,dt), S
498+return StateSpace(Ar, Br, Cr, Dr, dt), S
499499500500501501def markov(*args, m=None, transpose=False, dt=None, truncate=False):