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

baggepinnen/ControlSystemIdentification.jl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

713 Commits

Repository files navigation

ControlSystemIdentification

CI codecov Documentation, stable Documentation, latest

System identification for ControlSystems.jl, implemented in Julia.

This package estimates linear statespace models with inputs on the form

$$\begin{aligned} x^+ &= Ax + Bu + Ke\\\ y &= Cx + Du + e \end{aligned}$$

using methods such as N4SID or the prediction-error method, transfer functions on the form

$$G(z) = \dfrac{B(z)}{A(z)} = \dfrac{b_m z^m + \dots + b_0}{z^n + a_{n-1} z^{n-1} + \dots + a_0}$$

as well as generic nonlinear graybox models

$$x^+ = f(x, u)$$

See the documentation for help.

Examples in the form of jupyter notebooks are provided here.

Quick example:

using ControlSystemIdentification, ControlSystemsBase
Ts = 0.1
G = c2d(DemoSystems.resonant(), Ts) # A true system to generate data from
u = randn(1,1000) # A random input
y = lsim(G,u).y # Simulated output
y .+= 0.01 .* randn.() # add measurement noise
d = iddata(y, u, Ts) # package data in iddata object
sys = subspaceid(d, :auto) # estimate state-space model using subspace-based identification
bodeplot([G, sys.sys], lab=["True" "" "n4sid" ""])

Packages

No packages published

Contributors 7

Languages

AltStyle によって変換されたページ (->オリジナル) /