Another servo tuning

More
4 years 6 months ago #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?

Please Log in to join the conversation.

More
4 years 6 months ago #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 to join the conversation.

More
4 years 6 months ago #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 to join the conversation.

More
4 years 6 months ago #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.

 

Please Log in to join the conversation.

More
4 years 6 months ago #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

Please Log in to join the conversation.

More
4 years 6 months ago #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
Code:
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
Code:
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 to join the conversation.

More
4 years 6 months ago #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
 

Please Log in to join the conversation.

More
4 years 6 months ago #239557 by myval
Replied by myval on topic Another servo tuning
Stepgen maxaccel at 0

Please Log in to join the conversation.

More
4 years 6 months ago #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 to join the conversation.

More
4 years 6 months ago #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

Please Log in to join the conversation.

Time to create page: 0.156 seconds
Powered by Kunena Forum