Contributing

July 17, 2026 · View on GitHub

Issues and PRs are welcome.

Reporting Issues

  • Use a descriptive title
  • Use the appropriate issue template (Bug Report, Feature Request, or Tutorial Request)
  • Include MATLAB version and OS
  • For bugs, include the error message and steps to reproduce

Pull Requests

  1. Open an issue first to discuss what you'd like to change
  2. Keep changes focused — one feature or fix per PR
  3. Follow the existing coding style:
    • UTF-8 encoding
    • Chinese comments in .m files
    • Clear %% section headers
    • fprintf for console output
    • close all + bdclose('all') for cleanup
  4. Test your changes: verify the script runs without error and generates correct figures

Ideas for Contribution

  • New tutorial topics: Adaptive control, LQG, nonlinear MPC, reinforcement learning control, etc.
  • Translations: Japanese, Korean, German, etc.
  • Bug fixes: Compatibility patches for older/newer MATLAB versions
  • Documentation: Improved explanations, more visual diagrams, video walkthrough links
  • Toolbox expansion: Port tutorials to use free alternatives (Octave, Python Control)

Style Guide

MATLAB scripts (.m)

  • Start with %% section header describing the step
  • Use fprintf for narrative output
  • Use meaningful variable names (m_nom, c_nom not a, b)
  • Clean up with close all; bdclose('all');
  • Auto-generated by scripts — do not commit manually modified versions
  • Use descriptive block names
  • Keep models self-contained (no external file dependencies)