This paper addresses the challenge of tracking an arbitrary power profile in a proton exchange membrane fuel cell (PEMFC) in the presence of measurement noise and disturbances. To this end, we used an extended Kalman filter (EKF) to estimate the internal states of the PEMFC in conjunction with an adaptive sliding mode controller (SMC) that has been shown to reduce chatter. The model used by the controller captures the internal dynamics and nonlinearly, and is accurate within 0.1% of the high-fidelity model. We developed the conditions necessary for the stability of the proposed controller based on the Lyapunov stability theorem. We also developed a systematic multi-objective optimization methodology of the controller hyperparameters to simultaneously minimizing tracking error, controller-chatter, and controller input using the non-dominated sorting genetic algorithm Ⅱ (NSGA-Ⅱ). The controller performance was demonstrated using multiple simulated experiments. Based on experimental results on desired signal data, we concluded that the proposed controller scheme can track desired power profiles within a 1% error.
Citation: Alireza Beigi, Krishna Vijayaraghavan. An NSGA-Ⅱ-based parameter tuning algorithm for EKF-based sliding mode controller of PEM fuel cells[J]. AIMS Energy, 2026, 14(2): 418-448. doi: 10.3934/energy.2026018
This paper addresses the challenge of tracking an arbitrary power profile in a proton exchange membrane fuel cell (PEMFC) in the presence of measurement noise and disturbances. To this end, we used an extended Kalman filter (EKF) to estimate the internal states of the PEMFC in conjunction with an adaptive sliding mode controller (SMC) that has been shown to reduce chatter. The model used by the controller captures the internal dynamics and nonlinearly, and is accurate within 0.1% of the high-fidelity model. We developed the conditions necessary for the stability of the proposed controller based on the Lyapunov stability theorem. We also developed a systematic multi-objective optimization methodology of the controller hyperparameters to simultaneously minimizing tracking error, controller-chatter, and controller input using the non-dominated sorting genetic algorithm Ⅱ (NSGA-Ⅱ). The controller performance was demonstrated using multiple simulated experiments. Based on experimental results on desired signal data, we concluded that the proposed controller scheme can track desired power profiles within a 1% error.
| [1] | Das PK, Barbir F, Jiao K, et al. (2023) Chapter 1—Fuel cells for transportation—An overview. In: Das PK, Jiao K, Wang Y, et al. (Eds), Fuel Cells for Transportation, Woodhead Publishing, 1–28. wahttps://doi.org/10.1016/B978-0-323-99485-9.00013-7ngzhi |
| [2] | Sørensen B, Spazzafumo G (2018) 5—Implementation scenarios. In: Sørensen B, Spazzafumo G (Eds), Hydrogen and Fuel Cells (Third Edition), Academic Press, 273–411. https://doi.org/10.1016/B978-0-08-100708-2.00005-9 |
| [3] | Barbir F (2005) Chapter 10—Fuel Cell Applications. In: Barbir F (Ed.), PEM Fuel Cells, Burlington, Academic Press, 337–397. https://doi.org/10.1016/B978-012078142-3/50011-2 |
| [4] |
Cao Y, Li Y, Zhang G, et al. (2020) An efficient terminal voltage control for PEMFC based on an improved version of whale optimization algorithm. Energy Rep 6: 530–542. https://doi.org/10.1016/j.egyr.2020.02.035 doi: 10.1016/j.egyr.2020.02.035
|
| [5] |
Li J, Yu T (2021) Distributed deep reinforcement learning for optimal voltage control of PEMFC. IET Renewable Power Gener 15: 2778–2798. https://doi.org/10.1049/rpg2.12202 doi: 10.1049/rpg2.12202
|
| [6] |
Giménez SN, Durá JMH, Ferragud FXB, et al. (2020) Design and experimental validation of the temperature control of a PEMFC stack by applying multiobjective optimization. IEEE Access 8: 183324–183343. https://doi.org/10.1109/ACCESS.2020.3029321 doi: 10.1109/ACCESS.2020.3029321
|
| [7] |
Huang L, Chen J, Liu Z, et al. (2018) Adaptive thermal control for PEMFC systems with guaranteed performance. Int J Hydrogen Energy 43: 11550–11558. https://doi.org/10.1016/j.ijhydene.2017.12.121 doi: 10.1016/j.ijhydene.2017.12.121
|
| [8] |
Segura F, Andujar JM, Duran E (2011) Analog current control techniques for power control in PEM fuel-cell hybrid systems: A critical review and a practical application. IEEE Trans Ind Electron 58: 1171–1184. https://doi.org/10.1109/TIE.2010.2049710 doi: 10.1109/TIE.2010.2049710
|
| [9] |
Garcia-Gabin W, Dorado F, Bordons C (2010) Real-time implementation of a sliding mode controller for air supply on a PEM fuel cell. J Process Control 20: 325–336. https://doi.org/10.1016/j.jprocont.2009.11.006 doi: 10.1016/j.jprocont.2009.11.006
|
| [10] |
Matraji I, Ahmed FS, Laghrouche S, et al. (2015) Comparison of robust and adaptive second order sliding mode control in PEMFC air-feed systems. Int J Hydrogen Energy 40: 9491–9504. https://doi.org/10.1016/j.ijhydene.2015.05.090 doi: 10.1016/j.ijhydene.2015.05.090
|
| [11] |
Kakaç S, Pramuanjaroenkij A, Zhou XY (2007) A review of numerical modeling of solid oxide fuel cells. Int J Hydrogen Energy 32: 761–786. https://doi.org/10.1016/j.ijhydene.2006.11.028 doi: 10.1016/j.ijhydene.2006.11.028
|
| [12] |
Ghorbani B, Vijayaraghavan K (2019) A review study on software-based modeling of hydrogen-fueled solid oxide fuel cells. Int J Hydrogen Energy 44: 13700–13727. https://doi.org/10.1016/j.ijhydene.2019.03.217 doi: 10.1016/j.ijhydene.2019.03.217
|
| [13] |
van Biert L, Godjevac M, Visser K, et al. (2019) Dynamic modelling of a direct internal reforming solid oxide fuel cell stack based on single cell experiments. Appl Energy 250: 976–990. https://doi.org/10.1016/j.apenergy.2019.05.053 doi: 10.1016/j.apenergy.2019.05.053
|
| [14] |
Su Y, Zhong Z, Jiao Z (2022) A novel multi-physics coupled heterogeneous single-cell numerical model for solid oxide fuel cell based on 3D microstructure reconstructions. Energy Environ Sci 15: 2410–2424. https://doi.org/10.1039/D2EE00485B doi: 10.1039/D2EE00485B
|
| [15] |
Ghorbani B, Vijayaraghavan K (2018) 3D and simplified pseudo-2D modeling of single cell of a high temperature solid oxide fuel cell to be used for online control strategies. Int J Hydrogen Energy 43: 9733–9748. https://doi.org/10.1016/j.ijhydene.2018.03.211 doi: 10.1016/j.ijhydene.2018.03.211
|
| [16] |
Javaid U, Iqbal J, Mehmood A, et al. (2022) Performance improvement in polymer electrolytic membrane fuel cell based on nonlinear control strategies—A comprehensive study. PLoS One 17: e0264205. https://doi.org/10.1371/journal.pone.0264205 doi: 10.1371/journal.pone.0264205
|
| [17] |
Javaid U, Mehmood A, Iqbal J, et al. (2023) Neural network and URED observer based fast terminal integral sliding mode control for energy efficient polymer electrolyte membrane fuel cell used in vehicular technologies. Energy 269: 126717. https://doi.org/10.1016/j.energy.2023.126717 doi: 10.1016/j.energy.2023.126717
|
| [18] |
Ebrahimi S, DeVaal J, Narimani M, et al. (2017) Transient model of oxygen-starved proton exchange membrane fuel cell for predicting voltages and hydrogen emissions. Int J Hydrogen Energy 42: 21177–21190. https://doi.org/10.1016/j.ijhydene.2017.05.209 doi: 10.1016/j.ijhydene.2017.05.209
|
| [19] | Romey W, Vijayaraghavan K (2022) Extended kalman filter for normal and Oxygen-starved PEM fuel cells using a Lumped Pseudo-2D Model. 2022 IEEE International Symposium on Advanced Control of Industrial Processes (AdCONIP), 263–268. https://doi.org/10.1109/AdCONIP55568.2022.9894212 |
| [20] |
Park J, Chen Z, Kiliaris L, et al. (2009) Intelligent vehicle power control based on machine learning of optimal control parameters and prediction of road type and traffic congestion. IEEE Trans Veh Technol 58: 4741–4756. https://doi.org/10.1109/TVT.2009.2027710 doi: 10.1109/TVT.2009.2027710
|
| [21] |
Murphey YL, Park J, Chen Z, et al. (2012) Intelligent hybrid vehicle power control—Part Ⅰ: Machine learning of optimal vehicle power. IEEE Trans Veh Technol 61: 3519–3530. https://doi.org/10.1109/TVT.2012.2206064 doi: 10.1109/TVT.2012.2206064
|
| [22] |
Bahri H, Harrag A (2021) Ingenious golden section search MPPT algorithm for PEM fuel cell power system. Neural Comput Appl 33: 8275–8298. https://doi.org/10.1007/s00521-020-05581-4 doi: 10.1007/s00521-020-05581-4
|
| [23] | Rafi Kiran S, Altaf M, Sai Niranjan CN, et al. (2023) Design and performance analysis of hybrid optimization MPPT controller for proton exchange membrane fuel cell system with DC-DC converter. Mater Today: Proc. https://doi.org/10.1016/j.matpr.2023.07.077 |
| [24] |
Percin HB, Caliskan A (2023) Whale optimization algorithm based MPPT control of a fuel cell system. Int J Hydrogen Energy 48: 23230–23241. https://doi.org/10.1016/j.ijhydene.2023.03.180 doi: 10.1016/j.ijhydene.2023.03.180
|
| [25] |
Zhong Z, Huo H, Zhu X, et al. (2008) Adaptive maximum power point tracking control of fuel cell power plants. J Power Sources 176: 259–269. https://doi.org/10.1016/j.jpowsour.2007.10.080 doi: 10.1016/j.jpowsour.2007.10.080
|
| [26] | Lorenz H, Noreikat K-E, Klaiber T, et al. (1997) Method and device for vehicle fuel cell dynamic power control. Available from: https://patents.google.com/patent/US5646852A/en. |
| [27] | Mufford WE, Strasky DG (1999) Power control system for a fuel cell powered vehicle. Available from: https://patents.google.com/patent/US5991670A/en. |
| [28] |
Lauzze KC, Chmielewski DJ (2006) Power control of a polymer electrolyte membrane fuel cell. Ind Eng Chem Res 45: 4661–4670. https://doi.org/10.1021/ie050985z doi: 10.1021/ie050985z
|
| [29] |
Kolavennu PK, Palanki S, Cartes DA, et al. (2008) Adaptive controller for tracking power profile in a fuel cell powered automobile. J Process Control 18: 558–567. https://doi.org/10.1016/j.jprocont.2007.10.013 doi: 10.1016/j.jprocont.2007.10.013
|
| [30] |
Cheng J, Yi J, Zhao D (2007) Design of a sliding mode controller for trajectory tracking problem of marine vessels. IET Control Theory Appl 1: 233–237. https://doi.org/10.1049/iet-cta:20050357 doi: 10.1049/iet-cta:20050357
|
| [31] |
Elmokadem T, Zribi M, Youcef-Toumi K (2016) Trajectory tracking sliding mode control of underactuated AUVs. Nonlinear Dyn 84: 1079–1091. https://doi.org/10.1007/s11071-015-2551-x doi: 10.1007/s11071-015-2551-x
|
| [32] |
Chen S-B, Beigi A, Yousefpour A, et al. (2020) Recurrent neural network-based robust nonsingular sliding mode control with input saturation for a non-holonomic spherical robot. IEEE Access 8: 188441–188453. https://doi.org/10.1109/ACCESS.2020.3030775 doi: 10.1109/ACCESS.2020.3030775
|
| [33] |
Ríos H, Falcón R, González OA, et al. (2019) Continuous sliding-mode control strategies for quadrotor robust tracking: Real-Time application. IEEE Trans Ind Electron 66: 1264–1272. https://doi.org/10.1109/TIE.2018.2831191 doi: 10.1109/TIE.2018.2831191
|
| [34] |
Ali N, Liu Z, Armghan H, et al. (2022) Double integral sliding mode controller for wirelessly charging of fuel cell-battery-super capacitor based hybrid electric vehicle. J Energy Storage 51: 104288. https://doi.org/10.1016/j.est.2022.104288 doi: 10.1016/j.est.2022.104288
|
| [35] |
Ashok R, Shtessel Y (2015) Control of fuel cell-based electric power system using adaptive sliding mode control and observation techniques. J Franklin Inst 352: 4911–4934. https://doi.org/10.1016/j.jfranklin.2015.04.010 doi: 10.1016/j.jfranklin.2015.04.010
|
| [36] |
Moré JJ, Puleston PF, Kunusch C, et al. (2015) Development and implementation of a supervisor strategy and sliding mode control setup for fuel-cell-based hybrid generation systems. IEEE Trans Energy Convers 30: 218–225. https://doi.org/10.1109/TEC.2014.2354553 doi: 10.1109/TEC.2014.2354553
|
| [37] |
Silaa MY, Barambones O, Uralde J, et al. (2025) Simulation and experimental validation of novel sliding mode control with quick power reaching law for a proton exchange membrane fuel cell system. J Power Sources 653: 237632. https://doi.org/10.1016/j.jpowsour.2025.237632 doi: 10.1016/j.jpowsour.2025.237632
|
| [38] |
Xu J-H, Zhang B-X, Yan H-Z, et al. (2024) Sliding mode—Extended state observer control strategy to improve energy transfer of PEMFC connected DC-DC boost converter system. Sustainable Energy Technol Assess 63: 103654. https://doi.org/10.1016/j.seta.2024.103654 doi: 10.1016/j.seta.2024.103654
|
| [39] |
Lee H, Utkin VI (2007) Chattering suppression methods in sliding mode control systems. Annu Rev Control 31: 179–188. https://doi.org/10.1016/j.arcontrol.2007.08.001 doi: 10.1016/j.arcontrol.2007.08.001
|
| [40] | Swikir A, Utkin V (2016) Chattering analysis of conventional and super twisting sliding mode control algorithm. 2016 14th International Workshop on Variable Structure Systems (VSS), 98–102. https://doi.org/10.1109/VSS.2016.7506898 |
| [41] |
Castillo I, Freidovich LB (2020) Describing-function-based analysis to tune parameters of chattering reducing approximations of Sliding Mode controllers. Control Eng Pract 95: 104230. https://doi.org/10.1016/j.conengprac.2019.104230 doi: 10.1016/j.conengprac.2019.104230
|
| [42] |
Kuchwa-Dube C, Pedro JO (2022) Chattering performance criteria for multi-objective optimisation gain tuning of sliding mode controllers. Control Eng Pract 127: 105284. https://doi.org/10.1016/j.conengprac.2022.105284 doi: 10.1016/j.conengprac.2022.105284
|
| [43] |
Ali K, Ullah S, Mehmood A, et al. (2022) Adaptive FIT-SMC approach for an anthropomorphic manipulator with robust exact differentiator and neural network-based friction compensation. IEEE Access 10: 3378–3389. https://doi.org/10.1109/ACCESS.2021.3139041 doi: 10.1109/ACCESS.2021.3139041
|
| [44] |
Pedro JO, Dangor M, Dahunsi OA, et al. (2018) Dynamic neural network-based feedback linearization control of full-car suspensions using PSO. Appl Soft Comput 70: 723–736. https://doi.org/10.1016/j.asoc.2018.06.002 doi: 10.1016/j.asoc.2018.06.002
|
| [45] | Mac TT, Copot C, Duc TT, et al. (2016) AR. Drone UAV control parameters tuning based on particle swarm optimization algorithm. 2016 IEEE International Conference on Automation, Quality and Testing, Robotics (AQTR), 1–6. https://doi.org/10.1109/AQTR.2016.7501380 |
| [46] |
Laware AR, Talange DB, Bandal VS (2018) Evolutionary optimization of sliding mode controller for level control system. ISA Trans 83: 199–213. https://doi.org/10.1016/j.isatra.2018.08.011 doi: 10.1016/j.isatra.2018.08.011
|
| [47] |
Rodríguez-Molina A, Mezura-Montes E, Villarreal-Cervantes MG, et al. (2020) Multi-objective meta-heuristic optimization in intelligent control: A survey on the controller tuning problem. Appl Soft Comput 93: 106342. https://doi.org/10.1016/j.asoc.2020.106342 doi: 10.1016/j.asoc.2020.106342
|
| [48] | Deb K, Agrawal S, Pratap A, et al. (2000) A fast elitist non-dominated sorting genetic algorithm for multi-objective optimization: NSGA-Ⅱ. In: Schoenauer M, Deb K, Rudolph G, et al. (Eds), Parallel Problem Solving from Nature PPSN VI, Berlin, Heidelberg, Springer, 849–858. https://doi.org/10.1007/3-540-45356-3_83 |
| [49] |
Mezura-Montes E, Reyes-Sierra M, Coello CA (2008) Multi-objective optimization using differential evolution: A survey of the state-of-the-art. Stud Comput Intell 143: 173–196. https://doi.org/10.1007/978-3-540-68830-3_7 doi: 10.1007/978-3-540-68830-3_7
|
| [50] | Coello Coello CA, Lechuga MS (2002) MOPSO: A proposal for multiple objective particle swarm optimization. Proceedings of the 2002 Congress on Evolutionary Computation. CEC'02 (Cat. No. 02TH8600) 2: 1051–1056. https://doi.org/10.1109/CEC.2002.1004388 |
| [51] |
Yan Y, Du H, Wang Y, et al. (2022) Multi-Objective asymmetric sliding mode control of connected autonomous vehicles. IEEE Trans Intell Transp Syst 23: 16342–16357. https://doi.org/10.1109/TITS.2022.3149985 doi: 10.1109/TITS.2022.3149985
|
| [52] | Rezapour J, Sharifi M, Nariman-zadeh N (2011) Application of fuzzy sliding mode control to robotic manipulator using multi-objective genetic algorithm. 2011 International Symposium on Innovations in Intelligent Systems and Applications, 455–459. https://doi.org/10.1109/INISTA.2011.5946144 |
| [53] | Acharya DS, Gude S (2021) A multi-objective integral sliding mode controller for magnetic levitation plant. In: Reddy MJB, Mohanta DKr, Kumar D, et al. (Eds), Advances in Smart Grid Automation and Industry 4.0, Singapore, Springer, 177–185. https://doi.org/10.1007/978-981-15-7675-1_17 |
| [54] | Zarchan P, Musoff H (2015) Extended Kalman Filtering. Fundamentals of Kalman Filtering: A Practical Approach, Fourth Edition, American Institute of Aeronautics and Astronautics, Inc., 225–259. https://doi.org/10.2514/5.9781624102776.0225.0260 |
| [55] |
Suresh K, Parimalasundar E, Arunraja A, et al. (2025) High-efficiency stepdown/step-up converter for series-connected energy storage system. Sci Rep 15: 7726. https://doi.org/10.1038/s41598-025-92234-y doi: 10.1038/s41598-025-92234-y
|
| [56] |
Kolli A, Gaillard A, De Bernardinis A, et al. (2015) A review on DC/DC converter architectures for power fuel cell applications. Energy Convers Manage 105: 716–730. https://doi.org/10.1016/j.enconman.2015.07.060 doi: 10.1016/j.enconman.2015.07.060
|
| [57] |
Lü X, Qu Y, Wang Y, et al. (2018) A comprehensive review on hybrid power system for PEMFC-HEV: Issues and strategies. Energy Convers Manage 171: 1273–1291. https://doi.org/10.1016/j.enconman.2018.06.065 doi: 10.1016/j.enconman.2018.06.065
|
| [58] | Erickson RW, Maksimović D (2001) Converter Circuits. In: Erickson RW, Maksimović D (Eds), Fundamentals of Power Electronics, Boston, MA, Springer US, 131–184. https://doi.org/10.1007/0-306-48048-4_6 |
| [59] |
Vijayaraghavan K, DeVaal J, Narimani M (2015) Dynamic model of oxygen starved proton exchange membrane fuel-cell using hybrid analytical-numerical method. J Power Sources 285: 291–302. https://doi.org/10.1016/j.jpowsour.2015.03.103 doi: 10.1016/j.jpowsour.2015.03.103
|
| [60] |
Beigi A, Romey W, Vijayaraghavan K (2024) Extended Kalman filter for quantifying hydrogen leaks in PEM fuel cells by estimating oxygen concentration. Int J Hydrogen Energy 78: 907–917. https://doi.org/10.1016/j.ijhydene.2024.06.094 doi: 10.1016/j.ijhydene.2024.06.094
|
| [61] |
Amphlett JC, Baumert RM, Mann RF, et al. (1995) Performance modeling of the ballard mark Ⅳ solid polymer electrolyte fuel cell: Ⅰ. mechanistic model development. J Electrochem Soc 142. https://doi.org/10.1149/1.2043866 doi: 10.1149/1.2043866
|
| [62] |
Wang C, Nehrir MH, Shaw SR (2005) Dynamic models and model validation for PEM fuel cells using electrical circuits. IEEE Trans Energy Convers 20: 442–451. https://doi.org/10.1109/TEC.2004.842357 doi: 10.1109/TEC.2004.842357
|
| [63] |
Larminie J, Dicks A (2003) Fuel cell systems analysed. Fuel Cell Systems Explained, John Wiley & Sons, Ltd, 369–389. https://doi.org/10.1002/9781118878330.ch11 doi: 10.1002/9781118878330.ch11
|
| [64] | Haddad WM, Chellaboina V (2008) Nonlinear dynamical systems and control. A Lyapunov-Based Approach, Princeton University Press. https://doi.org/10.1515/9781400841042 |
| [65] |
Mobayen S (2015) An adaptive chattering-free PID sliding mode control based on dynamic sliding manifolds for a class of uncertain nonlinear systems. Nonlinear Dyn 82: 53–60. https://doi.org/10.1007/s11071-015-2137-7 doi: 10.1007/s11071-015-2137-7
|
| [66] |
Eker İ (2006) Sliding mode control with PID sliding surface and experimental application to an electromechanical plant. ISA Trans 45: 109–118. https://doi.org/10.1016/S0019-0578(07)60070-6 doi: 10.1016/S0019-0578(07)60070-6
|
| [67] |
Mobayen S, Karami H, Fekih A (2021) Adaptive nonsingular integral-type second order terminal sliding mode tracking controller for uncertain nonlinear systems. Int J Control Autom Syst 19: 1539–1549. https://doi.org/10.1007/s12555-020-0255-6 doi: 10.1007/s12555-020-0255-6
|
| [68] |
Mobayen S, Tchier F (2017) A novel robust adaptive second-order sliding mode tracking control technique for uncertain dynamical systems with matched and unmatched disturbances. Int J Control Autom Syst 15: 1097–1106. https://doi.org/10.1007/s12555-015-0477-1 doi: 10.1007/s12555-015-0477-1
|
| [69] |
Utkin V (1977) Variable structure systems with sliding modes. IEEE Trans Autom Control 22: 212–222. https://doi.org/10.1109/TAC.1977.1101446 doi: 10.1109/TAC.1977.1101446
|
| [70] |
Zhu WQ, Huang ZL, Ko JM, et al. (2004) Optimal feedback control of strongly non-linear systems excited by bounded noise. J Sound Vib 274: 701–724. https://doi.org/10.1016/S0022-460X(03)00746-6 doi: 10.1016/S0022-460X(03)00746-6
|
| [71] |
Napole C, Barambones O, Derbeli M, et al. (2021) Advanced trajectory control for piezoelectric actuators based on robust control combined with artificial neural networks. Appl Sci 11: 7390. https://doi.org/10.3390/app11167390 doi: 10.3390/app11167390
|
| [72] |
Panda S, Sahu BK, Mohanty PK (2012) Design and performance analysis of PID controller for an automatic voltage regulator system using simplified particle swarm optimization. J Franklin Inst 349: 2609–2625. https://doi.org/10.1016/j.jfranklin.2012.06.008 doi: 10.1016/j.jfranklin.2012.06.008
|
| [73] |
Chang W-D, Chen C-Y (2014) PID controller design for MIMO processes using improved particle swarm optimization. Circuits Syst Signal Process 33: 1473–1490. https://doi.org/10.1007/s00034-013-9710-4 doi: 10.1007/s00034-013-9710-4
|
| [74] | Miettinen K (1999) Nonlinear multiobjective optimization. Boston, MA, Kluwer Academic Publishers. https://doi.org/10.1007/978-1-4615-5563-6 |
| [75] | US EPA (2015) EPA Urban Dynamometer Driving Schedule (UDDS). Available from: https://www.epa.gov/emission-standards-reference-guide/epa-urban-dynamometer-driving-schedule-udds. |