03-25-2020 04:51 AM
Hello everyone. We know that in PID control, the derivative part is highly susceptible to noise. I want to know how to remove this noise before starting my derivative action. The data rate which I'm getting from the simulator is at 20hz(same at which my loop runs). Let me know if you need any other info.
03-25-2020 05:42 AM
Low pass filter.
03-25-2020 06:40 AM - edited 03-25-2020 06:43 AM
Thanks for replying. But why not a highpass filter? I have an idea but the Exact reason?
03-25-2020 07:05 AM
Noise is typically very ... noisy. If you do a FFT of a noisy signal you'll get frequencies over all the register. The signal you're interested in is 20Hz, which is a very low freqency signal. Technically you can do a 20Hz bandpass, but that'd get a little silly. 🙂
(Do that; create a white or gaussian noise signal and check its FFT) 🙂
/Y
03-25-2020 07:20 AM
You want the D part to make the controller faster ... so the challenge is to still a D but seperate from noise...
So one method is to look back some more (use more past values) and try some fitting.
Use the last n (50?) values fit a square function and use that derivative at the endpoint?
Here is a link to some more methods
LabVIEW has a Savitsky-Golay filter vi that can be used to get low pass derivative coefficients for a FIR filter ...
03-25-2020 08:07 AM - edited 03-25-2020 08:11 AM
Thank you. What should be the sampling frequency the filters in labview ask?
03-25-2020 08:08 AM
Thank you for replying. I partly understood what you said. My D controller is ready. I just want to remove the noise.