14 years ago
I'm a newbie in the field of "Control Theory" and feel confused with
some issues concerning feedback control for disturbance rejection and
would like to ask for your help.
Currently I'm reading that in order to obtain good disturbance
rejection (i.e. minimizing the sensitivity-function
S(s)=1/(1+Plant(s)*Controller(s) ) one needs to cancel the poles and
zeros of the plant and from there design an additional filter that
contribute to amplification inside the loop. Here I'm a little unsure
if this is the right approach for all "disturbance rejectors". What
I'm confused about is most easily described (I hope) by this simple
I have a Plant(s) = 1/s and consequently a controller(s)=s, thus the
Sensitivity, S(s), function yields:
S(s) = 1/(1 + s*1/s) = 1/2 = ~6dB attenuation with no phase shift!
Now going into the time-domain; if I apply an ultra low-frequency
sinuoid signal as disturbance signal and it is first
filtered by the Plant then the phase-shift will be close to -90
degrees. Given the Controller that cancels the
pole of the plant the sinusoid signal will be shifted +90 degrees to
achieve infinite attenuation (generating perfect
anti-noise). If I'm wrong here I'd be glad to be corrected!
Now I can see why everything goes well when the disturbance is a
sinuoid signal but when it instead is a random
signal this controller design no longer delivers unfinite disturbance
rejection as this would need a non-causal filter to produce a phase
shift corresponding to the inverse of the plant - Am I right in this?
Guess I'm just confused about steady-state response vs. transient