CNCzone.com-The Largest Machinist Community on the net!



Home Page Mark Forums Read Today's Posts My Replies Classifieds Reviews Photo Gallery Web Links Share Files Advertise With Us Ad List
Go Back   CNCzone.com-The Largest Machinist Community on the net! > Machine Controllers Software and Solutions > LinuxCNC (formerly EMC2)


LinuxCNC (formerly EMC2) Discuss LinuxCNC (formerly EMC2) Controlers here!


This forum is sponsored by:

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Ban this user!
Old 04-01-2005, 05:23 PM
Xerxes's Avatar  
Join Date: Sep 2004
Location: Finland
Posts: 1,148
Xerxes is on a distinguished road
Closed loop control with linear encoders

Hi!

Is it possible to get a real closed loop positioning with EMC using linear encoders? If yes, how?

How well this type of control works if there is any backlash in screws?

Thanks
Tweet this Post!Share on Facebook
Reply With Quote

  #2  
Old 04-13-2005, 02:21 PM
Al_The_Man's Avatar
Community Moderator
 
Join Date: Dec 2003
Location: Canada
Posts: 15,714
Al_The_Man is on a distinguished road
Buy me a Beer?

Check the video out called Dual Loop Compensation
http://www.galilmc.com/training/webconf.html
Al
__________________
“Logic will get you from A to B. Imagination will take you everywhere.”
Albert E.
(Note: The opinions expressed in this post are my own and are not necessarily those of CNCzone and its management)
Tweet this Post!Share on Facebook
Reply With Quote

  #3   Ban this user!
Old 04-13-2005, 06:40 PM
 
Join Date: Jul 2003
Location: north wales,u.k
Posts: 46
mmjpotter is on a distinguished road

EMC? what is it?
I use Linear Encoders to close the servo loop because they do eliminate backlash, and so do many CNC retrofits. However my system is running under DOS on a PC104 card. Should I be converting to EMC?
__________________
mike potter
Tweet this Post!Share on Facebook
Reply With Quote

  #4   Ban this user!
Old 04-14-2005, 01:37 PM
Xerxes's Avatar  
Join Date: Sep 2004
Location: Finland
Posts: 1,148
Xerxes is on a distinguished road

Thank you, Al_The_Man

The dual loop method is much like I believed it to be. But is it possible with EMC? Anybody seen configuration files?

mmjpotter: EMC is yet another CNC control software.
Tweet this Post!Share on Facebook
Reply With Quote

  #5  
Old 04-16-2005, 04:35 AM
*Registered*
 
Join Date: Apr 2004
Location: Norway
Posts: 678
ESjaavik is on a distinguished road

Originally Posted by mmjpotter
EMC? what is it?
I use Linear Encoders to close the servo loop because they do eliminate backlash, and so do many CNC retrofits.
There should not be any backlash between the encoder and the motor.

A linear encoder cannot eliminate backlash, it can compensate for it. But then the encoder used by the servo drive (the servo loop) must be on the motor (backlash free), and the linear encoder is there just to tell the controller how much backlash there is, so it can compensate for it. But what software do you have that can do this? In EMC there is backlash compensation, but it is just in a setup table, not dynamically.
Tweet this Post!Share on Facebook
Reply With Quote

Sponsored Links
  #6   Ban this user!
Old 04-17-2005, 10:29 AM
 
Join Date: Jul 2003
Location: north wales,u.k
Posts: 46
mmjpotter is on a distinguished road

Hi ESjaavik

If an encoder is being used to control the speed of the motor, then I agree with you, it should be connected to the rear shaft of the motor with zero backlash. I use a tacho for this purpose. I use linear encoders for positional feedback. I will try to explain how my system uses these signals. I have a free running DC motor with a tacho driving a cold rolled ballscrew (40 microns backlash approx) via a timing belt and pulleys. The linear encoder is attached to the slide, thus maintaining accurate positioning of the slide. When the slide is in position, a zero voltage is applied the motor because no rotation is required. If the slide is physically moved out of position by 1 encoder pulse (0.01mm) the system will produce an error signal and a proportional voltage will be sent to the motor to initiate rotation in the direction to correct the error. The initial motor speed will be very slow and with little power, enough power to remove any free backlash but not enough to pull the slide. If the error persists the system will increase motor speed and power until there is sufficient power to correct the error but not to much power to overshoot and cause oscillation. The motors on any axis with backlash are continuously hunting for position but this is under controlled and stable conditions and is not detrimental to the machine’s mechanics or electronics, it is NOT unstable violent motor oscillation.

