ControlSystemIdentification
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, or transfer functions on the form
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" ""])