Here is an article on Jerk control
https://www.mmsonline.com/articles/u...g-jerk-control
Here is an article on Jerk control
https://www.mmsonline.com/articles/u...g-jerk-control
Mactec54
Hi Troy,
Here are the files plotted. We didn't get all the data for some reason on the last one, but there is enough.
Attachment 441344
Attachment 441346
Attachment 441348
Attachment 441350
Murry was correct the 150 puts the following errors in phase. That one doesn't look any smoother?
This is a somewhat weird configuration with the DMM drives closing the position loop and then KFLOP closing the position loop around the drives. Its hard to say if KFLOP is helping or hurting. I wish I would have included ch0->Output and ch1->Output in the data capture so we would be able to see what corrections KFLOP is making. You might also try running KFLOP open loop so only the DMM Drive is closing the loop.
Hi mactec54,
The Step resolution is 1/20325 = 4.92005E-05 inches (1.25um)What are the servo motors and encoder PPR
It looks like a normal finish of a low count ( PPR ) encoder machine,
Yes that is what we are plotting.The difference between the actual and command position is known as lag, following error or position error,
This is a straight line at constant commanded velocity. Jerk and Acceleration are zero so would have no effect.add in the jerk factor and you get what you are seeing in your finish
TK
http://dynomotion.com
Hi Tom,
The 150 is slightly smoother but nothing like the finish of a single axis cut.
Attached is a picture of closed loop at the Drives only. Even tho picture does not show it well,there is now a very visible pattern about every .100 to .125". Checking with a .0001" indicator as before, the high to low spots is easily .0008"You might also try running KFLOP open loop so only the DMM Drive is closing the loop.
With closed loop still at drives only , watching the encoder readout in KMCNC, X and Y are off by .0002-.0004" from what was commanded.
So i would say when KFLOP is in closed loop mode that it is doing what it can with the way the drives are in Step/Dir mode.
Next test will be in analog mode.
Troy
I cut some parts today with a flat bottom and an angled cut and though i would post pics of my results as a comparison. Im getting sort of the same thing but I think on a much smaller scale, its not really measurable. Just notice some slight variation in the finish instead of getting that perfect pattern on straight cuts. This is at 80 IPM, its even less noticable going slower and at lower rpm. This is zoomed in pretty close too, parts are 3/8" thick.
I guess this is most likely related to the tiny errors in servo position, but its probably going to be very difficult to get it absolutely perfect. The finish is so good on our VMCs in a straight line, its really easy to see every tiny error in interpolated cuts. Hopefully you will see some more improvement when you switch to analog mode, but just trying to say you may never get interpolated moves to look exactly like single axis moves.
Hi murray,
Totally agree on that.I would be happy with that finish you got, that looks typical to the level of VMCs we have. Will post my results when i get to analog mode. Also,Nice looking parts.
Thanks again,
Troy
So for testing analog mode i have configured Z axis, as it is the easiest motor and coupling to access and disconnect from ballscrew. This axis has also been the "roughest" sounding, more so in the plus direction, because of weight of head i believe. Using murrays settings as a base i got analog mode working. Then i connected servo coupling to ballscrew and even with a rough tuning the sound of axis is SO MUCH smoother and quieter! I mean night and day difference! :banana:
Attached is tuning i have so far. Got any suggestions as what i might change?
Thanks again,
Troy
Hi Troy,
Might be too early to celebrate The errors are still quite large. There is often a trade-off between smoothness and performance/accuracy.
Is the resolution still 20325 counts/inch?
It appears the Drive is operating in Torque/Current Mode as the command is roughly correlating to acceleration.
Here is a plot of Output vs Velocity for the forward motion:
Attachment 442310
There seems to be a lot of friction. To start the motion 500 DAC counts (or ~ 25% of full torque) is required to get any motion (see red circles). Then to maintain constant velocity (no acceleration) over 500 DAC counts are required (purple). And to stop no reverse torque is needed the friction provides enough braking. The reverse motion is similar so I believe it must be friction rather than gravity. The plot was taken when connected correct?
The required output is exceeding 1000 DAC counts to do the motion, but the Integrator is limited to 500 so it is being limited. Consider increasing the Integrator and Output limits. The Maximum Output is 2047.
You might set a small following error limit to disable whenever things go unstable.
There is a deadband of 2 counts. I prefer to turn that off (Range=0, Gain 1) until finished tuning.
Unfortunately we don't have the Filter settings that created those coefficients so hard to tell what those Filters are.
Then I'd suggest trying to increase P, then I to reduce errors as much as possible while still being smooth. The tune feed forwards.
TK
http://dynomotion.com
Hi Tom,
Yes.Is the resolution still 20325 counts/inch?
Correct.It appears the Drive is operating in Torque/Current Mode as the command is roughly correlating to acceleration.
The friction is from the Z axis being boxed ways not linear rails. And the Head is counter balanced by a weight that weighs less than the head so there is more weight on the spindle when machining. When rotating ball screw by hand there is a very noticeable difference when raising head, maybe twice that when lowering.
Correct.The plot was taken when connected correct?
Attached is new tuning. Sound of servo motor is still very smooth sounding and no where near the sound it makes when drive is in Step/Dir mode.
Thanks,
Troy
Hi Troy,
Hoping this works out better.
It does seem like there is some noise or quirk in the encoder position. Here is a zoom in:
Attachment 442334
Moving back and forth ~10 counts in a fraction of a millisecond isn't likely to be real. It doesn't seem to be there when moving slowly:
Attachment 442336
It might be a quirk of how the Drives work internally. I thought they use an absolute encoder? Maybe sample it at some rate and then output pulses at some rate then make a correction at the next sample time? Its probably at too high of a frequency to cause a problem. The servo and motors will not react to it but makes analysis a bit confusing.
TK
http://dynomotion.com
Hi Tom,
Would not surprise me if it was something the drive/encoder is doing. These encoders are incremental and they are the magnetic type. Only had one other experience with a cheaper magnetic type on a DC servo and the servo was noisy all the time. Went with same resolution in a disk type(UsDigital) and servo noise went away.
Here is some info from pdf on the encoders on my servos.
Currently have all 3 axis running in analog mode.Smooth and quiet. Still tuning them tho. Right now i am getting an overshoot of about .001" when rapid move comes to a stop. If i dont get these servos and drives to an acceptable performance then most likely will be looking for another set, maybe Deltas. Then i will just use these DMM servos to spin a fan in the shop or somethingThe DSN Series Rotary Encoders offers the highest level of performance to cost ratio through its industry leading design. Featuring industry first auto synchronization tuning, this virtually eliminates the strict mounting requirements of conventional rotary encoders. The control processor actively calibrates the algorithm parameters to perfectly compliment the reading of each hall sensor IC induced by the rotor magnetic field. Data from each sensor is interpolated to generate a best-point reading. Each encoder is always guaranteed to have the perfect mount and optimized performance.The magnetic sensor technology and a full enclosure attributes the DSN08 encoder with unparalleled immunity against environmental conditions. The contact-less sensing technology eliminate damage and reading error caused by shock and vibration.The hardware filtered supply voltage and ultra low inertia makes the DSN08 encoder a seamless sensor choice for any application.
Will post results of tuning when i get them as close as i can. Playing with different filters right now as it makes a very noticeable difference in accuracy and smoothness. Should be able to do my 45* test cut soon.
Thanks,
Troy
Looks like your making progress, good to hear its smoother and quieter! Hopefully its more accurate while cutting. Post a before and after video if you can. Curious about the noise you had while in step/dir mode.
I thought the encoders were absolute, and the drives output normal incremental encoder signals? Maybe there are different types of DMM encoders. Very disappointing to see that noisy output signal. Tom would this quick reversal mess up the whole tuning process? Confuse all the calculations going on in Kflop? I remember reading somewhere that a big advantage of higher resolution encoders was that the controller can detect changes in speed faster and control the servo better. If changes in speed are that important, kinda seems like that would cause a big problem? Or maybe its too small an amount to matter that much?
Now i got something that is strange. Whenever i do a .001" feed move , the axis actually moves .002" to .0025" . Is there something i have configured wrong for Analog mode? Or is tuning causing this? That said .... i wonder if the drive changed the Gearing when i changed it to Analog Torque mode....
Hi murray70,
Sounds like they are magnetic/hall sensors which would be an absolute method providing a few analog cycles per revolution which are then highly interpolated and output as incremental encoder signals. Also does some tricks to detect and reduce distortion, non-uniformity in the magnets and so forth. Possibly could be related to what you noticed and thought might be caused by the motor poles. But now I'm thinking it might be the encoder poles.I thought the encoders were absolute, and the drives output normal incremental encoder signals?
Hard for me to say. Good velocity measurement helps stabilize a servo. To measure velocity from a position sensor one must basically take the derivative by computing delta position/delta time. Taking the derivative of a noisy signal becomes even more noisy. But then if the noise is very high frequency passing it through a low pass filter will reduce it. It depends how high of frequency the noise is compared to the real oscillations that should be damped. You can see the Output (green) is not responding much to the high frequency in the error, but more to the lower frequency variations in the error.Tom would this quick reversal mess up the whole tuning process? Confuse all the calculations going on in Kflop? I remember reading somewhere that a big advantage of higher resolution encoders was that the controller can detect changes in speed faster and control the servo better. If changes in speed are that important, kinda seems like that would cause a big problem? Or maybe its too small an amount to matter that much?
TK
http://dynomotion.com
Hi Troy,
I wouldn't expect it to be tuning. Did you change the Input gain? What if you do a large move? You might do a move of that size on the Step Response Screen.Now i got something that is strange. Whenever i do a .001" feed move , the axis actually moves .002" to .0025" . Is there something i have configured wrong for Analog mode? Or is tuning causing this?
TK
http://dynomotion.com
Hi Tom,
Gearing is still the same in drive. The Input gain is still 1 from where it was before. Should it be something else? I did a feed move of .950" (gage block width) and measured movement was on size. How?
Im guessing your finding some kind of small error in a combination of backlash and/or friction (stick/slip).
Hi Murray,
Never had this issue when using Step/Dir mode.
Sorry, it is a absolute 16bit single turn encoder. Quoted wrong pdf.
Could something be tighter then before? Are you in a different part of the travel then before? Worn part of ballscews? Long way from thrust bearing making ballscrew act like spring which would make stick/slip more noticeable?
Wonder if it could be the low integrator limit? Maybe its not quite high enough to get you into the exact position, and then when you send it another 0.001 it moves the 0.001 plus previous error? Might be long shot but could be worth trying. I didnt run the math on counts etc, maybe the error im thinking about would be way smaller then a thou and not really noticable.