T
When it comes to specmanship, the frequency with which the servo is updated ranks high among those specifications that are not well understood. Is 2 milliseconds OK? What advantage is there in going to 200 microseconds or 20 microseconds? First, we must be clear on what is being updated. Is it the position command, the position feedback, the position loop, the velocity loop or the current (which equates to torque) loop? Let’s start by talking about the position command. There are a variety of algorithms used within the control to generate a path for each axis. These algorithms can be linear/circular interpolation, leader/follower, cam following, registration, etc. The result of these calculations is that each axis command register gets a new number every time the calculation is made. If one were to plot the position of the command register for one of these axes as a function of time, it would look like a flight of stairs where the height of the step is the distance that axis must move in one update period. As an example, if the update time for that calculation is one millisecond and the axis is being commanded at 600 inches per minute (IPM), this becomes 10 inches per second or .01 inches every millisecond. The riser on the staircase will be .01 inches and the run will be one millisecond. The ideal servo command would be the straight line generated if the update time became infinitesimally small. The disturbance from the ideal servo command is a saw tooth wave with a height of .01 inches and a frequency of 1000 Hertz. How will the servo react to this command disturbance? For the majority of industrial machinery, the servo bandwidth will be in the range of 2 to 10 Hertz. The highest bandwidth would be most apt to respond to this disturbance, so let’s consider a 10 Hertz bandwidth. Once the bandwidth of a servo is exceeded, the output rolls off at a 40 DB per decade rate or a ratio of 100 to 1 for each decade increase in frequency. Since the 1000 Hertz disturbance is two decades from the bandwidth, the roll off will be 10,000 to 1. This would reduce a .01 inch disturbance to .000001 inches or 1 micro-inch. Hardly a problem. Unless you are dealing with some extremely high velocities and some pretty hot servos, it appears that a 1 millisecond update suffices for command generation. There is one caveat, however. If you are using the command register to trigger some event, be sure the 1 millisecond delay is not of consequence. It is usually advisable to trigger events off the actual feedback as will be discussed next. When using encoders as the feedback device, the position feedback register is updated every time a pulse comes along, so it stays in sync with the actual machine position. When using resolvers, most digitizing techniques update the feedback register once per carrier frequency cycle. Thus if the analog sine wave used to drive the resolver is 1 Kilohertz, the feedback register will be upgraded once per millisecond. This is why most suppliers are using carrier frequencies in the 2,000 to 10,000 Hertz range now days. This assures updates in the 500 to 100 microsecond arena. There are some resolver-to-digital (R/D) converters that employ techniques to overcome this problem. Also when triggering events off the position, don’t forget that there will be a servo error unless feedforward techniques or PID is used. Also, since these features are sometimes switched in and out, it is safer to simply trigger events off the feedback, rather than the command. How often the servo loop itself is updated is another concern. And, there are three loops to worry about. Updating a loop means subtracting the feedback from the command to generate the error and manipulating that error with digital or analog lead/lag filters, PID, notch filters, feedforward, or any other loop feature that may be available. There has been a rough rule of thumb that the update rate of a servo loop should be at least 10 times the bandwidth. For a position loop with a 10 Hertz bandwidth, this suggest an update frequency of 100/second or 10 milliseconds per update. For a velocity loop with a 100 Hertz bandwidth, the update would be every one millisecond. For a current loop bandwidth of 1,000 Hertz, the update time would be 100 microseconds. This helps explain why the PWM chopping frequencies are often in the 10 Kilohertz range for those who are doing the current loop digitally. It also explains why many are doing the current loop in an analog fashion due to the high burden on the computer time when the loop has to be served 10,000 times per second. Usually, in the specification, only one update time is given. That number usually means the time elapsed between position loop closure calculations. And, with today’s technology, it is not hard to achieve 1 millisecond, which most vendors are meeting or beating. With industrial machinery, this is adequate, especially if the current (torque) loop is analog. Those vendors who are in the 100 microsecond arena are either playing the specmanship game or are doing the current loop digitally (or maybe a bit of both). As computers continue to get faster, the update times will get shorter and shorter, but it will be hard to see any further significant changes in servo performance with industrial machines. Tom can be reached at Industrial Controls Consulting, a division of Bull’s Eye Marketing, Inc. See them at www.bullseyenet.com, or phone (920) 929-6544 or email: [email protected].