Next Article in Journal
Metallic Bipolar Plate Production Through Additive Manufacturing: Contrasting MEX/M and PBF-LB/M Approaches
Previous Article in Journal
Experimental Evaluation of Dry and Contactless Cleaning Methods for the Production of Digital Vehicle Dashboards
 
 
Font Type:
Arial Georgia Verdana
Font Size:
Aa Aa Aa
Line Spacing:
Column Width:
Background:
Article

A Modelica-Based Model for Pneumatic Circuits with a Focus on Energy Efficiency

by
Gustavo Koury Costa
Federal Institute of Science and Technology (IFPE), Recife CEP 50740-540, Brazil
J. Exp. Theor. Anal. 2025, 3(2), 11; https://doi.org/10.3390/jeta3020011
Submission received: 10 January 2025 / Revised: 13 March 2025 / Accepted: 24 March 2025 / Published: 8 April 2025

Abstract

:
This paper presents a new computational library for pneumatic circuits, written in the specialized circuit-oriented language “Modelica”, and executed within an open-source IDE, “OpenModelica”, freely available for downloading on the Internet. The library focuses on the problem of energy efficiency and energy savings (two different concepts, that we intend to clarify in the text). The idea is to use the Modelica scripts to simulate typical circuits, known by their energy-efficient designs. We reason that air throttling within valves is one of the great challenges when it comes to energy losses. Also, we argue that compressed air reuse can be seen as a means of increasing efficiency, basically through replacing air throttling with counter-pressure velocity control. A simplified version of the developed Modelica library is made available to the reader in the Appendix A, to be used with new scripts and adapted to different realities. In our view, in many situations, open-code Modelica programs may constitute an alternative to proprietary software, where the mathematical models of components are mostly hidden from the end user. Theoretical experiments are carried out, focusing on energy management. The results show that the Modelica library hereby presented is solid, with great prospects of future development. They also show that energy efficiency in pneumatic circuits, at times, comes with the cost of poorly controlled velocity and pressure at the actuator, which requires a careful analysis by the designer, before an actual implementation.

1. Introduction

Air consumption in pneumatic lines is a direct measure of the energy supplied by the compressor. As such, reducing unnecessary consuming spots is of prior importance. Line leaks are, of course, a major problem, and are, on average, responsible for 25% of energy losses in a plant [1] (the reader can find out more about efficient compressed air generation in reference [2], for example). Besides improvements on the compressed-air generation and distribution lines, other means of promoting the efficient use of air, such as different extension–retraction pressures, reduction in actuator oversizing, and valve control strategies have been reported [3,4]. It is also possible to reduce air consumption through more intelligently designed circuits [5,6,7,8]. This paper examines this latter approach by theoretically simulating representative circuits. Rather than simulating each circuit individually, the study utilizes a tool based on the Modelica programming language, available online as “OpenModelica” [9]. At the time of writing, there is no native library for Pneumatics in OpenModelica. On the other hand, reference [10] outlines a pneumatics library for OpenModelica; however, according to the authors, it does not include valves and actuators. A basic Modelica library featuring valves and actuators is also mentioned in [11], but it remains inadequate for the objectives of this paper. Consequently, due to the absence of a comprehensive set of Modelica routines, we have developed our own library, which is provided to the reader in the Appendix A.
Energy losses in pneumatic circuits are, basically, caused by valve throttling, air leaks, friction, and wasted compressed air at the end of cylinder strokes [4]. In all that follows, we focus on the valve throttling problem with the aim of comparing different circuit designs to reuse otherwise wasted exhaust flows. A more comprehensive analysis including friction models and cylinder oversizing can be made by adding to the proposed modelling approach, but, given the complexity of the subject, this must be delayed to future works.
Figure 1 shows some typical valve-actuator arrangements for pneumatic circuits. In all circuits, the cylinders are the same. They are subject to the same external force - and experience identical friction losses which, due to design and operation conditions, are assumed to be reduced to minimum values. We also consider that the input pressure, at port 1, is identical for every circuit and that no air leak is observed. Losses will, thus, be only caused by viscosity effects, because of throttling at the control valves (we use the term “control” loosely, meaning that the piston has its velocity and direction determined by directional valves). Throttling losses ultimately result in pressure drops between point 1 and the cylinder input and between the cylinder output and the exhaust, whose sum is represented as P L , which varies in intensity, depending on the circuit design. These losses are qualitatively represented on a horizontal scale, at the bottom of each figure, to be used as a means of comparison between the circuits.
Starting from Figure 1a, the flows into and out of the cylinder are metered at the proportional valve, Vp, so that throttling losses take place at both ends of the cylinder. A more efficient solution is shown in Figure 1b, at the expense of losing the electronic spool-position control of the main valve, V, which, now, can only be set to two fixed states. The one-way flow-control valves, C1 and C2, are placed in such a way that flow metering takes place at only one of the cylinder ports. Piston extension is thus affected by valve C1, as the output cylinder flow is bypassed at valve C2. Likewise, valve C2 is responsible for controlling the piston during retraction. Figure 1c shows an even better arrangement, with two quick-exhaust valves, E1 and E2, which short-circuit the low-pressure port of the cylinder directly into the atmosphere, thus avoiding the longer way through the main valve. Figure 1d,e are somewhat equivalent in terms of pressure losses, with (maybe) some slight advantage to the circuit in Figure 1e, where valves can be attached to the cylinder ports, thus, eliminating the hoses. Finally, Figure 1f presents a single-acting cylinder with the on–off control from the piston-side only. This is the scenario where less throttling losses are observed, although applications are limited to some particular cases. We do not cover single-rod cylinders in this paper.
With the previous analysis in mind, we consider the circuit in Figure 1d as representing the best-case scenario in terms of energy losses. One can then ask the question: can this circuit be improved? A proper answer needs to consider the ways in which lost energy might be recovered in the process. Considering the scope of our analysis, the only parcel of recoverable energy comes from the air exhausted to the atmosphere, coming from the unpressurized chamber. Figure 2 shows a schematic representation of the possible paths for the flow coming out of the cylinder port 7, as it extends (valves can be placed along each represented path, depending on the circuit design). The possibilities include the following:
  • Short-circuit path (sc), where the flow out of port 7 is directed into port 6. Examples of circuits of this kind are found in references [6,7,12,13], where energy saving potentials from 18% up to 40% have been reported [7].
  • Direct exhaust path (ex). The circuit is reduced to the one in Figure 1d and no energy recovery takes place.
  • Energy-storage path (es). The flow from port 7 is stored in an Energy Storage Device, ESD (an accumulator, for example) for later reuse in other applications (path ot) or the same cylinder (paths rc). It is also possible to discharge the stored energy into the atmosphere, if necessary (path exd). Examples of circuits following paths rc are found in [8,13]. In these references, exhaust energy is captured at port 3 of valve V, instead of being captured at the cylinder port, 7. Reductions in air consumption of up to 37% have been reported in a multi-actuator circuit [14].
Before we move on to the next section, it is important to make one clear distinction between two common terms in Pneumatics: “efficiency” and “energy saving”. In some references (for example, in [7,13,15]), “efficiency” has been interchangeably used with “energy saving”. Other references correctly make use of the term “energy saving” throughout the text [12,16]. However, given that these two concepts are likely to be mixed, some confusion may arise.
The fact is that “energy saving” and “energy efficiency” are not identical. As pointed out in [14], “energy efficiency” is defined as the ratio between the energy output by the actuators and the energy input at the source. Thus, it is possible that a reduction in air consumption will not necessarily correspond to an increase in efficiency. As will be shown in this paper, this is exactly what happens in typical circuit designs.

2. Energy Efficiency and Energy Saving

