System identification for ControlSystems.jl, implemented in Julia.
This package estimates linear statespace models with inputs on the form
using methods such as N4SID or the prediction-error method, transfer functions on the form
as well as generic nonlinear graybox models
See the documentation for help.
Examples in the form of jupyter notebooks are provided here.
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" ""])