Controlling the Movement of 20 tons of Concrete with Precise Accuracy Using CompactRIO
Stability is maintained during the movement of 20 ton concreate slabs to drying racks using NI hardware and software.
"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 new systems within weeks."
- Stijn Schacht,
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.
Implementing a custom control algorithm in CompactRIO to control the four hydraulic cylinders to move the unbalanced load.
Stijn Schacht - VAPO Hydraulics
Custom hydraulics and hydraulic control
At VAPO Hydraulics, 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). The communication with these systems is typically established with industrial field busses 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 horizontal.
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 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 stair cases or windows.
Since such heavy weight cannot be stopped or moved instantly, a gradual velocity profile is used to start and ramp up to the maximum velocity of 45 mm/s (cylinder shaft) and 90 mm/s (table) and to ramp down and stop the movement.
Position feedback is obtained by a magnetostructive encoder that is built in a hollow shaft inside the cylinder. This helps protect the system against damages. 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 knowledge and 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 linear quadratic regulator (LQR), H-infinity or 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 of the cylinder-encoders over synchronous serial interface (SSI) and convert this to an actual position and transfer it to the real-time processor.
This communication protocol requires the master to send 26 clock signals. After the first clock signal a bit is transmitted on each following clock pulse. These bits then need to be decoded. With the NI 9401 digital I/O module we could connect to the sensor and implement the communication protocol on the FPGA. Every 50 microseconds (20 kHz) the FPGA reads the sensor bits at a 1 MHz rate and converts these to a current position and velocity and sends these to the Real-Time processor for every cylinder.
In parallel, the FPGA uses several digital I/O lines for gracefully handling emergency stops. To prevent equipment damage, the cylinders need to be halted safely within a short moment. 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 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 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 around a full state feedback control algorithm. The FPGA sends a clock signal (interrupt) every 5 ms to the real-time controller to starts 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 the command based communication. The application uses a clear menu and runs a state machine (with states like start lifting, diagnose, stop). The current state, as well as error conditions and diagnosis information, is 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 new systems within weeks.
Explore the NI Developer Community
Discover and collaborate on the latest example code and tutorials with a worldwide community of engineers and scientists.
Who is National Instruments?
National Instruments provides a graphical system design platform for test, control, and embedded design applications that is transforming the way engineers and scientists design, prototype, and deploy systems.