Hydraulic system - Example of a Non-Linear Affine-Input System
by A. Kugi, K. Schlacher and R. Novak, Department of Automatic Control, Johannes Kepler University, Linz, Austria,
kugi@mechatronik.uni-linz.ac.at
NOTE: This worksheet demonstrates the use of the AIsys package to solve the problem of a Hydraulic System.
Introduction
The AIsys package contains several algorithms for the analysis and synthesis of nonlinear Affine-Input control systems, or AI-systems for short. This class of systems describes a large number of physical systems in many engineering applications. However, only the increasing availability of low cost digital signal processors in combination with the increasing power of computer algebra programs like Maple enable the practical use of these nonlinear control strategies.
The AIsys package contains four examples which prove that the proposed algorithms are also feasible for practical problems. This mechanical example is the ball and wheel experiment. Other examples in the Maple Application Center include benchmark tests for nonlinear control systems, namely the chemical stirrer vessel, the squirrel cage induction motor and a hydraulic system.
Loading the AIsys package
The AIsys package has been archived into a Maple Library. To install it download the file AIsys2.zip and extract the contents into a directory.
Note: Do not extract these files into your Maple "lib" directory since you could overwrite your main Maple library.
To find out more read this worksheet or the help file:
Example 4: Hydraulic System
The above figure presents the schematic diagram for a hydraulic ram. For more details of the plant and an industrial application, see also [Kugi2000] A. Kugi, Non-linear Control Based on Physical Models, Lecture Notes in Control and Information Sciences 260, Springer-Verlag, 2000. The continuity equations of this system read as
Here P1, P2 denote the pressures in the chambers, xp is the piston displacement measured from the center, vp is the piston velocity. Additional parameters are the cylinder volumes V01, V02 (measured at xp = 0), the piston area A, the effective bulk modulus Eoil and the valve flows Q1 and Q2. The supply pressure is given by Ps, the tank pressure by Pt, the mass of the moving parts is m. The external and internal leakage flows are assumed to be laminar with the leakage coefficients Cleak_ext1, Cleak_ext2 and Cleak_int. The valve flows for positive and negative spool displacements xs are given by the equations below, Kd is a valve parameter.
If xs > 0 the flows are: Q1_pos := Kd*xs*sqrt(Ps-P1); Q2_pos := -Kd*xs*sqrt(P2-Pt); If xs < 0 the flows are Q1_neg := Kd*xs*sqrt(P1-Pt); Q2_neg := -Kd*xs*sqrt(Ps-P2); If xs = 0 the flows are Q1_zero := 0; Q2_zero := 0;
Two different models for positive and negative valve displacements are necessary, the plant input is the valve position xs and the plant output is the piston position xp.
Often in hydraulic systems the assumption Ps-P1 = P2 - Pt is made, in this case the flow Q = Q1 = Q2 can be used as input and the vector field g becomes
Setup the mathematical model for the AIsys package
Computation of the reachability distribution, to check if the systems hangs up we want more outputs
`Initialization: delta:={}`
`delta := delta + g1`
`Computing Lie bracket: [f,g1]`
`delta := delta + [f,g1]`
`Computing Lie bracket: [delta2,delta1]`
`delta := delta + [delta2,delta1]`
`Computing Lie bracket: [f,delta2]`
`delta := delta + [f,delta2]`
`Dimension of reachability distribution:`, 4
More outputs can be obtained by setting infolevel[AIsys]:=3: or infolevel[AIsys]:=4:
What happens if the flow Q is used as input?
`Computed Lie bracket is linear dependent.`
`Computing Lie bracket: [delta3,delta1]`
`Computing Lie bracket: [delta3,delta2]`
`delta := delta + [delta3,delta2]`
Is the system still reachable without any leakages? To answer this question the side-relations in the simplifiers routines are adjusted in the following way:
`Computing Lie bracket: [f,delta3]`
`Dimension of reachability distribution:`, 3
This result coincides with the analysis of the linearized system.
Next the observability is checked, readjusting the simplifier routines.
`Initialization: delta := {}`
`Computing differential dh`
`delta := delta + dh`
`Computing Lie derivative: [delta1,f]`
`delta := delta + Lie derivative`
`Computing Lie derivative: [delta1,g1]`
`Computed Lie derivative is linear dependent.`
`Computing Lie derivative: [delta2,f]`
`Computing Lie derivative: [delta2,g1]`
`Computing Lie derivative: [delta3,f]`
`Dimension of observability codistribution:`, 4
What happens if Q is used as input?
What happens without any leakages?
`Computing Lie derivative: [delta3,g1]`
`Dimension of observability codistribution:`, 3
Next some other properties are checked
Computing relative degree with MIMO and SISO algorithms
`Computing Lie derivative: L[g1]h1`
`Computed Lie derivative is 0`
`Computing Lie derivative: lie := L[f]^1h1`
`Computing Lie derivative: lie := L[g1]lie `
`Computing Lie derivative: lie:=L[f]^2h1`
`Lie derivative <> 0 -> r1 :=3`
`Checking the rank of the decoupling matrix`
`Decoupling matrix seems to be regular.`
`The relative degree vector is `, [3]
`Computing Lie derivative : L[g]L[f]h`
`Computing Lie derivative of output h along f: L[f]^2h`
`Checking column dimension of jacobian A = d(t_vec)/dx`
`Computed relative degree is 3`, ` jacobian A is regular`
Computing the maximum relative degree
`Computing involutive closure ...`
`Rank of involutive closure of delta is 1`
`Compute Lie bracket: [f,g1]`
`Rank of involutive closure of delta is 3`
`Computing Lie bracket [f,delta2]`
`Rank of involutive closure of delta is 4`
So the maximum relative degree is 3
For control purposes the nonlinear feedback for the Input/Output Linearization can be computed by UTrans
If xs > 0 print(`For positive valve displacement use transformation:`); nlp:=UTrans(f,g_pos,xp,xx,v,true); If xs < 0 print(`For negative valve displacement use transformation:`); nln:=UTrans(f,g_neg,xp,xx,v,true);
`Checking column dimension of jacobian A = dt/dx`
`Computed relative degree is 3 and jacobian of A is regular`
`Used coefficients: a0, a1, a2, `
`Coefficient: a3 set to 1`
The problem in here is that the information of the whole state is necessary to implement this feedback law. Usually, only the piston position xp and the pressures P1 and P2 are measured. The velocity signal vp can only be obtained by approximate differentiation of xp. But this procedure often fails, since in many industrial environments the transducer noise is considerable high. Therefore, we pose the question if it is possible to find an exact linearizing output such that the static feedback law is independent of the velocity vp? This question can be answered by the algorithm ElimSt , see, e.g., [Schlacher2001] K. Schlacher, A. Kugi, R. Novak, Input to Output Linearization with Constrained Measurements, In Preprints of the 5th IFAC Symposium on "Nonlinear Control Systems", Saint Petersburg, Russia, July 4-6, 2001, pp.471-476, 2001.
To get less information we set
The measurements are
The computation of the restrictions gives
The solution of the first restriction is clear
Substituting this result in the second one gives the desired output
For instance the output
gives the desired result.
The nonlinear feedback for positive valve displacement is now independent of the velocity and becomes
Sometimes only the load pressure P1 - P2 can be measured, what happens in this case?
"Problem has no solution."
Thus, in the general case the problem has no solution. But what happens without leakages and with the flow Q as input?
The influence of the first and the second restriction is clear
Thus, we get the same output as before
Disclaimer: While every effort has been made to validate the solutions in this worksheet, Waterloo Maple Inc. and the contributors are not responsible for any errors contained and are not liable for any damages resulting from the use of this material.