AC Servo tuning - Joint 0 following error at high velocities

  • abi9624
  • Away
  • New Member
  • New Member
More
28 Apr 2025 13:05 #327215 by abi9624
Hi,
I am a newbie to Servo tuning. I made a linear guide (Travel length: 500 mm) and attached servo motor to it.

Servo Motor: Inovance MS1H2-10C30CB-A331Z-INT with 23 bit encoderServo
Drive: Inovance SV670P
Mesa card:7i97T

Servo drive is configured in speed mode and controlled through analog voltage - 10V. Followed the Servo tuning guide from this forum and tuned the P, FF1, FF2 values. Tuned with a displacement of 5mm.

This setup works upto 3000 mm/min for both continuous jogging and fixed length. Above 3000 mm/min, i am getting Joint-0 following error during continuous jogging and less error for small lengths and frequent errors for larger lengths.

I doubt whether the tuning is correct or not. Help me to solve this issue.

I have attached servo drive manual, INI file, HAL file and Hal Scope screenshots at 2880 mm/min and 6000 mm/min for both 5mm and 50 mm jogging.

Thanks in advance.  

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

More
28 Apr 2025 15:06 - 28 Apr 2025 15:07 #327219 by PCW
It looks to me like the FF1 term is different (too low) in the plots where the following
error tracks the velocity (higher velocity plots) Did you change some drive parameter
in these plots?

Also note that the velocity is not higher in the 6000 mm/m plots as it only gets to ~50 mm/s
(3000 mm/m) because of the acceleration bound
Last edit: 28 Apr 2025 15:07 by PCW.

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

  • abi9624
  • Away
  • New Member
  • New Member
More
30 Apr 2025 07:54 #327330 by abi9624
Thanks for your quick reply.

I haven't changed any drive parameters.

Since i am new to Servo tuning, its quite confusing to conclude, whatever i am doing is correct or not. Now i have a fundamental question,

With the above setup is it possible to achieve 15,000 mm/min feedrate within 20 micron positional accuracy and +- 20 micron repeatability? I doubt whether the control loop is fast enough to reach this speed and accuracy ?

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

  • tommylight
  • tommylight's Avatar
  • Away
  • Moderator
  • Moderator
More
30 Apr 2025 14:11 #327343 by tommylight
In your ini file, you have limited max_output to 8, should usually be 10.
Here is a detailed tuning guide:
forum.linuxcnc.org/10-advanced-configura...ning-detailed-how-to
Do read it fully first so you know what parts to pay more attention, no skipping steps.
And do let me know if something there can be explained better.
The following user(s) said Thank You: abi9624

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

More
30 Apr 2025 14:49 #327351 by PCW
With the above setup is it possible to achieve 15,000 mm/min feedrate within 20 micron positional accuracy and +- 20 micron repeatability? I doubt whether the control loop is fast enough to reach this speed and accuracy ?

The main control loop in this case is in the drive, its velocity feedback loop.
The position control loop in LinuxCNC can run more slowly and maintain
high accuracy and repeatability. Note that at 15000 mm/m you move only 250
microns per ms, so it takes only relatively crude velocity commands to keep
within 20 microns. Note that as you increase acceleration, tuning becomes more
difficult as you run into various physical limits.

 
The following user(s) said Thank You: tommylight, abi9624

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

  • abi9624
  • Away
  • New Member
  • New Member
More
19 May 2025 21:39 #328761 by abi9624
Hi Tommy and Peter. I took some time and tuned all three axis. Now i can jog continuously all three axes. I have attached halscope screenshots of all three axis. Can you please check whether the tuning is good or more need to be done ?

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

More
19 May 2025 23:31 #328762 by PCW
Looks good, though probably needs a bit more FF1 tuning.

Are you using the "Calibrate" menu?

This makes it easy to adjust PID parameters while running.

If the following error is in the same direction as the velocity,
FF1 is too low, if the following error is in the opposite direction
of the error, FF1 is too high.
The following user(s) said Thank You: abi9624

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

  • abi9624
  • Away
  • New Member
  • New Member
More
20 May 2025 10:07 #328792 by abi9624
I tuned the FF1 further. Now it looks better. Thank you.

But i am facing a different issue, on all axes, For X axis, i set a dial indicator at zero position and i started 25 full jog cycles for the total distance of 500 mm. For each cycle when the bed returns to the zero position, dial indicator displays a gradual drift away from zero position. Also after stopping the cycles, at rest the bed moves towards the zero position gradually. What could be causing this issue ? Please help me on this

Drift towards zero position at rest is not reflected in encoder and DRO.

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

More
20 May 2025 11:45 #328801 by andypugh
The drift might be something physically slipping. Mark any shaft-to-pulley or coupler joints to be sure.
Hopefully it isn't the encoder slipping on the motor shaft, that would be very difficult to detect or fix.

It is unlikely to be lost steps in a closed-loop system, and also unlikely to be lost encoder counts, but it's not entirely impossible.

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

More
20 May 2025 13:10 #328808 by PCW
You have

setp hm2_[MESA](BOARD).0.encoder.00.filter 0

(on all axis) You might try:

setp hm2_[MESA](BOARD).0.encoder.00.filter 1

In case it's a noise issue.

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

Time to create page: 0.099 seconds
Powered by Kunena Forum