We have seen that the circuit in Figure 1d, with no throttling control of the cylinder velocity, is one in which energy losses are minimal. Our aim in this section is to briefly discuss whether reusing the exhaust air flow can improve the energy efficiency of that circuit even more. In our approach to the problem, we consider the simple circuit in Figure 3a,b, where the piston extends at a velocity v . The figure mixes pneumatic symbols with some additional drawings to help us develop our theory.
The recoverable energy during piston extension corresponds to the resistive work, W R , at the right cylinder chamber (rod-side chamber), given by
W R = A a 0 L p a d x = A a 0 T p a v d t ,
where p a is the pressure acting on the annular area of the cylinder ( p a is assumed as being homogeneous within the cylinder); L is the piston stroke and T is the extension time.
From Equation (1), it becomes clear that W R depends directly on the counter-pressure, p a . On the other hand, the greater the value of p a , the slower the piston extends. Therefore, saving exhaust energy ends up being a means of controlling piston velocity. Ultimately, we are reducing energy losses by replacing throttle velocity control with counter-pressure velocity control, which makes sense, since, as mentioned in the previous section, throttling losses are directly responsible for energy dissipation in pneumatic circuits. Based on this conclusion, the circuit in Figure 3a, can be compared to the circuit in Figure 1b, for in both circuits, the kinetic energy at the piston is reduced by transforming the input energy into another form of energy. In Figure 1b, this other form of energy is heat, which ends up being wasted away. In Figure 3a, this other form of energy is “pressure”, which can be “stored” within the tank V s . Thus, the situation in Figure 3a can only be energetically favorable if a considerable part of the energy stored in V s is reused. If this is not the case, we may even have a circuit that consumes less energy from the source (air tank, V ), but this does not necessarily lead to higher efficiency levels.
Initially, we must say that the efficiency of pneumatic actuators is not simple to define due to temperature and density variations. In fact, to the best of our knowledge, perhaps the only efficiency formula for pneumatic cylinders obtained from an energy balance, was given in reference [17], referred to as “efficacy” ( η e c ) by the authors. The proposed equation for adiabatic cylinder expansion was given by
η e c = 1 V c u t V c + A p L V c u t 1 γ V c + γ V c u t V c ,
where V c u t is the “volume at which gas supply is stopped”, V c is the pneumatic line volume (hoses and valves between the pressure source and the cylinder) and γ = c p / c v is the ratio between heat capacities at constant pressure ( c p ) and at constant volume ( c v ), respectively.
It has been argued that exergy (energy that can be converted into work at the cylinder) would be a better indicator of efficiency [18,19,20]. Reference [18] defines “energy savings” (similarly to “efficiency” in their paper) based on an exergy balance over the cylinder. In this paper, we propose an even simpler approach, where only the work produced at the cylinder rod is accounted for the efficiency calculation.

2.1. Circuit Efficiency

Whatever the authors in [17] meant by their definition of V c u t (we might interpret it as the dead-volume at the cylinder chamber when the piston is fully retracted, though it is not explicitly mentioned in their text), Equation (2) was deduced under the hypothesis that the energy delivered to the cylinder equals the difference between the internal energies and pressures before and after extension, during which, the air mass within the cylinder expands. However, internal energy gain (or loss) does not contribute directly to the work performed at the rod tip and, as such, should not be factored into the efficiency equation.
In this paper, we seek to define efficiency based on the actual mechanical work, W , available at the tip of the cylinder rod. If we consider a given time interval, t 1 , t 2 , W is simply given by (see Figure 3b).
W = t 1 t 2 p p A p p a A a v d t .
We can gain a better insight of what is being disregarded in Equation (3) when we consider an energy balance through the control volume, CV, in Figure 3b. If we neglect the kinetic and potential energies per unit mass within the air flow and assume that the pressures inside the cap- and rod-side chambers are uniform, we can write an energy balance across CV, in Figure 3b, as follows:
W ˙ = m ˙ p u p + p p ρ p m ˙ a u a + p a ρ a H ˙ ,
where W ˙ is the mechanical power delivered to the load; H ˙ is the thermal power dissipated through the control volume boundaries; u p and u a are the internal energies per unit mass at the cap- and rod-side chambers, respectively.
Remembering the relation between mass flow ( m ˙ ), density ( ρ ) and volumetric flow ( Q ), m ˙ = ρ Q , after some mathematical manipulation, Equation (4) becomes
W ˙ = Q p p p Q a p a + ρ p Q p u p ρ a Q a u a H ˙ .
If we cancel out the whole term relative to thermal energy (within parenthesis) in Equation (5) and write Q p = A p v and Q a = A a v , we obtain
W ˙ = p p A p p a A a v ,
which corresponds to the integrand of Equation (3).
We know that power is supplied by a compressor. Therefore, if we want to obtain the efficiency of the pneumatic system, our energy input would be the electric motor, connected to the compressor. However, in this paper, we are interested in the efficiency of the circuit itself, so our power source will be the air tank. In addition, we will only consider the pressure variation within the tank, measured from the moment when the compressor supply is cut off, as represented in Figure 3a. We are, therefore, measuring circuit efficiency, η , factoring out any compressor contribution. Let us also consider that there is no heat transfer between the air tank and the environment (the tank is neither being heated nor cooled). In such cases, the useful fluid power (no internal energy regarded), E ˙ i , supplied to the circuit, and measured at port 1 in Figure 3a, is given by
E ˙ i = d p V d t = R θ d m d t = R θ m ˙ 1 ,
where p is the pressure inside the air tank, m is the air mass within the tank; V is the tank volume; θ is the absolute temperature; R = 287   J / k g K is the air constant and m ˙ 1 is the mass flow rate through port 1.
The circuit efficiency obtained for a time interval, t 1 , t 2 , can then be expressed as
η = t 1 t 2 p p A p p a A a v d t R θ t 1 t 2 m ˙ 1 d t .
Note that Equation (8) only makes sense when air is consumed from the tank, that is, when m ˙ 1 > 0 . If, for some reason, the piston is still moving ( v 0 ) even when m ˙ 1 = 0 (due to reuse of stored energy, for example), Equation (8) needs to be modified. This is addressed in the following section.

2.2. Energy Recovery

Suppose that the fluid power leaving port 3 in Figure 3a, is reused in the circuit. In this case, we may write the exhaust power as a fraction of the input power, R θ m ˙ 1 , and propose the following modification for the efficiency equation
η = t 1 t 2 p p A p p a A a v d t R θ t 1 t 2 m ˙ 1 d t κ R θ t 1 t 2 m ˙ 1 d t = t 1 t 2 p p A p p a A a v d t R θ 1 κ t 1 t 2 m ˙ 1 d t ,
where κ ( 0 κ < 1 ) is a conveniently defined “reutilization factor”.
Note that η 1 , in Equation (9). To see that, let us imagine a hypothetical circuit without losses and total energy recovery at the cylinder. In such case, we would expect η to reach a maximum value. To obtain this maximum efficiency value, we rewrite Equation (9) in a literal form, to better grasp the meaning of each term, as follows:
η = E n e r g y   i n p u t κ × R e c o v e r e d   e n e r g y E n e r g y   i n p u t κ × R e c o v e r e d   e n e r g y .
Note that when κ 1 , η 100 % in Equation (10). On the other hand, when κ = 0 , Equation (10) is reduced to Equation (8). Also, in the hypothetical case of a lossless circuit, we have
η = E n e r g y   i n p u t 0 × R e c o v e r e d   e n e r g y E n e r g y   i n p u t 0 × R e c o v e r e d   e n e r g y = E n e r g y   i n p u t E n e r g y   i n p u t = 100 % .
Equations (10) and (11) show that when there are no circuit losses, there is absolutely no difference between a circuit with energy regeneration and a circuit without energy regeneration. However, in terms of energy consumption, the situation becomes more favorable whenever exhaust energy is regenerated, given that less pressurized air is expected to be consumed from the tank. Let us, therefore, refer to this reduction in energy consumption as “relative energy saving” (not efficiency), so that we are clear about which indicator is addressed.
One way of measuring the relative energy saving between two different circuits is by comparing the pressure drop at the air tank during a period t 1 , t 2 . We may, therefore, define “relative energy saving” as an indicator β s , calculated by the following expression:
β s = 1 p * t 1 p * t 2 p t 1 p t 2 ,
where p * t represents the tank pressure for a circuit with energy regeneration and p t represents the pressure for the corresponding circuit without energy regeneration. It should be noted that the definition provided in (12) is equivalent to one expressed in terms of the air mass within the tank during an isothermal process. In that case, we would have m t = K . p t , where K = V / R θ , so that β s , expressed as a relation between mass consumptions would be equivalent to β s expressed as a relation between pressure differentials, as in Equation (12).
The indicator β s in Equation (12) gives a measure of how much energy is saved by reusing otherwise wasted air in pneumatic circuits. Thus, β s > 0 points to a reduction in air consumption from the tank.
In closing this section, it is useful to make a quick comparison between pneumatic and hydraulic systems. In hydraulic systems, throttling is not the only means of controlling cylinder velocity, since the pump is ultimately a flow-source, where flow can be continuously adjusted through changing shaft speed and displacement. Pump-controlled actuators can then be an alternative to valve-controlled actuators, eliminating the need for flow throttling [21]. On the other hand, flows in pneumatic circuits are pressure-driven, meaning that, once a pressure differential is provided, flow control is carried out by variable aperture orifices.
In what follows, we describe the way in which circuits are modelled in this paper, focusing on each typical component. Later, we interconnect these models to evaluate efficiency and relative energy saving rates for three representative circuits.

