terrencetec / kontrol

KAGRA control python package
MIT License
11 stars 0 forks source link

[Complementary filter pipeline] Make a function that takes an XML file, read the spectral density and model it with zpk. #11

Closed terrencetec closed 3 years ago

terrencetec commented 4 years ago

Technically a preliminary stupid fitting function already exists, kontrol.model.fit.noise_zpk(). This function takes a spectral density and fit it with defined zpk order. We use same number of poles and zeros here because we need the TF to be bounded for H2 synthesis in later steps. I am seeking a better way of deciding the number of poles and zeros. On a separate project, we are working on identifying system order with machine learning, but let's not depend on that. Let's make one here.

terrencetec commented 4 years ago

Now we have kontrol.core.noise.Noise class. This class can be initiated with a noise amplitude spectral density, and coherence between the sensor and another sensor measuring the same quantity. I have found a good cost function that fits frequency series very well. kontrol.core.noise.Noise.fit() fits the noise spectral density by transfer functions with increasing order.