8000 Merge branch 'python-control:main' into nyquist_frd · python-control/python-control@7fa5960 · GitHub
[go: up one dir, main page]

Skip to content

Commit 7fa5960

Browse files
authored
Merge branch 'python-control:main' into nyquist_frd
2 parents 0351562 + e1d21d2 commit 7fa5960

File tree

7 files changed

+33
-28
lines changed

7 files changed

+33
-28
lines changed

control/lti.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,8 @@ def frequency_response(self, omega=None, squeeze=None):
120120
response = self(s)
121121
return FrequencyResponseData(
122122
response, omega, return_magphase=True, squeeze=squeeze,
123-
dt=self.dt, sysname=self.name, plot_type='bode')
123+
dt=self.dt, sysname=self.name, inputs=self.input_labels,
124+
outputs=self.output_labels, plot_type='bode')
124125

125126
def dcgain(self):
126127
"""Return the zero-frequency gain"""

control/matlab/wrappers.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -197,19 +197,19 @@ def _parse_freqplot_args(*args):
197197

198198
# TODO: rewrite to call root_locus_map, without using legacy plot keyword
199199
def rlocus(*args, **kwargs):
200-
"""rlocus(sys[, klist, xlim, ylim, ...])
200+
"""rlocus(sys[, gains, xlim, ylim, ...])
201201
202202
Root locus diagram.
203203
204204
Calculate the root locus by finding the roots of 1 + k * G(s) where G
205205
is a linear system with transfer function num(s)/den(s) and each k is
206-
an element of kvect.
206+
an element of gains.
207207
208208
Parameters
209209
----------
210210
sys : LTI object
211211
Linear input/output systems (SISO only, for now).
212-
kvect : array_like, optional
212+
gains : array_like, optional
213213
Gains to use in computing plot of closed-loop poles.
214214
xlim : tuple or list, optional
215215
Set limits of x axis, normally with tuple
@@ -224,7 +224,7 @@ def rlocus(*args, **kwargs):
224224
Closed-loop root locations, arranged in which each row corresponds
225225
to a gain in gains.
226226
gains : ndarray
227-
Gains used. Same as kvect keyword argument if provided.
227+
Gains used. Same as gains keyword argument if provided.
228228
229229
Notes
230230
-----

control/rlocus.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -160,7 +160,8 @@ def root_locus_plot(
160160
from .pzmap import pole_zero_plot
161161

162162
# Legacy parameters
163-
gains = config._process_legacy_keyword(kwargs, 'kvect', 'gains', gains)
163+
for oldkey in ['kvect', 'k']:
164+
gains = config._process_legacy_keyword(kwargs, oldkey, 'gains', gains)
164165

165166
# Set default parameters
166167
grid = config._get_param('rlocus', 'grid', grid, _rlocus_defaults)

control/statefbk.py

Lines changed: 19 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -150,22 +150,18 @@ def place_varga(A, B, p, dtime=False, alpha=None):
150150
"""Place closed loop eigenvalues.
151151
K = place_varga(A, B, p, dtime=False, alpha=None)
152152
153-
Required Parameters
153+
Parameters
154154
----------
155155
A : 2D array_like
156156
Dynamics matrix
157157
B : 2D array_like
158158
Input matrix
159159
p : 1D array_like
160160
Desired eigenvalue locations
161-
162-
Optional Parameters
163-
---------------
164-
dtime : bool
161+
dtime : bool, optional
165162
False for continuous time pole placement or True for discrete time.
166163
The default is dtime=False.
167-
168-
alpha : double scalar
164+
alpha : float, optional
169165
If `dtime` is false then place_varga will leave the eigenvalues with
170166
real part less than alpha untouched. If `dtime` is true then
171167
place_varga will leave eigenvalues with modulus less than alpha
@@ -179,26 +175,27 @@ def place_varga(A, B, p, dtime=False, alpha=None):
179175
K : 2D array (or matrix)
180176
Gain such that A - B K has eigenvalues given in p.
181177
182-
Algorithm
183-
---------
178+
See Also
179+
--------
180+
place, acker
181+
182+
Notes
183+
-----
184184
This function is a wrapper for the slycot function sb01bd, which
185-
implements the pole placement algorithm of Varga [1]. In contrast to the
185+
implements the pole placement algorithm of Varga [1]_. In contrast to the
186186
algorithm used by place(), the Varga algorithm can place multiple poles at
187187
the same location. The placement, however, may not be as robust.
188188
189-
[1] Varga A. "A Schur method for pole assignment." IEEE Trans. Automatic
190-
Control, Vol. AC-26, pp. 517-519, 1981.
189+
References
190+
----------
191+
.. [1] Varga A. "A Schur method for pole assignment." IEEE Trans. Automatic
192+
Control, Vol. AC-26, pp. 517-519, 1981.
191193
192194
Examples
193195
--------
194196
>>> A = [[-1, -1], [0, 1]]
195197
>>> B = [[0], [1]]
196-
>>> K = place_varga(A, B, [-2, -5])
197-
198-
See Also:
199-
--------
200-
place, acker
201-
198+
>>> K = ct.place_varga(A, B, [-2, -5])
202199
"""
203200

204201
# Make sure that SLICOT is installed
@@ -269,6 +266,10 @@ def acker(A, B, poles):
269266
-------
270267
K : 2D array (or matrix)
271268
Gains such that A - B K has given eigenvalues
269+
270+
See Also
271+
--------
272+
place, place_varga
272273
273274
"""
274275
# Convert the inputs to matrices

control/tests/rlocus_test.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -181,10 +181,11 @@ def test_root_locus_plots(sys, grid, xlim, ylim, interactive):
181181

182182

183183
# Test deprecated keywords
184-
def test_root_locus_legacy():
184+
@pytest.mark.parametrize("keyword", ["kvect", "k"])
185+
def test_root_locus_legacy(keyword):
185186
sys = ct.rss(2, 1, 1)
186-
with pytest.warns(DeprecationWarning, match="'kvect' is deprecated"):
187-
ct.root_locus_plot(sys, kvect=[0, 1, 2])
187+
with pytest.warns(DeprecationWarning, match=f"'{keyword}' is deprecated"):
188+
ct.root_locus_plot(sys, **{keyword: [0, 1, 2]})
188189

189190

190191
# Generate plots used in documentation

control/xferfcn.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1687,7 +1687,7 @@ def zpk(zeros, poles, gain, *args, **kwargs):
16871687
zeros : array_like
16881688
Array containing the location of zeros.
16891689
poles : array_like
1690-
Array containing the location of zeros.
1690+
Array containing the location of poles.
16911691
gain : float
16921692
System gain
16931693
dt : None, True or float, optional

doc/control.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -124,6 +124,7 @@ Control system synthesis
124124
lqr
125125
mixsyn
126126
place
127+
place_varga
127128
rootlocus_pid_designer
128129

129130
Model simplification tools

0 commit comments

Comments
 (0)
0