Skip to content

Commit 2016386

Browse files
committed
get rid of deprecated scipy calls
1 parent b743fb8 commit 2016386

File tree

2 files changed

+20
-19
lines changed

2 files changed

+20
-19
lines changed

control/freqplot.py

+9-7
Original file line numberDiff line numberDiff line change
@@ -40,11 +40,13 @@
4040
# SUCH DAMAGE.
4141
#
4242
# $Id$
43+
44+
import math
45+
4346
import matplotlib as mpl
4447
import matplotlib.pyplot as plt
45-
import scipy as sp
4648
import numpy as np
47-
import math
49+
4850
from .ctrlutil import unwrap
4951
from .bdalg import feedback
5052
from .margins import stability_margins
@@ -184,12 +186,12 @@ def bode_plot(syslist, omega=None,
184186
if Hz:
185187
omega_limits *= 2. * math.pi
186188
if omega_num:
187-
omega = sp.logspace(np.log10(omega_limits[0]),
189+
omega = np.logspace(np.log10(omega_limits[0]),
188190
np.log10(omega_limits[1]),
189191
num=omega_num,
190192
endpoint=True)
191193
else:
192-
omega = sp.logspace(np.log10(omega_limits[0]),
194+
omega = np.logspace(np.log10(omega_limits[0]),
193195
np.log10(omega_limits[1]),
194196
endpoint=True)
195197

@@ -530,8 +532,8 @@ def nyquist_plot(syslist, omega=None, plot=True, label_freq=0,
530532
phase = np.squeeze(phase_tmp)
531533

532534
# Compute the primary curve
533-
x = sp.multiply(mag, sp.cos(phase))
534-
y = sp.multiply(mag, sp.sin(phase))
535+
x = np.multiply(mag, np.cos(phase))
536+
y = np.multiply(mag, np.sin(phase))
535537

536538
if plot:
537539
# Plot the primary curve and mirror image
@@ -557,7 +559,7 @@ def nyquist_plot(syslist, omega=None, plot=True, label_freq=0,
557559
ind = slice(None, None, label_freq)
558560
for xpt, ypt, omegapt in zip(x[ind], y[ind], omega[ind]):
559561
# Convert to Hz
560-
f = omegapt / (2 * sp.pi)
562+
f = omegapt / (2 * np.pi)
561563

562564
# Factor out multiples of 1000 and limit the
563565
# result to the range [-8, 8].

control/nichols.py

+11-12
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,6 @@
4949
#
5050
# $Id: freqplot.py 139 2011-03-30 16:19:59Z murrayrm $
5151

52-
import scipy as sp
5352
import numpy as np
5453
import matplotlib.pyplot as plt
5554
from .ctrlutil import unwrap
@@ -102,8 +101,8 @@ def nichols_plot(sys_list, omega=None, grid=None):
102101

103102
# Convert to Nichols-plot format (phase in degrees,
104103
# and magnitude in dB)
105-
x = unwrap(sp.degrees(phase), 360)
106-
y = 20*sp.log10(mag)
104+
x = unwrap(np.degrees(phase), 360)
105+
y = 20*np.log10(mag)
107106

108107
# Generate the plot
109108
plt.plot(x, y)
@@ -183,13 +182,13 @@ def nichols_grid(cl_mags=None, cl_phases=None, line_style='dotted'):
183182
# Find the M-contours
184183
m = m_circles(cl_mags, phase_min=np.min(cl_phases),
185184
phase_max=np.max(cl_phases))
186-
m_mag = 20*sp.log10(np.abs(m))
187-
m_phase = sp.mod(sp.degrees(sp.angle(m)), -360.0) # Unwrap
185+
m_mag = 20*np.log10(np.abs(m))
186+
m_phase = np.mod(np.degrees(np.angle(m)), -360.0) # Unwrap
188187

189188
# Find the N-contours
190189
n = n_circles(cl_phases, mag_min=np.min(cl_mags), mag_max=np.max(cl_mags))
191-
n_mag = 20*sp.log10(np.abs(n))
192-
n_phase = sp.mod(sp.degrees(sp.angle(n)), -360.0) # Unwrap
190+
n_mag = 20*np.log10(np.abs(n))
191+
n_phase = np.mod(np.degrees(np.angle(n)), -360.0) # Unwrap
193192

194193
# Plot the contours behind other plot elements.
195194
# The "phase offset" is used to produce copies of the chart that cover
@@ -247,7 +246,7 @@ def closed_loop_contours(Gcl_mags, Gcl_phases):
247246
# Compute the contours in Gcl-space. Since we're given closed-loop
248247
# magnitudes and phases, this is just a case of converting them into
249248
# a complex number.
250-
Gcl = Gcl_mags*sp.exp(1.j*Gcl_phases)
249+
Gcl = Gcl_mags*np.exp(1.j*Gcl_phases)
251250

252251
# Invert Gcl = Gol/(1+Gol) to map the contours into the open-loop space
253252
return Gcl/(1.0 - Gcl)
@@ -274,8 +273,8 @@ def m_circles(mags, phase_min=-359.75, phase_max=-0.25):
274273
"""
275274
# Convert magnitudes and phase range into a grid suitable for
276275
# building contours
277-
phases = sp.radians(sp.linspace(phase_min, phase_max, 2000))
278-
Gcl_mags, Gcl_phases = sp.meshgrid(10.0**(mags/20.0), phases)
276+
phases = np.radians(np.linspace(phase_min, phase_max, 2000))
277+
Gcl_mags, Gcl_phases = np.meshgrid(10.0**(mags/20.0), phases)
279278
return closed_loop_contours(Gcl_mags, Gcl_phases)
280279

281280

@@ -300,8 +299,8 @@ def n_circles(phases, mag_min=-40.0, mag_max=12.0):
300299
"""
301300
# Convert phases and magnitude range into a grid suitable for
302301
# building contours
303-
mags = sp.linspace(10**(mag_min/20.0), 10**(mag_max/20.0), 2000)
304-
Gcl_phases, Gcl_mags = sp.meshgrid(sp.radians(phases), mags)
302+
mags = np.linspace(10**(mag_min/20.0), 10**(mag_max/20.0), 2000)
303+
Gcl_phases, Gcl_mags = np.meshgrid(np.radians(phases), mags)
305304
return closed_loop_contours(Gcl_mags, Gcl_phases)
306305

307306

0 commit comments

Comments
 (0)