Computed Torque Control vs. PID

Tags:
1. Nov 22, 2014

zoom1

I'm working on a pantograph device, which is not a linear plant, and implemented 2 different control schemes. First one is computed torque;

For this control technique, I modeled nonlinear terms in the equation of motion and canceled them by injecting their model within the control input, which is torque for two motors. This way I achieved a very fast response but since the controller was PD, there is always a steady state error, which gets smaller as the P gain increases though.

The second method was the classic PID method. Again I used PD controller for each motor and what I observed is a very slow response, like 3-5 seconds to catch the reference. Furthermore, the gains I used was extremely high even to be able to get this response, like Kp = 15000, Kd = 15000

My question is;
Is the reason why PD controller performs too slow, due to non-linear plant ?

And one more question for the Computed torque technique;

I used the following control input;
Torque = M(q)*[qd'' + Kv*e' + Kp*e] - H(q,u) - Bf(q)*Fext

Where H and Bf terms are the non-linear parts I cancel.
qd = desired joint angle;
qactual = actual joint angle;
e = qd-qactual
e' = derivative of error
qd'' = desired acceleration
M(q) = mass matrix

So, this model is the PD controller. Is it possible to build a PID controller with Computed torque technique ?

2. Nov 22, 2014

Mike_In_Plano

Don't know in this case I think I popped my cerebral cortex on the math. However, old age age and treachery have some advantages to youth and competence, LOL.
The difficultly of PIDs is that the dad-burned I tends to interact with any other low frequency poles forcing you to give up response for stability.
I observe that the torque has an opportunity to interact with your mass moment of inertia to create just such a pole...

My proposal is that you look for an observer for torque and close a torque control loop. Thus you have a torque call, torque error, and torque observer. Now, crank the gain on the torque loop such that it responds promptly.

The output of the speed error not feeds into the torque call (which hopefully is fast), and you're now stuck with the pole formed between your mass moment of inertia and speed dependent losses. You're also stuck with the integrator. Moving these to poles apart will help. If your motor can break as well as accelerate, perhaps you can introduce a speed observer into the torque call such that torque attempts to decrease with speed.

I suspect this would push that troublesome MMI / loss pole to the left.

3. Nov 23, 2014

zoom1

Since I use the joint angle as output and torque as input, which are not the same parameter, I get a slow response. Is this correct ?
If so, you suggested a torque observer so that I can compare the torque input with torque output. But the thing is, even I use the torque as input, I don't really referencing the desired torque but desired joint angle instead. So, how would this work? I am a bit confused, maybe I got you wrong ?