Manual tuning CTB servodrive with PI-PI controller?
Hey,
I'm trying to tune the servodrives on my CNC build, but i'm having a hard time finding a good way of approaching the problem. Unfortunately there doesn't exist any "autotuning" or clever pc-software for my drives, so the only way forward is manual tuning. And while the manually technically lists all drive parameters, there isn't much help with regards to HOW the controlloop inside works, let alone how to tune it... I tried contacting their support, and even though they are answering, i feel like the evade the questions/problems. So, here i am, hoping that someone out there can push me in the right direction.
First off, the drives are from CTB and it's a BKSC-47P5GH and the acompaning motor is a S18 at 2,2kW. I'm using LinuxCNC for "open loop control" and letting the drive closing the loop between the motor and the encoder. There isn't any magic involved, LinuxCNC just tells the drive where to go and then the drive has to do all the heavy lifting.
What i got so far is something like this:
It looks "ok'ish" with regards to the shape of the curve(no overshooting, critical damped etc). But there is a rather large lag between the input command and the outputting result. This gives me quite a large following-error(arund 0,2mm) which is way to high for my application, ideally it should be 1/10 of that... or smaller...
I've attached the driver manual to this post, but not to dull you to the extreme, i've also copied to related pages(page 105 in the PDF) here for easy access:
What i've done to get to this result:
- Turned up the position loop proportional gain(Cn.29) to just before oscilations start.(was: 100, now: 350)
- Turned up the speed loop proportional gain(Cn.19) up high(was: 300, now: 4000). (This causes quite a lot of noise from the engine during jogging though)
- Turned up the position loop speed feed forward(Cn.32) to just before oscilations(was: 0, now: 83%)
I've tried tinkering with the integral time, but i'm not seeing much difference. My thinking is that i might have the order of tuning wrong, so i tried googling it. The issue is that i think this drive uses a "PI-PI"-control loop instead of "old school PID"-loop. So the guides i find online doesn't quite fit this and i'm starting to feel kinda stuck here. I haven't even tried enabling the second controlloop yet since i feel like i already has waaaay to many variables to see any pattern in what is happening and why...
Any input or help is greatly appreciated! I'm really at a loss here...
/Thomas
PS: For the next project i'm buying drives with proper software and autotuning functionallity!