BRX High Speed PID Application

Recently, InterConnectng Automaton Inc. was contacted by a customer who had a unique situaton. He had an applicaton that involved using a servo motor to drive an air compressor motor. This air Compressor then ran an air motor with an encoder to a setpoint speed. The customer utlized our One-on-One services to help pick a controller, and program the controller.

The frst step in this process was to choose a controller. The main IO requirements were to allow high speed inputs for the feedback encoder, and to allow for pulse output for the servo drive. In additon to that, it needed to run a few discrete inputs and a few discrete outputs. Afer adding all of the IO requirements up, it was determined that the BRX 18pt series would ft the requirement perfectly. This PLC had built in High Speed IO and allowed for the additonal IO requirements.

The BRX 18pt series PLC

In short, the Operator of this machine has a selector switch that selects the desired output RPM for the air motor shaf. The PLC would take that setpoint and control a pulsed output from 10Hz-250kHz that drove the main servo motor. The air motor shaf feedback encoder would give us the feedback of where the actual speed was. Finally, when the process was within 1% of setpoint a light would turn green, if it was outside those bounds the light would be red.

Block Diagram of the Closed Loop PID Control used to implement this BRX Controlled System

There were a few items that made this project challenging. The frst was that the Process Variable had delay in reaching setpoint but would behave diferently when it was at setpoint. The reason for this was because the air compressor took tme to build up enough pressure to spin the motor. With pure PID control, the Bias would wind up too much because of this delay, and this would cause overshoot that was too much. To counteract this, we enabled the PID loop when the Process Variable was near the setpoint, and tuned the loop for the behavior near setpoint. Once this was coded, the loop was accurately tuned.

The next challenge was smoothing the process variable. The Encoder had bounce in it that wasn't allowing us to tune the machine to the specifcaton that the customer wanted. To eliminate this, we utlized the frst order flter in the BRX to reduce unwanted noise and signals that afected the Processes variable.
Once the loop was tuned the machine was able to hold the process variable at +/-0.12 RPM (or 0.375% error) which was well within the customer specifcaton of 1% error on the process variable.