ControlSystems
A Control Systems Toolbox for Julia
Science Score: 54.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
○Academic publication links
-
✓Committers with academic emails
4 of 43 committers (9.3%) from academic institutions -
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (11.8%) to scientific vocabulary
Keywords
Keywords from Contributors
Repository
A Control Systems Toolbox for Julia
Basic Info
- Host: GitHub
- Owner: JuliaControl
- License: other
- Language: Julia
- Default Branch: master
- Homepage: https://juliacontrol.github.io/ControlSystems.jl/stable/
- Size: 335 MB
Statistics
- Stars: 557
- Watchers: 27
- Forks: 90
- Open Issues: 54
- Releases: 97
Topics
Metadata Files
README.md
ControlSystems.jl
A control systems design toolbox for Julia.
Installation
To install, in the Julia REPL:
julia
using Pkg; Pkg.add("ControlSystems")
Documentation
All functions have docstrings, which can be viewed from the REPL, using for example ?tf.
A documentation website is available at http://juliacontrol.github.io/ControlSystems.jl/dev/ and an introductory video series is available here.
Some of the available commands are:
Constructing systems
ss, tf, zpk, delay
Analysis
poles, tzeros, norm, hinfnorm, linfnorm, ctrb, obsv, gangoffour, margin, markovparam, damp, dampreport, zpkdata, dcgain, covar, gram, sigma, sisomargin
Synthesis
are, lyap, lqr, place, leadlink, laglink, leadlinkat, rstd, rstc, dab, balreal, baltrunc
PID design
pid, stabregionPID, loopshapingPI, pidplots, placePI
Time and Frequency response
step, impulse, lsim, freqresp, evalfr, bode, nyquist
Plotting
bodeplot, nyquistplot, sigmaplot, plot(lsim(...)), plot(step(...)), plot(impulse(...)), marginplot, gangoffourplot, pzmap, nicholsplot, pidplots, rlocus, leadlinkcurve
Other
minreal, sminreal, c2d
Usage
This toolbox works similar to that of other major computer-aided control systems design (CACSD) toolboxes. Systems can be created in either a transfer function or a state space representation. These systems can then be combined into larger architectures, simulated in both time and frequency domain, and analyzed for stability/performance properties.
Example
Here we create a simple position controller for an electric motor with an inertial load.
```julia using ControlSystems
Motor parameters
J = 2.0 b = 0.04 K = 1.0 R = 0.08 L = 1e-4
Create the model transfer function
s = tf("s") P = K/(s((Js + b)(Ls + R) + K^2))
This generates the system
TransferFunction:
1.0
---------------------------------
0.0002s^3 + 0.160004s^2 + 1.0032s
Continuous-time transfer function model
Create an array of closed loop systems for different values of Kp
CLs = [kpP/(1 + kpP) for kp ∈ [1, 5, 15]];
Plot the step response of the controllers
Any keyword arguments supported in Plots.jl can be supplied
using Plots plot(step.(CLs, 5), label=["Kp = 1" "Kp = 5" "Kp = 15"]) ```

