Stepper speed based on position
My machine has fast motors but I can't use there full potential because my ball-screws start to wip at the beginning and end of there travel. So it would be nice if for example, from 0mm to 300mm the maximum velocity is 3000mm/min, and after that it goes to higher speeds. Maybe even at a certain scale....?
Please Log in or Create an account to join the conversation.
I think maybe you can do this with the lincurve component, if not it would be fairly easy to impliment this in hal logic. The only problem (I see) is that you would have to interrupt the command from motion with some logic based on position feedback. Like motion would be commanding X at a velocity of 3000 but you would have some logic sitting between that and the output limiting it to 300, then removing the limit and allowing it to do 3000 again. Position feedback wouldn't be altered so it might be fine....it's just something you would have to test. It might not actually matter because a PID basically does this anywayIs it possible to base the maximum velocity on the position of the X or Y axis?
My machine has fast motors but I can't use there full potential because my ball-screws start to wip at the beginning and end of there travel. So it would be nice if for example, from 0mm to 300mm the maximum velocity is 3000mm/min, and after that it goes to higher speeds. Maybe even at a certain scale....?
Please Log in or Create an account to join the conversation.
I would probably write a custom component that monitored
motion.L.pos_cmd (where L is the axis)
and motion.current-vel
Then output a value based on some algrothim that scales the adaptive feed to meet your requirements.
There is no requirement to just make it a simple step up, it could be a function genrating an inverted bell curve.
Its probably a good project to learn about writing components as it would be quite simple to code.
Please Log in or Create an account to join the conversation.
Not everybody can or wants to learn to write C. That was the whole purpose of hal in the first place. So unless this guys a programmer he should probably just try to adapt what's already in hal, which seems feasible.
Please Log in or Create an account to join the conversation.
I can program c++ a little, but it cost me too much time, way more time then it will save me time.
I was hoping there would me something like all kinds of compensations that already build in linuxcnc. Just a file with three columns, one for axis, one for current position, one for maximum speed. Or a curve formula, based on current position, total length, and steepness. Only the steepness should be entered in, the other values are already known.
But... what is happening when the max-velocity is changing for the X-axis, does Linuxcnc compensate that on the Y-axis?
Please Log in or Create an account to join the conversation.
Is there something possible that looks like I'm looking for?"So unless this guys a programmer he should probably just try to adapt what's already in hal, which seems feasible."
Please Log in or Create an account to join the conversation.
Coordinated motion is always limited by the slowest axis or it wouldn't work at all so of course the Y is compensated.But... what is happening when the max-velocity is changing for the X-axis, does Linuxcnc compensate that on the Y-axis?
Please Log in or Create an account to join the conversation.
You're trying to do something that not many people do so expecting to have some simple premade setup isn't really reasonable.Calysto post=285800 userid=37035
I was hoping there would me something like all kinds of compensations that already build in linuxcnc. Just a file with three columns, one for axis, one for current position, one for maximum speed.
Coordinated motion is always limited by the slowest axis or it wouldn't work at all so of course the Y is compensated.Calysto post=285800 userid=37035
But... what is happening when the max-velocity is changing for the X-axis, does Linuxcnc compensate that on the Y-axis?
Please Log in or Create an account to join the conversation.
Like I said, try feeding the motion adaptive feed with lincurve
"So unless this guys a programmer he should probably just try to adapt what's already in hal, which seems feasible."
Is there something possible that looks like I'm looking for?
Please Log in or Create an account to join the conversation.
Sorry... I have now idea how to do that... I think I will leave it this way, it's not that important. Thank you all for your good answers!
Like I said, try feeding the motion adaptive feed with lincurve
Please Log in or Create an account to join the conversation.