LucasPlant/controlsim
0
ControlSim

A web-based dynamic systems and control simulation platform that enables users to visualize and interact with various control systems in real-time. Built with Python using the Dash framework and Plotly for interactive visualizations. Built mainly around the Georgia Tech ECE4550 curriculum.
Features
- Interactive system simulation in your web browser
- Real-time visualization of system dynamics
- Multiple controller implementations (PID, State Feedback, etc.)
- Various dynamic system models
- Built on top of modern Python frameworks (Dash, Plotly)
Getting Started
Prerequisites
- Python 3.x
- Git
Installation
- Clone the repository:
git clone git@github.com:LucasPlant/ControlsSim.git
cd ControlsSim- Install dependencies:
# TODO: Add requirements.txt or Docker setup- Run the application:
python control_vis_app.py- Open your web browser and navigate to the localhost address shown in the terminal.
Contributing
Contributions are welcome! If you'd like to contribute please reach out to me
Roadmap
High Priority
- [ ] check boxes for integral control
- [ ] lqr for gain calculations (estimator and controller)
- [ ] More underactuated robotics plants
- [ ] Low frequency zero analysis and cancellation
Advanced Features
- [ ] Stochastic Elements *
- [ ] Sensor noise simulation
- [ ] Actuator noise
- [ ] Disturbance rejection
- [ ] Propagator improvements
- [ ] Controller update period
System Models
- [ ] Cart pole system *
- [ ] Two-mass spring system
- [ ] 2D/3D mass with force
- [ ] Orientation and attitude
- [ ] COSMOS
- [ ] Thruster allocation
- [ ] Inverted Pendulum *
- [ ] Cruise control simulation
- [ ] Multiple pendulum systems
- [ ] Orbital body simulation *
Analysis Features
- [ ] Root Locus plots
- [ ] Other classical control plots (Nyquist)
- [ ] Poles and zeros visualization for PID
- [ ] Transfer Functions and Bode Plots
- [ ] Controllable subspaces analysis
- [ ] Kalman decompositions
User Interface
- [ ] Controller state initialization *
- [ ] State persistence
- [ ] UI organization and beautification
Control Systems
- [ ] MIMO Controllers
- [ ] Mode shaping
- [ ] Optimal Controllers
- [ ] LQR (Finite/Infinite time horizon) *
- [ ] Kalman Filter
- [ ] Feed Forward / Trajectory Planning
- [ ] MIMO targets *
- [ ] Functional targets *
- [ ] Polynomial
- [ ] Sinusoidal
- [ ] Plant inversion
- [ ] Optimal trajectories
- [ ] Command shaping
Nice to have
- [ ] Unit testing
Development Guidelines
- Maintain comprehensive inline documentation
- Use type hints for better code maintainability
License
This project is licensed under the MIT License - see the LICENSE file for details.