This system does require a real time operating system and I decided to develop my software for DOS, but I believe that EMC has real time capabilities and I would be very interested to here your comments and reasons for choosing Linux/EMC . My source code is in ‘C’ and the real time interrupt routine is 80x86 assembly code . I don’t know if these will compile for Linux.
__________________
mike potter
Tweet this Post!Share on Facebook
Reply With Quote

  #7  
Old 04-17-2005, 07:52 PM
*Registered*
 
Join Date: Apr 2004
Location: Norway
Posts: 678
ESjaavik is on a distinguished road

Originally Posted by mmjpotter
If an encoder is being used to control the speed of the motor, then I agree with you, it should be connected to the rear shaft of the motor with zero backlash. I use a tacho for this purpose.
Usually the encoders are used as feedback both to the speed loop and the position loop. Since it seems you do your own driver software this may not be true. Are you using separate feedbacks?

The motors on any axis with backlash are continuously hunting for position but this is under controlled and stable conditions and is not detrimental to the machine’s mechanics or electronics, it is NOT unstable violent motor oscillation.
Is this because you set the PID parameters to "calm it down"? If so, does it not then gouge your part on pocketing square corners? (Sudden setpoint changes)
Or can you use feedforward to avoid it?

. My source code is in ‘C’ and the real time interrupt routine is 80x86 assembly code . I don’t know if these will compile for Linux.
Not without a lot of rewriting in the RT part. The principles seems quite similar to the old DOS way of "stealing interrupts" though. I don't have any experience in RTAI other than browsing docs and code. My RT experience is with OS9/68K.

But Linux have one big advantage over DOS, it's on the rise and not dying. So I try to forget DOS. And I prefer having my fingernails pulled over doing 80 assembly!

Anyway I suggest you look at EMC. The source is open if you want to do something odd. And if you made a system that can make parts using your own code, you might find it a nice environment to focus on what you do best and benefit from the work of others with a different background.
Tweet this Post!Share on Facebook
Reply With Quote

  #8   Ban this user!
Old 04-18-2005, 06:54 AM
 
Join Date: Jul 2003
Location: north wales,u.k
Posts: 46
mmjpotter is on a distinguished road

Thanks ESjaavik. Linux/EMC sounds like a good alternative RT system, but I still do not understand why backlash is a problem when using linear encoders.

I still think DOS has a future with the PC104 range of products.

As for my DOS system I don’t try to ‘calm down’ the PID loop but the parameters are set to maintain stability.
Inputs to the loop are two +/- 10 volt analogue signals, 1 from the motor tacho, the speed input ,and 1 from the computer, the position input.

Feedforward is not implemented but the system ‘looks ahead’ (to avoid SUDDEN setpoint changes) and the speed is adjusted depending on the angle of the next move. If the next move angle is 180 deg. then full speed is maintained, a 90 deg move requires the machine to ramp down to zero before implementing the next move thus avoiding any overshoot.
__________________
mike potter
Tweet this Post!Share on Facebook
Reply With Quote

  #9  
Old 04-19-2005, 11:26 AM
*Registered*
 
Join Date: Apr 2004
Location: Norway
Posts: 678
ESjaavik is on a distinguished road

Originally Posted by mmjpotter
Thanks ESjaavik. Linux/EMC sounds like a good alternative RT system, but I still do not understand why backlash is a problem when using linear encoders.
It's because the torque requirement is very non-linear and the feedback is delayed. While running out the backlash the torque requirement is almost zero, then suddenly increasing when is has caught up. The feedback is none until the backlash is taken up. You have an unloaded motor in the backlash region. It has nothing to do with linear encoders, but the fact that the encoder "sits at the other side of the backlash".

If you have ever tried to drive a 50 year old bus with worn steering knuckles and spring shackles you can probably relate to what the servo drive has to cope with. I have tried it. Maybe that's why I could relate to it when I found it explained.
Tweet this Post!Share on Facebook
Reply With Quote

  #10   Ban this user!
Old 04-20-2005, 06:16 AM
 
