-
Notifications
You must be signed in to change notification settings - Fork 438
Improvements to Nichols chart plotting #723
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Improvements to Nichols chart plotting #723
Conversation
Clip closed-loop contour labels. Add labels for constant closed-loop phase contours. Use smaller of data or view extents when deciding on how big, in phase, a chart to create. Use more uniformly spaced closed-loop phase contours, and use more widely-spaced contours when phase extent is large. Add optional `ax` argument, for axes to add grid to.
Changes look good. It might be worth adding some unit tests to cover the new features (eg, use of |
OK, I'll look at some tests, including testing the I'll probably wrap up the linfnorm PR first, and I'm not sure when I'll get this PR done. |
I changed nichols_grid to return the artists it adds; this made testing much easier, but also makes it possible to customize the grid appearance and labels. Below is a not-especially-compelling example; more realistically one might change the intensity or alpha of the grid and labels. plt.clf()
mc,nc,ml,nl = ct.nichols_grid()
for i,(c,l) in enumerate(zip(nc,nl)):
nc.set_color(f'C{i}')
nl.set_color(f'C{i}')
for i,(c,l) in enumerate(zip(mc,ml)):
c.set_color(f'C{i}')
l.set_color(f'C{i}') |
This looks good to go to me. @roryyorke: any additional changes that you plan to make? |
No, all done.
…On Sat, 30 Apr 2022, 07:05 Richard Murray, ***@***.***> wrote:
This looks good to go to me. @roryyorke <https://github.com/roryyorke>:
any additional changes that you plan to make?
—
Reply to this email directly, view it on GitHub
<#723 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AAA3C7TMVNROIIOFAL7I2EDVHS5QRANCNFSM5TSN3NBA>
.
You are receiving this because you were mentioned.Message ID:
***@***.***>
|
These are relatively minor updates to the Nichols chart (AKA grid) plotting.
It's far from ideal; further possible improvements:
'xlim_changed'
and'ylim_changed'
eventsContourSet
s, and plug into however that labelling is done?Here are some before-and-after pictures (left is before) of a few example systems.
The new code gives a better result in almost all respects. One visible problem is that the closed-loop phase label for "0°" clashes with the "-40dB" (and similar) closed-loop gain label. The gains become crowded when the gain span is large (final figure), but that is the same in both versions.
I haven't added tests; I'll see how much time I have to do that. Easyish tests:
if
in_inner_extents
, and in fact test the behaviour in general by setting xlim & ylim before calling nichols_grid.Please suggest other tests.
Details (commit message)
Clip closed-loop contour labels.
Add labels for constant closed-loop phase contours.
Use smaller of data or view extents when deciding on how big, in
phase, a chart to create.
Use more uniformly spaced closed-loop phase contours, and use more
widely-spaced contours when phase extent is large.
Add optional
ax
argument, for axes to add grid to.