![]() | |
| Home Page | Mark Forums Read | Today's Posts | My Replies | Classifieds | Reviews | Photo Gallery | Web Links | Share Files | Advertise With Us | Ad List |
| |||||||
| Servo Motors and Drives Discuss servo motors, drivers and other related topics here. |
| This forum is sponsored by: |
![]() |
| | LinkBack | Thread Tools | Search this Thread | Display Modes |
|
#13
| |||
| |||
| Hi arvid The original question on this thread was about 'overshoot'. I was saying that a correctly tuned system should achieve the target position within +/- 1 encoder pulse. I agree that this is not a realistic following error and as you suggest a 10-20 pulse following error would provide good rigidity. The sample rate or time constant I am talking about is the time interval at which the computer monitors the progress of the move. If an axis is ask to move at 2000mm/min with a resolution of 1 micron, and we monitor the position every millisecond then the following error will be 33/34 pulses/msec. The output signal voltage is adjusted to maintain this rate of encoder feedback and the axis velocity and positon is stable.
__________________ mike potter |
|
#14
| |||
| |||
| I think I understand what you're saying. I also agree that the steady-state error of the system should be practically zero (+/-1 count, as you say). That is, if an I term is used in the controller. I'm not so sure I agree that the following error can be determined from the sample rate. As you say, in the example you gave the error might build up to 33-34 counts, worst case, during the first ms of the move. Then it will probably build up some more before the motor react to the new control signal generated by the controller. With a pure P controller this following error should then stay more or less constant during the move - I think this is what you're saying? But wouldn't most controllers use a PID controller? Here the I term should quickly reduce the following error to zero during the move. It will also contribute to some overshoot at the end of the move. This is how I understand PID controllers; if it's incorrect I'd be happy for a correction. Arvid |
|
#15
| |||
| |||
| arvid I'm sure your understanding and knowledge of PID controllers is correct. I must emphasise that the system I am describing is only my attempt to implement the PID loop. In my system the 'I' term is applied from a motor tachometer feedback and as you have pointed out when the motor is revolving at the required speed this feedback will balance out the following error signal.This does seem to work quite well on my machine but I have been unable to find a way of adding the 'D' term. All ideas welcome but I'm not sure what response from the system I should be looking for!
__________________ mike potter |
| Sponsored Links |
|
#16
| |||
| |||
| I'm very new to these things myself. Maybe my last post sounded a bit harsh? English is not my native language so that's why if it was so. You don't have only the tachometer feedback, do you? Would be pretty hard to determine position accurately based on that? Tell us more about your controller and system: digital/analogue, encoder, ...? I seem to remember talking to you about this before in another thread, but can't remember which one. I think the D is used primarily to stabilise the system. If you have too much P or I, so that the system becomes unstable, the D term can save the situation. Arvid |
|
#17
| |||
| |||
| Arvid I don't think your comments are harsh, and I conqratulate you on your english it's probably better than mine. I am making details of my controller available on my website www.3dmotioncontrol.com and I invite you to take a look. I don't want to hijack this thread with all my own information.
__________________ mike potter |
|
#18
| |||
| |||
| @arvid: I assume the position loop is outermost, using a position coder of some kind to determine the actual position. It finds the speed necessary to go there and passes it one layer down to the speed loop. The speed loop can use a tachometer to measure the actual speed. Then it finds the torque necessary to attain that speed, and passes it down to the torque loop. The torque loop can use the current to measure the actual torque. The speed loop can also use other methods to find the actual speed, for example the position encoder. But a tachometer may simplify the electronics, and it can measure low speeds. A digital position encoder have a problem measuring speeds when approaching one count per sample. I guess that's where the resolver performs better as it is analog. @mmjPotter: I think this thread was already hijacked. ![]() D is the rate that the error changes. Or the difference between this sample and the previous, divided by cycle time. You can find a good example in the source of LinuxEMC. Look for src/emcmot/pid.c where you might be able to find what you are looking for. If you choose a big motor/amplifier, P will do most of the work. There is only one thing that beats torque, and that is more torque. |
![]() |
| Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
| Thread Tools | Search this Thread |
| Display Modes | |
| |
Similar Threads | ||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| Small servo systems and power supply | imserv | Product Announcements & Manufacturer News | 4 | 04-03-2008 11:11 AM |
| Using surplus servo motors as spindle drive | Swede | Servo Motors and Drives | 11 | 03-16-2008 08:05 AM |
| Servo Motor Running away. | murphy625 | CamSoft Products | 38 | 02-27-2005 01:08 PM |
| 2nd Generation DeskCNC servo driver released | imserv | Product Announcements & Manufacturer News | 0 | 11-24-2004 06:22 PM |
| steppers or servo drives | mmjpotter | Gecko Drives | 14 | 03-30-2004 02:56 PM |