Join Date: Jul 2003
Location: north wales,u.k
Posts: 46
mmjpotter is on a distinguished road

During a machining cycle the torque requirements can vary considerably due to changes in feed rates, depths of cut, material hardness, cutter speed etc. Surely the purpose of a servo system is to control these non-linear torque requirements. Running out a bit of backlash seems like a rather trivial task, and I agree that these torque requirements have nothing to do with encoders, linear or rotary.

Does anybody agree with the following:-

A: That linear encoders return actual slide movements regardless of backlash.

B: A DC servo can maintain a constant speed/torque under varying loads.

C: If the linear encoder is replaced by 2 micro-switches or limit switches, the motor will drive the slide to the limits regardless of backlash.

D: When a slide with backlash is driven by a stepper motor, 2000 pulses in one direction may not equate to the same distance for 2000 pulses in the opposite direction. If a linear encoder is fitted to the slide and the motor is driven by a CONTINUOUS train of pulses, then counting 2000 encoder pulses in any direction will equate to the same distance thus eliminating the backlash.
__________________
mike potter
Tweet this Post!Share on Facebook
Reply With Quote

Sponsored Links
  #11  
Old 04-20-2005, 07:42 AM
Gold Member
 
Join Date: Dec 2004
Location: Newtown, CT, USA
Age: 67
Posts: 511
lerman is on a distinguished road

Originally Posted by mmjpotter
During a machining cycle the torque requirements can vary considerably due to changes in feed rates, depths of cut, material hardness, cutter speed etc. Surely the purpose of a servo system is to control these non-linear torque requirements. Running out a bit of backlash seems like a rather trivial task, and I agree that these torque requirements have nothing to do with encoders, linear or rotary.

Does anybody agree with the following:-

A: That linear encoders return actual slide movements regardless of backlash.
Assuming they are mounted on the slide -- YES.

Originally Posted by mmjpotter
B: A DC servo can maintain a constant speed/torque under varying loads.
NO. -- They can maintain a more constant speed OR torque under varying loads. That's more constant than a system without feedback. The systems we are referring to do not measure the torque, so we're not really talking about maintaining a constant torque.

Originally Posted by mmjpotter
C: If the linear encoder is replaced by 2 micro-switches or limit switches, the motor will drive the slide to the limits regardless of backlash.
One could design a system to do that.

Originally Posted by mmjpotter
D: When a slide with backlash is driven by a stepper motor, 2000 pulses in one direction may not equate to the same distance for 2000 pulses in the opposite direction. If a linear encoder is fitted to the slide and the motor is driven by a CONTINUOUS train of pulses, then counting 2000 encoder pulses in any direction will equate to the same distance thus eliminating the backlash.
In response to the first sentence, it depends. If you mean that applying 2000 pulses in one direction, followed by 2000 pulses in the opposite direction, then, in general, the slide will not wind up in the same position. If one counts encoder pulses, the slide will wind up in the same position.

But you are using steppers in one case and servos in the other. If you move slowly enough that you have zero overshoot, you are correct. But you might not wind up with a useful system. It depends on your application.

Ken
__________________
Kenneth Lerman
55 Main Street
Newtown, CT 06470
Tweet this Post!Share on Facebook
Reply With Quote

  #12   Ban this user!
Old 05-26-2005, 06:37 PM
 
Join Date: Aug 2004
Location: Greece
Posts: 145
CNCgr is on a distinguished road

Can EMC use absolute encloders or only incremental?
Tweet this Post!Share on Facebook
Reply With Quote

Reply




Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is On
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
Open & closed loop totsandman Benchtop Machines 3 05-07-2005 09:49 AM
How Should I Mount Linear Encoders? lerman General Metal Working Machines 6 01-13-2005 04:50 PM
Closed loop....open loop? DAB_Design General Electronics Discussion 10 06-26-2004 05:02 PM
Closed Loop Driver vs. Closed Loop Computer ojibberish Gecko Drives 3 06-08-2004 12:30 PM
closed loop georgebarr DIY-CNC Router Table Machines 9 06-01-2003 10:39 AM




All times are GMT -5. The time now is 12:13 AM.





Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2012, vBulletin Solutions, Inc.
Content Relevant URLs by vBSEO
Template-Modifications by TMS

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353