René's URL Explorer Experiment


Title: Frequency plot improvements by murrayrm · Pull Request #1011 · python-control/python-control · GitHub

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

X Title: Frequency plot improvements by murrayrm · Pull Request #1011 · python-control/python-control

Description: This PR adds a number of improvements for frequency plots (Bode, Nyquist, etc). The changes are motivated by my experience in using python-control for a course, where I found a few things that were harder to do than they should have been. Changes in this PR: Allow label keyword in frequency response commands to override default label generation. Fix bug in processing indent_radius keyword when nyquist_plot is passed a system (keyword was not getting sent through to nyquist_response). Restore functionality that allows omega to be specified as a list of 2 elements (indicating a range) in all frequency response/plotting routines. This used to work for nyquist but got removed at some point. It now works for all frequency response commands. Note: this could break some code if someone meant to evaluate the frequency response at exactly two frequencies. This case seems rare, but it can be fixed by passing the two elements as an array. Fix up the ax keyword processing to allow arrays or lists + uniform processing in all freqplot routines. Fix up rcParams processing (uniformity + remove unnecessary code). (This needs more work in a future pass to eliminate the rcParams keywords that are part of frequency plotting functions and to pull separate time and frequency plot parameters into a single place. There are some TODOs in the code marking what needs to be done.) Added new suptitle() function to add titles that are better centered (on axes instead of figure). Using this for frequency domain plots for now; will update for time domain plots as well. Set up frd as factory function with keywords, including setting the signal/system names. Calls to ct.FRD should how be replaces with ct.frd, though the former will still work. Allow Bode and Nyquist plots for FRD systems with different omega vectors (#996) as well as mixtures of FRD and other LTI systems. Added a notebook examples/cds110-bode_nyquist.ipynb that shows a lot of the new functionality in the context of frequency domain analysis. Minor: changed the way that freq_label (frequency axis label) is implemented so that it can be more easily overriden (use fstring with '{units}' instead of '%' => can put in custom units). For the most part these changes just make it easier to do things that were already possible. Example of some new code that makes use of these features (from examples/cds110-bode_nyquist.ipynb): import control as ct P = ct.tf([1], [1, 0.1, -1]) # normalized inverted pendulum C = ct.tf([2, 10], [1]) # PD controller L = P * C # Loop transfer function # Bode and Nyquist plots plt.figure(figsize=[7, 4]) ax1 = plt.subplot(2, 2, 1) plt.title("Bode plot for L", size='medium') ax2 = plt.subplot(2, 2, 3) ct.bode_plot( [P, C, L], label=['P', 'C', 'L'], ax=[ax1, ax2], initial_phase=0) ax3 = plt.subplot(1, 2, 2) ct.nyquist_plot(L, ax=ax3) plt.title("Nyquist plot for L", size='medium') ct.suptitle("Loop analysis for inverted pendulum") plt.tight_layout() For the mixed FRD functionality (motivated by comments I made in #996), here's an example showing how Nyquist plots can be combined in ways that weren't possible before: s = ct.tf('s') sys = ct.tf( (0.02 * s**3 - 0.1 * s) / (s**4 + s**3 + s**2 + 0.25 * s + 0.04), name='tf') sys1 = ct.frd(sys, np.logspace(-1, 1, 15), name='frd1') sys2 = ct.frd(sys, np.logspace(-2, 2, 20), name='frd2') ct.nyquist_plot([sys, sys1, sys2]) ct.suptitle("Mixed FRD, tf data")

Open Graph Description: This PR adds a number of improvements for frequency plots (Bode, Nyquist, etc). The changes are motivated by my experience in using python-control for a course, where I found a few things that we...

X Description: This PR adds a number of improvements for frequency plots (Bode, Nyquist, etc). The changes are motivated by my experience in using python-control for a course, where I found a few things that we...

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

X: @github

direct link

Domain: github.com

route-pattern/:user_id/:repository/pull/:id/files(.:format)
route-controllerpull_requests
route-actionfiles
fetch-noncev2:a0d48940-d481-bf79-150c-c177721d2b6a
current-catalog-service-hashae870bc5e265a340912cde392f23dad3671a0a881730ffdadd82f2f57d81641b
request-id9E8E:35326F:19C681B:2493F1D:697A489F
html-safe-nonce05263b12d02c36e63fd066707f272926775cad7a768de0b0aae07e56d192274e
visitor-payloadeyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiI5RThFOjM1MzI2RjoxOUM2ODFCOjI0OTNGMUQ6Njk3QTQ4OUYiLCJ2aXNpdG9yX2lkIjoiMzg0NjAxOTg0NjY5NzAxMTM1OSIsInJlZ2lvbl9lZGdlIjoiaWFkIiwicmVnaW9uX3JlbmRlciI6ImlhZCJ9
visitor-hmac7d82c6d3fd91238656e9ad4748b44b6ed694489e676bf7775b4286d3a5abe072
hovercard-subject-tagpull_request:1922879678
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/1011/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 adds a number of improvements for frequency plots (Bode, Nyquist, etc). The changes are motivated by my experience in using python-control for a course, where I found a few things that we...
og:site_nameGitHub
og:typeobject
hostnamegithub.com
expected-hostnamegithub.com
None553d32486a978372da5772d723ffbf66cac04403ab1794b7225c035f1d23252c
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
release8d7fdc30d680a0be278b8d9916215e64c987f09a
ui-targetfull
theme-color#1e2327
color-schemelight dark

Links:

Skip to contenthttps://github.com/python-control/python-control/pull/1011/files#start-of-content
https://github.com/
Sign in https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fpython-control%2Fpython-control%2Fpull%2F1011%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%2F1011%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/1011/files
Reloadhttps://github.com/python-control/python-control/pull/1011/files
Reloadhttps://github.com/python-control/python-control/pull/1011/files
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:mainhttps://github.com/python-control/python-control/tree/main
murrayrm:freqresp_improvements-16Apr2024https://github.com/murrayrm/python-control/tree/freqresp_improvements-16Apr2024
Conversation 18 https://github.com/python-control/python-control/pull/1011
Commits 18 https://github.com/python-control/python-control/pull/1011/commits
Checks 0 https://github.com/python-control/python-control/pull/1011/checks
Files changed https://github.com/python-control/python-control/pull/1011/files
Please reload this pagehttps://github.com/python-control/python-control/pull/1011/files
Frequency plot improvements https://github.com/python-control/python-control/pull/1011/files#top
Show all changes 18 commits https://github.com/python-control/python-control/pull/1011/files
b9acc99 allow label keyword in bode_plot() to override default labels murrayrm Jun 1, 2024 https://github.com/python-control/python-control/pull/1011/commits/b9acc9951f43986657c1c7d91bbc9b6b8b3edff9
0b6348f add label keyword to singular_value_plot and nyquist_plot murrayrm Jun 1, 2024 https://github.com/python-control/python-control/pull/1011/commits/0b6348f4481994d2c41f0e14b08682bdbfec8989
606cf48 add additional tests for freqplot label override + small fixes murrayrm Jun 2, 2024 https://github.com/python-control/python-control/pull/1011/commits/606cf482e43dd4347853a355743f33daf03decaf
5e405cc don't strip common parts of labels if given explicitly murrayrm Jun 4, 2024 https://github.com/python-control/python-control/pull/1011/commits/5e405cc47745889eb491aa04fa8811e556d7c48d
eeebec3 BUG: indent_radius not handled properly when passed to nyquist_plot murrayrm Jun 6, 2024 https://github.com/python-control/python-control/pull/1011/commits/eeebec32603586cbf4c7d682471b3181d6578784
402b45f restore [wmin, wmax] functionality + documentation updates murrayrm Jun 9, 2024 https://github.com/python-control/python-control/pull/1011/commits/402b45f90ee1d11f8386efc8b50c740dd6892ee4
6f6c70d refactoring/regularization of ax keyword processing murrayrm Jun 14, 2024 https://github.com/python-control/python-control/pull/1011/commits/6f6c70d58f1b23ec8d59c3af992deb8df3a51947
404fbdf regularize processing of rcParams murrayrm Jun 14, 2024 https://github.com/python-control/python-control/pull/1011/commits/404fbdff02cfbc1bd30dee26166dd1ef145d5bdf
1a94f4e add suptitle() function for better centered titles murrayrm Jun 15, 2024 https://github.com/python-control/python-control/pull/1011/commits/1a94f4e50c3d2021cc56c3f24632da2e91e6d63f
28995f1 updated freqplot documentation + figures murrayrm Jun 15, 2024 https://github.com/python-control/python-control/pull/1011/commits/28995f143be05c2316668ec76b9c3bd367559f53
ffb0a0f move plotutil to ctrlplot murrayrm Jun 15, 2024 https://github.com/python-control/python-control/pull/1011/commits/ffb0a0f22afcaf53e92238317220f354563b4fc9
4734912 update freq_label handling + add Bode/Nyquist notebook murrayrm Jun 15, 2024 https://github.com/python-control/python-control/pull/1011/commits/47349122a630e32061223c46fd95259539becc7f
aeb187f set up frd() as full factory function for FRD I/Osystems murrayrm Jun 16, 2024 https://github.com/python-control/python-control/pull/1011/commits/aeb187f622972768a997c75808f712c928bd66aa
ddb5b7c update unexpected keyword check for GitHub action variation murrayrm Jun 16, 2024 https://github.com/python-control/python-control/pull/1011/commits/ddb5b7c96357e0e4fd5b62aadca58362032d10b2
2fde963 allowed Bode/Nyquist for mixed FRD systems murrayrm Jun 16, 2024 https://github.com/python-control/python-control/pull/1011/commits/2fde96333f86c242f5c9faa24c4488407bdea5f7
b7c158b update CDS 110 example murrayrm Jun 26, 2024 https://github.com/python-control/python-control/pull/1011/commits/b7c158b1f6d16d77a8e470692a9a242c6f2963e4
59a676e fix typos in doc, docstrings pointed out by @slivingston review murrayrm Jun 29, 2024 https://github.com/python-control/python-control/pull/1011/commits/59a676ecafe35acee49ec32daa00a150ac9e0655
343df2c fix issues in examples/cds110_bode-nyquist.ipynb per @slivingston review murrayrm Jun 29, 2024 https://github.com/python-control/python-control/pull/1011/commits/343df2c6b1d5d9123e1d76ebdfdcc2c2ef34db83
Clear filters https://github.com/python-control/python-control/pull/1011/files
Please reload this pagehttps://github.com/python-control/python-control/pull/1011/files
Please reload this pagehttps://github.com/python-control/python-control/pull/1011/files
LICENSE https://github.com/python-control/python-control/pull/1011/files#diff-c693279643b8cd5d248172d9c22cb7cf4ed163a3c98c8a3f69c2717edd3eacb7
__init__.py https://github.com/python-control/python-control/pull/1011/files#diff-a082bea4cb97f2978eb7abd1de48ecde6447923e60eb55409a243b98e1072fa3
bdalg.py https://github.com/python-control/python-control/pull/1011/files#diff-bfd06fb2f8c259261d6ca31b01ff2f68525fd4936b7ff911434f757a8e9201c6
ctrlplot.py https://github.com/python-control/python-control/pull/1011/files#diff-634119b78de5d79475df039710a7b5e4a011957bc2b311821a51479b1d9bcb64
frdata.py https://github.com/python-control/python-control/pull/1011/files#diff-cacf59417131c19becd6fba4dde9e979bed49ce572eb24f0f62bd2af460d83d1
freqplot.py https://github.com/python-control/python-control/pull/1011/files#diff-a751fe1009e7b656d19357a39abb58dd88b89052c9d9259c3393a4648b697a16
lti.py https://github.com/python-control/python-control/pull/1011/files#diff-9eb79d97f0ecfaf506be3bac9ab8573caf6301e9685c8bfa3e91632402fa4e5a
nichols.py https://github.com/python-control/python-control/pull/1011/files#diff-b581de8c6f5f8f72c517e49ebb7ec697d93fc31e16b6e9f9d36a10ec2aecd510
frd_test.py https://github.com/python-control/python-control/pull/1011/files#diff-b101ace1745361794d1166464ae9f94082e839fca269eb4f15e1d6150067955c
freqplot_test.py https://github.com/python-control/python-control/pull/1011/files#diff-f434ce7b7e83c83019db6eb49a64aade84dd31a97e47392985e3d110fa6ca7dd
freqresp_test.py https://github.com/python-control/python-control/pull/1011/files#diff-2683aff019235f249bce1f807365cf2682e0917893484b2c4109bf580f157c77
kwargs_test.py https://github.com/python-control/python-control/pull/1011/files#diff-3144c3ea9a838756fe63a094bb84c293d32c5190d9b081cbb2f10926fda2e19e
nyquist_test.py https://github.com/python-control/python-control/pull/1011/files#diff-5c8939e95d9dd8eda721007fc3a743101f019766069da57d01bdee22cdca0b1a
timeplot.py https://github.com/python-control/python-control/pull/1011/files#diff-6208d7a27459381a4957ba5445cd6e98154209ecde7cb2271bc40f7b7b99b931
control.rst https://github.com/python-control/python-control/pull/1011/files#diff-5a8429a2bfd64a7041b2ba651f0f4a0318299c85c8dd095c1150fe7c788ddcb4
conventions.rst https://github.com/python-control/python-control/pull/1011/files#diff-04f5af9adedfe548dc7beedc5952a1aff00fb279a868e337028b2487e655e2f4
freqplot-gangof4.png https://github.com/python-control/python-control/pull/1011/files#diff-ed90616b6042c155c966ea35cf4740fd53556eec4c9c013514dd6aa26b921d80
freqplot-mimo_bode-default.png https://github.com/python-control/python-control/pull/1011/files#diff-45ba3934e1cc904d9f6c170ddd420920dd27ea91e488651f7d352ecf248750b4
freqplot-mimo_bode-magonly.png https://github.com/python-control/python-control/pull/1011/files#diff-5d02482a66f970639ce62bb110ba5b95bb13ba63bfe89fa79f950bc0c4d16068
freqplot-mimo_svplot-default.png https://github.com/python-control/python-control/pull/1011/files#diff-3d29d5413f0f898ebe252aeba391cffe4f9a5fe7e245224ce8b9e1fd49ab0330
freqplot-nyquist-custom.png https://github.com/python-control/python-control/pull/1011/files#diff-bf028b63e7e9f57591b678052a214afaddd62ceffc84491e239c59631cc19225
freqplot-nyquist-default.png https://github.com/python-control/python-control/pull/1011/files#diff-aacf90912b659bb28f91aa4c4ee6b42e479860646c2e4f5c0c6392f5376a6155
freqplot-siso_bode-default.png https://github.com/python-control/python-control/pull/1011/files#diff-c0e1d07469df7aaa6409fcd715b1ef0c7c7b78b9a0f1ae8ac1ee25382e2cbf76
freqplot-siso_bode-omega.png https://github.com/python-control/python-control/pull/1011/files#diff-eac575cb544078d194ba2b1fed6239f86a700cb3d8d8055a47ed75254fdf8e6d
freqplot-siso_nichols-default.png https://github.com/python-control/python-control/pull/1011/files#diff-927bf6eb0102ef59d58f1264c1923960dc727121b885a14beb9dd0b7d8558e6b
plotting.rst https://github.com/python-control/python-control/pull/1011/files#diff-7d87c42933f69063b454fa6021951255b0061c5f7c39c347e2d0887078dc9c2a
cds110_bode-nyquist.ipynb https://github.com/python-control/python-control/pull/1011/files#diff-6a045ae59f1b15e8884268755bb0a5ad3c3decfb1a7a2b6481f385332a522353
steering.ipynb https://github.com/python-control/python-control/pull/1011/files#diff-7d5b3f931d3c9959d8c45163e67d70e7f131922e48e2e2accc07b5971a6908ef
LICENSEhttps://github.com/python-control/python-control/pull/1011/files#diff-c693279643b8cd5d248172d9c22cb7cf4ed163a3c98c8a3f69c2717edd3eacb7
View file https://github.com/murrayrm/python-control/blob/343df2c6b1d5d9123e1d76ebdfdcc2c2ef34db83/LICENSE
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/python-control/python-control/pull/1011/{{ revealButtonHref }}
https://github.com/python-control/python-control/pull/1011/files#diff-c693279643b8cd5d248172d9c22cb7cf4ed163a3c98c8a3f69c2717edd3eacb7
control/__init__.pyhttps://github.com/python-control/python-control/pull/1011/files#diff-a082bea4cb97f2978eb7abd1de48ecde6447923e60eb55409a243b98e1072fa3
View file https://github.com/murrayrm/python-control/blob/343df2c6b1d5d9123e1d76ebdfdcc2c2ef34db83/control/__init__.py
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/python-control/python-control/pull/1011/{{ revealButtonHref }}
https://github.com/python-control/python-control/pull/1011/files#diff-a082bea4cb97f2978eb7abd1de48ecde6447923e60eb55409a243b98e1072fa3
https://github.com/python-control/python-control/pull/1011/files#diff-a082bea4cb97f2978eb7abd1de48ecde6447923e60eb55409a243b98e1072fa3
control/bdalg.pyhttps://github.com/python-control/python-control/pull/1011/files#diff-bfd06fb2f8c259261d6ca31b01ff2f68525fd4936b7ff911434f757a8e9201c6
View file https://github.com/murrayrm/python-control/blob/343df2c6b1d5d9123e1d76ebdfdcc2c2ef34db83/control/bdalg.py
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/python-control/python-control/pull/1011/{{ revealButtonHref }}
https://github.com/python-control/python-control/pull/1011/files#diff-bfd06fb2f8c259261d6ca31b01ff2f68525fd4936b7ff911434f757a8e9201c6
https://github.com/python-control/python-control/pull/1011/files#diff-bfd06fb2f8c259261d6ca31b01ff2f68525fd4936b7ff911434f757a8e9201c6
control/ctrlplot.pyhttps://github.com/python-control/python-control/pull/1011/files#diff-634119b78de5d79475df039710a7b5e4a011957bc2b311821a51479b1d9bcb64
View file https://github.com/murrayrm/python-control/blob/343df2c6b1d5d9123e1d76ebdfdcc2c2ef34db83/control/ctrlplot.py
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/python-control/python-control/pull/1011/{{ revealButtonHref }}
slivingstonhttps://github.com/slivingston
Jun 28, 2024https://github.com/python-control/python-control/pull/1011/files#r1659408915
Learn morehttps://docs.github.com/articles/managing-disruptive-comments/#hiding-a-comment
Please reload this pagehttps://github.com/python-control/python-control/pull/1011/files
slivingstonhttps://github.com/slivingston
Jun 28, 2024https://github.com/python-control/python-control/pull/1011/files#r1659411886
Learn morehttps://docs.github.com/articles/managing-disruptive-comments/#hiding-a-comment
Please reload this pagehttps://github.com/python-control/python-control/pull/1011/files
murrayrmhttps://github.com/murrayrm
Jun 29, 2024https://github.com/python-control/python-control/pull/1011/files#r1659424127
Learn morehttps://docs.github.com/articles/managing-disruptive-comments/#hiding-a-comment
Please reload this pagehttps://github.com/python-control/python-control/pull/1011/files
slivingstonhttps://github.com/slivingston
Jun 29, 2024https://github.com/python-control/python-control/pull/1011/files#r1659424335
Learn morehttps://docs.github.com/articles/managing-disruptive-comments/#hiding-a-comment
Please reload this pagehttps://github.com/python-control/python-control/pull/1011/files
control/frdata.pyhttps://github.com/python-control/python-control/pull/1011/files#diff-cacf59417131c19becd6fba4dde9e979bed49ce572eb24f0f62bd2af460d83d1
View file https://github.com/murrayrm/python-control/blob/343df2c6b1d5d9123e1d76ebdfdcc2c2ef34db83/control/frdata.py
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/python-control/python-control/pull/1011/{{ revealButtonHref }}
https://github.com/python-control/python-control/pull/1011/files#diff-cacf59417131c19becd6fba4dde9e979bed49ce572eb24f0f62bd2af460d83d1
https://github.com/python-control/python-control/pull/1011/files#diff-cacf59417131c19becd6fba4dde9e979bed49ce572eb24f0f62bd2af460d83d1
https://github.com/python-control/python-control/pull/1011/files#diff-cacf59417131c19becd6fba4dde9e979bed49ce572eb24f0f62bd2af460d83d1
https://github.com/python-control/python-control/pull/1011/files#diff-cacf59417131c19becd6fba4dde9e979bed49ce572eb24f0f62bd2af460d83d1
https://github.com/python-control/python-control/pull/1011/files#diff-cacf59417131c19becd6fba4dde9e979bed49ce572eb24f0f62bd2af460d83d1
https://github.com/python-control/python-control/pull/1011/files#diff-cacf59417131c19becd6fba4dde9e979bed49ce572eb24f0f62bd2af460d83d1
https://github.com/python-control/python-control/pull/1011/files#diff-cacf59417131c19becd6fba4dde9e979bed49ce572eb24f0f62bd2af460d83d1
https://github.com/python-control/python-control/pull/1011/files#diff-cacf59417131c19becd6fba4dde9e979bed49ce572eb24f0f62bd2af460d83d1
https://github.com/python-control/python-control/pull/1011/files#diff-cacf59417131c19becd6fba4dde9e979bed49ce572eb24f0f62bd2af460d83d1
https://github.com/python-control/python-control/pull/1011/files#diff-cacf59417131c19becd6fba4dde9e979bed49ce572eb24f0f62bd2af460d83d1
https://github.com/python-control/python-control/pull/1011/files#diff-cacf59417131c19becd6fba4dde9e979bed49ce572eb24f0f62bd2af460d83d1
https://github.com/python-control/python-control/pull/1011/files#diff-cacf59417131c19becd6fba4dde9e979bed49ce572eb24f0f62bd2af460d83d1
https://github.com/python-control/python-control/pull/1011/files#diff-cacf59417131c19becd6fba4dde9e979bed49ce572eb24f0f62bd2af460d83d1
https://github.com/python-control/python-control/pull/1011/files#diff-cacf59417131c19becd6fba4dde9e979bed49ce572eb24f0f62bd2af460d83d1
https://github.com/python-control/python-control/pull/1011/files#diff-cacf59417131c19becd6fba4dde9e979bed49ce572eb24f0f62bd2af460d83d1
https://github.com/python-control/python-control/pull/1011/files#diff-cacf59417131c19becd6fba4dde9e979bed49ce572eb24f0f62bd2af460d83d1
https://github.com/python-control/python-control/pull/1011/files#diff-cacf59417131c19becd6fba4dde9e979bed49ce572eb24f0f62bd2af460d83d1
https://github.com/python-control/python-control/pull/1011/files#diff-cacf59417131c19becd6fba4dde9e979bed49ce572eb24f0f62bd2af460d83d1
https://github.com/python-control/python-control/pull/1011/files#diff-cacf59417131c19becd6fba4dde9e979bed49ce572eb24f0f62bd2af460d83d1
https://github.com/python-control/python-control/pull/1011/files#diff-cacf59417131c19becd6fba4dde9e979bed49ce572eb24f0f62bd2af460d83d1
https://github.com/python-control/python-control/pull/1011/files#diff-cacf59417131c19becd6fba4dde9e979bed49ce572eb24f0f62bd2af460d83d1
https://github.com/python-control/python-control/pull/1011/files#diff-cacf59417131c19becd6fba4dde9e979bed49ce572eb24f0f62bd2af460d83d1
https://github.com/python-control/python-control/pull/1011/files#diff-cacf59417131c19becd6fba4dde9e979bed49ce572eb24f0f62bd2af460d83d1
https://github.com/python-control/python-control/pull/1011/files#diff-cacf59417131c19becd6fba4dde9e979bed49ce572eb24f0f62bd2af460d83d1
Please reload this pagehttps://github.com/python-control/python-control/pull/1011/files
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.