3. Using Modelica to Create a Library for Pneumatic Components

When determining the efficiency (Equation (8)) and the relative energy saving (Equation (12)) in pneumatic circuits, a mathematical model must be used. Due to the difficulty in solving the resulting circuit equations, numerical methods are typically applied. The conventional approach is to find and subsequently solve a set of first order differential equations (see, for example, [8]). Alternatively, it is possible to rely on commercial software to model different circuits [6]. This later approach is obviously simpler, but too much trust is placed on the solver, and, as in most (if not all) cases, the physical models used for the components are not modifiable by the end user.
In this paper, we have chosen to model each individual component using a specialized computer language called Modelica [9,22]. The idea behind Modelica is to create individual mathematical models for each element and then connect them, as in an actual circuit. The components can be connected in several ways, which makes Modelica a powerful tool for circuit design. Moreover, since the computer script is provided (Appendix A), it may be easily modified to accommodate more sophisticated models.
OpenModelica [9], a free, open-source platform that functions as a versatile development suite on a simple personal computer, was utilized to create an initial pneumatics library for this study. As with any representation of real-world systems, some simplifying assumptions were necessary. For this study, hypotheses were made, as follows:
  • No pressure loss occurs within pneumatic lines. This is, of course, an enormous simplification, as we know that energy drops in lines can be significant. However, we remember that we intend to compare different circuit configurations, rather than different circuit component designs. Therefore, we can confidently make such simplification, without missing the target.
  • The fluid is homogeneous inside the circuits. This hypothesis means that the density, ρ , is a function of time only (for instance, ρ , is the same in every part of the cylinder chambers). If such an assumption was not made, ordinary differential equations would not be sufficient to model the circuits.
  • Air is treated as an ideal gas, for which the perfect gas law applies. In addition, we consider that all processes within the circuit are isothermal.
Following the Modelica philosophy, the components are described by a mathematical equation and are interconnected by ports to which a “through variable” and a “potential variable” are assigned. In pneumatic circuits, the mass flow at the i t h port, m ˙ i , is the “through variable” while the absolute pressure, p i , is the “potential variable”. Ports in Modelica are described as “connectors”. Each connector holds a “through variable” and a “potential variable”. For instance, for a given valve connector, say, A, pressure and mass flows will be referred to as A.p and A.mf, respectively.
Table 1 lists the components modelled in this paper and their respective Modelica names, for a quick reference. The names created did not follow any rule and can be modified by the user at will. Note that capital letters, A, B, P…, have been used for the connectors. The complete Modelica script for the pneumatic library and the examples in Section 4 can be found in Appendix A.
We now proceed to describe the models for the components in Table 1.

3.1. Cylinder Model (DACylinder)

Considering M in Figure 3b as the mass of the piston-rod-load altogether, and following the updated nomenclature in Table 1, where the cap-side is identified with port A and the rod-side is identified with port B ( A p = A A , A a = A B , p p = p A and p a = p B ), we can write the following force balance on the piston-rod-mass:
d v d t = p A p 0 A A p B p 0 A B F f F M d x d t = v ,
where x and v are the piston displacement and velocity, respectively; F is the external force acting on the piston rod; F f is the friction force, opposing the cylinder motion; p A , p B are the absolute pressures at ports A and B, respectively; A A and A B are the piston and ring areas, at the A and B sides of the cylinder and p 0 is the atmospheric pressure.
Calculating F f in Equation (13) is by no means an easy task [23,24,25,26]. As quoted in [24], “the value of the friction is never the same and changes according to dozens of parameters”. In fact, F f , needs to be obtained individually for every cylinder. Even a different manufacturer makes a difference [25]. Therefore, since the goal of this paper is to compare different energy recover solutions, we only considered viscous friction between the piston and the case and write F f = b v , where we have used b = 200   k g / s (a somewhat high but otherwise realistic value according to experimental data published in [25]).
The relation between pressure and cylinder flow must be obtained for each cylinder chamber. First, we use the perfect gas equation for cap- and rod- sides, as follows:
p A = R θ V A m p B = R θ V B m ,
where m is the air mass within the corresponding chamber; V A and V B are internal volumes, given by
V A = V 0 A + A A x V B = V 0 B + A B L x .
In Equation (15), minimal (dead) volumes are considered, when the piston is fully retracted ( V 0 A ) and fully extended ( V 0 B ). We can express these volumes as a fraction of the maximum volumes, that is V 0 A = ε A A L and V 0 B = ε A B L , where ε 1 (in our simulations, we have taken ε = 0.05 ). Following the pioneering work in reference [27], we differentiate both sides of Equation (14), and obtain
d m d t A = 1 R θ p A A A d x d t + V A d p A d t d m d t B = 1 R θ V B d p B d t p B A B d x d t .
The mass variations on the left-hand sides of Equation (16) are related to the flows at ports A and B a n d   m ˙ A and m ˙ B , as follows:
d m d t A + m ˙ A = 0 d m d t B + m ˙ B = 0 .

3.2. Source, Exhaust, and Air Tank (CPSource, Exhaust and Ptank)

Both source and exhaust have one communication port (A), for which a constant value of the absolute pressure is prescribed. These are referential ports, with no flow assigned. The pressure prescribed to the exhaust port A is, necessarily, the atmospheric pressure, p 0 , while the pressure prescribed to the source is, by default, 7 p 0 (approximately 0.6 MPa, gauge).
As for the air tank, it is sufficient to observe that air escaping (or entering) the tank through port A causes an inner pressure variation which, for an isothermal process is given by
d p d t = R T V m ˙ A .

3.3. Directional Valve Models (P5X2V, P3X2V and P2X2V)

Directional valves can be seen as controlled-aperture orifices. Therefore, flows m ˙ X and m ˙ Y , measured at two interconnected ports, X and Y (letters X and Y are generic representations of ports P, A, B, R…), can be modelled as functions of pressure differentials, p X Y = p Y p X . For the valves listed in Table 1, the pressure differentials which induce flow between valve ports are given in Table 2. The case where m ˙ X = m ˙ Y = 0 corresponds to any combination of X and Y outside the possibilities matching the selected input signals presented in Table 2. For example, if valve P5X2V is chosen, X Y = B R results in m ˙ B = m ˙ R = 0 , when s = 1 , given that, in this case, B and R are not interconnected. On the other hand, X Y = B T produces the flows m ˙ B and m ˙ T , at ports B and T, respectively, since both ports become interconnected when the valve is activated.
Mass flows m ˙ X and m ˙ Y , for the valves in Table 1, are given by the following general relations:
m ˙ X = p X Y p X Y · f p X , p Y m ˙ Y = p Y X p Y X · f p Y , p X ,
where f p X , p Y = f p Y , p X 0 (note that the sign of m ˙ X is negative if p X > p Y and positive otherwise. We also have that m ˙ Y   =   m ˙ X ).
Since we are considering throttling losses and compressibility in the valve, there is some discussion as to which relation f p X , p Y , should be used in Equation (19). The most common approach is to pick the rather complex formula found in the ISO 6358 Standards [28], reproduced here by the following equations [29]:
f p X , p Y = C ρ r p θ r θ 1 r p L s 1 L s 2 w h e n   L s < r p 1 f p X , p Y = C ρ r p θ r θ w h e n 0 r p L s ,
where ρ r and θ r are the density and absolute temperature measured at pre-established rated conditions, defined by ISO as θ r = 293.15   K , p r = 100   k P a and ρ r = 1.185   k g / m 3 , for a relative humidity of 65% and a corresponding gas constant, R = 287   J / k g · K . The coefficient C   m 3 / P a · s is denominated “sonic conductance” and, together with the “sonic pressure ratio”, L s , must be experimentally obtained ( L s varies from 0.2 to 0.8, depending on the shape of the orifice [30]); p is the highest between the pressures p X and p Y . Finally, r p is the ratio between the lowest to the highest pressure, that is
r p = m i n p X ,   p Y m a x p X ,   p Y .
Equation (20) have been criticized for not providing a good approximation for industrial pneumatic circuits [29,31]. Nevertheless, most theoretical valve models use some variation in these equations in their formulation [8,12,13,16]. It is important to note here that the following alternatives produced excellent results for some pneumatic circuits [29]
f p X , p Y = k 1 p Y p X C h a r g i n g f p X , p Y = k 2 p Y p X D i s c h a r g i n g ,
where k 1 and k 2 are constants that need to be experimentally determined.
The keywords “charging” and “discharging” in Equation (22) are related to the experiment published in [29], according to the circuit shown in Figure 4, where an air tank is charged (Figure 4a) and discharged (Figure 4b). The first equation in (22) applies to the situation in Figure 4a, while the second equation applies to Figure 4b. This poses a difficulty when dealing with more elaborate circuits, where valves are not necessarily connected to air tanks in the same way. How do we determine whether the situation is one of “charging” or “discharging”, in such cases? One way of approaching this problem is by observing if one side of the valve is connected to the exhaust line, in which case, we could assume that air is discharging through the valve. On the other hand, when one side of the valve is connected to the pressurized line, we can say that the air through the valve will be pressurizing some part of the circuit (for example, the cylinder chamber). In any case, it is not easy to automatize the process of choosing which equation to be used. Considering this aspect, using Equation (20) instead of Equation (22) circumvents this problem, since they can be equally applied regardless of the physical process.
Modelling valve flows through Equation (20) produced satisfactory (though not best) results for the circuit in Figure 4a [29]. On the other hand, significant discrepancies between experimental results and theory were observed when those equations were used for the situation in Figure 4b. However, given the conveniency of not having to deal with choosing between the two expressions in (22), we have opted to follow most circuit designs and apply Equations (19)–(21) in our valve models.
Equation (20) can be further simplified if we use L s = 0.528 (a common choice for typical valve orifices [29]). We also assume that air is maintained at room temperature, so that θ r θ = 293   K . As a result, Equation (20) can be written as
f p X , p Y = C f p 1 r p 0.528 1 0.528 2 w h e n   0.528 < r p 1 f p X , p Y = C f p w h e n 0 r p 0.528 .
The value of the coefficient C f   must be experimentally determined. However, since we are not conducting any practical experiments in this paper, we have chosen a value for C f , which produces an average cylinder extension velocity of 0.5 m / s , for a circuit like the one in Figure 1a, where a 5 × 2 directional valve is directly connected to a cylinder, whose dimensions are given in Table 3.

