10000 Merge pull request #994 from bnavigator/numpy2 · python-control/python-control@e4a03e8 · GitHub
[go: up one dir, main page]

Skip to content

Commit e4a03e8

Browse files
authored
Merge pull request #994 from bnavigator/numpy2
Support NumPy 2
2 parents 1bb0a46 + ebb8a52 commit e4a03e8

File tree

4 files changed

+36
-34
lines changed

4 files changed

+36
-34
lines changed

control/rlocus.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
import matplotlib.pyplot as plt
2222
import numpy as np
2323
import scipy.signal # signal processing toolbox
24-
from numpy import array, imag, poly1d, real, row_stack, zeros_like
24+
from numpy import array, imag, poly1d, real, vstack, zeros_like
2525

2626
from . import config
2727
from .exception import ControlMIMONotImplemented
@@ -421,7 +421,7 @@ def _RLFindRoots(nump, denp, kvect):
421421
curroots.sort()
422422
roots.append(curroots)
423423

424-
return row_stack(roots)
424+
return vstack(roots)
425425

426426

427427
def _RLSortRoots(roots):

control/statesp.py

Lines changed: 16 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -48,26 +48,27 @@
4848
"""
4949

5050
import math
51+
from copy import deepcopy
52+
from warnings import warn
53+
5154
import numpy as np
52-
from numpy import any, asarray, concatenate, cos, delete, \
53-
empty, exp, eye, isinf, ones, pad, sin, zeros, squeeze
54-
from numpy.random import rand, randn
55-
from numpy.linalg import solve, eigvals, matrix_rank
56-
from numpy.linalg.linalg import LinAlgError
5755
import scipy as sp
5856
import scipy.linalg
59-
from scipy.signal import cont2discrete
57+
from numpy import (any, asarray, concatenate, cos, delete, empty, exp, eye,
58+
isinf, ones, pad, sin, squeeze, zeros)
59+
from numpy.linalg import LinAlgError, eigvals, matrix_rank, solve
60+
from numpy.random import rand, randn
6061
from scipy.signal import StateSpace as signalStateSpace
61-
from warnings import warn
62+
from scipy.signal import cont2discrete
6263

63-
from .exception import ControlSlycot, slycot_check, ControlMIMONotImplemented
64+
from . import config
65+
from .exception import ControlMIMONotImplemented, ControlSlycot, slycot_check
6466
from .frdata import FrequencyResponseData
67+
from .iosys import (InputOutputSystem, _process_dt_keyword,
68+
_process_iosys_keywords, _process_signal_list,
69+
common_timebase, isdtime, issiso)
6570
from .lti import LTI, _process_frequency_response
66-
from .iosys import InputOutputSystem, common_timebase, isdtime, issiso, \
67-
_process_iosys_keywords, _process_dt_keyword, _process_signal_list
68-
from .nlsys import NonlinearIOSystem, InterconnectedSystem
69-
from . import config
70-
from copy import deepcopy
71+
from .nlsys import InterconnectedSystem, NonlinearIOSystem
7172

7273
try:
7374
from slycot import ab13dd
@@ -2221,9 +2222,10 @@ def _convert_to_statespace(sys, use_prefix_suffix=False, method=None):
22212222
by the calling function.
22222223
22232224
"""
2224-
from .xferfcn import TransferFunction
22252225
import itertools
22262226

2227+
from .xferfcn import TransferFunction
2228+
22272229
if isinstance(sys, StateSpace):
22282230
return sys
22292231

control/tests/timeresp_test.py

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -173,15 +173,15 @@ def tsystem(self, request):
173173
# System Type 1 - Step response not stationary: G(s)=1/s(s+1)
174174
siso_tf_type1 = TSys(TransferFunction(1, [1, 1, 0]))
175175
siso_tf_type1.step_info = {
176-
'RiseTime': np.NaN,
177-
'SettlingTime': np.NaN,
178-
'SettlingMin': np.NaN,
179-
'SettlingMax': np.NaN,
180-
'Overshoot': np.NaN,
181-
'Undershoot': np.NaN,
182-
'Peak': np.Inf,
183-
'PeakTime': np.Inf,
184-
'SteadyStateValue': np.NaN}
176+
'RiseTime': np.nan,
177+
'SettlingTime': np.nan,
178+
'SettlingMin': np.nan,
179+
'SettlingMax': np.nan,
180+
'Overshoot': np.nan,
181+
'Undershoot': np.nan,
182+
'Peak': np.inf,
183+
'PeakTime': np.inf,
184+
'SteadyStateValue': np.nan}
185185

186186
# SISO under shoot response and positive final value
187187
# G(s)=(-s+1)/(s²+s+1)

control/timeresp.py

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1590,15 +1590,15 @@ def step_info(sysdata, T=None, T_num=None, yfinal=None, params=None,
15901590
InfValue = InfValues[i, j]
15911591
sgnInf = np.sign(InfValue.real)
15921592

1593-
rise_time: float = np.NaN
1594-
settling_time: float = np.NaN
1595-
settling_min: float = np.NaN
1596-
settling_max: float = np.NaN
1597-
peak_value: float = np.Inf
1598-
peak_time: float = np.Inf
1599-
undershoot: float = np.NaN
1600-
overshoot: float = np.NaN
1601-
steady_state_value: complex = np.NaN
1593+
rise_time: float = np.nan
1594+
settling_time: float = np.nan
1595+
settling_min: float = np.nan
1596+
settling_max: float = np.nan
1597+
peak_value: float = np.inf
1598+
peak_time: float = np.inf
1599+
undershoot: float = np.nan
1600+
overshoot: float = np.nan
1601+
steady_state_value: complex = np.nan
16021602

16031603
if not np.isnan(InfValue) and not np.isinf(InfValue):
16041604
# RiseTime

0 commit comments

Comments
 (0)
0