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