3.4. Flow-Control Valve (PVOrifice)

In this paper, orifices are applied to add pressure losses to pneumatic lines (remember that, in our Modelica library, lines are simply used to interconnect elements in the circuit). Flow-control valves are orifices with a variable air passage and are modelled by multiplying f p X , p Y , in Equation (19), by an external parameter c x ( 0 c x 1 ). The two extremes of this interval, c x = 0 and c x = 1 , correspond to a closed passage and a completely open passage, respectively.

3.5. Pneumatic Line Connections (PTee)

The last component in our library is a T-junction, where we require that the pressures at ports A, B, and C are the same. On the other hand, the numerical sum of the flows at the junction must be equal to zero.

4. Numerical Experiments and Results

In this section, we simulate three pneumatic circuits. The initial circuit will act as a reference point for comparing the subsequent two circuits. In this configuration, a cylinder performs a back-and-forth motion controlled by a 5 × 2 directional valve. This valve, in turn, receives input from sensors positioned at the start and end of the cylinder’s stroke. We then proceed to analyse a similar situation where the cylinder is short circuited with the help of a 2 × 2 directional valve. The idea is to recover energy coming from the exhaust port when the piston is extending. The third circuit, which is also energy recovering, stores fluid energy from the exhaust port in an air tank (TB) for reuse when the piston retracts. The air tank volume must, therefore, be compatible with the volume of the right side of the cylinder chamber, so that pressure can build up. Besides checking the versatility of the proposed library, we aim to compare the efficiencies and the relative energy savings for these three representative circuits.
The parameters used in all Case Studies are given in Table 3.
In the following simulations, a fourth-order Runge–Kutta solver with an error tolerance of 10 6 was applied. Homogeneous initial conditions were used in all components, except for the cylinder and the tank (please see sections “initial equation” for the “DACylinder” and “Ptank” classes in Appendix A). A time step of 10 4 s was sufficient to produce meaningful results in the three Case Studies.

4.1. Case Study 1: Anternate Motion Cylinder

In this first Case Study, the cylinder moves back-and-forth as the directional control valve receives logical signals, coming from the stroke-end positions, as represented in Figure 5a. When sensor a 0 is activated, the control signal is set to 1. Likewise, when sensor a 1 is activated, the valve control signal is reset to 0, resulting in an alternate motion of the cylinder. The power source for the circuit is the air tank TA, whose internal volume and initial pressure are given in Table 3. Figure 5b shows the OpenModelica representation, where the pneumatic components and routines developed for this paper are graphically shown (for space reasons, Modelica graphical annotations are not included in the code listed in Appendix A).
Figure 5b shows that the cylinder has three outputs: two are represented as triangles on the top, and the third one is depicted as a filled circle on the left. The triangles output logical values, which are the signals from sensors a 0 and a 1 , respectively, whereas the circle is a real-vector output, containing several cylinder data, among which the cylinder power (Equation (6)), which is filtered out by another function of the pneumatic library, represented as “CPw”. The air tank also has one output, which is a real number containing the fluid power from the tank (Equation (7)). Both the “CPw” and the tank output need to be integrated prior to being passed to the “Eff” function, which calculates the efficiency from Equation (8). Two Modelica integrators perform this task, integrating between t 1 = 0 and t 2 = t ( 0 t 10   s ). Finally, the flip-flop controller from the Modelica library receives the signals from a 0 and a 1 and outputs the control signal to the directional valve.
Figure 6a shows the evolution in time of the piston displacement and velocity and Figure 6b shows the cap- and rod-side pressures (steady-state is reached after, approximately, 0.5 s). We cannot be sure whether the created library is precise in representing the real situation (no experimental data have been collected for this paper), but the simulation is obviously coherent with the actual circuit behavior.
Circuit efficiency and pressure drop at the tank are better visualized when compared to other circuits. We will do that in the last Case Study.
The following example explores a short-circuited actuator, following path “sc” in Figure 2. Circuits of this kind have been reported in references [7,12,13].

4.2. Case Study 2: Anternate Motion with Short-Circuited Return

Consider now the circuit shown in Figure 7a, whose Modelica schematics is shown in Figure 7b. The cylinder rod-side is connected to the cap-side when the piston is extending, thus reusing energy coming from port 3, as the flow is redirected into port 2 through the 2 × 2 valve, V2. To make use of most of the returned energy, the flow-control valve, at the exhaust port T, of valve V1, is opened to only 0.1% of its maximum aperture. Piston return is not affected, as port 2 connects to port R, when valve V1 is at rest position.
It is important to note that the same flip-flop controller is used for the 5 × 2 and 2 × 2 directional valves. Therefore, to preserve a single connection between the controller and the valve, we use the Modelica function “not”, at the negation port of the flip-flop controller (not Q! equals Q, in Boolean algebra). As for the rest, the circuit in Figure 7b is similar to the circuit in Figure 5b and demands no further explanation.
Results of the simulation for velocity and pressure are shown in Figure 8. The first thing to note is a slight decline in the cylinder velocity when compared to Case Study 1. This becomes evident when we see that the number of cycles has been reduced by one (there are approximately five and a half cycles in Figure 6a, against four and a half cycles in Figure 8a). This seems to be a direct consequence of connecting both cylinder ports to the pressurized line during extension, which attenuates the piston velocity. When analysing the situation in terms of kinetic energy, we may say that less kinetic energy is produced at the cylinder when exhaust energy is recovered.
Even without formally comparing the energy consumptions of the circuits in Figure 5a and Figure 7a, we can conclude that the smaller number of cycles in the short-circuited cylinder will inevitably lead to less air being consumed, which intuitively explains the reason why this circuit is preferred when energy saving is important (there is a commercial solution following this design [7]). However, it does not necessarily mean that the circuit in Figure 7a is more efficient than the circuit in Figure 5a, especially when we observe that it also produces less energy at the piston rod. In other words, if it is true that less energy is consumed in time, it is also true that less energy is delivered to the load. As will be shown in Figure 11a, no efficiency gain is, in fact, obtained, by short-circuiting the cylinder.
The following Case Study simulates a circuit following paths “es” and “rc” in Figure 2.

4.3. Case Study 3: Anternate Motion with Storage and Reuse of Exhaust Energy

