A Modelica-Based Model for Pneumatic Circuits with a Focus on Energy Efficiency
Abstract
:1. Introduction
- 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].
2. Energy Efficiency and Energy Saving
2.1. Circuit Efficiency
2.2. Energy Recovery
3. Using Modelica to Create a Library for Pneumatic Components
- 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.
3.1. Cylinder Model (DACylinder)
3.2. Source, Exhaust, and Air Tank (CPSource, Exhaust and Ptank)
3.3. Directional Valve Models (P5X2V, P3X2V and P2X2V)
3.4. Flow-Control Valve (PVOrifice)
3.5. Pneumatic Line Connections (PTee)
4. Numerical Experiments and Results
4.1. Case Study 1: Anternate Motion Cylinder
4.2. Case Study 2: Anternate Motion with Short-Circuited Return
4.3. Case Study 3: Anternate Motion with Storage and Reuse of Exhaust Energy
5. Conclusions
Funding
Institutional Review Board Statement
Informed Consent Statement
Data Availability Statement
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
- 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]
- 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]
- 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]
- 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]
- Š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]
- Boyko, V.; Weber, J. Energy Efficiency of Pneumatic Actuating Systems with Pressure-Based Air Supply Cut-Off. Actuators 2024, 13, 44. [Google Scholar] [CrossRef]
- 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]
- 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]
- OpenModelica. Available online: https://openmodelica.org (accessed on 1 October 2024).
- Drente, P.; Junglas, P. Simulating a pneumatics network using the Modelica fluid library. Simul. Notes Eur. SNE 2015, 25, 85–92. [Google Scholar] [CrossRef]
- 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]
- 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]
- 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]
- Š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]
- 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]
- 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]
- 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]
- 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]
- 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]
- 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]
- Costa, G.K.; Sepehri, N. Hydrostatic Transmissions and Actuators—Operation, Modelling and Applications; John Wiley & Sons: Chichester, UK, 2015. [Google Scholar]
- Fritzson, P. Introduction to Modeling and Simulation of Technical and Physical Systems with Modelica; John Wiley & Sons: Chichester, UK, 2011. [Google Scholar]
- 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]
- Recchia, D. Friction Modelling of Pneumatic Cylinders for Servo-Positioning Systems. Master’s Thesis, Politecnico di Torino, Torino, Italy, 2023. [Google Scholar]
- 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]
- 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]
- 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]
- 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).
- 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]
- Hartshorn, L. The Discharge of Gases under High Pressures. Phil. Mag. 1916, 32, 178–188. [Google Scholar]
- 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]
Reference | Component | Reference | Component | |
---|---|---|---|---|
DACylinder | P5X2V | |||
CPsource and Exhaust | P3X2V | |||
PVOrifice | P2X2V | |||
PTee | Ptank |
Valve | ) |
P5X2V | |
P3X2V | |
P2X2V |
Element | Data | |
---|---|---|
Whole circuit | Air temperature (K) | 293 K |
Cylinder | Piston 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) force | 100 N | |
Air tank (TA) | Internal volume | 1.0 m3 |
Initial pressure * | ||
Air tank (TB) | Internal volume | 0.0004 m3 |
Initial pressure * | ||
Valves |
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. |
© 2025 by the author. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license (https://creativecommons.org/licenses/by/4.0/).
Share and Cite
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
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 StyleCosta, 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 StyleCosta, 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