baggepinnen / ControlSystemIdentification.jl

System Identification toolbox, compatible with ControlSystems.jl
https://baggepinnen.github.io/ControlSystemIdentification.jl/dev
MIT License
129 stars 13 forks source link

Regularisation on state trajectory #154

Open CasBex opened 1 month ago

CasBex commented 1 month ago

The identification methods in this package allow adding a regularisation term to the loss for better convergence. It would be nice if we could regularise not only the parameters and obtained system but also on the simulated trajectory. This would allow punishing states which are physically nonsensical (temperatures below 0K...) which would allow some form of "physics-informed system identification" to obtain systems with physically sensible non-observable states. This could be done by adding an argument to the regularisation function in state space identification methods (e.g. going from regularizer = (p, P) -> 0 to regularizer = (p, P, simresult) -> 0).

baggepinnen commented 1 month ago

Thanks for the feature request! Check out the PR #155, I hope it addresses your request

CasBex commented 1 month ago

I'll have a look later today, thanks for the quick response

CasBex commented 1 month ago

Alright, I've tested it and it seems to work. Weighting the various regularisation terms in my problem to get a good result remains rather difficult, but I guess that's application dependent.

Will you include this in the other state-space models as well or only structured_pem?