|
MEI Interpolation Technique
The MEI Scale Interpolation Module is a plug in option for MEI's XMP motion controllers that provides for resolution enhancement of sinusoidal scales. The sinusoidal encoder signals are connected to the XMP encoder inputs, and are then internally routed to the Scale Interpolation Module through mezzanine connectors. On the Module, the sinusoidal encoder signals are routed simultaneously to both an A/D converter and a comparator. The comparator serves to convert the encoder signals to pulses, as in Fig. 1, and the A/D converter provides the information for the interpolation function. The interpolation logic is handled by the dedicated on-board FPGA. This interpolation technique produces very high resolution position data, a factor of 1024 times the quadrature resolution. Moreover, the MEI interpolation module operates at the full servo rate of the XMP.
Fig. 2 shows the logic flow of the interpolation technique. The A and B pulse signals are counted, yielding 4 counts per each sinusoidal cycle of the encoder. This provides the coarse position, or the position that would be obtained without interpolation. The A and B sinusoidal encoder signals are sampled by 12 bit A/D's. The actual sine wave amplitude is a function of encoder mechanical alignment and is not known, but since both sine and cosine are sampled, the angular position within each cycle may be determined regardless of the amplitude, as long as the amplitude of the sine and cosine are the same. The angle of the sin/cos function at a particular point in the cycle corresponds to the interpolated position at that point. If the sin/cos amplitudes are not the same or if they have DC offsets, the Module can compensate. The interpolated position of each data point is determined by the relationship between the sine and cosine samples. Since mathematically one full sin/cos cycle must be sampled to uniquely determine each angle, the 4096 distinct amplitude values provided by the 12 bit A/D translate to 4096 distinct interpolated position values per full encoder cycle. Since there are 4 coarse counts per full cycle, the MEI scale interpolation module increases the position resolution by 4096/4=1024, as shown in Figure 1.
The actual interpolated position count is determined using the coarse count and the angle value as follows. A quadrature counter squares off the sine wave and counts the A and B signals as a series of pulses. This quadrature count is multiplied by 1024. The position between coarse counts is determined from the sampled sine/cosine waves. Because the angle is a function of the sin and cos values, the angle may be determined from a look-up table. Using a variety of trigonometric identities, only one quadrant (90 degrees) of look-up data need be stored. Thus when the sin/cos waves are sampled, the angle may be determined uniquely at that point in time. The angle is divided by 90 degrees and multiplied by 1024 to convert the angle to interpolated position count. The two results are added together to provide the total interpolated position count at each sampled location. Because a look-up table determines the actual interpolated count and the logic is implemented by an FPGA, there is no unnecessary overhead associated with MEI's interpolation. In fact, an interpolated count looks the same as a non-interpolated count to the XMP servo loop and MPI software. Interpolation using the Module does not affect the maximum sample/servo rate for the XMP controller. Unless the encoder is perfectly aligned mechanically, there will usually be some variation between the A and B signal amplitudes as well as some variation in the amplitudes over the travel of the system. Although these variations are typically small - they have to be or the system will not function - the accuracy of the interpolation is affected. MEI's Scale Interpolation Module supports compensation tables to account for these variations and for the presence of DC affects. The compensation information may be generated using all calibration methods provided with the SIM4 applications.
The Scale Interpolation Module is especially useful when combined with the XMP's powerful Position Capture and Position Compare features. For example, a Position Compare register can be loaded with a target position (using the fully interpolated position value) and then an output bit can be set to trigger a camera when the target position has been achieved.
The results of using MEI's Scale Interpolation Module can be very impressive. On a recent semiconductor project involving an air bearing stage, a very high resolution encoder was used, such that one fully interpolated count was equivalent to 0.5 nanometers. The XMP was able to servo the position of the stage such that position could be held to 10 counts, or 5 nanometers.
|
|
|