Servo Purchase Recommendations, Yaskawa?

20 Nov 2021 17:16 #227104 by ihavenofish

I don't have a high end machine. It's a 1996 that's getting a retrofit. Will deltas have the same issue with jerk on a large old heavy machine with a lot of inertia?
On the Delta Servos, you could set a low-pass or S-curve Filter. Its own chapter in the manual. First step of tuning is set the electronic gear ratio. Should be your smallest unit/pulse. In metric =1µ/puls or 10µ/pulse. Second, could you adjust a low pass filter or s-curve filter. In any way should you are able to avoid the jerk. Your following error rise in this step, but with low gain from lcnc it's okay. Another way is to use one external scale and connect to drive direct and set lcnc PID near 0. To calculate the gain parameter is the tuning software helpful. For sure not perfect, but you are able to get better result as to set the parameter by hand.
As I write this line...
What will be happened if all step and feedback commands pass the lcnc low-pass filter? Could it be possible to avoid a jerk by this way?

He is trying to keep analogue control. no step and direction. if he used step and direction all these issues go away. The home index desire (ultra precise repeatable homing) I think might be still able to function though. You can still read the encoders, they just aren't fed to motion control. might be still able to use that a the home switch. - hit the mechanical switch, then swap to the z pulse.

Ethercat is the more ideal option, but i don't think linuxcnc's implementation is fully sorted yet.

On the dmm, (assuming its their own drive and not the generic chinese ones they have sold) - basically they have very basic tuning abilities, and very low inertial ratios. Cheap low performance system. That would be a complete non issue if they didn't try to claim it wasn't. There were xzero clients with long machines (2525 ballscrew, 8ft long) and we found the dmm kit simply cant handle that. Too much inertia. The servo would overcorrect several mm in a wave pattern.  but instead of dmm saying "oh, our system can't handle that inertia ratio, our tuning is too basic, please return the item and buy a different type" they said, "the machine is bad design, it has lots of play" and other such nonsense. I'd bet at this point that the support team doesn't even know what an inertia ratio is.


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

20 Nov 2021 17:48 #227110 by ihavenofish

Jerk or "S curve acceleration" has nothing to do with drive lag, no amount of "softening" will help a drive that takes 50ms to report its actual position.
Guessing here, but using buffers for filtering and seting long timings to have clean signals does that.
As for acceleration on older machines, it has to be tuned to every machine, the LinuxCNC default of 750mm/s/s was to much on a Hurco BMC20, but my plasma can do 5000mm/s/s easily, 3D printers do even more.
Basically, LinuxCNC acceleration has nothing to do with slow drives.
Slow drives have something wrong on the feedback side, the input side is a simple power amplifier so the delays there are very short.

getting confusing with all these terms perhaps.

- speed/velocity (m/s): the rpm the drive is commanded to move by the control. often in pulses per second (encoder, or steps) at the control level.
- acceleration (m/s/s): the rate of change in speed commanded by the control.
- jerk (m/s/s/s): the rate of change in acceleration commanded by the control. linuxcnc has infinite jerk. it goes from 0 to your set acceleration instantly.

All of the above are what linuxcnc is telling the drive to do - it is up to you to set the parameters at something physically possible.

Speed is the most obvious, if your motors go 3000rpm, this is your max speed.

Acceleration you set in linuxcnc often by simply raising it until the drive stalls with steppers, or until you get excessive follow error in a servo. Then you often back off for safety 20%. Some machines can manage 0.1m/s/s and others can manage 20m/s/s. 

Both of the above are in linuxcnc's complete control, and regardless of analogue or pulse control, if you pick the right settings, you are good to go.

Jerk is more confusing to some people as it is not a function in hobby machines, and only becomes apparent in linuxcnc in analogue mode where linuxcnc is directly controlling the drive position. Because of this direct control, if the drive cannot follow the commanded path exactly, linuxcnc tries to correct and it can cause the system to overcorrect, resonate etc. Jerk causes the drive to momentarily (milliseconds) not be able to follow. This jerk is on every start/stop move, at every speed, and every acceleration setting, so slowing the machine down has no effect. On old slow speed loop drives, this seems to be a serious issue, as they can't respond to linuxcnc's desired correction in a timely manner, which makes linuxcnc correct again, and again. IF you could set jerk control, then the drive would be commanded in a way it could physically follow, and even on a very slow responding drive, linuxcnc would not have to correct as the motor would be in the right spot. This is abundantly evident as G64 moves, which effectively add S curve deceleration on the linear section of a move, tracked perfectly on my machine. (and of course, the original control worked perfectly). Since this is not a parameter than linuxcnc can adjust you may end up with a situation where a certain drive will either work, or not work in analogue control.

I have yet to see how a new fast analogue drive responds. As mentioned earlier, at a 3100hz loop, with huge inertia ratios and advanced tuning and filtering, a delta B3 may overcome infinite jerk just fine.