This last Case Study is one in which the exhaust energy is stored in an air tank during cylinder extension to be reused when the piston returns to its initial position. Theoretically, most of the energy supplied to the cylinder comes back to itself on the other half of the motion, so that we would expect a very high efficiency in the end. On the other hand, during cylinder extension, the energy consumption can be compared to the conventional circuit, explored in Case Study 1. The circuit used in this example is displayed in Figure 9a, and its corresponding Modelica diagram is shown in Figure 9b.
The idea behind the circuit in Figure 9 can be found, for example, in references [14,20]. Two 3 × 2 valves, V1 and V2, are connected to the cylinder. Valve V1, on the left, is responsible for the cylinder extension and subsequently connects and disconnects the piston chamber to main tank, TA, and the exhaust port. The second valve, V2, does not have a connection to the atmosphere and links the cylinder port 3 to the auxiliary tank, TB, whose volume has been set to (roughly) half the volume of the rod-side chamber (Table 3). When the cylinder is at its leftmost position, sensor a 0 sets the signal at valve V1 to 1, while valve V2 receives 0 at its input (0 = NOT 1). The piston extends against the external force of 100N (Table 3), while tank TB is pressurized by the flow leaving the rod-side. As soon as the end of the stroke is reached, sensor a 1 is activated, and the control signal for valve V1 is set to zero, connecting the cylinder cap-side to the exhaust port, while the rod-side receives flow from tank TB. The pressure within TB, therefore, helps the cylinder return to its initial position. If, in a hypothetical scenario, all energy stored inside TB is sent back to the cylinder, the energy efficiency, measured within an extension–retraction cycle would be 100% (Equation (10)). Since in our simulated circuit, throttling losses and cylinder friction will exist along the way, a 100% efficient circuit will not be obtained. But, right from the start, we expect that the circuit in Figure 9 should be superior to the first two examples in terms of efficiency. And this is in fact the case, according to Figure 11a.
Figure 10a,b show the piston velocity, displacement and pressures at ports 2 and 3 of the cylinder. If we compare the results with those in Figure 6 and Figure 8, we notice the nonuniform velocity and pressure patterns, caused by the presence of tank TB. In fact, the volume attached to port 3 of the cylinder creates a nonlinear resistance to the piston motion, with a direct effect on the piston velocity. Likewise, the discharge of tank TB will not produce a constant pressure on the rod-side chamber (the same is also true for tank TA, but the difference in volumes is significant, so that it seems that the discharge of TA into the piston chamber takes place at an almost constant pressure). The irregular velocity pattern causes a significant difference between extension and retraction times, as seen in a. This might be prohibitive in actual circuits, creating a need for more elaborate circuits and control strategies, which ultimately results in higher costs.
The irregular pressure pattern is also an important factor, since pressure is directly responsible for the piston rod force. A quick look at Figure 10b leads to the conclusion that the pressure differential between cap- and rod- sides of the cylinder is significantly reduced when compared to the previous Case Studies (see Figure 6b and Figure 8b), causing a relative reduction in the net force on the piston rod.
Figure 11a,b compare the efficiencies (Equation (8)) and pressure drops at the main tank, TA, for the three circuits that we have seen so far. As we have predicted, Case Study 3 represents the best solution in terms of efficiency. However, the circuit in Case Study 3 is not better than the circuit in Case Study 2 in terms of relative energy savings, as seen in Figure 11b, standing at an intermediary position between the three presented cases.
The fact that the pressure-drop curves are nearly linear helps us use Equation (12) to calculate the relative energy savings for each case. To do that, we simply use two points in the p 1 t curves, at the beginning and the end of the interval, t 1 = 0   s and t 2 = 10   s , as follows:
β s = 1 7.09 b a r 7.06 b a r 7.09 b a r 7.03 b a r = 50 % ; f o r   C a s e   S t u d y   2 β s = 1 7.09 b a r 7.04 b a r 7.09 b a r 7.03 b a r = 16 % ; f o r   C a s e   S t u d y   3
Considering the limitations of our theoretical analysis, the calculated value of β s is compatible with the 40% savings reported in reference [7] for Case Study 2. As for Case Study 3, we have not found any identical circuit for comparison in the existing literature. Nevertheless, it has been affirmed in [7] that circuits where the exhaust energy is stored can have savings up to 47% (no actual design was presented, though). Reference [20] presents a similar circuit whose energy savings measured up to 43%. Their circuit is more elaborate, though, with the power source (tank TA) pressure also joining in the pressurization of tank TB.
We must bear in mind that we have used the same pressure loss coefficient for the three theoretical analyses and that our main goal has been to present a comparison between circuits. It has never been the intention of this paper to give an accurate theoretical model for pneumatic circuits, though it can be achieved once the correct parameters in the supplied library are modified.

5. Conclusions

In this paper, we presented a new approach for simulating pneumatic circuits using Modelica. We also proposed an efficiency definition which can be easily measured in practical situations and differentiated “efficiency” from “relative energy savings”, for which an indicator has also been proposed.
The small pneumatic library, designed for the purposes of this paper, was sufficiently robust to simulate different circuits, not only producing reasonable results, but helping to pin down the differences between efficiency and energy consumption in pneumatic circuits. In this respect, we have made it clear that energy saving circuits are not always good in terms of efficiency, so that the designer must ponder the pros and cons before choosing a seemingly “more efficient” solution. The library is made available to the reader in a “non-graphical” form, and it can be expanded to include more complex models, including temperature, friction, heat exchange, and air trapped at the cylinder stops. The “acausal” Modelica approach makes it possible to simply adjust the individual models without the need for reprogramming the whole script. Nevertheless, we still face some challenges. It is necessary to test the proposed library with other circuits, adjust the needed coefficients using experimental data, and compare the results with those obtained from commercial software and other numerical simulations. This will be a natural follow up from this paper and is intended for future works.

Funding

This research received no external funding.

Institutional Review Board Statement

Not applicable.

Informed Consent Statement

Not applicable.

Data Availability Statement

Data is contained within the article.

Conflicts of Interest

The author declares no conflicts of interest.

Appendix A. Pneumatic Modelica Library and Case Studies

