|
21 | 21 | import numpy as np |
22 | 22 | import scipy as sp |
23 | 23 | import scipy.linalg |
24 | | -from numpy import any, array, asarray, concatenate, cos, delete, empty, \ |
25 | | - exp, eye, isinf, ones, pad, sin, squeeze, zeros |
| 24 | +from numpy import any, array, asarray, concatenate, cos, delete, empty, exp, \ |
| 25 | + eye, isinf, ones, pad, sin, squeeze, zeros |
26 | 26 | from numpy.linalg import LinAlgError, eigvals, matrix_rank, solve |
27 | 27 | from numpy.random import rand, randn |
28 | 28 | from scipy.signal import StateSpace as signalStateSpace |
29 | 29 | from scipy.signal import cont2discrete |
30 | 30 |
|
| 31 | +import control |
| 32 | + |
31 | 33 | from . import config |
32 | 34 | from .exception import ControlMIMONotImplemented, ControlSlycot, slycot_check |
33 | 35 | from .frdata import FrequencyResponseData |
|
36 | 38 | common_timebase, iosys_repr, isdtime, issiso |
37 | 39 | from .lti import LTI, _process_frequency_response |
38 | 40 | from .nlsys import InterconnectedSystem, NonlinearIOSystem |
39 | | -import control |
40 | 41 |
|
41 | 42 | try: |
42 | 43 | from slycot import ab13dd |
@@ -1432,7 +1433,7 @@ def output(self, t, x, u=None, params=None): |
1432 | 1433 | raise ValueError("len(u) must be equal to number of inputs") |
1433 | 1434 | return (self.C @ x).reshape((-1,)) \ |
1434 | 1435 | + (self.D @ u).reshape((-1,)) # return as row vector |
1435 | | - |
| 1436 | + |
1436 | 1437 | # convenience aliase, import needs to go over the submodule to avoid circular imports |
1437 | 1438 | initial_response = control.timeresp.initial_response |
1438 | 1439 |
|
|
0 commit comments