Friday, June 6, 2014

Lead Compensation

Using derivative control with a noisy reference signal is not a good idea. I keep forgetting that.

I originally chose to use a PD controller to control the quadrotor because nearly all of the equations of motion (for the linearized dynamics at least) are double integrators, and PD controllers look really nice on paper for those systems. As long as my two gains are positive, the system is theoretically supposed to be stable.

The problem is, derivative control action doesn't handle high frequency error signals well. My system's response plots show that high frequencies are indeed present in the system, and I have a suspicion that my controller is just amplifying the noise.

I gave my initial approach to this problem in my "Improved Controller Performance" blog. It turns out that my method to handle the high frequency components is very rough, and is probably not the best method. Firstly, it is difficult to determine the error rate threshold I should set to ignore the derivative term. It's kind of like tuning a PID controller by hand (not recommended). Secondly, there is a much better, more promising method that actually has validity: lead compensation.

The way I understand lead compensation, it is the combination of a PD controller with a low pass filter. the error signal is sent through a low pass filter before it is fed into the PD controller. The low pass filter attenuates the high frequency signal components I mentioned earlier. Hence, the derivative action has less high frequency noise to amplify.

With that being said, the lead compensator adds complexity to the system. It will be a bit more challenging to determine the pole and the zeros that give me a desired response. But that doesn't mean it's not worth the bit of extra effort. 

No comments:

Post a Comment