Problem with implementing a PD compensator

greenspun.com : LUSENET : PID Controller Tuning : One Thread

I'm trying to design a digital PD compensator for a plant, it's transfer function being: G(s)=(s+8)/(s+3)(s+6)(s+10)

I go about this by starting with H(s)=Kp+Kd*s and after using the Tustin transform and a bit of manipulation in the z-domain, I end up with:

y(t)=-y(t-T)+ (2*Kd/T)*(u(t)-u(t-T))+ (Kp)*(u(t)+u(t-T))

where I use Kp=299 and Kd=5.34 and T =0.02 second. I input a step from 0 to 1 to which the system responds by going unstable(and outputs oscillations that go exponential). Does anyone have any idea what's gone wrong?

Cheers.

NB. It seems to behave better if the -y(t-T) term is removed (ie the output approaches 1), but I don't understand why.

-- Charles (crr102@york.ac.uk), May 23, 2004

Answers

Keep it simple, but you realize that already. Don't use Tustin's approximation on functions without poles. Don't use the incremental or velocity form of PD. Use the simple absolute or position form. If you add one more gain, a double derivative, you can place the poles to get the response you want.

I calculate Kp=131.25, Kd=13.143 The CLTF has 3 real poles at - 10.714.

-- Peter Nachtwey (peter@deltacompsys.com), August 01, 2004.


Moderation questions? read the FAQ