Force control on direct driven servo hydraulic actuator

Direct Driven Servo Hydraulic Actuator also known as Pump Direct Driven Cylinder (PDDC) represents a decentralized modern concept of energy efficient cylinder control without damping loses of direction valves. Such systems have many advantages over conventional hydraulic systems and combine benefits of hydraulic and electric drives. PDDC system developed in Laboratory for Oil Hydraulics at University of Maribor consists of hydro motor, which is used as a reversible pump that is directly driven by servomotor and is designed for experimental testing with differential hydraulic cylinder. In this paper, the aforementioned system runs experimental setup for force control of hydraulic cylinder, with load produced by pneumatic bellow.


Introduction
In comparison to conventional systems, PDDC systems don't use direction valves. Direction is controlled by rotation of servomotor connected to reversible pump. PDDC system are very compact, mobile, universal and powerful which bring many advantages such as: -productivity, -overload safety, -robustness (longer maintenance intervals), -easier maintenance, -accuracy and dynamic of servomotor, -small use of hydraulic oil (because of system compactness), -ability to connect to other systems (industry 4.0).
Such systems are usually used to bend, press, move, lift and position objects [11].
For this paper, an experiment using different ways of force trajectory type was designed. PDDC system is force controlled using step, three-phase and sinus trajectory. For maintaining force value, trajectories are used as an input value of PID regulator. Parameters of various trajectories and PID regulator parameters are initialized using Windows forms C# application developed in Visual Studio.
User can easily change all of parameters of specific control for better control of the desired trajectory.

Experimental setup
Experimental system consist of Rexroth Indramat permanent magnet servomotor MKD071B that is speed and torque controlled by Indramat DKC03 servo motor driver. For this particular application, motor torque is set to 24 Nm with speed limited to +/-3000 min -1 . It's connected to directly driven hydraulic pump using bell housing with coupler, which is connected to custom made hydraulic block with screw in check valves, filters, hydraulic accumulator and adjusTable pressure relief valves set to 210 bar for both sides of differential cylinders chambers, shown in Figure 1. Each cylinder chamber pressure is measured with Hawe DT2-4 pressure sensor. Additional pressure sensor is also mounted on hydraulic block to monitor pressure in tank/accumulator line. Complete hydraulic scheme is shown in Figure 3.
Differential hydraulic cylinder (d=22 mm, D=32 mm, cylinder stroke = 200 mm) made by Bosch Rexroth is used as hydraulic actuator. Given above max. pressure and size of cylinder, it can push up to 16 kN of force and pull up to 8,5 kN.
Closed loop system control is based on Beckhoff industrial soft PLC mounted in electrical cabinet shown in Figure 2.

Beckhoff soft PLC
PLC used in system is CX5140 that is made by company Beckhoff. This PLC was chosen because of its modularity whit I/O cards (current configuration is shown in Figure 4), that are DIN rail compatible so they can be easily changed.
Its technical data can be found in Table 1 [2].
PLC -PC connection is done with Ethernet connection via RJ45 port. PLC -PC connection is used for programming, troubleshooting and real time monitoring. Final program and HMI interface are uploaded to PLC and run locally on soft PLC that simultaneously run real-time PLC program and developed Windows Forms application on Windows 7 Embedded.

I/O Devices
There are multiple cards in system that are not used for current experiment. They will be used in future experiments. List of all cards and their current configuration are listed in Table 2.
Beckhoff EL1008 [5] card is used as an electrical cabinet switch state input and Indramat digital output state check. For relay activating and controlling of digital inputs on Indramat servo-motor controller, EL2008 [6] was used. Analog values received from HAWE DT pressure sensors and Omron ZX-1 CMOS sensor are read using EL3048 [7] card. EL3014 [8] card is used to read analog outputs from Indramat servo-motor controller. Analog inputs of Rexroth Indramat servomotor controller are controlled using El4134 [9] card.

OMRON ZX1-LD600A81
For measuring piston rod movement, OMRON laser displacement sensor with CMOS sensor is used. It allows us to measure up to 0.08 mm of movement in standard mode with 50 ms response time. With some accuracy loss, sensor is also capable of high speed capturing with 1.5 ms response time. In our application sensor does not play any role in regulation of the system. Sensor is mounted in custom-made 3D printed enclosure visible in Figure 5. As mentioned in introduction, PID controller is used to control trajectory of the system by following three different types of generated trajectory (step, threephase trajectory and sinus).

