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):

377377

def _block_hankel(Y, m, n):

378378

"""Create a block Hankel matrix from impulse response."""

379379

q, 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))

383383384384

for 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))

388388389389

return H

390390

@@ -480,22 +480,22 @@ def eigensys_realization(arg, r, m=None, n=None, dt=True, transpose=False):

480480

if (l-1) < m+n:

481481

raise 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

486486487487

U,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

492492

Sigma_inv = np.diag(1./np.sqrt(S[0:r]))

493493

Ar = 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

499499500500501501

def markov(*args, m=None, transpose=False, dt=None, truncate=False):