LICENSE=BSD-3-ClauseCGO_ENABLED=0go-control is the organisation the go-scikit plan names for what MATLAB's Control System Toolbox, Simulink's solvers, Mathematica's control systems and Maple's MapleSim offer: LTI models and their responses, Riccati and LQR design, a DAE solver, and later symbolic acausal modelling. It is wave 3 of the plan; no library and no code exist yet.
state planned (wave 3)
library none yet
plan github.com/go-scikit/roadmap
PLAN.md, STATUS.mdEvery item starts from the roadmap's bibliography, is validated against the tool that is the reference in its domain, and lands with tests at 100% coverage and a performance table: no slower than the reference on one core.
Transfer-function, zero-pole-gain, state-space and frequency-response models, with series, parallel and feedback, poles and zeros.
Time and frequency responses, and stability margins.
Riccati and Lyapunov equations, LQR and LQG, Kalman gain, pole placement and discretisation.
An IDA-type variable-order BDF solver with consistent initial conditions and events.
MapleSim-style equation assembly with Pantelides index reduction, after the DAE solver and go-symbolic (wave 4).
Real Schur form with reordering, QZ and expm, which go-ndarray's linalg does not have yet.
On every architecture the fleet's CI tests. GPL oracles such as Octave's control package are compared against, never ported.
Every repository of the organization.
These are the measures the plan holds the work to. None has been run: there is no code yet.
Relative residual below 1e3ยทnยทeps, a symmetric solution to one ulp and closed-loop poles in the left half-plane, over the SLICOT benchmark collections.
Complex relative error per point against python-control, and norm-wise error of expm and c2d against a high-precision reference.
Final-time error against the Bari test set at a stated tolerance, constraint drift, steps, Newton iterations and event times to 1e-10.
The names are provisional. None of these repositories exists yet.
Transfer-function, zero-pole-gain, state-space and frequency-response models; series, parallel and feedback; poles, zeros, time and frequency responses and stability margins. Validated against python-control and SciPy.
Riccati and Lyapunov equations, LQR and LQG, Kalman gain, pole placement and discretisation (c2d). Validated against SLICOT's routines and benchmark collections.
An IDA-type variable-order BDF solver for differential-algebraic equations, with consistent initial conditions and events. Validated against the Bari IVP test set and SUNDIALS IDA. Its placement relative to go-numerics/integrate is still open.
MapleSim-style symbolic acausal modelling: equation assembly, Pantelides index reduction, block ordering and emission of Go through go-symbolic's codegen. Validated on Modelica Standard Library examples.
The documentation (Hugo + Hextra): the scope of the organisation, the plan and one page per planned package. Source โ
Logos and icons for the organization, in SVG / PNG / JPG / ICO / ICNS across colour, white and black variants.
go-control is planned, wave 3 of the go-scikit roadmap. The plan says what it will cover and in what order, and its status says where each item stands. The documentation repeats the scope and the references.
Read the source on GitHub โ