package PneumaticsCostaGK
//--------------------------------------------------------------------------------
class CPsource
extends Basic.PConstants;
parameter Modelica.Units.SI.Pressure p_s(start = 7*p0);
PneumaticsCostaGK.Basic.Pconnect A;
equation
A.p = p_s;
end CPsource;
//--------------------------------------------------------------------------------
class Exhaust
extends Basic.PConstants;
PneumaticsCostaGK.Basic.Pconnect A;
equation
A.p = p0;
end Exhaust;
//--------------------------------------------------------------------------------
class DACylinder
extends Basic.PConstants;
PneumaticsCostaGK.Basic.Pconnect A;
PneumaticsCostaGK.Basic.Pconnect B;
Modelica.Blocks.Interfaces.BooleanOutput Y0 (start = true);
Modelica.Blocks.Interfaces.BooleanOutput Y1 (start = false);
Modelica.Blocks.Interfaces.RealVectorOutput YR [5];
Modelica.Units.SI.Area AA “Piston area”;
Modelica.Units.SI.Area AB “Ring area”;
Modelica.Units.SI.Length x “Piston displacement”;
Modelica.Units.SI.Velocity v “Piston velocity”;
Modelica.Units.SI.Pressure pA “Cap-side pressure”;
Modelica.Units.SI.Pressure pB “Rod-side pressure”;
Modelica.Units.SI.Volume VA, V0A “Cap-side and dead volumes”;
Modelica.Units.SI.Volume VB, V0B “Rod-side and dead volumes”;
parameter Modelica.Units.SI.Mass M (start = 1.0);
parameter Modelica.Units.SI.Length Dp (start = 0.05);
parameter Modelica.Units.SI.Length Dr (start = 0.02);
parameter Modelica.Units.SI.Length L (start = 0.5);
parameter Modelica.Units.SI.Force F (start = 100);
parameter Real eps = 0.05 “Dead volume percentual”;
constant Real b = 200 “Viscous friction coefficient”;
initial equation
x = 0;
pA = p0;
pB = p0;
equation
AA = 0.785*(Dp^2);
AB = 0.785*(Dp^2 − Dr^2);
V0A = eps*AA*L;
V0B = eps*AB*L;
VA = V0A + AA*x;
VB = V0B + AB*(L-x);
Y0 = (x<=eps*L);
Y1 = (x>=(L-eps*L));
A.mf + (1/(Rair*T0))*(pA*AA*v + VA*der(pA)) = 0;
B.mf + (1/(Rair*T0))*(VB*der(pB) − pB*AB*v) = 0;
pA = A.p;
pB = B.p;
der(v) = (1/M)*((pA-p0)*AA − (pB-p0)*AB − b*v − F);
if (Y0 and v < 0) or (Y1 and v > 0) then
der(x) = 0;
else
der(x) = v;
end if;
YR [1] = x; YR [2] = v; YR [3] = pA; YR [4] = pB;
YR [5] = (pA*AA − pB*AB)*v;
end DACylinder;
//--------------------------------------------------------------------------------
class P2X2V
PneumaticsCostaGK.Basic.Pconnect A;
PneumaticsCostaGK.Basic.Pconnect P;
Modelica.Blocks.Interfaces.BooleanInput X (start = false);
equation
if X then
if P.p>=A.p then
P.mf = −A.p*Basic.ISOcst(P.p, A.p, 1.0);
else
P.mf = P.p*Basic.ISOcst(P.p, A.p, 1.0);
end if;
A.mf + P.mf = 0;
else
P.mf = 0; A.mf = 0;
end if;
end P2X2V;
class PTee
PneumaticsCostaGK.Basic.Pconnect A;
PneumaticsCostaGK.Basic.Pconnect B;
PneumaticsCostaGK.Basic.Pconnect C; ]
equation
A.mf + B.mf + C.mf = 0;
B.p = A.p;
C.p = B.p;
end PTee;
//--------------------------------------------------------------------------------
class PVOrifice
extends PneumaticsCostaGK.Basic;
Modelica.Blocks.Interfaces.RealInput X (start = 1.0);
PneumaticsCostaGK.Basic.Pconnect A;
PneumaticsCostaGK.Basic.Pconnect B;
equation
if A.p>B.p then
A.mf = −B.p*X*ISOcst(A.p, B.p, 1.0);
elseif B.p>A.p then
A.mf = B.p*X*ISOcst(A.p, B.p, 1.0);
else
A.mf = 0;
end if;
B.mf + A.mf = 0;
end PVOrifice;
//--------------------------------------------------------------------------------
package Basic
record PConstants
constant Real Rair = 287;
constant Modelica.Units.SI.Pressure p0 = 101,325;
constant Modelica.Units.SI.Temperature T0 = 283;
end PConstants;
//--------------------------------------------------------------------------------
function ISOcst
input Real px, py, cx(start = 1.0);
output Real y;
protected
Modelica.Units.SI.Pressure p, pmax, pmin;
Real Af, rp;
constant Real L = 0.528;
constant Real C = 7e-8;
algorithm
pmax := max(px, py);
pmin := min(px, py);
p := pmax;
if pmax > 0 then
rp := pmin/pmax;
else
rp:= 0;
end if;
if (rp > L and rp <= 1) then
Af := C*cx*sqrt(1 − ((rp − L)/(1 − L))^2);
elseif (rp >= 0 and rp <= L) then
Af := C*cx;
else
Af := 0.0;
end if;
y := Af;
end ISOcst;
//--------------------------------------------------------------------------------
connector Pconnect
Modelica.Units.SI.Pressure p;
flow Modelica.Units.SI.MassFlowRate mf;
end Pconnect;
end Basic;
//--------------------------------------------------------------------------------
package Utilities
class CPower
Modelica.Blocks.Interfaces.RealOutput Y;
Modelica.Blocks.Interfaces.RealVectorInput X [5];
equation
Y = X [5];
end CPower;
//--------------------------------------------------------------------------------
class Eff
Modelica.Blocks.Interfaces.RealOutput Y;
Modelica.Blocks.Interfaces.RealInput X2;
Modelica.Blocks.Interfaces.RealInput X1;
equation
Y = X1/X2;
end Eff;
end Utilities;
end PneumaticsCostaGK;
//Case Study 3
//--------------------------------------------------------------------------------
model CS3
PneumaticsCostaGK.DACylinder dACylinder;
PneumaticsCostaGK.Exhaust exhaust1;
Modelica.Blocks.Logical.RSFlipFlop rSFlipFlop;
PneumaticsCostaGK.P3X2V p3X2v;
PneumaticsCostaGK.Ptank ptank1(p_in = 1e5, V = 0.0004);
PneumaticsCostaGK.PTee pTee annotation(
Placement(transformation(origin = {172, −18}, extent = {{−10, −10}, {10, 10}})));
Modelica.Blocks.Interaction.Show.RealValue realValue1;
PneumaticsCostaGK.Utilities.Eff eff;
Modelica.Blocks.Interaction.Show.RealValue realValue;
Modelica.Blocks.Continuous.Integrator IntCylinder;
PneumaticsCostaGK.Utilities.CPower cPower;
Modelica.Blocks.Continuous.Integrator Intank;
PneumaticsCostaGK.Ptank ptank;
PneumaticsCostaGK.P3X2V p3X2v1;
equation
connect(dACylinder.Y0, rSFlipFlop.S);
connect(dACylinder.Y1, rSFlipFlop.R);
connect(dACylinder.B, p3X2v1.A);
connect(exhaust1.A, p3X2v.T);
connect(rSFlipFlop.Q, p3X2v.X);
connect(rSFlipFlop.QI, p3X2v1.X);
connect(ptank1.Y, realValue1.numberPort);
connect(p3X2v1.P, pTee.B);
connect(ptank1.A, pTee.A);
connect(cPower.Y, IntCylinder.u);
connect(IntCylinder.y, eff.X1);
connect(Intank.y, eff.X2);
connect(eff.Y, realValue.numberPort);
connect(cPower.X, dACylinder.YR);
connect(ptank.A, p3X2v.P);
connect(Intank.u, ptank.Y);
connect(p3X2v1.T, pTee.C);
connect(dACylinder.A, p3X2v.A);
end CS3;
class P5X2V
PneumaticsCostaGK.Basic.Pconnect A;
PneumaticsCostaGK.Basic.Pconnect B;
PneumaticsCostaGK.Basic.Pconnect P;
PneumaticsCostaGK.Basic.Pconnect R;
PneumaticsCostaGK.Basic.Pconnect T;
Modelica.Blocks.Interfaces.BooleanInput X;
equation
if X then
if P.p>=A.p then
P.mf = −A.p*Basic.ISOcst(P.p, A.p, 1.0);
else
P.mf = P.p*Basic.ISOcst(P.p, A.p,1.0);
end if;
A.mf + P.mf = 0;
if B.p>=T.p then
B.mf = −T.p*Basic.ISOcst(B.p, T.p, 1.0);
else
B.mf = B.p*Basic.ISOcst(B.p, T.p, 1.0);
end if;
T.mf + B.mf = 0;
R.mf = 0;
else
if P.p>=B.p then
P.mf = −B.p*Basic.ISOcst(P.p, B.p, 1.0);
else
P.mf = P.p*Basic.ISOcst(P.p, B.p,1.0);
end if;
B.mf + P.mf = 0;
if A.p>=R.p then
A.mf = −R.p*Basic.ISOcst(A.p, R.p, 1.0);
else
A.mf = A.p*Basic.ISOcst(A.p, R.p, 1.0);
end if;
R.mf + A.mf = 0;
T.mf = 0;
end if;
end P5X2V;
//--------------------------------------------------------------------------------
class P3X2V
PneumaticsCostaGK.Basic.Pconnect A;
PneumaticsCostaGK.Basic.Pconnect P;
PneumaticsCostaGK.Basic.Pconnect T;
Modelica.Blocks.Interfaces.BooleanInput X;
equation
if X then
if P.p>=A.p then
P.mf = −A.p*Basic.ISOcst(P.p, A.p, 1.0);
else
P.mf = P.p*Basic.ISOcst(P.p, A.p, 1.0);
end if;
A.mf + P.mf = 0;
T.mf = 0;
else
if A.p>=T.p then
A.mf = −T.p*Basic.ISOcst(A.p, T.p, 1.0);
else
A.mf = A.p*Basic.ISOcst(A.p, T.p,1.0);
end if;
T.mf + A.mf = 0;
P.mf = 0;
end if;
end P3X2V;
//--------------------------------------------------------------------------------
class Ptank
extends Basic.PConstants;
PneumaticsCostaGK.Basic.Pconnect A;
parameter Modelica.Units.SI.Pressure p_in (start = 7*p0);
parameter Modelica.Units.SI.Volume V = 1.0;
Modelica.Units.SI.Pressure p;
Modelica.Units.SI.MassFlowRate Mf;
Modelica.Blocks.Interfaces.RealOutput Y;
initial equation
p = p_in;
equation
Mf = A.mf;
A.p = p;
Mf + (V/(Rair*T0))*der(p) = 0;
Y = Rair*T0*abs(A.mf);
end Ptank;
//Case Study 1
//--------------------------------------------------------------------------------
model CS1
PneumaticsCostaGK.P5X2V p5X2v;
PneumaticsCostaGK.Exhaust exhaust;
PneumaticsCostaGK.DACylinder dACylinder;
PneumaticsCostaGK.Exhaust exhaust1;
Modelica.Blocks.Logical.RSFlipFlop rSFlipFlop;
PneumaticsCostaGK.Ptank ptank;
PneumaticsCostaGK.Utilities.Eff eff;
Modelica.Blocks.Interaction.Show.RealValue realValue;
Modelica.Blocks.Continuous.Integrator IntCylinder;
PneumaticsCostaGK.Utilities.CPower cPower;
Modelica.Blocks.Continuous.Integrator Intank;
equation
connect(exhaust.A, p5X2v.T);
connect(p5X2v.R, exhaust1.A);
connect(rSFlipFlop.Q, p5X2v.X);
connect(dACylinder.Y0, rSFlipFlop.S);
connect(dACylinder.Y1, rSFlipFlop.R);
connect(p5X2v.B, dACylinder.B);
connect(dACylinder.A, p5X2v.A);
connect(p5X2v.P, ptank.A);
connect(cPower.Y, IntCylinder.u);
connect(IntCylinder.y, eff.X1);
connect(Intank.y, eff.X2);
connect(eff.Y, realValue.numberPort);
connect(cPower.X, dACylinder.YR);
connect(ptank.Y, Intank.u);
end CS1;
//--------------------------------------------------------------------------------
//Case Study 2
//--------------------------------------------------------------------------------
model CS2
PneumaticsCostaGK.DACylinder dACylinder;
PneumaticsCostaGK.Ptank ptank;
PneumaticsCostaGK.P5X2V p5X2v;
PneumaticsCostaGK.Exhaust exhaust;
PneumaticsCostaGK.PTee pTee;
PneumaticsCostaGK.PTee pTee1;
Modelica.Blocks.Logical.RSFlipFlop rSFlipFlop;
Modelica.Blocks.Logical.Not not1;
PneumaticsCostaGK.Exhaust exhaust1;
PneumaticsCostaGK.Utilities.Eff eff;
Modelica.Blocks.Interaction.Show.RealValue realValue;
Modelica.Blocks.Continuous.Integrator IntCylinder;
PneumaticsCostaGK.Utilities.CPower cPower;
Modelica.Blocks.Continuous.Integrator Intank;
PneumaticsCostaGK.P2X2V p2X2v;
PneumaticsCostaGK.PVOrifice pVOrifice;
Modelica.Blocks.Sources.Constant const(k = 0.0001);
equation
connect(p5X2v.P, ptank.A);
connect(dACylinder.A, pTee.C);
connect(pTee.B, p5X2v.A);
connect(pTee1.B, dACylinder.B);
connect(pTee1.C, p5X2v.B);
connect(rSFlipFlop.QI, not1.u);
connect(not1.y, p5X2v.X);
connect(rSFlipFlop.S, dACylinder.Y0);
connect(rSFlipFlop.R, dACylinder.Y1);
connect(cPower.Y, IntCylinder.u);
connect(IntCylinder.y, eff.X1);
connect(Intank.y, eff.X2);
connect(eff.Y, realValue.numberPort);
connect(Intank.u, ptank.Y);
connect(cPower.X, dACylinder.YR);
connect(pTee.A, p2X2v.P);
connect(p2X2v.A, pTee1.A);
connect(p2X2v.X, rSFlipFlop.Q);
connect(p5X2v.R, exhaust.A);
connect(p5X2v.T, pVOrifice.A);
connect(pVOrifice.B, exhaust1.A);
connect(pVOrifice.X, const.y);
end CS2;

