Another servo tuning

More
04 Apr 2022 17:01 #239266 by myval
Another servo tuning was created by myval
Hi guys I need another rescue mission from you all big servo tuning brains.
I have spent whole day reading all the tuning guides in here ant trying and trying and I can only make it worse but not better.
attached are two pics of one with p40 and one with p80 and my ini file.
I have tried to tune P until it oscillates with all other at 0 then tuning ff1
then I tried ff1 at 1 all other 0 then tuning P
and many other combinations but my brain is about to explode and have no luck at all getting it better.
Can someone guide me in my struggle please?
Attachments:

Please Log in or Create an account to join the conversation.

More
04 Apr 2022 23:10 #239286 by PCW
Replied by PCW on topic Another servo tuning
Is the drive itself well tuned?
Are there mechanical issues (stiction, backlash etc)?

If you consider a step/dir interfaced drive
The PIDs FF1 = 1.000 parameter should
give close to proper motion even without any
feedback or tuning (since it will result in the
proper velocity commands to the drive)

Please Log in or Create an account to join the conversation.

More
05 Apr 2022 15:46 #239349 by andypugh
Replied by andypugh on topic Another servo tuning
Given that this is a metric machine 20m / div your peak error is about 0.08mm (or What is the machine? That isn't great for a lathe, but might be OK for a wood router.

Try the P=80 with D=0, is it better or worse? 0.1 feels a bit high.
Is the pid.N.eedback-deriv pin connected in the HAL? It looks like the machine might be over-reacting to encoder velocity noise.

Steady-state error looks excellent.

Please Log in or Create an account to join the conversation.

More
05 Apr 2022 20:12 - 05 Apr 2022 20:15 #239376 by myval
Replied by myval on topic Another servo tuning
coool I just typed all the story and clicked on something and it all disappeared what an idiot, anyway here it comes again :-)
The machine is Mikron WF31CH so I would expect it to run a bit better then what it is doing now. This servo tuning has been giving me serious headaches from the start.
The servo drives should be and I hope they are tuned correctly I use the Argon drives and the interface is step/dir. 
I will try D=0 tomorrow and find about the pid.N.feedback-deriv tomorrow too also I will post the HAL just for completeness (if I have time, I just gor EDM sinker so there is bit of running around and lot of moving in the workshop now).
Steady state is fine and running at slow speed actually slow accelerations is fine too or at least good enough but I would like to bump it up a tiny bit and that is what I am trying to achieve right now.
I do not know of any mechanical issues there is a bit of a stiction of course and microscopic backlash, when I run it at about 500 to 1000mm/min I get precision better then 0.01mm and I guess with few extra spring passes it would go lower. This is good enough but would love to go bit faster.

I was kind of expecting FF1=1would give me about right answer but acceleration and deceleration is bit of a drama.

 
Last edit: 05 Apr 2022 20:15 by myval.

Please Log in or Create an account to join the conversation.

More
06 Apr 2022 13:03 #239441 by myval
Replied by myval on topic Another servo tuning
I tried P=80 D=0 and everything else 0 picture attached.
Attached is screenshot of the same settings but motor cmd and encoder pos and they both seem to match when overlayed so why is the error all over the joint?

The thing is I can not find the pid.N.feedback-deriv pin connected. How should I connect it and what is it going to do for me?

I have attached my hal as well.

Thanks
Attachments:

Please Log in or Create an account to join the conversation.

More
06 Apr 2022 13:42 #239445 by andypugh
Replied by andypugh on topic Another servo tuning
It's only bad as the axis first starts moving. (And bear in mind that this is an error _along_ the path, so will have much less effect on part geometry than an error perpendicular to the path.)

To try to improve this:

In this section
net x-index-enable  <=> pid.x.index-enable
net x-enable        =>  pid.x.enable
net x-pos-cmd       =>  pid.x.command
net x-pos-fb        =>  pid.x.feedback
net x-output        <=  pid.x.output

try adding
net x-vel-cmd  pid.N.command-deriv

This should help FF1 to be a bit more accurate.

You could also experiment with setting the STEPGEN_MAXACCEL to zero (unlimited) as there isn't a physical stepper motor to worry about.

It might also be interesting to see what happens if you reduce the MAXACCEL of the joint itself. (you probably don't want to keep it that way, but just to see what happens)

Please Log in or Create an account to join the conversation.

More
07 Apr 2022 15:39 #239556 by myval
Replied by myval on topic Another servo tuning
Right with the deriv connected I get the attached curve.

will play with maxaccel in a minute
 
Attachments:

Please Log in or Create an account to join the conversation.

More
07 Apr 2022 15:53 #239557 by myval
Replied by myval on topic Another servo tuning
Stepgen maxaccel at 0
Attachments:

Please Log in or Create an account to join the conversation.

More
07 Apr 2022 15:58 #239558 by andypugh
Replied by andypugh on topic Another servo tuning
Does changing the FF1 value affect the initial deviation when movement starts?
I would concentrate on just that for the moment, try increasing and decreasing FF1 and FF2 (one at a time) and also try changing D (try 0.0001, 0.001, 0.01) and try to get a feel for what changes.

Please Log in or Create an account to join the conversation.

More
07 Apr 2022 15:59 #239559 by myval
Replied by myval on topic Another servo tuning
an if I drop the axis accel to 100 I have been machining with this setting and the results were seriously good.
but I would like to bump up the max speed and acceleration a bit if we could figure out what is going on.
thanks
Attachments:

Please Log in or Create an account to join the conversation.

Time to create page: 0.079 seconds
Powered by Kunena Forum