Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

A Control Systems Toolbox for Julia

License

NotificationsYou must be signed in to change notification settings

JuliaControl/ControlSystems.jl

Repository files navigation

Star on GitHub

Build Status

A control systems design toolbox for Julia.

Installation

To install, in the Julia REPL:

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 athttp://juliacontrol.github.io/ControlSystems.jl/dev/ and anintroductory 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 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.

Example

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"])

StepResponse

Additional examples

See the examples folder andControlExamples.jl and several examples in thedocumentation.

Packages

No packages published

Contributors38

Languages


[8]ページ先頭

©2009-2025 Movatter.jp