<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD Journal Publishing DTD v2.3 20070202//EN" "journalpublishing.dtd">
<article article-type="research-article" dtd-version="2.3" xml:lang="EN" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink">
<front>
<journal-meta>
<journal-id journal-id-type="publisher-id">Front. Chem. Eng.</journal-id>
<journal-title>Frontiers in Chemical Engineering</journal-title>
<abbrev-journal-title abbrev-type="pubmed">Front. Chem. Eng.</abbrev-journal-title>
<issn pub-type="epub">2673-2718</issn>
<publisher>
<publisher-name>Frontiers Media S.A.</publisher-name>
</publisher>
</journal-meta>
<article-meta>
<article-id pub-id-type="publisher-id">1064221</article-id>
<article-id pub-id-type="doi">10.3389/fceng.2022.1064221</article-id>
<article-categories>
<subj-group subj-group-type="heading">
<subject>Chemical Engineering</subject>
<subj-group>
<subject>Original Research</subject>
</subj-group>
</subj-group>
</article-categories>
<title-group>
<article-title>Feature-based statistical process monitoring for pressure swing adsorption processes</article-title>
<alt-title alt-title-type="left-running-head">Lee et al.</alt-title>
<alt-title alt-title-type="right-running-head">
<ext-link ext-link-type="uri" xlink:href="https://doi.org/10.3389/fceng.2022.1064221">10.3389/fceng.2022.1064221</ext-link>
</alt-title>
</title-group>
<contrib-group>
<contrib contrib-type="author">
<name>
<surname>Lee</surname>
<given-names>Jangwon</given-names>
</name>
<xref ref-type="aff" rid="aff1">
<sup>1</sup>
</xref>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Kumar</surname>
<given-names>Ankur</given-names>
</name>
<xref ref-type="aff" rid="aff2">
<sup>2</sup>
</xref>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Flores-Cerrillo</surname>
<given-names>Jesus</given-names>
</name>
<xref ref-type="aff" rid="aff2">
<sup>2</sup>
</xref>
<uri xlink:href="https://loop.frontiersin.org/people/1459614/overview"/>
</contrib>
<contrib contrib-type="author" corresp="yes">
<name>
<surname>Wang</surname>
<given-names>Jin</given-names>
</name>
<xref ref-type="aff" rid="aff1">
<sup>1</sup>
</xref>
<xref ref-type="corresp" rid="c001">&#x2a;</xref>
<uri xlink:href="https://loop.frontiersin.org/people/578509/overview"/>
</contrib>
<contrib contrib-type="author" corresp="yes">
<name>
<surname>He</surname>
<given-names>Q. Peter</given-names>
</name>
<xref ref-type="aff" rid="aff1">
<sup>1</sup>
</xref>
<xref ref-type="corresp" rid="c001">&#x2a;</xref>
<uri xlink:href="https://loop.frontiersin.org/people/189764/overview"/>
</contrib>
</contrib-group>
<aff id="aff1">
<sup>1</sup>
<institution>Department of Chemical Engineering</institution>, <institution>Auburn University</institution>, <addr-line>Auburn</addr-line>, <addr-line>AL</addr-line>, <country>United States</country>
</aff>
<aff id="aff2">
<sup>2</sup>
<institution>Smart Operations &#x26; Advanced Technology</institution>, <institution>Linde Technology Center</institution>, <addr-line>Tonawanda</addr-line>, <addr-line>NY</addr-line>, <country>United States</country>
</aff>
<author-notes>
<fn fn-type="edited-by">
<p>
<bold>Edited by:</bold> <ext-link ext-link-type="uri" xlink:href="https://loop.frontiersin.org/people/750760/overview">Fengqi You</ext-link>, Cornell University, United States</p>
</fn>
<fn fn-type="edited-by">
<p>
<bold>Reviewed by:</bold> <ext-link ext-link-type="uri" xlink:href="https://loop.frontiersin.org/people/895200/overview">Brenno Menezes</ext-link>, Hamad bin Khalifa University, Qatar</p>
<p>
<ext-link ext-link-type="uri" xlink:href="https://loop.frontiersin.org/people/809938/overview">Richard Lakerveld</ext-link>, Hong Kong University of Science and Technology, Hong Kong SAR, China</p>
<p>
<ext-link ext-link-type="uri" xlink:href="https://loop.frontiersin.org/people/1114209/overview">Chao Shang</ext-link>, Tsinghua University, China</p>
</fn>
<corresp id="c001">&#x2a;Correspondence: Q. Peter He, <email>qhe@auburn.edu</email>; Jin Wang, <email>wang@auburn.edu</email>
</corresp>
<fn fn-type="other">
<p>This article was submitted to Computational Methods in Chemical Engineering, a section of the journal Frontiers in Chemical Engineering</p>
</fn>
</author-notes>
<pub-date pub-type="epub">
<day>18</day>
<month>11</month>
<year>2022</year>
</pub-date>
<pub-date pub-type="collection">
<year>2022</year>
</pub-date>
<volume>4</volume>
<elocation-id>1064221</elocation-id>
<history>
<date date-type="received">
<day>08</day>
<month>10</month>
<year>2022</year>
</date>
<date date-type="accepted">
<day>07</day>
<month>11</month>
<year>2022</year>
</date>
</history>
<permissions>
<copyright-statement>Copyright &#xa9; 2022 Lee, Kumar, Flores-Cerrillo, Wang and He.</copyright-statement>
<copyright-year>2022</copyright-year>
<copyright-holder>Lee, Kumar, Flores-Cerrillo, Wang and He</copyright-holder>
<license xlink:href="http://creativecommons.org/licenses/by/4.0/">
<p>This is an open-access article distributed under the terms of the Creative Commons Attribution License (CC BY). The use, distribution or reproduction in other forums is permitted, provided the original author(s) and the copyright owner(s) are credited and that the original publication in this journal is cited, in accordance with accepted academic practice. No use, distribution or reproduction is permitted which does not comply with these terms.</p>
</license>
</permissions>
<abstract>
<p>Pressure swing adsorption (PSA) is a widely used technology to separate a gas product from impurities in a variety of fields. Due to the complexity of PSA operations, process and instrument faults can occur at different parts and/or steps of the process. Thus, effective process monitoring is critical for ensuring efficient and safe operations of PSA systems. However, multi-bed PSA processes present several major challenges to process monitoring. First, a PSA process is operated in a periodic or cyclic fashion and never reaches a steady state; Second, the duration of different operation cycles is dynamically controlled in response to various disturbances, which results in a wide range of normal operation trajectories. Third, there is limited data for process monitoring, and bed pressure is usually the only measured variable for process monitoring. These key characteristics of the PSA operation make process monitoring, especially early fault detection, significantly more challenging than that for a continuous process operated at a steady state. To address these challenges, we propose a feature-based statistical process monitoring (SPM) framework for PSA processes, namely feature space monitoring (FSM). Through feature engineering and feature selection, we show that FSM can naturally handle the key challenges in PSA process monitoring and achieve early detection of subtle faults from a wide range of normal operating conditions. The performance of FSM is compared to the conventional SPM methods using both simulated and real faults from an industrial PSA process. The results demonstrate FSM&#x2019;s superior performance in fault detection and fault diagnosis compared to the traditional SPM methods. In particular, the robust monitoring performance from FSM is achieved without any data preprocessing, trajectory alignment or synchronization required by the conventional SPM methods.</p>
</abstract>
<kwd-group>
<kwd>pressure swing adsorption (PSA)</kwd>
<kwd>fault detection</kwd>
<kwd>fault diagnosis</kwd>
<kwd>statistical process monitoring (SPM)</kwd>
<kwd>statistics pattern analysis</kwd>
<kwd>feature space monitoring</kwd>
</kwd-group>
<contract-sponsor id="cn001">National Science Foundation<named-content content-type="fundref-id">10.13039/100000001</named-content>
</contract-sponsor>
</article-meta>
</front>
<body>
<sec id="s1">
<title>1 Introduction</title>
<p>The synthetic zeolites developed by Union Carbide in the 1950s enabled the development of the pressure swing adsorption (PSA) processes. The first industrial application of PSA went on stream in 1966 at a Union Carbide production facility. Since then, PSA has been widely used to separate a gas product from impurities in various fields, from traditional bulk gas separation and drying, to CO<sub>2</sub> sequestration, trace contaminant removal, and many others. A good review of the historical development of PSA technology can be found in <xref ref-type="bibr" rid="B5">Elseviers et al. (2015)</xref>. With ever-increasing product capacity and carefully designed operations, modern multi-bed PSA systems can take full advantage of the feed pressure to optimize performance and recover more product gases. For multi-bed PSA systems, adsorber vessels are connected by a complex pipe network with literally hundreds of valves to automatically switch the gas flows among the beds, which results in an intrinsically transient, cyclic, highly nonlinear, and complex dynamic process. As industrial adsorbents are usually highly efficient and stable, major production disruptions are most often caused by valve-related problems, such as internal leakage or stiction. If a potential valve problem could be detected in real-time while still in its early stage, corresponding actions can be scheduled as an online maintenance event, which can be conducted without the downtime and in coordination with other process and business considerations. In other words, if a fault can be detected early, the problem can be addressed with minimum disruption before it escalates to a highly costly emergency shutdown. Clearly, successful early fault detection and diagnosis can greatly improve the PSA process throughput, product quality, and economic performance. In addition, such a process monitoring system can serve as a remote monitoring and early warning system for unattended or autonomous PSA operations.</p>
<p>The intrinsically transient and cyclic operation of PSA processes renders most available fault detection and diagnosis solutions ineffective. Despite the importance and potential impact of PSA process monitoring, research in this area has been scarce. <xref ref-type="bibr" rid="B16">Pan et al. (2004)</xref> proposed a monitoring approach for continuous processes with periodic characteristics by identifying a stochastic state space model that captures the statistical behavior of changes occurring from one period to another. This approach was validated using a wastewater treatment process (WWTP). While there are similarities between WWTP and PSA processes, there are also major differences. Most notably, for the activated sludge process, which is the central part of a WWTP, there is a strong cycle-to-cycle dynamics due to the continuous growth of the microorganisms, which provides a &#x201c;linkage&#x201d; from cycle to cycle. In comparison, for PSA processes, the cycle-to-cycle dynamics is almost non-existent due to the absence of such a linkage between cycles. In addition, the activated sludge process is a natural periodic process with a somewhat constant cycle time driven by the diurnal temperature and light changes. As a result, obtaining the same number of measurements from each period can be easily achieved, which is required by the state space modeling approach. In contrast, PSA is an engineered periodic process, with cycle time dynamically controlled in response to many disturbances that affect a PSA operation, including varying customer demands, operation schedule adjustment based on electricity pricing to minimize cost, and/or raw material feed composition variations. As a result, the cycle time is frequently and often significantly adjusted, which does not satisfy the condition that each cycle contains the same number of measurements as required by the state space approach proposed in <xref ref-type="bibr" rid="B16">Pan et al. (2004)</xref>. In addition, the state space inferential prediction proposed by Pan et al. requires quality-relevant process output, which we do not have in this study. Recently, <xref ref-type="bibr" rid="B21">Wang et al. (2017)</xref> proposed a geometric framework for the monitoring and fault detection of periodic processes. The fault detection is based on the &#x201c;centroids of the centroids&#x201d; of the training/normal cycles and a corresponding confidence region defined based on them. The proposed approach was applied to a simulated two-bed PSA process and showed superior performance compared to the conventional dynamic PCA (DPCA) and multi-way PCA (MPCA) methods. For the simulated PSA process, 26 variables were used for process monitoring, including feed flow rates, pressures, and concentrations in and across both beds. However, in industrial PSA processes, most of these variables are not measured, especially the concentrations in and across the beds. In fact, for almost all PSA plants, pressure is the only process variable constantly monitored. In this case, the method proposed by <xref ref-type="bibr" rid="B21">Wang et al. (2017)</xref> is not applicable as there is no centroid for a single variable. Another proposed method for monitoring industrial PSA processes is a US patent (<xref ref-type="bibr" rid="B2">Arslan et al., 2014</xref>). This method first applied a moving window discrete Fourier transform (DFT) to convert process data (i.e., bed pressure profiles) into frequency spectra; next, a number of &#x201c;relevant&#x201d; peaks were identified from the frequency spectra; and finally the logarithm of the amplitude ratio of peak <inline-formula id="inf1">
<mml:math id="m1">
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> between beds <inline-formula id="inf2">
<mml:math id="m2">
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf3">
<mml:math id="m3">
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> is computed over time to capture the normal process behavior and monitored for fault detection. However, the &#x201c;relevant peaks&#x201d; were selected in an ad hoc manner, and there is no description on how &#x201c;relevance&#x201d; was evaluated or how the &#x201c;relevant&#x201d; peaks were identified. Recently, slow feature analysis (SFA) has been proposed to capture slowly varying dynamics in a process (e.g., dynamics across multiple cycles) (<xref ref-type="bibr" rid="B18">Shang et al., 2015</xref>). SFA enables separation of normal process changes due to process dynamics from process faults. SFA has been utilized for the monitoring of nonstationary chemical processes subject to time variant conditions (<xref ref-type="bibr" rid="B27">Zhao and Huang, 2018</xref>) and cyclic processes including WWTPs (<xref ref-type="bibr" rid="B12">Hong et al., 2020</xref>; K. <xref ref-type="bibr" rid="B20">Wang et al., 2021</xref>). However, SFA is not suitable for PSA processes due to the lack of slow cycle-to-cycle dynamics.</p>
<p>To develop a process monitoring solution that is suitable for PSA and other cyclic industrial processes, we present a different approach based on the feature space monitoring (FSM) framework we developed recently (<xref ref-type="bibr" rid="B11">He and Wang, 2018</xref>). Instead of monitoring the original pressure profile of a PSA process, we first conduct feature engineering, where statistical and shape/morphological features are computed based on the pressure profile to capture the characteristics of each step of the operation cycle. Next, these features are grouped by cycles and monitored by a linear or nonlinear MSPM method for fault detection and diagnosis. Through feature engineering and selection, we not only can readily address the unique challenges associated with cyclic processes, such as the unequal duration for different cycles/steps, but also could detect subtle changes early from a wide range of normal cycle durations. The rest of the paper is organized as follows. <xref ref-type="sec" rid="s2">Section 2</xref> discusses the key characteristics of the industrial PSA process and the challenges posed to the conventional MSPM methods by these characteristics. <xref ref-type="sec" rid="s3">Section 3</xref> briefly reviews statistics pattern analysis (SPA), which is the predecessor and a special case of FSM. <xref ref-type="sec" rid="s4">Section 4</xref> introduces the proposed FSM method for PSA processes. <xref ref-type="sec" rid="s5">Section 5</xref> presents several case studies, including simulated and real faults in an industrial PSA process, to demonstrate the performance of the proposed method, which is compared to those of the conventional MPCA-based methods. Finally, <xref ref-type="sec" rid="s6">Section 6</xref> discusses the results and draws some conclusions.</p>
</sec>
<sec id="s2">
<title>2 PSA process characteristics and their challenges to conventional MSPM</title>
<p>In this section, we discuss the unique characteristics of PSA processes and how these characteristics pose challenges to process monitoring.</p>
<sec id="s2-1">
<title>2.1 PSA process characteristics</title>
<p>PSA processes are operated on repeated cycles of adsorption and regeneration. As shown in <xref ref-type="fig" rid="F1">Figure 1</xref>, the bed pressure is raised during the adsorption step and the impurities are adsorbed by the adsorbent, providing the high-purity product gas. During the regeneration step, the bed pressure is lowered and the impurities are cleaned or purged from the adsorbent, allowing the adsorption-regeneration cycle to be repeated. Therefore, a PSA process is a continuous process but never operates at any single steady state. Instead, it repeats a sequence of operation steps over and over. This is usually termed a cyclic steady-state process, where cycles are very similar to each other, and a whole cycle is considered a &#x201c;steady-state&#x201d;.</p>
<fig id="F1" position="float">
<label>FIGURE 1</label>
<caption>
<p>Schematic illustration of the major steps involved in a PSA process <bold>(A)</bold> Adsorption <bold>(B)</bold> Regeneration.</p>
</caption>
<graphic xlink:href="fceng-04-1064221-g001.tif"/>
</fig>
<p>To take full advantage of the feed pressure and to recover more product gas, multi-bed multi-step PSA systems have been widely applied in industrial applications. In terms of process monitoring, the bed pressure is always measured and is often the only variable constantly measured for PSA processes. The industrial data utilized in this work were collected from one of Linde&#x2019;s 12-bed 15-step PSA systems. <xref ref-type="fig" rid="F2">Figure 2</xref> shows two common ways to visualize pressure trajectories in a multi-bed PSA process. Due to the sensitivity of the process&#x2019;s actual operation and production data, all axis tick labels in this and other figures are omitted when real operation data are used. <xref ref-type="fig" rid="F2">Figure 2A</xref> shows time-series pressure profiles of multiple beds (only three out of twelve beds are shown here to reduce clutter). This type of pressure time-series plot is useful for visualizing and observing between-bed variations. However, only severe faults that significantly deviate from the nominal trajectory can be detected by the naked eyes using this type of plot; in addition, it becomes very cluttered and difficult to read if all beds were plotted on the same figure. Another way to visualize the pressure profile within a bed over multiple cycles is to overlay cycles based on the start of each cycle, as illustrated in <xref ref-type="fig" rid="F2">Figure 2B</xref>. This type of plot can be used to visualize within-bed variations. However, due to the variable duration of cycles, again, only severe faults that show significant deviations from the normal operation can be detected directly by the naked eyes from this type of plot.</p>
<fig id="F2" position="float">
<label>FIGURE 2</label>
<caption>
<p>Visualization of pressure trajectories in a multi-bed PSA process <bold>(A)</bold> A sample time-series pressure profiles of three beds in a multi-bed PSA process <bold>(B)</bold> Overlaid pressure profiles of a single bed over multiple cycles, which illustrates the variable durations from different cycles.</p>
</caption>
<graphic xlink:href="fceng-04-1064221-g002.tif"/>
</fig>
<p>In terms of process monitoring, PSA processes share more similarities with batch processes than with continuous processes. For example, PSA and batch processes can both have variable batch/cycle duration and step durations; they are often dynamic transient processes and do not have a steady state. The variable nature of the PSA cycle duration is demonstrated in <xref ref-type="fig" rid="F3">Figure 3A</xref>, which plots the durations of different cycles from one PSA bed. For the PSA process studied in this work, each cycle consists of 15 steps, as illustrated in <xref ref-type="fig" rid="F2">Figure 2</xref>. For the step durations, about half of the steps follow similar trends as the cycle duration, while the remaining steps have relatively constant durations. <xref ref-type="fig" rid="F3">Figure 3B</xref> plots the variable step duration of the adsorption step across different cycles, and <xref ref-type="fig" rid="F3">Figure 3C</xref> plots the relatively constant step duration of an equalization step across different cycles. For the PSA process studied in this work, the cycle duration is in the order of tens of minutes and the step durations vary from seconds to minutes.</p>
<fig id="F3" position="float">
<label>FIGURE 3</label>
<caption>
<p>Illustrations of the variable cycle and step durations <bold>(A)</bold> Cycle durations vary significantly from cycle to cycle <bold>(B)</bold> Durations of the adsorption step follow a similar trend as the cycle durations <bold>(C)</bold> durations of the equalization steps are close to constant.</p>
</caption>
<graphic xlink:href="fceng-04-1064221-g003.tif"/>
</fig>
<p>Several observations can be made from these plots. First, the cycles are asynchronous across different beds; for the same bed, the cycles do not exactly overlap with each other either. Second, despite the overall highly nonlinear behavior for each cycle, the pressure profile for each individual step is usually much simpler and can be approximated by a simple linear or polynomial function. Finally, not only the cycle durations but also the step durations vary from cycle to cycle. It is important to note that the variations in cycle/step duration is not caused by unmeasured normal process variations, instead, it is a result of deliberate control of cycle and step durations to ensure product quality in response to dynamic scheduling and/or measured disturbances such as demand change and weather conditions. In addition, these characteristics are not unique to PSA processes but are rather common to other cyclic steady-state processes, such as heat exchanger networks under fouling with cleaning-in-place (CIP) operations (<xref ref-type="bibr" rid="B6">Georgiadis and Papageorgiou, 2000</xref>), and catalytic conversion processes where the catalyst undergoes periodic deactivation and activation (<xref ref-type="bibr" rid="B13">Jain and Grossmann, 1998</xref>).</p>
</sec>
<sec id="s2-2">
<title>2.2 Challenges in monitoring PSA processes</title>
<p>As discussed above, normal PSA operations cover a wide range of pressure trajectories, due to the dynamically controlled step/cycle durations in response to external disturbances. It is clearly a highly challenging task to detect a subtle fault early from a wide range of normal cycle/step durations with the bed pressure as the only monitored variable. In addition, the characteristics of the PSA processes (and cyclic steady-state processes in general), including asynchronous trajectories, variable cycle/step durations, and nonlinear dynamics, present significant challenges to process monitoring. These challenges cannot be effectively addressed by commonly used multivariate statistical monitoring (MSPM) methods, including both conventional MSPM methods such as MPCA, trilinear decomposition (TLD), and parallel factor analysis (PARAFAC) (<xref ref-type="bibr" rid="B23">Wise et al., 1999</xref>), and more recent methods such as multi-way independent component analysis (MICA) (<xref ref-type="bibr" rid="B25">Yoo et al., 2004</xref>) and kernel PCA (KPCA) (<xref ref-type="bibr" rid="B3">Choi et al., 2005</xref>). These methods assume that the normal process data follow the same distribution and require the construction of a two-dimensional (2-D) data matrix (for data unfolding approaches) or a 3-D data array (for multi-way approaches). In other words, they require synchronization of all steps within a cycle to achieve equal step and cycle durations. Trajectory synchronization can be done through different ways, including simple cut, interpolation, dynamic time warping (DTW), <italic>etc.</italic> However, these preprocessing steps have their drawbacks, including trajectory distortion, information loss, <italic>etc</italic> (<xref ref-type="bibr" rid="B9">He and Wang, 2007</xref>; <xref ref-type="bibr" rid="B11">He and Wang, 2018</xref>). In particular, synchronization is undesirable for PSA processes because the step durations are dynamically controlled and may contain important information on the state of the process operation. Artificially changing the step/cycle durations may distort the contained information and negatively affect the fault detection and diagnosis performance.</p>
<p>In this work, built upon our work in batch process monitoring that can naturally handle variable batch/step durations, we develop an FSM approach for PSA processes. We show that a balance between sensitivity and robustness of the FSM approach can be achieved through feature engineering and selection, which enables early detection of subtle faults with very low false alarm rate.</p>
</sec>
</sec>
<sec id="s3">
<title>3 A brief review of statistics pattern analysis</title>
<p>In traditional MSPM approaches for process monitoring, such as PCA and PLS-based approaches, it is inexplicitly assumed that normal process data (or scores in principal component subspace) follow a multivariate Gaussian distribution. However, this assumption is usually not satisfied in industrial applications, especially for batch processes whose data are often highly non-Gaussian. Statistics pattern analysis (SPA) was proposed to address the non-Gaussian process data commonly seen in industrial processes. In SPA, various statistics of process variables, instead of process variables themselves, are modeled for process monitoring. A statistics pattern (SP) is a collection of various statistics calculated using process data, which captures the characteristics of individual variables (e.g., mean and variance), the interactions among different variables (e.g., covariance), the dynamics (e.g., auto-, cross-correlations), as well as process nonlinearity and process data non-Gaussianity (e.g., skewness, kurtosis, and other higher-order statistics or HOS). SPA has been implemented for both continuous and batch process monitoring. For continuous processes, SPs corresponding to different time periods are computed using a moving window approach. For batch processes, the SP for each batch (or each step in a batch) is computed using all measurements from the batch (or step). In this way, the variable batch/step duration can be naturally handled without any data preprocessing.</p>
<p>For process monitoring, SPA assumes that the SPs of normal operations follow a similar pattern (i.e., normal pattern), while the SPs of abnormal or faulty operations must show some deviation from the normal pattern. A multivariate statistical model can be developed for the normal SPs, which enables the determination of a boundary for normal operation or threshold for fault detection. The implementation of SPA can be simplified by assuming that the normal SPs follow a multivariate Gaussian distribution. Although this assumption appears to be the same as the traditional MSPM methods, it is important to note that this assumption (i.e., normal SPs follow a Gaussian distribution) is usually satisfied to a much better degree for SPs than for the measured process variables themselves. As different statistics are the averages of different functions of the variable measurements in a window/batch/step, the distribution of SPs is asymptotically Gaussian. This argument is supported by the central limit theorem (CLT) under weak dependencies, which relaxes the requirement on the independency among different random variables (<xref ref-type="bibr" rid="B4">Dedecker and Rio, 2008</xref>). It was further shown that the CLT applies to sums of bounded random variables generated from stationary dynamic systems (<xref ref-type="bibr" rid="B17">P&#xe8;ne, 2005</xref>), which applies to different statistics computed using measurements collected from stable processes. The assumption was also validated in (<xref ref-type="bibr" rid="B10">He and Wang, 2011</xref>) for batch process monitoring. With this simplification, the characteristics of normal SPs can be captured by the covariance structure of SPs, similar to PCA, and a threshold can be defined (e.g., based on Hotelling&#x2019;s T<sup>2</sup> or squared prediction error (SPE)). The test SPs can then be projected onto the model and the obtained metric such as T<sup>2</sup> or SPE is compared to the threshold for fault detection. More details on batch-based SPA can be found in <xref ref-type="bibr" rid="B10">He and Wang (2011)</xref>. Since the introduction of SPA, several variations and extensions of SPA have been reported in the literature for process monitoring (<xref ref-type="bibr" rid="B8">He and Xu, 2016</xref>; <xref ref-type="bibr" rid="B24">Yang et al., 2018</xref>; <xref ref-type="bibr" rid="B26">Zhang et al., 2018</xref>; <xref ref-type="bibr" rid="B28">Zhou and Gu, 2019</xref>).</p>
</sec>
<sec id="s4">
<title>4 The proposed feature space monitoring framework</title>
<p>As PSA and other cyclic continuous processes share many similarities with batch processes, we expect SPA for batch monitoring can be extended to monitor PSA processes. However, major differences between PSA and regular batch processes must be considered. For the PSA process studied here, the bed pressure is the only measured variable, therefore only univariate statistics can be calculated for process monitoring. In addition, one major challenge for PSA monitoring is that although under tight process control, the normal PSA operation has a wide distribution of step/cycle durations in response to disturbances such as customer demand and scheduling based on electricity pricing. Therefore, normal PSA operation data exhibit a wide distribution of normal cycle trajectory, which makes the detection, not to mention early detection, of abnormal cycles highly challenging. To address this challenge, we explore the power of feature engineering to achieve both sensitivity and robustness in the monitoring performance, as well as minimal data preprocessing for easy practical implementation. Once a fault is detected, it is desirable to identify in which step the fault has occurred, so that the corresponding valves, bed and/or pipeline can be identified for further examination. The proposed fault detection and diagnosis framework is termed feature space monitoring or FSM. There are three steps involved in the proposed FSM framework: 1) feature engineering and selection; 2) fault detection; and 3) fault diagnosis. They are discussed in the following sections.</p>
<sec id="s4-1">
<title>4.1 Feature engineering</title>
<p>As shown in <xref ref-type="fig" rid="F2">Figure 2</xref>, although a complete cycle of a PSA process is highly nonlinear, each step is much simpler and can be described by a simple linear or polynomial model. Therefore, in this work, we compute different features for each step separately. In addition to univariate statistics, we explore morphological features to better capture the characteristics of pressure profile in each step of the process. To handle the irregularities in industrial data, for each characteristic we consider multiple features that may exhibit different level of sensitivity to outliers. For example, to assess the dispersion of pressure measurement during a processing step, we compare features that use the mean of the pressure measurements as the reference with others that use the median as the reference. Based on the observation of the pressure profiles and discussions with process engineers, totally 12 features (as defined in the remaining section), both statistical and morphological, are examined in this work to determine if they would provide adequate process monitoring. All features are calculated for each step using raw pressure measurements without any preprocessing such as synchronization, centering, scaling or normalization.</p>
<p>In this work, we use a vector <inline-formula id="inf4">
<mml:math id="m4">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">x</mml:mi>
<mml:mi mathvariant="bold-italic">i</mml:mi>
</mml:msub>
<mml:mo>&#x2208;</mml:mo>
<mml:msup>
<mml:mi mathvariant="fraktur">R</mml:mi>
<mml:msub>
<mml:mi>N</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula> to represent the <inline-formula id="inf5">
<mml:math id="m5">
<mml:mrow>
<mml:msub>
<mml:mi>N</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> pressure measurements in cycle <inline-formula id="inf6">
<mml:math id="m6">
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> (<inline-formula id="inf7">
<mml:math id="m7">
<mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1,2</mml:mn>
<mml:mo>,</mml:mo>
<mml:mo>&#x2026;</mml:mo>
<mml:mo>,</mml:mo>
<mml:mi mathvariant="script">C</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula>, where <inline-formula id="inf8">
<mml:math id="m8">
<mml:mrow>
<mml:mi mathvariant="script">C</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> is the number of cycles from all beds and <inline-formula id="inf9">
<mml:math id="m9">
<mml:mrow>
<mml:msub>
<mml:mi>N</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> varies from cycle to cycle. A subset of <inline-formula id="inf10">
<mml:math id="m10">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">x</mml:mi>
<mml:mi mathvariant="bold-italic">i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>: <inline-formula id="inf11">
<mml:math id="m11">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">x</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2208;</mml:mo>
<mml:msup>
<mml:mi mathvariant="fraktur">R</mml:mi>
<mml:msub>
<mml:mi>N</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula> represents the pressure measurements of step <inline-formula id="inf12">
<mml:math id="m12">
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> (<inline-formula id="inf13">
<mml:math id="m13">
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1,2</mml:mn>
<mml:mo>,</mml:mo>
<mml:mo>&#x2026;</mml:mo>
<mml:mo>,</mml:mo>
<mml:mi mathvariant="script">S</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>) during cycle <inline-formula id="inf14">
<mml:math id="m14">
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>; and <inline-formula id="inf15">
<mml:math id="m15">
<mml:mrow>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> <inline-formula id="inf16">
<mml:math id="m16">
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>t</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1,2</mml:mn>
<mml:mo>,</mml:mo>
<mml:mo>&#x2026;</mml:mo>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>N</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula> represents an individual pressure measurement during step <inline-formula id="inf17">
<mml:math id="m17">
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> of cycle <inline-formula id="inf18">
<mml:math id="m18">
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> at time <inline-formula id="inf19">
<mml:math id="m19">
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>; <inline-formula id="inf20">
<mml:math id="m20">
<mml:mrow>
<mml:msub>
<mml:mi>N</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is the duration of step <inline-formula id="inf21">
<mml:math id="m21">
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> of cycle <inline-formula id="inf22">
<mml:math id="m22">
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>. Note that total sample number in cycle <inline-formula id="inf23">
<mml:math id="m23">
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>: <inline-formula id="inf24">
<mml:math id="m24">
<mml:mrow>
<mml:msub>
<mml:mi>N</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msubsup>
<mml:mo>&#x2211;</mml:mo>
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mi mathvariant="script">S</mml:mi>
</mml:msubsup>
<mml:msub>
<mml:mi>N</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and total sample number across all <inline-formula id="inf25">
<mml:math id="m25">
<mml:mrow>
<mml:mi mathvariant="script">C</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> cycles: <inline-formula id="inf26">
<mml:math id="m26">
<mml:mrow>
<mml:mi>N</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:munderover>
<mml:mstyle displaystyle="true">
<mml:mo>&#x2211;</mml:mo>
</mml:mstyle>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mi mathvariant="script">C</mml:mi>
</mml:munderover>
<mml:msub>
<mml:mi>N</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:munderover>
<mml:mstyle displaystyle="true">
<mml:mo>&#x2211;</mml:mo>
</mml:mstyle>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mi mathvariant="script">C</mml:mi>
</mml:munderover>
<mml:mrow>
<mml:msubsup>
<mml:mo>&#x2211;</mml:mo>
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mi mathvariant="script">S</mml:mi>
</mml:msubsup>
<mml:msub>
<mml:mi>N</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>. For each step of a given cycle, the definitions of different features are given below.<list list-type="simple">
<list-item>
<p>1. Mean (<inline-formula id="inf27">
<mml:math id="m27">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3bc;</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>), which captures the central tendency of pressure.</p>
</list-item>
</list>
<disp-formula id="e1">
<mml:math id="m28">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3bc;</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mi>N</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfrac>
<mml:mrow>
<mml:munderover>
<mml:mstyle displaystyle="true">
<mml:mo>&#x2211;</mml:mo>
</mml:mstyle>
<mml:mrow>
<mml:mi>t</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:msub>
<mml:mi>N</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:munderover>
<mml:mrow>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:math>
<label>(1)</label>
</disp-formula>
<list list-type="simple">
<list-item>
<p>2. Standard deviation (<inline-formula id="inf28">
<mml:math id="m29">
<mml:mrow>
<mml:msub>
<mml:mi>s</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>), which measures the spread or dispersion of pressure measurements relative to its mean.</p>
</list-item>
</list>
<disp-formula id="e2">
<mml:math id="m30">
<mml:mrow>
<mml:msub>
<mml:mi>s</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msqrt>
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mi>N</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfrac>
<mml:mrow>
<mml:munderover>
<mml:mstyle displaystyle="true">
<mml:mo>&#x2211;</mml:mo>
</mml:mstyle>
<mml:mrow>
<mml:mi>t</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:msub>
<mml:mi>N</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:munderover>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi>&#x3bc;</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:msqrt>
</mml:mrow>
</mml:math>
<label>(2)</label>
</disp-formula>
<list list-type="simple">
<list-item>
<p>3. Skewness (<inline-formula id="inf29">
<mml:math id="m31">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3b3;</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>), which measures the asymmetry of pressure distribution about its mean.</p>
</list-item>
</list>
<disp-formula id="e3">
<mml:math id="m32">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3b3;</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mi>N</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfrac>
<mml:mrow>
<mml:munderover>
<mml:mstyle displaystyle="true">
<mml:mo>&#x2211;</mml:mo>
</mml:mstyle>
<mml:mrow>
<mml:mi>t</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:msub>
<mml:mi>N</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:munderover>
<mml:msup>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi>&#x3bc;</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mn>3</mml:mn>
</mml:msup>
</mml:mrow>
</mml:mrow>
<mml:msubsup>
<mml:mi>s</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi>
</mml:mrow>
<mml:mn>3</mml:mn>
</mml:msubsup>
</mml:mfrac>
</mml:mrow>
</mml:math>
<label>(3)</label>
</disp-formula>
<list list-type="simple">
<list-item>
<p>4. Kurtosis (<inline-formula id="inf30">
<mml:math id="m33">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3ba;</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>), which measures whether the pressure distribution is heavy-tailed or light-tailed relative to a normal distribution. The following so-called excess kurtosis is used in this work so that the standard normal distribution has a kurtosis of zero.</p>
</list-item>
</list>
<disp-formula id="e4">
<mml:math id="m34">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3ba;</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mi>N</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfrac>
<mml:mrow>
<mml:munderover>
<mml:mstyle displaystyle="true">
<mml:mo>&#x2211;</mml:mo>
</mml:mstyle>
<mml:mrow>
<mml:mi>t</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:msub>
<mml:mi>N</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:munderover>
<mml:msup>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi>&#x3bc;</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mn>4</mml:mn>
</mml:msup>
</mml:mrow>
</mml:mrow>
<mml:msubsup>
<mml:mi>s</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi>
</mml:mrow>
<mml:mn>4</mml:mn>
</mml:msubsup>
</mml:mfrac>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:math>
<label>(4)</label>
</disp-formula>
<list list-type="simple">
<list-item>
<p>5. Coefficient of variation (<inline-formula id="inf31">
<mml:math id="m35">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>C</mml:mi>
<mml:mi>V</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>), a. k.a., relative standard deviation, is the standardized measure of dispersion of pressure distribution.</p>
</list-item>
</list>
<disp-formula id="e5">
<mml:math id="m36">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>C</mml:mi>
<mml:mi>V</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mi>s</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mi>&#x3bc;</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:math>
<label>(5)</label>
</disp-formula>
<list list-type="simple">
<list-item>
<p>6. Interquartile range (<inline-formula id="inf32">
<mml:math id="m37">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>I</mml:mi>
<mml:mi>Q</mml:mi>
<mml:mi>R</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>), which also measures spread or dispersion of pressure measurements. <inline-formula id="inf33">
<mml:math id="m38">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>I</mml:mi>
<mml:mi>Q</mml:mi>
<mml:mi>R</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is based upon, and relative to, the median, instead of the mean as in <inline-formula id="inf34">
<mml:math id="m39">
<mml:mrow>
<mml:msub>
<mml:mi>s</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>. As a result, <inline-formula id="inf35">
<mml:math id="m40">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>I</mml:mi>
<mml:mi>Q</mml:mi>
<mml:mi>R</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is less sensitive to extreme measurements or outliers.</p>
</list-item>
</list>
<disp-formula id="e6">
<mml:math id="m41">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>I</mml:mi>
<mml:mi>Q</mml:mi>
<mml:mi>R</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>Q</mml:mi>
<mml:mn>3</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>Q</mml:mi>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
<label>(6)</label>
</disp-formula>where <inline-formula id="inf36">
<mml:math id="m42">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>Q</mml:mi>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf37">
<mml:math id="m43">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>Q</mml:mi>
<mml:mn>3</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> are the lower quartile (i.e., 25-th percentile) and upper quartile (i.e., 75-th percentile) of all pressure measurements in step <inline-formula id="inf38">
<mml:math id="m44">
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> of cycle <inline-formula id="inf39">
<mml:math id="m45">
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>, respectively.<list list-type="simple">
<list-item>
<p>7. Quartile coefficient of dispersion (<inline-formula id="inf40">
<mml:math id="m46">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>Q</mml:mi>
<mml:mi>C</mml:mi>
<mml:mi>D</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>), which measures dispersion of pressure measurements based on its interquartile range <inline-formula id="inf41">
<mml:math id="m47">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>I</mml:mi>
<mml:mi>Q</mml:mi>
<mml:mi>R</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>.</p>
</list-item>
</list>
<disp-formula id="e7">
<mml:math id="m48">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>Q</mml:mi>
<mml:mi>C</mml:mi>
<mml:mi>D</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>Q</mml:mi>
<mml:mn>3</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>Q</mml:mi>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>Q</mml:mi>
<mml:mn>3</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>Q</mml:mi>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfrac>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:msub>
<mml:mrow>
<mml:mi>I</mml:mi>
<mml:mi>Q</mml:mi>
<mml:mi>R</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>Q</mml:mi>
<mml:mn>3</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>Q</mml:mi>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:math>
<label>(7)</label>
</disp-formula>
<list list-type="simple">
<list-item>
<p>8. Mean absolute deviation (<inline-formula id="inf42">
<mml:math id="m49">
<mml:mrow>
<mml:msub>
<mml:mi>D</mml:mi>
<mml:mrow>
<mml:mi>m</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>a</mml:mi>
<mml:mi>n</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>), which measures dispersion of pressure measurements in terms of the absolute deviation from their mean.</p>
</list-item>
</list>
<disp-formula id="e8">
<mml:math id="m50">
<mml:mrow>
<mml:msub>
<mml:mi>D</mml:mi>
<mml:mrow>
<mml:mi>m</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>a</mml:mi>
<mml:mi>n</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mi>N</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfrac>
<mml:mrow>
<mml:munderover>
<mml:mstyle displaystyle="true">
<mml:mo>&#x2211;</mml:mo>
</mml:mstyle>
<mml:mrow>
<mml:mi>t</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:msub>
<mml:mi>N</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:munderover>
<mml:mrow>
<mml:mo>&#x7c;</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi>&#x3bc;</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo>&#x7c;</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:math>
<label>(8)</label>
</disp-formula>
<list list-type="simple">
<list-item>
<p>9. Median absolute deviation (<inline-formula id="inf43">
<mml:math id="m51">
<mml:mrow>
<mml:msub>
<mml:mi>D</mml:mi>
<mml:mrow>
<mml:mi>m</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>d</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>), which measures dispersion of pressure measurements in terms of the absolute deviation from their median.</p>
</list-item>
</list>
<disp-formula id="e9">
<mml:math id="m52">
<mml:mrow>
<mml:msub>
<mml:mi>D</mml:mi>
<mml:mrow>
<mml:mi>m</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>d</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>m</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>d</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>a</mml:mi>
<mml:mi>n</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mo>&#x7c;</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>m</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>d</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>a</mml:mi>
<mml:mi>n</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mo>&#x7c;</mml:mo>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
<label>(9)</label>
</disp-formula>
<list list-type="simple">
<list-item>
<p>10. Slope (<inline-formula id="inf44">
<mml:math id="m53">
<mml:mrow>
<mml:msub>
<mml:mi>S</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>), which measures the overall slope of change in pressure measurements.</p>
</list-item>
</list>
<disp-formula id="e10">
<mml:math id="m54">
<mml:mrow>
<mml:msub>
<mml:mi>S</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>N</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mi>N</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:math>
<label>(10)</label>
</disp-formula>
<list list-type="simple">
<list-item>
<p>11. Slope of linear regression line (<inline-formula id="inf45">
<mml:math id="m55">
<mml:mrow>
<mml:msub>
<mml:mi>S</mml:mi>
<mml:mrow>
<mml:mi>L</mml:mi>
<mml:mi>L</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>), which measures the slope of pressure change when linearity is assumed. <inline-formula id="inf46">
<mml:math id="m56">
<mml:mrow>
<mml:msub>
<mml:mi>S</mml:mi>
<mml:mrow>
<mml:mi>L</mml:mi>
<mml:mi>L</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is determined through simple linear regression.</p>
</list-item>
</list>
<disp-formula id="e11">
<mml:math id="m57">
<mml:mrow>
<mml:mo>&#x2022;</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:msub>
<mml:mi>S</mml:mi>
<mml:mrow>
<mml:mi>L</mml:mi>
<mml:mi>L</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mi>N</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2219;</mml:mo>
<mml:mrow>
<mml:munderover>
<mml:mstyle displaystyle="true">
<mml:mo>&#x2211;</mml:mo>
</mml:mstyle>
<mml:mrow>
<mml:mi>t</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:msub>
<mml:mi>N</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:munderover>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>t</mml:mi>
<mml:mo>&#x2219;</mml:mo>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:munderover>
<mml:mstyle displaystyle="true">
<mml:mo>&#x2211;</mml:mo>
</mml:mstyle>
<mml:mrow>
<mml:mi>t</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:msub>
<mml:mi>N</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:munderover>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#x2219;</mml:mo>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:munderover>
<mml:mstyle displaystyle="true">
<mml:mo>&#x2211;</mml:mo>
</mml:mstyle>
<mml:mrow>
<mml:mi>t</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:msub>
<mml:mi>N</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:munderover>
<mml:mrow>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mi>N</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2219;</mml:mo>
<mml:mrow>
<mml:munderover>
<mml:mstyle displaystyle="true">
<mml:mo>&#x2211;</mml:mo>
</mml:mstyle>
<mml:mrow>
<mml:mi>t</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:msub>
<mml:mi>N</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:munderover>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msup>
<mml:mi>t</mml:mi>
<mml:mn>2</mml:mn>
</mml:msup>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:munderover>
<mml:mstyle displaystyle="true">
<mml:mo>&#x2211;</mml:mo>
</mml:mstyle>
<mml:mrow>
<mml:mi>t</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:msub>
<mml:mi>N</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:munderover>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msup>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:math>
<label>(11)</label>
</disp-formula>
<list list-type="simple">
<list-item>
<p>12. Mean absolute error (<inline-formula id="inf47">
<mml:math id="m58">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>M</mml:mi>
<mml:mi>A</mml:mi>
<mml:mi>E</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>), which measures the errors between the expected pressure measurements based on linear regression and the observed pressure measurements.</p>
</list-item>
</list>
</p>
<p>For the steps with relatively flat pressure profiles (e.g., adsorption, hold and purge steps), we first estimate the global mean of step <inline-formula id="inf48">
<mml:math id="m59">
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> over all cycles under normal conditions (i.e., the training data).<disp-formula id="e12">
<mml:math id="m60">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3bc;</mml:mi>
<mml:mrow>
<mml:mi>g</mml:mi>
<mml:mi>l</mml:mi>
<mml:mi>o</mml:mi>
<mml:mi>b</mml:mi>
<mml:mi>a</mml:mi>
<mml:mi>l</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>M</mml:mi>
</mml:mrow>
</mml:mfrac>
<mml:mrow>
<mml:munderover>
<mml:mstyle displaystyle="true">
<mml:mo>&#x2211;</mml:mo>
</mml:mstyle>
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mi>M</mml:mi>
</mml:munderover>
<mml:msub>
<mml:mi>&#x3bc;</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mrow>
</mml:math>
<label>(12)</label>
</disp-formula>where <inline-formula id="inf49">
<mml:math id="m61">
<mml:mrow>
<mml:mi>M</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> is the total number of cycles in the training data. Then MAE can be calculated as the following<disp-formula id="e13">
<mml:math id="m62">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>M</mml:mi>
<mml:mi>A</mml:mi>
<mml:mi>E</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mi>N</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfrac>
<mml:mrow>
<mml:munderover>
<mml:mstyle displaystyle="true">
<mml:mo>&#x2211;</mml:mo>
</mml:mstyle>
<mml:mrow>
<mml:mi>t</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:msub>
<mml:mi>N</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:munderover>
<mml:mrow>
<mml:mo>&#x7c;</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi>&#x3bc;</mml:mi>
<mml:mrow>
<mml:mi>g</mml:mi>
<mml:mi>l</mml:mi>
<mml:mi>o</mml:mi>
<mml:mi>b</mml:mi>
<mml:mi>a</mml:mi>
<mml:mi>l</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo>&#x7c;</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:math>
<label>(13)</label>
</disp-formula>
</p>
<p>For the steps with sloped pressure profiles (e.g., equalization, provide purge, blowdown or evacuation, and pressurization steps), the predicted pressure measurements, <inline-formula id="inf50">
<mml:math id="m63">
<mml:mrow>
<mml:msub>
<mml:mover accent="true">
<mml:mi>x</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>t</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1,2</mml:mn>
<mml:mo>,</mml:mo>
<mml:mo>&#x2026;</mml:mo>
<mml:msub>
<mml:mi>N</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> are computed by linear regression using the linear model estimated from all training data.<disp-formula id="e14">
<mml:math id="m64">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>M</mml:mi>
<mml:mi>A</mml:mi>
<mml:mi>E</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mi>N</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfrac>
<mml:mrow>
<mml:munderover>
<mml:mstyle displaystyle="true">
<mml:mo>&#x2211;</mml:mo>
</mml:mstyle>
<mml:mrow>
<mml:mi>t</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:msub>
<mml:mi>N</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:munderover>
<mml:mrow>
<mml:mo>&#x7c;</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mover accent="true">
<mml:mi>x</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mo>&#x7c;</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:math>
<label>(14)</label>
</disp-formula>
</p>
<p>Finally, for each cycle, we have all the above-described features combined.<disp-formula id="e15">
<mml:math id="m65">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">f</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">&#x3bc;</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo>&#x7c;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">s</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo>&#x7c;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">&#x3b3;</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo>&#x7c;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">&#x3ba;</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo>&#x7c;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold-italic">C</mml:mi>
<mml:mi mathvariant="bold-italic">V</mml:mi>
</mml:mrow>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo>&#x7c;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold-italic">I</mml:mi>
<mml:mi mathvariant="bold-italic">R</mml:mi>
<mml:mi mathvariant="bold-italic">Q</mml:mi>
</mml:mrow>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo>&#x7c;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold-italic">Q</mml:mi>
<mml:mi mathvariant="bold-italic">C</mml:mi>
<mml:mi mathvariant="bold-italic">D</mml:mi>
</mml:mrow>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo>&#x7c;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">D</mml:mi>
<mml:mrow>
<mml:mi>m</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>a</mml:mi>
<mml:mi>n</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x7c;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">D</mml:mi>
<mml:mrow>
<mml:mi>m</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>d</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x7c;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">S</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo>&#x7c;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">S</mml:mi>
<mml:mrow>
<mml:mi>L</mml:mi>
<mml:mi>L</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x7c;</mml:mo>
</mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold-italic">M</mml:mi>
<mml:mi mathvariant="bold-italic">A</mml:mi>
<mml:mi mathvariant="bold-italic">E</mml:mi>
</mml:mrow>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mo>}</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
<label>(15)</label>
</disp-formula>where <inline-formula id="inf51">
<mml:math id="m66">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">&#x3bc;</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>&#x3bc;</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>&#x3bc;</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:mo>&#x22ef;</mml:mo>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>&#x3bc;</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>T</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo>}</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> is a row vector of dimension <inline-formula id="inf52">
<mml:math id="m67">
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>&#xd7;</mml:mo>
<mml:mi mathvariant="script">S</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula>. <inline-formula id="inf53">
<mml:math id="m68">
<mml:mrow>
<mml:mi mathvariant="script">S</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> is the total number of steps in a cycle. The same concatenation convention applies to all types of features. Therefore, <inline-formula id="inf54">
<mml:math id="m69">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">f</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is a row vector of dimension <inline-formula id="inf55">
<mml:math id="m70">
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>&#xd7;</mml:mo>
<mml:mrow>
<mml:munderover>
<mml:mstyle displaystyle="true">
<mml:mo>&#x2211;</mml:mo>
</mml:mstyle>
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mi mathvariant="script">S</mml:mi>
</mml:munderover>
<mml:msub>
<mml:mi>Q</mml:mi>
<mml:mi>j</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula> where <inline-formula id="inf56">
<mml:math id="m71">
<mml:mrow>
<mml:msub>
<mml:mi>Q</mml:mi>
<mml:mi>j</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is the number of features used to characterize step <inline-formula id="inf57">
<mml:math id="m72">
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> of the PSA process. For simplicity, we use <inline-formula id="inf58">
<mml:math id="m73">
<mml:mrow>
<mml:mi>F</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> to denote the total number of features included in each cycle so that <inline-formula id="inf59">
<mml:math id="m74">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">f</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is a row vector containing <inline-formula id="inf60">
<mml:math id="m75">
<mml:mrow>
<mml:mi>F</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> features. In this work, we utilize 12 different types of features, as defined in <xref ref-type="disp-formula" rid="e1">Eqs 1</xref>&#x2013;<xref ref-type="disp-formula" rid="e14">14</xref>, for all the 15 steps, which would result in 180 features for each cycle (<italic>i.e.</italic>, <inline-formula id="inf61">
<mml:math id="m76">
<mml:mrow>
<mml:mi>F</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>180</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula>).</p>
<p>After the extracted features are concatenated into a row vector for each cycle following <xref ref-type="disp-formula" rid="e15">Eq. 15</xref>, the features from multiple cycles are concatenated into a matrix as the following.<disp-formula id="e16">
<mml:math id="m77">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">F</mml:mi>
<mml:mrow>
<mml:mi>T</mml:mi>
<mml:mi>R</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:mtable columnalign="center">
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mi mathvariant="bold-italic">f</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mi mathvariant="bold-italic">f</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mtable columnalign="center">
<mml:mtr>
<mml:mtd>
<mml:mo>&#x22ee;</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mi mathvariant="bold-italic">f</mml:mi>
<mml:mi mathvariant="script">C</mml:mi>
</mml:msub>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
<mml:mo>]</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
<label>(16)</label>
</disp-formula>
</p>
<p>In this way, a training feature matrix <inline-formula id="inf62">
<mml:math id="m78">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">F</mml:mi>
<mml:mrow>
<mml:mi mathvariant="normal">T</mml:mi>
<mml:mi mathvariant="normal">R</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> based on <inline-formula id="inf63">
<mml:math id="m79">
<mml:mrow>
<mml:mi mathvariant="script">C</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> normal cycles is obtained, which has a dimension of <inline-formula id="inf64">
<mml:math id="m80">
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi mathvariant="script">C</mml:mi>
<mml:mo>&#xd7;</mml:mo>
<mml:mi>F</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula>, despite different step/cycle durations in the data. The features of test cycle(s) <inline-formula id="inf65">
<mml:math id="m81">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">F</mml:mi>
<mml:mrow>
<mml:mi>T</mml:mi>
<mml:mi>E</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> are extracted in the same way except that some of the features are generated with reference to the training cycles (e.g., <inline-formula id="inf66">
<mml:math id="m82">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3bc;</mml:mi>
<mml:mrow>
<mml:mi>g</mml:mi>
<mml:mi>l</mml:mi>
<mml:mi>o</mml:mi>
<mml:mi>b</mml:mi>
<mml:mi>a</mml:mi>
<mml:mi>l</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> in <xref ref-type="disp-formula" rid="e12">Eq. 12</xref>).</p>
<p>It is worth noting that the statistical and morphological features are extracted for each step of each cycle based on the raw training data without any preprocessing, without synchronization, scaling, normalization nor alignment. Since the features are calculated using all measurements from each step of the cycle, they are all scalars regardless of the step/cycle durations. Therefore, FSM naturally handles unequal step/cycle durations and asynchronous step/cycle trajectories. In addition, the structure shown in <xref ref-type="disp-formula" rid="e15">Eq. 15</xref> has the flexibility of allowing different number of features for different steps. In addition, cycle-based features can be conveniently added in a similar fashion.</p>
</sec>
<sec id="s4-2">
<title>4.2 Feature selection</title>
<p>Feature selection has been widely studied in supervised learning where it has been shown that including irrelevant and noisy features increases model complexity and can degrade model prediction performance (<xref ref-type="bibr" rid="B15">Lindgren et al., 1994</xref>; <xref ref-type="bibr" rid="B1">Andersen and Bro, 2010</xref>; <xref ref-type="bibr" rid="B22">Wang et al., 2015</xref>; <xref ref-type="bibr" rid="B14">Lee et al., 2020</xref>). Feature selection also has other benefits including reducing computational cost, improving interpretability of the model, <italic>etc.</italic> Since MSPM method based on PCA is a dimension reduction technique that is capable of handling collinearity in the process data, it may appear that feature selection is redundant and unnecessary. However, as shown in <xref ref-type="bibr" rid="B7">Ghosh et al. (2014)</xref>, feature selection can have a significant impact on the monitoring performance of PCA-based MSPM. Specifically, experiments were conducted to show that including irrelevant and noisy features in a PCA-based MSPM model can degrade process monitoring performance (<xref ref-type="bibr" rid="B7">Ghosh et al., 2014</xref>).</p>
<p>In general, variable selection is more challenging for process monitoring as it is an unsupervised learning. Specifically, in process monitoring available data for model training are predominantly normal data. Even if fault data were available, they do not represent all possible fault scenarios. Therefore, for process monitoring, it is reasonable to assume that only normal operations data are available for feature selection, as features that are sensitive for detecting one type of fault may not be sensitive for detecting other (potentially unseen) faults. In this work we propose a new feature selection method for process monitoring that utilizes normal operation data only. We assume the true relevant features that are important for process monitoring should capture the key characteristics of the normal operation; consequently, if the true relevant features were used for process monitoring, the monitoring performance would be insensitive to the subsets of the training data used for model building. In other words, features extracted from a set of normal operation data (e.g., the training data) should show (highly) similar behavior as those extracted from another independent set of normal data (e.g., the validation data). In this work, we use false alarm rate (FAR) and false alarm magnitude (FAM) to quantify the difference between the training and validation performance, where FAM is defined as the difference between the monitoring statistic (e.g., T<sup>2</sup> or SPE) of the false alarm sample and the threshold of that statistic. In this work, 10-fold cross-validation is conducted using normal operation data to select features that result in similar FAR and FAM in the validation data, and feature selection is conducted through exhaustive search. A more systematic approach is under investigation. In the end, the following four features were selected: mean (<inline-formula id="inf67">
<mml:math id="m83">
<mml:mrow>
<mml:mi>&#x3bc;</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>), standard deviation (<inline-formula id="inf68">
<mml:math id="m84">
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>), slope of linear regression line (<inline-formula id="inf69">
<mml:math id="m85">
<mml:mrow>
<mml:msub>
<mml:mi>S</mml:mi>
<mml:mrow>
<mml:mi>L</mml:mi>
<mml:mi>L</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>) and mean absolute error (<inline-formula id="inf70">
<mml:math id="m86">
<mml:mrow>
<mml:mi>M</mml:mi>
<mml:mi>A</mml:mi>
<mml:mi>E</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>). It is worth noting that all median or quartile based robust features were not selected in this work. The possible reason is that since the PSA process is tightly controlled, these robust (hence less sensitive) features do not offer advantage over mean-based features that are more sensitive to changes in FAR and FAM.</p>
</sec>
<sec id="s4-3">
<title>4.3 Model development</title>
<p>After feature selection, a multivariate statistical model can be developed to extract the patterns of normal cycles by examining the correlations among all features. This model enables the determination of a boundary or threshold for process monitoring. In this work, we assume that under normal operations, the features form a multivariate normal distribution. Since all features are the averages of some functions of multiple measurements in a step/cycle, their distributions are asymptotically Gaussian (<xref ref-type="bibr" rid="B17">P&#xe8;ne, 2005</xref>). Similar to <xref ref-type="bibr" rid="B10">He and Wang (2011)</xref>, here we choose PCA to capture the directions of maximum covariances among all the features. Other SPM methods, such as independent component analysis (ICA), can be applied as well.</p>
<p>Because the features in FSM are usually different types, it is reasonable to scale the training feature matrix <inline-formula id="inf71">
<mml:math id="m87">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">F</mml:mi>
<mml:mrow>
<mml:mi>T</mml:mi>
<mml:mi>R</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> to zero mean and unit variance for correlation based PCA as follows.<disp-formula id="e17">
<mml:math id="m88">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">F</mml:mi>
<mml:mrow>
<mml:mi>T</mml:mi>
<mml:mi>R</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mi mathvariant="bold-italic">T</mml:mi>
<mml:msup>
<mml:mi mathvariant="bold-italic">P</mml:mi>
<mml:mi mathvariant="normal">T</mml:mi>
</mml:msup>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mover accent="true">
<mml:mi mathvariant="bold-italic">F</mml:mi>
<mml:mo>&#x223c;</mml:mo>
</mml:mover>
<mml:mrow>
<mml:mi>T</mml:mi>
<mml:mi>R</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mi mathvariant="bold-italic">T</mml:mi>
<mml:msup>
<mml:mi mathvariant="bold-italic">P</mml:mi>
<mml:mi mathvariant="normal">T</mml:mi>
</mml:msup>
<mml:mo>&#x2b;</mml:mo>
<mml:mover accent="true">
<mml:mi mathvariant="bold-italic">T</mml:mi>
<mml:mo>&#x223c;</mml:mo>
</mml:mover>
<mml:msup>
<mml:mover accent="true">
<mml:mi mathvariant="bold-italic">P</mml:mi>
<mml:mo>&#x223c;</mml:mo>
</mml:mover>
<mml:mi mathvariant="normal">T</mml:mi>
</mml:msup>
</mml:mrow>
</mml:math>
<label>(17)</label>
</disp-formula>where <inline-formula id="inf72">
<mml:math id="m89">
<mml:mrow>
<mml:mi mathvariant="bold-italic">P</mml:mi>
<mml:mo>&#x2208;</mml:mo>
<mml:msup>
<mml:mi mathvariant="fraktur">R</mml:mi>
<mml:mrow>
<mml:mi>F</mml:mi>
<mml:mo>&#xd7;</mml:mo>
<mml:mi>P</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula> is the loading matrix with its columns containing the directions of the first <inline-formula id="inf73">
<mml:math id="m90">
<mml:mrow>
<mml:mi>P</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> (i.e., the number of principal components) maximum correlations among all features in descending order. <inline-formula id="inf74">
<mml:math id="m91">
<mml:mrow>
<mml:mi mathvariant="bold-italic">T</mml:mi>
<mml:mo>&#x2208;</mml:mo>
<mml:msup>
<mml:mi mathvariant="fraktur">R</mml:mi>
<mml:mrow>
<mml:mi>M</mml:mi>
<mml:mo>&#xd7;</mml:mo>
<mml:mi>P</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula> is the score matrix with its columns containing the projections of <inline-formula id="inf75">
<mml:math id="m92">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">F</mml:mi>
<mml:mrow>
<mml:mi>T</mml:mi>
<mml:mi>R</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> onto <inline-formula id="inf76">
<mml:math id="m93">
<mml:mrow>
<mml:mi mathvariant="bold-italic">P</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>. <inline-formula id="inf77">
<mml:math id="m94">
<mml:mrow>
<mml:mover accent="true">
<mml:mi mathvariant="bold-italic">P</mml:mi>
<mml:mo>&#x223c;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf78">
<mml:math id="m95">
<mml:mrow>
<mml:mover accent="true">
<mml:mi mathvariant="bold-italic">T</mml:mi>
<mml:mo>&#x223c;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:math>
</inline-formula> are the residual loading and score matrices, respectively. The principal component subspace (PCS) is <inline-formula id="inf79">
<mml:math id="m96">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="script">S</mml:mi>
<mml:mi>P</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>s</mml:mi>
<mml:mi>p</mml:mi>
<mml:mi>a</mml:mi>
<mml:mi>n</mml:mi>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mrow>
<mml:mi mathvariant="bold-italic">P</mml:mi>
</mml:mrow>
<mml:mo>}</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>, which captures the systematic variations of the normal process operation, including measured and unmeasured disturbance, as well as set-point changes. The residual subspace (RS) is <inline-formula id="inf80">
<mml:math id="m97">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="script">S</mml:mi>
<mml:mi>R</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>s</mml:mi>
<mml:mi>p</mml:mi>
<mml:mi>a</mml:mi>
<mml:mi>n</mml:mi>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mi mathvariant="bold-italic">P</mml:mi>
<mml:mo>&#x223c;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>}</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>, which captures the remaining variations after subtracting the systematic variations. They are the random variations of the process, including measurement noise under normal operations.</p>
</sec>
<sec id="s4-4">
<title>4.4 Fault detection</title>
<p>PCA based fault detection is well established for monitoring multivariate processes at steady state, where Hotelling&#x2019;s T<sup>2</sup> can be employed for monitoring variations in the PCS while SPE or Q statistic can be employed for monitoring variations in the RS. By monitoring features of individual cycles, we can straightforwardly extend PCA for monitoring cyclic processes which are inherently non-steady state. Similar to PCA-based monitoring of a continuous process, T<sup>2</sup> can capture faults that shift away from the normal operation region without violating the covariance among measured/monitored process variables. These faults are usually large operational changes such as a change of feedstock or raw material. On the other hand, SPE are sensitive to the process faults that violate the collinear relationships among the monitored features. The control limits of T<sup>2</sup> and SPE can be defined theoretically based on the Gaussian assumption of the features. They can also be determined empirically, <italic>e.g.,</italic> by kernel density estimation (KDE). The latter is used in this work.</p>
<p>By design, PSA processes are tightly controlled to operate in a targeted optimal region. Therefore, we expect there are few process changes that could violate the threshold in PCS and are detectable by T<sup>2</sup>. In addition, as multiple features included in the FS are closely related to each other, such as the same features from different steps, there could be significant collinearities among features. Therefore, we expect SPE to be sensitive to the process faults with small magnitude but violating the collinearities among features, and enable early detection of potentially catastrophic faults. As shown in <xref ref-type="sec" rid="s5-2">Section 5.2</xref>, both the traditional multi-way PCA (MPCA) and the proposed FSM detected the faults largely through SPE, as expected.</p>
</sec>
<sec id="s4-5">
<title>4.5 Fault diagnosis</title>
<p>Once a fault is detected by SPE statistic, the contribution plot can be used for fault diagnosis. In this work, we propose a hierarchical fault diagnosis using SPE to first determine in which step the fault occurred based on the step-wise contribution plot, then postulate what type of fault occurred based on the feature-wise contribution plot.</p>
<p>At the step level (<italic>i.e.</italic>, step-wise diagnosis), SPE statistic is broken down by step:<disp-formula id="e18">
<mml:math id="m98">
<mml:mrow>
<mml:mi>S</mml:mi>
<mml:mi>P</mml:mi>
<mml:mi>E</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:munderover>
<mml:mstyle displaystyle="true">
<mml:mo>&#x2211;</mml:mo>
</mml:mstyle>
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mi>T</mml:mi>
</mml:munderover>
<mml:msub>
<mml:mrow>
<mml:mi>S</mml:mi>
<mml:mi>P</mml:mi>
<mml:mi>E</mml:mi>
</mml:mrow>
<mml:mi>j</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:munderover>
<mml:mstyle displaystyle="true">
<mml:mo>&#x2211;</mml:mo>
</mml:mstyle>
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mi>T</mml:mi>
</mml:munderover>
<mml:msup>
<mml:mrow>
<mml:mo>&#x2016;</mml:mo>
<mml:msub>
<mml:mover accent="true">
<mml:mi mathvariant="bold-italic">f</mml:mi>
<mml:mo>&#x223c;</mml:mo>
</mml:mover>
<mml:mi>j</mml:mi>
</mml:msub>
<mml:mo>&#x2016;</mml:mo>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msup>
</mml:mrow>
</mml:mrow>
</mml:math>
<label>(18)</label>
</disp-formula>where <inline-formula id="inf81">
<mml:math id="m99">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>S</mml:mi>
<mml:mi>P</mml:mi>
<mml:mi>E</mml:mi>
</mml:mrow>
<mml:mi>j</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mo>&#x2016;</mml:mo>
<mml:msub>
<mml:mover accent="true">
<mml:mi mathvariant="bold-italic">f</mml:mi>
<mml:mo>&#x223c;</mml:mo>
</mml:mover>
<mml:mi>j</mml:mi>
</mml:msub>
<mml:mo>&#x2016;</mml:mo>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msup>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:munderover>
<mml:mstyle displaystyle="true">
<mml:mo>&#x2211;</mml:mo>
</mml:mstyle>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:msub>
<mml:mi>Q</mml:mi>
<mml:mi>j</mml:mi>
</mml:msub>
</mml:munderover>
<mml:msubsup>
<mml:mover accent="true">
<mml:mi>f</mml:mi>
<mml:mo>&#x223c;</mml:mo>
</mml:mover>
<mml:mi>k</mml:mi>
<mml:mn>2</mml:mn>
</mml:msubsup>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> is the contribution from the <inline-formula id="inf82">
<mml:math id="m100">
<mml:mrow>
<mml:msup>
<mml:mi>j</mml:mi>
<mml:mrow>
<mml:mi>t</mml:mi>
<mml:mi>h</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula> step. <inline-formula id="inf83">
<mml:math id="m101">
<mml:mrow>
<mml:msubsup>
<mml:mover accent="true">
<mml:mi>f</mml:mi>
<mml:mo>&#x223c;</mml:mo>
</mml:mover>
<mml:mi>k</mml:mi>
<mml:mn>2</mml:mn>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula> is the residual (row) vector of features extracted from step <inline-formula id="inf84">
<mml:math id="m102">
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>
<italic>.</italic> The bar chart of <inline-formula id="inf85">
<mml:math id="m103">
<mml:mrow>
<mml:mfrac>
<mml:msub>
<mml:mrow>
<mml:mi>S</mml:mi>
<mml:mi>P</mml:mi>
<mml:mi>E</mml:mi>
</mml:mrow>
<mml:mi>j</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mi>S</mml:mi>
<mml:mi>P</mml:mi>
<mml:mi>E</mml:mi>
</mml:mrow>
</mml:mfrac>
<mml:mo>&#xd7;</mml:mo>
<mml:mn>100</mml:mn>
<mml:mo>%</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>&#x22ef;</mml:mo>
<mml:mi>T</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> provides information for the step-wise diagnosis for the faulty cycle. The step(s) with the highest contribution(s) are identified as the root cause(s). Note that if different number of features are used for different steps, a normalization (<italic>e.g.</italic>, dividing by number of features) can be applied. Once the faulty step is identified, a feature-wise diagnosis is performed to identify the nature of the fault. The bar chart of <inline-formula id="inf86">
<mml:math id="m104">
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:msubsup>
<mml:mover accent="true">
<mml:mi>f</mml:mi>
<mml:mo>&#x223c;</mml:mo>
</mml:mover>
<mml:mi>k</mml:mi>
<mml:mn>2</mml:mn>
</mml:msubsup>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>S</mml:mi>
<mml:mi>P</mml:mi>
<mml:mi>E</mml:mi>
</mml:mrow>
<mml:mi>j</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfrac>
<mml:mo>&#xd7;</mml:mo>
<mml:mn>100</mml:mn>
<mml:mo>%</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>,</mml:mo>
<mml:mo>&#x22ef;</mml:mo>
<mml:msub>
<mml:mi>Q</mml:mi>
<mml:mi>j</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> provides information for the feature-wise diagnose for step <italic>j</italic>. For example, if mean contributed significantly to <inline-formula id="inf87">
<mml:math id="m105">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>S</mml:mi>
<mml:mi>P</mml:mi>
<mml:mi>E</mml:mi>
</mml:mrow>
<mml:mi>j</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, then more likely there were step change(s) in the pressure profile during step <inline-formula id="inf88">
<mml:math id="m106">
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>. Similar diagnosis can be made for other features. It is worth noting that the features proposed in this work specifically target the PSA process. For other processes, other features, including auto- and cross-correlation coefficients and higher-order statistics (HOS), could and have been utilized for quantifying process dynamics and nonlinearity (J. <xref ref-type="bibr" rid="B19">Wang and He, 2010</xref>), (<xref ref-type="bibr" rid="B10">He and Wang, 2011</xref>).</p>
</sec>
</sec>
<sec id="s5">
<title>5 An industrial case study</title>
<sec id="s5-1">
<title>5.1 Fault description and methods studied</title>
<p>In this section, we use an industrial PSA case study to demonstrate the performance of the proposed FSM method, and compare it to the traditional MPCA method. Note that the method proposed by <xref ref-type="bibr" rid="B21">Wang et al. (2017)</xref> is not applicable because pressure measurements are the only available measurements for process monitoring in this study. The patented method by <xref ref-type="bibr" rid="B2">Arslan et al. (2014)</xref> cannot be implemented either, because there are no details as how the peaks are defined or classified as &#x201c;relevant&#x201d;, and the criteria used for peak selection and control limits determination are unknown. The state space modeling approach by <xref ref-type="bibr" rid="B16">Pan et al. (2004)</xref> is not applicable due to the absence of cycle-to-cycle dynamics of the PSA processes and the lack of quality-relevant measurement for the PSA process studied in this work. Because MPCA requires that each step across all cycles has the same duration, two different data preprocessing techniques are studied: one with simple cut denoted as MPCA<sub>SC</sub> and the other with dynamic time warping (DTW) denoted as MPCA<sub>DTW</sub>. For MPCA<sub>SC</sub>, the shortest step durations across all cycles are used as the reference while the last few measurements of any cycle with longer step duration are simply removed to match the shortest, which resulted in 438 variables for the whole cycle. For MPCA<sub>DTW</sub>, the number of variables after unfolding is 705. The significant difference in the number of variables for MPCA<sub>SC</sub> and MPCA<sub>DTW</sub> reflects the significant variation of step durations across different cycles. For FSM, four features are used for each of the 15 steps, which resulted in 60 variables. To ensure that enough number of samples are available for all methods, 2,070 cycles under normal operations are used as the training set, which is about three times the number of variables for MPCA<sub>DTW</sub>. The first 1,449 cycles (70% of 2,070 cycles) are used for model training and the remaining 621 cycles for model validation.</p>
<p>Six fault scenarios of a PSA process are studied in this work, which are listed in <xref ref-type="table" rid="T1">Table 1</xref>. The first four are simulated faults while the last two are from real industrial data. For the simulated faults, similar faulty process behaviours have been observed in actual operations. They are reproduced based on historical plots of those faults because the historical data are no longer available. All faults are related to valve malfunctions. For example, an internally leaky valve could result in higher or lower pressure in one vessel depending on whether the vessel serves as a pressure provider or receiver, such as the fault scenarios 1, 3 and 5. A sticky valve could result in higher pressure variation, such as the fault scenario 2, sudden pressure increase or drop, such as the fault scenario 4, or a non-smooth (e.g., zig-zag) pressure profile, such as the fault scenario 6. As discussed in the Introduction section, due to frequent open and close operations of valves, it has been found that the process faults are most often caused by valve-related problems. For each fault scenario, totally 16 cycles are used as the test set and among which 3 (deliberately arranged as cycle 4, 9 and 14 for better comparison across all scenarios) are faulty cycles. In these cases, the simulated faults are introduced by modifying a normal cycle randomly selected from the industrial data set. The pressure trajectories of the test set for fault scenarios 1 (simulated fault) and 5 (real fault) are shown in <xref ref-type="fig" rid="F4">Figure 4</xref>.</p>
<table-wrap id="T1" position="float">
<label>TABLE 1</label>
<caption>
<p>Fault scenarios studied in this work.</p>
</caption>
<table>
<thead valign="top">
<tr>
<th align="left">Fault &#x23;</th>
<th align="left">Description</th>
</tr>
</thead>
<tbody valign="top">
<tr>
<td align="left">1</td>
<td align="left">During adsorption step, the faulty cycles have lower pressure than normal cycles</td>
</tr>
<tr>
<td align="left">2</td>
<td align="left">During adsorption step, the faulty cycles have higher pressure variations than normal cycles</td>
</tr>
<tr>
<td align="left">3</td>
<td align="left">During a hold step, the pressure of the faulty cycles decreases instead of being held steady</td>
</tr>
<tr>
<td align="left">4</td>
<td align="left">During an equalization step, the pressure of the faulty cycles was held steady followed by a sudden drop instead of smooth decrease</td>
</tr>
<tr>
<td align="left">5</td>
<td align="left">During re-pressurization, the pressure of the faulty cycles does not follow the normal cycle trajectory</td>
</tr>
<tr>
<td align="left">6</td>
<td align="left">During an equalization step, the pressure of the faulty cycles follows a zig-zag or stair-like profile instead of a smooth increase</td>
</tr>
</tbody>
</table>
</table-wrap>
<fig id="F4" position="float">
<label>FIGURE 4</label>
<caption>
<p>Pressure trajectories of the selected test sets <bold>(A)</bold> Fault scenario 1 <bold>(B)</bold> Fault scenario 5. Normal cycles are plotted in black while faulty cycles are in red. The steps in which the fault occurred are marked by blue dashed-line rectangles and shown in the zoom-in views.</p>
</caption>
<graphic xlink:href="fceng-04-1064221-g004.tif"/>
</fig>
<p>For all fault detection methods, the number of principal component (PCs) is selected to cover 90% of the variance of their corresponding full feature space. The control limits on Hoteling&#x2019;s T<sup>2</sup> and squared prediction error (SPE) are calculated empirically based on the kernel density estimation of the corresponding statistics (<italic>i.e.</italic>, T<sup>2</sup> or SPE) of the training dataset at confidence level 99%. The number of PCs and other information discussed above are listed in <xref ref-type="table" rid="T2">Table 2</xref>.</p>
<table-wrap id="T2" position="float">
<label>TABLE 2</label>
<caption>
<p>Training, testing datasets and model parameters.</p>
</caption>
<table>
<thead valign="top">
<tr>
<th align="left"/>
<th align="left">MPCA<sub>SC</sub>
</th>
<th align="left">MPCA<sub>DTW</sub>
</th>
<th align="left">FSM</th>
</tr>
</thead>
<tbody valign="top">
<tr>
<td align="left">&#x23; of features/variables</td>
<td align="left">438</td>
<td align="char" char=".">705</td>
<td align="char" char=".">60</td>
</tr>
<tr>
<td align="left">&#x23; of PC&#x2019;s</td>
<td align="left">24</td>
<td align="char" char=".">32</td>
<td align="char" char=".">20</td>
</tr>
<tr>
<td align="left">Training</td>
<td colspan="3" align="left">2,070 normal cycles</td>
</tr>
<tr>
<td align="left">Testing</td>
<td colspan="3" align="left">16 cycles (13 normal, 3 fault: cycle 4, 9, 16)</td>
</tr>
<tr>
<td align="left">Confidence level</td>
<td colspan="3" align="left">99%</td>
</tr>
</tbody>
</table>
</table-wrap>
</sec>
<sec id="s5-2">
<title>5.2 Fault detection results</title>
<p>By considering faults detected in both residual subspace using SPE and principal subspace using T<sup>2</sup>, the overall fault detection results are shown in <xref ref-type="table" rid="T3">Table 3</xref>. Specifically, the table lists faulty cycles detected by either SPE, or T<sup>2</sup>, or both. The fault detection rate (FDR) and false alarm rate (FAR) of each method are also summarized in <xref ref-type="table" rid="T3">Table 3</xref>. These results show that FSM detects all faulty cycles under all fault scenarios without generating false alarms. In comparison, MPCA<sub>SC</sub> has missed detection under fault scenario 1, while MPCA<sub>DTW</sub> has missed detection under fault scenario 5. In addition, both MPCA<sub>SC</sub> and MPCA<sub>DTW</sub> have false alarms. More details of the fault detection results by T<sup>2</sup> and SPE are shown in <xref ref-type="table" rid="T4">Table 4</xref>. It can be seen that SPE statistic in general is more effective in detecting faults, although it also generates false alarms in the cases of MPCA<sub>SC</sub> and MPCA<sub>DTW</sub>. In comparison, T<sup>2</sup> does not generate false alarms for all methods. However, it misses several faults in MPCA<sub>SC</sub> and performs even worse in MPCA<sub>DTW</sub>. Overall, FSM performs robustly with both T<sup>2</sup> and SPE and is significantly better than MPCA<sub>SC</sub> and MPCA<sub>DTW</sub>.</p>
<table-wrap id="T3" position="float">
<label>TABLE 3</label>
<caption>
<p>Fault detection results (true faulty cycles: 4, 9 &#x26; 14; FDR: fault detection rate; FAR: false alarm rate). Correctly detected cycles are in bold black. Incorrectly detected cycles are in red.</p>
</caption>
<table>
<thead valign="top">
<tr>
<th rowspan="2" align="left">Fault scenario</th>
<th colspan="3" align="left">MPCA<sub>SC</sub>
</th>
<th colspan="3" align="left">MPCA<sub>DTW</sub>
</th>
<th colspan="4" align="left">FSM</th>
</tr>
<tr>
<th align="left">Cycle detected</th>
<th align="left">FDR (%)</th>
<th align="left">Far (%)</th>
<th align="left">Cycle detected</th>
<th align="left">FDR (%)</th>
<th align="left">Far (%)</th>
<th align="left">Cycle detected</th>
<th align="left">FDR (%)</th>
<th align="left">Far (%)</th>
</tr>
</thead>
<tbody valign="top">
<tr>
<td align="left">1</td>
<td align="left">
<bold>4, 14,</bold> 15</td>
<td align="char" char=".">66.7</td>
<td align="char" char=".">7.7</td>
<td align="left">
<bold>4, 9,</bold> 10<bold>, 14</bold>
</td>
<td align="char" char=".">100</td>
<td align="char" char=".">7.7</td>
<td align="left">
<bold>4, 9, 14</bold>
</td>
<td align="char" char=".">100</td>
<td align="char" char=".">0</td>
</tr>
<tr>
<td align="left">2</td>
<td align="left">
<bold>4, 9, 14,</bold> 15</td>
<td align="char" char=".">100</td>
<td align="char" char=".">7.7</td>
<td align="left">
<bold>4, 9,</bold> 10<bold>, 14</bold>
</td>
<td align="char" char=".">100</td>
<td align="char" char=".">7.7</td>
<td align="left">
<bold>4, 9, 14</bold>
</td>
<td align="char" char=".">100</td>
<td align="char" char=".">0</td>
</tr>
<tr>
<td align="left">3</td>
<td align="left">
<bold>4, 9, 14,</bold> 15</td>
<td align="char" char=".">100</td>
<td align="char" char=".">7.7</td>
<td align="left">
<bold>4, 9,</bold> 10<bold>, 14</bold>
</td>
<td align="char" char=".">100</td>
<td align="char" char=".">7.7</td>
<td align="left">
<bold>4, 9, 14</bold>
</td>
<td align="char" char=".">100</td>
<td align="char" char=".">0</td>
</tr>
<tr>
<td align="left">4</td>
<td align="left">
<bold>4, 9, 14,</bold> 15</td>
<td align="char" char=".">100</td>
<td align="char" char=".">7.7</td>
<td align="left">
<bold>4, 9,</bold> 10<bold>, 14</bold>
</td>
<td align="char" char=".">100</td>
<td align="char" char=".">7.7</td>
<td align="left">
<bold>4, 9, 14</bold>
</td>
<td align="char" char=".">100</td>
<td align="char" char=".">0</td>
</tr>
<tr>
<td align="left">5</td>
<td align="left">
<bold>4, 9, 14,</bold> 15</td>
<td align="char" char=".">100</td>
<td align="char" char=".">7.7</td>
<td align="left">
<bold>9,</bold> 10</td>
<td align="char" char=".">33.3</td>
<td align="char" char=".">7.7</td>
<td align="left">
<bold>4, 9, 14</bold>
</td>
<td align="char" char=".">100</td>
<td align="char" char=".">0</td>
</tr>
<tr>
<td align="left">6</td>
<td align="left">
<bold>4, 9, 14,</bold> 15</td>
<td align="char" char=".">100</td>
<td align="char" char=".">7.7</td>
<td align="left">
<bold>4, 9,</bold> 10<bold>, 14</bold>
</td>
<td align="char" char=".">100</td>
<td align="char" char=".">7.7</td>
<td align="left">
<bold>4, 9, 14</bold>
</td>
<td align="char" char=".">100</td>
<td align="char" char=".">0</td>
</tr>
</tbody>
</table>
</table-wrap>
<table-wrap id="T4" position="float">
<label>TABLE 4</label>
<caption>
<p>Details of the fault detection results by T<sup>2</sup> and SPE. Correctly detected cycles are in bold black. Incorrectly detected cycles are in red.</p>
</caption>
<table>
<thead valign="top">
<tr>
<th rowspan="2" align="left">Fault scenario</th>
<th colspan="2" align="left">MPCA<sub>SC</sub>
</th>
<th colspan="2" align="left">MPCA<sub>DTW</sub>
</th>
<th colspan="2" align="left">FSM</th>
</tr>
<tr>
<th align="left">T<sup>2</sup>
</th>
<th align="left">SPE</th>
<th align="left">T<sup>2</sup>
</th>
<th align="left">SPE</th>
<th align="left">T<sup>2</sup>
</th>
<th align="left">SPE</th>
</tr>
</thead>
<tbody valign="top">
<tr>
<td align="left">1</td>
<td align="left">
<bold>4, 14</bold>
</td>
<td align="left">
<bold>4,</bold> 15</td>
<td align="left">
<bold>4, 9, 14</bold>
</td>
<td align="left">
<bold>4, 9,</bold> 10<bold>, 14</bold>
</td>
<td align="left">
<bold>4, 9, 14</bold>
</td>
<td align="left">
<bold>4, 9, 14</bold>
</td>
</tr>
<tr>
<td align="left">2</td>
<td align="left">
<bold>9</bold>
</td>
<td align="left">
<bold>4, 9, 14,</bold> 15</td>
<td align="left">None</td>
<td align="left">
<bold>4, 9,</bold> 10<bold>, 14</bold>
</td>
<td align="left">
<bold>4, 9, 14</bold>
</td>
<td align="left">
<bold>4, 9, 14</bold>
</td>
</tr>
<tr>
<td align="left">3</td>
<td align="left">
<bold>9, 14</bold>
</td>
<td align="left">
<bold>4, 9, 14,</bold> 15</td>
<td align="left">None</td>
<td align="left">
<bold>4, 9,</bold> 10<bold>, 14</bold>
</td>
<td align="left">
<bold>9, 14</bold>
</td>
<td align="left">
<bold>4, 9, 14</bold>
</td>
</tr>
<tr>
<td align="left">4</td>
<td align="left">
<bold>4, 9, 14</bold>
</td>
<td align="left">
<bold>4, 9, 14,</bold> 15</td>
<td align="left">None</td>
<td align="left">
<bold>4, 9,</bold> 10<bold>, 14</bold>
</td>
<td align="left">
<bold>4, 9, 14</bold>
</td>
<td align="left">
<bold>4, 9, 14</bold>
</td>
</tr>
<tr>
<td align="left">5</td>
<td align="left">
<bold>4, 9, 14</bold>
</td>
<td align="left">
<bold>4, 9, 14,</bold> 15</td>
<td align="left">None</td>
<td align="left">
<bold>9,</bold> 10</td>
<td align="left">
<bold>4, 9, 14</bold>
</td>
<td align="left">
<bold>4, 9, 14</bold>
</td>
</tr>
<tr>
<td align="left">6</td>
<td align="left">
<bold>9</bold>
</td>
<td align="left">
<bold>4, 9, 14,</bold> 15</td>
<td align="left">None</td>
<td align="left">
<bold>4, 9,</bold> 10<bold>, 14</bold>
</td>
<td align="left">
<bold>9, 14</bold>
</td>
<td align="left">
<bold>4, 9, 14</bold>
</td>
</tr>
</tbody>
</table>
</table-wrap>
<p>To provide additional details on the performance of different methods, we visualized some fault detection results. Due to limited space, only the detection results of fault scenarios one and five in the residual subspace (i.e., using SPE statistic) are visualized in <xref ref-type="fig" rid="F5">Figures 5</xref>, <xref ref-type="fig" rid="F6">6</xref> and discussed in detail below. <xref ref-type="fig" rid="F5">Figure 5</xref> shows that for fault scenario 1, MPCA<sub>SC</sub> has difficulty in detecting Fault 1: missing two out of three faulty cycles. MPCA<sub>DCW</sub> detects all three faulty cycles but also generates a false alarm. Only FSM detects all three faulty cycles without generating false alarms. <xref ref-type="fig" rid="F6">Figure 6</xref> shows that for fault scenario 5, MPCA<sub>SC</sub> detects all three faulty cycles while generating a false alarm. MPCA<sub>DCW</sub> failed to detect two out of three faulty cycles while generating a false alarm. Again, only FSM successfully detects all faulty cycles without generating false alarms. It is worth noting that FSM results in linear models, which have low risk of overfitting. This is demonstrated in <xref ref-type="fig" rid="F5">Figure 5C</xref> and <xref ref-type="fig" rid="F6">Figure 6C</xref> where the normal test samples have similar SPE values as those of the normal training samples.</p>
<fig id="F5" position="float">
<label>FIGURE 5</label>
<caption>
<p>Fault scenario 1: fault detection in residual subspace (SPE) from <bold>(A)</bold> MPCA<sub>SC</sub> <bold>(B)</bold> MPCA<sub>DTW</sub> and <bold>(C)</bold> FSM. Blue circles are normal training cycles; black squares are normal testing cycles; black triangles are faulty testing cycles; horizontal red dashed lines are fault detection thresholds; vertical black dash-dotted lines separate training from testing.</p>
</caption>
<graphic xlink:href="fceng-04-1064221-g005.tif"/>
</fig>
<fig id="F6" position="float">
<label>FIGURE 6</label>
<caption>
<p>Fault scenario 5: fault detection in residual subspace (SPE) from <bold>(A)</bold> MPCA<sub>SC</sub> <bold>(B)</bold> MPCA<sub>DTW</sub> and <bold>(C)</bold> FSM. Blue circles are normal training cycles; black squares are normal testing cycles; black triangles are faulty testing cycles; horizontal red dashed lines are fault detection thresholds; vertical black dash-dotted lines separate training from testing.</p>
</caption>
<graphic xlink:href="fceng-04-1064221-g006.tif"/>
</fig>
<p>We further investigated the false alarms (<italic>i.e.</italic>, cycle 10 for MPCA<sub>SC</sub> and cycle 15 for MPCA<sub>DTW</sub>) to understand why those two cycles generate false alarms. <xref ref-type="fig" rid="F7">Figure 7</xref> plots the trajectory of all test cycles for the fault scenario 5. All true faulty cycles are plotted in red dashed lines, and all normal test cycles are plotted in black solid lines&#x2014;except cycle 10 in the cyan dash-dotted line, and cycle 15 in the green dotted line. As described in <xref ref-type="table" rid="T1">Table 1</xref>, the pressure profiles of the faulty cycles do not follow the normal cycle pressure trajectory during the re-pressurization step (highlighted in the blue dashed-line box). It can be seen that cycles 10 and 15 both behave normally during the re-pressurization step. However, if we zoom in to visualize the pressure profile in other steps (e.g., the insert in <xref ref-type="fig" rid="F7">Figure 7</xref>, which is the zoom-in view of the adsorption step), it can be seen that cycles 10 and 15 are at the lower boundary of all normal cycles, suggesting that the MPCA based approaches may be more sensitive to mean shift. Although the mean shift in this case is within the normal operation range, the cumulative effect (<italic>i.e.</italic>, the persistent small shift that lasts for a period of time) would likely be captured by MPCA as a fault.</p>
<fig id="F7" position="float">
<label>FIGURE 7</label>
<caption>
<p>The false alarm cycles 10 (in cyan) and 15 (in green) behave normally during the re-pressurization step in which the true fault occurred (highlighted in the blue dashed-line rectangle with faulty cycles plotted as red dashed lines). The zoom-in view of the adsorption step indicates that cycles 10 and 15 are at the lower, but normal, boundary of all cycles.</p>
</caption>
<graphic xlink:href="fceng-04-1064221-g007.tif"/>
</fig>
<p>The normal samples (i.e., cycles) in the test data are industrial data collected from the same PSA process and used for all the fault scenarios. For each faulty cycle, the fault occurred during different steps for different fault scenarios as defined in <xref ref-type="table" rid="T1">Table 1</xref>. As a result, the false alarms for a specific method across different fault scenarios are the same (e.g., cycle 15 for MPCA<sub>SC</sub> and cycle 10 for MPCA<sub>DTW</sub>) since they are the same normal cycles used in all fault scenarios. Clearly, the value of FAR in <xref ref-type="table" rid="T1">Table 1</xref> would be affected by the normal cycles included in the test data. In this study, the normal testing samples were selected randomly to avoid any potential bias.</p>
<p>Further investigation is conducted to understand the reason for MPCA<sub>DCW</sub>&#x2019;s failure in detecting true faulty cycles under fault scenario 5 (a real fault), for which only one out of three faulty cycles is detected. Since MPCA<sub>SC</sub> is able to detect all faulty cycles, we suspect that the failure is related to data preprocessing by DTW. Therefore, we plot the original pressure profiles of the 16 test cycles, which are shown in <xref ref-type="fig" rid="F8">Figure 8A</xref> and compare them to the pressure profiles after DTW as shown in <xref ref-type="fig" rid="F8">Figure 8B</xref>. A zoom-in view of the faulty step is included for both figures. The comparison clearly indicates that the irregular discrepancies of the faulty cycles shown in the original pressure profiles diminished after trajectory synchronization by DTW. This case suggests that DTW could cause severe information loss or distortion, which in turns affects the fault detection performance. This is consistent with our previous findings that data manipulations during preprocessing, including DTW, could cause information loss or distortion and should be avoided if possible (<xref ref-type="bibr" rid="B10">He and Wang, 2011</xref>). This example further raises the alarm that the widely used DTW for batch trajectory warping or alignment in process monitoring applications could potentially be a problematic practice that may lead to missed detections of process faults.</p>
<fig id="F8" position="float">
<label>FIGURE 8</label>
<caption>
<p>Comparison between the pressure profiles of <bold>(A)</bold> the original 16 test cycles and <bold>(B)</bold> the test cycles after DTW. The normal testing cycles are plotted in black solid lines while the faulty testing cycles are plotted in red dashed lined. The irregular discrepancies among cycles shown in the original profiles (highlighted in the blue dashed-line rectangles and the zoom-in views) have diminished after DTW, indicating that DTW causes significant information loss or distortion.</p>
</caption>
<graphic xlink:href="fceng-04-1064221-g008.tif"/>
</fig>
</sec>
<sec id="s5-3">
<title>5.3 Fault diagnosis results</title>
<p>After fault detection, fault diagnosis is performed for the detected faulty cycles. For FSM, the procedure outlined in <xref ref-type="sec" rid="s4">Sec. 4</xref> is followed to construct step-wise and feature-wise contribution plots. For MPCA<sub>SC</sub> and MPCA<sub>DTW</sub>, since pressure is the only measured process variable, only step-wise contribution plot is applicable. Again, we use fault scenarios 1 and 5 as examples. For fault scenario 1, test cycle four is used for illustration as the fault is detected by all methods. For the same reason, test cycle nine is used for fault scenario 5. <xref ref-type="fig" rid="F9">Figures 9A&#x2013;C</xref> show the step-wise contribution plots for fault diagnosis of test cycle four in fault scenario 1. From <xref ref-type="table" rid="T1">Table 1</xref>, we know that this is a fault occurring during the adsorption step (<italic>i.e.</italic>, step 1), and the faulty cycles have lower pressure than normal cycles. <xref ref-type="fig" rid="F9">Figure 9</xref> shows that MPCA<sub>SC</sub> incorrectly attributes this fault to step 10, while MPCA<sub>DTW</sub> and FSM correctly identify the faulty step, with FSM providing the strongest conviction. For FSM, once the faulty step is identified, the faulty step contribution is further broken down to the feature level following the procedure outlined in <xref ref-type="sec" rid="s4">Sec. 4</xref>, as shown in <xref ref-type="fig" rid="F9">Figure 9D</xref>. In this figure, MAE and the mean (<inline-formula id="inf89">
<mml:math id="m107">
<mml:mrow>
<mml:mi>&#x3bc;</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>) are identified as the most significant contributor to the fault, indicating that there might be a mean shift in pressure profile during step 1 of the faulty cycles. It is worth noting that MAE usually contributes the most to the fault detection indices as it captures the absolute deviation of a faulty trajectory from the nominal behavior, which includes the effects of both mean and spread (e.g., standard deviation) of the samples.</p>
<fig id="F9" position="float">
<label>FIGURE 9</label>
<caption>
<p>Step-wise fault diagnosis for cycle four of fault scenario 1 <bold>(A)</bold> MPCA<sub>SC</sub> <bold>(B)</bold> MPCA<sub>DTW</sub>, and <bold>(C)</bold> FSM, and <bold>(D)</bold> feature-wise fault diagnosis from FSM. MPCA<sub>SC</sub> wrongly attributes the fault to step 10, while both MPCA<sub>DTW</sub> and FSM correctly attribute the fault to step 1. FSM also shows the clearest diagnosis among all methods. FSM can also further drill down the fault to the feature level where the mean (<inline-formula id="inf90">
<mml:math id="m108">
<mml:mrow>
<mml:mi>&#x3bc;</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>) and MAE are identified as the most significant contributor to the fault, correctly indicating that there might be a significant shift in pressure profile during step 1 of the faulty cycles.</p>
</caption>
<graphic xlink:href="fceng-04-1064221-g009.tif"/>
</fig>
<p>The fault diagnosis for cycle nine of fault scenario five is conducted similarly and the results are shown in <xref ref-type="fig" rid="F10">Figure 10</xref>. Here the true fault is a deviation of the pressure profile from the normal trajectories during the last step of the cycle. In this care, both MPCA<sub>SC</sub> and FSM correctly identify the faulty step, while MPCA<sub>DTW</sub> misidentifies the step 10 as the faulty step. FSM also shows the clearest diagnosis among all methods. Feature-wise diagnosis from FSM identifies MAE and the standard deviation (<italic>s</italic>) as the most significant contributors to the fault, indicating that there could be an increased variation in pressure profile during the last step of the faulty cycle. The misdiagnosis of this fault by MPCA<sub>DTW</sub> can be at least partially attributed to the pressure profile distortion during the DTW preprocessing step as discussed earlier and illustrated in <xref ref-type="fig" rid="F8">Figure 8</xref>.</p>
<fig id="F10" position="float">
<label>FIGURE 10</label>
<caption>
<p>Step-wise fault diagnosis for cycle nine of fault scenario 5 <bold>(A)</bold> MPCA<sub>SC</sub> <bold>(B)</bold> MPCA<sub>DTW</sub>, and <bold>(C)</bold> FSM, and <bold>(D)</bold> feature-wise fault diagnosis from FSM. Both MPCA<sub>SC</sub> and FSM correctly attribute the fault to the last step of the cycle, while MPCA<sub>DTW</sub> wrongly attributes the fault to step 10. FSM also shows the clearest diagnosis among all methods. FSM can also further drill down the fault to the feature level where the standard deviation and MAE are identified as the most significant contributor to the fault, correctly indicating that there is an increased variation in pressure profile during the last step of the faulty cycles.</p>
</caption>
<graphic xlink:href="fceng-04-1064221-g010.tif"/>
</fig>
<p>The overall fault diagnosis results are shown in <xref ref-type="table" rid="T5">Table 5</xref>. It can be seen that FSM correctly diagnoses all fault scenarios (<italic>i.e.</italic>, correctly identifies all faulty steps). MPCA<sub>SC</sub> has two misdiagnoses (fault scenarios three and 6) and one inconsistent diagnosis from T<sup>2</sup> and SPE (fault scenario 1). MPCA<sub>DTW</sub> has two misdiagnoses (fault scenarios five and 6). In addition, FSM provides meaningful diagnoses at the feature level for all fault scenarios.</p>
<table-wrap id="T5" position="float">
<label>TABLE 5</label>
<caption>
<p>Details of the fault diagnosis results by T<sup>2</sup> and SPE. One faulty cycle detected by all methods is selected for each fault scenario. If the faulty step is correctly identified, it is marked as &#x201c;Yes&#x201d;, otherwise marked as &#x201c;No&#x201d;. If the faulty cycle is not detected as a fault, its diagnosis is marked as &#x201c;NA".</p>
</caption>
<table>
<thead valign="top">
<tr>
<th rowspan="2" align="left">Fault scenario (cycle for diagnosis)</th>
<th colspan="2" align="left">MPCA<sub>SC</sub>
</th>
<th colspan="2" align="left">MPCA<sub>DTW</sub>
</th>
<th colspan="2" align="left">FSM</th>
</tr>
<tr>
<th align="left">T<sup>2</sup>
</th>
<th align="left">SPE</th>
<th align="left">T<sup>2</sup>
</th>
<th align="left">SPE</th>
<th align="left">T<sup>2</sup>
</th>
<th align="left">SPE</th>
</tr>
</thead>
<tbody valign="top">
<tr>
<td align="left">1 (4)</td>
<td align="left">
<bold>Yes</bold>
</td>
<td align="left">No</td>
<td align="left">
<bold>Yes</bold>
</td>
<td align="left">
<bold>Yes</bold>
</td>
<td align="left">
<bold>Yes</bold>
</td>
<td align="left">
<bold>Yes</bold>
</td>
</tr>
<tr>
<td align="left">2 (9)</td>
<td align="left">
<bold>Yes</bold>
</td>
<td align="left">
<bold>Yes</bold>
</td>
<td align="left">NA</td>
<td align="left">
<bold>Yes</bold>
</td>
<td align="left">
<bold>Yes</bold>
</td>
<td align="left">
<bold>Yes</bold>
</td>
</tr>
<tr>
<td align="left">3 (9)</td>
<td align="left">No</td>
<td align="left">No</td>
<td align="left">NA</td>
<td align="left">
<bold>Yes</bold>
</td>
<td align="left">
<bold>Yes</bold>
</td>
<td align="left">
<bold>Yes</bold>
</td>
</tr>
<tr>
<td align="left">4 (4)</td>
<td align="left">
<bold>Yes</bold>
</td>
<td align="left">
<bold>Yes</bold>
</td>
<td align="left">NA</td>
<td align="left">
<bold>Yes</bold>
</td>
<td align="left">
<bold>Yes</bold>
</td>
<td align="left">
<bold>Yes</bold>
</td>
</tr>
<tr>
<td align="left">5 (9)</td>
<td align="left">
<bold>Yes</bold>
</td>
<td align="left">
<bold>Yes</bold>
</td>
<td align="left">NA</td>
<td align="left">No</td>
<td align="left">
<bold>Yes</bold>
</td>
<td align="left">
<bold>Yes</bold>
</td>
</tr>
<tr>
<td align="left">6 (9)</td>
<td align="left">No</td>
<td align="left">No</td>
<td align="left">NA</td>
<td align="left">No</td>
<td align="left">
<bold>Yes</bold>
</td>
<td align="left">
<bold>Yes</bold>
</td>
</tr>
</tbody>
</table>
</table-wrap>
</sec>
</sec>
<sec id="s6">
<title>6 Conclusion and discussions</title>
<p>In this work, we present a simple yet effective fault detection and diagnosis method, namely feature space monitoring or FSM, for PSA and other cyclic/periodic processes. Different from the conventional MSPM methods, FSM characterizes the normal operation cycle behavior with various statistical and shape/morphological features for each step. FSM naturally handles the challenges in monitoring cyclic processes without any preprocessing steps, which include variable cycle/step duration, wide range of normal cycle/step trajectories, and/or limited measurements&#x2014;for PSA, bed pressure is often the only measured variable for process monitoring. To be able to detect subtle faults from a wide range of normal cycle trajectories, FSM relies on feature engineering and selection to balance the robustness and sensitivity of the fault detection performance. Finally, through a hierarchical fault diagnosis framework, once a fault is detected, the proposed FSM approach first identifies the step where the fault occurred using a step-wise contribution plot, then postulates the type of fault based on a feature-wise contribution plot.</p>
<p>Using an industrial case study, we demonstrate that FSM outperforms MPCA with simple cut (MPCA<sub>SC</sub>) or dynamic time warping (MPCA<sub>DTW</sub>) in six fault scenarios. Specifically, FSM successfully detected all three faulty cycles in every fault scenario without generating false alarms. In comparison, both MPCA<sub>SC</sub> and MPCA<sub>DTW</sub> had missed detections in some fault scenarios, and both had false alarms in all fault scenarios. In addition, the hierarchical fault diagnosis framework based on FSM correctly identified the faulty steps under all scenarios studied in this work. In comparison, MPCA<sub>SC</sub> and MPCA<sub>DTW</sub> based contribution plots all had misdiagnosis under some fault scenarios. Finally, FSM provides the feature-wise diagnosis capability, which enables a plant engineer to further determine the nature of a fault, such as whether it is a simple mean shift or an increase in variation or a complex fault of both. These fault detection and diagnosis results demonstrate that the FSM-based linear models have a low risk of overfitting and are easy to interpret.</p>
<p>The proposed FSM framework can be applied to other periodic or cyclic processes. In terms of implementation, what FSM features to be included has a big impact on the fault detection and diagnosis performance. In general, the features that should be included for process monitoring depend on the process behavior, and the domain knowledge plays an important role. In addition, depending on the noise level of the process data, it may be necessary to evaluate different versions of the same features that have different degrees of sensitivity to extreme points or outliers. There is usually a trade-off between robustness and sensitivity of the monitoring performance. In this work, the list of features we evaluated were generated based on PSA process behavior and discussions with process engineers. In addition, we proposed an approach to select the relevant features using normal process data only. The variable selection for unsupervised learning was achieved based on the assumption that the truly relevant features should provide consistent monitoring performance, regardless of the training data used. In this work, feature selection was done through a manual search. It is desirable to have a systematic and automated approach for feature engineering and feature selection, which is the area that we are currently working on.</p>
<p>Finally, this work suggested that the widely used DTW for batch trajectory warping or alignment in process monitoring applications could potentially be a problematic practice that may lead to missed fault detections. Specifically, this work demonstrated that DTW could cause severe batch/cycle trajectory distortion, which in turns negatively affected the fault detection performance. Therefore, data preprocessing in process monitoring, including DTW, should be avoided if possible, or conducted with caution and verification if unavoidable.</p>
</sec>
</body>
<back>
<sec sec-type="data-availability" id="s7">
<title>Data availability statement</title>
<p>The datasets presented in this article are not readily available because the sensitivity of the actual operation and production data. Requests to access the datasets should be directed to <ext-link ext-link-type="uri" xlink:href="http://qhe@auburn.edu">qhe@auburn.edu</ext-link>.</p>
</sec>
<sec id="s8">
<title>Author contributions</title>
<p>QH and JW conceived the idea and secured the funding. JL implemented and improved the methodology, conducted data analysis, generated majority of the results, and participated in the manuscript revision; QH supervised and conducted data analysis; QH and JW wrote the initial draft and revised the manuscript; AK and JF provided PSA process knowledge and the process data, critiqued the methodology, reviewed the results, and participated in the manuscript revision. All authors read and approved the final manuscript.</p>
</sec>
<sec id="s9">
<title>Funding</title>
<p>This research is supported by the US National Science Foundation under grant CBET &#x23;1805950.</p>
</sec>
<sec sec-type="COI-statement" id="s10">
<title>Conflict of interest</title>
<p>The authors declare that the research was conducted in the absence of any commercial or financial relationships that could be construed as a potential conflict of interest.</p>
</sec>
<sec sec-type="disclaimer" id="s11">
<title>Publisher&#x2019;s note</title>
<p>All claims expressed in this article are solely those of the authors and do not necessarily represent those of their affiliated organizations, or those of the publisher, the editors and the reviewers. Any product that may be evaluated in this article, or claim that may be made by its manufacturer, is not guaranteed or endorsed by the publisher.</p>
</sec>
<ref-list>
<title>References</title>
<ref id="B1">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Andersen</surname>
<given-names>C. M.</given-names>
</name>
<name>
<surname>Bro</surname>
<given-names>R.</given-names>
</name>
</person-group> (<year>2010</year>). <article-title>Variable selection in regression---a tutorial</article-title>. <source>J. Chemom.</source> <volume>24</volume> (<issue>11&#x2013;12</issue>), <fpage>728</fpage>&#x2013;<lpage>737</lpage>. <pub-id pub-id-type="doi">10.1002/cem.1360</pub-id>
</citation>
</ref>
<ref id="B2">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Arslan</surname>
<given-names>E.</given-names>
</name>
<name>
<surname>Neogi</surname>
<given-names>D.</given-names>
</name>
<name>
<surname>Li</surname>
<given-names>X. J.</given-names>
</name>
<name>
<surname>Misra</surname>
<given-names>P.</given-names>
</name>
</person-group> (<year>2014</year>). <article-title>Apparatus and methods to monitor and control cyclic process units in a steady plant environment</article-title>. <publisher-loc>Washington, DC</publisher-loc>: <publisher-name>U.S. Patent and Trademark Office</publisher-name>. <comment>U.S. Patent 8,882,883</comment>.</citation>
</ref>
<ref id="B3">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Choi</surname>
<given-names>S. W.</given-names>
</name>
<name>
<surname>Lee</surname>
<given-names>C.</given-names>
</name>
<name>
<surname>Lee</surname>
<given-names>J. M.</given-names>
</name>
<name>
<surname>Park</surname>
<given-names>J. H.</given-names>
</name>
<name>
<surname>Lee</surname>
<given-names>I. B.</given-names>
</name>
</person-group> (<year>2005</year>). <article-title>Fault detection and identification of nonlinear processes based on kernel PCA</article-title>. <source>Chemom. Intelligent Laboratory Syst.</source> <volume>75</volume> (<issue>1</issue>), <fpage>55</fpage>&#x2013;<lpage>67</lpage>. <pub-id pub-id-type="doi">10.1016/j.chemolab.2004.05.001</pub-id>
</citation>
</ref>
<ref id="B4">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Dedecker</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Rio</surname>
<given-names>E.</given-names>
</name>
</person-group> (<year>2008</year>). <article-title>On mean central limit theorems for stationary sequences</article-title>. <source>Ann. Inst. H. Poincare Probab. Stat.</source> <volume>44</volume> (<issue>4</issue>), <fpage>693</fpage>&#x2013;<lpage>726</lpage>. <pub-id pub-id-type="doi">10.1214/07-aihp117</pub-id>
</citation>
</ref>
<ref id="B5">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Elseviers</surname>
<given-names>W.</given-names>
</name>
<name>
<surname>Hassett</surname>
<given-names>P. F.</given-names>
</name>
<name>
<surname>Navarre</surname>
<given-names>J.-L.</given-names>
</name>
<name>
<surname>Whysall</surname>
<given-names>M.</given-names>
</name>
</person-group> (<year>2015</year>). <article-title>50 Years of PSA technology for H2 purification</article-title>. <publisher-loc>Des Plaines, IL</publisher-loc>: <publisher-name>Honeywell UOP</publisher-name>.</citation>
</ref>
<ref id="B6">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Georgiadis</surname>
<given-names>M. C.</given-names>
</name>
<name>
<surname>Papageorgiou</surname>
<given-names>L. G.</given-names>
</name>
</person-group> (<year>2000</year>). <article-title>Optimal energy and cleaning management in heat exchanger networks under fouling</article-title>. <source>Chem. Eng. Res. Des.</source> <volume>78</volume> (<issue>2</issue>), <fpage>168</fpage>&#x2013;<lpage>179</lpage>. <pub-id pub-id-type="doi">10.1205/026387600527194</pub-id>
</citation>
</ref>
<ref id="B7">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Ghosh</surname>
<given-names>K.</given-names>
</name>
<name>
<surname>Ramteke</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Srinivasan</surname>
<given-names>R.</given-names>
</name>
</person-group> (<year>2014</year>). <article-title>Optimal variable selection for effective statistical process monitoring</article-title>. <source>Comput. Chem. Eng.</source> <volume>60</volume>, <fpage>260</fpage>&#x2013;<lpage>276</lpage>. <pub-id pub-id-type="doi">10.1016/j.compchemeng.2013.09.014</pub-id>
</citation>
</ref>
<ref id="B8">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>He</surname>
<given-names>F.</given-names>
</name>
<name>
<surname>Xu</surname>
<given-names>J.</given-names>
</name>
</person-group> (<year>2016</year>). <article-title>A novel process monitoring and fault detection approach based on statistics locality preserving projections</article-title>. <source>J. Process Control</source> <volume>37</volume>, <fpage>46</fpage>&#x2013;<lpage>57</lpage>. <pub-id pub-id-type="doi">10.1016/j.jprocont.2015.11.004</pub-id>
</citation>
</ref>
<ref id="B9">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>He</surname>
<given-names>Q. P.</given-names>
</name>
<name>
<surname>Wang</surname>
<given-names>J.</given-names>
</name>
</person-group> (<year>2007</year>). <article-title>Fault detection using the k-nearest neighbor rule for semiconductor manufacturing processes</article-title>. <source>IEEE Trans. Semicond. Manufact.</source> <volume>20</volume> (<issue>4</issue>), <fpage>345</fpage>&#x2013;<lpage>354</lpage>. <pub-id pub-id-type="doi">10.1109/tsm.2007.907607</pub-id>
</citation>
</ref>
<ref id="B10">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>He</surname>
<given-names>Q. P.</given-names>
</name>
<name>
<surname>Wang</surname>
<given-names>J.</given-names>
</name>
</person-group> (<year>2011</year>). <article-title>Statistics pattern analysis: A new process monitoring framework and its application to semiconductor batch processes</article-title>. <source>AIChE J.</source> <volume>57</volume> (<issue>1</issue>), <fpage>107</fpage>&#x2013;<lpage>121</lpage>. <pub-id pub-id-type="doi">10.1002/aic.12247</pub-id>
</citation>
</ref>
<ref id="B11">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>He</surname>
<given-names>Q. P.</given-names>
</name>
<name>
<surname>Wang</surname>
<given-names>J.</given-names>
</name>
</person-group> (<year>2018</year>). <article-title>Statistics pattern analysis: A statistical process monitoring tool for smart manufacturing</article-title>. <source>Comput. Aided Chem. Eng.</source> <volume>44</volume>, <fpage>2071</fpage>&#x2013;<lpage>2076</lpage>. <pub-id pub-id-type="doi">10.1016/B978-0-444-64241-7.50340-2</pub-id>
</citation>
</ref>
<ref id="B12">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Hong</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Jiang</surname>
<given-names>C.</given-names>
</name>
<name>
<surname>Peng</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>Zhong</surname>
<given-names>W.</given-names>
</name>
</person-group> (<year>2020</year>). <article-title>Concurrent monitoring strategy for static and dynamic deviations based on selective ensemble learning using slow feature analysis</article-title>. <source>Ind. Eng. Chem. Res.</source> <volume>59</volume> (<issue>10</issue>), <fpage>4620</fpage>&#x2013;<lpage>4635</lpage>. <pub-id pub-id-type="doi">10.1021/acs.iecr.9b05547</pub-id>
</citation>
</ref>
<ref id="B13">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Jain</surname>
<given-names>V.</given-names>
</name>
<name>
<surname>Grossmann</surname>
<given-names>I. E.</given-names>
</name>
</person-group> (<year>1998</year>). <article-title>Cyclic scheduling of continuous parallel&#x2010;process units with decaying performance</article-title>. <source>AIChE J.</source> <volume>44</volume> (<issue>7</issue>), <fpage>1623</fpage>&#x2013;<lpage>1636</lpage>. <pub-id pub-id-type="doi">10.1002/aic.690440714</pub-id>
</citation>
</ref>
<ref id="B14">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Lee</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Flores-Cerrillo</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Wang</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>He</surname>
<given-names>Q. P.</given-names>
</name>
</person-group> (<year>2020</year>). <article-title>Consistency-enhanced evolution for variable selection can identify key chemical information from spectroscopic data</article-title>. <source>Ind. Eng. Chem. Res.</source> <volume>59</volume> (<issue>8</issue>), <fpage>3446</fpage>&#x2013;<lpage>3457</lpage>. <pub-id pub-id-type="doi">10.1021/acs.iecr.9b06049</pub-id>
</citation>
</ref>
<ref id="B15">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Lindgren</surname>
<given-names>F.</given-names>
</name>
<name>
<surname>Geladi</surname>
<given-names>P.</given-names>
</name>
<name>
<surname>R&#xe4;nnar</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Wold</surname>
<given-names>S.</given-names>
</name>
</person-group> (<year>1994</year>). <article-title>Interactive variable selection (IVS) for PLS. Part 1: Theory and algorithms</article-title>. <source>J. Chemom.</source> <volume>8</volume> (<issue>5</issue>), <fpage>349</fpage>&#x2013;<lpage>363</lpage>. <pub-id pub-id-type="doi">10.1002/cem.1180080505</pub-id>
</citation>
</ref>
<ref id="B16">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Pan</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Yoo</surname>
<given-names>C.</given-names>
</name>
<name>
<surname>Lee</surname>
<given-names>J. H.</given-names>
</name>
<name>
<surname>Lee</surname>
<given-names>I.-B.</given-names>
</name>
</person-group> (<year>2004</year>). <article-title>Process monitoring for continuous process with periodic characteristics</article-title>. <source>J. Chemom.</source> <volume>18</volume> (<issue>2</issue>), <fpage>69</fpage>&#x2013;<lpage>75</lpage>. <pub-id pub-id-type="doi">10.1002/cem.848</pub-id>
</citation>
</ref>
<ref id="B17">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>P&#xe8;ne</surname>
<given-names>F.</given-names>
</name>
</person-group> (<year>2005</year>). <article-title>Rate of convergence in the multidimensional central limit theorem for stationary processes. Application to the Knudsen gas and to the Sinai billiard</article-title>. <source>Ann. Appl. Probab.</source> <volume>15</volume> (<issue>4</issue>), <fpage>2331</fpage>&#x2013;<lpage>2392</lpage>. <pub-id pub-id-type="doi">10.1214/105051605000000476</pub-id>
</citation>
</ref>
<ref id="B18">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Shang</surname>
<given-names>C.</given-names>
</name>
<name>
<surname>Yang</surname>
<given-names>F.</given-names>
</name>
<name>
<surname>Gao</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>Huang</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>Suykens</surname>
<given-names>J. A. K.</given-names>
</name>
<name>
<surname>Huang</surname>
<given-names>D.</given-names>
</name>
</person-group> (<year>2015</year>). <article-title>Concurrent monitoring of operating condition deviations and process dynamics anomalies with slow feature analysis</article-title>. <source>AIChE J.</source> <volume>61</volume> (<issue>11</issue>), <fpage>3666</fpage>&#x2013;<lpage>3682</lpage>. <pub-id pub-id-type="doi">10.1002/aic.14888</pub-id>
</citation>
</ref>
<ref id="B19">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Wang</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>He</surname>
<given-names>Q. P.</given-names>
</name>
</person-group> (<year>2010</year>). <article-title>Multivariate statistical process monitoring based on statistics pattern analysis</article-title>. <source>Ind. Eng. Chem. Res.</source> <volume>49</volume> (<issue>17</issue>), <fpage>7858</fpage>&#x2013;<lpage>7869</lpage>. <pub-id pub-id-type="doi">10.1021/ie901911p</pub-id>
</citation>
</ref>
<ref id="B20">
<citation citation-type="confproc">
<person-group person-group-type="author">
<name>
<surname>Wang</surname>
<given-names>K.</given-names>
</name>
<name>
<surname>Chang</surname>
<given-names>P.</given-names>
</name>
<name>
<surname>Meng</surname>
<given-names>F.</given-names>
</name>
</person-group> (<year>2021</year>). &#x201c;<article-title>Monitoring of wastewater treatment process based on slow feature analysis variational autoencoder</article-title>,&#x201d; in <conf-name>2021 IEEE 10th Data Driven Control and Learning Systems Conference (DDCLS)</conf-name>, <conf-loc>Suzhou, China</conf-loc>, <conf-date>14-16 May 2021</conf-date>, <fpage>495</fpage>&#x2013;<lpage>502</lpage>.</citation>
</ref>
<ref id="B21">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Wang</surname>
<given-names>R.</given-names>
</name>
<name>
<surname>Edgar</surname>
<given-names>T. F.</given-names>
</name>
<name>
<surname>Baldea</surname>
<given-names>M.</given-names>
</name>
</person-group> (<year>2017</year>). <article-title>A geometric framework for monitoring and fault detection for periodic processes</article-title>. <source>AIChE J.</source> <volume>63</volume> (<issue>7</issue>), <fpage>2719</fpage>&#x2013;<lpage>2730</lpage>. <pub-id pub-id-type="doi">10.1002/aic.15638</pub-id>
</citation>
</ref>
<ref id="B22">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Wang</surname>
<given-names>Z.</given-names>
</name>
<name>
<surname>He</surname>
<given-names>Q. P.</given-names>
</name>
<name>
<surname>Wang</surname>
<given-names>J.</given-names>
</name>
</person-group> (<year>2015</year>). <article-title>Comparison of variable selection methods for PLS-based soft sensor modeling</article-title>. <source>J. Process Control</source> <volume>26</volume>, <fpage>56</fpage>&#x2013;<lpage>72</lpage>. <pub-id pub-id-type="doi">10.1016/j.jprocont.2015.01.003</pub-id>
</citation>
</ref>
<ref id="B23">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Wise</surname>
<given-names>B. M.</given-names>
</name>
<name>
<surname>Gallagher</surname>
<given-names>N. B.</given-names>
</name>
<name>
<surname>Butler</surname>
<given-names>S. W.</given-names>
</name>
<name>
<surname>White</surname>
<given-names>D. D.</given-names>
</name>
<name>
<surname>Barna</surname>
<given-names>G. G.</given-names>
</name>
</person-group> (<year>1999</year>). <article-title>A comparison of principal component analysis, multiway principal component analysis, trilinear decomposition and parallel factor analysis for fault detection in a semiconductor etch process</article-title>. <source>J. Chemom.</source> <volume>13</volume> (<issue>3&#x2013;4</issue>), <fpage>379</fpage>&#x2013;<lpage>396</lpage>. <pub-id pub-id-type="doi">10.1002/(sici)1099-128x(199905/08)13:3/4&#x3c;379::aid-cem556&#x3e;3.0.co;2-n</pub-id>
</citation>
</ref>
<ref id="B24">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Yang</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Lv</surname>
<given-names>Z.</given-names>
</name>
<name>
<surname>Shi</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Tan</surname>
<given-names>S.</given-names>
</name>
</person-group> (<year>2018</year>). <article-title>Performance monitoring method based on balanced partial least square and Statistics Pattern Analysis</article-title>. <source>ISA Trans.</source> <volume>81</volume>, <fpage>121</fpage>&#x2013;<lpage>131</lpage>. <pub-id pub-id-type="doi">10.1016/j.isatra.2018.07.038</pub-id>
</citation>
</ref>
<ref id="B25">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Yoo</surname>
<given-names>C. K.</given-names>
</name>
<name>
<surname>Lee</surname>
<given-names>J.-M.</given-names>
</name>
<name>
<surname>Vanrolleghem</surname>
<given-names>P. A.</given-names>
</name>
<name>
<surname>Lee</surname>
<given-names>I.-B.</given-names>
</name>
</person-group> (<year>2004</year>). <article-title>On-line monitoring of batch processes using multiway independent component analysis</article-title>. <source>Chemom. Intelligent Laboratory Syst.</source> <volume>71</volume> (<issue>2</issue>), <fpage>151</fpage>&#x2013;<lpage>163</lpage>. <pub-id pub-id-type="doi">10.1016/j.chemolab.2004.02.002</pub-id>
</citation>
</ref>
<ref id="B26">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Zhang</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Tian</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>Deng</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>Cao</surname>
<given-names>Y.</given-names>
</name>
</person-group> (<year>2018</year>). <article-title>Multiphase batch process with transitions monitoring based on global preserving statistics slow feature analysis</article-title>. <source>Neurocomputing</source> <volume>293</volume>, <fpage>64</fpage>&#x2013;<lpage>86</lpage>. <pub-id pub-id-type="doi">10.1016/j.neucom.2018.02.091</pub-id>
</citation>
</ref>
<ref id="B27">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Zhao</surname>
<given-names>C.</given-names>
</name>
<name>
<surname>Huang</surname>
<given-names>B.</given-names>
</name>
</person-group> (<year>2018</year>). <article-title>A full&#x2010;condition monitoring method for nonstationary dynamic chemical processes with cointegration and slow feature analysis</article-title>. <source>AIChE J.</source> <volume>64</volume> (<issue>5</issue>), <fpage>1662</fpage>&#x2013;<lpage>1681</lpage>. <pub-id pub-id-type="doi">10.1002/aic.16048</pub-id>
</citation>
</ref>
<ref id="B28">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Zhou</surname>
<given-names>B.</given-names>
</name>
<name>
<surname>Gu</surname>
<given-names>X.</given-names>
</name>
</person-group> (<year>2019</year>). <article-title>Multi-block statistics local kernel principal component analysis algorithm and its application in nonlinear process fault detection</article-title>. <source>Neurocomputing</source> <volume>376</volume>, <fpage>222</fpage>&#x2013;<lpage>231</lpage>. <pub-id pub-id-type="doi">10.1016/j.neucom.2019.09.075</pub-id>
</citation>
</ref>
</ref-list>
</back>
</article>