Skip to content

Releases: pablomarcel/control-systems

Control Systems v0.1.0-alpha — CLI-First Control Systems Study & Design Suite

25 Apr 05:53
a963799

Choose a tag to compare

Control Systems v0.1.0-alpha — CLI-First Control Systems Study & Design Suite

This release marks the first project-wide documentation-ready milestone for Control Systems, a Python-first toolkit for reproducible control systems analysis and design workflows.

The project now includes a large GitHub Pages documentation site and a broad collection of focused CLI tools organized around classical and modern control systems topics, including modeling, transient analysis, root-locus analysis, frequency-response analysis, PID workflows, and state-space analysis/design.


Release status

Release type: Alpha / documentation milestone
Recommended audience: developers, control systems learners, engineering students, and users comfortable with command-line workflows
Primary goal: make the project easier to discover, run, document, and extend

This is not a polished commercial application. It is a working, expanding engineering toolkit with many package-level tools, reproducible command examples, and documentation hooks.


Highlights

  • Added project-wide GitHub Pages documentation.
  • Updated repository branding after the rename to control-systems.
  • Organized documentation links across all major tool families.
  • Standardized the README around the current repository structure.
  • Reinforced the CLI-first workflow used across the project.
  • Documented the package families by control systems topic.
  • Preserved the practical in/, out/, and RUNS.md workflow used throughout the repository.

Documentation

The live documentation is available here:

https://pablomarcel.github.io/control-systems/

The documentation currently covers a large set of package-level tools, including:

  • control_systems/canonicalTool
  • control_systems/converterTool
  • control_systems/mimoTool
  • control_systems/systemTool
  • frequency_response/bodeTool
  • frequency_response/compensatorTool
  • frequency_response/experimentTool
  • frequency_response/plotTool
  • pid_controllers/pidTool
  • pid_controllers/rootLocusTool
  • pid_controllers/tuningTool
  • pid_controllers/zeroPoleTool
  • root_locus_analysis/compensatorTool
  • root_locus_analysis/rootLocusTool
  • root_locus_analysis/systemResponseTool
  • state_space_analysis/canonicalTool
  • state_space_analysis/converterTool
  • state_space_analysis/mimoTool
  • state_space_analysis/stateRepTool
  • state_space_analysis/stateSolnTool
  • state_space_analysis/stateTool
  • state_space_analysis/stateTransTool
  • state_space_design/controllerTool
  • state_space_design/gainMatrixTool
  • state_space_design/lqrTool
  • state_space_design/minOrdTfTool
  • state_space_design/minOrdTool
  • state_space_design/observerGainMatrixTool
  • state_space_design/observerStatePlotTool
  • state_space_design/regulatorTool
  • state_space_design/robustTool
  • state_space_design/servoTool
  • state_space_design/statePlotsTool
  • transient_analysis/hurwitzTool
  • transient_analysis/icTool
  • transient_analysis/responseTool
  • transient_analysis/routhTool

Major tool areas

Control systems modeling

The modeling tools support construction and conversion of control system representations, including transfer functions, state-space forms, canonical forms, and MIMO-oriented utilities.

Transient analysis

The transient-analysis tools cover response workflows and stability checks, including Routh-Hurwitz tables, Hurwitz-style checks, initial-condition handling, and time-response utilities.

Root-locus analysis and design

The root-locus tools support gain studies, pole migration, compensator workflows, and closed-loop response comparison.

Frequency-response analysis and design

The frequency-response tools support Bode, margin, bandwidth, compensator, Nichols, polar, and experimental frequency-response workflows where implemented.

PID controllers

The PID package family supports PID workflows, tuning utilities, root-locus interpretation, and pole-zero visualization helpers.

State-space analysis

The state-space analysis tools support state matrices, canonical transformations, transfer-function conversion, MIMO helpers, state transition workflows, and solution utilities.

State-space design

The state-space design package family includes full-state feedback, pole placement, observer gain design, observer-state plotting, regulator workflows, servo design, LQR, minimal-order tools, robustness templates, and state plotting utilities.


Repository updates

  • Updated links from the previous control-modernControl repository name to the current control-systems repository name.

  • Updated GitHub Pages references to:

    https://pablomarcel.github.io/control-systems/
    
  • Expanded the README documentation section to include the published package documentation index.

  • Clarified the project structure around package families and control systems topics.

  • Added a more practical GitHub-facing project description.


Workflow conventions

This release continues the repository-wide convention of using focused package folders with repeatable command-line workflows:

someTool/
  cli.py
  apis.py
  core.py
  in/
  out/
  tests/
  RUNS.md

Typical usage pattern:

python cli.py --help
python cli.py run --infile in/example.json --outfile out/example_out.json --pretty

Where supported, tools may generate:

  • JSON output manifests
  • CSV tables
  • PNG plots
  • HTML plots
  • Console summaries
  • Reproducible analysis artifacts

Installation reminder

git clone https://github.com/pablomarcel/control-systems.git
cd control-systems
python -m venv .venv
source .venv/bin/activate
pip install -U pip
pip install -r requirements.txt

On Windows, activate the environment with:

.venv\Scripts\activate

Known limitations

  • This is an alpha-stage engineering toolkit, not a polished end-user desktop application.
  • Package maturity varies across the repository.
  • Some tools are more complete than others.
  • Some package folders are scaffolds or work-in-progress templates.
  • CLI behavior, output schemas, and plotting formats may continue to evolve.
  • Users should inspect each package’s local RUNS.md file for the most reliable examples.

Recommended validation before use

Before relying on a package for engineering calculations:

  • Review the relevant input JSON or CLI flags.
  • Run the local examples from RUNS.md.
  • Inspect generated JSON/CSV outputs.
  • Compare results against known textbook examples where available.
  • Run the package-level tests if present.

What comes next

Planned and ongoing improvements include:

  • Expanded textbook example coverage.
  • More validation tests against known reference problems.
  • More consistent package-level README files.
  • More robust plotting exports.
  • Cleaner package-level documentation.
  • Additional MIMO workflows.
  • Expanded state-space design examples.
  • More complete compensator and PID design helpers.

Suggested GitHub release title

Control Systems v0.1.0-alpha — Documentation Milestone

Summary

This release establishes Control Systems as a documented, CLI-first, Python-based control systems study and design suite. The repository now has a public documentation site, updated project branding, a stronger README, and a clearer structure for continuing development across classical and modern control workflows.