Which controller (PI or PD) is generally more robust to noisy sensor measurements and why?

Assuming no filter is used to measure error (or rate of change in error) with respect to a desired state, would a PI controller more/less/about equally robust to signal input noise compared to a PD controller? And why?

My intuition tells me that they would be about equally bad/good because wild changes in the measured state would generate equally bad spikes in either the I or D terms. I have, however, read some (probably not reliable) sources alluding to the possibility that PI controllers are generally more robust to noisy measurements than PD controllers. Is this true? And if it is true, why would a PI controller be more robust to noise than a PD?

• Proportional control amplifies equally across all frequencies.
• Integral action amplifies low frequencies more, and high frequencies less (in fact, its gain at DC is infinite, and at infinite frequency its gain is zero).
• Differential action amplifies low frequencies less, and high frequencies more (it has zero DC gain and unless its bandlimited, infinite gain at high frequencies).
• Noise tends to be equally distributed across the frequency band.

So a PD controller will tend to be more sensitive to noise. Whether it's more robust depends on your situation: there are some plants that can't be satisfactorily controlled without differential action.

• It might be worth mentioning that the transfer function from output noise to the error is (minus) sensitivity. Were the magnitude of the sensitivity transfer function tends to go to zero at low frequencies and to one at high frequencies. However the height of the peak of the sensitivity, which is sort of related to the gain and phase margins, can also be a big contributor to the resulting error. Jun 13 '19 at 2:36

One of those multiplies by the sampling time and one of those divides by the sampling time.

If your measurements are varying by, say, +/- 2%, and your control loop is running at 100 Hz, then an integral term gives you output swings of +/- (2% * 0.01) = +/- 0.02%, where a derivative term gives you output swings of +/- (2%/0.01) = +/- 200%.

As you can see, they do not create equally bad spikes.

• Only if the weight is the same on both, only if you use units of Hz rather than cycles. Jun 18 '19 at 8:30
• @PeteKirkham - I think you missed the point of the question. Only if the weight is the same on both - that's what OP is asking: For comparable controllers, which is more sensitive to signal noise? Regarding your Hz/cycles comment, I don't know what you're trying to say. Can you give an example? Jun 18 '19 at 14:03
• If you choose your unit of time as one time step/cycle rather than one second, as is not uncommon in discrete systems (see en.wikipedia.org/wiki/Z-transform for a more formal treatment of taking one time step as a unit). If the proportional term is e, the differential term is e_i - e_i-1 and the integral term I_i-1 + e. All have the same absolute sensitivity to the error. But usually noise rejection is measured relatively (in dB) - even if you have different gains, a 2% change in measured error will cause 2% output on wideband noise. Jun 18 '19 at 15:42
• @PeteKirkham - The Z-transform doesn't remove the sample period from the formulation, it just masks it. Laplace derivative is $sF(s)$, Z transform of the Laplace variable is $s=\frac{2}{T}\frac{z-1}{z+1}$ - when you use the z-transform to get to "samples" you're building the sample period into the calculation. Multiplying by $s$ (derivative) means multiplying by $\frac{2}{T}$ - you still divide by the sample period. Integration is the inverse operation, and you wind up multiplying by the sample period. Jun 18 '19 at 16:42
• The z-transform removes the dimension of the sample period, showing that any argument based purely on the quantity of that dimension in particular units is invalid. You can create exactly the same controller written in z-space without the factor of 100, or you can have the same controller written using cycles per minute rather than Hz and a factor of 60000 - but that controller will not be any more or less sensitive to the same noise spectrum. Jun 19 '19 at 0:25