References

  1. Kaya, D.; Kılıç, F.Ç.; Öztürk, H.H. Energy Management and Energy Efficiency in Industry: Practical Examples; Springer Nature: Cham, Switzerland, 2021; pp. 395–418. [Google Scholar]
  2. Jovanovic, V.; Stevanov, B.; Šešlija, D.; Dudić, S.; Tešić, Z. Energy efficiency optimization of air supply system in a water bottle manufacturing system. J. Clean. Prod. 2014, 85, 306–317. [Google Scholar] [CrossRef]
  3. Boyko, V.; Nazarov, F.; Gauchel, W.; Neumann, R.; Doll, M.; Weber, J. Comprehensive application-based analysis of energy-saving measures in Pneumatics. Int. J. Fluid Power 2024, 25, 27–58. [Google Scholar]
  4. Gryboś, D.; Leszczyński, J.S. A Review of energy overconsumption reduction methods in the utilization stage in compressed air systems. Energies 2024, 17, 1495. [Google Scholar] [CrossRef]
  5. Šešlija, D.D.; Milenković, I.M.; Dudić, S.P.; Šulc, J.I. Improving energy efficiency in compressed air systems-practical experiences. Therm. Sci. 2016, 20 (Suppl. S1), 355–370. [Google Scholar] [CrossRef]
  6. Boyko, V.; Weber, J. Energy Efficiency of Pneumatic Actuating Systems with Pressure-Based Air Supply Cut-Off. Actuators 2024, 13, 44. [Google Scholar] [CrossRef]
  7. Heitmann, M.; Rein, F. Energy Efficiency in Pneumatics with the ‘Air Saving Box’: The Revolutionary Plug & Play Solution from SMC. In Proceedings of the 12th International Fluid Power Conference (12. IFK), Dresden, Germany, 12–14 October 2020; Volume 3, pp. 53–57. [Google Scholar]
  8. Shi, Y.; Li, X.; Teng, Y. Research on Pneumatic Cylinder’s Exhausted-Air Reclaiming Control Devices. In Proceedings of the 6th JFPS International Symposium on Fluid Power, Tsukuba, Japan, 7–10 November 2005. [Google Scholar]
  9. OpenModelica. Available online: https://openmodelica.org (accessed on 1 October 2024).
  10. Drente, P.; Junglas, P. Simulating a pneumatics network using the Modelica fluid library. Simul. Notes Eur. SNE 2015, 25, 85–92. [Google Scholar] [CrossRef]
  11. Dos Passos, T.M.A.; Monteiro, L.L.; Da Costa, J.A.P.; Costa, G.K. Proposta de uma biblioteca em Modelica para simulação de circuitos pneumáticos. Rev. Principia 2025, 62, 1–18. [Google Scholar] [CrossRef]
  12. Shen, X.; Goldfarb, M. Energy Saving in pneumatic servo control utilizing interchamber cross-flow. ASME J. Dyn. Sys. Meas. Control. 2007, 129, 303–310. [Google Scholar] [CrossRef]
  13. Blagojević, V.; Šešlija, D.; Stojiljković, M.; Dudić, S. Efficient control of servo pneumatic actuator system utilizing by-pass valve and digital sliding mode. Sadhana 2013, 38, 187–197. [Google Scholar] [CrossRef]
  14. Šešlija, M.; Reljić, V.; Šešlija, D.; Dudić, S.; Dakić, N.; Jovanović, Z. Reuse of Exhausted Air from Multi-Actuator Pneumatic Control Systems. Actuators 2021, 10, 125. [Google Scholar] [CrossRef]
  15. Novakovic, M.; Seslija, D.; Cajetinac, S.; Todorovic, M. Impact of Capturing Used Air on the Dynamics of Actuator Drive. Control. Eng. Appl. Inform.—CEAI 2015, 17, 82–89. [Google Scholar]
  16. AL-Dakkan, K.A.; Goldfarb, M.; Barth, E.J. Energy Saving Control for Pneumatic Servo Systems. In Proceedings of the 2003 IEEW/ASME International Conference on Advanced Intelligent Mechatronics, Kobe, Japan, 20–24 July 2023. [Google Scholar]
  17. Gailis, M.; Rudzitis, J.; Madissoo, M.; Kreicbergs, J. Research on energy efficiency of pneumatic cylinder for pneumatic vehicle motor. Agron. Res. 2020, 18, 823–841. [Google Scholar]
  18. Gryboś, D.; Leszczyński, J. Exergy analysis of pressure reduction, back pressure and intermittent air supply configuration of utilization/expansion stage in compressed air systems. Energy 2023, 285, 129419. [Google Scholar]
  19. Bader, W.; Kissock, J. Exergy Analysis of Industrial Air Compression. In Proceedings of the Twenty-Second National Industrial Energy Technology Conference, Houston, TX, USA, 5–6 April 2000. [Google Scholar]
  20. Hepke, J.; Weber, J. Energy saving measures on pneumatic drive systems. In Proceedings of the 13th Scandinavian International Conference on Fluid Power, SICFP2013, Linköping, Sweden, 3–5 June 2013. [Google Scholar]
  21. Costa, G.K.; Sepehri, N. Hydrostatic Transmissions and Actuators—Operation, Modelling and Applications; John Wiley & Sons: Chichester, UK, 2015. [Google Scholar]
  22. Fritzson, P. Introduction to Modeling and Simulation of Technical and Physical Systems with Modelica; John Wiley & Sons: Chichester, UK, 2011. [Google Scholar]
  23. Tran, X.B.; Nguyen, V.L.; Tran, K.D. Effects of friction models on simulation of pneumatic cylinder. Mech. Sci. 2019, 10, 517–528. [Google Scholar] [CrossRef]
  24. Recchia, D. Friction Modelling of Pneumatic Cylinders for Servo-Positioning Systems. Master’s Thesis, Politecnico di Torino, Torino, Italy, 2023. [Google Scholar]
  25. Andrighetto, P.L.; Valdiero, A.C.; Carlotto, L. Study of the friction behavior in industrial pneumatic actuators. In Proceedings of the 18th International Congress of Mechanical Engineering, Ouro Preto, MG, Brazil, 6–11 November 2005. [Google Scholar]
  26. Dagdelen, M.; Sarıgeçili, M. Estimation of the friction parameters of linear pneumatic cylinders. J. Eng. Sci. Des. 2020, 8, 397–406. [Google Scholar] [CrossRef]
  27. Shearer, J.L. Study of pneumatic processes in the continuous control of motion with compressed air—I, II. Trans. ASME 1956, 78, 233–242. [Google Scholar] [CrossRef]
  28. ISO 6358-1: 2013; Pneumatic Fluid Power–Determination of Flow Rate Characteristics of Components Compressible Fluids–Part 1: General Rules and Test Methods for Steady-State Flow. ISO: Geneva, Switzerland, 2013. Available online: https://www.iso.org/standard/56612.html (accessed on 13 October 2023).
  29. Costa, G.K. Modelling Air Flow through Pneumatic Valves: A Brief Review with an Experimental Case Study. Eng 2023, 4, 2601–2614. [Google Scholar] [CrossRef]
  30. Hartshorn, L. The Discharge of Gases under High Pressures. Phil. Mag. 1916, 32, 178–188. [Google Scholar]
  31. Bobrow, J.E.; McDonell, W. Modeling, identification, and control of a pneumatically actuated, force controllable robot. IEEE Trans. Robot. Autom. 1998, 14, 732–742. [Google Scholar]
