@@ -377,14 +377,14 @@ def minimal_realization(sys, tol=None, verbose=True):
377
377
def _block_hankel (Y , m , n ):
378
378
"""Create a block Hankel matrix from impulse response."""
379
379
q , p , _ = Y .shape
380
- YY = Y .transpose (0 ,2 , 1 ) # transpose for reshape
380
+ YY = Y .transpose (0 , 2 , 1 ) # transpose for reshape
381
381
382
- H = np .zeros ((q * m ,p * n ))
382
+ H = np .zeros ((q * m , p * n ))
383
383
384
384
for r in range (m ):
385
385
# 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 ))
388
388
389
389
return H
390
390
@@ -480,22 +480,22 @@ def eigensys_realization(arg, r, m=None, n=None, dt=True, transpose=False):
480
480
if (l - 1 ) < m + n :
481
481
raise ValueError ("not enough data for requested number of parameters" )
482
482
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
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
486
486
487
487
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 , :]
490
490
491
491
# balanced realizations
492
492
Sigma_inv = np .diag (1. / np .sqrt (S [0 :r ]))
493
493
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 ]
497
497
498
- return StateSpace (Ar ,Br ,Cr ,Dr ,dt ), S
498
+ return StateSpace (Ar , Br , Cr , Dr , dt ), S
499
499
500
500
501
501
def markov (* args , m = None , transpose = False , dt = None , truncate = False ):
0 commit comments