Bridgeport Interact Refit
25 Jan 2016 04:48 #69080
by csbrady
Replied by csbrady on topic Bridgeport Interact Refit
Installment #4 - Installation
Installing the new controller went fairly smoothly. I did lots of bench testing of the GUI and my HAL and found most of the bugs (there were plenty of them) before tearing into the machine. Since this was a working machine I wanted to minimize the downtime. Plus it's much colder in the Garage! The biggest hitch was removing a divider plate in the pendant that was securely welded in place.
I retained almost all of the original wiring and it was fairly easy to map connections from the original TNC151 to the new controller. I only needed to add new wires to the VFD and the new control panel. I took the time to create a detailed wire map to document each connection. This made the install easier and clearly documents the changes for future reference.
The effort doing bench testing and wire map paid off and I had only a small number of problem to sort out. The biggest problem was a documentation error that resulted in incorrect settings in the EXE602 interpolation boxes.
Installing the new controller went fairly smoothly. I did lots of bench testing of the GUI and my HAL and found most of the bugs (there were plenty of them) before tearing into the machine. Since this was a working machine I wanted to minimize the downtime. Plus it's much colder in the Garage! The biggest hitch was removing a divider plate in the pendant that was securely welded in place.
I retained almost all of the original wiring and it was fairly easy to map connections from the original TNC151 to the new controller. I only needed to add new wires to the VFD and the new control panel. I took the time to create a detailed wire map to document each connection. This made the install easier and clearly documents the changes for future reference.
The effort doing bench testing and wire map paid off and I had only a small number of problem to sort out. The biggest problem was a documentation error that resulted in incorrect settings in the EXE602 interpolation boxes.
Please Log in or Create an account to join the conversation.
29 Feb 2016 04:10 #70792
by csbrady
Replied by csbrady on topic Bridgeport Interact Refit
Installment #5 - Servo Tuning
I spent a lot of time tuning the servos. It was a steep learning curve to really understand what each of the parameters do but eventually I got the hang of it. Halscope is a really slick tool! There are plenty of good tutorials and threads on-line that layout the process and I have little to add. Here are a few suggestions that might be helpful.
1) Take your time and make notes. It is surprising how easy it is to confuse the details and end up going down the wrong path.
2) Tune using back to back plus and minus moves. With both directions shown it is much easier to tune FF1 and Bias.
3) Tune at lower velocities. I started using 40 IPM figuring that higher speed would make errors easier to see. But when I re-visited tuning using 10 IPM, there were some clear problems that were masked 40 IPM. I found that I could see the effect of much smaller parameter changes at lower speeds. In particular the effect of FF1 was clearer.
3) Make two or more tuning passes. I not sure why but found that coming back later I was able to get better results. I would iterate until I was essentially stuck, figuring this was as good as it gets. Then a day or two later I would repeat the process and find some fairly good optimizations. Maybe it's just weirdness about how my brain works.
There are a couple parameters that took me a long time to sort out that I am still looking at.
MAX_ACCELERATION - The default for this was set at 20 and this ended up being way to high for my machine. Movement was jerky and the servos made nasty sounds at the start and stop of motion. Halscope showed large oscillations at the start and stop of motion that I could not tune out. The cruse in between looked fine.
I did some searching and found the following thread where another Bridgeport Interact owner was seeing a similar problem.
forum.linuxcnc.org/forum/49-basic-config...ervo-tuning?start=10
The problem is that there is a roughly 6ms delay somewhere in the servo system that causes following errors because the actual motion is delayed from the commanded motion. I confirmed that my Interact mill has the identical issue. In fact my Halscope traces looked remarkably similar. There was no resolution in the thread so I assume that this is simply an artifact of the machine. I would love to hear otherwise. I could not find any information about what typical settings are for MAX_ACCELERATION but determined that settings between 3 and 9 work well with my machine. With a setting of 3 the machine is noticeably sluggish but I saw a big reduction in the following error spikes.
Being a little anal I decided to create an accurate profile of following errors with different acceleration values. I processed the Halscope logfiles of some back and forth movement and came up with the following chart:
Note the strong max following error correlation with acceleration values of 3, 6 and 9. For this analysis I tossed out all of the following errors below 0.00001. The average and mean values are fairly flat indicating the accelartion is only effecting the start/stop oscillations as expected.
Another interesting chart shows the time to complete the movement sequence:
Note that with acceleration values of 6 and 9 the time to completions is essentailly identical. However, with a value of 3 the time greatly increases. This indicates that acceleration values above 6 will have little if any impact on speed. I added an option to my customized gscreen preferences tab for adjusting the acceleration value on the fly.That way I can easily choose between accuracy and speed.
I am a discouraged by these results. Since the delay that is responsible for the errors is apparently in the servo system the machine accuracy should be no worse than the original. I would love to hear suggestions about how to improve on this. Also I am curious about what sort of results others are getting. A following error of more than 0.001 seems high but may be more typical than I think.
I spent a lot of time tuning the servos. It was a steep learning curve to really understand what each of the parameters do but eventually I got the hang of it. Halscope is a really slick tool! There are plenty of good tutorials and threads on-line that layout the process and I have little to add. Here are a few suggestions that might be helpful.
1) Take your time and make notes. It is surprising how easy it is to confuse the details and end up going down the wrong path.
2) Tune using back to back plus and minus moves. With both directions shown it is much easier to tune FF1 and Bias.
3) Tune at lower velocities. I started using 40 IPM figuring that higher speed would make errors easier to see. But when I re-visited tuning using 10 IPM, there were some clear problems that were masked 40 IPM. I found that I could see the effect of much smaller parameter changes at lower speeds. In particular the effect of FF1 was clearer.
3) Make two or more tuning passes. I not sure why but found that coming back later I was able to get better results. I would iterate until I was essentially stuck, figuring this was as good as it gets. Then a day or two later I would repeat the process and find some fairly good optimizations. Maybe it's just weirdness about how my brain works.
There are a couple parameters that took me a long time to sort out that I am still looking at.
MAX_ACCELERATION - The default for this was set at 20 and this ended up being way to high for my machine. Movement was jerky and the servos made nasty sounds at the start and stop of motion. Halscope showed large oscillations at the start and stop of motion that I could not tune out. The cruse in between looked fine.
I did some searching and found the following thread where another Bridgeport Interact owner was seeing a similar problem.
forum.linuxcnc.org/forum/49-basic-config...ervo-tuning?start=10
The problem is that there is a roughly 6ms delay somewhere in the servo system that causes following errors because the actual motion is delayed from the commanded motion. I confirmed that my Interact mill has the identical issue. In fact my Halscope traces looked remarkably similar. There was no resolution in the thread so I assume that this is simply an artifact of the machine. I would love to hear otherwise. I could not find any information about what typical settings are for MAX_ACCELERATION but determined that settings between 3 and 9 work well with my machine. With a setting of 3 the machine is noticeably sluggish but I saw a big reduction in the following error spikes.
Being a little anal I decided to create an accurate profile of following errors with different acceleration values. I processed the Halscope logfiles of some back and forth movement and came up with the following chart:
Note the strong max following error correlation with acceleration values of 3, 6 and 9. For this analysis I tossed out all of the following errors below 0.00001. The average and mean values are fairly flat indicating the accelartion is only effecting the start/stop oscillations as expected.
Another interesting chart shows the time to complete the movement sequence:
Note that with acceleration values of 6 and 9 the time to completions is essentailly identical. However, with a value of 3 the time greatly increases. This indicates that acceleration values above 6 will have little if any impact on speed. I added an option to my customized gscreen preferences tab for adjusting the acceleration value on the fly.That way I can easily choose between accuracy and speed.
I am a discouraged by these results. Since the delay that is responsible for the errors is apparently in the servo system the machine accuracy should be no worse than the original. I would love to hear suggestions about how to improve on this. Also I am curious about what sort of results others are getting. A following error of more than 0.001 seems high but may be more typical than I think.
Please Log in or Create an account to join the conversation.
29 Feb 2016 10:22 #70800
by andypugh
What is your following error at typical feed speeds? That is much more relevant to part accuracy than F-error during rapids.
Not many milled parts demand tolerances better than 0.001" in practice. And things like hole centre distances are likely to be much more accurate than that because the XY axes are stationary and well settled when the cut is made.
Replied by andypugh on topic Bridgeport Interact Refit
I am a discouraged by these results. Since the delay that is responsible for the errors is apparently in the servo system the machine accuracy should be no worse than the original. I would love to hear suggestions about how to improve on this. Also I am curious about what sort of results others are getting. A following error of more than 0.001 seems high but may be more typical than I think.
What is your following error at typical feed speeds? That is much more relevant to part accuracy than F-error during rapids.
Not many milled parts demand tolerances better than 0.001" in practice. And things like hole centre distances are likely to be much more accurate than that because the XY axes are stationary and well settled when the cut is made.
Please Log in or Create an account to join the conversation.
01 Mar 2016 01:59 #70841
by csbrady
Replied by csbrady on topic Bridgeport Interact Refit
The charts are for 20 IPS and there are no rapids in the sequence so what I am showing is at typical feed rates. It is interesting that the accuracy is slightly worse at 10 IPS and quite a bit worse at 40 IPS.
Please Log in or Create an account to join the conversation.
25 Mar 2016 23:22 - 25 Mar 2016 23:24 #72162
by csbrady
Replied by csbrady on topic Bridgeport Interact Refit
I did some follow up analysis about my servo accuracy and have some new information. A big duh for me was realizing that following error is only loosely correlated with machine accuracy. Following error is only about how well actual velocity follows commanded velocity and is not position error. Kind of obvious, but I didn't connect the dots. If you are moving in a straight line this has no accuracy impact at all. I took some time to measure the accuracy of actual position and created some plots. The first two plots show the position at the begin and end of straight line movement.
As you can see the acceleration line is a little crooked due to following error, but is monotonic and has no impact on accuracy. The cutter is moving in a straight line and only the timing of the move is off.
With the end of motion the position is more erratic and even reverses direction. Not what we want, but the movement does not overshoot so accuracy of the machined surface would not be affected. Note that the scale is 0.0005".
Since these errors are in the time domain it will impact the accuracy of any movement that overlaps with motion in another axis. For example cutting an angle will end up with a tiny wiggle at the begin and end of movement. Also circles and arcs will be slightly affected. However, since the movement through most of an arc is a gentle transition rather than a full stop the error should be tiny. It's the abrupt start and stop where my servos misbehave.
After too much hang wringing, my conclusion is that the following errors I observed have a trivial if any impact on actual machine accuracy. It is likely that physical inaccuracies swamp these small servo errors.
As you can see the acceleration line is a little crooked due to following error, but is monotonic and has no impact on accuracy. The cutter is moving in a straight line and only the timing of the move is off.
With the end of motion the position is more erratic and even reverses direction. Not what we want, but the movement does not overshoot so accuracy of the machined surface would not be affected. Note that the scale is 0.0005".
Since these errors are in the time domain it will impact the accuracy of any movement that overlaps with motion in another axis. For example cutting an angle will end up with a tiny wiggle at the begin and end of movement. Also circles and arcs will be slightly affected. However, since the movement through most of an arc is a gentle transition rather than a full stop the error should be tiny. It's the abrupt start and stop where my servos misbehave.
After too much hang wringing, my conclusion is that the following errors I observed have a trivial if any impact on actual machine accuracy. It is likely that physical inaccuracies swamp these small servo errors.
Last edit: 25 Mar 2016 23:24 by csbrady.
Please Log in or Create an account to join the conversation.
Moderators: piasdom
Time to create page: 0.542 seconds