- Notifications
You must be signed in to change notification settings - Fork89
A Control Systems Toolbox for Julia
License
JuliaControl/ControlSystems.jl
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
A control systems design toolbox for Julia.
To install, in the Julia REPL:
using Pkg; Pkg.add("ControlSystems")
All functions have docstrings, which can be viewed from the REPL, using for example?tf.
A documentation website is available athttp://juliacontrol.github.io/ControlSystems.jl/dev/ and anintroductory video series is available here.
Some of the available commands are:
ss, tf, zpk, delay
poles, tzeros, norm, hinfnorm, linfnorm, ctrb, obsv, gangoffour, margin, markovparam, damp, dampreport, zpkdata, dcgain, covar, gram, sigma, sisomargin
are, lyap, lqr, place, leadlink, laglink, leadlinkat, rstd, rstc, dab, balreal, baltrunc
pid, stabregionPID, loopshapingPI, pidplots, placePI
step, impulse, lsim, freqresp, evalfr, bode, nyquist
bodeplot, nyquistplot, sigmaplot, plot(lsim(...)), plot(step(...)), plot(impulse(...)), marginplot, gangoffourplot, pzmap, nicholsplot, pidplots, rlocus, leadlinkcurve
minreal, sminreal, c2d
This toolbox works similar to that of other major computer-aided controlsystems design (CACSD) toolboxes. Systems can be created in either atransferfunction or astatespace representation.These systems can then be combined into larger architectures, simulated in bothtime and frequency domain, and analyzed for stability/performance properties.
Here we create a simple position controller for an electric motor with aninertial load.
using ControlSystems# Motor parametersJ=2.0b=0.04K=1.0R=0.08L=1e-4# Create the model transfer functions=tf("s")P= K/(s*((J*s+ b)*(L*s+ 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 KpCLs= [kp*P/(1+ kp*P)for kp∈ [1,5,15]];# Plot the step response of the controllers# Any keyword arguments supported in Plots.jl can be suppliedusing Plotsplot(step.(CLs,5), label=["Kp = 1""Kp = 5""Kp = 15"])
See the examples folder andControlExamples.jl and several examples in thedocumentation.
About
A Control Systems Toolbox for Julia
Topics
Resources
License
Contributing
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Packages0
Uh oh!
There was an error while loading.Please reload this page.
