Hello,
As most of you already know, tuning a "normal" PID-loop is something like an art (even a black art...). So nesting loops isn't exactly simplifying things. Not as far as making things easier to understand and wrap your head around anyway!
But....
There are some clear advantages to be had by doing it! Which is also why most high end CNC-machines always have it.
So.....
I have already installed a second set of encoders on my mill (a 1990 MahoMH600E), a full WMC that came with original linear scales with high resolution (0,2 um with the present interpolators).
So I have installed quadrature encoders on the motors.
As far as I understand this there should be "clean" signal paths, and no mixing or sharing of feedback between the different PID's.
At least in my head it will be a problem when a PID is calculating its output based on a mix of feedback, which have a different time-domain. After all there is a delay between the mechanical arrival of the movements between the two encoders. In my case the inner loop is directly connected to the motor on its shaft. This is to have a fast response which enables high stiffness of the loop.
The outer loop on the other hand is connected to linear scales. And they have a much longer mechanical train before the movement arrives at them (in my case a safety clutch, a timing-belt, a ball-screw + nut, stick-slip from the ways and finally mechanical connection to the encoder)! As a result the loop is a lot slower, and as such one will have to back off on the control signals as the phase delay will become a problem. Oscillations will start at much lower gain levels (reducing speed and stiffness).
So..... since the main feature of the inner loop is it's high speed, and as a result high stiffness..... you wouldn't want to mix inn signals from the outer (slow!) feedback loop!
You would pollute your fast inner feedback loop with slow feedback signals from the outer loop, and as a result mess up the whole advantage.
When I read the wiki I don't interpret it as they mix the encoder signals.
BTW, one thing this implementation is capable of is to remove minor backlash and mechanical wear (an important thing for me). And it's doing it by taking feedback from before it's introduced. But to then use the (polluted with backlash) signal from the outer loop and introducing that in to the clean and fast inner loop will cause big problems.
Also take a look at my post discussing this with DaBit here:
PID tuning: one vs multiple loops, gain scheduling
I think he made his mill work with dual loop (plus an inner torque loop inside of that, but that is normaly done in the drive). But his newest links to the configs are dead..... his webpage where he had them are long dead. But there are early configs in the above mentioned thread.
I have taken up my work with my mill again now, after several years of no time to spend on it. And I hope to have this working soon. And will share my configs along the way. I'm soon ready to start testing out the new configs I'm working on now, and will most likely need some assistance to finish them.
Anders