Skip to content

Commit 2aada8b

Browse files
committed
fix bug concatenating zero dimensional array
1 parent ffc3041 commit 2aada8b

1 file changed

Lines changed: 6 additions & 1 deletion

File tree

control/rlocus.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -172,7 +172,7 @@ def _default_gains(num, den, xlim, ylim):
172172
mymat = _RLSortRoots(mymat)
173173
distance_points = np.abs(np.diff(mymat, axis=0))
174174
indexes_too_far = np.where(distance_points > tolerance)
175-
new_gains = np.hstack((np.logspace(np.log10(kvect[-1]), np.log10(kvect[-1]*200), 10)))
175+
new_gains = np.hstack((np.linspace(kvect[-1], kvect[-1]*200, 10)))
176176
new_points = _RLFindRoots(num, den, new_gains[1:10])
177177
kvect = np.append(kvect, new_gains[1:10])
178178
mymat = np.concatenate((mymat, new_points), axis=0)
@@ -192,6 +192,9 @@ def _break_points(num, den):
192192
idx = k_break >= 0 # only positives gains
193193
k_break = k_break[idx]
194194
real_break_pts = real_break_pts[idx]
195+
if len(k_break) == 0:
196+
k_break = [0]
197+
real_break_pts = den.roots
195198
return k_break, real_break_pts
196199

197200

@@ -219,6 +222,8 @@ def _k_max(num, den, real_break_points, k_break_points):
219222
asymp_angles = (2 * np.arange(0, asymp_number)-1) * np.pi / asymp_number
220223
farthest_points = asymp_center + distance_max * np.exp(asymp_angles * 1j) # farthest points over asymptotes
221224
kmax_asymp = -den(farthest_points) / num(farthest_points)
225+
if kmax_asymp == 0:
226+
kmax_asymp = [den.coeffs[0]/num.coeffs[0]*3]
222227
else:
223228
farthest_points = 2 * np.max(np.abs(important_points))
224229
kmax_asymp = -den(farthest_points) / num(farthest_points)

0 commit comments

Comments
 (0)