<?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. Robot. AI</journal-id>
<journal-title>Frontiers in Robotics and AI</journal-title>
<abbrev-journal-title abbrev-type="pubmed">Front. Robot. AI</abbrev-journal-title>
<issn pub-type="epub">2296-9144</issn>
<publisher>
<publisher-name>Frontiers Media S.A.</publisher-name>
</publisher>
</journal-meta>
<article-meta>
<article-id pub-id-type="publisher-id">1078253</article-id>
<article-id pub-id-type="doi">10.3389/frobt.2023.1078253</article-id>
<article-categories>
<subj-group subj-group-type="heading">
<subject>Robotics and AI</subject>
<subj-group>
<subject>Original Research</subject>
</subj-group>
</subj-group>
</article-categories>
<title-group>
<article-title>Switchable MPC-based multi-objective regenerative brake control <italic>via</italic> flow regulation for electric vehicles</article-title>
<alt-title alt-title-type="left-running-head">Mei et&#xa0;al.</alt-title>
<alt-title alt-title-type="right-running-head">
<ext-link ext-link-type="uri" xlink:href="https://doi.org/10.3389/frobt.2023.1078253">10.3389/frobt.2023.1078253</ext-link>
</alt-title>
</title-group>
<contrib-group>
<contrib contrib-type="author">
<name>
<surname>Mei</surname>
<given-names>Mingming</given-names>
</name>
<xref ref-type="aff" rid="aff1">
<sup>1</sup>
</xref>
<uri xlink:href="https://loop.frontiersin.org/people/2025594/overview"/>
</contrib>
<contrib contrib-type="author" corresp="yes">
<name>
<surname>Cheng</surname>
<given-names>Shuo</given-names>
</name>
<xref ref-type="aff" rid="aff2">
<sup>2</sup>
</xref>
<xref ref-type="corresp" rid="c001">&#x2a;</xref>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Mu</surname>
<given-names>Hongyuan</given-names>
</name>
<xref ref-type="aff" rid="aff1">
<sup>1</sup>
</xref>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Pei</surname>
<given-names>Yuxuan</given-names>
</name>
<xref ref-type="aff" rid="aff1">
<sup>1</sup>
</xref>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Li</surname>
<given-names>Bo</given-names>
</name>
<xref ref-type="aff" rid="aff3">
<sup>3</sup>
</xref>
</contrib>
</contrib-group>
<aff id="aff1">
<sup>1</sup>
<institution>The State Key Laboratory of Automotive Safety and Energy</institution>, <institution>School of Vehicle and Mobility</institution>, <institution>Tsinghua University</institution>, <addr-line>Beijing</addr-line>, <country>China</country>
</aff>
<aff id="aff2">
<sup>2</sup>
<institution>The Institute of Industrial Science</institution>, <institution>University of Tokyo</institution>, <addr-line>Tokyo</addr-line>, <country>Japan</country>
</aff>
<aff id="aff3">
<sup>3</sup>
<institution>Beijing Automotive Industry Corporation</institution>, <addr-line>Beijing</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/1125320/overview">Shichun Yang</ext-link>, Beihang University, 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/585357/overview">Bar&#x131;&#x15f; Can Yal&#xe7;&#x131;n</ext-link>, University of Luxembourg, Luxembourg</p>
<p>
<ext-link ext-link-type="uri" xlink:href="https://loop.frontiersin.org/people/1374220/overview">Hao Chen</ext-link>, Nanyang Technological University, Singapore</p>
</fn>
<corresp id="c001">&#x2a;Correspondence: Shuo Cheng, <email>shuocheng9@yeah.net</email>
</corresp>
<fn fn-type="other">
<p>This article was submitted to Robotic Control Systems, a section of the journal Frontiers in Robotics and AI</p>
</fn>
</author-notes>
<pub-date pub-type="epub">
<day>07</day>
<month>02</month>
<year>2023</year>
</pub-date>
<pub-date pub-type="collection">
<year>2023</year>
</pub-date>
<volume>10</volume>
<elocation-id>1078253</elocation-id>
<history>
<date date-type="received">
<day>24</day>
<month>10</month>
<year>2022</year>
</date>
<date date-type="accepted">
<day>02</day>
<month>01</month>
<year>2023</year>
</date>
</history>
<permissions>
<copyright-statement>Copyright &#xa9; 2023 Mei, Cheng, Mu, Pei and Li.</copyright-statement>
<copyright-year>2023</copyright-year>
<copyright-holder>Mei, Cheng, Mu, Pei and Li</copyright-holder>
<license xlink:href="http://creativecommons.org/licenses/by/4.0/">
<p>This is an open-access article distributed under the terms of the Creative Commons Attribution License (CC BY). The use, distribution or reproduction in other forums is permitted, provided the original author(s) and the copyright owner(s) are credited and that the original publication in this journal is cited, in accordance with accepted academic practice. No use, distribution or reproduction is permitted which does not comply with these terms.</p>
</license>
</permissions>
<abstract>
<p>Recent investigations of the electric braking booster (E-Booster) focus on its potential to enhance brake energy regeneration. A vehicle&#x2019;s hydraulic system is composed of the E-Booster and electric stability control to control the master cylinder and wheel cylinders. This paper aims to address the independent closed-loop control of the position and pressure as well as the maintenance of the pedal feel. To track both the reference signals related to piston displacement and the wheel cylinder pressure, an explicit model predictive control (MPC) is developed. First, the new flow model is introduced as the foundation for controller design and simulation. Next, in accordance with the operational conditions, the entire system is divided into three switchable subsystems. The three distributed MPCs are constructed based on the linearized subsystems, and a state machine is used to perform the state jump across the controllers. A linear piecewise affine control law can then be obtained by solving the quadratic program (QP) of explicit MPC. Afterwards, the non-linear extended Kalman filter including the recorded time-variant process noise is used to estimate all the state variables. The effectiveness of the explicit MPC is evidenced by the simulations compared with a single MPC in regenerative and dead-zone conditions. The proposed controller decreases the latency significantly by 85 milliseconds, which also helps to improve accuracy by 22.6%. Furthermore, the pedal feel remains consistent, even when factoring in the number of vibrations caused by the inherent hydraulic characteristic of pressure versus volume.</p>
</abstract>
<kwd-group>
<kwd>e-booster</kwd>
<kwd>switchable MPC</kwd>
<kwd>regenerative braking</kwd>
<kwd>flow regulation</kwd>
<kwd>pedal feel</kwd>
</kwd-group>
</article-meta>
</front>
<body>
<sec id="s1">
<title>1 Introduction</title>
<p>Electric vehicles (EV) have become a central focus of the automotive industry. The electric braking booster (E-Booster) system has been widely commercialized due to its compatibility with the existing hydraulic system and potential for enhancing energy harvesting efficiency. It can also directly manipulate the piston of the master cylinder in order to adjust the brake pressure. Existing methods of implementing the power-assisted brake can be broken up into two categories: one is where an emulator simulates the pedal feel, and the power assist is accomplished by means of the closed-loop of pressure or torque <xref ref-type="bibr" rid="B15">Liu&#xa0;et&#xa0;al. (2016)</xref>; <xref ref-type="bibr" rid="B30">Yu&#xa0;et&#xa0;al. (2016)</xref>; <xref ref-type="bibr" rid="B29">Yang&#xa0;et&#xa0;al. (2012)</xref>; and the other category involves translating the force feedback problem to the position tracking control based on the reaction disk&#x2019;s state of deformation <xref ref-type="bibr" rid="B28">Wu&#xa0;et&#xa0;al. (2020)</xref>; <xref ref-type="bibr" rid="B7">Chen&#xa0;et&#xa0;al. (2018a)</xref>, <xref ref-type="bibr" rid="B8">Chen&#xa0;et&#xa0;al. (2018b)</xref>. With the latter category, which makes use of a non-contact electromagnetic transducer, there is higher accuracy, and the stroke sensor is more easily installed <xref ref-type="bibr" rid="B28">Wu&#xa0;et&#xa0;al. (2020)</xref>. Additionally, due to the highly non-linear and time-varying relationship between the position and pressure <xref ref-type="bibr" rid="B30">Yu&#xa0;et&#xa0;al. (2016)</xref>; <xref ref-type="bibr" rid="B19">Panzani&#xa0;et&#xa0;al. (2014)</xref>, the pressure controller needs to overcome the challenging problem of the dead zone. In general, the position loop is regarded as a necessary control logic of the E-Booster.</p>
<p>The E-Booster expands the application field of the regenerative braking system (RBS), which lays the foundation for cooperative brake control. The force of the friction between the brake pad and the disk, as well as the regenerative force of the electric motor, mainly consists of the blending braking force. RBS normally prioritizes energy recuperation efficiency. <xref ref-type="bibr" rid="B11">Heydari&#xa0;et&#xa0;al. (2020)</xref> optimized the regenerative braking within the boundaries, utilizing a performance map of the traction motor. Furthermore, vehicle stability in braking situations needs to be taken into account. In <xref ref-type="bibr" rid="B25">Tang&#xa0;et&#xa0;al. (2022)</xref>, an optimal balance method between braking safety and efficiency was developed. This method consisted of two components: one was a force distribution controller, and the other was an optimization object that was based on the wheel slip rate. A supervised learning technique was developed in the literature <xref ref-type="bibr" rid="B6">Changran&#xa0;et&#xa0;al. (2018)</xref> in order to achieve greater balance between both braking stability and efficiency. Given the difference in brake sources, the consistency of the braking feel has also been modified; <xref ref-type="bibr" rid="B27">Wang&#xa0;et&#xa0;al. (2018)</xref> presented a braking feel compensator to account for hydraulic hysteresis in the presence of reasonable braking force distributions. Here, the E-Booster plays an intricate role in maintaining a consistent pedal feel; this is due to its adjustable boosting ratio; <xref ref-type="bibr" rid="B18">Ohtani&#xa0;et&#xa0;al. (2011)</xref> designed the springs to act as a much-needed balance between the driver force and the motor force; <xref ref-type="bibr" rid="B32">Zhao&#xa0;et&#xa0;al. (2018)</xref> proposed a sliding mode controller (SMC) for regulating the motor torque and antilock braking system (ABS). This was shown to have the possibility to simultaneously adjust the pedal feel and wheel cylinder pressure. It was also mentioned in Zhao&#x2019;s findings that the work of electric stability control (ESC) is separated into three stages based on the measured regenerative conditions <xref ref-type="bibr" rid="B31">Zhao&#xa0;et&#xa0;al. (2019)</xref>. Considering the above-mentioned research, this paper will mainly highlight multi-objective optimization in the generative process using the E-Booster and hydraulic circuit as the actuation foundation.</p>
<p>The model predictive control (MPC) is a common method used for dealing with multi-target and multi-restriction problems. In Falcone&#x2019;s study, a combined steering and braking MPC algorithm <xref ref-type="bibr" rid="B10">Falcone&#xa0;et&#xa0;al. (2008)</xref> was presented based on two models of varying complexity. The comprehensive controller was observed to have performed better under all operating conditions; however, it had a high computational burden. Meanwhile, the simplified controller behaved well under specific conditions. Taking the gathered data into consideration, this paper <xref ref-type="bibr" rid="B4">Cairano&#xa0;et&#xa0;al. (2013)</xref> proposed an MPC to coordinate the active front steering and differential braking. This method of predicting the key states using a piecewise affine (PWA) system provided the advantage of a low computation load. <xref ref-type="bibr" rid="B12">Hu&#xa0;et&#xa0;al. (2021)</xref> also introduced a gain-scheduled MPC to cover the entire range by a group of linearized models. This study will take a similar approach, with one exception: the linearization will be dependent on the control mode. MPC has naturally been discussed in relation to RBS. In his literature, <xref ref-type="bibr" rid="B21">Satzger and Castro (2014)</xref>; <xref ref-type="bibr" rid="B22">Satzger&#xa0;et&#xa0;al. (2016)</xref>; <xref ref-type="bibr" rid="B24">Satzger and de&#xa0;Castro (2017)</xref>; <xref ref-type="bibr" rid="B23">Satzger and Castro (2018)</xref>, proposed the MPC framework for tracking the desired torque by maximizing the regenerative efficiency and optimizing the slip ratio. Additionally, other control criteria, such as automotive yaw stability, were included into the MPC cost function <xref ref-type="bibr" rid="B20">Ren&#xa0;et&#xa0;al. (2016)</xref>. To solve the problem of low computation efficiency, a nearest point (NP) algorithm was introduced to confront the increasingly complex objectives and constraints <xref ref-type="bibr" rid="B14">Li&#xa0;et&#xa0;al. (2016)</xref>. The online solver of the quadratic program (QP) accounts for the large amount of computing resources. This is not feasible for automotive underlying actuators, considering their manufactured, highly responsive processors. The explicit MPC is a suitable method for application in such scenarios as vehicle dynamics <xref ref-type="bibr" rid="B4">Cairano&#xa0;et&#xa0;al. (2013)</xref>; <xref ref-type="bibr" rid="B9">Di&#xa0;Cairano&#xa0;et&#xa0;al. (2010)</xref>, idle speed control <xref ref-type="bibr" rid="B5">Cairano&#xa0;et&#xa0;al. (2012)</xref>, traction control <xref ref-type="bibr" rid="B26">Tavernini&#xa0;et&#xa0;al. (2019)</xref>, and so on. The explicit MPC can be implemented during the same step as a typical proportional integration (PI) to obtain a better effect; however, to do this, a significant number of linear control gains is required, the number of which depends largely on the MPC constraints <xref ref-type="bibr" rid="B3">Bemporad&#xa0;et&#xa0;al. (2011)</xref>. When dimensions, horizon, and constraints are not excessive, then explicit MPC can produce acceptable results.</p>
<p>Generally speaking, the previous research on the E-Booster has seldom considered the quantitative flow control in the hydraulic system as a primary focus, including both E-Booster and ESC. Based on the flow control, this paper will present solutions for independent hydraulic braking adjustment while still maintaining a consistent pedal feel. First, the boost process of the E-Booster will be illustrated in terms of a mathematical model. The flow model for the traditional independent two-circuit hydraulic system will be established and simplified accordingly. The model will then be linearized according to the control mode, and a state machine will be used to rotate between the linearized subsystems. The main contribution of this work is to enable multi-objective tracking for complex non-linear coordinated brake systems <italic>via</italic> a distributed sub-MPC architecture. An off-line explicit MPC technique will also be adopted to solve the QP problem as a way to decrease the computing burden. As the master controller, this suggested technique can then be further applied to regeneration and dead zone control.</p>
<p>The rest of this paper is organized as follows: <xref ref-type="sec" rid="s2">Section&#xa0;2</xref> presents the model of the electro-hydraulic system and formulates the problems that can arise. In <xref ref-type="sec" rid="s3">Section&#xa0;3</xref>, there is a discussion of the linearization strategy for the non-linear system, and the explicit MPC is developed. In <xref ref-type="sec" rid="s4">Section&#xa0;4</xref>, the effectiveness of the method is demonstrated by the simulation results in contrast to the single MPC. And finally, <xref ref-type="sec" rid="s5">Section&#xa0;5</xref>, the conclusion, provides a summary of the results.</p>
</sec>
<sec id="s2">
<title>2 Modelling</title>
<p>The electro-hydraulic system with servo valves provided by ABS or ESC and powered by an E-Booster is the subject of this paper. Due to the symmetry of the brake circuit, one of the hydraulic circuits can be represented by the other in the H-type architecture. With unnecessary hydraulic components removed, the remaining simplified system contains a E-Booster, a tandem master cylinder (TMC) and two hydraulic circuits, which is depicted in <xref ref-type="fig" rid="F1">Figure&#xa0;1</xref>.</p>
<fig id="F1" position="float">
<label>FIGURE 1</label>
<caption>
<p>Simplified schematic diagram of the electro-hydraulic system.</p>
</caption>
<graphic xlink:href="frobt-10-1078253-g001.tif"/>
</fig>
<p>The hydraulic circuit is shaped like an H. <xref ref-type="fig" rid="F1">Figure&#xa0;1</xref> illustrates the simplified arrangement. Each circuit is composed of an outlet valve, an inlet valve, a wheel cylinder, and a low-pressure accumulator. In <xref ref-type="fig" rid="F1">Figure&#xa0;1</xref>, <italic>F</italic> indicates the force applied to the reaction disk. Its subscripts indicate the source of the forces, whether it comes from the motor or the driver. <italic>x</italic>
<sub>
<italic>p</italic>
</sub> is the master cylinder piston displacement. <italic>q</italic> indicates the valve flow rate, and its subscripts are used to display whether it is an outlet valve or an inlet valve. The direction of the arrow next to these symbols indicates the direction where the value is positive.</p>
<sec id="s2-1">
<title>2.1 The mechanical submodel</title>
<p>The resultant force is obtained by coupling the input and the servo forces. Both forces act on the rubber-material reaction disk, the deformation of which influences the component forces&#x2019; interaction (shown in <xref ref-type="fig" rid="F2">Figure&#xa0;2</xref>).</p>
<fig id="F2" position="float">
<label>FIGURE 2</label>
<caption>
<p>The diagram of the reaction disk.</p>
</caption>
<graphic xlink:href="frobt-10-1078253-g002.tif"/>
</fig>
<p>The relationship between the input and servo forces can be written by the following equation<disp-formula id="e1">
<mml:math id="m1">
<mml:msub>
<mml:mrow>
<mml:mi>A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>F</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">servo</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>F</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">Rd</mml:mi>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>F</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x2212;</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:mfenced open="(" close=")">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>F</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>F</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">Rd</mml:mi>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>F</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>0</mml:mn>
</mml:math>
<label>(1)</label>
</disp-formula>where <italic>A</italic>
<sub>1</sub>, <italic>A</italic>
<sub>2</sub> are the cross-sectional area of the reaction disk&#x2019;s center circle and outer ring. <italic>F</italic>
<sub>
<italic>servo</italic>
</sub> is the servo force provided by the motor. <italic>F</italic>
<sub>
<italic>in</italic>
</sub> is the force applied to the input rod by the driver. <italic>F</italic>
<sub>
<italic>Rd</italic>1</sub>, <italic>F</italic>
<sub>
<italic>Rd</italic>2</sub> are the internal forces generated by the reaction disk&#x2019;s deformation. <italic>F</italic>
<sub>
<italic>k</italic>1</sub>, <italic>F</italic>
<sub>
<italic>k</italic>2</sub> are the spring force with the spring stiffness of <italic>k</italic>
<sub>
<italic>pre</italic>
</sub>. <italic>s</italic>
<sub>1</sub>, <italic>s</italic>
<sub>2</sub>, <italic>s</italic> are the displacement of the center-circle surface, the concentric surface, and the other side of the reaction disk as shown in <xref ref-type="fig" rid="F2">Figure&#xa0;2</xref>. &#x394; is the subtraction result between <italic>s</italic>
<sub>1</sub> and <italic>s</italic>
<sub>2</sub> (&#x394; &#x3d; <italic>s</italic>
<sub>1</sub>&#x2212;<italic>s</italic>
<sub>2</sub>).</p>
<p>The dynamic equation of TMC&#x2019;s first piston can be written as<disp-formula id="e2">
<mml:math id="m2">
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mo>&#xA8;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>p</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>m</mml:mi>
</mml:mrow>
</mml:mfrac>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>F</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">servo</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>F</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>m</mml:mi>
<mml:mi>c</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>p</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>C</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mo>&#x307;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>p</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>m</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi>A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>m</mml:mi>
<mml:mi>c</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:math>
<label>(2)</label>
</disp-formula>where <italic>x</italic>
<sub>
<italic>p</italic>
</sub> is the displacement of piston and is equal to the above-mentioned <italic>s</italic>.&#xa0;<italic>m</italic> is the piston&#x2019;s mass; <italic>k</italic>
<sub>
<italic>mc</italic>
</sub> is the equivalent stiffness including the return spring and the tandem springs in TMC chambers. <italic>C</italic> is the coefficient of friction force. <italic>p</italic>
<sub>
<italic>m</italic>
</sub> is the master cylinder pressure. <italic>A</italic>
<sub>
<italic>mc</italic>
</sub> is the TMC cross-sectional area.</p>
</sec>
<sec id="s2-2">
<title>2.2 The hydraulic submodel</title>
<p>With the inlet valve as the border, a simplified hydraulic circuit can be divided into two chambers (shown in <xref ref-type="fig" rid="F1">Figure&#xa0;1</xref>). The first chamber indicates the closed volume from the TMC to the inlet valve, while the second chamber represents the wheel cylinder. The principle of equal-flow exchange exists between the chambers. The inlet and outlet valves are the actuators for regulating the flow. The inlet valves model can be expressed by<disp-formula id="e3">
<mml:math id="m3">
<mml:msub>
<mml:mrow>
<mml:mi>q</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>v</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mfenced open="{" close="">
<mml:mrow>
<mml:mtable class="array">
<mml:mtr>
<mml:mtd columnalign="center">
<mml:msub>
<mml:mrow>
<mml:mi>C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>q</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3bb;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>v</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi>A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>v</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msqrt>
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>&#x3c1;</mml:mi>
</mml:mrow>
</mml:mfrac>
<mml:mfenced open="&#x7c;" close="&#x7c;">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>m</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>w</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msqrt>
</mml:mtd>
<mml:mtd columnalign="center">
<mml:mi>i</mml:mi>
<mml:mi>f</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>m</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>w</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x3e;</mml:mo>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">crack</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd columnalign="center">
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>q</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3bb;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>v</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>v</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>c</mml:mi>
<mml:mi>v</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
<mml:msqrt>
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>&#x3c1;</mml:mi>
</mml:mrow>
</mml:mfrac>
<mml:mfenced open="&#x7c;" close="&#x7c;">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>m</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>w</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msqrt>
</mml:mtd>
<mml:mtd columnalign="center">
<mml:mi>i</mml:mi>
<mml:mi>f</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>m</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>w</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x2264;</mml:mo>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">crack</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:math>
<label>(3)</label>
</disp-formula>where <italic>q</italic>
<sub>
<italic>iv</italic>
</sub> is the flow rate passing the inlet valve and the direction from TMC to wheel cylinder is positive. <italic>C</italic>
<sub>
<italic>q</italic>
</sub> is the flow discharge coefficient. <italic>&#x3bb;</italic>
<sub>
<italic>iv</italic>
</sub> is the orifice opening with a range from 0 to 1. <italic>A</italic>
<sub>
<italic>iv</italic>
</sub>, <italic>A</italic>
<sub>
<italic>cv</italic>
</sub> is the orifice passage area of the inlet and check valve. <italic>&#x3c1;</italic> is the brake fluid density. <italic>p</italic>
<sub>
<italic>w</italic>
</sub> is the wheel cylinder pressure. <italic>p</italic>
<sub>
<italic>crack</italic>
</sub> is the cracking pressure of the check valve. And the outlet valve is modelled by<disp-formula id="e4">
<mml:math id="m4">
<mml:msub>
<mml:mrow>
<mml:mi>q</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>o</mml:mi>
<mml:mi>v</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>q</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3bb;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>o</mml:mi>
<mml:mi>v</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi>A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>o</mml:mi>
<mml:mi>v</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msqrt>
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>&#x3c1;</mml:mi>
</mml:mrow>
</mml:mfrac>
<mml:msub>
<mml:mrow>
<mml:mi>p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>w</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msqrt>
</mml:math>
<label>(4)</label>
</disp-formula>where <italic>q</italic>
<sub>
<italic>ov</italic>
</sub> is the flow rate passing the outlet valve; <italic>&#x3bb;</italic>
<sub>
<italic>ov</italic>
</sub> is the orifice opening of the outlet valve with the value from 0 or 1. <italic>A</italic>
<sub>
<italic>ov</italic>
</sub> is the orifice area of the outlet valve.</p>
<p>The hydraulic model of TMC can be constructed based on the inlet valve&#x2019;s flow rate. Its mathematical expression is as follows:<disp-formula id="e5">
<mml:math id="m5">
<mml:mfenced open="{" close="">
<mml:mrow>
<mml:mtable class="aligned">
<mml:mtr>
<mml:mtd columnalign="right">
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>p</mml:mi>
</mml:mrow>
<mml:mo>&#x307;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>m</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mtd>
<mml:mtd columnalign="left">
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>E</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>m</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>V</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>m</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>m</mml:mi>
<mml:mi>c</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>p</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfrac>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>m</mml:mi>
<mml:mi>c</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mo>&#x307;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>p</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>q</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>v</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd columnalign="right">
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>p</mml:mi>
</mml:mrow>
<mml:mo>&#x307;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>w</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mtd>
<mml:mtd columnalign="left">
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>E</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>w</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>V</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>w</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfrac>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>q</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>v</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>q</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>o</mml:mi>
<mml:mi>v</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:math>
<label>(5)</label>
</disp-formula>where <italic>V</italic>
<sub>
<italic>m</italic>
</sub>, <italic>V</italic>
<sub>
<italic>w</italic>
</sub> are the dead volume of the first and second chambers. <italic>E</italic>
<sub>
<italic>m</italic>
</sub> is the brake fluid bulk modulus. <italic>E</italic>
<sub>
<italic>w</italic>
</sub> is the equivalent bulk modulus of the wheel cylinder.</p>
<p>To facilitate the controller design, the mathematical model mentioned in this section discards some non-linear characteristics, including the following: i) the non-linear curve is replaced by a proportional straight line in the quasi-static increasing process; ii) there is a dead zone before the pressure is built, i.e., the stroke of master cylinder increases, but the pressure remains 0; iii) there is a hysteresis characteristic of the hydraulic system, i.e., the pressure of the piston in the same position on the forward stroke is greater than the pressure on the return stroke. As for the first item, as long as the linearization of the equiproportional ratio is applied appropriately, the effect on the actual control is relatively small. Meanwhile, the design of the pressure dead zone is mentioned later. Concerning the hydraulic hysteresis characteristics, the system stiffness in the return stroke is less than the forward stroke, which may cause the system to converge slowly in the return process.</p>
</sec>
<sec id="s2-3">
<title>2.3 Problem formulation</title>
<p>H-shaped vehicles are more convenient for single-axle braking force control than X-shaped vehicles. The front-drive and rear-drive principles are the same for vehicles with single-axle independent control. In this paper, the front-wheel-drive (FWD) is considered as a research case, and its results can be extrapolated to single-axle-drive vehicles.</p>
<p>Hence, define the state variables <inline-formula id="inf1">
<mml:math id="m6">
<mml:mi>x</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mfenced open="[" close="]">
<mml:mrow>
<mml:mtable class="matrix">
<mml:mtr>
<mml:mtd columnalign="center">
<mml:msub>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>p</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mspace width="-0.5em"/>
</mml:mtd>
<mml:mtd columnalign="center">
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mo>&#x307;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>p</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mspace width="-0.5em"/>
</mml:mtd>
<mml:mtd columnalign="center">
<mml:msub>
<mml:mrow>
<mml:mi>F</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mspace width="-0.5em"/>
</mml:mtd>
<mml:mtd columnalign="center">
<mml:msub>
<mml:mrow>
<mml:mi>p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>m</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mspace width="-0.5em"/>
</mml:mtd>
<mml:mtd columnalign="center">
<mml:mtable class="matrix">
<mml:mtr>
<mml:mtd columnalign="center">
<mml:msub>
<mml:mrow>
<mml:mi>p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>w</mml:mi>
<mml:mi>f</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mtd>
<mml:mtd columnalign="center">
<mml:msub>
<mml:mrow>
<mml:mi>p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>w</mml:mi>
<mml:mi>r</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
</mml:msup>
</mml:math>
</inline-formula> and the input vector <inline-formula id="inf2">
<mml:math id="m7">
<mml:mi>u</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mfenced open="[" close="]">
<mml:mrow>
<mml:mtable class="matrix">
<mml:mtr>
<mml:mtd columnalign="center">
<mml:msub>
<mml:mrow>
<mml:mi>F</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">servo</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mtd>
<mml:mtd columnalign="center">
<mml:mtable class="matrix">
<mml:mtr>
<mml:mtd columnalign="center">
<mml:msub>
<mml:mrow>
<mml:mi>q</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">iv</mml:mi>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mtd>
<mml:mtd columnalign="center">
<mml:msub>
<mml:mrow>
<mml:mi>q</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ov</mml:mi>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mtd>
<mml:mtd columnalign="center">
<mml:mtable class="matrix">
<mml:mtr>
<mml:mtd columnalign="center">
<mml:msub>
<mml:mrow>
<mml:mi>q</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">iv</mml:mi>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mtd>
<mml:mtd columnalign="center">
<mml:msub>
<mml:mrow>
<mml:mi>q</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ov</mml:mi>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
</mml:msup>
</mml:math>
</inline-formula>, the entire state space can be given by<disp-formula id="e6">
<mml:math id="m8">
<mml:mfenced open="{" close="">
<mml:mrow>
<mml:mtable class="aligned">
<mml:mtr>
<mml:mtd columnalign="right">
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mo>&#x307;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mtd>
<mml:mtd columnalign="left">
<mml:mo>&#x3d;</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:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd columnalign="right">
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mo>&#x307;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mtd>
<mml:mtd columnalign="left">
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>m</mml:mi>
</mml:mrow>
</mml:mfrac>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>m</mml:mi>
<mml:mi>c</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>C</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>m</mml:mi>
<mml:mi>c</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>4</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd columnalign="right">
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mo>&#x307;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mtd>
<mml:mtd columnalign="left">
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>g</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>I</mml:mi>
</mml:mrow>
</mml:msub>
<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:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd columnalign="right">
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mo>&#x307;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mn>4</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mtd>
<mml:mtd columnalign="left">
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>E</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>m</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>V</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>m</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>m</mml:mi>
<mml:mi>c</mml:mi>
</mml:mrow>
</mml:msub>
<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:mfrac>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>m</mml:mi>
<mml:mi>c</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>q</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">iv</mml:mi>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>q</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">iv</mml:mi>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd columnalign="right">
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mo>&#x307;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mn>5</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mtd>
<mml:mtd columnalign="left">
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>E</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>w</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>V</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>w</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfrac>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>q</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">iv</mml:mi>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>q</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ov</mml:mi>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd columnalign="right">
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mo>&#x307;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mn>6</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mtd>
<mml:mtd columnalign="left">
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>E</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>w</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>V</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>w</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfrac>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>q</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">iv</mml:mi>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>q</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ov</mml:mi>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:math>
<label>(6)</label>
</disp-formula>where <italic>g</italic>
<sub>
<italic>I</italic>
</sub> represents the mapping from <italic>x</italic>
<sub>1</sub>, <italic>x</italic>
<sub>2</sub> and <italic>u</italic>
<sub>1</sub> to <italic>x</italic>
<sub>3</sub>, which is determined by the state of the reaction disk. <italic>p</italic>
<sub>
<italic>wf</italic>
</sub> and <italic>p</italic>
<sub>
<italic>wr</italic>
</sub> are the front and rear wheel cylinder pressure. <italic>q</italic>
<sub>
<italic>in</italic>1</sub> and <italic>q</italic>
<sub>
<italic>ov</italic>1</sub> are front inlet and outlet valve flow. <italic>q</italic>
<sub>
<italic>in</italic>2</sub> and <italic>q</italic>
<sub>
<italic>ov</italic>2</sub> are front inlet and outlet valve flow. the signs of flow variables are positive when the flow directions come from the TMC to wheel cylinders.</p>
<p>The pressure in the TMC and wheel cylinder are decoupled during regenerative braking, thus the pedal feel is not always consistent with normal braking. The relationship between piston displacement <italic>x</italic>
<sub>
<italic>p</italic>
</sub> and the driver&#x2019;s input force <italic>F</italic>
<sub>
<italic>in</italic>
</sub> is used to define the pedal feel in this study.</p>
<p>A MPC is developed to realize the precise regulation of both <italic>x</italic>
<sub>
<italic>p</italic>
</sub> and <italic>p</italic>
<sub>
<italic>w</italic>
</sub>, which indicates the decoupling of pedal feel and the wheel cylinder pressure. Another goal of the controller is to maintain brake-feel consistency during regenerative braking.</p>
</sec>
</sec>
<sec id="s3">
<title>3 Controller design</title>
<sec id="s3-1">
<title>3.1 Non-linear model linearization</title>
<p>The non-linear model needs to be transformed into a local linear time-invariant (LTI) model by linearization and local simplification as the foundation of MPC design. Under ideal circumstances, the input force <italic>F</italic>
<sub>
<italic>in</italic>
</sub> is proportional to the piston displacement <italic>x</italic>
<sub>
<italic>p</italic>
</sub>. To ensure consistency of the pedal feel <italic>x</italic>
<sub>3</sub> can be written as follows:<disp-formula id="e7">
<mml:math id="m9">
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mo>&#x307;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2248;</mml:mo>
<mml:mi>&#x3c3;</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mo>&#x307;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
</mml:math>
<label>(7)</label>
</disp-formula>where <italic>&#x3c3;</italic> is the ideal pedal-feel coefficient between the displacement and input force.</p>
<p>When 7) is introduced into 6), by calculating the Jacobian matrix at the nominal point, the non-linear system can be converted to a linear system as follows:<disp-formula id="e8">
<mml:math id="m10">
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mo>&#x307;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>f</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</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>0</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mfenced open="" close="&#x7c;">
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:mi>&#x2202;</mml:mi>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>&#x2202;</mml:mi>
<mml:mi>x</mml:mi>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</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>0</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msub>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mfenced open="" close="&#x7c;">
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:mi>&#x2202;</mml:mi>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>&#x2202;</mml:mi>
<mml:mi>x</mml:mi>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</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>0</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msub>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>u</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:math>
<label>(8)</label>
</disp-formula>
</p>
<p>As shown in <xref ref-type="fig" rid="F3">Figure&#xa0;3</xref>, the hydraulic system is divided into three work modes during the regenerative braking process: fully hydraulic braking (FHB), distributed electro-hydraulic braking (DEHB), and coordinated electro-hydraulic braking (CEHB). The hydraulic system operates normally in FHB mode, with solenoid valves deactivated. The vehicle&#x2019;s braking forces are all provided by the clamping force of the braking disc. When the motor&#x2019;s regenerative braking is sufficient to meet the braking requirements of the driving wheels, the operating mode is switched to DEHB. The flow of the front wheels <italic>q</italic>
<sub>
<italic>iv1</italic>
</sub> is limited to zero, and the rear outlet valve is used to regulate the rear wheel cylinder pressure. Similarly, in the CEHB mode, the continuously adjustable <italic>q</italic>
<sub>
<italic>iv1</italic>
</sub> determines the front wheel cylinder pressure, allowing for blending braking of the driving wheels. It should be noted that the volume of a low-pressure accumulator is large enough that its internal pressure is almost zero.</p>
<fig id="F3" position="float">
<label>FIGURE 3</label>
<caption>
<p>The simplified diagram of hydraulic work modes.</p>
</caption>
<graphic xlink:href="frobt-10-1078253-g003.tif"/>
</fig>
<p>The whole LTV plant is classified into three LTI sub-models in terms of control patterns. The state transition matrix set is solved by Eq.&#xa0;<xref ref-type="disp-formula" rid="e8">8</xref> as <inline-formula id="inf3">
<mml:math id="m11">
<mml:mfenced open="{" close="}">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>B</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x2286;</mml:mo>
<mml:mfenced open="{" close="}">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>B</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mfenced open="&#x7c;" close="">
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mo>&#x2208;</mml:mo>
<mml:mfenced open="{" close="}">
<mml:mrow>
<mml:mn>1,2,3</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mfenced>
</mml:math>
</inline-formula>, corresponding to FHB, DEHB, and CEHB in turn. The state at time <italic>k</italic> is manipulated by a state machine as shown in <xref ref-type="fig" rid="F4">Figure&#xa0;4</xref>.</p>
<fig id="F4" position="float">
<label>FIGURE 4</label>
<caption>
<p>State machine for the control mode.</p>
</caption>
<graphic xlink:href="frobt-10-1078253-g004.tif"/>
</fig>
<p>
<xref ref-type="fig" rid="F5">Figure&#xa0;5</xref> illustrates a comparison of the linearized and original models. The relationship between <italic>x</italic>
<sub>
<italic>p</italic>
</sub> and <italic>F</italic>
<sub>
<italic>servo</italic>
</sub> has changed while <italic>q</italic>
<sub>
<italic>iv</italic>
</sub> is set to 0. The amplitude-frequency curve is moved down, and the phase frequency is also changed. Both linearized sub-models are capable of fitting actual curves.</p>
<fig id="F5" position="float">
<label>FIGURE 5</label>
<caption>
<p>The Bode figure of TMC pressure vs. input force.</p>
</caption>
<graphic xlink:href="frobt-10-1078253-g005.tif"/>
</fig>
</sec>
<sec id="s3-2">
<title>3.2 Switchable MPC design</title>
<p>The MPC controller is introduced to solve the non-linear problem. It&#x2019;s a method for online optimization with a finite horizon. This is a multi-objective, multi-constraint optimization problem. MPC contains three features: model-based prediction, moving horizon optimization, and a framework that includes both feedforward and feedback. The non-linear electro-hydraulic model is simplified into the piecewise linear model in the previous section.</p>
<p>The controller&#x2019;s objective is to implement multiple target tracking. The placement of MPC in the controller structure is shown in <xref ref-type="fig" rid="F6">Figure&#xa0;6</xref>. MPC receives the tacking reference from the upper-layer controllers, and then it&#x2019;s the lower-layer actuators (EBooster and ESC) that conduct the commands from MPC. The control instructions are the increment signal to restrain the static error. The optimal objectives not only include the output references but also the input increments and input references. The increments decide whether MPC is conservative or aggressive. The input references can avoid the windup effect caused by the saturation of input and output.</p>
<fig id="F6" position="float">
<label>FIGURE 6</label>
<caption>
<p>The framework of the MPC.</p>
</caption>
<graphic xlink:href="frobt-10-1078253-g006.tif"/>
</fig>
<p>The optimal constrained MPC problem can be formulated as follows:<disp-formula id="e9">
<mml:math id="m12">
<mml:mtable class="array">
<mml:mtr>
<mml:mtd columnalign="left">
<mml:munder>
<mml:mrow>
<mml:mi mathvariant="normal">min</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>z</mml:mi>
</mml:mrow>
</mml:munder>
</mml:mtd>
<mml:mtd columnalign="left">
<mml:mtable class="array">
<mml:mtr>
<mml:mtd columnalign="left">
<mml:munderover accentunder="false" accent="true">
<mml:mrow>
<mml:mo>&#x2211;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>N</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:munderover>
<mml:msubsup>
<mml:mrow>
<mml:mfenced open="&#x2016;" close="&#x2016;">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>W</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>y</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>y</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>t</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo stretchy="false">&#x7c;</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ref</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msubsup>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd columnalign="left">
<mml:mspace width="1em"/>
<mml:mo>&#x2b;</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mfenced open="&#x2016;" close="&#x2016;">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>W</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">&#x394;</mml:mi>
<mml:mi>u</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mi mathvariant="normal">&#x394;</mml:mi>
<mml:mi>u</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msubsup>
<mml:mo>&#x2b;</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mfenced open="&#x2016;" close="&#x2016;">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>W</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>u</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>u</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>t</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo stretchy="false">&#x7c;</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ref</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msubsup>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd columnalign="left">
<mml:mi>s</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo>.</mml:mo>
</mml:mtd>
<mml:mtd columnalign="left">
<mml:mfenced open="{" close="">
<mml:mrow>
<mml:mtable class="array">
<mml:mtr>
<mml:mtd columnalign="left">
<mml:mi>x</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>t</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mi>x</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>B</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mi>u</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd columnalign="left">
<mml:mi>y</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mi>x</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
<mml:mi>j</mml:mi>
<mml:mo>&#x2208;</mml:mo>
<mml:mfenced open="{" close="}">
<mml:mrow>
<mml:mn>1,2,3</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd columnalign="left"/>
<mml:mtd columnalign="left">
<mml:mi mathvariant="normal">&#x394;</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi>u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">min</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2264;</mml:mo>
<mml:mi mathvariant="normal">&#x394;</mml:mi>
<mml:mi>u</mml:mi>
<mml:mo>&#x2264;</mml:mo>
<mml:mi mathvariant="normal">&#x394;</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi>u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">max</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd columnalign="left"/>
<mml:mtd columnalign="left">
<mml:mi mathvariant="normal">&#x394;</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi>u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo>,</mml:mo>
<mml:mspace width=".17em"/>
<mml:mi>k</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>N</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>u</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:mo>&#x2026;</mml:mo>
<mml:mo>,</mml:mo>
<mml:mi>N</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd columnalign="left"/>
<mml:mtd columnalign="left">
<mml:msub>
<mml:mrow>
<mml:mi>u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">min</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2264;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2264;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">max</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:mspace width="1em"/>
<mml:mi>k</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo>,</mml:mo>
<mml:mo>&#x2026;</mml:mo>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>N</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>u</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd columnalign="left"/>
<mml:mtd columnalign="left">
<mml:msub>
<mml:mrow>
<mml:mi>y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">min</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2264;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2264;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">max</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:mspace width="1em"/>
<mml:mi>k</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>,</mml:mo>
<mml:mo>&#x2026;</mml:mo>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>N</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>c</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:math>
<label>(9)</label>
</disp-formula>where <italic>W</italic>
<sub>
<italic>y</italic>
</sub>, <italic>W</italic>
<sub>&#x394;<italic>u</italic>
</sub>, <italic>W</italic>
<sub>
<italic>u</italic>
</sub> are the diagonal tunning weight matrices for output signals and input increments. <italic>N</italic>, <italic>N</italic>
<sub>
<italic>u</italic>
</sub>, <italic>N</italic>
<sub>
<italic>c</italic>
</sub> are the prediction horizon, the input horizon, and the constraints horizon, respectively.</p>
<p>According to the regenerative operating condition and control logic, a finite state machine is proposed to execute the state jump between the modes. The solution of MPC is presented in the single state where the state space can be regarded as the LTI in this following section.</p>
<p>Define <inline-formula id="inf4">
<mml:math id="m13">
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mo>&#x304;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mfenced open="[" close="]">
<mml:mrow>
<mml:mtable class="matrix">
<mml:mtr>
<mml:mtd columnalign="center">
<mml:msup>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mtd>
<mml:mtd columnalign="center">
<mml:msub>
<mml:mrow>
<mml:mi>y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ref</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msup>
<mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mtd>
<mml:mtd columnalign="center">
<mml:mi>u</mml:mi>
<mml:msup>
<mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>t</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:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mtd>
<mml:mtd columnalign="center">
<mml:msub>
<mml:mrow>
<mml:mi>u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ref</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msup>
<mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
</mml:msup>
</mml:math>
</inline-formula> and <inline-formula id="inf5">
<mml:math id="m14">
<mml:mi>z</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mfenced open="[" close="]">
<mml:mrow>
<mml:mtable class="matrix">
<mml:mtr>
<mml:mtd columnalign="center">
<mml:mi mathvariant="normal">&#x394;</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi>u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mtd>
<mml:mtd columnalign="center">
<mml:mo>&#x22ef;</mml:mo>
</mml:mtd>
<mml:mtd columnalign="center">
<mml:mi mathvariant="normal">&#x394;</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi>u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>N</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
</mml:msup>
</mml:math>
</inline-formula>, the input sequence can be expressed by the input increment<disp-formula id="e10">
<mml:math id="m15">
<mml:mfenced open="[" close="]">
<mml:mrow>
<mml:mtable class="matrix">
<mml:mtr>
<mml:mtd columnalign="center">
<mml:msub>
<mml:mrow>
<mml:mi>u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<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>u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>N</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x3d;</mml:mo>
<mml:mfenced open="[" close="]">
<mml:mrow>
<mml:mtable class="matrix">
<mml:mtr>
<mml:mtd columnalign="center">
<mml:msup>
<mml:mrow>
<mml:mi>I</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>u</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mtd>
<mml:mtd columnalign="center"/>
<mml:mtd columnalign="center"/>
</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:mtr>
<mml:mtr>
<mml:mtd columnalign="center">
<mml:msup>
<mml:mrow>
<mml:mi>I</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>u</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mtd>
<mml:mtd columnalign="center">
<mml:mo>&#x22ef;</mml:mo>
</mml:mtd>
<mml:mtd columnalign="center">
<mml:msup>
<mml:mrow>
<mml:mi>I</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>u</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
<mml:mi>z</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mfenced open="[" close="]">
<mml:mrow>
<mml:mtable class="matrix">
<mml:mtr>
<mml:mtd columnalign="center">
<mml:msup>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>&#xd7;</mml:mo>
<mml:mi>x</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mtd>
<mml:mtd columnalign="center">
<mml:msup>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>&#xd7;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ref</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msup>
</mml:mtd>
<mml:mtd columnalign="center">
<mml:msup>
<mml:mrow>
<mml:mi>I</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>&#xd7;</mml:mo>
<mml:mi>u</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mtd>
<mml:mtd columnalign="center">
<mml:msup>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>&#xd7;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ref</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msup>
</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>&#x22ee;</mml:mo>
</mml:mtd>
<mml:mtd columnalign="center">
<mml:mo>&#x22ee;</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd columnalign="center">
<mml:msup>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>&#xd7;</mml:mo>
<mml:mi>x</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mtd>
<mml:mtd columnalign="center">
<mml:msup>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>&#xd7;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ref</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msup>
</mml:mtd>
<mml:mtd columnalign="center">
<mml:msup>
<mml:mrow>
<mml:mi>I</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>&#xd7;</mml:mo>
<mml:mi>u</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mtd>
<mml:mtd columnalign="center">
<mml:msup>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>&#xd7;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ref</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msup>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mo>&#x304;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
</mml:math>
<label>(10)</label>
</disp-formula>where the superscript denotes the dimension.</p>
<p>The output can be predicted by the state-space model as follows<disp-formula id="e11">
<mml:math id="m16">
<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:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd columnalign="center">
<mml:msub>
<mml:mrow>
<mml:mi>y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<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>y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>N</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x3d;</mml:mo>
<mml:mfenced open="[" close="]">
<mml:mrow>
<mml:mtable class="matrix">
<mml:mtr>
<mml:mtd columnalign="center">
<mml:mi>C</mml:mi>
</mml:mtd>
<mml:mtd columnalign="center"/>
<mml:mtd columnalign="center"/>
<mml:mtd columnalign="center"/>
</mml:mtr>
<mml:mtr>
<mml:mtd columnalign="center">
<mml:mi>C</mml:mi>
<mml:mi>A</mml:mi>
<mml:mi>B</mml:mi>
</mml:mtd>
<mml:mtd columnalign="center">
<mml:mi>C</mml:mi>
</mml:mtd>
<mml:mtd columnalign="center"/>
</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:mtr>
<mml:mtr>
<mml:mtd columnalign="center">
<mml:mi>C</mml:mi>
<mml:msup>
<mml:mrow>
<mml:mi>A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>N</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mi>B</mml:mi>
</mml:mtd>
<mml:mtd columnalign="center">
<mml:mi>C</mml:mi>
<mml:msup>
<mml:mrow>
<mml:mi>A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>N</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mi>B</mml:mi>
</mml:mtd>
<mml:mtd columnalign="center">
<mml:mo>&#x22ef;</mml:mo>
</mml:mtd>
<mml:mtd columnalign="center">
<mml:mi>C</mml:mi>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
<mml:mfenced open="[" close="]">
<mml:mrow>
<mml:mtable class="matrix">
<mml:mtr>
<mml:mtd columnalign="center">
<mml:msub>
<mml:mrow>
<mml:mi>u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd columnalign="center">
<mml:msub>
<mml:mrow>
<mml:mi>u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<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>u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>N</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x2b;</mml:mo>
<mml:mfenced open="[" close="]">
<mml:mrow>
<mml:mtable class="matrix">
<mml:mtr>
<mml:mtd columnalign="center">
<mml:mi>C</mml:mi>
<mml:mi>A</mml:mi>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd columnalign="center">
<mml:mi>C</mml:mi>
<mml:mi>A</mml:mi>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd columnalign="center">
<mml:mo>&#x22ee;</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd columnalign="center">
<mml:mi>C</mml:mi>
<mml:msup>
<mml:mrow>
<mml:mi>A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>N</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
<mml:msub>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
</mml:math>
<label>(11)</label>
</disp-formula>
</p>
<p>Then the simplification equations are obtained<disp-formula id="e12">
<mml:math id="m17">
<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:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ref</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<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>y</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>y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ref</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="normal">&#x3a6;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mi>z</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="normal">&#x393;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mo>&#x304;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:mfenced open="[" close="]">
<mml:mrow>
<mml:mtable class="matrix">
<mml:mtr>
<mml:mtd columnalign="center">
<mml:msub>
<mml:mrow>
<mml:mi>u</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>u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ref</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<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>u</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>u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ref</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="normal">&#x3a6;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mi>z</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="normal">&#x393;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mo>&#x304;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
</mml:math>
<label>(12)</label>
</disp-formula>where &#x3a6;<sub>1</sub>, &#x3a6;<sub>2</sub>, &#x393;<sub>1</sub>, &#x393;<sub>2</sub> are the constant matrices related to Eq.&#xa0;<xref ref-type="disp-formula" rid="e10">10</xref> and Eq.&#xa0;<xref ref-type="disp-formula" rid="e11">(11)</xref>.</p>
<p>The weight matrices can be written by the weight vector<disp-formula id="e13a">
<mml:math id="m18">
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>Q</mml:mi>
</mml:mrow>
<mml:mo>&#x304;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>y</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>b</mml:mi>
<mml:mi>l</mml:mi>
<mml:mi>k</mml:mi>
<mml:mi>d</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>a</mml:mi>
<mml:mi>g</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:munder>
<mml:mrow>
<mml:munder accentunder="false">
<mml:mrow>
<mml:mtable class="array">
<mml:mtr>
<mml:mtd columnalign="center">
<mml:msup>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>W</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>y</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
</mml:msup>
<mml:msub>
<mml:mrow>
<mml:mi>W</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>y</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mtd>
<mml:mtd columnalign="center">
<mml:mo>&#x22ef;</mml:mo>
</mml:mtd>
<mml:mtd columnalign="center">
<mml:msup>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>W</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>y</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
</mml:msup>
<mml:msub>
<mml:mrow>
<mml:mi>W</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>y</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
<mml:mo>&#x23df;</mml:mo>
</mml:munder>
</mml:mrow>
<mml:mrow>
<mml:mi>N</mml:mi>
</mml:mrow>
</mml:munder>
</mml:mrow>
</mml:mfenced>
</mml:math>
<label>(13a)</label>
</disp-formula>
<disp-formula id="e13b">
<mml:math id="m19">
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>Q</mml:mi>
</mml:mrow>
<mml:mo>&#x304;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">&#x394;</mml:mi>
<mml:mi>u</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>b</mml:mi>
<mml:mi>l</mml:mi>
<mml:mi>k</mml:mi>
<mml:mi>d</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>a</mml:mi>
<mml:mi>g</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:munder>
<mml:mrow>
<mml:munder accentunder="false">
<mml:mrow>
<mml:mtable class="array">
<mml:mtr>
<mml:mtd columnalign="center">
<mml:msup>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>W</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">&#x394;</mml:mi>
<mml:mi>u</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
</mml:msup>
<mml:msub>
<mml:mrow>
<mml:mi>W</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">&#x394;</mml:mi>
<mml:mi>u</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mtd>
<mml:mtd columnalign="center">
<mml:mo>&#x22ef;</mml:mo>
</mml:mtd>
<mml:mtd columnalign="center">
<mml:msup>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>W</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">&#x394;</mml:mi>
<mml:mi>u</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
</mml:msup>
<mml:msub>
<mml:mrow>
<mml:mi>W</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">&#x394;</mml:mi>
<mml:mi>u</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
<mml:mo>&#x23df;</mml:mo>
</mml:munder>
</mml:mrow>
<mml:mrow>
<mml:mi>N</mml:mi>
</mml:mrow>
</mml:munder>
</mml:mrow>
</mml:mfenced>
</mml:math>
<label>(13b)</label>
</disp-formula>
<disp-formula id="e13c">
<mml:math id="m20">
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>Q</mml:mi>
</mml:mrow>
<mml:mo>&#x304;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>u</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>b</mml:mi>
<mml:mi>l</mml:mi>
<mml:mi>k</mml:mi>
<mml:mi>d</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>a</mml:mi>
<mml:mi>g</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:munder>
<mml:mrow>
<mml:munder accentunder="false">
<mml:mrow>
<mml:mtable class="array">
<mml:mtr>
<mml:mtd columnalign="center">
<mml:msup>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>W</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>u</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
</mml:msup>
<mml:msub>
<mml:mrow>
<mml:mi>W</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>u</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mtd>
<mml:mtd columnalign="center">
<mml:mo>&#x22ef;</mml:mo>
</mml:mtd>
<mml:mtd columnalign="center">
<mml:msup>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>W</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>u</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
</mml:msup>
<mml:msub>
<mml:mrow>
<mml:mi>W</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>u</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
<mml:mo>&#x23df;</mml:mo>
</mml:munder>
</mml:mrow>
<mml:mrow>
<mml:mi>N</mml:mi>
</mml:mrow>
</mml:munder>
</mml:mrow>
</mml:mfenced>
</mml:math>
<label>(13c)</label>
</disp-formula>
</p>
<p>The cost function is presented by<disp-formula id="e14a">
<mml:math id="m21">
<mml:mi>J</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>z</mml:mi>
<mml:mo>,</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mo>&#x304;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:mfrac>
<mml:msup>
<mml:mrow>
<mml:mi>z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mi>H</mml:mi>
<mml:mi>z</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mo>&#x304;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
</mml:msup>
<mml:msup>
<mml:mrow>
<mml:mi>F</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mi>z</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:mfrac>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mo>&#x304;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mi>Y</mml:mi>
<mml:mo>&#x22c5;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mo>&#x304;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
</mml:math>
<label>(14a)</label>
</disp-formula>
<disp-formula id="e14b">
<mml:math id="m22">
<mml:mi>H</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>2</mml:mn>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="normal">&#x3a6;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
</mml:msup>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>Q</mml:mi>
</mml:mrow>
<mml:mo>&#x304;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>y</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="normal">&#x3a6;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>Q</mml:mi>
</mml:mrow>
<mml:mo>&#x304;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">&#x394;</mml:mi>
<mml:mi>u</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="normal">&#x3a6;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
</mml:msup>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>Q</mml:mi>
</mml:mrow>
<mml:mo>&#x304;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>u</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="normal">&#x3a6;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:math>
<label>(14b)</label>
</disp-formula>
<disp-formula id="e14c">
<mml:math id="m23">
<mml:msup>
<mml:mrow>
<mml:mi>F</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>2</mml:mn>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="normal">&#x393;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
</mml:msup>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>Q</mml:mi>
</mml:mrow>
<mml:mo>&#x304;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>y</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="normal">&#x3a6;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="normal">&#x393;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
</mml:msup>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>Q</mml:mi>
</mml:mrow>
<mml:mo>&#x304;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>u</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="normal">&#x3a6;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:math>
<label>(14c)</label>
</disp-formula>
<disp-formula id="e14d">
<mml:math id="m24">
<mml:mi>Y</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>2</mml:mn>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="normal">&#x393;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
</mml:msup>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>Q</mml:mi>
</mml:mrow>
<mml:mo>&#x304;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>y</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="normal">&#x393;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="normal">&#x393;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
</mml:msup>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>Q</mml:mi>
</mml:mrow>
<mml:mo>&#x304;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>u</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="normal">&#x393;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:math>
<label>(14d)</label>
</disp-formula>
</p>
<p>When the constraints in Eq.&#xa0;<xref ref-type="disp-formula" rid="e9">9</xref> are transformed into the form of inequality, the standard form of QP is given by<disp-formula id="e15">
<mml:math id="m25">
<mml:mtable class="array">
<mml:mtr>
<mml:mtd columnalign="center">
<mml:munder>
<mml:mrow>
<mml:mi mathvariant="normal">min</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>z</mml:mi>
</mml:mrow>
</mml:munder>
</mml:mtd>
<mml:mtd columnalign="center">
<mml:mfrac>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:mfrac>
<mml:msup>
<mml:mrow>
<mml:mi>z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mi>H</mml:mi>
<mml:mi>z</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mo>&#x304;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi>F</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mi>z</mml:mi>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd columnalign="center">
<mml:mi>s</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo>.</mml:mo>
</mml:mtd>
<mml:mtd columnalign="center">
<mml:mi>G</mml:mi>
<mml:mi>z</mml:mi>
<mml:mo>&#x2264;</mml:mo>
<mml:mi>W</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mi>S</mml:mi>
<mml:mo>&#x22c5;</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mo>&#x304;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:math>
<label>(15)</label>
</disp-formula>
</p>
<p>This paper adopts an offline method to solve the QP. When the multi-parametric QP is from the MPC problem, the following matrix inequality is always satisfied <xref ref-type="bibr" rid="B2">Bemporad&#xa0;et&#xa0;al. (2002)</xref>.<disp-formula id="e16">
<mml:math id="m26">
<mml:mfenced open="[" close="]">
<mml:mrow>
<mml:mtable class="matrix">
<mml:mtr>
<mml:mtd columnalign="center">
<mml:mi>Y</mml:mi>
</mml:mtd>
<mml:mtd columnalign="center">
<mml:msup>
<mml:mrow>
<mml:mi>F</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd columnalign="center">
<mml:mi>F</mml:mi>
</mml:mtd>
<mml:mtd columnalign="center">
<mml:mi>H</mml:mi>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x2265;</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo>,</mml:mo>
<mml:mi>H</mml:mi>
<mml:mo>&#x3e;</mml:mo>
<mml:mn>0</mml:mn>
</mml:math>
<label>(16)</label>
</disp-formula>
</p>
<p>The optimal <italic>z</italic> is continuous and PWA linear functions of <italic>x</italic> within the critical region <xref ref-type="bibr" rid="B2">Bemporad&#xa0;et&#xa0;al. (2002)</xref>. Based on the non-negative least squares (NNLS) solver <xref ref-type="bibr" rid="B1">Bemporad (2015)</xref>, the local control law can be described by the PWA function.<disp-formula id="e17">
<mml:math id="m27">
<mml:mtable class="align">
<mml:mtr>
<mml:mtd columnalign="right">
<mml:mi mathvariant="normal">&#x394;</mml:mi>
<mml:msup>
<mml:mrow>
<mml:mi>u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2a;</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x3d;</mml:mo>
</mml:mtd>
<mml:mtd columnalign="left">
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>F</mml:mi>
</mml:mrow>
<mml:mo>&#x304;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mo>&#x304;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>G</mml:mi>
</mml:mrow>
<mml:mo>&#x304;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd columnalign="right"/>
<mml:mtd columnalign="right">
<mml:mspace width="0.5em"/>
<mml:mi>j</mml:mi>
<mml:mo>:</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>H</mml:mi>
</mml:mrow>
<mml:mo>&#x304;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mo>&#x304;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x2264;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>K</mml:mi>
</mml:mrow>
<mml:mo>&#x304;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:math>
<label>(17)</label>
</disp-formula>where <inline-formula id="inf6">
<mml:math id="m28">
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>F</mml:mi>
</mml:mrow>
<mml:mo>&#x304;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:math>
</inline-formula>, <inline-formula id="inf7">
<mml:math id="m29">
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>G</mml:mi>
</mml:mrow>
<mml:mo>&#x304;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:math>
</inline-formula>, <inline-formula id="inf8">
<mml:math id="m30">
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>H</mml:mi>
</mml:mrow>
<mml:mo>&#x304;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:math>
</inline-formula>, <inline-formula id="inf9">
<mml:math id="m31">
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>K</mml:mi>
</mml:mrow>
<mml:mo>&#x304;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:math>
</inline-formula> is the approximate multiparametric solutions.</p>
<p>Mode CEHB is used as an example to draw a 2-dimensional projection of the polyhedral partition in the TMC piston displacement and piston velocity. The target displacement is 25&#xa0;mm, and the remaining parameters without projection are set to 0. As shown in <xref ref-type="fig" rid="F7">Figure&#xa0;7</xref>, the polyhedra are divided into 240 blocks, and the actual trajectory converges from the initial point (0, 0) to the point (25, 0), <italic>via</italic> blocks 156 and 162 to block 1. This example shows that it is feasible to solve the QP problem by dividing the polyhedra offline.</p>
<fig id="F7" position="float">
<label>FIGURE 7</label>
<caption>
<p>Polyhedral projection and convergence trajectory.</p>
</caption>
<graphic xlink:href="frobt-10-1078253-g007.tif"/>
</fig>
</sec>
<sec id="s3-3">
<title>3.3 State prediction</title>
<p>The proposed MPC needs all states as the feedback signals. If a linear Kalman filter is used, due to the non-linear characteristics of hydraulic systems, the process noise produces cumulative errors with the dynamic process. It will lead to significant deviations in the observed values and bring disturbances to the MPC. If the disturbance is too large, the controller may not converge. In order to eliminate cumulative errors, the state-space matrice needs to be updated in real time. As a result, an extended Kalman filter (EKF) is adopted to estimate states in the non-linear transition process. Since the linearization has been mentioned in the previous section, it&#x2019;s not described in this section. The extended recursive equations of EKF is as follows<disp-formula id="e18a">
<mml:math id="m32">
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>X</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo stretchy="false">&#x7c;</mml:mo>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mi>X</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo stretchy="false">&#x7c;</mml:mo>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>B</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mi>u</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:math>
<label>(18a)</label>
</disp-formula>
<disp-formula id="e18b">
<mml:math id="m33">
<mml:mi>P</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo stretchy="false">&#x7c;</mml:mo>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mi>P</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo stretchy="false">&#x7c;</mml:mo>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:msup>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>Q</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
</mml:math>
<label>(18b)</label>
</disp-formula>
<disp-formula id="e18c">
<mml:math id="m34">
<mml:mi>K</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>P</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo stretchy="false">&#x7c;</mml:mo>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:msup>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
</mml:msup>
<mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mi>P</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo stretchy="false">&#x7c;</mml:mo>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:msup>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo>&#x2b;</mml:mo>
<mml:mi>R</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
</mml:math>
<label>(18c)</label>
</disp-formula>
<disp-formula id="e18d">
<mml:math id="m35">
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>X</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo stretchy="false">&#x7c;</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>X</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo stretchy="false">&#x7c;</mml:mo>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x2b;</mml:mo>
<mml:mi>K</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>y</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>X</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo stretchy="false">&#x7c;</mml:mo>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mfenced>
</mml:math>
<label>(18d)</label>
</disp-formula>
<disp-formula id="e18e">
<mml:math id="m36">
<mml:mi>P</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x3d;</mml:mo>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>I</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>K</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
<mml:msub>
<mml:mrow>
<mml:mi>C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
<mml:mi>P</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo stretchy="false">&#x7c;</mml:mo>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:math>
<label>(18e)</label>
</disp-formula>where <italic>A</italic>
<sub>
<italic>k</italic>
</sub>, <italic>B</italic>
<sub>
<italic>k</italic>
</sub>, <italic>C</italic>
<sub>
<italic>k</italic>
</sub> are the value of Jacobian matrix for the non-linear transition process at the time <italic>k</italic>.</p>
<p>The measurement noise covariance matrix <italic>R</italic> is time-invariant matrix. There is a large difference in the process noise of different so that the process noise covariance is time-varying. This paper proposes an on-line approach for the process noise, which includes both the priori tunning value and Sage-Husa maximum posterior estimation algorithm <xref ref-type="bibr" rid="B17">Myers and Tapley (1976)</xref>.</p>
<p>Once the regenerative mode occurs change, the process noise <inline-formula id="inf10">
<mml:math id="m37">
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>Q</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
</mml:math>
</inline-formula> is given the initial value <inline-formula id="inf11">
<mml:math id="m38">
<mml:msup>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>Q</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mrow>
<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:msup>
</mml:math>
</inline-formula> where <italic>i</italic> denotes the work mode at time <italic>t</italic>. During the same operating mode, <inline-formula id="inf12">
<mml:math id="m39">
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>Q</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
</mml:math>
</inline-formula> can be updated by<disp-formula id="e19a">
<mml:math id="m40">
<mml:msub>
<mml:mrow>
<mml:mi>d</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>b</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>&#x2212;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi>b</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:mfrac>
</mml:math>
<label>(19a)</label>
</disp-formula>
<disp-formula id="e19b">
<mml:math id="m41">
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>q</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>d</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>q</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>d</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mfenced open="[" close="]">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo stretchy="false">&#x7c;</mml:mo>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo stretchy="false">&#x7c;</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>B</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi>u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mfenced>
</mml:math>
<label>(19b)</label>
</disp-formula>
<disp-formula id="e19c">
<mml:math id="m42">
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>Q</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>d</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>Q</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>d</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mfenced open="[" close="]">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>K</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3b5;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msup>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3b5;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
</mml:msup>
<mml:msup>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>K</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi>P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi>A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:math>
<label>(19c)</label>
</disp-formula>where <italic>k</italic> is the period number from time to the current. <italic>b</italic> is the forgetting factor and <italic>b</italic> &#x2208; (.95, 1). <italic>K</italic>
<sub>
<italic>k</italic>
</sub> is the current Kalman gain. <italic>&#x25b;</italic>
<sub>
<italic>k</italic>
</sub> is the residual as follows<disp-formula id="e20">
<mml:math id="m43">
<mml:msub>
<mml:mrow>
<mml:mi>&#x3b5;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo stretchy="false">&#x7c;</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:math>
<label>(20)</label>
</disp-formula>
</p>
</sec>
<sec id="s3-4">
<title>3.4 The strategy for keeping pedal feel consistent</title>
<p>Rubber material can be described by a non-linear GMM <xref ref-type="bibr" rid="B13">Jrad&#xa0;et&#xa0;al. (2012)</xref>, which is divided into a quasi-static process and a dynamic process. Without the disturbance of rubber&#x2019;s resilience, the static stressing and strain of rubber is shown in <xref ref-type="fig" rid="F8">Figure&#xa0;8</xref>. It&#x2019;s the increasing curve with a decreasing slope, which can be fitted by a continuous three-piece linear function. By the means of the non-linear Trust-Region-Reflective Least Squares <xref ref-type="bibr" rid="B16">Mor&#xe9; and Sorensen (1983)</xref>, the fitting piecewise function is obtained with the <italic>R</italic>
<sup>2</sup> of .9700. It includes 5 parameters with 2 x-coordinates and 3 slopes. The detailed solution process is not discussed in this paper.</p>
<fig id="F8" position="float">
<label>FIGURE 8</label>
<caption>
<p>The stress vs. strain of the reaction disk.</p>
</caption>
<graphic xlink:href="frobt-10-1078253-g008.tif"/>
</fig>
<p>The rubber&#x2019;s dynamic characteristic is modelled by the Generalized Maxwell Model (GMM). A second-order transfer function with a zero point can be used to fit the reaction disk according to experimental data. Combined with the 3-piece linear fitting function, the frequency domain is presented in <xref ref-type="fig" rid="F9">Figure&#xa0;9</xref>. If the frequency is less than 10&#xa0;Hz, the amplitude and phase can be regarded constant. Without considering the delay of controller, the phase frequency characteristics of the reaction disk reflect the hysteresis of the motor output force relative to the driver input force. When above 10&#xa0;Hz frequency, the rubber hysteresis will exceed 20<sup>&#x25e6;</sup>. It means that with the higher frequency of the driver input force, the motor output force will obtain the greater delay. The gain of amplitude-frequency curves in different pieces are proportional and the phase-frequency characteristics are identical.</p>
<fig id="F9" position="float">
<label>FIGURE 9</label>
<caption>
<p>The Bode figure of reaction disk model.</p>
</caption>
<graphic xlink:href="frobt-10-1078253-g009.tif"/>
</fig>
<p>According to the fitting second-order model, the deformation difference &#x394; (introduced in Eq.&#xa0;<xref ref-type="disp-formula" rid="e1">1</xref>) can be calculated by<disp-formula id="e21">
<mml:math id="m44">
<mml:mtable class="aligned">
<mml:mtr>
<mml:mtd columnalign="right">
<mml:mfenced open="[" close="]">
<mml:mrow>
<mml:mtable class="matrix">
<mml:mtr>
<mml:mtd columnalign="center">
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>&#x3be;</mml:mi>
</mml:mrow>
<mml:mo>&#x307;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd columnalign="center">
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>&#x3be;</mml:mi>
</mml:mrow>
<mml:mo>&#x307;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mtd>
<mml:mtd columnalign="left">
<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>A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>R</mml:mi>
<mml:mi>d</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mtd>
<mml:mtd columnalign="center"/>
</mml:mtr>
<mml:mtr>
<mml:mtd columnalign="center"/>
<mml:mtd columnalign="center">
<mml:msub>
<mml:mrow>
<mml:mi>A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>R</mml:mi>
<mml:mi>d</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
<mml:mfenced open="[" close="]">
<mml:mrow>
<mml:mtable class="matrix">
<mml:mtr>
<mml:mtd columnalign="center">
<mml:msub>
<mml:mrow>
<mml:mi>&#x3be;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd columnalign="center">
<mml:msub>
<mml:mrow>
<mml:mi>&#x3be;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x2b;</mml:mo>
<mml:mfenced open="[" close="]">
<mml:mrow>
<mml:mtable class="matrix">
<mml:mtr>
<mml:mtd columnalign="center">
<mml:msub>
<mml:mrow>
<mml:mi>B</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">Rd</mml:mi>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mtd>
<mml:mtd columnalign="center"/>
</mml:mtr>
<mml:mtr>
<mml:mtd columnalign="center"/>
<mml:mtd columnalign="center">
<mml:msub>
<mml:mrow>
<mml:mi>B</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">Rd</mml:mi>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
<mml:mfenced open="[" close="]">
<mml:mrow>
<mml:mtable class="matrix">
<mml:mtr>
<mml:mtd columnalign="center">
<mml:msub>
<mml:mrow>
<mml:mi>F</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd columnalign="center">
<mml:msub>
<mml:mrow>
<mml:mi>F</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">servo</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd columnalign="right">
<mml:mi mathvariant="normal">&#x394;</mml:mi>
</mml:mtd>
<mml:mtd columnalign="left">
<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>C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">Rd</mml:mi>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mtd>
<mml:mtd columnalign="center">
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">Rd</mml:mi>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
<mml:mfenced open="[" close="]">
<mml:mrow>
<mml:mtable class="matrix">
<mml:mtr>
<mml:mtd columnalign="center">
<mml:msub>
<mml:mrow>
<mml:mi>&#x3be;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd columnalign="center">
<mml:msub>
<mml:mrow>
<mml:mi>&#x3be;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:math>
<label>(21)</label>
</disp-formula>where <italic>&#x3be;</italic> is the state of the second-order model; <italic>A</italic>
<sub>
<italic>Rd</italic>
</sub> and <italic>B</italic>
<sub>
<italic>Rd</italic>
</sub> are time-invariant; <italic>C</italic>
<sub>
<italic>Rd</italic>
</sub> is the function of input force and <inline-formula id="inf13">
<mml:math id="m45">
<mml:msub>
<mml:mrow>
<mml:mi>C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>R</mml:mi>
<mml:mi>d</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2208;</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:mi>R</mml:mi>
<mml:mi>d</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">piece</mml:mi>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msubsup>
<mml:mo>,</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi>C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>R</mml:mi>
<mml:mi>d</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">piece</mml:mi>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msubsup>
<mml:mo>,</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi>C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>R</mml:mi>
<mml:mi>d</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">piece</mml:mi>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
<mml:mo stretchy="false">}</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula>.</p>
<p>The deformation difference can be measured by the displacement sensor. Its target value is acquired by the incremental updating method as<disp-formula id="e22">
<mml:math id="m46">
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="normal">&#x394;</mml:mi>
</mml:mrow>
<mml:mo>&#x307;</mml:mo>
</mml:mover>
</mml:mrow>
<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>C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">Rd1</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mi>A</mml:mi>
</mml:mtd>
<mml:mtd columnalign="center">
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">Rd</mml:mi>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
</mml:mtable>
<mml:mi>A</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mfenced open="[" close="]">
<mml:mrow>
<mml:mtable class="matrix">
<mml:mtr>
<mml:mtd columnalign="center">
<mml:msub>
<mml:mrow>
<mml:mi>&#x3be;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd columnalign="center">
<mml:msub>
<mml:mrow>
<mml:mi>&#x3be;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x2b;</mml:mo>
<mml:mfenced open="[" close="]">
<mml:mrow>
<mml:mtable class="matrix">
<mml:mtr>
<mml:mtd columnalign="center">
<mml:msub>
<mml:mrow>
<mml:mi>C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">Rd</mml:mi>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi>B</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">Rd</mml:mi>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mtd>
<mml:mtd columnalign="center">
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">Rd</mml:mi>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
</mml:mtable>
<mml:msub>
<mml:mrow>
<mml:mi>B</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">Rd</mml:mi>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
<mml:mfenced open="[" close="]">
<mml:mrow>
<mml:mtable class="matrix">
<mml:mtr>
<mml:mtd columnalign="center">
<mml:msub>
<mml:mrow>
<mml:mi>F</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd columnalign="center">
<mml:msub>
<mml:mrow>
<mml:mi>F</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">servo</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:math>
<label>(22)</label>
</disp-formula>
</p>
</sec>
<sec id="s3-5">
<title>3.5 Dead zone</title>
<p>The proposed MPC method can be used to solve another engineering problem. Before the pressure building are two non-linear processes: idle and dead zone [7]. Idle denotes that the mechanical part is not connected to the hydraulic part, while they are connected in the dead zone.</p>
<p>The non-linear process can be regarded as a specific condition of mode DEHB. The idle and dead zone can be converted to the rear wheels&#x2019; virtual flow, and the reference outlet valve flow is equivalent to the virtual flow simultaneously. The controller for the idle and dead zone is given by<disp-formula id="e23">
<mml:math id="m47">
<mml:mtable class="array">
<mml:mtr>
<mml:mtd columnalign="left">
<mml:mfenced open="{" close="">
<mml:mrow>
<mml:mtable class="array">
<mml:mtr>
<mml:mtd columnalign="left">
<mml:msub>
<mml:mrow>
<mml:mi>q</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">vir</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>m</mml:mi>
<mml:mi>c</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mo>&#x307;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>p</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd columnalign="left">
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>u</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>q</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">vir</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd columnalign="left">
<mml:mi>m</mml:mi>
<mml:mi>p</mml:mi>
<mml:mi>c</mml:mi>
<mml:mo>:</mml:mo>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mn>10</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd columnalign="left">
<mml:mi>s</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi>j</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>2</mml:mn>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd columnalign="left">
<mml:mn>0</mml:mn>
<mml:mo>&#x2264;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>p</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2264;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">Idel</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">Dead</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:math>
<label>(23)</label>
</disp-formula>where <italic>q</italic>
<sub>
<italic>vir</italic>
</sub> is the virtual flow of rear wheels; <inline-formula id="inf14">
<mml:math id="m48">
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>u</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
</mml:math>
</inline-formula> is the reference flow of rear outlet valves; <italic>x</italic>
<sub>
<italic>Idel</italic>
</sub>, <italic>x</italic>
<sub>
<italic>Dead</italic>
</sub> are the idle travel and dead zone displacement.</p>
</sec>
</sec>
<sec id="s4">
<title>4 Simulation results</title>
<p>Our entire model is composed of a series of local LTI models that are based on the proposed linearized method. The controller is designed based on the three LTI-MPCs, which correspond to the three regenerative conditions, which are FHB, DEHB, and CEHB. This explicit method is adopted for engineering applications, and an EKF observer is used to estimate all states with the assistance of the motor angle sensor and TMC pressure sensor. The performance of the controller is presented in contrast to that of a sub-MPC for CEHB, given that the control group is the only one capable of multi-objective optimization.</p>
<p>During the condition of FHB, electro-hydraulic solenoid valves are not activated to regulate the flow, and the E-Booster is the only actuator available for operating the pressure. The flow rates <italic>q</italic>
<sub>
<italic>ov1</italic>
</sub> and <italic>q</italic>
<sub>
<italic>ov2</italic>
</sub> are set to a value of zero resulting from the normally closed outlet valves. Hence, the force <italic>F</italic>
<sub>
<italic>servo</italic>
</sub> is the only applicable parameter, and the remaining <italic>q</italic>
<sub>
<italic>iv1</italic>
</sub> and <italic>q</italic>
<sub>
<italic>iv2</italic>
</sub> variables can be observed by using the Bernoulli equation.</p>
<p>
<xref ref-type="fig" rid="F10">Figure&#xa0;10</xref> and <xref ref-type="fig" rid="F11">Figure&#xa0;11</xref> both illustrate the controllers&#x2019; behaviors under the FHB condition. The step response and sinusoidal reference signals can be tracked by the controllers. The difference is that EMPC and DMPC (decentralized MPC) have improved the convergence rates in terms of piston displacement <italic>x</italic>
<sub>
<italic>p</italic>
</sub>, given that there is an 85&#xa0;ms shorter latency than the SMPC (single MPC). The overshoot of EMPC is greater than DMPC by 4.6% and SMPC by 22.6% due of the EKF observer.</p>
<fig id="F10" position="float">
<label>FIGURE 10</label>
<caption>
<p>Simulation results of the step response during the FHB condition.</p>
</caption>
<graphic xlink:href="frobt-10-1078253-g010.tif"/>
</fig>
<fig id="F11" position="float">
<label>FIGURE 11</label>
<caption>
<p>Simulation results of sinusoidal tracking under the FHB condition.</p>
</caption>
<graphic xlink:href="frobt-10-1078253-g011.tif"/>
</fig>
<p>Thanks to regeneration, part of the braking force is distributed to the driving motor. The vehicle type that is proposed is FWD. Therefore, it&#x2019;s further subdivided into DEHB and CEHB, dependent on whether the front wheels have hydraulic braking force. <xref ref-type="fig" rid="F12">Figure&#xa0;12</xref> depicts the dynamic performances when the desired front cylinder pressure is 0 and the rear cylinder pressure is half of the standard measure, compared with the same reference displacement <italic>x</italic>
<sub>
<italic>p</italic>
</sub>. As shown in the figure, even though the pressure in the wheel cylinders is able to keep up with the reference, the displacement of SMPC still lags behind the objective curve. This results in the driver getting negative feedback from the pedal during regenerative braking. The input signal (<xref ref-type="fig" rid="F13">Figure&#xa0;13</xref>) further indicates that the conservative control strategy of the SMPC is insufficient for covering the entire regenerative condition.</p>
<fig id="F12" position="float">
<label>FIGURE 12</label>
<caption>
<p>Simulation results of step response under the DEHB condition.</p>
</caption>
<graphic xlink:href="frobt-10-1078253-g012.tif"/>
</fig>
<fig id="F13" position="float">
<label>FIGURE 13</label>
<caption>
<p>Input signal of step response under the DEHB condition.</p>
</caption>
<graphic xlink:href="frobt-10-1078253-g013.tif"/>
</fig>
<p>A normal regenerative example is provided to verify the overall performance of EMPC. After reaching an initial speed of 80&#xa0;km/h, the vehicle then brakes at a gradually rising rate until reaching the maximum deceleration. The front braking force is shown to be proportional to the rear braking force in a constant 3:2 ratio. The constant power and torque areas are then traversed by the regenerative motor. It was observed that the performance of the EMPC is much better in terms of targets tracking, as highlighted in <xref ref-type="fig" rid="F14">Figure&#xa0;14</xref>. The main advantage here is the piston position control, which reaches a precision of &#xb1;.20 mm, compared with the &#xb1;.32&#xa0;mm of DMPC and &#xb1;.45&#xa0;mm of SMPC. The controllers display the same accuracy when it comes to driving wheels pressure; nevertheless, EMPC undergoes smaller fluctuations when the control mode is switched in relation to the driven wheel&#x2019;s pressure regulation. The input signal is presented in <xref ref-type="fig" rid="F15">Figure&#xa0;15</xref>, where the inlet valve flow <italic>q</italic>
<sub>
<italic>iv1</italic>
</sub> is viewable as the net flow of all driving wheels. The negative difference can be counteracted by controlling <italic>q</italic>
<sub>
<italic>ov1</italic>
</sub> as shown in <xref ref-type="fig" rid="F3">Figure&#xa0;3</xref>.</p>
<fig id="F14" position="float">
<label>FIGURE 14</label>
<caption>
<p>Regenerative simulation results of the test case.</p>
</caption>
<graphic xlink:href="frobt-10-1078253-g014.tif"/>
</fig>
<fig id="F15" position="float">
<label>FIGURE 15</label>
<caption>
<p>Input signal of the test case.</p>
</caption>
<graphic xlink:href="frobt-10-1078253-g015.tif"/>
</fig>
<p>The EMPC is applied in the UDDS (urban dynamometer driving schedule) case to demonstrate its effect on energy conservation. As seen in <xref ref-type="fig" rid="F16">Figure&#xa0;16</xref>, the sub-figure a) is the vehicle&#x2019;s velocity in a cycle, and sub-figures (b)-(d) are the allotted regenerative and frictional braking torques in different control modes. The regenerative braking first intervenes, and the rear frictional braking then takes effect to guarantee longitudinal stability. Once the front and rear braking distribution exceeds the safety threshold the SMPC operates the front hydraulic pressure. Of all the braking length of time, 73.9% is in FHB, 17.6% in DEHB and 8.5% in CEHB. Without coordinated braking, the traditional regeneration separates the motor braking and hydraulic braking for the pedal feel and the driving safety. In terms of the proposed simulated model, the traditional regeneration saves 9.8% electric energy compared with the braking process without regeneration. While the switchable EMPC method can decrease 17.5% power consumption and improve 7.7% of regenerative efficiency.</p>
<fig id="F16" position="float">
<label>FIGURE 16</label>
<caption>
<p>UDDS regeneration. <bold>(A)</bold> UDDS case. <bold>(B)</bold> The torque acting on the wheels. <bold>(C)</bold> Braking pressure. <bold>(D)</bold> Control mode. <bold>(E)</bold> The larger version of braking torque. <bold>(F)</bold> State-ofcharge.</p>
</caption>
<graphic xlink:href="frobt-10-1078253-g016.tif"/>
</fig>
<p>One of the control targets is the consistence of driver&#x2019;s pedal feel. The pedal feel is directely determined by the input force <italic>F</italic>
<sub>
<italic>in</italic>
</sub>, which can be simplified to a variable proportional to <italic>x</italic>
<sub>
<italic>p</italic>
</sub> if the reaction disk is followed by the control law given in Eq.&#xa0;<xref ref-type="disp-formula" rid="e22">22</xref>. <xref ref-type="fig" rid="F17">Figure&#xa0;17</xref>) shows the relationship between pedal force, pushrod displacement and TMC pressure, which directly reflects the hydraulic characteristics of the E-Booster and driver brake pedal feel. The control group of EMPC contains a normal braking case without regeneration, and a single MPC designed for CEHB only. Taking the pedal feel without regenerative braking as the control target, it can be seen from the left subfigure that both EMPC and single MPC grow smoothly at a slope of roughly .0335&#xa0;mm/N during pressure increase. The single MPC shows a distinct hysteresis below 150&#xa0;N during the pressure decrease process, while the EMPC can conform to the normal decompression pedal feel relatively well. As can be seen from the right subfigure, the slope of the p-V characteristic of the system in the regenerative braking case is .36&#xa0;MPa/mm, which is only 53% of that in the case without regeneration. The combination of the two figures can show that: first, the pV characteristic changes significantly during regenerative braking, and a part of the hydraulic braking force is compensated by motor braking; second, the EMPC designed for the integrated three cases (as shown in <xref ref-type="fig" rid="F3">Figure&#xa0;3</xref>) can achieve the same braking feel as that without regeneration, and the effect is better than the single MPC, especially the decompression process.</p>
<fig id="F17" position="float">
<label>FIGURE 17</label>
<caption>
<p>Pedal feel during regenerative braking.</p>
</caption>
<graphic xlink:href="frobt-10-1078253-g017.tif"/>
</fig>
</sec>
<sec sec-type="conclusion" id="s5">
<title>5 Conclusion</title>
<p>A novel MPC-based method for pressure regulation of wheel cylinders during regeneration was developed. Because the desired values of displacement and pressure can be accurately tracked, we can guarantee a consistent pedal feel as indicated by the curve of the input force versus the displacement curve. The case comparison validates the effectiveness in all regenerative operating conditions. Using this method, not only can braking force be evenly distributed between the front and rear wheels, but the coordinated control of hydraulic electric braking in the driving wheels can also be realized. Furthermore, the method works effectively in hydraulic systems with different dead zones.</p>
<p>Future case studies will consider the effects of low-pressure accumulator volume and lateral motion to improve the accuracy of the results. They should also concentrate on improving the accuracy of flow control in consideration of additional factors. During future controller improvement, the disturbance caused by the hydraulic hysteresis will be paid more attention to accelerate the convergence speed of the return process.</p>
</sec>
</body>
<back>
<sec sec-type="data-availability" id="s6">
<title>Data availability statement</title>
<p>The raw data supporting the conclusion of this article will be made available by the authors, without undue reservation.</p>
</sec>
<sec id="s7">
<title>Author contributions</title>
<p>MM, who is responsible for writing the article, proposing the method, and building the simulation model. SC, HM, and YP is responsible for model building, data collection and processing. BL is responsible for providing the simulation scenario and the conduct of the simulation.</p>
</sec>
<sec sec-type="COI-statement" id="s8">
<title>Conflict of interest</title>
<p>BL was employed by Beijing Automotive Industry Corporation.</p>
<p>The remaining 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="s9">
<title>Publisher&#x2019;s note</title>
<p>All claims expressed in this article are solely those of the authors and do not necessarily represent those of their affiliated organizations, or those of the publisher, the editors and the reviewers. Any product that may be evaluated in this article, or claim that may be made by its manufacturer, is not guaranteed or endorsed by the publisher.</p>
</sec>
<ref-list>
<title>References</title>
<ref id="B1">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Bemporad</surname>
<given-names>A.</given-names>
</name>
</person-group> (<year>2015</year>). <article-title>A multiparametric quadratic programming algorithm with polyhedral computations based on nonnegative least squares</article-title>. <source>IEEE Trans. Automatic Control</source> <volume>60</volume>, <fpage>2892</fpage>&#x2013;<lpage>2903</lpage>. <pub-id pub-id-type="doi">10.1109/TAC.2015.2417851</pub-id>
</citation>
</ref>
<ref id="B2">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Bemporad</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Morari</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Dua</surname>
<given-names>V.</given-names>
</name>
<name>
<surname>Pistikopoulos</surname>
<given-names>E. N.</given-names>
</name>
</person-group> (<year>2002</year>). <article-title>The explicit linear quadratic regulator for constrained systems</article-title>. <source>Automatica</source> <volume>38</volume>, <fpage>3</fpage>&#x2013;<lpage>20</lpage>. <pub-id pub-id-type="doi">10.1016/S0005-1098(01)00174-1</pub-id>
</citation>
</ref>
<ref id="B3">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Bemporad</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Oliveri</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Poggi</surname>
<given-names>T.</given-names>
</name>
<name>
<surname>Storace</surname>
<given-names>M.</given-names>
</name>
</person-group> (<year>2011</year>). <article-title>Ultra-fast stabilizing model predictive control via canonical piecewise affine approximations</article-title>. <source>IEEE Trans. Automatic Control</source> <volume>56</volume>, <fpage>2883</fpage>&#x2013;<lpage>2897</lpage>. <pub-id pub-id-type="doi">10.1109/TAC.2011.2141410</pub-id>
</citation>
</ref>
<ref id="B4">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Cairano</surname>
<given-names>S. D.</given-names>
</name>
<name>
<surname>Tseng</surname>
<given-names>H. E.</given-names>
</name>
<name>
<surname>Bernardini</surname>
<given-names>D.</given-names>
</name>
<name>
<surname>Bemporad</surname>
<given-names>A.</given-names>
</name>
</person-group> (<year>2013</year>). <article-title>Vehicle yaw stability control by coordinated active front steering and differential braking in the tire sideslip angles domain</article-title>. <source>IEEE Trans. Control Syst. Technol.</source> <volume>21</volume>, <fpage>1236</fpage>&#x2013;<lpage>1248</lpage>. <pub-id pub-id-type="doi">10.1109/TCST.2012.2198886</pub-id>
</citation>
</ref>
<ref id="B5">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Cairano</surname>
<given-names>S. D.</given-names>
</name>
<name>
<surname>Yanakiev</surname>
<given-names>D.</given-names>
</name>
<name>
<surname>Bemporad</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Kolmanovsky</surname>
<given-names>I. V.</given-names>
</name>
<name>
<surname>Hrovat</surname>
<given-names>D.</given-names>
</name>
</person-group> (<year>2012</year>). <article-title>Model predictive idle speed control: Design, analysis, and experimental evaluation</article-title>. <source>IEEE Trans. Control Syst. Technol.</source> <volume>20</volume>, <fpage>84</fpage>&#x2013;<lpage>97</lpage>.</citation>
</ref>
<ref id="B6">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Changran</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Guoye</surname>
<given-names>W.</given-names>
</name>
<name>
<surname>Zhangpeng</surname>
<given-names>G.</given-names>
</name>
<name>
<surname>Zhichao</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>Dongxin</surname>
<given-names>X.</given-names>
</name>
</person-group> (<year>2018</year>). <article-title>A control algorithm for the novel regenerative&#x2013;mechanical coupled brake system with by-wire based on multidisciplinary design optimization for an electric vehicle</article-title>. <source>Energies</source> <volume>11</volume>, <fpage>2322</fpage>&#x2013;<lpage>2418</lpage>. <pub-id pub-id-type="doi">10.3390/en11092322</pub-id>
</citation>
</ref>
<ref id="B7">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Chen</surname>
<given-names>P.</given-names>
</name>
<name>
<surname>Jian</surname>
<given-names>W.</given-names>
</name>
<name>
<surname>Jian</surname>
<given-names>Z.</given-names>
</name>
<name>
<surname>Rui</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Yang</surname>
<given-names>C.</given-names>
</name>
</person-group> (<year>2018a</year>). <article-title>Design and power assisted braking control of a novel electromechanical brake booster</article-title>. <source>SAE Int. J. Passeng. Cars &#x2013; Electron. Electr. Syst.</source> <volume>11</volume> (<issue>3</issue>), <fpage>171</fpage>&#x2013;<lpage>181</lpage>. <pub-id pub-id-type="doi">10.4271/2018-01-0762</pub-id>
</citation>
</ref>
<ref id="B8">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Chen</surname>
<given-names>P.</given-names>
</name>
<name>
<surname>Jian</surname>
<given-names>W.</given-names>
</name>
<name>
<surname>Jian</surname>
<given-names>Z.</given-names>
</name>
<name>
<surname>Rui</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Zhang</surname>
<given-names>K.</given-names>
</name>
</person-group> (<year>2018b</year>). <article-title>Design and position control of a novel electric brake booster</article-title>. <source>SAE Int. J. Passeng. Cars - Mech. Syst.</source> <volume>11</volume> (<issue>5</issue>), <fpage>389</fpage>&#x2013;<lpage>400</lpage>. <pub-id pub-id-type="doi">10.4271/2018-01-0812</pub-id>
</citation>
</ref>
<ref id="B9">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Di Cairano</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Tseng</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Bernardini</surname>
<given-names>D.</given-names>
</name>
<name>
<surname>Bemporad</surname>
<given-names>A.</given-names>
</name>
</person-group> (<year>2010</year>). <article-title>Steering vehicle control by switched model predictive control</article-title>. <source>IFAC Proc. Vol.</source> <volume>43</volume>, <fpage>1</fpage>&#x2013;<lpage>6</lpage>. <pub-id pub-id-type="doi">10.3182/20100712-3-de-2013.00046</pub-id>
</citation>
</ref>
<ref id="B10">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Falcone</surname>
<given-names>P.</given-names>
</name>
<name>
<surname>Eric Tseng</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Borrelli</surname>
<given-names>F.</given-names>
</name>
<name>
<surname>Asgari</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Hrovat</surname>
<given-names>D.</given-names>
</name>
</person-group> (<year>2008</year>). <article-title>Mpc-based yaw and lateral stabilisation via active front steering and braking</article-title>. <source>Veh. Syst. Dyn.</source> <volume>46</volume>, <fpage>611</fpage>&#x2013;<lpage>628</lpage>. <pub-id pub-id-type="doi">10.1080/00423110802018297</pub-id>
</citation>
</ref>
<ref id="B11">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Heydari</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Fajri</surname>
<given-names>P.</given-names>
</name>
<name>
<surname>Sabzehgar</surname>
<given-names>R.</given-names>
</name>
<name>
<surname>Asrari</surname>
<given-names>A.</given-names>
</name>
</person-group> (<year>2020</year>). <article-title>Optimal brake allocation in electric vehicles for maximizing energy harvesting during braking</article-title>. <source>IEEE Trans. Energy Convers.</source> <volume>35</volume>, <fpage>1806</fpage>&#x2013;<lpage>1814</lpage>. <pub-id pub-id-type="doi">10.1109/TEC.2020.2994520</pub-id>
</citation>
</ref>
<ref id="B12">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Hu</surname>
<given-names>D.</given-names>
</name>
<name>
<surname>Li</surname>
<given-names>G.</given-names>
</name>
<name>
<surname>Deng</surname>
<given-names>F.</given-names>
</name>
</person-group> (<year>2021</year>). <article-title>Gain-scheduled model predictive control for a commercial vehicle air brake system</article-title>. <source>Processes</source> <volume>9</volume>, <fpage>899</fpage>. <pub-id pub-id-type="doi">10.3390/pr9050899</pub-id>
</citation>
</ref>
<ref id="B13">
<citation citation-type="confproc">
<person-group person-group-type="author">
<name>
<surname>Jrad</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Dion</surname>
<given-names>J. L.</given-names>
</name>
<name>
<surname>Renaud</surname>
<given-names>F.</given-names>
</name>
<name>
<surname>Tawfiq</surname>
<given-names>I.</given-names>
</name>
<name>
<surname>Haddar</surname>
<given-names>M.</given-names>
</name>
</person-group> (<year>2012</year>). &#x201c;<article-title>A new approach for nonlinear generalized Maxwell model for depicting dynamic behaviour of viscoelastic elements-parameters identification and validation</article-title>,&#x201d; in <conf-name>18th Symposium of Vibrations, Shocks and Noise, France</conf-name>.</citation>
</ref>
<ref id="B14">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Li</surname>
<given-names>L.</given-names>
</name>
<name>
<surname>Zhang</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Yang</surname>
<given-names>C.</given-names>
</name>
<name>
<surname>Yan</surname>
<given-names>B.</given-names>
</name>
<name>
<surname>Marina Martinez</surname>
<given-names>C.</given-names>
</name>
</person-group> (<year>2016</year>). <article-title>Model predictive control-based efficient energy recovery control strategy for regenerative braking system of hybrid electric bus</article-title>. <source>Energy Convers. Manag.</source> <volume>111</volume>, <fpage>299</fpage>&#x2013;<lpage>314</lpage>. <pub-id pub-id-type="doi">10.1016/j.enconman.2015.12.077</pub-id>
</citation>
</ref>
<ref id="B15">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Liu</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Deng</surname>
<given-names>W.</given-names>
</name>
<name>
<surname>Rui</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Lei</surname>
<given-names>Q.</given-names>
</name>
<name>
<surname>Yang</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Wu</surname>
<given-names>J.</given-names>
</name>
</person-group> (<year>2016</year>). <article-title>Power assisted braking control based on a novel mechatronic booster</article-title>. <source>SAE Int. J. Passeng. Cars - Mech. Syst.</source> <volume>9</volume>, <fpage>891</fpage>. <pub-id pub-id-type="doi">10.4271/2016-01-1644</pub-id>
</citation>
</ref>
<ref id="B16">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Mor&#xe9;</surname>
<given-names>J. J.</given-names>
</name>
<name>
<surname>Sorensen</surname>
<given-names>D. C.</given-names>
</name>
</person-group> (<year>1983</year>). <article-title>Computing a trust region step</article-title>. <source>SIAM J. Sci. Stat. Comput.</source> <volume>4</volume>, <fpage>553</fpage>&#x2013;<lpage>572</lpage>. <pub-id pub-id-type="doi">10.1137/0904038</pub-id>
</citation>
</ref>
<ref id="B17">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Myers</surname>
<given-names>K.</given-names>
</name>
<name>
<surname>Tapley</surname>
<given-names>B.</given-names>
</name>
</person-group> (<year>1976</year>). <article-title>Adaptive sequential estimation with unknown noise statistics</article-title>. <source>IEEE Trans. Automatic Control</source> <volume>21</volume>, <fpage>520</fpage>&#x2013;<lpage>523</lpage>. <pub-id pub-id-type="doi">10.1109/TAC.1976.1101260</pub-id>
</citation>
</ref>
<ref id="B18">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Ohtani</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Innami</surname>
<given-names>T.</given-names>
</name>
<name>
<surname>Obata</surname>
<given-names>T.</given-names>
</name>
<name>
<surname>Yamaguchi</surname>
<given-names>T.</given-names>
</name>
<name>
<surname>Kimura</surname>
<given-names>T.</given-names>
</name>
<name>
<surname>Oshima</surname>
<given-names>T.</given-names>
</name>
</person-group> (<year>2011</year>). <article-title>Development of an electrically-driven intelligent brake unit</article-title>. <source>Autom. Veh. Technol.</source> <volume>65</volume>, <fpage>399</fpage>&#x2013;<lpage>405</lpage>. <pub-id pub-id-type="doi">10.4271/2011-01-0572</pub-id>
</citation>
</ref>
<ref id="B19">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Panzani</surname>
<given-names>G.</given-names>
</name>
<name>
<surname>Corno</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Todeschini</surname>
<given-names>F.</given-names>
</name>
<name>
<surname>Savaresi</surname>
<given-names>S. M.</given-names>
</name>
</person-group> (<year>2014</year>). <article-title>Adaptive position-pressure control of a brake by wire actuator for sport motorcycles</article-title>. <source>Eur. J. control</source> <volume>20</volume>, <fpage>79</fpage>&#x2013;<lpage>86</lpage>. <pub-id pub-id-type="doi">10.1016/j.ejcon.2013.12.003</pub-id>
</citation>
</ref>
<ref id="B20">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Ren</surname>
<given-names>B.</given-names>
</name>
<name>
<surname>Chen</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Zhao</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Yuan</surname>
<given-names>L.</given-names>
</name>
</person-group> (<year>2016</year>). <article-title>Mpc-based yaw stability control in in-wheel-motored ev via active front steering and motor torque distribution</article-title>. <source>Mechatronics</source> <volume>38</volume>, <fpage>103</fpage>&#x2013;<lpage>114</lpage>. <pub-id pub-id-type="doi">10.1016/j.mechatronics.2015.10.002</pub-id>
</citation>
</ref>
<ref id="B21">
<citation citation-type="confproc">
<person-group person-group-type="author">
<name>
<surname>Satzger</surname>
<given-names>C.</given-names>
</name>
<name>
<surname>Castro</surname>
<given-names>R. D.</given-names>
</name>
</person-group> (<year>2014</year>). &#x201c;<article-title>Combined wheel-slip control and torque blending using mpc</article-title>,&#x201d; in <conf-name>2014 International Conference on Connected Vehicles and Expo (ICCVE)</conf-name> (<publisher-loc>Vienna, Austria</publisher-loc>: <publisher-name>IEEE</publisher-name>), <fpage>618</fpage>&#x2013;<lpage>624</lpage>. <pub-id pub-id-type="doi">10.1109/ICCVE.2014.7297621</pub-id>
</citation>
</ref>
<ref id="B22">
<citation citation-type="confproc">
<person-group person-group-type="author">
<name>
<surname>Satzger</surname>
<given-names>C.</given-names>
</name>
<name>
<surname>Castro</surname>
<given-names>R. D.</given-names>
</name>
<name>
<surname>Knoblach</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Brembeck</surname>
<given-names>J.</given-names>
</name>
</person-group> (<year>2016</year>). &#x201c;<article-title>Design and validation of an mpc-based torque blending and wheel slip control strategy</article-title>.&#x201d; in <conf-name>2016 IEEE Intelligent Vehicles Symposium (IV)</conf-name>. <publisher-loc>Gothenburg, Sweden</publisher-loc>: <publisher-name>IEEE</publisher-name>, <fpage>514</fpage>&#x2013;<lpage>520</lpage>. <pub-id pub-id-type="doi">10.1109/IVS.2016.7535435</pub-id>
</citation>
</ref>
<ref id="B23">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Satzger</surname>
<given-names>C.</given-names>
</name>
<name>
<surname>Castro</surname>
<given-names>R. D.</given-names>
</name>
</person-group> (<year>2018</year>). <article-title>Predictive brake control for electric vehicles</article-title>. <source>IEEE Trans. Veh. Technol.</source> <volume>67</volume>, <fpage>977</fpage>&#x2013;<lpage>990</lpage>. <pub-id pub-id-type="doi">10.1109/TVT.2017.2751104</pub-id>
</citation>
</ref>
<ref id="B24">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Satzger</surname>
<given-names>C.</given-names>
</name>
<name>
<surname>de Castro</surname>
<given-names>R.</given-names>
</name>
</person-group> (<year>2017</year>). <article-title>Predictive brake control for electric vehicles</article-title>. <source>IEEE Trans. Veh. Technol.</source> <volume>67</volume>, <fpage>977</fpage>&#x2013;<lpage>990</lpage>. <pub-id pub-id-type="doi">10.1109/tvt.2017.2751104</pub-id>
</citation>
</ref>
<ref id="B25">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Tang</surname>
<given-names>Q.</given-names>
</name>
<name>
<surname>Yang</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Luo</surname>
<given-names>C.</given-names>
</name>
<name>
<surname>Yang</surname>
<given-names>Z.</given-names>
</name>
<name>
<surname>Fu</surname>
<given-names>C.</given-names>
</name>
</person-group> (<year>2022</year>). <article-title>A novel electro-hydraulic compound braking system coordinated control strategy for a four-wheel-drive pure electric vehicle driven by dual motors</article-title>. <source>Energy</source> <volume>241</volume>, <fpage>122750</fpage>. <pub-id pub-id-type="doi">10.1016/j.energy.2021.122750</pub-id>
</citation>
</ref>
<ref id="B26">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Tavernini</surname>
<given-names>D.</given-names>
</name>
<name>
<surname>Metzler</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Gruber</surname>
<given-names>P.</given-names>
</name>
<name>
<surname>Sorniotti</surname>
<given-names>A.</given-names>
</name>
</person-group> (<year>2019</year>). <article-title>Explicit nonlinear model predictive control for electric vehicle traction control</article-title>. <source>IEEE Trans. Control Syst. Technol.</source> <volume>27</volume>, <fpage>1438</fpage>&#x2013;<lpage>1451</lpage>. <pub-id pub-id-type="doi">10.1109/TCST.2018.2837097</pub-id>
</citation>
</ref>
<ref id="B27">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Wang</surname>
<given-names>C.</given-names>
</name>
<name>
<surname>Zhao</surname>
<given-names>W.</given-names>
</name>
<name>
<surname>Li</surname>
<given-names>W.</given-names>
</name>
</person-group> (<year>2018</year>). <article-title>Braking sense consistency strategy of electro-hydraulic composite braking system</article-title>. <source>Mech. Syst. Signal Process.</source> <volume>109</volume>, <fpage>196</fpage>&#x2013;<lpage>219</lpage>. <pub-id pub-id-type="doi">10.1016/j.ymssp.2018.02.047</pub-id>
</citation>
</ref>
<ref id="B28">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Wu</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Zhang</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>He</surname>
<given-names>R.</given-names>
</name>
<name>
<surname>Chen</surname>
<given-names>P.</given-names>
</name>
<name>
<surname>Chen</surname>
<given-names>H.</given-names>
</name>
</person-group> (<year>2020</year>). <article-title>A mechatronic brake booster for electric vehicles: Design, control, and experiment</article-title>. <source>IEEE Trans. Veh. Technol.</source> <volume>69</volume>, <fpage>7040</fpage>&#x2013;<lpage>7053</lpage>. <pub-id pub-id-type="doi">10.1109/TVT.2020.2988275</pub-id>
</citation>
</ref>
<ref id="B29">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Yang</surname>
<given-names>I. J.</given-names>
</name>
<name>
<surname>Choi</surname>
<given-names>K.</given-names>
</name>
<name>
<surname>Huh</surname>
<given-names>K.</given-names>
</name>
</person-group> (<year>2012</year>). <article-title>Development of an electric booster system using sliding mode control for improved braking performance</article-title>. <source>Int. J. Automot. Technol.</source> <volume>13</volume>, <fpage>1005</fpage>&#x2013;<lpage>1011</lpage>. <pub-id pub-id-type="doi">10.1007/s12239-012-0103-7</pub-id>
</citation>
</ref>
<ref id="B30">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Yu</surname>
<given-names>Z.</given-names>
</name>
<name>
<surname>Xu</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Lu</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>Wei</surname>
<given-names>H.</given-names>
</name>
</person-group> (<year>2016</year>). <source>An integrated-electro-hydraulic brake system for active safety</source>. <comment>SAE Technical Paper 2016-01-1640</comment>. <pub-id pub-id-type="doi">10.4271/2016-01-1640</pub-id>
</citation>
</ref>
<ref id="B31">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Zhao</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Hu</surname>
<given-names>Z.</given-names>
</name>
<name>
<surname>Zhu</surname>
<given-names>B.</given-names>
</name>
</person-group> (<year>2019</year>). <source>Regenerative braking pedal decoupling control for hydraulic brake system equipped with an electro-mechanical brake booster</source>. <comment>SAE Technical Paper 2019-01-1108</comment>. <pub-id pub-id-type="doi">10.4271/2019-01-1108</pub-id>
</citation>
</ref>
<ref id="B32">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Zhao</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>Li</surname>
<given-names>L.</given-names>
</name>
<name>
<surname>Wang</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>Mei</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Liu</surname>
<given-names>C.</given-names>
</name>
<name>
<surname>Song</surname>
<given-names>J.</given-names>
</name>
</person-group> (<year>2018</year>). <article-title>Braking force decoupling control without pressure sensor for a novel series regenerative brake system</article-title>. <source>Proc. Institution Mech. Eng. Part D J. Automob. Eng.</source> <volume>233</volume>, <fpage>1750</fpage>&#x2013;<lpage>1766</lpage>. <pub-id pub-id-type="doi">10.1177/0954407018785740</pub-id>
</citation>
</ref>
</ref-list>
</back>
</article>