I'm developing a PID controller to control the position of a laser beam. The position is measured using a Position Sensitive Device (PSD). I modeled the plant according to the manufacturer specs and I'm using Matlab/Simulink with PID tuner and embedded coder to generate the code for an F28335 micro-controller.
As long as I use a PI controller, the results are consistent with the model, but as soon as I introduce a differentiator and try to obtain a sharper step response, the system becomes unstable, with a lot of oscillation and saturation.
My guess is that the problem is the noise in the feedback sensor, so I tried to filter both the feedback signal and the error to no avail. Is there any other reason why the real system becomes so unstable? Any suggestions?
This is the compensator formula provided by the Simulink PID block: