-
Notifications
You must be signed in to change notification settings - Fork 442
Add Interactive Root Locus GUI with High-Resolution Catmull-Rom Interpolation #1175
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
base: main
Are you sure you want to change the base?
Conversation
- Add RootLocusGUI class for interactive matplotlib-based root locus plots - Implement hover detection to show gain, damping, and frequency information - Use original root locus plotting style with small info box overlay - Add comprehensive tests and documentation - Include simple example demonstrating usage - Integrate with main control namespace via interactive module This provides a more intuitive hover-based interaction compared to the existing click-based functionality, while maintaining the familiar matplotlib plot appearance.
- Implement RootLocusGUI class with matplotlib-based interactive plotting - Add green dot cursor marker with linear interpolation for smooth movement - Use wide default limits (-5,2)x(-3,3) and large distance threshold (10.0) - Include real-time gain, damping, and frequency display - Add comprehensive test suite (17 tests passing) - Add complex system example demonstrating multiple asymptotes
It seems like the whole thing is written with AI and it gets wackier towards the end dummy functions returning classes, 10k resolution points etc. User's profile is also not instilling trust if I have to be honest. I guess this is the new world as promised. |
Ilayn, I am sorry you feel that way about my additions, I am relatively new to GitHub and still trying to learn through open sourcing and collaborating. The 10k resolution can absolutely be changed, however I found this gave extremely smooth lookup tables for the root locus gains. What can I change to make this a better addition to the package? |
Don't mind me. I have been dealing with tons of AI submissions lately, I just don't know what to make of them yet. |
Quick comments on the failing unit tests:
|
Thank you, I will work on this! |
The python-control library currently lacks interactive plotting capabilities that are essential for modern control system analysis and education. While the library provides excellent static root locus plots, users often need to:
** The problem **
Real-time GUI's can be tricky for high-order polynomials such as a complex root locus plot. I have experience building precomputed lookup tables and implementing more advanced interpolation techniques for smoothing out resolution issues with real-time followers like the one I proposed.
What This Contribution Adds
Why it is efficient and novel?
This improvement uses:
You can test it through my fork by running:
Then run:
Now you can hover over the curve to see real-time gain changes.
I find this real-time tool very helpful, I hope this helps and is considered for the control package!
The readme is AI generated so I can delete that if needed. Thanks!