There is probably a way of finding out which ones work and don't from user experience, and then seeing what common trait it present.

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

22 Nov 2021 16:21 #227308 by Todd Zuercher
Having a digital servo system doesn't magically make jerk a non issue in Linuxcnc, It just covers it up and hides the increased following errors from you. You can often achieve the same or better following with an analog system, you're just more aware of the errors because you're staring at them when your tuning. The fact that Linuxcnc is generating an impossible command path doesn't change with either system. But with most reasonable acceleration settings for most machines the jerk induced errors are insignificant. Where jerk is a big problem is with extreme high performance machines, and poorly designed ones where the servos are powerful enough to induce significant deflection in the frame and/or drive train of the axis. And no amount of digital tricks will fix it without increasing following error so long as Linuxcnc doesn't have jerk limiting in the motion planning.
The following user(s) said Thank You: tommylight

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

22 Nov 2021 18:07 #227312 by Michael
This begs the question of weather jerk control is in the future for LCNC or not?

If not does that leave lincurve or something similar as the only option to smooth that action?

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

22 Nov 2021 18:22 #227314 by tommylight
User Grotius has already done some work on implementing one version of it

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

23 Nov 2021 00:16 #227350 by arvidb
*lol* I just have to comment on this...

Grotius wasn't doing jerk-limited planning, he was just "jerk limiting" the parameter increments of a parameterised path (at least that's my guess of what's happening). If you step through his videos of the 6-axis robot at the end of that thread frame-by-frame, you will notice that the motion isn't even acceleration limited in the corners of the path. (I think this is what he alludes to when he writes "one thing i will have to think about is how to calculate a gcode corner g-force impact, and anticipate on this"). I.e. he hadn't even started thinking about how to actually produce a limited-jerk path when making the videos!

Nevermind the fact he wrote the thing as a HAL component, which makes it useless for anything but testing and making cool videos. Integrating a new planner in motmod is a huge undertaking!

It was all mostly show and very little content. It does look cool though, I'll give him that!

(Sorry if this comes off somewhat heated, but it does annoy me that he didn't even try to understand the problems that need to be solved, and instead just disrupted the discussion.)

I pointed out a few of the most glaring problems with his code in that thread hoping he might stop for a moment to think through and understand the problem space (as did cmorley regarding the HAL component thing), but unfortunately he didn't seem interested.

Lol, if I ever get anywhere with my try at jerk limited planning it wouldn't surprise me if Grotius managed to get credit for it somehow. :D Oh well.
The following user(s) said Thank You: tommylight

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

23 Nov 2021 00:55 #227352 by tommylight
@Arvi, sorry, all i recall is that he did something regarding this and that topic is loooong.
The following user(s) said Thank You: arvidb

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

23 Nov 2021 02:39 #227358 by ihavenofish
yer all a bunch of jerks.


anyhow, when i say the issue of jerk control goes away with pulse drives i mean YOUR issues with misbehaving servos. obviously the problem is still there, however dumb (stepper) and advanced servo systems alike simply manage to deal with it better than linuxcnc's analogue system does (in my experience, on old slow drives).

people tend to only use analogue when they are trying to repurpose the existing drives. i dont hear of anyone buying brand new drives and trying to run analogue.

as it happens, i have the kit here to do both analgoue and step (mesa 7i77 and 7i76), although my machine is not assembled right now. it is a light weight machine with a high pitch screw (130kg moving mass, 2525 screw), so i would expect it to beave very badly in analogue mode if it had the old sanyo drives from the brother. the drive though is a much newer sanyo rs1 with a 1khz loop, and the motor is 2048 lines/8192 pulses per turn.

if noone else shows me anything interesting by the time im ready to assemble it, i may give analogue mode a go and see if it indeed behaves.
The following user(s) said Thank You: arvidb

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

23 Nov 2021 03:06 #227361 by ihavenofish
this was as good as i ever got my x and y.
this is an adaptive clearing program, with g64 on. 400ipm. 0.5G acceleration. it tends to behave well in the g64 moves, but "bangs" around on exact stop moves. you can sorta hear it in the video, in real life it was super apparent - and of course you could see it on the scope. there's nothing wrong with the tracking, it never deviated much more than a few encoder pulses, but the direction reversals i think would both leave marks on a part and damage the machine. the Z you'll note doesn't do much, that's cause i never got it anywhere close to tuned, it would resonate bad.

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

23 Nov 2021 03:12 #227362 by ihavenofish
compare to the original control

ive asked before, but if controls from the 80's running on intel 8088's had jerk control, what is the hold up with linuxcnc? even $200 3d printed have jerk control (although i think thats not a live trajectory).

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

Moderators: piasdom
Time to create page: 0.145 seconds
Powered by Kunena Forum