Additional examples
See the examples folder and ControlExamples.jl and several examples in the documentation.
Owner
- Name: JuliaControl
- Login: JuliaControl
- Kind: organization
- Repositories: 11
- Profile: https://github.com/JuliaControl
Control Systems Design in Julia
Citation (CITATION.bib)
@inproceedings{controlsystems_jl,
abstract = {ControlSystems.jl enables the powerful features of the Julia language to be leveraged for control design and analysis.<br/>The toolbox provides types for state-space, transfer-function, and time-delay models, together with algorithms for design and analysis.<br/>Julia's mathematically-oriented syntax is convenient for implementing control algorithms, and its just-in-time compilation gives performance on par with C.<br/>The multiple-dispatch paradigm makes it easy to combine the algorithms with powerful tools from Julia's ecosystem, such as automatic differentiation, arbitrary-precision arithmetic, GPU arrays, and probability distributions.<br/>We demonstrate how these features allow complex problems to be solved with little effort.},
author = {Bagge Carlson, Fredrik and Fält, Mattias and Heimerson, Albin and Troeng, Olof},
booktitle = {Proceedings of CDC 2021},
language = {eng},
month = {12},
title = {ControlSystems.jl: A Control Toolbox in Julia},
url = {https://github.com/JuliaControl/ControlSystems.jl},
year = {2021},
}
GitHub Events
Total
- Fork event: 6
- Create event: 58
- Commit comment event: 76
- Issues event: 39
- Release event: 8
- Watch event: 54
- Delete event: 71
- Issue comment event: 437
- Push event: 213
- Gollum event: 1
- Pull request review event: 2
- Pull request review comment event: 5
- Pull request event: 114
Last Year
- Fork event: 6
- Create event: 58
- Commit comment event: 76
- Issues event: 39
- Release event: 8
- Watch event: 54
- Delete event: 71
- Issue comment event: 437
- Push event: 213
- Gollum event: 1
- Pull request review event: 2
- Pull request review comment event: 5
- Pull request event: 114
Committers
Last synced: about 2 years ago
Top Committers
| Name | Commits | |
|---|---|---|
| Fredrik Bagge Carlson | b****n@g****m | 672 |
| Fredrik Bagge Carlson | c****b@u****g | 232 |
| Mattias Fält | m****f@c****e | 96 |
| Mattias Fält | f****s@g****m | 89 |
| olof3 | o****3 | 57 |
| Mattias Fält | m****t | 45 |
| Albin Heimerson | a****n@c****e | 29 |
| Jim Crist | c****2@u****u | 12 |
| github-actions[bot] | 4****] | 9 |
| olof3 | o****t@c****e | 9 |
| Jerome LE NY | j****y@p****a | 8 |
| Michele Zaffalon | m****n@g****m | 7 |
| Fredrik Bagge Carlson | b****n@g****m | 5 |
| KronosTheLate | 6****e | 3 |
| Tiago Oliva | t****a@g****m | 2 |
| olof3 | - | 2 |
| Uwe Fechner | u****c@g****m | 2 |
| CompatHelper Julia | c****y@j****g | 2 |
| Andre Rodrigues Simoes | a****s@g****m | 2 |
| Adrian Hill | a****l@m****g | 2 |
| HappyControlEngineering | 4****g | 2 |
| Tony Kelman | t****y@k****t | 2 |
| femtocleaner[bot] | f****] | 2 |
| freemin7 | 2****7 | 2 |
| Jaakko Ruohio | j****2 | 1 |
| Jonnie Diegelman | 4****e | 1 |
| Mattias Fält | J****3 | 1 |
| agerlach | 5****h | 1 |
| Albin Heimerson | a****m@h****m | 1 |
| Aditya Mahajan | a****m@u****u | 1 |
| and 13 more... | ||
Committer Domains (Top 20 + Academic)
Issues and Pull Requests
Last synced: 6 months ago
All Time
- Total issues: 98
- Total pull requests: 257
- Average time to close issues: almost 2 years
- Average time to close pull requests: 3 months
- Total issue authors: 45
- Total pull request authors: 19
- Average comments per issue: 7.36
- Average comments per pull request: 2.54
- Merged pull requests: 198
- Bot issues: 0
- Bot pull requests: 16
Past Year
- Issues: 15
- Pull requests: 100
- Average time to close issues: 4 days
- Average time to close pull requests: 3 days
- Issue authors: 12
- Pull request authors: 6
- Average comments per issue: 1.4
- Average comments per pull request: 2.09
- Merged pull requests: 79
- Bot issues: 0
- Bot pull requests: 8
Top Authors
Issue Authors
- baggepinnen (12)
- albheim (7)
- B-LIE (7)
- mzaffalon (6)
- hurak (6)
- franckgaga (4)
- mfalt (4)
- olof3 (4)
- jamestjsp (3)
- ufechner7 (3)
- lucasmsoares96 (2)
- fibonatic (2)
- scls19fr (2)
- fedeinthemix (2)
- KronosTheLate (2)
Pull Request Authors
- baggepinnen (201)
- github-actions[bot] (18)
- mfalt (8)
- franckgaga (7)
- mzaffalon (7)
- KronosTheLate (3)
- VaiTon (3)
- CasBex (2)
- albheim (2)
- gdalle (2)
- tallakt (2)
- olof3 (2)
- jaakkor2 (1)
- gruberchr (1)
- pietrop88 (1)
Top Labels
Issue Labels
Pull Request Labels
Packages
- Total packages: 2
-
Total downloads:
- julia 757 total
-
Total dependent packages: 19
(may contain duplicates) -
Total dependent repositories: 6
(may contain duplicates) - Total versions: 163
juliahub.com: ControlSystems
A Control Systems Toolbox for Julia
- Homepage: https://juliacontrol.github.io/ControlSystems.jl/stable/
- Documentation: https://docs.juliahub.com/General/ControlSystems/stable/
- License: MIT
-
Latest release: 1.14.0
published 8 months ago
Rankings
juliahub.com: ControlSystemsBase
A Control Systems Toolbox for Julia
- Homepage: https://juliacontrol.github.io/ControlSystems.jl/stable/
- Documentation: https://docs.juliahub.com/General/ControlSystemsBase/stable/
- License: MIT
-
Latest release: 1.18.2
published 7 months ago
Rankings
Dependencies
- gr2m/get-json-paths-action v1.x composite
- octokit/request-action v2.x composite
- JuliaRegistries/TagBot v1 composite
- actions/checkout v2 composite
- codecov/codecov-action v1 composite
- julia-actions/julia-processcoverage v1 composite
- julia-actions/setup-julia v1 composite
- actions/cache v1 composite
- actions/checkout v2 composite
- codecov/codecov-action v1 composite
- julia-actions/julia-buildpkg v1 composite
- julia-actions/julia-processcoverage v1 composite
- julia-actions/julia-runtest v1 composite
- julia-actions/setup-julia v1 composite