René's URL Explorer Experiment


Title: Nyquist plot improvements by murrayrm · Pull Request #534 · python-control/python-control · GitHub

Open Graph Title: Nyquist plot improvements by murrayrm · Pull Request #534 · python-control/python-control

X Title: Nyquist plot improvements by murrayrm · Pull Request #534 · python-control/python-control

Description: This PR provides improvements to Nyquist plots: The nyquist_plot command now returns the number of encirclements of the -1 point and (optionally) the contour used to generate the plot instead of the magnitude, phase, and frequency values. (The system response can be generated from the contour by simply evaluating the LTI system along the contour). Nyquist plots now automatically create a small indentation around poles on the imaginary access, along Nyquist plots to be closed curves. Options are available to change the size of the indentation (indent_radius) and the direction of the indentation for the case of poles exactly on the imaginary axis (set indent_direction to 'left' or 'right'). Indentation can be turned off by setting indent_direction to none). Arrows are now generated using FancyArrowPatch, which provides a fixed size and aspect ratio in display coordinates (so zooming in doesn't not change the size and shape of arrows). The default arrow style can be overridden using the option arrow_size parameter or the arrow_style parameters. The number (or specific location) of arrows can be specified using the arrows keyword, which allows you to specify the number of arrows or the specific locations (via a list of relative positions on the primary segment). The line style for mirror image of the primary segment can be set using the mirror_style parameter and defaults to a dashed line. The mirror image segment can be omitted by setting mirror_style=False. The MATLAB version of nyquist retains its original call signature and return values. Before: After: Other notes: The mirror_style parameter will conflict with the mirror parameter in PR #521 (describing functions). The functionality is basically the same, but there will be a merge conflict in whichever gets merged second. (I think we should use mirror_style). The various default settings can now be set using config.defaults with module name nyquist. The control/tests/nyquist_test.py unit test file serves as a pretty complete unit test, but can also be run in python/ipython to generate plots that you can see (and make sure they look OK). I pulled the code for processing arguments for the MATLAB version of bode into a separate function (_parse_freqplot_args) that is used for both bode and nyquist. Added unit tests, docstrings, some PEP8 cleanup.

Open Graph Description: This PR provides improvements to Nyquist plots: The nyquist_plot command now returns the number of encirclements of the -1 point and (optionally) the contour used to generate the plot instead of t...

X Description: This PR provides improvements to Nyquist plots: The nyquist_plot command now returns the number of encirclements of the -1 point and (optionally) the contour used to generate the plot instead of t...

Opengraph URL: https://github.com/python-control/python-control/pull/534

X: @github

direct link

Domain: github.com

route-pattern/:user_id/:repository/pull/:id/files(.:format)
route-controllerpull_requests
route-actionfiles
fetch-noncev2:a1bcc652-9bd9-3531-f34c-54c291c1b4c6
current-catalog-service-hashae870bc5e265a340912cde392f23dad3671a0a881730ffdadd82f2f57d81641b
request-idB9B8:A2515:170EE10:1F4B767:697A97AF
html-safe-noncea9b7c8e3339850f81495e4bf9c6a3e74819449bba7aef79bc4b6add40975d6b9
visitor-payloadeyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJCOUI4OkEyNTE1OjE3MEVFMTA6MUY0Qjc2Nzo2OTdBOTdBRiIsInZpc2l0b3JfaWQiOiI1MjE5MDI5OTYyNDc1NjA3OTgzIiwicmVnaW9uX2VkZ2UiOiJpYWQiLCJyZWdpb25fcmVuZGVyIjoiaWFkIn0=
visitor-hmac69d58f77734e7a03586e2a731ccf3e7bca80a436b3f18b669473130c7f673699
hovercard-subject-tagpull_request:568850711
github-keyboard-shortcutsrepository,pull-request-list,pull-request-conversation,pull-request-files-changed,copilot
google-site-verificationApib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I
octolytics-urlhttps://collector.github.com/github/collect
analytics-location///pull_requests/show/files
fb:app_id1401488693436528
apple-itunes-appapp-id=1477376905, app-argument=https://github.com/python-control/python-control/pull/534/files
twitter:imagehttps://avatars.githubusercontent.com/u/293362?s=400&v=4
twitter:cardsummary_large_image
og:imagehttps://avatars.githubusercontent.com/u/293362?s=400&v=4
og:image:altThis PR provides improvements to Nyquist plots: The nyquist_plot command now returns the number of encirclements of the -1 point and (optionally) the contour used to generate the plot instead of t...
og:site_nameGitHub
og:typeobject
hostnamegithub.com
expected-hostnamegithub.com
Nonef73c0dfa17dfe2bc934284d1387c1cedefe723d2133ede564feefd2cbeb98e55
turbo-cache-controlno-preview
diff-viewunified
go-importgithub.com/python-control/python-control git https://github.com/python-control/python-control.git
octolytics-dimension-user_id2285872
octolytics-dimension-user_loginpython-control
octolytics-dimension-repository_id22791752
octolytics-dimension-repository_nwopython-control/python-control
octolytics-dimension-repository_publictrue
octolytics-dimension-repository_is_forkfalse
octolytics-dimension-repository_network_root_id22791752
octolytics-dimension-repository_network_root_nwopython-control/python-control
turbo-body-classeslogged-out env-production page-responsive full-width
disable-turbotrue
browser-stats-urlhttps://api.github.com/_private/browser/stats
browser-errors-urlhttps://api.github.com/_private/browser/errors
release58b9322bb0d01c6949be2239e39780fa702e604c
ui-targetfull
theme-color#1e2327
color-schemelight dark

Links:

Skip to contenthttps://github.com/python-control/python-control/pull/534/changes#start-of-content
https://github.com/
Sign in https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fpython-control%2Fpython-control%2Fpull%2F534%2Ffiles
GitHub CopilotWrite better code with AIhttps://github.com/features/copilot
GitHub SparkBuild and deploy intelligent appshttps://github.com/features/spark
GitHub ModelsManage and compare promptshttps://github.com/features/models
MCP RegistryNewIntegrate external toolshttps://github.com/mcp
ActionsAutomate any workflowhttps://github.com/features/actions
CodespacesInstant dev environmentshttps://github.com/features/codespaces
IssuesPlan and track workhttps://github.com/features/issues
Code ReviewManage code changeshttps://github.com/features/code-review
GitHub Advanced SecurityFind and fix vulnerabilitieshttps://github.com/security/advanced-security
Code securitySecure your code as you buildhttps://github.com/security/advanced-security/code-security
Secret protectionStop leaks before they starthttps://github.com/security/advanced-security/secret-protection
Why GitHubhttps://github.com/why-github
Documentationhttps://docs.github.com
Bloghttps://github.blog
Changeloghttps://github.blog/changelog
Marketplacehttps://github.com/marketplace
View all featureshttps://github.com/features
Enterpriseshttps://github.com/enterprise
Small and medium teamshttps://github.com/team
Startupshttps://github.com/enterprise/startups
Nonprofitshttps://github.com/solutions/industry/nonprofits
App Modernizationhttps://github.com/solutions/use-case/app-modernization
DevSecOpshttps://github.com/solutions/use-case/devsecops
DevOpshttps://github.com/solutions/use-case/devops
CI/CDhttps://github.com/solutions/use-case/ci-cd
View all use caseshttps://github.com/solutions/use-case
Healthcarehttps://github.com/solutions/industry/healthcare
Financial serviceshttps://github.com/solutions/industry/financial-services
Manufacturinghttps://github.com/solutions/industry/manufacturing
Governmenthttps://github.com/solutions/industry/government
View all industrieshttps://github.com/solutions/industry
View all solutionshttps://github.com/solutions
AIhttps://github.com/resources/articles?topic=ai
Software Developmenthttps://github.com/resources/articles?topic=software-development
DevOpshttps://github.com/resources/articles?topic=devops
Securityhttps://github.com/resources/articles?topic=security
View all topicshttps://github.com/resources/articles
Customer storieshttps://github.com/customer-stories
Events & webinarshttps://github.com/resources/events
Ebooks & reportshttps://github.com/resources/whitepapers
Business insightshttps://github.com/solutions/executive-insights
GitHub Skillshttps://skills.github.com
Documentationhttps://docs.github.com
Customer supporthttps://support.github.com
Community forumhttps://github.com/orgs/community/discussions
Trust centerhttps://github.com/trust-center
Partnershttps://github.com/partners
GitHub SponsorsFund open source developershttps://github.com/sponsors
Security Labhttps://securitylab.github.com
Maintainer Communityhttps://maintainers.github.com
Acceleratorhttps://github.com/accelerator
Archive Programhttps://archiveprogram.github.com
Topicshttps://github.com/topics
Trendinghttps://github.com/trending
Collectionshttps://github.com/collections
Enterprise platformAI-powered developer platformhttps://github.com/enterprise
GitHub Advanced SecurityEnterprise-grade security featureshttps://github.com/security/advanced-security
Copilot for BusinessEnterprise-grade AI featureshttps://github.com/features/copilot/copilot-business
Premium SupportEnterprise-grade 24/7 supporthttps://github.com/premium-support
Pricinghttps://github.com/pricing
Search syntax tipshttps://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax
documentationhttps://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax
Sign in https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fpython-control%2Fpython-control%2Fpull%2F534%2Ffiles
Sign up https://github.com/signup?ref_cta=Sign+up&ref_loc=header+logged+out&ref_page=%2F%3Cuser-name%3E%2F%3Crepo-name%3E%2Fpull_requests%2Fshow%2Ffiles&source=header-repo&source_repo=python-control%2Fpython-control
Reloadhttps://github.com/python-control/python-control/pull/534/changes
Reloadhttps://github.com/python-control/python-control/pull/534/changes
Reloadhttps://github.com/python-control/python-control/pull/534/changes
python-control https://github.com/python-control
python-controlhttps://github.com/python-control/python-control
Notifications https://github.com/login?return_to=%2Fpython-control%2Fpython-control
Fork 447 https://github.com/login?return_to=%2Fpython-control%2Fpython-control
Star 2k https://github.com/login?return_to=%2Fpython-control%2Fpython-control
Code https://github.com/python-control/python-control
Issues 87 https://github.com/python-control/python-control/issues
Pull requests 8 https://github.com/python-control/python-control/pulls
Discussions https://github.com/python-control/python-control/discussions
Actions https://github.com/python-control/python-control/actions
Projects 0 https://github.com/python-control/python-control/projects
Wiki https://github.com/python-control/python-control/wiki
Security 0 https://github.com/python-control/python-control/security
Insights https://github.com/python-control/python-control/pulse
Code https://github.com/python-control/python-control
Issues https://github.com/python-control/python-control/issues
Pull requests https://github.com/python-control/python-control/pulls
Discussions https://github.com/python-control/python-control/discussions
Actions https://github.com/python-control/python-control/actions
Projects https://github.com/python-control/python-control/projects
Wiki https://github.com/python-control/python-control/wiki
Security https://github.com/python-control/python-control/security
Insights https://github.com/python-control/python-control/pulse
Sign up for GitHub https://github.com/signup?return_to=%2Fpython-control%2Fpython-control%2Fissues%2Fnew%2Fchoose
terms of servicehttps://docs.github.com/terms
privacy statementhttps://docs.github.com/privacy
Sign inhttps://github.com/login?return_to=%2Fpython-control%2Fpython-control%2Fissues%2Fnew%2Fchoose
murrayrmhttps://github.com/murrayrm
python-control:masterhttps://github.com/python-control/python-control/tree/master
murrayrm:improve_nyquisthttps://github.com/murrayrm/python-control/tree/improve_nyquist
Conversation 9 https://github.com/python-control/python-control/pull/534
Commits 8 https://github.com/python-control/python-control/pull/534/commits
Checks 0 https://github.com/python-control/python-control/pull/534/checks
Files changed https://github.com/python-control/python-control/pull/534/files
Please reload this pagehttps://github.com/python-control/python-control/pull/534/changes
Nyquist plot improvements https://github.com/python-control/python-control/pull/534/changes#top
Show all changes 8 commits https://github.com/python-control/python-control/pull/534/files
85faffa add mirror_style keyword for nyquist murrayrm Feb 6, 2021 https://github.com/python-control/python-control/pull/534/commits/85faffa27d30bf4cef06ff8a31d3c662aa498f05
1888854 update arrow styles for nyquist murrayrm Feb 6, 2021 https://github.com/python-control/python-control/pull/534/commits/18888548f9b31bed53faed23ab214dddc20ea948
6de5e91 update MATLAB interface to bode, nyquist murrayrm Feb 6, 2021 https://github.com/python-control/python-control/pull/534/commits/6de5e91b4fd87b8a085e1c5e91f03dd191224387
2021a75 improvements to Nyquist contour tracing murrayrm Feb 6, 2021 https://github.com/python-control/python-control/pull/534/commits/2021a7526e1d48855137e3c24c59704fc9cc33ec
b859aec updated examples and small tweaks to docs murrayrm Feb 6, 2021 https://github.com/python-control/python-control/pull/534/commits/b859aece3e8a561e24bbfda711193a4fa18c5c5f
1d9fc80 update descfcn module for compatibility murrayrm Feb 8, 2021 https://github.com/python-control/python-control/pull/534/commits/1d9fc80c883007dc29ee88d237047299e94c84ff
078e028 small fixes based on @sawyerbfuller, @bnavigator comments murrayrm Feb 8, 2021 https://github.com/python-control/python-control/pull/534/commits/078e02856d15d3518097dc31120d954f109c92a9
e0521b9 add mplcleanup to fix nichols error murrayrm Feb 11, 2021 https://github.com/python-control/python-control/pull/534/commits/e0521b987418071bf760b5731a5c2a24faadca92
Clear filters https://github.com/python-control/python-control/pull/534/files
Please reload this pagehttps://github.com/python-control/python-control/pull/534/changes
Please reload this pagehttps://github.com/python-control/python-control/pull/534/changes
config.py https://github.com/python-control/python-control/pull/534/changes#diff-d1ad1d32d49067e21beadf8da713ffdea3d1673aedb13dbbf54028cb7e8e4cb5
descfcn.py https://github.com/python-control/python-control/pull/534/changes#diff-f0f5ffb2c67d9936a4896284a27a0b10ccc28b354bfbc7cc187460f1254a073d
freqplot.py https://github.com/python-control/python-control/pull/534/changes#diff-a751fe1009e7b656d19357a39abb58dd88b89052c9d9259c3393a4648b697a16
__init__.py https://github.com/python-control/python-control/pull/534/changes#diff-e74cb308e7817d51b682e1549f5b876ec2b488ed1704c23d7b5204845553bd35
wrappers.py https://github.com/python-control/python-control/pull/534/changes#diff-a78036738b627bfb9a8806e6e9ca28ed3874ad6e69cb9ebdaa2b51207a18c583
freqresp_test.py https://github.com/python-control/python-control/pull/534/changes#diff-2683aff019235f249bce1f807365cf2682e0917893484b2c4109bf580f157c77
matlab_test.py https://github.com/python-control/python-control/pull/534/changes#diff-79c20f0d3385778d9d3499c17ebf67060db66785a0eae139486d3e7a468ceb32
nyquist_test.py https://github.com/python-control/python-control/pull/534/changes#diff-5c8939e95d9dd8eda721007fc3a743101f019766069da57d01bdee22cdca0b1a
bode-and-nyquist-plots.ipynb https://github.com/python-control/python-control/pull/534/changes#diff-31cbda98ebac94ab47f88251f8dc1c78bcc108b3dcc81a6b548d741199f842a9
describing_functions.ipynb https://github.com/python-control/python-control/pull/534/changes#diff-3e8f04b0f4cb459e4aa21ad8e6e45b2e9f4a03f2ac1c5aff9548e17aa3f2385a
pvtol-lqr-nested.ipynb https://github.com/python-control/python-control/pull/534/changes#diff-93f7e6bf896b53bdd87fdda5cb2e154884af3feb21df55861c69977982753f42
pvtol-nested.py https://github.com/python-control/python-control/pull/534/changes#diff-55bfc27c487190ed179e75f929514449bdd575d21e264a77be5c618104539d8c
secord-matlab.py https://github.com/python-control/python-control/pull/534/changes#diff-da68222d62800ca64acc4b59378e87583758cd9fe236274438f4f4dae344c9ff
tfvis.py https://github.com/python-control/python-control/pull/534/changes#diff-f096dfe25bc46bc7a9874ef4f7006aebf6370dca87b56996acb6188b5469d41d
control/config.pyhttps://github.com/python-control/python-control/pull/534/changes#diff-d1ad1d32d49067e21beadf8da713ffdea3d1673aedb13dbbf54028cb7e8e4cb5
View file https://github.com/murrayrm/python-control/blob/e0521b987418071bf760b5731a5c2a24faadca92/control/config.py
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/python-control/python-control/pull/534/{{ revealButtonHref }}
https://github.com/python-control/python-control/pull/534/changes#diff-d1ad1d32d49067e21beadf8da713ffdea3d1673aedb13dbbf54028cb7e8e4cb5
https://github.com/python-control/python-control/pull/534/changes#diff-d1ad1d32d49067e21beadf8da713ffdea3d1673aedb13dbbf54028cb7e8e4cb5
https://github.com/python-control/python-control/pull/534/changes#diff-d1ad1d32d49067e21beadf8da713ffdea3d1673aedb13dbbf54028cb7e8e4cb5
https://github.com/python-control/python-control/pull/534/changes#diff-d1ad1d32d49067e21beadf8da713ffdea3d1673aedb13dbbf54028cb7e8e4cb5
https://github.com/python-control/python-control/pull/534/changes#diff-d1ad1d32d49067e21beadf8da713ffdea3d1673aedb13dbbf54028cb7e8e4cb5
control/descfcn.pyhttps://github.com/python-control/python-control/pull/534/changes#diff-f0f5ffb2c67d9936a4896284a27a0b10ccc28b354bfbc7cc187460f1254a073d
View file https://github.com/murrayrm/python-control/blob/e0521b987418071bf760b5731a5c2a24faadca92/control/descfcn.py
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/python-control/python-control/pull/534/{{ revealButtonHref }}
https://github.com/python-control/python-control/pull/534/changes#diff-f0f5ffb2c67d9936a4896284a27a0b10ccc28b354bfbc7cc187460f1254a073d
https://github.com/python-control/python-control/pull/534/changes#diff-f0f5ffb2c67d9936a4896284a27a0b10ccc28b354bfbc7cc187460f1254a073d
Please reload this pagehttps://github.com/python-control/python-control/pull/534/changes
https://github.com
Termshttps://docs.github.com/site-policy/github-terms/github-terms-of-service
Privacyhttps://docs.github.com/site-policy/privacy-policies/github-privacy-statement
Securityhttps://github.com/security
Statushttps://www.githubstatus.com/
Communityhttps://github.community/
Docshttps://docs.github.com/
Contacthttps://support.github.com?tags=dotcom-footer

Viewport: width=device-width


URLs of crawlers that visited me.