Say that I have your standard PID controller at work. To keep it extremely simple imagine I have a target $x^*$ on the variable $x$. Then the controller is:

$y(t) = K_p ( x^* - x_t) + K_i \int_0^t (x^* - x_{\tau})d \tau + K_d \frac{d}{dt} (x^* -x_t)$

Now, I do have numerical observations for all $t \in [0,T]$ of both $y_t$ and $x_t$. This data generating process is a PID controller of which I do not know the three parameters. I'd like to estimate them!

Now if the data was perfect I would just need the first 3 observations to solve a system of equation and I'd be done. The data isn't perfect though (imagine an $\epsilon$ added to my observed $y_t$). How should I proceed?

I couldn't find literature regarding this problem so I am somewhat at a loss. How do you attack this?

  • Do I perform an OLS? I can approximate the integrative and derivative part with my data set but I wonder how the errors will compound. Plus there is $t$ and I wonder if any time series object would do the job better
  • I could try brute search or some weird metropolis hastings trick where I keep trying random parameters and choose the ones that minimize SSR or prediction error, but I think that's my last option.

Any ideas?


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.