The process variable (motion stage or motor) can be an anything from a stepper motor to linear slide. For precision applications this often becomes a piezo flexure stage or voice coil motor (VCM). The amplifier drives the motor and can be a servo amplifier or high voltage amplifier for a piezo electric stage.
In this case the process (motion stage) feedback is an MTI capacitance probe connected to a Digital Accumeasure Amplifier that has Ethernet output. In our example the programmable motion controller will be an Intel Atom CPU with real time operating system software (RTOS) . RTOS was chosen to avoid the huge latency found in a typical Windows environment.
The motion controller accepts a commanded position, which then uses position feedback to ensure the motor stage goes to exactly where it’s commanded to within sub-micron precision.
In our application we will use the following block diagram (Fig 2.)
The loop controller shown in Figure 2is a real time operating system (RTOS) CPU in. Its primary function is to keep the measured process variable (PV) as close as possible to the command position set point (SP) at all times. When either a change in set point or process disturbance occurs, the controller must detect such changes, perform calculations based on these changes, and then issue a control output action (CO) that will bring the process and the current set point into correspondence.
The controller uses a traditional PID control loop (Figure 3). All inputs and outputs are digital, with the latter processed through a digital-to-analog converter. Without getting into the detail, the runtime code is modeled in Figure 4. Statements 1 and 2 correspond to the controller input (i.e., set point and process measurement updates), while statement 8 corresponds to the controller output (i.e., a function of the input and PID values). The controller uses Statements 3 through 7 to implement the PID controller function. Collectively, statements 1 through 8 constitute the control loop, and the time it takes to execute the control loop, that is, one control loop iteration, is referred to as the loop cycle processing time, T.
While a specific value for T is application dependent, in general it is desired that T be periodic to within some tolerance. Any variation in T from one iteration to another is known as jitter. The major sources of jitter are irregularities in the time needed to execute each statement of the control algorithm as well as the delays in receiving data over the Ethernet.
The runtime operation of our control algorithm relies on three tasks as shown in Figure 5. The IP task is responsible for Ethernet communications with the Digital Accumeasure, while the Dacc task is responsible for making the PV data available to the Motion Task. The Motion Task performs the calculations that determine the appropriate control output for each iteration. As we will show in the next section, the control loop cycle processing time realized for this controller was 500.