<?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. Energy Res.</journal-id>
<journal-title>Frontiers in Energy Research</journal-title>
<abbrev-journal-title abbrev-type="pubmed">Front. Energy Res.</abbrev-journal-title>
<issn pub-type="epub">2296-598X</issn>
<publisher>
<publisher-name>Frontiers Media S.A.</publisher-name>
</publisher>
</journal-meta>
<article-meta>
<article-id pub-id-type="publisher-id">738556</article-id>
<article-id pub-id-type="doi">10.3389/fenrg.2021.738556</article-id>
<article-categories>
<subj-group subj-group-type="heading">
<subject>Energy Research</subject>
<subj-group>
<subject>Original Research</subject>
</subj-group>
</subj-group>
</article-categories>
<title-group>
<article-title>Research on Adaptive Hybrid Energy Consumption Model Based on Data Driven under Variable Working Conditions</article-title>
<alt-title alt-title-type="left-running-head">Su et&#x20;al.</alt-title>
<alt-title alt-title-type="right-running-head">Adaptive Hybrid Energy Consumption Model</alt-title>
</title-group>
<contrib-group>
<contrib contrib-type="author">
<name>
<surname>Su</surname>
<given-names>Yujun</given-names>
</name>
<xref ref-type="aff" rid="aff1">
<sup>1</sup>
</xref>
</contrib>
<contrib contrib-type="author" corresp="yes">
<name>
<surname>Zou</surname>
<given-names>Mingyao</given-names>
</name>
<xref ref-type="aff" rid="aff2">
<sup>2</sup>
</xref>
<xref ref-type="corresp" rid="c001">&#x2a;</xref>
<uri xlink:href="https://loop.frontiersin.org/people/1397441/overview"/>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Jiang</surname>
<given-names>Cheng</given-names>
</name>
<xref ref-type="aff" rid="aff3">
<sup>3</sup>
</xref>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Qian</surname>
<given-names>Hong</given-names>
</name>
<xref ref-type="aff" rid="aff1">
<sup>1</sup>
</xref>
<xref ref-type="aff" rid="aff2">
<sup>2</sup>
</xref>
</contrib>
</contrib-group>
<aff id="aff1">
<label>
<sup>1</sup>
</label>State Key Laboratory of Nuclear Power Safety Monitoring Technology and Equipment, <addr-line>Shenzhen</addr-line>, <country>China</country>
</aff>
<aff id="aff2">
<label>
<sup>2</sup>
</label>School of Automation Engineering, Shanghai University of Electric Power, <addr-line>Shanghai</addr-line>, <country>China</country>
</aff>
<aff id="aff3">
<label>
<sup>3</sup>
</label>Shanghai Key Laboratory of Power Station Automation Technology, School of Mechatronics Engineering and Automation, Shanghai University, <addr-line>Shanghai</addr-line>, <country>China</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/1266552/overview">Zhile Yang</ext-link>, Shenzhen Institutes of Advanced Technology CAS, China</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/1087925/overview">Yanhui Zhnag</ext-link>, Shenzhen Institutes of Advanced Technology CAS, China</p>
<p>
<ext-link ext-link-type="uri" xlink:href="https://loop.frontiersin.org/people/1325394/overview">Yuanjun Guo</ext-link>, Shenzhen Institutes of Advanced Technology CAS, China</p>
</fn>
<corresp id="c001">&#x2a;Correspondence: Mingyao Zou, <email>zmy2219@163.com</email>
</corresp>
<fn fn-type="other">
<p>This article was submitted to Electrochemical Energy Conversion and Storage, a section of the journal Frontiers in Energy Research</p>
</fn>
</author-notes>
<pub-date pub-type="epub">
<day>14</day>
<month>10</month>
<year>2021</year>
</pub-date>
<pub-date pub-type="collection">
<year>2021</year>
</pub-date>
<volume>9</volume>
<elocation-id>738556</elocation-id>
<history>
<date date-type="received">
<day>09</day>
<month>07</month>
<year>2021</year>
</date>
<date date-type="accepted">
<day>22</day>
<month>09</month>
<year>2021</year>
</date>
</history>
<permissions>
<copyright-statement>Copyright &#xa9; 2021 Su, Zou, Jiang and Qian.</copyright-statement>
<copyright-year>2021</copyright-year>
<copyright-holder>Su, Zou, Jiang and Qian</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&#x20;terms.</p>
</license>
</permissions>
<abstract>
<p>As to the nonlinear and time-varying problems of the energy consumption model, this paper proposes an adaptive hybrid modeling method. Firstly, the recursive least squares algorithm with adaptive forgetting factor based on fuzzy algorithm and recursive least squares algorithm is used to identify the simplified mechanism energy consumption model, which solves the data saturation phenomenon and the weights of the &#x201c;old and new&#x201d; data during the online identification process and guarantees the adaptability of the mechanism model. Secondly, because there is a deviation between the identified model and the simplified mechanism energy consumption model, the deviation compensation model of mechanism model is established through kernel partial least squares algorithm and the model updating strategy with sliding window, which is used to update the deviation compensation model, and then the adaptive hybrid model is established by combining with the mechanism model identified online and updated deviation compensation model. Finally, the effectiveness, generalization and adaptability of the model are verified by the actual operating data of a single working condition and variable working conditions. And comparing with the mechanism model and the data model, The comparison results show that the adaptive hybrid model has higher calculation accuracy with adaptation.</p>
</abstract>
<kwd-group>
<kwd>fuzzy algorithm</kwd>
<kwd>recursive least squares algorithm</kwd>
<kwd>kernel partial least squares algorithm</kwd>
<kwd>sliding window</kwd>
<kwd>adaptive forgetting factor</kwd>
<kwd>adaptive hybrid model</kwd>
</kwd-group>
</article-meta>
</front>
<body>
<sec id="s1">
<title>1 Introduction</title>
<p>As to the nonlinear and time-varying problems of the energy consumption model, in order to obtain the optimal operating parameters for the maximum energy efficiency, it is necessary to establish an accurate energy consumption model. However, the mechanism model of energy consumption has non-linearity and time variation under different working conditions and outdoor temperature, and even could not completely reflect characteristic of the energy consumption model(<xref ref-type="bibr" rid="B11">Li and Zaheeruddin, 2019</xref>; <xref ref-type="bibr" rid="B3">Foliaco et&#x20;al., 2020</xref>; <xref ref-type="bibr" rid="B20">Tudoroiu et&#x20;al., 2020</xref>). Thus, an effective method is supposed to research to obtain precise energy consumption&#x20;model.</p>
<p>At present, the mechanism model based on the physical conception of equipment or physical characteristics of equipment, such as based on law of thermodynamics, the model structure was established by means of effective volume method, grid-search method, integral order and step size(<xref ref-type="bibr" rid="B14">Mazimbo et&#x20;al., 2019</xref>). And in order to obtain the simplified mechanism model, we need use identification method to get the parameters of the simplified mechanism model. In general, the recursive least squares algorithm with fixed forgetting factor (<xref ref-type="bibr" rid="B19">Shi et&#x20;al., 2016</xref>; <xref ref-type="bibr" rid="B23">Xia et&#x20;al., 2018</xref>) is widely used to identify the model&#x2019;s parameters of the object, due to its simple principle, small computational complexity and the function of online identification. Nevertheless, the recursive least squares algorithm with fixed forgetting factor has poor tracking ability when the working conditions appears in changing. (<xref ref-type="bibr" rid="B16">Pang and Cui, 2017</xref>) Therefore, it cannot well solve the time-varying problem of the parameters of the mechanism&#x20;model.</p>
<p>Differ from the mechanism modeling method, the data modeling method(<xref ref-type="bibr" rid="B7">Ji et&#x20;al., 2016</xref>; <xref ref-type="bibr" rid="B13">Malbasa et&#x20;al., 2017</xref>; <xref ref-type="bibr" rid="B22">Wu and Wang, 2018</xref>; <xref ref-type="bibr" rid="B12">Liu, 2019</xref>; <xref ref-type="bibr" rid="B15">Moreira et&#x20;al., 2019</xref>; <xref ref-type="bibr" rid="B21">Wu et&#x20;al., 2019</xref>) uses the data to construct the model of the controlled object. Through the neural network method(<xref ref-type="bibr" rid="B26">Zhang, 2018</xref>), an efficient model for high frequency electronics and microwave circuits was established. And on the premise of having enough historical operation data as samples, through the analysis of support vector machine, data mining technology (<xref ref-type="bibr" rid="B18">Patnaik et&#x20;al., 2010</xref>) was used to establish the dynamic Bayesian network model, and the energy consumption model was created based on the machine learning method (<xref ref-type="bibr" rid="B17">Park et&#x20;al., 2019</xref>). However, the generalization ability of the data model is related to the coverage of the samples, but it is difficult to obtain enough global samples in actual field. If the samples contain local working conditions, the generalization ability of the data model is limited and cannot solve the nonlinearity problem of the model parameters under global situation.</p>
<p>In order to improve the calculation accuracy of model and reduce the amount of modeling calculation, the hybrid modeling has been deeply studied and widely used in many fields(<xref ref-type="bibr" rid="B2">Chou et&#x20;al., 2013</xref>; <xref ref-type="bibr" rid="B25">Yao et&#x20;al., 2016</xref>; <xref ref-type="bibr" rid="B4">Guo and Wang, 2017</xref>; <xref ref-type="bibr" rid="B6">Hamilton et&#x20;al., 2017</xref>). A method combining mechanism analysis with data driven compensation method was proposed, and a hybrid model of the electrostatic precipitators (ESP)(<xref ref-type="bibr" rid="B5">Guo et&#x20;al., 2018</xref>) and one data driven hybrid model (<xref ref-type="bibr" rid="B10">Li et&#x20;al., 2018</xref>) for short-term traffic flow prediction were established. Nevertheless, the data driven requires a large amount of global data to train to obtain accurate deviation compensation model. It require high costs. Applying this idea to the Hybird Energy Consumption Model, using physical and empirical modeling methods (<xref ref-type="bibr" rid="B9">Jin et&#x20;al., 2011</xref>); (<xref ref-type="bibr" rid="B24">Xu, 2017</xref>) But all of the above are based on the study of single operating conditions. There is a large error between actual value and calculation value of the model under variable operating conditions, and it does not have good adaptability.</p>
<p>To solve the above mentioned problems, the main contributions of the paper include:<list list-type="simple">
<list-item>
<p>1) To solve the data saturation phenomenon and the weights of the &#x201c;old and new&#x201d; data during the online identification process, a recursive least squares algorithm with adaptive forgetting factor, which integrates fuzzy algorithm with recursive least squares (RLS) algorithm is proposed, It gets to identify the parameters of the mechanism model and guarantees the adaptability of the mechanism&#x20;model.</p>
</list-item>
<list-item>
<p>2) Aiming at the discrepancy between identified model and the simplified mechanism energy consumption model, the deviation compensation model of mechanism model is established through kernel partial least squares algorithm and the model updating strategy with sliding window, which is used to update the deviation compensation&#x20;model.</p>
</list-item>
</list>
</p>
<p>This paper is organized as follows. We introduce the structure of the adaptive hybrid model, and establish the mechanism model, and then the model&#x2019;s parameters are identified online by adaptive forgetting factor recursive least squares algorithm based on fuzzy algorithm and recursive least squares algorithm in <xref ref-type="sec" rid="s2">Section 2</xref>. In <xref ref-type="sec" rid="s3">section 3</xref>, under getting the mechanism model online in <xref ref-type="sec" rid="s2">section 2</xref>, we combine kernel partial least squares algorithm and model updating strategy with sliding window to establish the adaptive hybrid model. The actual running data is obtained to verify the effectiveness, generalization and adaptability of the adaptive hybrid model in <xref ref-type="sec" rid="s4">Section 4</xref>. It is the concluding part of this paper in <xref ref-type="sec" rid="s5">Section&#x20;5</xref>.</p>
</sec>
<sec id="s2">
<title>2 Proposed Methodology</title>
<p>In this section, the adaptive hybrid energy consumption model is proposed, and the simplified mechanism model is obtained online with adaptive forgetting factor through combining with fuzzy algorithm and recursive least squares algorithm.</p>
<p>The structure of adaptive hybrid model is shown in <xref ref-type="fig" rid="F1">Figure&#x20;1</xref>,with the non-linearity and time variation of the mechanism model of the energy consumption model, RLS algorithm with adaptive forgetting factor, which integrates fuzzy algorithm and RLS algorithm, puts forward to quickly and precisely identify the parameters of the mechanism online, and it can guarantee the effectiveness of the mechanism model when the working conditions changes. Therefore, the k-th output <italic>y</italic>
<sub>
<italic>m</italic>
</sub>(<italic>k</italic>) of the mechanism model can be obtained through the above online identification method when the mechanism model input values, <bold>
<italic>&#x3b1;</italic>
</bold>
<sub>1</sub>, <bold>
<italic>&#x3b1;</italic>
</bold>
<sub>2</sub>, <italic>&#x2026;</italic>, <bold>
<italic>&#x3b1;</italic>
</bold>
<sub>
<italic>n</italic>
</sub>, are detected in real time. However, it exists the deviation with the actual characteristics of the energy consumption model. A data-driven way, the kernel partial least squares (KPLS) algorithm, is used to form the deviation compensation model. Meanwhile, in order to improve the adaptability of the deviation compensation model, the deviation compensation model is updated by sliding window. So the k-th real-time output <italic>y</italic>
<sub>
<italic>d</italic>
</sub>(<italic>k</italic>) of the deviation compensation model can be gotten when the mechanism model inputs <italic>&#x3b1;</italic>
<sub>1</sub>, <italic>&#x3b1;</italic>
<sub>2</sub>, <italic>&#x2026;</italic>, <italic>&#x3b1;</italic>
<sub>
<italic>n</italic>
</sub>, the other detected parameters <italic>&#x3b2;</italic>
<sub>1</sub>, <italic>&#x3b2;</italic>
<sub>2</sub>, <italic>&#x2026;</italic>, <italic>&#x3b2;</italic>
<sub>
<italic>n</italic>
</sub> and last step <inline-formula id="inf1">
<mml:math id="m1">
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>e</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula>, which is deviation between the mechanism model value <italic>y</italic>
<sub>
<italic>m</italic>
</sub>(<italic>k</italic>&#x20;&#x2212; 1) and the actual measured value <italic>y</italic>
<sub>
<italic>t</italic>
</sub>(<italic>k</italic>&#x20;&#x2212; 1) are input. Through the above all, the output <italic>y</italic>
<sub>
<italic>h</italic>
</sub>(<italic>k</italic>) of the adaptive hybrid model is obtained by <italic>y</italic>
<sub>
<italic>m</italic>
</sub>(<italic>k</italic>) pluses <italic>y</italic>
<sub>
<italic>d</italic>
</sub>(<italic>k</italic>).</p>
<fig id="F1" position="float">
<label>FIGURE 1</label>
<caption>
<p>The structure of adaptive hybrid model.</p>
</caption>
<graphic xlink:href="fenrg-09-738556-g001.tif"/>
</fig>
<p>Among Them:<disp-formula id="e1">
<mml:math id="m2">
<mml:mfenced open="{" close="">
<mml:mrow>
<mml:mtable class="matrix">
<mml:mtr>
<mml:mtd columnalign="center">
<mml:msub>
<mml:mrow>
<mml:mi>y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>m</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>m</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold-italic">&#x3b1;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold-italic">&#x3b1;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:mo>&#x2026;</mml:mo>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold-italic">&#x3b1;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd columnalign="center">
<mml:msub>
<mml:mrow>
<mml:mi>y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>d</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>f</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold-italic">&#x3b1;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold-italic">&#x3b1;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:mo>&#x2026;</mml:mo>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold-italic">&#x3b1;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold-italic">&#x3b2;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold-italic">&#x3b2;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:mo>&#x2026;</mml:mo>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold-italic">&#x3b2;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>e</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:math>
<label>(1)</label>
</disp-formula>where<inline-formula id="inf2">
<mml:math id="m3">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold-italic">&#x3b1;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold-italic">&#x3b1;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:mo>&#x2026;</mml:mo>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold-italic">&#x3b1;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold-italic">&#x3b2;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold-italic">&#x3b2;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:mo>&#x2026;</mml:mo>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold-italic">&#x3b2;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:mfenced open="" close=")">
<mml:mrow>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>e</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:math>
</inline-formula> are the model&#x2019;s inputs matrix, <italic>y</italic>
<sub>
<italic>m</italic>
</sub>(<italic>k</italic>) is the output of mechanism model; <italic>y</italic>
<sub>
<italic>d</italic>
</sub>(<italic>k</italic>) is the output of deviation compensation model; <inline-formula id="inf3">
<mml:math id="m4">
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>e</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula> is the deviation between the actual measurable value <italic>y</italic>
<sub>
<italic>t</italic>
</sub>(<italic>k</italic>&#x20;&#x2212; 1) and identified model value <italic>y</italic>
<sub>
<italic>m</italic>
</sub>(<italic>k</italic>&#x20;&#x2212; 1),which is shown in <xref ref-type="disp-formula" rid="e2">Eq. 2</xref>; <italic>y</italic>
<sub>
<italic>h</italic>
</sub>(<italic>k</italic>) is the output of the adaptive hybrid model; <italic>k</italic> is discrete time.<disp-formula id="e2">
<mml:math id="m5">
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>e</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>m</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:math>
<label>(2)</label>
</disp-formula>
</p>
<p>Therefore, the output of the adaptive hybrid model is:<disp-formula id="e3">
<mml:math id="m6">
<mml:msub>
<mml:mrow>
<mml:mi>y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>h</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>m</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold-italic">&#x3b1;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold-italic">&#x3b1;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:mo>&#x2026;</mml:mo>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold-italic">&#x3b1;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:mi>f</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold-italic">&#x3b2;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold-italic">&#x3b2;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:mo>&#x2026;</mml:mo>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold-italic">&#x3b2;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>e</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:math>
<label>(3)</label>
</disp-formula>
</p>
<sec id="s2-1">
<title>2.1 The Identification of Mechanism Model</title>
<p>An adaptive forgetting factor RLS algorithm is proposed based on fuzzy algorithm and RLS algorithm to identify the mechanism model online, and the structure of this algorithm is shown in <xref ref-type="fig" rid="F2">Figure&#x20;2</xref>. We continuously detects the real-time input value <bold>
<italic>&#x3b1;</italic>
</bold>
<sub>1</sub>, <bold>
<italic>&#x3b1;</italic>
</bold>
<sub>2</sub>, <italic>&#x2026;</italic>, <bold>
<italic>&#x3b1;</italic>
</bold>
<sub>
<italic>n</italic>
</sub> of model and the energy consumption <italic>Y</italic> in the process of online operation, and then we obtain the time series average <italic>W</italic> of the residual and its change rate &#x394;<italic>W</italic> between the deviation of the system dynamic characteristic value and the identified model value, taking them as the inputs of the fuzzy algorithm. In this way, we can acquire the adjusted forgetting factor&#x2019;s value <italic>&#x3bc;</italic> in real time, and bring it into <xref ref-type="disp-formula" rid="e4">Eq. 4</xref> to get the parameters <inline-formula id="inf4">
<mml:math id="m7">
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>&#x3b8;</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula> online.</p>
<fig id="F2" position="float">
<label>FIGURE 2</label>
<caption>
<p>Model identification of adaptive forgetting factor RLS algorithm.</p>
</caption>
<graphic xlink:href="fenrg-09-738556-g002.tif"/>
</fig>
<sec id="s2-1-1">
<title>2.1.1 The Mechanism Model and Forgetting Factor Recursive Least Squares Algorithm</title>
<p>RLS algorithm is widely used for online identification of model parameters because of its simple principle, small computational complexity, low memory consumption, and can be used for online real-time estimation of parameters. The RLS algorithm is suitable for the constant unknown parameter system. For the time-varying problem of the parameters, the RLS has its limitations. When the system parameters change, the RLS algorithm will not be able to track this change, which will reduce the accuracy of the real-time parameters estimation or even fail. In order to solve the above phenomenon, each new data is given a weight to improve the algorithm to form a forgetting factor RLS algorithm. The iterative calculation formula through using forgetting factor recursive least squares algorithm7 and combining with the mechanism model is:<disp-formula id="e4">
<mml:math id="m8">
<mml:mfenced open="{" close="">
<mml:mrow>
<mml:mtable class="matrix">
<mml:mtr>
<mml:mtd columnalign="center">
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>&#x3b8;</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>&#x3b8;</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:mi>K</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">[</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>m</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="normal">&#x3a6;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>&#x3b8;</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mo stretchy="false">]</mml:mo>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd columnalign="center">
<mml:mi>K</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mi>P</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mi mathvariant="normal">&#x3a6;</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:mi>&#x3bc;</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="normal">&#x3a6;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mi>P</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mi mathvariant="normal">&#x3a6;</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:mfrac>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd columnalign="center">
<mml:mi>P</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>&#x3bc;</mml:mi>
</mml:mrow>
</mml:mfrac>
<mml:mrow>
<mml:mo stretchy="false">[</mml:mo>
<mml:mrow>
<mml:mi>P</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>K</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="normal">&#x3a6;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mi>P</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mo stretchy="false">]</mml:mo>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:math>
<label>(4)</label>
</disp-formula>where &#x3a6;<sup>
<italic>T</italic>
</sup>(<italic>k</italic>) is a covariance matrix; <italic>K</italic>(<italic>k</italic>) is a gain matrix; <inline-formula id="inf5">
<mml:math id="m9">
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>&#x3b8;</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mo stretchy="false">[</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>a</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>a</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>a</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>a</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>a</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>4</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>a</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>5</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mo stretchy="false">]</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula> is the identification parameter; <italic>&#x3bc;</italic> is forgetting factor.</p>
</sec>
<sec id="s2-1-2">
<title>2.1.2 Residual Preprocessing</title>
<p>In the process of the online identification of the time-varying system, if the residual difference between the dynamic deviation value and the identification model value of the system at the time of the k-time is:<disp-formula id="e5">
<mml:math id="m10">
<mml:mi>e</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>m</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:math>
<label>(5)</label>
</disp-formula>where <inline-formula id="inf6">
<mml:math id="m11">
<mml:msub>
<mml:mrow>
<mml:mi>y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>m</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="normal">&#x3a6;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>&#x3b8;</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula>, <italic>e</italic>(<italic>k</italic>) is the error signal.</p>
<p>The magnitude of the absolute value of the residual reflects the difference between the system dynamic deviation value and the identification model value. In the process of parameter online identification, the bigger the absolute residual value is, at this time, the smaller the strain of forgetting factor is, so that the identification result of the RLS algorithm quickly converges to the vicinity of the actual model parameters. When the absolute residual value becomes smaller, it is hoped that the forgetting factor will become larger to suppress noise disturbance to the influence of the accuracy of parameter identification.</p>
<p>If the forgetting factor is corrected only by the absolute value&#x20;of a single residual, there is a large contingency and error, and the forgetting factor is sensitive to noise interference in the process of correction. Therefore, the mean value of a time series of absolute errors is used as the evaluation function <italic>W</italic> of the degree of approximation between the identified parameters and the actual parameters. At the time of k, the calculation formula is as follows:<disp-formula id="e6">
<mml:math id="m12">
<mml:mi>W</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>l</mml:mi>
</mml:mrow>
</mml:mfrac>
<mml:munderover accentunder="false" accent="false">
<mml:mrow>
<mml:mo>&#x2211;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>l</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:munderover>
<mml:mfenced open="|" close="|">
<mml:mrow>
<mml:mi>e</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:math>
<label>(6)</label>
</disp-formula>where <italic>l</italic> is the time series length of the residual.</p>
<p>From the above analysis, the correction value of forgetting factor is negatively correlated with the evaluation function. In order to accurately describe the relationship between them, this paper corrects the forgetting factor online and real-time through the fuzzy algorithm, and the evaluation function is used as an input of fuzzy algorithm. Meanwhile, the change rate of the evaluation function &#x394;<italic>W</italic> over a period of time can more accurately reflect the trend of the identification error. Thus, &#x394;<italic>W</italic> can be used as another input of the fuzzy algorithm. The calculation of the k time is as follows:<disp-formula id="e7">
<mml:math id="m13">
<mml:mi mathvariant="normal">&#x394;</mml:mi>
<mml:mi>W</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>v</mml:mi>
</mml:mrow>
</mml:mfrac>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>W</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>W</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>v</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:math>
<label>(7)</label>
</disp-formula>where <italic>v</italic> is the time constant discrete value of the change rate of the evaluation function.</p>
</sec>
<sec id="s2-1-3">
<title>2.1.3 Adaptive Adjustment of Forgetting Factor Based on Fuzzy Algorithm</title>
<p>In this paper, the fuzzy algorithm is used to realize the online correction of the forgetting factor. The mean residuals over a period of time <italic>W</italic> and the residual change rate &#x394;<italic>W</italic> are used as the inputs of the fuzzy algorithm. And then the modified value &#x394;<italic>&#x3bc;</italic> is the output of the fuzzy algorithm. The adaptive adjustment of forgetting factor is realized, as shown in <xref ref-type="fig" rid="F3">Figure&#x20;3</xref>.</p>
<fig id="F3" position="float">
<label>FIGURE 3</label>
<caption>
<p>Adaptive adjustment of forgetting factor based on Fuzzy Algorithm.</p>
</caption>
<graphic xlink:href="fenrg-09-738556-g003.tif"/>
</fig>
<p>In the adaptive correction process of the forgetting factor of the fuzzy algorithm, the value of <italic>W</italic>, &#x394;<italic>W</italic> and &#x394;<italic>&#x3bc;</italic> are fuzzed, and the fuzzy domains of <italic>W</italic> is [&#x2212;10,10], and the fuzzy domains of &#x394;<italic>W</italic> is [&#x2212;2,2]. In the recursive least squares algorithm, the forgetting factor is usually 0.9 &#x2264; <italic>&#x3bc;</italic> &#x2264; 1, so the fuzzy domain of &#x394;<italic>&#x3bc;</italic> is [&#x2212;0.1, 0.1]. In addition, the input of the fuzzy control rules and the linguistic variables of the premise constitute the fuzzy input space, and the linguistic variables of the conclusion form the fuzzy output space. Therefore, the <italic>W</italic>, &#x394;<italic>W</italic> and modified value &#x394;<italic>&#x3bc;</italic> are segmented by a fuzzy method, and their fuzzy sets are obtained as follows (<xref ref-type="bibr" rid="B8">Jiang et&#x20;al., 2020</xref>):</p>
<p>The fuzzy set of <italic>W</italic> is {NB,NS,ZO,PS,PB}; The fuzzy set of &#x394;<italic>W</italic> is {NB,NS,ZO,PS,PB}; The fuzzy set of &#x394;<italic>&#x3bc;</italic> is {NB,NM,NS,ZO,PS,PM,PB}.</p>
<p>According to the tentative method, selecting the Gaussian function as the membership function of the <italic>W</italic>, &#x394;<italic>W</italic>, and modified value &#x394;<italic>&#x3bc;</italic>, and their membership functions are shown in <xref ref-type="fig" rid="F4">Figures&#x20;4A,B,C</xref>
</p>
<fig id="F4" position="float">
<label>FIGURE 4</label>
<caption>
<p>Membership function.</p>
</caption>
<graphic xlink:href="fenrg-09-738556-g004.tif"/>
</fig>
<p>In the fuzzy algorithm, the fuzzy control rule is an important part of it and can be represented by the fuzzy rule table. The fuzzy rule base is a linguistic expression form based on expert knowledge or long-term accumulated experience and human intuitive reasoning. When both <italic>W</italic> and &#x394;<italic>W</italic> are poslarge, the deviation between the predicted value and the actual value is large, at this time, &#x394;<italic>&#x3bc;</italic> is selected to be neglarge. When <italic>W</italic> is poslarge and &#x394;<italic>W</italic> is neglarge, the deviation between the predicted value and the actual value is large, but gradually decreases, &#x394;<italic>&#x3bc;</italic> is negsmall. When both <italic>W</italic> and &#x394;<italic>W</italic> are neglarge, the identification parameter value is very close to the actual parameter value, &#x394;<italic>&#x3bc;</italic> is poslarge. When <italic>W</italic> is neglarge, &#x394;<italic>W</italic> is negsmall, the expected correction value &#x394;<italic>&#x3bc;</italic> is possmall. Based on the above knowledge, the fuzzy control rules of <xref ref-type="table" rid="T1">Table&#x20;1</xref> can be established.</p>
<table-wrap id="T1" position="float">
<label>TABLE 1</label>
<caption>
<p>Fuzzy control rule&#x20;table.</p>
</caption>
<table>
<thead valign="top">
<tr>
<th align="left">Fuzzy control rule</th>
</tr>
</thead>
<tbody valign="top">
<tr>
<td align="left">IF (<italic>W</italic> is NB) and (&#x394;<italic>W</italic> is NB) then (&#x394;<italic>&#x3bc;</italic> is PB)</td>
</tr>
<tr>
<td align="left">IF (<italic>W</italic> is NB) and (&#x394;<italic>W</italic> is NS) then (&#x394;<italic>&#x3bc;</italic> is PB)</td>
</tr>
<tr>
<td align="left">IF (<italic>W</italic> is NB) and (&#x394;<italic>W</italic> is ZO) then (&#x394;<italic>&#x3bc;</italic> is PM)</td>
</tr>
<tr>
<td align="left">IF (<italic>W</italic> is NB) and (&#x394;<italic>W</italic> is PS) then (&#x394;<italic>&#x3bc;</italic> is PM)</td>
</tr>
<tr>
<td align="left">IF (<italic>W</italic> is NB) and (&#x394;<italic>W</italic> is PB) then (&#x394;<italic>&#x3bc;</italic> is PS)</td>
</tr>
<tr>
<td align="left">IF (<italic>W</italic> is NS) and (&#x394;<italic>W</italic> is NB) then (&#x394;<italic>&#x3bc;</italic> is PM)</td>
</tr>
<tr>
<td align="left">IF (<italic>W</italic> is NS) and (&#x394;<italic>W</italic> is NS) then (&#x394;<italic>&#x3bc;</italic> is PS)</td>
</tr>
<tr>
<td align="left">IF (<italic>W</italic> is NS) and (&#x394;<italic>W</italic> is ZO) then (&#x394;<italic>&#x3bc;</italic> is PS)</td>
</tr>
<tr>
<td align="left">IF (<italic>W</italic> is NS) and (&#x394;<italic>W</italic> is PS) then (&#x394;<italic>&#x3bc;</italic> is ZO)</td>
</tr>
<tr>
<td align="left">IF (<italic>W</italic> is NS) and (&#x394;<italic>W</italic> is PB) then (&#x394;<italic>&#x3bc;</italic> is ZO)</td>
</tr>
<tr>
<td align="left">IF (<italic>W</italic> is ZO) and (&#x394;<italic>W</italic> is NB) then (&#x394;<italic>&#x3bc;</italic> is PS)</td>
</tr>
<tr>
<td align="left">IF (<italic>W</italic> is ZO) and (&#x394;<italic>W</italic> is NS) then (&#x394;<italic>&#x3bc;</italic> is PS)</td>
</tr>
<tr>
<td align="left">IF (<italic>W</italic> is ZO) and (&#x394;<italic>W</italic> is ZO) then (&#x394;<italic>&#x3bc;</italic> is ZO)</td>
</tr>
<tr>
<td align="left">IF (<italic>W</italic> is ZO) and (&#x394;<italic>W</italic> is PS) then (&#x394;<italic>&#x3bc;</italic> is ZO)</td>
</tr>
<tr>
<td align="left">IF (<italic>W</italic> is ZO) and (&#x394;<italic>W</italic> is PB) then (&#x394;<italic>&#x3bc;</italic> is NS)</td>
</tr>
<tr>
<td align="left">IF (<italic>W</italic> is PS) and (&#x394;<italic>W</italic> is NB) then (&#x394;<italic>&#x3bc;</italic> is ZO)</td>
</tr>
<tr>
<td align="left">IF (<italic>W</italic> is PS) and (&#x394;<italic>W</italic> is NS) then (&#x394;<italic>&#x3bc;</italic> is NS)</td>
</tr>
<tr>
<td align="left">IF (<italic>W</italic> is PS) and (&#x394;<italic>W</italic> is ZO) then (&#x394;<italic>&#x3bc;</italic> is NS)</td>
</tr>
<tr>
<td align="left">IF (<italic>W</italic> is PS) and (&#x394;<italic>W</italic> is PS) then (&#x394;<italic>&#x3bc;</italic> is NM)</td>
</tr>
<tr>
<td align="left">IF (<italic>W</italic> is PS) and (&#x394;<italic>W</italic> is PB) then (&#x394;<italic>&#x3bc;</italic> is NM)</td>
</tr>
<tr>
<td align="left">IF (<italic>W</italic> is PB) and (&#x394;<italic>W</italic> is NB) then (&#x394;<italic>&#x3bc;</italic> is NS)</td>
</tr>
<tr>
<td align="left">IF (<italic>W</italic> is PB) and (&#x394;<italic>W</italic> is NS) then (&#x394;<italic>&#x3bc;</italic> is NM)</td>
</tr>
<tr>
<td align="left">IF (<italic>W</italic> is PB) and (&#x394;<italic>W</italic> is ZO) then (&#x394;<italic>&#x3bc;</italic> is NM)</td>
</tr>
<tr>
<td align="left">IF (<italic>W</italic> is PB) and (&#x394;<italic>W</italic> is PS) then (&#x394;<italic>&#x3bc;</italic> is NB)</td>
</tr>
<tr>
<td align="left">IF (<italic>W</italic> is PB) and (&#x394;<italic>W</italic> is PB) then (&#x394;<italic>&#x3bc;</italic> is NB)</td>
</tr>
</tbody>
</table>
</table-wrap>
<p>From the fuzzy rules established in <xref ref-type="table" rid="T1">Table&#x20;1</xref>, the fuzzy rule table of 5 &#xd7; 5 in <xref ref-type="table" rid="T2">Table&#x20;2</xref> can be obtained.</p>
<table-wrap id="T2" position="float">
<label>TABLE 2</label>
<caption>
<p>Fuzzy control rule&#x20;table.</p>
</caption>
<table>
<thead valign="top">
<tr>
<th colspan="2" align="left">&#x394;<italic>&#x3bc;</italic>
</th>
<th colspan="5" align="center">
<italic>W</italic>
</th>
</tr>
</thead>
<tbody valign="top">
<tr>
<td colspan="2" align="left"/>
<td align="center">NB</td>
<td align="center">NS</td>
<td align="center">ZO</td>
<td align="center">PS</td>
<td align="center">PB</td>
</tr>
<tr>
<td align="left">&#xa0;&#xa0;&#x394;<italic>W</italic>
</td>
<td align="center">NB</td>
<td align="center">PB</td>
<td align="center">PM</td>
<td align="center">PS</td>
<td align="center">ZO</td>
<td align="center">NS</td>
</tr>
<tr>
<td align="left"/>
<td align="center">NS</td>
<td align="center">PB</td>
<td align="center">PS</td>
<td align="center">PS</td>
<td align="center">NS</td>
<td align="center">NM</td>
</tr>
<tr>
<td align="left"/>
<td align="center">ZO</td>
<td align="center">PM</td>
<td align="center">PS</td>
<td align="center">ZO</td>
<td align="center">NS</td>
<td align="center">NM</td>
</tr>
<tr>
<td align="left"/>
<td align="center">PS</td>
<td align="center">PM</td>
<td align="center">ZO</td>
<td align="center">ZO</td>
<td align="center">NS</td>
<td align="center">NB</td>
</tr>
<tr>
<td align="left"/>
<td align="center">PB</td>
<td align="center">PS</td>
<td align="center">ZO</td>
<td align="center">NS</td>
<td align="center">NM</td>
<td align="center">NB</td>
</tr>
</tbody>
</table>
</table-wrap>
<p>According to the fuzzy rule table formulated in <xref ref-type="table" rid="T2">Table&#x20;2</xref>, the forgetting factor&#x2019;s correction value &#x394;<italic>&#x3bc;</italic> is calculated by Mamdani fuzzy inference and Centroid defuzzification. According to the forgetting factor&#x2019;s correction value &#x394;<italic>&#x3bc;</italic> obtained in real time, the forgetting factor is corrected to:<disp-formula id="e8">
<mml:math id="m14">
<mml:mi>&#x3bc;</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3bc;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:mi mathvariant="normal">&#x394;</mml:mi>
<mml:mi>&#x3bc;</mml:mi>
</mml:math>
<label>(8)</label>
</disp-formula>where <italic>&#x3bc;</italic>
<sub>0</sub> is the initial value of the forgetting factor.</p>
<p>According to the estimated parameter convergence theorem(<xref ref-type="bibr" rid="B10">Li et&#x20;al., 2018</xref>), when the input is persistently exciting of order N, it can make the <inline-formula id="inf7">
<mml:math id="m15">
<mml:munder>
<mml:mrow>
<mml:mi>lim</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2192;</mml:mo>
<mml:mi>&#x221e;</mml:mi>
</mml:mrow>
</mml:munder>
<mml:mi>E</mml:mi>
<mml:mfenced open="{" close="}">
<mml:mrow>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>&#x3b8;</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>0</mml:mn>
</mml:math>
</inline-formula>, so it can make <inline-formula id="inf8">
<mml:math id="m16">
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>&#x3b8;</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula> be convergent. Consequently, the output <inline-formula id="inf9">
<mml:math id="m17">
<mml:msub>
<mml:mrow>
<mml:mi>y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>m</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="normal">&#x3a6;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>&#x3b8;</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>m</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold-italic">&#x3b1;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold-italic">&#x3b1;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:mo>&#x2026;</mml:mo>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3b1;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula> of the mechanism model can online be gotten by the adaptive forgetting factor RLS algorithm under different working conditions.</p>
</sec>
</sec>
</sec>
<sec id="s3">
<title>3 Establishment of Adaptive Hybrid Energy Consumption Model</title>
<p>In this section, the deviation consumption model of the simplified mechanism model is got by kernel partial least squares algorithm, and using model updating strategy with sliding window to update the deviation compensation model. And combining with the online identified model which has been obtained with the adaptive forgetting factor RLS algorithm in <xref ref-type="sec" rid="s2">section 2</xref>, the adaptive hybrid energy consumption model is established.</p>
<sec id="s3-1">
<title>3.1 Deviation Compensation Model</title>
<p>Through the <xref ref-type="sec" rid="s2">section 2</xref>, the real-time output <italic>y</italic>
<sub>
<italic>m</italic>
</sub>(<italic>k</italic>) of the simplified mechanism model can be obtained. However, in the process of mechanism modeling, the mechanism model is deviated from the actual characteristics. In addition, in the case of production process or external disturbances, it will cause errors between the actual model and the simplified mechanism&#x20;model.</p>
<p>Therefore, the kernel partial least squares algorithm is used to establish the deviation compensation model of the simplified mechanism model. it makes the calculated deviation <italic>y</italic>
<sub>
<italic>d</italic>
</sub>(<italic>k</italic>) be the output of the deviation compensation&#x20;model.</p>
<p>If the variable <italic>X</italic>&#x20;&#x2208; <italic>R</italic>
<sup>
<italic>n</italic>&#xd7;<italic>p</italic>
</sup>, <italic>Y</italic>&#x20;&#x2208; <italic>R</italic>
<sup>
<italic>n</italic>&#xd7;<italic>q</italic>
</sup>, and <italic>p</italic> is the number of independent variable, <italic>q</italic> is the number of dependent variable, <italic>n</italic> is the number of observed samples, the nonlinear mapping from the original input space <inline-formula id="inf10">
<mml:math id="m18">
<mml:msubsup>
<mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">{</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo stretchy="false">}</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>p</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:math>
</inline-formula> to the feature space <italic>H</italic> is recorded as &#x3a6;&#x20;: <italic>x</italic>
<sub>
<italic>j</italic>
</sub> &#x2208; <italic>R</italic>
<sup>
<italic>n</italic>
</sup> &#x2192; &#x3a6;(<italic>x</italic>
<sub>
<italic>j</italic>
</sub>) &#x2208; <italic>H</italic> (<xref ref-type="bibr" rid="B8">Jiang et&#x20;al., 2020</xref>).</p>
<p>In the mapping space, the weight vector <italic>&#x3c9;</italic>
<sub>1</sub> and <italic>c</italic>
<sub>1</sub> of <italic>X</italic> are determined according to the mapped sample matrices &#x3a6; and <italic>Y</italic>. Under the constraint of <inline-formula id="inf11">
<mml:math id="m19">
<mml:msubsup>
<mml:mrow>
<mml:mi>&#x3c9;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3c9;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:math>
</inline-formula>, <inline-formula id="inf12">
<mml:math id="m20">
<mml:msubsup>
<mml:mrow>
<mml:mi>c</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:msub>
<mml:mrow>
<mml:mi>c</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:math>
</inline-formula>, finding the maximum value of <inline-formula id="inf13">
<mml:math id="m21">
<mml:msubsup>
<mml:mrow>
<mml:mi>&#x3c9;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="normal">&#x3a6;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mi>Y</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi>c</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:math>
</inline-formula>.<disp-formula id="e9">
<mml:math id="m22">
<mml:msub>
<mml:mrow>
<mml:mi>J</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:munder>
<mml:mrow>
<mml:mi>max</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mfenced open="&#x2016;" close="&#x2016;">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3c9;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x3d;</mml:mo>
<mml:mfenced open="&#x2016;" close="&#x2016;">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>c</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:munder>
<mml:mi>C</mml:mi>
<mml:mi>o</mml:mi>
<mml:mi>v</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi mathvariant="normal">&#x3a6;</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3c9;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:mi>Y</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi>c</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:munder>
<mml:mrow>
<mml:mi>max</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mfenced open="&#x2016;" close="&#x2016;">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3c9;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x3d;</mml:mo>
<mml:mfenced open="&#x2016;" close="&#x2016;">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>c</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:munder>
<mml:mfrac>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:mfrac>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>&#x3c9;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="normal">&#x3a6;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mi>Y</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi>c</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:math>
<label>(9)</label>
</disp-formula>
</p>
<p>The lagrangian function is established for the above.<disp-formula id="e10">
<mml:math id="m23">
<mml:mi>L</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3c9;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:mi mathvariant="normal">&#x3a6;</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>Y</mml:mi>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>c</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi>&#x3c9;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="normal">&#x3a6;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mi>Y</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi>c</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3b7;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>&#x3c9;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3c9;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3b7;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>c</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:msub>
<mml:mrow>
<mml:mi>c</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:math>
<label>(10)</label>
</disp-formula>
</p>
<p>
<italic>&#x3b7;</italic>
<sub>1</sub>, <italic>&#x3b7;</italic>
<sub>2</sub> are the Lagrangian multiplier, and the partial derivatives of <italic>L</italic>(<italic>&#x3c9;</italic>
<sub>1</sub>, &#x3a6;, <italic>Y</italic>, <italic>c</italic>
<sub>1</sub>) to <italic>&#x3c9;</italic>
<sub>1</sub>, <italic>c</italic>
<sub>1</sub>, <italic>&#x3b7;</italic>
<sub>1</sub>, <italic>&#x3b7;</italic>
<sub>2</sub> are respectively divided into 0.<disp-formula id="e11">
<mml:math id="m24">
<mml:mfenced open="{" close="">
<mml:mrow>
<mml:mtable class="cases">
<mml:mtr>
<mml:mtd columnalign="left">
<mml:mfrac>
<mml:mrow>
<mml:mi>&#x2202;</mml:mi>
<mml:mi>L</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>&#x2202;</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3c9;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfrac>
<mml:mo>&#x3d;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="normal">&#x3a6;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mi>Y</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi>c</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>2</mml:mn>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3b7;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3c9;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>0</mml:mn>
<mml:mspace width="1em"/>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd columnalign="left">
<mml:mfrac>
<mml:mrow>
<mml:mi>&#x2202;</mml:mi>
<mml:mi>L</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>&#x2202;</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi>c</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfrac>
<mml:mo>&#x3d;</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi>&#x3c9;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="normal">&#x3a6;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mi>Y</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>2</mml:mn>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3b7;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi>c</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>0</mml:mn>
<mml:mspace width="1em"/>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd columnalign="left">
<mml:mfrac>
<mml:mrow>
<mml:mi>&#x2202;</mml:mi>
<mml:mi>L</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>&#x2202;</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3b7;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfrac>
<mml:mo>&#x3d;</mml:mo>
<mml:mo>&#x2212;</mml:mo>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>&#x3c9;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3c9;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>0</mml:mn>
<mml:mspace width="1em"/>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd columnalign="left">
<mml:mfrac>
<mml:mrow>
<mml:mi>&#x2202;</mml:mi>
<mml:mi>L</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>&#x2202;</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3b7;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfrac>
<mml:mo>&#x3d;</mml:mo>
<mml:mo>&#x2212;</mml:mo>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>c</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:msub>
<mml:mrow>
<mml:mi>c</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>0</mml:mn>
<mml:mspace width="1em"/>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:math>
<label>(11)</label>
</disp-formula>
</p>
<p>Therefore<disp-formula id="e12">
<mml:math id="m25">
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="normal">&#x3a6;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:msub>
<mml:mrow>
<mml:mi>F</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
<mml:msubsup>
<mml:mrow>
<mml:mi>F</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="normal">&#x3a6;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3c9;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3bb;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3c9;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:math>
<label>(12)</label>
</disp-formula>where &#x201c;0&#x201d; is the original data, <italic>&#x3c9;</italic>
<sub>1</sub> is the eigenvector <italic>&#x3bb;</italic>
<sub>1</sub> corresponding to the largest eigenvalue of <inline-formula id="inf14">
<mml:math id="m26">
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="normal">&#x3a6;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:msub>
<mml:mrow>
<mml:mi>F</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
<mml:msubsup>
<mml:mrow>
<mml:mi>F</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="normal">&#x3a6;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
</mml:math>
</inline-formula>. And on the basis of introducing the kernel matrix <inline-formula id="inf15">
<mml:math id="m27">
<mml:msubsup>
<mml:mrow>
<mml:mi>K</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">&#x3a6;</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mo>&#x3d;</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="normal">&#x3a6;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="normal">&#x3a6;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
</mml:math>
</inline-formula>, multiply both sides of the <xref ref-type="disp-formula" rid="e12">Eq. 12</xref> by &#x3a6;<sub>0</sub>, and substituting <italic>t</italic>
<sub>1</sub> &#x3d; &#x3a6;<sub>0</sub>
<italic>&#x3c9;</italic>
<sub>1</sub> to obtain<disp-formula id="e13">
<mml:math id="m28">
<mml:msubsup>
<mml:mrow>
<mml:mi>K</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">&#x3a6;</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:msub>
<mml:mrow>
<mml:mi>F</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
<mml:msubsup>
<mml:mrow>
<mml:mi>F</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:msub>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3bb;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:math>
<label>(13)</label>
</disp-formula>
</p>
<p>Then the kernel matrix is<disp-formula id="e14">
<mml:math id="m29">
<mml:msup>
<mml:mrow>
<mml:mi>K</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">&#x3a6;</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo>&#x3d;</mml:mo>
<mml:mi mathvariant="normal">&#x3a6;</mml:mi>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="normal">&#x3a6;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo>&#x3d;</mml:mo>
<mml:mfenced open="[" close="]">
<mml:mrow>
<mml:mtable class="matrix">
<mml:mtr>
<mml:mtd columnalign="center">
<mml:msub>
<mml:mrow>
<mml:mi>K</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1,1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mtd>
<mml:mtd columnalign="center">
<mml:mo>&#x22ef;</mml:mo>
</mml:mtd>
<mml:mtd columnalign="center">
<mml:msub>
<mml:mrow>
<mml:mi>K</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>,</mml:mo>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd columnalign="center">
<mml:mo>&#x22ee;</mml:mo>
</mml:mtd>
<mml:mtd columnalign="center">
<mml:mo>&#x22f1;</mml:mo>
</mml:mtd>
<mml:mtd columnalign="center">
<mml:mo>&#x22ee;</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd columnalign="center">
<mml:msub>
<mml:mrow>
<mml:mi>K</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mo>,</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mtd>
<mml:mtd columnalign="center">
<mml:mo>&#x22ef;</mml:mo>
</mml:mtd>
<mml:mtd columnalign="center">
<mml:msub>
<mml:mrow>
<mml:mi>K</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:math>
<label>(14)</label>
</disp-formula>where <italic>K</italic>
<sub>
<italic>&#x3b1;</italic>,<italic>&#x3b2;</italic>
</sub> is the selected kernel function.</p>
<p>In this paper, the kernel matrix is used Gaussian kernel function to gotten. its expression is:<disp-formula id="e15">
<mml:math id="m30">
<mml:msub>
<mml:mrow>
<mml:mi>K</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>&#x3b1;</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>&#x3b2;</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:munderover accentunder="false" accent="false">
<mml:mrow>
<mml:mo>&#x2211;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>p</mml:mi>
</mml:mrow>
</mml:munderover>
<mml:mi>exp</mml:mi>
<mml:mfenced open="[" close="]">
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mfenced open="&#x2016;" close="&#x2016;">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>&#x3b1;</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>&#x3b2;</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:msup>
<mml:mrow>
<mml:mi>&#x3c3;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:mfenced>
</mml:math>
<label>(15)</label>
</disp-formula>where <italic>&#x3c3;</italic> is the width of the Gaussian kernel function, <italic>x</italic> is the data sample, <italic>&#x3b1;</italic>, <italic>&#x3b2;</italic> is the the data sequence.</p>
<p>After obtaining the first kernel principal component <italic>t</italic>
<sub>1</sub>, and the centralized kernel residual matrix <inline-formula id="inf16">
<mml:math id="m31">
<mml:msubsup>
<mml:mrow>
<mml:mi>K</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">&#x3a6;</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:math>
</inline-formula> can be expressed as<disp-formula id="e16">
<mml:math id="m32">
<mml:msubsup>
<mml:mrow>
<mml:mi>K</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">&#x3a6;</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>D</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msubsup>
<mml:mrow>
<mml:mi>K</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">&#x3a6;</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:msub>
<mml:mrow>
<mml:mi>D</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:math>
<label>(16)</label>
</disp-formula>where <inline-formula id="inf17">
<mml:math id="m33">
<mml:msub>
<mml:mrow>
<mml:mi>D</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>I</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msubsup>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mo>/</mml:mo>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:msub>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula>.</p>
<p>The residual matrix <italic>F</italic>
<sub>
<italic>i</italic>
</sub> of the centralized dependent variable data matrix is<disp-formula id="e17">
<mml:math id="m34">
<mml:msub>
<mml:mrow>
<mml:mi>F</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>I</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msubsup>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mo>/</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:msub>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>F</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:math>
<label>(17)</label>
</disp-formula>
</p>
<p>So the remaining kernel principal components are obtained:<disp-formula id="e18">
<mml:math id="m35">
<mml:msubsup>
<mml:mrow>
<mml:mi>K</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">&#x3a6;</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:msub>
<mml:mrow>
<mml:mi>F</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:msubsup>
<mml:mrow>
<mml:mi>F</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:msub>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3bb;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:math>
<label>(18)</label>
</disp-formula>
</p>
<p>Similarly, the kernel principal component <italic>u</italic>
<sub>
<italic>i</italic>
</sub> can be obtained according to the independent variable data matrix <italic>E</italic>
<sub>0</sub>. And the matrix <italic>t</italic>
<sub>
<italic>i</italic>
</sub>, <italic>u</italic>
<sub>
<italic>i</italic>
</sub> are composed of <italic>T</italic>,&#x20;<italic>U</italic>.</p>
<p>Therefore, the output of the KPLS algorithm can be expressed as:<disp-formula id="e19">
<mml:math id="m36">
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>Y</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi>K</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">&#x3a6;</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mi>U</mml:mi>
<mml:msup>
<mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
</mml:msup>
<mml:msup>
<mml:mrow>
<mml:mi>K</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">&#x3a6;</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mi>U</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
<mml:msup>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mi>Y</mml:mi>
</mml:math>
<label>(19)</label>
</disp-formula>
</p>
<p>Through the above mentioned, the deviation compensation model of mechanism model is established by kernel partial least squares algorithm.</p>
<p>However, with the changes in working conditions and mechanism model parameters, the nonlinear relationship between the deviation of mechanism model and its inputs are constantly changing. So this paper uses the model updating strategy with sliding window to update the kernel matrix of the deviation compensation model in real time, and improve the prediction accuracy of the model. The sliding window updating strategy is to set a fixed-length sample as a training sample, and to make the window slide forward with the acquisition of the new sample, thereby implementing the update of the model. The purpose of the deviation compensation model updating is to update the elements in the kernel matrix to adapt the adaptability of the model when operating conditions change. It is only necessary to change the position of some elements and calculate a small number of new elements during the updating process without having to perform a lot of double counting.</p>
<p>The updating process of the deviation compensation model is shown in <xref ref-type="fig" rid="F5">Figure&#x20;5</xref>. Consuming the window length to be <italic>g</italic>,then the kernel is <italic>K</italic>
<sub>
<italic>g</italic>&#xd7;<italic>g</italic>
</sub>, and the sliding length is <italic>q</italic>. So when the sliding window slides forward, the new input and output data are got to form the updated samples. The updated input samples are recorded as <italic>X</italic>&#x2a; and the updated output samples are recorded as <italic>Y</italic>&#x2a;. Firstly, the kernel matrix is renewed by the updated samples <italic>X</italic>&#x2a; and <italic>Y</italic>&#x2a; through the kernel function. The kernel matrix updating process is as follows: to begin with, deleting the matrix elements corresponding to the discarded <italic>q</italic> samples, then changing the position of the reserved elements, and finally calculating the corresponding elements of the <italic>q</italic> new samples and adding them to the kernel matrix to complete the updating of the model.<list list-type="simple">
<list-item>
<p>1) Deleting old samples</p>
</list-item>
</list>
</p>
<fig id="F5" position="float">
<label>FIGURE 5</label>
<caption>
<p>The updating process of the deviation compensation&#x20;model.</p>
</caption>
<graphic xlink:href="fenrg-09-738556-g005.tif"/>
</fig>
<p>For the variable <italic>x</italic>&#x20;&#x2208; <italic>R</italic>
<sup>
<italic>g</italic>
</sup>, the expression of the kernel matrix <inline-formula id="inf18">
<mml:math id="m37">
<mml:msubsup>
<mml:mrow>
<mml:mi>K</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>g</mml:mi>
<mml:mo>&#xd7;</mml:mo>
<mml:mi>g</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">&#x3a6;</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:math>
</inline-formula> is:<disp-formula id="e20">
<mml:math id="m38">
<mml:msub>
<mml:mrow>
<mml:mi>K</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>g</mml:mi>
<mml:mo>&#xd7;</mml:mo>
<mml:mi>g</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mfenced open="[" close="]">
<mml:mrow>
<mml:mtable class="matrix">
<mml:mtr>
<mml:mtd columnalign="center">
<mml:mi mathvariant="normal">&#x3a6;</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mtd>
<mml:mtd columnalign="center">
<mml:mi mathvariant="normal">&#x3a6;</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mtd>
<mml:mtd columnalign="center">
<mml:mo>&#x22ef;</mml:mo>
</mml:mtd>
<mml:mtd columnalign="center">
<mml:mi mathvariant="normal">&#x3a6;</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>g</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd columnalign="center">
<mml:mi mathvariant="normal">&#x3a6;</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mtd>
<mml:mtd columnalign="center">
<mml:mi mathvariant="normal">&#x3a6;</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mtd>
<mml:mtd columnalign="center">
<mml:mo>&#x22ef;</mml:mo>
</mml:mtd>
<mml:mtd columnalign="center">
<mml:mi mathvariant="normal">&#x3a6;</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>g</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd columnalign="center">
<mml:mo>&#x22ee;</mml:mo>
</mml:mtd>
<mml:mtd columnalign="center">
<mml:mo>&#x22ee;</mml:mo>
</mml:mtd>
<mml:mtd columnalign="center">
<mml:mo>&#x22f1;</mml:mo>
</mml:mtd>
<mml:mtd columnalign="center">
<mml:mo>&#x22ee;</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd columnalign="center">
<mml:mi mathvariant="normal">&#x3a6;</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>g</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mtd>
<mml:mtd columnalign="center">
<mml:mi mathvariant="normal">&#x3a6;</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>g</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mtd>
<mml:mtd columnalign="center">
<mml:mo>&#x22ef;</mml:mo>
</mml:mtd>
<mml:mtd columnalign="center">
<mml:mi mathvariant="normal">&#x3a6;</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>g</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>g</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:math>
<label>(20)</label>
</disp-formula>
</p>
<p>For the current running state of the modeled object, the first <italic>q</italic> group samples are old sample points with no value, and the elements containing <italic>x</italic>
<sub>1</sub> &#x223c; <italic>x</italic>
<sub>
<italic>q</italic>
</sub> in the kernel matrix should be deleted. After deleting the corresponding elements, the kernel matrix is recorded as <inline-formula id="inf19">
<mml:math id="m39">
<mml:msubsup>
<mml:mrow>
<mml:mi>K</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>g</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>q</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mo>&#xd7;</mml:mo>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>g</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>q</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">&#x3a6;</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:math>
</inline-formula>.<disp-formula id="e21">
<mml:math id="m40">
<mml:msubsup>
<mml:mrow>
<mml:mi>K</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>g</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>q</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mo>&#xd7;</mml:mo>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>g</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>q</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">&#x3a6;</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mo>&#x3d;</mml:mo>
<mml:mfenced open="[" close="]">
<mml:mrow>
<mml:mtable class="matrix">
<mml:mtr>
<mml:mtd columnalign="center">
<mml:mi mathvariant="normal">&#x3a6;</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>q</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>q</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mtd>
<mml:mtd columnalign="center">
<mml:mi mathvariant="normal">&#x3a6;</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>q</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>q</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mtd>
<mml:mtd columnalign="center">
<mml:mo>&#x22ef;</mml:mo>
</mml:mtd>
<mml:mtd columnalign="center">
<mml:mi mathvariant="normal">&#x3a6;</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>q</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>g</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd columnalign="center">
<mml:mi mathvariant="normal">&#x3a6;</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>q</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>q</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mtd>
<mml:mtd columnalign="center">
<mml:mi mathvariant="normal">&#x3a6;</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>q</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>q</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mtd>
<mml:mtd columnalign="center">
<mml:mo>&#x22ef;</mml:mo>
</mml:mtd>
<mml:mtd columnalign="center">
<mml:mi mathvariant="normal">&#x3a6;</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>q</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>g</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd columnalign="center">
<mml:mo>&#x22ee;</mml:mo>
</mml:mtd>
<mml:mtd columnalign="center">
<mml:mo>&#x22ee;</mml:mo>
</mml:mtd>
<mml:mtd columnalign="center">
<mml:mo>&#x22f1;</mml:mo>
</mml:mtd>
<mml:mtd columnalign="center">
<mml:mo>&#x22ee;</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd columnalign="center">
<mml:mi mathvariant="normal">&#x3a6;</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>g</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>q</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mtd>
<mml:mtd columnalign="center">
<mml:mi mathvariant="normal">&#x3a6;</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>g</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>q</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mtd>
<mml:mtd columnalign="center">
<mml:mo>&#x22ef;</mml:mo>
</mml:mtd>
<mml:mtd columnalign="center">
<mml:mi mathvariant="normal">&#x3a6;</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>g</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>g</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:math>
<label>(21)</label>
</disp-formula>
<list list-type="simple">
<list-item>
<p>2) Adding new samples</p>
</list-item>
</list>
</p>
<p>After deleting the old samples, in order to maintain the order of the kernel matrix, it is necessary to add the same number of new samples. Since the updating model adopts the timing update strategy, the newly added matrix elements need to consider the sample timing, and the kernel matrix after adding the new elements is recorded as <inline-formula id="inf20">
<mml:math id="m41">
<mml:msubsup>
<mml:mrow>
<mml:mi>K</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>g</mml:mi>
<mml:mo>&#xd7;</mml:mo>
<mml:mi>g</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="normal">&#x3a6;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2a;</mml:mo>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msubsup>
</mml:math>
</inline-formula>.<disp-formula id="e22">
<mml:math id="m42">
<mml:msubsup>
<mml:mrow>
<mml:mi>K</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>g</mml:mi>
<mml:mo>&#xd7;</mml:mo>
<mml:mi>g</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="normal">&#x3a6;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2a;</mml:mo>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msubsup>
<mml:mo>&#x3d;</mml:mo>
<mml:mfenced open="[" close="]">
<mml:mrow>
<mml:mtable class="matrix">
<mml:mtr>
<mml:mtd columnalign="center">
<mml:mi mathvariant="normal">&#x3a6;</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>q</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>q</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mtd>
<mml:mtd columnalign="center">
<mml:mi mathvariant="normal">&#x3a6;</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>q</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>q</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mtd>
<mml:mtd columnalign="center">
<mml:mo>&#x22ef;</mml:mo>
</mml:mtd>
<mml:mtd columnalign="center">
<mml:mi mathvariant="normal">&#x3a6;</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>q</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>q</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mi>g</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd columnalign="center">
<mml:mi mathvariant="normal">&#x3a6;</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>q</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>q</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mtd>
<mml:mtd columnalign="center">
<mml:mi mathvariant="normal">&#x3a6;</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>q</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>q</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mtd>
<mml:mtd columnalign="center">
<mml:mo>&#x22ef;</mml:mo>
</mml:mtd>
<mml:mtd columnalign="center">
<mml:mi mathvariant="normal">&#x3a6;</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>q</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>q</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mi>g</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd columnalign="center">
<mml:mo>&#x22ee;</mml:mo>
</mml:mtd>
<mml:mtd columnalign="center">
<mml:mo>&#x22ee;</mml:mo>
</mml:mtd>
<mml:mtd columnalign="center">
<mml:mo>&#x22f1;</mml:mo>
</mml:mtd>
<mml:mtd columnalign="center">
<mml:mo>&#x22ee;</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd columnalign="center">
<mml:mi mathvariant="normal">&#x3a6;</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>q</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mi>g</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>q</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mtd>
<mml:mtd columnalign="center">
<mml:mi mathvariant="normal">&#x3a6;</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>q</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mi>g</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>q</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mtd>
<mml:mtd columnalign="center">
<mml:mo>&#x22ef;</mml:mo>
</mml:mtd>
<mml:mtd columnalign="center">
<mml:mi mathvariant="normal">&#x3a6;</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>q</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mi>g</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>q</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mi>g</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:math>
<label>(22)</label>
</disp-formula>
</p>
<p>Secondly, the new score vector <italic>T</italic>&#x2a; and <italic>U</italic>&#x2a; can be gained by <xref ref-type="disp-formula" rid="e9">Eqs 9</xref>&#x2013;<xref ref-type="disp-formula" rid="e18">18</xref> according to the updated samples <italic>X</italic>&#x2a; and <italic>Y</italic>&#x2a;.</p>
<p>Finally, the output <italic>y</italic>
<sub>
<italic>d</italic>
</sub>(<italic>k</italic>) of the adaptive deviation compensation model through the KPLS algorithm and the model updating strategy with sliding window is:<disp-formula id="e23">
<mml:math id="m43">
<mml:msub>
<mml:mrow>
<mml:mi>y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>d</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi>K</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>g</mml:mi>
<mml:mo>&#xd7;</mml:mo>
<mml:mi>g</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="normal">&#x3a6;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2a;</mml:mo>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msubsup>
<mml:msup>
<mml:mrow>
<mml:mi>U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2a;</mml:mo>
</mml:mrow>
</mml:msup>
<mml:msup>
<mml:mrow>
<mml:mfenced open="[" close=")">
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2a;</mml:mo>
</mml:mrow>
</mml:msup>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
</mml:msup>
<mml:msubsup>
<mml:mrow>
<mml:mi>K</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>g</mml:mi>
<mml:mo>&#xd7;</mml:mo>
<mml:mi>g</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="normal">&#x3a6;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2a;</mml:mo>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msubsup>
<mml:msup>
<mml:mrow>
<mml:mi>U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2a;</mml:mo>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
<mml:msup>
<mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2a;</mml:mo>
</mml:mrow>
</mml:msup>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
</mml:msup>
<mml:msup>
<mml:mrow>
<mml:mi>Y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2a;</mml:mo>
</mml:mrow>
</mml:msup>
</mml:math>
<label>(23)</label>
</disp-formula>where <italic>y</italic>
<sub>
<italic>d</italic>
</sub>(<italic>k</italic>) is the output of the adaptive deviation compensation&#x20;model.</p>
</sec>
<sec id="s3-2">
<title>3.2 The Achieving Step of the Adaptive Hybrid Energy Consumption Model</title>
<p>Through the content introduced above, the recursive least squares algorithm with adaptive forgetting factor, kernel partial least squares algorithm and the model updating strategy with sliding window are used to established the adaptive hybrid model. And the modeling steps are as follows:<list list-type="simple">
<list-item>
<p>1) Obtaining the running real-time/ historical data, and excluding outliers.</p>
</list-item>
<list-item>
<p>2) Establishing the mechanism model, and identifying the model parameters <inline-formula id="inf21">
<mml:math id="m44">
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>&#x3b8;</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula> online through the RLS algorithm with adaptive forgetting factor introduced in <xref ref-type="sec" rid="s2">section&#x20;2</xref>;</p>
</list-item>
<list-item>
<p>3) Calculating the output <italic>y</italic>
<sub>
<italic>m</italic>
</sub>(<italic>k</italic>) of the identified mechanism model at k-time, and calculating the deviation between the actual model and identified model at this time;</p>
</list-item>
<list-item>
<p>4) Sliding the sliding window to update the data to update the kernel matrix;</p>
</list-item>
<list-item>
<p>5) Calculating the output <italic>y</italic>
<sub>
<italic>h</italic>
</sub>(<italic>k</italic>) of the deviation compensation model at <italic>k</italic> time by using real-time and historical data;</p>
</list-item>
<list-item>
<p>6) Superimposing the output of the deviation compensation model and the mechanism model to obtain the output <italic>y</italic>
<sub>
<italic>h</italic>
</sub>(<italic>k</italic>) &#x3d; <italic>y</italic>
<sub>
<italic>m</italic>
</sub>(<italic>k</italic>) &#x2b; <italic>y</italic>
<sub>
<italic>d</italic>
</sub>(<italic>k</italic>) of the adaptive hybrid&#x20;model.</p>
</list-item>
</list>
</p>
</sec>
</sec>
<sec id="s4">
<title>4 Experiment Verification</title>
<p>In this section, we use the field operation data of a signal centrifugal chiller to verify the accuracy, generalization and adaptability of the adaptive hybrid model proposed in this&#x20;paper.</p>
<p>The simplified energy consumption model (<xref ref-type="bibr" rid="B1">Bozorgian, 2020</xref>) can be expressed as follows.<disp-formula id="e24">
<mml:math id="m45">
<mml:mtable class="matrix">
<mml:mtr>
<mml:mtd columnalign="center">
<mml:msub>
<mml:mrow>
<mml:mi>y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>m</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>Q</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mi>o</mml:mi>
<mml:mi>m</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x22c5;</mml:mo>
<mml:mi>C</mml:mi>
<mml:mi>O</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi>P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mi>o</mml:mi>
<mml:mi>m</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x22c5;</mml:mo>
<mml:mi>P</mml:mi>
<mml:mi>L</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi>R</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>a</mml:mi>
<mml:mi>d</mml:mi>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mo>&#x22c5;</mml:mo>
<mml:mfenced open="{" close="">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>a</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>a</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mo>&#x22c5;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>C</mml:mi>
<mml:mi>H</mml:mi>
<mml:mi>W</mml:mi>
<mml:mi>S</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>a</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mo>&#x22c5;</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>C</mml:mi>
<mml:mi>H</mml:mi>
<mml:mi>W</mml:mi>
<mml:mi>S</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msubsup>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd columnalign="center">
<mml:mfenced open="" close="}">
<mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>a</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mo>&#x22c5;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>C</mml:mi>
<mml:mi>W</mml:mi>
<mml:mi>S</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>a</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>4</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mo>&#x22c5;</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>C</mml:mi>
<mml:mi>W</mml:mi>
<mml:mi>S</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msubsup>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>a</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>5</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mo>&#x22c5;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>C</mml:mi>
<mml:mi>H</mml:mi>
<mml:mi>W</mml:mi>
<mml:mi>S</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mo>&#x22c5;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>C</mml:mi>
<mml:mi>W</mml:mi>
<mml:mi>S</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:math>
<label>(24)</label>
</disp-formula>where <italic>y</italic>
<sub>
<italic>m</italic>
</sub> is the energy consumption; <italic>Q</italic>
<sub>
<italic>nom</italic>
</sub> is the rated refrigeration capacity, it is 2813&#xa0;kW in this paper; <italic>COP</italic>
<sub>
<italic>nom</italic>
</sub> is the rated refrigeration efficiency, it is 6.86 in this paper; <italic>PLR</italic>
<sub>
<italic>adj</italic>
</sub> is load rate; <italic>T</italic>
<sub>
<italic>CHWS</italic>
</sub> is the supply water temperature; <italic>T</italic>
<sub>
<italic>CWS</italic>
</sub> is the supply water temperature of cooling water; <italic>a</italic>
<sub>
<italic>i</italic>
</sub>(<italic>k</italic>) is the model parameter to be identified, <italic>i</italic>&#x20;&#x3d; 0, 1, 2, 3, 4,&#x20;5.</p>
<p>According to the analysis in the previous section, combined with the chiller model, from formula , we can get &#x3a6;<sup>
<italic>T</italic>
</sup>(<italic>k</italic>) and <italic>X</italic>, <italic>Y</italic> are as follow: <inline-formula id="inf22">
<mml:math id="m46">
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="normal">&#x3a6;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>2813</mml:mn>
<mml:mo>&#x2a;</mml:mo>
<mml:mn>6.86</mml:mn>
<mml:mo>&#x2a;</mml:mo>
<mml:mi>P</mml:mi>
<mml:mi>L</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi>R</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>a</mml:mi>
<mml:mi>d</mml:mi>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mo>&#x2a;</mml:mo>
<mml:mrow>
<mml:mo stretchy="false">[</mml:mo>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>C</mml:mi>
<mml:mi>H</mml:mi>
<mml:mi>W</mml:mi>
<mml:mi>S</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mo>,</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>C</mml:mi>
<mml:mi>H</mml:mi>
<mml:mi>W</mml:mi>
<mml:mi>S</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msubsup>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>C</mml:mi>
<mml:mi>W</mml:mi>
<mml:mi>S</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mo>,</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>C</mml:mi>
<mml:mi>W</mml:mi>
<mml:mi>S</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msubsup>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>C</mml:mi>
<mml:mi>H</mml:mi>
<mml:mi>W</mml:mi>
<mml:mi>S</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mo>&#x22c5;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>C</mml:mi>
<mml:mi>W</mml:mi>
<mml:mi>S</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mo stretchy="false">]</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula>, <italic>X</italic>&#x20;&#x3d; [<bold>PLR</bold>
<sub>
<italic>adj</italic>
</sub>, <bold>T</bold>
<sub>
<italic>CHWS</italic>
</sub>, <bold>T</bold>
<sub>
<italic>CWS</italic>
</sub>, <bold>P</bold>
<sub>
<italic>CHWS</italic>
</sub>, <bold>m</bold>
<sub>
<italic>CW</italic>
</sub>, <bold>m</bold>
<sub>
<italic>CHW</italic>
</sub>, <bold>P</bold>
<sub>
<italic>CWS</italic>
</sub>, <bold>e</bold>], <italic>Y</italic>&#x20;&#x3d; [<bold>e</bold>]. so <italic>p</italic>&#x20;&#x3d; 8, <italic>q</italic>&#x20;&#x3d; 1. And assuming <italic>E</italic>
<sub>0</sub>&#x3d;<italic>X</italic>, <italic>F</italic>
<sub>0</sub>&#x3d;<italic>Y</italic>.</p>
<p>In this paper, the field operation data of a signal chiller in a data center are taken as samples, and the operation status of the chiller at a 26&#x2013;27&#xb0;C wet bulb temperature is taken as working condition 1, the operation status of the chiller at a 25&#x2013;26&#xb0;C wet bulb temperature is taken as working condition 2, and the operation status of the chiller at a 24&#x2013;25&#xb0;C wet bulb temperature is taken as working condition 3.Under this premise, the energy consumption of the chiller model is different at different circumstance temperature ranges, and the parameters of the corresponding model change, which means that the model is time-varying. In addition, the time series length of residual is set to <italic>l</italic>&#x20;&#x3d; 7, and the time constant discrete value of change rate of the evaluation function is <italic>v</italic>&#x20;&#x3d; 14. Finally, the adaptive hybrid dynamic energy consumption model is verified by the sample data under single working condition (working condition 2), to make the working condition data non-repetitive, working conditions 1 and 3 are chosen to study the calculation accuracy comparison of different models under variable conditions. The root mean square error (RMSE) and mean absolute percentage error (MAPE) are used to evaluate the accuracy of the&#x20;model.</p>
<sec id="s4-1">
<title>4.1 Comparison of Calculation Accuracy of Different Models Under Single Working Condition</title>
<p>Under working condition 2, there are 1087 sets of actual data, and 965 sets of global data are selected as training data, and 122 sets of global data are used as test data. Respectively, through mechanism model, data model (Kernel Partial Least Squares model) and adaptive hybrid model to compare the model accuracy. The training and test effects of mechanism model is shown as <xref ref-type="fig" rid="F6">Figure&#x20;6</xref>, the effects of KPLS model is shown as <xref ref-type="fig" rid="F7">Figure&#x20;7</xref>, and the effects of adaptive hybrid model is shown as <xref ref-type="fig" rid="F8">Figure&#x20;8</xref>.calculation accuracy of different models under signal working condition (working condition 2) is shown in <xref ref-type="table" rid="T3">Table&#x20;3</xref>.</p>
<fig id="F6" position="float">
<label>FIGURE 6</label>
<caption>
<p>Training and test results of mechanism model under single working condition (working condition 2).</p>
</caption>
<graphic xlink:href="fenrg-09-738556-g006.tif"/>
</fig>
<fig id="F7" position="float">
<label>FIGURE 7</label>
<caption>
<p>Training and test results of KPLS model under single working condition (working condition 2).</p>
</caption>
<graphic xlink:href="fenrg-09-738556-g007.tif"/>
</fig>
<fig id="F8" position="float">
<label>FIGURE 8</label>
<caption>
<p>Training and test results of adaptive hybrid model under single working condition (working condition 2).</p>
</caption>
<graphic xlink:href="fenrg-09-738556-g008.tif"/>
</fig>
<table-wrap id="T3" position="float">
<label>TABLE 3</label>
<caption>
<p>Calculation accuracy of different models under signal working condition (working condition 2).</p>
</caption>
<table>
<thead valign="top">
<tr>
<th align="left">Methods</th>
<th align="center">
<italic>RMSE</italic>
<sub>
<italic>T</italic>
</sub>/ (kW)</th>
<th align="center">
<italic>MAPE</italic>
<sub>
<italic>T</italic>
</sub>/ (%)</th>
<th align="center">
<italic>RMSE</italic>
<sub>
<italic>P</italic>
</sub>/ (kW)</th>
<th align="center">
<italic>MAPE</italic>
<sub>
<italic>P</italic>
</sub>/ (%)</th>
</tr>
</thead>
<tbody valign="top">
<tr>
<td align="left">Mechanism</td>
<td align="char" char=".">4.9768</td>
<td align="char" char=".">1.5130</td>
<td align="char" char=".">4.7754</td>
<td align="char" char=".">1.5813</td>
</tr>
<tr>
<td align="left">data (KPLS)</td>
<td align="char" char=".">0.7130</td>
<td align="char" char=".">0.2861</td>
<td align="char" char=".">5.0041</td>
<td align="char" char=".">1.6387</td>
</tr>
<tr>
<td align="left">Adaptive hybrid model</td>
<td align="char" char=".">1.8476</td>
<td align="char" char=".">0.2912</td>
<td align="char" char=".">0.5910</td>
<td align="char" char=".">1.1598</td>
</tr>
</tbody>
</table>
</table-wrap>
<p>It can be concluded from <xref ref-type="fig" rid="F6">Figures 6</xref>, <xref ref-type="fig" rid="F7">7</xref>, <xref ref-type="fig" rid="F8">8</xref> that the adaptive hybrid model has higher fitting accuracy and better generalization ability, and can track the energy consumption change in time. From <xref ref-type="table" rid="T3">Table&#x20;3</xref>, we can see that the accuracy of the mechanism model is poor, because the mechanism model ignores some factors that affect the power consumption of water chillers, resulting in larger errors in the mechanism model. The data (KPLS) model has a higher Accuracy, but the prediction accuracy of the model is low, the model has over-fitting phenomenon and thus affects the prediction accuracy of the model. Comparing with the mechanism model and the data model, the root mean square error of the adaptive hybrid model is reduced by 87.6 and 88.2% respectively, and the average absolute percentage error is reduced by 89.9 and 90.2% respectively. The model has higher accuracy.</p>
</sec>
<sec id="s4-2">
<title>4.2 Comparison of Calculation Accuracy of Different Models Under Variable Working Conditions</title>
<p>This paper further verifies the prediction accuracy, generalization and adaptability of the adaptive hybrid model under variable working conditions by using the actual data of centrifugal chiller under working conditions 1 and 3. There are 954 sets of actual data in working condition 1 and all of them are used as training data. There are 590 sets of actual data in working condition 3 and all of them are used as test data. The accuracy of mechanism model under variable working conditions is shown as <xref ref-type="fig" rid="F9">Figure&#x20;9</xref>. The accuracy of data (KPLS) model under variable working conditions is shown as <xref ref-type="fig" rid="F10">Figure&#x20;10</xref>. The faccuracy of adaptive hybrid model under variable working conditions is shown as <xref ref-type="fig" rid="F11">Figure&#x20;11</xref>.the calculation accuracy of different models under multiple working conditions is shown in <xref ref-type="table" rid="T4">Table&#x20;4</xref>.</p>
<fig id="F9" position="float">
<label>FIGURE 9</label>
<caption>
<p>The accuracy of mechanism model under multiple working conditions (working condition 1 and working condition 3).</p>
</caption>
<graphic xlink:href="fenrg-09-738556-g009.tif"/>
</fig>
<fig id="F10" position="float">
<label>FIGURE 10</label>
<caption>
<p>The accuracy of KPLS model under multiple working conditions (working condition 1 and working condition 3).</p>
</caption>
<graphic xlink:href="fenrg-09-738556-g010.tif"/>
</fig>
<fig id="F11" position="float">
<label>FIGURE 11</label>
<caption>
<p>The accuracy of adaptive hybrid model under multiple working conditions (working condition 1 and working condition 3).</p>
</caption>
<graphic xlink:href="fenrg-09-738556-g011.tif"/>
</fig>
<table-wrap id="T4" position="float">
<label>TABLE 4</label>
<caption>
<p>Calculation accuracy of different models under multiple working condition (working condition 1 and working condition 3).</p>
</caption>
<table>
<thead valign="top">
<tr>
<th align="left">Methods</th>
<th align="center">
<italic>RMSE</italic>/ (kW) (Working condition 1)</th>
<th align="center">
<italic>MAPE</italic>/ (%)(working condition 1)</th>
<th align="center">
<italic>RMSE</italic>/ (kW)(working condition 3)</th>
<th align="center">
<italic>MAPE</italic>/ (%)(working condition 3)</th>
</tr>
</thead>
<tbody valign="top">
<tr>
<td align="left">Mechanism</td>
<td align="char" char=".">5.3051</td>
<td align="char" char=".">1.6383</td>
<td align="char" char=".">9.1607</td>
<td align="char" char=".">2.8207</td>
</tr>
<tr>
<td align="left">Data (KPLS)</td>
<td align="char" char=".">2.9517</td>
<td align="char" char=".">1.1780</td>
<td align="char" char=".">15.3548</td>
<td align="char" char=".">5.5359</td>
</tr>
<tr>
<td align="left">Adaptive hybrid model</td>
<td align="char" char=".">1.9098</td>
<td align="char" char=".">0.3110</td>
<td align="char" char=".">3.5008</td>
<td align="char" char=".">0.4117</td>
</tr>
</tbody>
</table>
</table-wrap>
<p>From the <xref ref-type="fig" rid="F10">Figure&#x20;10</xref>, it can be concluded that the calculation accuracy of data (KPLS) model has a large deviation under variable working conditions, because the dynamic characteristics of chillers will change when the external temperature changes, while the training samples contain limited working data. When the data contain the number of new working conditions, data (KPLS) model will occur to lose effectiveness, which seriously affects the accuracy of the model. However, the adaptive hybrid model has better generalization and adaptability when the working condition changes from working condition 1 to working condition 3. The root mean square error is reduced by 61.8 and 77.2% respectively compared with the mechanism model and the data model, and the average absolute percentage error is reduced by 85.4 and 92.6% respectively compared with the mechanism model and the data&#x20;model.</p>
<p>From the analysis of the above results, it can be seen that the adaptive hybrid model not only guarantees high fitting accuracy, but also has high generalization ability and adaptability. Compared with the mechanism model, the adaptive hybrid model accurately describes the dynamic characteristics of the centrifugal chiller, avoiding the negative impact of the lack of input variables on the accuracy of the model. Compared with the data model, the accuracy of the adaptive hybrid model is not affected by the coverage of training samples, and it also avoids the over-fitting phenomenon. In addition, the adaptive hybrid model also has high adaptability to variable working conditions.</p>
</sec>
</sec>
<sec id="s5">
<title>5 Conclusion</title>
<p>In order to describe the dynamic characteristics of objects better and more accurately, an adaptive hybrid modeling method is proposed in this paper. To begin with, the mechanism model of the object is established by mechanism analysis, and to quickly and accurately identify the parameters of time-varying model online, a recursive least squares algorithm with adaptive forgetting factor is proposed in combination with fuzzy algorithm and recursive least squares algorithm, which ensures the validity of the parameters of the model. Secondly, the deviation compensation model of the object&#x2019;s mechanism model is established by using the kernel partial least squares algorithm, and the model updating strategy with sliding window is used to modify the deviation compensation model, so as to construct the adaptive hybrid model of the object. Finally, the field running data of centrifugal chillers under signal and variable working conditions verifies that the adaptive hybrid model can not only quickly and accurately identify the model parameters online, but also has good validity, generalization and adaptability. At the same time, comparing with the mechanism and data model, the adaptive hybrid model also has higher accuracy.</p>
</sec>
</body>
<back>
<sec id="s6">
<title>Data Availability Statement</title>
<p>The original contributions presented in the study are included in the article/<xref ref-type="sec" rid="s11">Supplementary Material</xref>, further inquiries can be directed to the corresponding author.</p>
</sec>
<sec id="s7">
<title>Author Contributions</title>
<p>All authors listed have made a substantial, direct, and intellectual contribution to the work and approved it for publication.</p>
</sec>
<sec id="s8">
<title>Funding</title>
<p>This work is supported by Shanghai &#x201c;Science and Technology Innovation Action Plan High-tech Field Project&#x201d;(19511103700).</p>
</sec>
<sec sec-type="COI-statement" id="s9">
<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="s10">
<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>
<sec id="s11">
<title>Supplementary Material</title>
<p>The Supplementary Material for this article can be found online at: <ext-link ext-link-type="uri" xlink:href="https://www.frontiersin.org/articles/10.3389/fenrg.2021.738556/full#supplementary-material">https://www.frontiersin.org/articles/10.3389/fenrg.2021.738556/full&#x23;supplementary-material</ext-link>.</p>
<supplementary-material xlink:href="Image8.EPS" id="SM1" mimetype="application/EPS" xmlns:xlink="http://www.w3.org/1999/xlink"/>
<supplementary-material xlink:href="Image4.EPS" id="SM2" mimetype="application/EPS" xmlns:xlink="http://www.w3.org/1999/xlink"/>
<supplementary-material xlink:href="Image5.EPS" id="SM3" mimetype="application/EPS" xmlns:xlink="http://www.w3.org/1999/xlink"/>
<supplementary-material xlink:href="Image10.EPS" id="SM4" mimetype="application/EPS" xmlns:xlink="http://www.w3.org/1999/xlink"/>
<supplementary-material xlink:href="Image13.EPS" id="SM5" mimetype="application/EPS" xmlns:xlink="http://www.w3.org/1999/xlink"/>
<supplementary-material xlink:href="Image11.EPS" id="SM6" mimetype="application/EPS" xmlns:xlink="http://www.w3.org/1999/xlink"/>
<supplementary-material xlink:href="Image12.EPS" id="SM7" mimetype="application/EPS" xmlns:xlink="http://www.w3.org/1999/xlink"/>
<supplementary-material xlink:href="Image1.EPS" id="SM8" mimetype="application/EPS" xmlns:xlink="http://www.w3.org/1999/xlink"/>
<supplementary-material xlink:href="Image6.EPS" id="SM9" mimetype="application/EPS" xmlns:xlink="http://www.w3.org/1999/xlink"/>
<supplementary-material xlink:href="Image9.EPS" id="SM10" mimetype="application/EPS" xmlns:xlink="http://www.w3.org/1999/xlink"/>
<supplementary-material xlink:href="Image2.EPS" id="SM11" mimetype="application/EPS" xmlns:xlink="http://www.w3.org/1999/xlink"/>
<supplementary-material xlink:href="Image3.EPS" id="SM12" mimetype="application/EPS" xmlns:xlink="http://www.w3.org/1999/xlink"/>
<supplementary-material xlink:href="Image7.EPS" id="SM13" mimetype="application/EPS" xmlns:xlink="http://www.w3.org/1999/xlink"/>
</sec>
<ref-list>
<title>References</title>
<ref id="B1">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Bozorgian</surname>
<given-names>A.</given-names>
</name>
</person-group> (<year>2020</year>). <article-title>Analysis and Simulating Recuperator Impact on the Thermodynamic Performance of the Combined Water-Ammonia Cycle</article-title>. <source>Prog. Chem. Biochem. Res.</source> <volume>3</volume> (<issue>2</issue>), <fpage>169</fpage>&#x2013;<lpage>179</lpage>. <pub-id pub-id-type="doi">10.33945/sami/pcbr.2020.2.10</pub-id> </citation>
</ref>
<ref id="B2">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Chou</surname>
<given-names>J.-S.</given-names>
</name>
<name>
<surname>Tsai</surname>
<given-names>C.-F.</given-names>
</name>
<name>
<surname>Lu</surname>
<given-names>Y.-H.</given-names>
</name>
</person-group> (<year>2013</year>). <article-title>Project Dispute Prediction by Hybrid Machine Learning Techniques</article-title>. <source>J.&#x20;Civil Eng. Manag.</source> <volume>19</volume> (<issue>4</issue>), <fpage>505</fpage>&#x2013;<lpage>517</lpage>. <pub-id pub-id-type="doi">10.3846/13923730.2013.768544</pub-id> </citation>
</ref>
<ref id="B3">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Foliaco</surname>
<given-names>B.</given-names>
</name>
<name>
<surname>Bula</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Coombes</surname>
<given-names>P.</given-names>
</name>
</person-group> (<year>2020</year>). <article-title>Improving the Gordon-Ng Model and Analyzing Thermodynamic Parameters to Evaluate Performance in a Water-Cooled Centrifugal Chiller</article-title>. <source>Energies</source> <volume>13</volume> (<issue>9</issue>), <fpage>2135</fpage>. <pub-id pub-id-type="doi">10.3390/en13092135</pub-id> </citation>
</ref>
<ref id="B4">
<citation citation-type="confproc">
<person-group person-group-type="author">
<name>
<surname>Guo</surname>
<given-names>Y. H.</given-names>
</name>
<name>
<surname>Wang</surname>
<given-names>Q.</given-names>
</name>
</person-group> (<year>2017</year>). &#x201c;<article-title>Research on Network Workload Resource Prediction Based on Hybrid Model</article-title>,&#x201d; in <conf-name>2017 8th IEEE International Conference on Software Engineering and Service Science (ICSESS), Nov. 2017</conf-name>, <conf-loc>Beijing, China</conf-loc>, <conf-date>November 24&#x2013;26, 2017</conf-date> (<publisher-name>IEEE</publisher-name>), <fpage>24</fpage>&#x2013;<lpage>26</lpage>. <pub-id pub-id-type="doi">10.1109/icsess.2017.8343053</pub-id> </citation>
</ref>
<ref id="B5">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Guo</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Zheng</surname>
<given-names>C.</given-names>
</name>
<name>
<surname>Xu</surname>
<given-names>Z.</given-names>
</name>
<name>
<surname>Yang</surname>
<given-names>Z.</given-names>
</name>
<name>
<surname>Weng</surname>
<given-names>W.</given-names>
</name>
<name>
<surname>Wang</surname>
<given-names>Y.</given-names>
</name>
<etal/>
</person-group> (<year>2018</year>). <article-title>Hybrid Modeling Scheme for PM Concentration Prediction of Electrostatic Precipitators</article-title>. <source>Powder Techn.</source> <volume>340</volume>, <fpage>163</fpage>&#x2013;<lpage>172</lpage>. <pub-id pub-id-type="doi">10.1016/j.powtec.2018.09.017</pub-id> </citation>
</ref>
<ref id="B6">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Hamilton</surname>
<given-names>F.</given-names>
</name>
<name>
<surname>Lloyd</surname>
<given-names>A. L.</given-names>
</name>
<name>
<surname>Flores</surname>
<given-names>K. B.</given-names>
</name>
</person-group> (<year>2017</year>). <article-title>Hybrid Modeling and Prediction of Dynamical Systems</article-title>. <source>Plos Comput. Biol.</source> <volume>13</volume> (<issue>7</issue>), <fpage>e1005655</fpage>. <pub-id pub-id-type="doi">10.1371/journal.pcbi.1005655</pub-id> </citation>
</ref>
<ref id="B7">
<citation citation-type="confproc">
<person-group person-group-type="author">
<name>
<surname>Ji</surname>
<given-names>C.</given-names>
</name>
<name>
<surname>Liu</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Yang</surname>
<given-names>C.</given-names>
</name>
<name>
<surname>Cui</surname>
<given-names>L.</given-names>
</name>
<name>
<surname>Pan</surname>
<given-names>L.</given-names>
</name>
<name>
<surname>Wu</surname>
<given-names>L.</given-names>
</name>
<name>
<surname>Liu</surname>
<given-names>Y.</given-names>
</name>
</person-group> (<year>2016</year>). &#x201c;<article-title>A Self-Evolving Method of Data Model for Cloud-Based Machine Data Ingestion</article-title>,&#x201d; in <conf-name>IEEE International Conference on Cloud Computing(CLOUD)</conf-name>, <conf-loc>San Francisco, CA</conf-loc>, <conf-date>June 27&#x2013;July 2, 2016</conf-date> (<publisher-name>IEEE</publisher-name>), <fpage>814</fpage>&#x2013;<lpage>819</lpage>. <pub-id pub-id-type="doi">10.1109/CLOUD.2016.0114</pub-id> </citation>
</ref>
<ref id="B8">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Jiang</surname>
<given-names>C.</given-names>
</name>
<name>
<surname>Qian</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Pan</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Chai</surname>
<given-names>T.</given-names>
</name>
</person-group> (<year>2020</year>). <article-title>The Research of Superheated Steam Temperature Control Based on Generalized Predictive Control Algorithm and Adaptive Forgetting Factor</article-title>. <source>Int. J.&#x20;Adapt Control. Signal. Process.</source> <volume>34</volume> (<issue>1</issue>), <fpage>15</fpage>&#x2013;<lpage>31</lpage>. <pub-id pub-id-type="doi">10.1002/acs.3066</pub-id> </citation>
</ref>
<ref id="B9">
<citation citation-type="confproc">
<person-group person-group-type="author">
<name>
<surname>Jin</surname>
<given-names>G. Y.</given-names>
</name>
<name>
<surname>Ding</surname>
<given-names>X. D.</given-names>
</name>
<name>
<surname>Tan</surname>
<given-names>P. Y.</given-names>
</name>
<name>
<surname>Koh</surname>
<given-names>T. M.</given-names>
</name>
</person-group> (<year>2011</year>). &#x201c;<article-title>A Hybrid Water-Cooled Centrifugal Chiller Model</article-title>,&#x201d; in <conf-name>2011 6th IEEE Conference on Industrial Electronics and Applications</conf-name>, <conf-loc>Beijing, China</conf-loc>, <conf-date>June 21&#x2013;23, 2011</conf-date> (<publisher-name>IEEE</publisher-name>), <fpage>2298</fpage>&#x2013;<lpage>2303</lpage>. <pub-id pub-id-type="doi">10.1109/iciea.2011.5975975</pub-id> </citation>
</ref>
<ref id="B10">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Li</surname>
<given-names>C.</given-names>
</name>
<name>
<surname>Yan</surname>
<given-names>B.</given-names>
</name>
<name>
<surname>Tang</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Yi</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Zhang</surname>
<given-names>X.</given-names>
</name>
</person-group> (<year>2018</year>). <article-title>Data Driven Hybrid Fuzzy Model for Short-Term Traffic Flow Prediction</article-title>. <source>Ifs</source> <volume>35</volume> (<issue>6</issue>), <fpage>6525</fpage>&#x2013;<lpage>6536</lpage>. <pub-id pub-id-type="doi">10.3233/jifs-18883</pub-id> </citation>
</ref>
<ref id="B11">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Li</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Zaheeruddin</surname>
<given-names>M.</given-names>
</name>
</person-group> (<year>2019</year>). <article-title>A Model and Multi-Mode Control of a Centrifugal Chiller System: A Computer Simulation Study</article-title>. <source>Int. J.&#x20;Air-cond. Ref.</source> <volume>27</volume> (<issue>04</issue>), <fpage>1950031</fpage>. <pub-id pub-id-type="doi">10.1142/s2010132519500317</pub-id> </citation>
</ref>
<ref id="B12">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Liu</surname>
<given-names>Y.</given-names>
</name>
</person-group> (<year>2019</year>). <article-title>Novel Volatility Forecasting Using Deep Learning-Long Short Term Memory Recurrent Neural Networks</article-title>. <source>Expert Syst. Appl.</source> <volume>132</volume>, <fpage>99</fpage>&#x2013;<lpage>109</lpage>. <pub-id pub-id-type="doi">10.1016/j.eswa.2019.04.038</pub-id> </citation>
</ref>
<ref id="B13">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Malbasa</surname>
<given-names>V.</given-names>
</name>
<name>
<surname>Zheng</surname>
<given-names>C.</given-names>
</name>
<name>
<surname>Chen</surname>
<given-names>P.-C.</given-names>
</name>
<name>
<surname>Popovic</surname>
<given-names>T.</given-names>
</name>
<name>
<surname>Kezunovic</surname>
<given-names>M.</given-names>
</name>
</person-group> (<year>2017</year>). <article-title>Voltage Stability Prediction Using Active Machine Learning</article-title>. <source>IEEE Trans. Smart Grid</source> <volume>8</volume> (<issue>6</issue>), <fpage>3117</fpage>&#x2013;<lpage>3124</lpage>. <pub-id pub-id-type="doi">10.1109/tsg.2017.2693394</pub-id> </citation>
</ref>
<ref id="B14">
<citation citation-type="confproc">
<person-group person-group-type="author">
<name>
<surname>Mazimbo</surname>
<given-names>W. I.</given-names>
</name>
<name>
<surname>Ruziwa</surname>
<given-names>W.</given-names>
</name>
<name>
<surname>Mhundwa</surname>
<given-names>R.</given-names>
</name>
</person-group> (<year>2019</year>). &#x201c;<article-title>Energy Consumption Modelling and Optimisation of Electric Water Heating Systems</article-title>,&#x201d; <source>March. 2019</source> in <conf-name>2019 International Conference on the Domestic Use of Energy (DUE)</conf-name>, <conf-loc>Wellington, South Africa</conf-loc>, <conf-date>March 25&#x2013;27, 2019</conf-date> (<publisher-loc>Wellington, South Africa</publisher-loc>: <publisher-name>IEEE</publisher-name>), <fpage>64</fpage>&#x2013;<lpage>68</lpage>. </citation>
</ref>
<ref id="B15">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Moreira</surname>
<given-names>C. A.</given-names>
</name>
<name>
<surname>Philot</surname>
<given-names>E. A.</given-names>
</name>
<name>
<surname>Lima</surname>
<given-names>A. N.</given-names>
</name>
<name>
<surname>Scott</surname>
<given-names>A. L.</given-names>
</name>
</person-group> (<year>2019</year>). <article-title>Predicting Regions Prone to Protein Aggregation Based on SVM Algorithm</article-title>. <source>Appl. Math. Comput.</source> <volume>359</volume>, <fpage>502</fpage>&#x2013;<lpage>511</lpage>. <pub-id pub-id-type="doi">10.1016/j.amc.2019.04.015</pub-id> </citation>
</ref>
<ref id="B16">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Pang</surname>
<given-names>Z.</given-names>
</name>
<name>
<surname>Cui</surname>
<given-names>H.</given-names>
</name>
</person-group> (<year>2017</year>). <source>System Identification and Adaptive Control MATLAB Simulation</source>. <publisher-loc>Beijing</publisher-loc>: <publisher-name>Beijing University of Aeronautics and Astronautics Press</publisher-name>, <fpage>43</fpage>&#x2013;<lpage>51</lpage>. </citation>
</ref>
<ref id="B17">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Park</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Ahn</surname>
<given-names>K. U.</given-names>
</name>
<name>
<surname>Hwang</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Choi</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Park</surname>
<given-names>C. S.</given-names>
</name>
</person-group> (<year>2019</year>). <article-title>Machine Learning vs. Hybrid Machine Learning Model for Optimal Operation of a Chiller</article-title>. <source>Sci. Techn. Built Environ.</source> <volume>25</volume> (<issue>2</issue>), <fpage>209</fpage>&#x2013;<lpage>220</lpage>. <pub-id pub-id-type="doi">10.1080/23744731.2018.1510270</pub-id> </citation>
</ref>
<ref id="B18">
<citation citation-type="confproc">
<person-group person-group-type="author">
<name>
<surname>Patnaik</surname>
<given-names>D.</given-names>
</name>
<name>
<surname>Marwah</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Sharma</surname>
<given-names>R. K.</given-names>
</name>
<name>
<surname>Ramakrishnan</surname>
<given-names>N.</given-names>
</name>
</person-group> (<year>2010</year>). &#x201c;<article-title>Data Mining for Modeling Chiller Systems in Data Centers</article-title>,&#x201d; in <conf-name>International Symposium on Intelligent Data Analysis</conf-name>, <conf-loc>Tucson, AZ</conf-loc>, <conf-date>May 19&#x2013;21, 2010</conf-date> (<publisher-loc>Berlin, Heidelberg</publisher-loc>: <publisher-name>Springer</publisher-name>), <fpage>125</fpage>&#x2013;<lpage>136</lpage>. <pub-id pub-id-type="doi">10.1007/978-3-642-13062-5_13</pub-id> </citation>
</ref>
<ref id="B19">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Shi</surname>
<given-names>Z.</given-names>
</name>
<name>
<surname>Wang</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Ji</surname>
<given-names>Z.</given-names>
</name>
</person-group> (<year>2016</year>). <article-title>Bias Compensation Based Partially Coupled Recursive Least Squares Identification Algorithm with Forgetting Factors for MIMO Systems: Application to PMSMs</article-title>. <source>J.&#x20;Franklin Inst.</source> <volume>353</volume> (<issue>13</issue>), <fpage>3057</fpage>&#x2013;<lpage>3077</lpage>. <pub-id pub-id-type="doi">10.1016/j.jfranklin.2016.05.021</pub-id> </citation>
</ref>
<ref id="B20">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Tudoroiu</surname>
<given-names>N.</given-names>
</name>
<name>
<surname>Zaheeruddin</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Tudoroiu</surname>
<given-names>R. E.</given-names>
</name>
</person-group> (<year>2020</year>). <article-title>Modelling, Identification, Implementation and MATLAB Simulations of Multi-Input Multi-Output Proportional Integral-Plus Control Strategies for a Centrifugal Chiller System</article-title>. <source>Ijmic</source> <volume>35</volume> (<issue>1</issue>), <fpage>64</fpage>&#x2013;<lpage>92</lpage>. <pub-id pub-id-type="doi">10.1504/ijmic.2020.113290</pub-id> </citation>
</ref>
<ref id="B21">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Wu</surname>
<given-names>X.-l.</given-names>
</name>
<name>
<surname>Xu</surname>
<given-names>Y.-W.</given-names>
</name>
<name>
<surname>Xue</surname>
<given-names>T.</given-names>
</name>
<name>
<surname>Zhao</surname>
<given-names>D.-q.</given-names>
</name>
<name>
<surname>Jiang</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Deng</surname>
<given-names>Z.</given-names>
</name>
<etal/>
</person-group> (<year>2019</year>). <article-title>Health State Prediction and Analysis of SOFC System Based on the Data-Driven Entire Stage Experiment</article-title>. <source>Appl. Energ.</source> <volume>248</volume>, <fpage>126</fpage>&#x2013;<lpage>140</lpage>. <pub-id pub-id-type="doi">10.1016/j.apenergy.2019.04.053</pub-id> </citation>
</ref>
<ref id="B22">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Wu</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Wang</surname>
<given-names>G.</given-names>
</name>
</person-group> (<year>2018</year>). <article-title>Machine Learning Based Toxicity Prediction: From Chemical Structural Description to Transcriptome Analysis</article-title>. <source>Ijms</source> <volume>19</volume> (<issue>8</issue>), <fpage>2358</fpage>. <pub-id pub-id-type="doi">10.3390/ijms19082358</pub-id> </citation>
</ref>
<ref id="B23">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Xia</surname>
<given-names>B.</given-names>
</name>
<name>
<surname>Huang</surname>
<given-names>R.</given-names>
</name>
<name>
<surname>Lao</surname>
<given-names>Z.</given-names>
</name>
<name>
<surname>Zhang</surname>
<given-names>R.</given-names>
</name>
<name>
<surname>Lai</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Zheng</surname>
<given-names>W.</given-names>
</name>
<etal/>
</person-group> (<year>2018</year>). <article-title>Online Parameter Identification of Lithium-Ion Batteries Using a Novel Multiple Forgetting Factor Recursive Least Square Algorithm</article-title>. <source>Energies</source> <volume>11</volume> (<issue>11</issue>), <fpage>3180</fpage>. <pub-id pub-id-type="doi">10.3390/en11113180</pub-id> </citation>
</ref>
<ref id="B24">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Xu</surname>
<given-names>X.</given-names>
</name>
</person-group> (<year>2017</year>). <source>Adaption Control and Model Predictive Control</source>. <publisher-loc>Beijing</publisher-loc>: <publisher-name>Tsinghua University Press</publisher-name>, <fpage>216</fpage>&#x2013;<lpage>218</lpage>. </citation>
</ref>
<ref id="B25">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Yao</surname>
<given-names>B.</given-names>
</name>
<name>
<surname>Wang</surname>
<given-names>Z.</given-names>
</name>
<name>
<surname>Zhang</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Hu</surname>
<given-names>P.</given-names>
</name>
<name>
<surname>Yan</surname>
<given-names>X.</given-names>
</name>
</person-group> (<year>2016</year>). <article-title>Hybrid Model for Prediction of Real-Time Traffic Flow</article-title>. <source>Proc. Inst. Civil Eng. - Transport</source> <volume>169</volume> (<issue>2</issue>), <fpage>88</fpage>&#x2013;<lpage>96</lpage>. <pub-id pub-id-type="doi">10.1680/jtran.14.00015</pub-id> </citation>
</ref>
<ref id="B26">
<citation citation-type="confproc">
<person-group person-group-type="author">
<name>
<surname>Zhang</surname>
<given-names>Q.</given-names>
</name>
</person-group> (<year>2018</year>). &#x201c;<article-title>High-Frequency Electronic Modeling Using Neural Networks</article-title>,&#x201d; in <conf-name>2018 International Conference on Advanced Control, Automation and Artificial Intelligence (ACAAI)</conf-name> (<publisher-loc>Paris</publisher-loc>: <publisher-name>Atlantis Press</publisher-name>), <fpage>134</fpage>&#x2013;<lpage>136</lpage>. <pub-id pub-id-type="doi">10.2991/acaai-18.2018.31</pub-id> </citation>
</ref>
</ref-list>
</back>
</article>