PLC program developed in Twincat3 is running locally on Beckhoff soft PLC controller. Main program is written in Structured Text language (ST), and uses
Case statements for selecting subprograms (Figure 6), which determine working mode of PDDC system. Mode subprograms are also written in Structured Text language with Case statements that determine the behaviour of the system using subprogram. For example in Figure 7, program is in Force control mode and in system start up procedure. For start-up and stopping procedure of Rexroth Indramat servo driver, subprograms EHA_Start and EHA_Stop are used. Both subprograms are used multiple times in PLC program. Subprogram for stopping procedure is visible in Figure 8. Program logic is shown in Figure 9.

Step response
Subprogram forceSTEP_EHA, written in ST, is used to generate trajectory for step response. It reads user input value and directly applies it to the input of PID controller as desired value (Figure 10).

Trajectory
Trajectory control is one of the most widely used control of movement in industry. To generate trajectory, we have used three phase trajectory generator that can be found in Twincat 3 libraries. This subprogram was written in FBD language ( Figure 11). Generator is controlled by binary values that determine its state. Generator parameters are defined in initialization subprogram and are combined in array structure called stParams that consist of start position, target position, start velocity, desired velocity, start acceleration/deceleration, desired acceleration/deceleration, control cycle time and task cycle time ( Figure 12). Generated structure is inserted in one of the inputs of the three-phase generator.

SIN
For quick constant changes of trajectory, sinus generator from Twincat 3 library was used (Figure 13). It generates sin wave using amplitude and offset parameters that are defined in array structure called stParams shown in Figure 14. Working mode of generator is defined in eMode (passive, active). E state parameters show current state of the generator.

PID
Trajectory generated from step, 3 phase trajectory or sinus are written in global variable called trajectory_OUT_eha which is used as input for PID controller (Figure 15). PID controller used is taken from Twincat 3 library. It compares actual (gvl.EHAForceValue) and desired value (gvl.trajectory_OUT_eha). Parameters for PID controller are written in array structure stParams and set in initialization subprogram. MUL block is used to convert motor direction. Limit is set to limit motor speed. Actual force of hydraulic cylinder is calculated from acquired pressure from both sides of cylinder chambers (by subtracting forces in each cylinder chamber in Read subprogram) [12].

HMI
For easier control and data monitoring HMI was created in Windows Forms C# application using Visual studio. It connects to PLC with ADS communication protocol.
Main goal when designing HMI was to make it simple and easy to use. From HMI user can initialize Start/Stop procedure, select work mode (Step, Sinus, 3phase trajectory) and type of regulator (P, PI, PD, PID). User can also define the parameters for work mode, trajectory and closed-loop control parameters.
Scope is used to monitor and display actual and desired force value of piston. It also shows position of hydraulic cylinder from Omron distance laser. HMI can also be used in case of emergency. Emergency stop button turns of system and stops servomotor instantly. System can be started again using Clear Error button, which clears errors on Rexroth Indramat and enables the system. System state can be monitored by true/false indicators shown in Figure 16.
TwinCAT 3 ADS notifications protocol is used for event driven reading of variables. Library waits for designated variables to change state and sends them to HMI using separate thread of UI thread. In HMI, communication thread is opened, variables are then transferred to UI thread. When transfer is completed, communication thread is closed and variables are assigned to their local variables. Those local variables can then be displayed without UI lag.
Library can work with up to 500 variables without causing delays in responsiveness of UI.

Experimental results
System responses are monitored in Visual studio using Twincat 3 Scope. Experiment was executed on three various type of trajectory (step, three-phase and sinus). The responses are commented in paragraphs below.

5.1
Step trajectory response First experiment was done using step trajectory. As visible in Figure 17 response of the system with PID regulator follows desired trajectory with small amount of phase shift and error in amplitude. At holding constant force, we can notice jerking of force caused by jerking of PID controlled servomotor. Figure 17: Step response.

Three phase trajectory response
Second type of trajectory used in experiment was three-phase trajectory. Figure  18 shows a small amount of overshoot visible in lowering of force and jerking of PID controlled servomotor when trajectory levels out and force is constant.

Sinus trajectory response
Sinus trajectory was the last trajectory tested in experiment. System follows desired force very well, shows only a small amount of overshooting, and phase delay ( Figure 19). Jerking of force on peaks off sine wave is caused by changing of the servo motor rotation direction. Experimental results have shown that PID controller has tracking error and slower dynamics. Satisfying results are achieved only in slower trajectories. As soon as trajectories are changed quickly, more significant overshoot is seen and system lags behind trajectory, which results in phase shift in square and sine waves. Parameters of PID controller were selected with trial and error method.
For better responses, non-linear control algorithms should be considered. Better accuracy of force control could also be achieved using load cell, which would eliminate reading errors of calculated forces of cylinder.
Experimental setup represents a good foundation for further experiments on different PID controllers for PDDC systems.