*As Featured on NI.com
Original Authors: Stijn Schacht, Test & Measurement Solutions
Edited by Cyth Systems
The Challenge Lifting 20-metric-ton unbalanced trays containing uncured concrete more than 6 meters, using 4 hydraulic cylinders while maintaining a strict accuracy of two millimeters.
The Solution Implementing a custom control algorithm in CompactRIO to control the four hydraulic cylinders to move the unbalanced load.
Custom Hydraulics and Hydraulic Control
At Test & Measurement Solutions, we specialize in custom industrial hydraulics. We manufacture a series of custom and special cylinders including large hydraulic cylinders with strokes of up to 8 m in length and cylinders with bores with internal diameters of up to 700 mm.
Recently, customers started to request complete mechanical control of these custom hydraulic systems. For this reason, we wanted to further develop our expertise in precision positioning and control systems.
For relatively simple hydraulic systems, such as systems where one or two cylinders need to be controlled, custom control mechanisms can usually be developed using off-the-shelf controllers and programmable logic controllers (PLCs). Communication with these systems is typically established with industrial field buses and digital I/O lines.
To control more complex machines, however, we apply NI CompactRIO. These systems are useful for applications that need additional custom requirements, such as precise position control over the whole stroke, or high velocity and synchronized motion of multiple cylinders. While adding these requirements to off-the-shelf PID controllers is usually not possible, CompactRIO provided a rugged and reliable industrial solution for custom control.
A Heavy Task
Our customer manufactures prefab concrete slabs, which need to be dried for 24 hours before they can be taken out of their trays and stored vertically. To save space in the factory, a storage system was built that includes 10 shelves positioned around a central elevator. The concrete at this point is still fluid and needs to be stored perfectly horizontally.
Each filled tray weighs 20 tons (12m x 2.5 m size; 10 cm thick prefab concrete, 10 tons, on a 10-ton steel tray). To store on the shelf, the tray needs to be lifted to an equal height as the shelf and then moved onto it.
For lifting this much weight, we use 4 hydraulic cylinders that each have a 3 m stroke and use a chain to lift the shelf over 6 m.
While the position of each cylinder during this movement must stay accurate to within 2 mm, our measurements showed that we could actually achieve 0.1 mm accuracy.
Each cylinder is actively controlled to compensate for slight weight abnormalities; it’s common that some concrete slabs have an uneven weight distribution due to holes that accommodate staircases or windows.
Since such heavyweight cannot be stopped or moved instantly, PID control loops are used within software to create a gradual velocity profile that ramps up to the maximum velocity of 45 mm/s (cylinder shaft) and 90 mm/s (table) and to ramps down to stop moving as well.
Position feedback is obtained by a magnetostructive encoder that is built in a hollow shaft inside the cylinder. This helps protect the system against damage. The accuracy of this position sensor is 5-10 µm and communicates over SSI (Synchronized Serial Interface) protocol.
CompactRIO for Hydraulic Control
Hydraulic control is often seen as an easy control system. But to position hydraulic cylinders accurately over a whole stroke requires extensive control intelligence since hydraulic systems are non-linear by nature. The dynamic behavior of a cylinder that is at its initial position is not comparable to the dynamic behavior when the cylinder is at its middle or end position.
The resonance stiffness and frequency vary as a function of the shaft position, caused by the compressibility of the hydraulic fluid. We needed to take this resonance frequency into account to meet the accuracy requirements of the heavy-weight system.
To accurately control the movement, a PID controller would need to continuously adapt to control parameters depending on the shaft position. This is something that is not possible to realize with PLCs. Also, we needed to include analog measurements in our control system. PLCs often contain considerable amounts of noise since they are not measurement-class hardware.
To accurately control our hydraulic cylinders, we needed a non-linear control algorithm based on the linear quadratic regulator (LQR) model based controllers (MBCS). These control algorithms provide tighter process tolerance, faster settling, less overshoot, and more efficient tuning capabilities. After evaluation, we found that a full-state feedback control algorithm proved to give the best results.
The system setup consists of an operator interface and a CompactRIO controller. The operator interface is realized using a Touch Panel and communicates over Ethernet with CompactRIO. CompactRIO combines a Real-Time processor, a reconfigurable field-programmable gate array (FPGA) and industrial I/O modules. All parts have been programmed using LabVIEW graphical programming software.
Parallel processing in FPGA
The FPGA on the CompactRIO is used in our application as a fast-working custom parallel processing unit. With the FPGA, we read the digital signals from each cylinder-encoder over a synchronous serial interface (SSI), convert this to an actual position, and transfer it to the real-time processor.
In parallel, the FPGA uses several digital I/O lines for gracefully handling emergency stops. To prevent equipment damage, the cylinders must be halted safely within a short time. If an emergency stop occurs this is fed directly to the RT controller to calculate a controlled stop of the system (using a steep velocity ramp down). The FPGA keeps track of the time so that if the system is not completely stopped within a short period, the FPGA stops any movement directly.
In addition, we use the FPGA to sample 16 analog input sensors that measure the pressures of the cylinders and other states. This is all converted to measurement units and transferred to our Real-Time control loop.
Control Loop Implemented in a Real-Time Controller
All acquired sensor data, such as pressure, positions, and velocity, is fed to the LabVIEW Real-Time control algorithm. The control loop is based on a full-state feedback control algorithm. The FPGA sends a clock signal (interrupt) every 5 ms to the real-time controller to start its control calculation for all four cylinders. The reason for this is that the clock signal on the FPGA is more accurate and the most recent data is used, so the control loop is in the same state as the mechanical system. Current data is used to determine the actual state, and adjust settings accordingly. The controller then calculates new values for the regulated flow, as the steerable unit.
The real-time controller also checks if the system is working within tolerance. Pressures, valve positions and reference positions are read. If these values do not meet preset tolerances, we can compensate in software for mechanical wear, or detect when a sensor or actuator wears or fails. This error management and diagnosis is active during usage and pre-startup.
The operator controls the elevator using a touch panel. Communication with the CompactRIO system is implemented using Ethernet over TCP/IP communications. The touch panel application is written in LabVIEW, using the Touch Panel module, and based on command-based communication. The application uses a clear menu and runs a state machine (with states like start lifting, diagnose, and stop). The current state and error conditions and diagnosis information are displayed on the panel when needed.
After installation, we discovered that our hydraulic system was capable of lifting a concrete slab with an accuracy of 0.1 mm at 45mm/s (cylinder shafts). We developed this application in just two months. Since we developed the software modularly, we can reuse most of the content and adapt the software for future systems.
Stijn Schacht, Test & Measurement Solutions
Edited by Cyth Systems