Figure 1. Typical pneumatic cylinder control: (a) proportional valve; (b) directional and flow-control valves; (c) proportional valve with quick-exhaust valves; (d) on–off cylinder control; (e) on–off control with independent valves, and (f) single-acting cylinder.
Figure 1. Typical pneumatic cylinder control: (a) proportional valve; (b) directional and flow-control valves; (c) proportional valve with quick-exhaust valves; (d) on–off cylinder control; (e) on–off control with independent valves, and (f) single-acting cylinder.
Jeta 03 00011 g001
Figure 2. Different flow paths from the rod-side port, 7.
Figure 2. Different flow paths from the rod-side port, 7.
Jeta 03 00011 g002
Figure 3. (a) Schematic representation of a cylinder during extension with exhaust energy recovery; (b) mass and force flows through a control volume, CV, around the cylinder.
Figure 3. (a) Schematic representation of a cylinder during extension with exhaust energy recovery; (b) mass and force flows through a control volume, CV, around the cylinder.
Jeta 03 00011 g003
Figure 4. (a) Air tank charged; (b) air tank being discharged.
Figure 4. (a) Air tank charged; (b) air tank being discharged.
Jeta 03 00011 g004
Figure 5. (a) Alternate cylinder motion circuit; (b) Open Modelica diagram.
Figure 5. (a) Alternate cylinder motion circuit; (b) Open Modelica diagram.
Jeta 03 00011 g005
Figure 6. Time evolution of (a) piston displacement and velocity and (b) cap- and rod-side pressures.
Figure 6. Time evolution of (a) piston displacement and velocity and (b) cap- and rod-side pressures.
Jeta 03 00011 g006
Figure 7. (a) Short-circuited cylinder; (b) OpenModelica diagram.
Figure 7. (a) Short-circuited cylinder; (b) OpenModelica diagram.
Jeta 03 00011 g007
Figure 8. Time evolution of (a) piston displacement and velocity and (b) cap- and rod-side pressures (short-circuited cylinder).
Figure 8. Time evolution of (a) piston displacement and velocity and (b) cap- and rod-side pressures (short-circuited cylinder).
Jeta 03 00011 g008
Figure 9. (a) Circuit with reuse of the exhaust energy; (b) Open Modelica diagram.
Figure 9. (a) Circuit with reuse of the exhaust energy; (b) Open Modelica diagram.
Jeta 03 00011 g009
Figure 10. Time evolution of (a) piston displacement and velocity and (b) cap- and rod-side pressures, for the circuit in Figure 11.
Figure 10. Time evolution of (a) piston displacement and velocity and (b) cap- and rod-side pressures, for the circuit in Figure 11.
Jeta 03 00011 g010
Figure 11. Time evolution of (a) circuit efficiency and (b) pressure at the port 1 of tanks, TA, for the three circuits examined in this paper.
Figure 11. Time evolution of (a) circuit efficiency and (b) pressure at the port 1 of tanks, TA, for the three circuits examined in this paper.
Jeta 03 00011 g011
Table 1. Modelled pneumatic components *.
Table 1. Modelled pneumatic components *.
ReferenceComponentReferenceComponent
DACylinderJeta 03 00011 i001P5X2VJeta 03 00011 i002
CPsource and ExhaustJeta 03 00011 i003Jeta 03 00011 i004P3X2VJeta 03 00011 i005
PVOrificeJeta 03 00011 i006P2X2VJeta 03 00011 i007
PTeeJeta 03 00011 i008PtankJeta 03 00011 i009
* Control signal s is a logical value; c x is a real value ( 0 c x 1 ).
Table 2. Flow-inducing pressure differentials for the directional valves listed in Table 1.
Table 2. Flow-inducing pressure differentials for the directional valves listed in Table 1.
Valve Pressure   differential   ( p X Y ,   X , Y P , A , B , R , T )
P5X2V p P B = p B p P ; p A R = p R p A ; s = 0 p P A = p A p P ; p B T = p T p B ; s = 1
P3X2V p A T = p T p A ; s = 0 p P A = p A p P ; s = 1
P2X2V p P A = p A p P ; s = 1
Table 3. Numerical data input for the examples presented in this section.
Table 3. Numerical data input for the examples presented in this section.
ElementData
Whole circuitAir temperature (K)293 K
CylinderPiston diameter 0.05 m
Rod diameter 0.02 m
Stroke 0.5 m
Displaced volume (cap-side)0.0009812 m3
Displaced volume (rod-side)0.0008243 m3
Pison-rod mass 1.0 kg
External (resistive) force100 N
Air tank (TA)Internal volume 1.0 m3
Initial pressure * 7 p 0
Air tank (TB)Internal volume 0.0004 m3
Initial pressure * p 0
Valves Valve   coefficient ,   C f 7.0 × 10 8   m · s
* p 0 = 101,325   P a is the value of the atmospheric pressure at sea level.
Disclaimer/Publisher’s Note: The statements, opinions and data contained in all publications are solely those of the individual author(s) and contributor(s) and not of MDPI and/or the editor(s). MDPI and/or the editor(s) disclaim responsibility for any injury to people or property resulting from any ideas, methods, instructions or products referred to in the content.

Share and Cite

MDPI and ACS Style

Costa, G.K. A Modelica-Based Model for Pneumatic Circuits with a Focus on Energy Efficiency. J. Exp. Theor. Anal. 2025, 3, 11. https://doi.org/10.3390/jeta3020011

AMA Style

Costa GK. A Modelica-Based Model for Pneumatic Circuits with a Focus on Energy Efficiency. Journal of Experimental and Theoretical Analyses. 2025; 3(2):11. https://doi.org/10.3390/jeta3020011

Chicago/Turabian Style

Costa, Gustavo Koury. 2025. "A Modelica-Based Model for Pneumatic Circuits with a Focus on Energy Efficiency" Journal of Experimental and Theoretical Analyses 3, no. 2: 11. https://doi.org/10.3390/jeta3020011

APA Style

Costa, G. K. (2025). A Modelica-Based Model for Pneumatic Circuits with a Focus on Energy Efficiency. Journal of Experimental and Theoretical Analyses, 3(2), 11. https://doi.org/10.3390/jeta3020011

Article Metrics

Back to TopTop