<?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">884669</article-id>
<article-id pub-id-type="doi">10.3389/frobt.2022.884669</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>Treatise on Analytic Nonlinear Optimal Guidance and Control Amplification of Strictly Analytic (Non-Numerical) Methods</article-title>
<alt-title alt-title-type="left-running-head">Sands</alt-title>
<alt-title alt-title-type="right-running-head">Analytic Nonlinear Optimal Guidance and Control</alt-title>
</title-group>
<contrib-group>
<contrib contrib-type="author" corresp="yes">
<name>
<surname>Sands</surname>
<given-names>Timothy</given-names>
</name>
<xref ref-type="corresp" rid="c001">&#x2a;</xref>
<uri xlink:href="https://loop.frontiersin.org/people/1697265/overview"/>
</contrib>
</contrib-group>
<aff>
<institution>Sibley School of Mechanical and Aerospace Engineering</institution>, <institution>Cornell University</institution>, <addr-line>Ithaca</addr-line>, <addr-line>NY</addr-line>, <country>United States</country>
</aff>
<author-notes>
<fn fn-type="edited-by">
<p>
<bold>Edited by:</bold> <ext-link ext-link-type="uri" xlink:href="https://loop.frontiersin.org/people/1596788/overview">Allahyar Montazeri</ext-link>, Lancaster University, United Kingdom</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/801736/overview">Khoshnam Shojaei</ext-link>, Islamic Azad University of Najafabad, Iran</p>
<p>
<ext-link ext-link-type="uri" xlink:href="https://loop.frontiersin.org/people/1591220/overview">Nargess Sadeghzadeh-Nokhodberiz</ext-link>, Qom University of Technology, Iran</p>
<p>
<ext-link ext-link-type="uri" xlink:href="https://loop.frontiersin.org/people/1750869/overview">Imil Imran</ext-link>, Lancaster University, United Kingdom</p>
</fn>
<corresp id="c001">&#x2a;Correspondence: Timothy Sands, <email>tas297@cornell.edu</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>04</day>
<month>10</month>
<year>2022</year>
</pub-date>
<pub-date pub-type="collection">
<year>2022</year>
</pub-date>
<volume>9</volume>
<elocation-id>884669</elocation-id>
<history>
<date date-type="received">
<day>26</day>
<month>02</month>
<year>2022</year>
</date>
<date date-type="accepted">
<day>16</day>
<month>05</month>
<year>2022</year>
</date>
</history>
<permissions>
<copyright-statement>Copyright &#xa9; 2022 Sands.</copyright-statement>
<copyright-year>2022</copyright-year>
<copyright-holder>Sands</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>Optimal control is seen by researchers from a different perspective than that from which the industry practitioners see it. Either type of user can easily become confounded when deciding which manner of optimal control should be used for guidance and control of mechanics. Such optimization methods are useful for autonomous navigation, guidance, and control, but their performance is hampered by noisy multi-sensor technologies and poorly modeled system equations, and real-time on-board utilization is generally computationally burdensome. Some methods proposed here use noisy sensor data to learn the optimal guidance and control solutions in real-time (online), where non-iterative instantiations are preferred to reduce computational burdens. This study aimed to highlight the efficacy and limitations of several common methods for optimizing guidance and control while proposing a few more, where all <italic>methods are applied to the full, nonlinear, coupled equations of motion including cross-products of motion from the transport theorem</italic>. <italic>While the reviewed literature introduces quantitative studies that include parametric uncertainty in nonlinear terms, this article proposes accommodating such uncertainty with time-varying solutions to Hamiltonian systems of equations solved in real-time.</italic> Five disparate types of optimum guidance and control algorithms are presented and compared to a classical benchmark. Comparative analysis is based on tracking errors (both states and rates), fuel usage, and computational burden. <italic>Real-time optimization with singular switching plus nonlinear transport theorem decoupling is newly introduced and proves superior</italic> by matching open-loop solutions to the constrained optimization problem (in terms of state and rate errors and fuel usage), while robustness is validated in the utilization of mixed, noisy state and rate sensors and uniformly varying mass and mass moments of inertia. <italic>Compared to benchmark, state-of-the-art methods state tracking errors are reduced one-hundred ten percent. Rate tracking errors are reduced one-hundred thirteen percent. Control utilization (fuel) is reduced eighty-four percent, while computational burden is reduced ten percent, simultaneously, where the proposed methods have no control gains and no linearization.</italic>
</p>
</abstract>
<kwd-group>
<kwd>optimization problems</kwd>
<kwd>control problems</kwd>
<kwd>nonlinear problems</kwd>
<kwd>mathematical modeling</kwd>
<kwd>transport theorem</kwd>
</kwd-group>
</article-meta>
</front>
<body>
<sec id="s1">
<title>1 Introduction</title>
<p>Considering intermittent coverage and communication delays with typical stellar satellites like those illustrated in <xref ref-type="fig" rid="F1">Figure 1</xref>, autonomous guidance and control necessitates real-time on-board computation with demanding accuracy and robustness requirements, despite potentially coarsely known system characteristics, varying environmental conditions, and mission-related constraints. Many solutions have been developed, including optimal analytic methods for simple cases (<xref ref-type="bibr" rid="B8">Chai et al., 2019</xref>), while optimal methods for guiding and controlling realistic nonlinear systems ubiquitously necessitate either computational solutions or linearization to achieve analytical solutions. <italic>This manuscript proposes new techniques for utilizing optimization techniques applied to the full, nonlinear, coupled equations of mechanical motion, and the techniques are analytic as opposed to numeric.</italic> Rao proposed numerical trajectory optimization applied to orbital transfer problems (<xref ref-type="bibr" rid="B32">Rao et al., 2002</xref>) and also produced a survey of numerical methods for optimal control (<xref ref-type="bibr" rid="B31">Rao, 2009</xref>). Numerical methods are very quickly resorted to as researchers grapple with six nonlinear, coupled equations of mechanical motion (both translation and rotation). A generalized treatment method (again numerical) for optimization problems was proposed by <xref ref-type="bibr" rid="B33">Ross and Karpenko (2012</xref>) for such orbital transfer problems, spacecraft rendezvous and docking (<xref ref-type="bibr" rid="B15">Gao et al., 2009</xref>; <xref ref-type="bibr" rid="B29">Pontani and Conway, 2013</xref>; <xref ref-type="bibr" rid="B6">Bonnans and Festa, 2017</xref>), and planetary entry and hypersonic space planes (<xref ref-type="bibr" rid="B49">Windhorst et al., 1997</xref>; <xref ref-type="bibr" rid="B2">Arora, 2002</xref>; <xref ref-type="bibr" rid="B11">Chen et al., 2005</xref>; <xref ref-type="bibr" rid="B18">Ivanov et al., 2007</xref>; <xref ref-type="bibr" rid="B50">Zhang and Chen, 2011</xref>). Arguably, following the publication of <xref ref-type="bibr" rid="B34">Ross (2015</xref>), numerical optimization in general form realized the current dominance of numerical methods: for example, <xref ref-type="bibr" rid="B45">Tian et al. (2015</xref>) and <xref ref-type="bibr" rid="B35">Sagliano et al. (2017</xref>) for real-time (numerical) trajectory optimization and <xref ref-type="bibr" rid="B10">Chai et al. (2018a</xref>) and <xref ref-type="bibr" rid="B9">Chai et al. (2018b</xref>) for aero-assisted optimal tracking guidance.</p>
<fig id="F1" position="float">
<label>FIGURE 1</label>
<caption>
<p>
<bold>(A)</bold> NASA&#x2019;s FASTSAT microsatellite readied to share ride to space (<xref ref-type="bibr" rid="B28">NASA, 2021a</xref>). <bold>(B)</bold> NASA ejects nanosatellite from microsatellite in space. Image used consistent with NASA policy, &#x201c;NASA content (images, videos, and audios) are generally not copyrighted and may be used for educational or informational purposes without needing explicit permissions&#x201d; (<xref ref-type="bibr" rid="B26">NASA, 2021b</xref>).</p>
</caption>
<graphic xlink:href="frobt-09-884669-g001.tif"/>
</fig>
<p>Lacking ubiquitous analytic methods to treat the nonlinear, coupled systems of equations, linearization followed by least-squares optimization leads to the so-called Ricatti equations (<xref ref-type="bibr" rid="B28">NASA, 2021a</xref>) to produce optimal control gains (<xref ref-type="bibr" rid="B21">Kwakernaak and Sivan, 1972</xref>) with presumed error feedback (<xref ref-type="bibr" rid="B19">Kelly, 2005</xref>) in both continuous and discrete form (<xref ref-type="bibr" rid="B14">Flugge-Lotz, 1953</xref>). Optimization is sometimes sought after first implementing adaptive (<xref ref-type="bibr" rid="B36">Sands et al., 2009</xref>) methods to use feedback achieving predictability (<xref ref-type="bibr" rid="B38">Sands, 2019</xref>). <xref ref-type="bibr" rid="B12">Duprez et al. (2017</xref>) sought to tackle the nonlinear transport theorem terms by proposing control being a Lipschitz vector field on a fixed control set angular velocity, <inline-formula id="inf1">
<mml:math id="m1">
<mml:mi>&#x3c9;</mml:mi>
</mml:math>
</inline-formula>. This manuscript seeks to extend the notion of tacking nonlinear transport theorem to include time-varying angular velocities. <xref ref-type="bibr" rid="B1">Arguchintsev and Poplevko (2021</xref>) proposed an optimal control for linear hyperbolic systems of ordinary differential equations by estimating the residuals in terms of the value that characterizes the smallness of the measure of the domain of the needle variation of control. Emphasis was placed on problem formulation by <xref ref-type="bibr" rid="B41">Srochko et al. (2021</xref>), but the focus was parameterizing the cost functional rather than the nonlinear constraint function as done in this work.</p>
<p>Championed by Lorenz, physics-based methods (<xref ref-type="bibr" rid="B37">Sands and Ghadawala, 2011</xref>) were proposed to instantiate &#x201c;self-sensing machines methods&#x201d;, where the sensing functions are fully integrated on a drive to detect key operating characteristics including rotor position, torque, speed, temperature, and motor/load diagnostics&#x201d; (<xref ref-type="bibr" rid="B23">Malecek, 2021</xref>). The physics-based methods codified optimal feedforward forms, which were later augmented with optimal feedback (<xref ref-type="bibr" rid="B40">Smeresky et al., 2020</xref>), instantiating the relatively new method referred to as deterministic artificial intelligence (D.A.I.). D.A.I. necessitates analytic forms of desired state trajectories (<xref ref-type="bibr" rid="B3">Baker et al., 2018</xref>) for the feedforward control and state observers (<xref ref-type="bibr" rid="B16">Heidlauf and Cooper, 2017</xref>; <xref ref-type="bibr" rid="B48">Willems, 1971</xref>) for the feedback control. In 2021, the utilization of Pontryagin&#x2019;s approach (<xref ref-type="bibr" rid="B30">Pontryagin et al., 1962</xref>; <xref ref-type="bibr" rid="B5">Boltyanskii, 1971</xref>) to impose necessary conditions of optimality as a first step led to boundary-value problems that produce optimal controls, but <italic>also</italic> optimal trajectories (<xref ref-type="bibr" rid="B39">Sands, 2021</xref>) as alternatives to the sinusoidal trajectories recommended by <xref ref-type="bibr" rid="B3">Baker et al. (2018</xref>). These optimal trajectories are utilized in this manuscript as prescriptions for the coupled motion cross-products resulting from the inclusion of the transport theorem of motion.</p>
<p>Thus, the reader may consider the use of classical control methods (proportional plus velocity will be evaluated here) and seek to optimize control gains or use the Ricatti equation to seek linear-quadratic optimal classical control gains. Alternatively, time-optimal control may be considered a feedback form or control-minimizing control in an open-loop feedforward topology. Furthermore, real-time optimal controls could be derived that utilize feedback of state and rate in a matrix-inverse to enforce optimality in a closed-loop. Several different options for matrix inversion are available, generating subsets of the broader category of real-time optimal control. A key limitation of all the methods described so far is the inability to deal with nonlinear, coupled equations generated by the transport theorem in both translational and rotational mechanics.</p>
<p>Parametric uncertainty is another challenging aspect of nonlinear systems. <xref ref-type="bibr" rid="B17">Hu, et al. (2015)</xref> investigated nonlinear regression including parameter uncertainty estimates using the Monte Carlo and bootstrap methods to estimate nonlinear parameter uncertainties with a Microsoft Excel spreadsheet. Similarly, Monte Carlo statistical analysis is utilized here in MATLAB/SIMULINK and presented in section 3 Results. A modified James&#x2013;Stein State Estimator (JSSE), named Modified James&#x2013;Stein State Estimator (JSSE-M) was proposed by <xref ref-type="bibr" rid="B24">Meda-Campana (2018)</xref> as an alternative to filtering the states of nonlinear systems within a control scheme. <xref ref-type="bibr" rid="B13">Ferreres and Fromion (2010)</xref> studied the existence of limit-cycles in a closed-loop, which simultaneously contains nonlinearities and parametric uncertainties, addressed using three methods: 1) using a necessary condition of oscillation embodies in a graphical method, 2) checking the absence of limit-cycles despite parametric uncertainties using a sufficient condition of non-oscillation, and 3) using the necessary condition of oscillation to synthesize a controller which modifies the characteristics (magnitude and frequency) of the limit-cycle. A generically similar approach is used here, where necessary conditions of optimality are used to yield a nonlinear controller that can accommodate uncertainties in nonlinear systems. Arguably, a much more common approach to stability robustness of uncertain nonlinear multivariable systems under input-output feedback linearization is to allow plant uncertainty to be propagated through the control design, yielding an uncertainty description of the closed-loop in polytopic form, as presented by <xref ref-type="bibr" rid="B7">Botto et al. (2001</xref>).</p>
<p>Recently, <xref ref-type="bibr" rid="B43">Taghieh and Shafiei (2021a</xref>) proposed an observer-based robust model predictive control scheme to control a class of switched nonlinear systems in the presence of time delay and parametric uncertainties under arbitrary switching in addition to proposing a static output feedback controller (<xref ref-type="bibr" rid="B44">Taghieh and Shafiei, 2021b</xref>) for a class of switched nonlinear systems subject to time-varying delay and uncertainties under asynchronous switching. <xref ref-type="bibr" rid="B51">Zhang et al. (2022)</xref> addressed nonlinear systems with mismatched uncertainties under input/output quantization proposing adaptive output feedback control. Fractional parametric uncertainties and distributed delays in nonlinear systems together with time delay, parametric uncertainties and actuator faults were just addressed by Sweetha et al. using a non-fragile fault-tolerant controller, which makes the system asymptotically stable with the specified mixed H&#x221e; and passive performance index (<xref ref-type="bibr" rid="B42">Sweetha et al., 2022</xref>). <xref ref-type="bibr" rid="B47">Wei et al. (2022)</xref> sought to control uncertain nonlinear processes using neural networks incorporating into the control loop an adaptive neural network embedded contraction-based controller (to ensure convergence to time-varying references) and an online parameter identification module coupled with reference generation (to ensure modeled parameters converge those of the physical system). <xref ref-type="bibr" rid="B46">Wang et al. (2009)</xref> investigated quasi-Hamiltonian systems with parametric uncertainty using the stochastic averaging method and stochastic dynamical programming principle. A particular strength of the work lies in two examples given to illustrate the proposed control procedure and its robustness. <xref ref-type="bibr" rid="B22">Mahmoodabadi and Andalib Sahnehsaraei (2021</xref>) introduced a new online optimal control based on the input&#x2013;output feedback linearization and a multi-crossover genetic algorithm for under-actuated nonlinear systems having parametric uncertainties. Optimal control problems with bounded uncertainties on parameters were addressed using interval arithmetics by Etienne et al. where an interval method based on Pontryagin&#x2019;s Minimum Principle (as proposed here) is proposed in <xref ref-type="bibr" rid="B4">Bertin et al. (2021</xref>) to enclose the solutions of an optimal control problem with embedded bounded uncertainties. This method is used to compute an enclosure of all optimal trajectories of the problem and open-loop and closed-loop enclosures meant to validate an optimal guidance algorithm on a concrete system with inaccurate knowledge of the parameters.</p>
<p>Next-generation methods are required that apply mathematically optimal results yet retain the simplicity of analytics solutions obfuscating numerical (or otherwise more complicated) methods and providing further advancements in autonomous navigation. The current movement toward the utilization of very small vehicles is accompanied by very limited computational resources while maintaining autonomy, robustness, and accuracy. Newly proposed methods and algorithms for autonomous guidance and control are presented in direct, critical comparison to the recent research trends of both academia and industry, presuming utilization of noisy sensors, for example, star trackers, rate gyroscopes, inertial measurement units, and global navigation systems, amongst other sensors in multi-sensor-based architectures for vehicle navigation. Intelligence methods permitting systems to learn real-time optimal solutions (analytically) are preferred.</p>
<p>Proposed novelties:<list list-type="simple">
<list-item>
<p>1. A brief methodological recitation of five disparate incarnations of optimal control and their direct comparison to classical feedback control as a benchmark (the P &#x2b; V proportional plus velocity controller): 1) control-minimizing open-loop optimal, 2) linear-quadratic optimal regulator, 3) time-optimal, 4) real-time optimal, and 5) real-time optimal with singular switching. Methods 3, 4, and 5 involve no feedback control gains tuning.</p>
</list-item>
<list-item>
<p>2. Direct comparison of the efficacy of each of the five methods listed in item &#x23;1 controlling <italic>linear</italic> double-integrator plants, where comparison is made using state accuracy, rate accuracy, control (fuel) usage, and computational runtime (as a manifestation of computational burden).</p>
</list-item>
<list-item>
<p>3. Direct comparison of the efficacy of each of the five methods listed in item &#x23;1 controlling double-integrator plants, <italic>including nonlinear transport theorem cross-products of motion</italic> induced by measurement in rotating reference frames, where comparison is made using state accuracy, rate accuracy, control (fuel) usage, and computational runtime (as a manifestation of computational burden). In item &#x23;3, the <italic>linear control designs are used on the nonlinear plants</italic> to evaluate the error resulting from using linear control designs in the real-world on nonlinear systems.</p>
</list-item>
<list-item>
<p>4. Direct comparison of the efficacy of each of the five methods listed in item &#x23;1 controlling double-integrator plants, <italic>including nonlinear transport theorem cross-products of motion</italic> induced by measurement in rotating reference frames, where comparison is made using state accuracy, rate accuracy, control (fuel) usage, and computational runtime (as a manifestation of computational burden). <italic>Unlike item &#x23;3 above, nonlinear decoupling control stemming from the solution to the minimum-control optimization problem is introduced</italic> to each control methodology by utilizing the optimal rate trajectories that result from the original open-loop optimization problem that minimizes control effort. This nonlinear control utilizing the constrained optimization problem results (linear control and nonlinear combinations of the optimal trajectories) may be considered the largest contribution to the article.</p>
</list-item>
<list-item>
<p>5. Items &#x23;3 and &#x23;4 are both repeated to evaluate the deleterious effects on each method of <italic>noisy sensors and random uniformly varying system mass and mass moments of inertia.</italic>
</p>
</list-item>
</list>
</p>
<p>Motivated to develop simple methods that flow from the solution of constrained optimization problems yet do not necessitate numerical solutions leads to arguably, the most interesting proposal: Utilization of analytic solutions to the constrained optimization problem in either a feedforward or feedback sense applied to full nonlinear, coupled guidance and control problems, specifically including the transport theorem coupling cross-products for rotation and translation, respectively. This method is mathematically developed in section 2, resulting in proposals for both feedforward and feedback methods.</p>
<p>Section 2 includes brief derivations of each respective approach as briefly as practicable, while section 3 provides the results of implementing each disparate methodology. Tables of variable definitions and nomenclature have been placed throughout the manuscript: <xref ref-type="table" rid="T1">Tables 1-6</xref>, while <xref ref-type="table" rid="T5">Table 5</xref> articulates necessary methods for repeating the presented work. <xref ref-type="table" rid="T7">Table 7</xref> summarizes Monte Carlos analysis of parameter variations from <xref ref-type="fig" rid="F2">Figure 2</xref>, while <xref ref-type="table" rid="T8">Table 8</xref> summarizes percent performance improvements for each of the six evaluated techniques.</p>
<table-wrap id="T1" position="float">
<label>TABLE 1</label>
<caption>
<p>Double-integrator plant ten-run mini-Monte Carlo analysis (faults occurred after first simulation run) executed in MATLAB<sup>&#xae;</sup>/SIMULINK<sup>&#xae;</sup> R2021b (9.11.0.1769968) whose machine precision <inline-formula id="inf36">
<mml:math id="m54">
<mml:mrow>
<mml:mi>e</mml:mi>
<mml:mi>p</mml:mi>
<mml:mi>s</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>2.2204</mml:mn>
<mml:mo>&#xd7;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mn>10</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>16</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula>.</p>
</caption>
<table>
<thead valign="top">
<tr>
<th align="left">Method<xref ref-type="table-fn" rid="Tfn1">
<sup>a</sup>
</xref>
</th>
<th align="center">State error</th>
<th align="center">Rate error</th>
<th align="center">Cost</th>
<th align="center">Runtime</th>
</tr>
</thead>
<tbody valign="top">
<tr>
<td align="left">
<inline-formula id="inf37">
<mml:math id="m55">
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mi>T</mml:mi>
<mml:mo>]</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="center">Fault</td>
<td align="center">Fault</td>
<td align="center">Fault</td>
<td align="center">Fault</td>
</tr>
<tr>
<td align="left">
<inline-formula id="inf38">
<mml:math id="m56">
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>\</mml:mo>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mi>T</mml:mi>
<mml:mo>]</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="center">0.000052</td>
<td align="center">&#x2212;0.0048598</td>
<td align="center">4.0281</td>
<td align="center">1.6221</td>
</tr>
<tr>
<td align="left">
<inline-formula id="inf39">
<mml:math id="m57">
<mml:mrow>
<mml:mtext>inv</mml:mtext>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mi>T</mml:mi>
<mml:mo>]</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="center">Fault</td>
<td align="center">Fault</td>
<td align="center">Fault</td>
<td align="center">Fault</td>
</tr>
<tr>
<td align="left">
<inline-formula id="inf40">
<mml:math id="m58">
<mml:mrow>
<mml:mtext>pinv</mml:mtext>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mi>T</mml:mi>
<mml:mo>]</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="center">0.001169</td>
<td align="center">&#x2212;0.003941</td>
<td align="center">4.0281</td>
<td align="center">1.5589</td>
</tr>
<tr>
<td align="left">LU Inverse <inline-formula id="inf41">
<mml:math id="m59">
<mml:mrow>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mi>T</mml:mi>
<mml:mo>]</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="center">Fault</td>
<td align="center">Fault</td>
<td align="center">Fault</td>
<td align="center">Fault</td>
</tr>
</tbody>
</table>
<table-wrap-foot>
<fn id="Tfn1">
<label>a</label>
<p>Real-time optimal control (with singular switching).</p>
</fn>
</table-wrap-foot>
</table-wrap>
<table-wrap id="T2" position="float">
<label>TABLE 2</label>
<caption>
<p>Proximal variable definitions.</p>
</caption>
<table>
<thead valign="top">
<tr>
<th align="left">Variable</th>
<th align="center">Definition</th>
<th align="left">Variable</th>
<th align="left">Definition</th>
</tr>
</thead>
<tbody valign="top">
<tr>
<td align="left">
<inline-formula id="inf42">
<mml:math id="m60">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>x</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mi>d</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="left">Desired state trajectory</td>
<td align="center">
<inline-formula id="inf43">
<mml:math id="m61">
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>&#x3be;</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="left">Critical damping ratio</td>
</tr>
<tr>
<td align="left">
<inline-formula id="inf44">
<mml:math id="m62">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>K</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mi>P</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="left">Proportional gain</td>
<td align="center">
<inline-formula id="inf45">
<mml:math id="m63">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>&#x3c9;</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mi>n</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="left">Natural frequency</td>
</tr>
<tr>
<td align="left">
<inline-formula id="inf46">
<mml:math id="m64">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>K</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mi>v</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="left">Velocity gain</td>
<td align="center">
<inline-formula id="inf47">
<mml:math id="m65">
<mml:mrow>
<mml:msub>
<mml:mi>t</mml:mi>
<mml:mi>s</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="left">Settling time</td>
</tr>
</tbody>
</table>
<table-wrap-foot>
<fn>
<p>Such tables are distributed throughout the manuscript to increase the ease of reading, while a combined master table of definitions is included in the <xref ref-type="sec" rid="s11">Supplementary Appendix</xref>.</p>
</fn>
</table-wrap-foot>
</table-wrap>
<table-wrap id="T3" position="float">
<label>TABLE 3</label>
<caption>
<p>Proximal variable definitions.</p>
</caption>
<table>
<thead valign="top">
<tr>
<th align="left">Variable</th>
<th align="center">Definition</th>
<th align="center">Variable</th>
<th align="center">Definition</th>
</tr>
</thead>
<tbody valign="top">
<tr>
<td align="left">
<inline-formula id="inf48">
<mml:math id="m66">
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>A</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="left">State transition matrix</td>
<td align="center">
<inline-formula id="inf49">
<mml:math id="m67">
<mml:mi>J</mml:mi>
</mml:math>
</inline-formula>
</td>
<td align="left">Cost function</td>
</tr>
<tr>
<td align="left">
<inline-formula id="inf50">
<mml:math id="m68">
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>B</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="left">Control matrix</td>
<td align="center">
<inline-formula id="inf51">
<mml:math id="m69">
<mml:mrow>
<mml:msub>
<mml:mi>t</mml:mi>
<mml:mi>f</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="left">Final time</td>
</tr>
<tr>
<td align="left">
<inline-formula id="inf52">
<mml:math id="m70">
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>K</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="left">Gain matrix</td>
<td align="center">
<inline-formula id="inf53">
<mml:math id="m71">
<mml:mi>&#x221e;</mml:mi>
</mml:math>
</inline-formula>
</td>
<td align="left">Infinity</td>
</tr>
<tr>
<td align="left">
<inline-formula id="inf54">
<mml:math id="m72">
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>Q</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="left">State weighting matrix</td>
<td align="center">
<inline-formula id="inf55">
<mml:math id="m73">
<mml:mrow>
<mml:mi>s</mml:mi>
<mml:mi>g</mml:mi>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="left">Signum function</td>
</tr>
<tr>
<td align="left">
<inline-formula id="inf56">
<mml:math id="m74">
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>R</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="left">Control weighting matrix</td>
<td align="center">
<inline-formula id="inf57">
<mml:math id="m75">
<mml:mi>p</mml:mi>
</mml:math>
</inline-formula> (t)</td>
<td align="left">Parameters (co-states)</td>
</tr>
<tr>
<td align="left">
<inline-formula id="inf58">
<mml:math id="m76">
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>P</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="left">Covariance matrix</td>
<td align="center">
<inline-formula id="inf59">
<mml:math id="m77">
<mml:mrow>
<mml:msub>
<mml:mi>b</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="left">Control coefficients</td>
</tr>
</tbody>
</table>
</table-wrap>
<table-wrap id="T4" position="float">
<label>TABLE 4</label>
<caption>
<p>Proximal variable definitions.</p>
</caption>
<table>
<thead valign="top">
<tr>
<th align="left">Variable</th>
<th align="center">Definition</th>
<th align="center">Variable</th>
<th align="center">Definition</th>
</tr>
</thead>
<tbody valign="top">
<tr>
<td align="left">J</td>
<td align="left">Cost function</td>
<td align="center">
<inline-formula id="inf60">
<mml:math id="m78">
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>u</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#x2217;</mml:mo>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="left">Optimal control</td>
</tr>
<tr>
<td align="left">dt</td>
<td align="left">Differential time</td>
<td align="center">
<inline-formula id="inf61">
<mml:math id="m79">
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>v</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#x2d9;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:mrow>
<mml:mo>&#x2217;</mml:mo>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="left">Optimal (angular) acceleration</td>
</tr>
<tr>
<td align="left">t</td>
<td align="left">Time</td>
<td align="center">
<inline-formula id="inf62">
<mml:math id="m80">
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>v</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#x2217;</mml:mo>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="left">Optimal (angular) velocity</td>
</tr>
<tr>
<td align="left">
<inline-formula id="inf63">
<mml:math id="m81">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>u</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="left">Control</td>
<td align="center">
<inline-formula id="inf64">
<mml:math id="m82">
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>x</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#x2217;</mml:mo>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="left">Optimal (angular) position</td>
</tr>
<tr>
<td align="left">
<inline-formula id="inf65">
<mml:math id="m83">
<mml:mrow>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>x</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="left">Current position</td>
<td align="center">
<inline-formula id="inf66">
<mml:math id="m84">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>a</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:math>
</inline-formula>, <inline-formula id="inf67">
<mml:math id="m85">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>b</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:math>
</inline-formula>, <inline-formula id="inf68">
<mml:math id="m86">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>c</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:math>
</inline-formula>, <inline-formula id="inf69">
<mml:math id="m87">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>d</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="left">Integration constants</td>
</tr>
<tr>
<td align="left">
<inline-formula id="inf70">
<mml:math id="m88">
<mml:mrow>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>v</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="left">Current velocity</td>
<td align="center">
<inline-formula id="inf71">
<mml:math id="m89">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>a</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:math>
</inline-formula>, <inline-formula id="inf72">
<mml:math id="m90">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>b</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:math>
</inline-formula>, <inline-formula id="inf73">
<mml:math id="m91">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>c</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:math>
</inline-formula>, <inline-formula id="inf74">
<mml:math id="m92">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>d</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="left">Integration constant estimates</td>
</tr>
</tbody>
</table>
</table-wrap>
<table-wrap id="T5" position="float">
<label>TABLE 5</label>
<caption>
<p>Proximal variable definitions.</p>
</caption>
<table>
<thead valign="top">
<tr>
<th align="left">Variable</th>
<th align="center">Definition</th>
<th align="center">Variable</th>
<th align="center">Definition</th>
</tr>
</thead>
<tbody valign="top">
<tr>
<td align="left">
<inline-formula id="inf84">
<mml:math id="m108">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>F</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="left">Externally applied forces</td>
<td align="center">
<inline-formula id="inf85">
<mml:math id="m109">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>T</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="left">Externally applied torques</td>
</tr>
<tr>
<td align="left">
<inline-formula id="inf86">
<mml:math id="m110">
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>m</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="left">Mass</td>
<td align="center">
<inline-formula id="inf87">
<mml:math id="m111">
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>J</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="left">Mass moment of inertia</td>
</tr>
<tr>
<td align="left">
<inline-formula id="inf88">
<mml:math id="m112">
<mml:mrow>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>a</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>x</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#xa8;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="left">Translational acceleration</td>
<td align="center">
<inline-formula id="inf89">
<mml:math id="m113">
<mml:mrow>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>&#x3b1;</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>&#x3b8;</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#xa8;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="left">Rotational acceleration</td>
</tr>
<tr>
<td align="left">
<inline-formula id="inf90">
<mml:math id="m114">
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:msup>
<mml:mi>d</mml:mi>
<mml:mn>2</mml:mn>
</mml:msup>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>x</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:msup>
<mml:mi>t</mml:mi>
<mml:mn>2</mml:mn>
</mml:msup>
</mml:mrow>
</mml:mfrac>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>v</mml:mi>
<mml:mo>&#x2d9;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="left">Translational acceleration</td>
<td align="center">
<inline-formula id="inf91">
<mml:math id="m115">
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:msup>
<mml:mi>d</mml:mi>
<mml:mn>2</mml:mn>
</mml:msup>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>&#x3b8;</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:msup>
<mml:mi>t</mml:mi>
<mml:mn>2</mml:mn>
</mml:msup>
</mml:mrow>
</mml:mfrac>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>&#x3c9;</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#x2d9;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="left">Rotational acceleration</td>
</tr>
<tr>
<td align="left">
<inline-formula id="inf92">
<mml:math id="m116">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>r</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="left">Radius vector relative to rotating frame</td>
<td align="center">
<inline-formula id="inf93">
<mml:math id="m117">
<mml:mrow>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>&#x3c9;</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>&#x3b8;</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#x2d9;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="left">Rotational velocity</td>
</tr>
<tr>
<td align="left">
<inline-formula id="inf94">
<mml:math id="m118">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>v</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="left">Velocity vector relative to rotating frame</td>
<td align="center">
<inline-formula id="inf95">
<mml:math id="m119">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>&#x3b8;</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="left">Displacement angle</td>
</tr>
</tbody>
</table>
<table-wrap-foot>
<fn>
<p>Such tables are distributed throughout the manuscript to increase the ease of reading, while a combined master table of definitions is included in the <xref ref-type="sec" rid="s11">Supplementary Appendix</xref>.</p>
</fn>
</table-wrap-foot>
</table-wrap>
<table-wrap id="T6" position="float">
<label>TABLE 6</label>
<caption>
<p>Proximal variable definitions.</p>
</caption>
<table>
<thead valign="top">
<tr>
<th align="left">
<italic>Variable</italic>
</th>
<th align="center">
<italic>Definition</italic>
</th>
<th align="center">
<italic>Variable</italic>
</th>
<th align="center">
<italic>Definition</italic>
</th>
</tr>
</thead>
<tbody valign="top">
<tr>
<td align="left">
<inline-formula id="inf96">
<mml:math id="m120">
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mi>T</mml:mi>
<mml:mo>]</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="left">
<italic>MATLAB inverse</italic>
</td>
<td align="left">
<italic>m</italic>
</td>
<td align="left">
<italic>Mass</italic>
</td>
</tr>
<tr>
<td align="left">
<inline-formula id="inf97">
<mml:math id="m121">
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>\</mml:mo>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mi>T</mml:mi>
<mml:mo>]</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="left">
<italic>MATLAB inverse</italic>
</td>
<td align="left">
<italic>J</italic>
</td>
<td align="left">
<italic>Mass moments</italic>
</td>
</tr>
<tr>
<td align="left">
<inline-formula id="inf98">
<mml:math id="m122">
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>v</mml:mi>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mi>T</mml:mi>
<mml:mo>]</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="left">
<italic>MATLAB inverse</italic>
</td>
<td align="left">
<inline-formula id="inf99">
<mml:math id="m123">
<mml:mi>&#x3c9;</mml:mi>
</mml:math>
</inline-formula>
</td>
<td align="left">
<italic>Angular velocity</italic>
</td>
</tr>
<tr>
<td align="left">
<inline-formula id="inf100">
<mml:math id="m124">
<mml:mrow>
<mml:mi>p</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>v</mml:mi>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mi>T</mml:mi>
<mml:mo>]</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="left">
<italic>MATLAB pseudo-inverse</italic>
</td>
<td align="left">
<inline-formula id="inf101">
<mml:math id="m125">
<mml:mi>r</mml:mi>
</mml:math>
</inline-formula>
</td>
<td align="left">
<italic>Position vector</italic>
</td>
</tr>
<tr>
<td align="left">
<italic>lu(</italic>
<inline-formula id="inf102">
<mml:math id="m126">
<mml:mrow>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mi>T</mml:mi>
<mml:mo>]</mml:mo>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="left">
<italic>MATLAB LU-inverse</italic>
</td>
<td align="left">
<inline-formula id="inf103">
<mml:math id="m127">
<mml:mi>v</mml:mi>
</mml:math>
</inline-formula>
</td>
<td align="left">
<italic>Translational velocity</italic>
</td>
</tr>
<tr>
<td align="left">
<inline-formula id="inf104">
<mml:math id="m128">
<mml:mrow>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mrow>
<mml:mi>t</mml:mi>
<mml:mi>r</mml:mi>
<mml:mi>a</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>s</mml:mi>
<mml:mi>p</mml:mi>
<mml:mi>o</mml:mi>
<mml:mi>r</mml:mi>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="left">
<italic>Feedback decoupler</italic>
</td>
<td align="left">
<inline-formula id="inf105">
<mml:math id="m129">
<mml:mrow>
<mml:msup>
<mml:mtext>&#x3c9;</mml:mtext>
<mml:mtext>&#x2a;</mml:mtext>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="left">
<italic>Optimal angular velocity</italic>
</td>
</tr>
<tr>
<td align="left">
<inline-formula id="inf106">
<mml:math id="m130">
<mml:mrow>
<mml:msubsup>
<mml:mi>u</mml:mi>
<mml:mrow>
<mml:mi>t</mml:mi>
<mml:mi>r</mml:mi>
<mml:mi>a</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>s</mml:mi>
<mml:mi>p</mml:mi>
<mml:mi>o</mml:mi>
<mml:mi>r</mml:mi>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mo>&#x2217;</mml:mo>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="left">
<italic>Feedforward (decoupler)</italic>
</td>
<td align="left">
<inline-formula id="inf107">
<mml:math id="m131">
<mml:mrow>
<mml:msup>
<mml:mtext>r</mml:mtext>
<mml:mtext>&#x2a;</mml:mtext>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="left">
<italic>Optimal position vector</italic>
</td>
</tr>
<tr>
<td align="left"/>
<td align="left"/>
<td align="left">
<inline-formula id="inf108">
<mml:math id="m132">
<mml:mrow>
<mml:msup>
<mml:mtext>v</mml:mtext>
<mml:mtext>&#x2a;</mml:mtext>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="left">
<italic>Optimal Translational velocity</italic>
</td>
</tr>
<tr>
<td align="left">
<italic>u</italic>
</td>
<td colspan="3" align="left">
<italic>Control, the sum of</italic> <xref ref-type="disp-formula" rid="e18">
<italic>Eq. 18</italic>
</xref> <italic>or</italic> <xref ref-type="disp-formula" rid="e19">
<italic>Eq. 19</italic>
</xref> <italic>with</italic> <italic>
<xref ref-type="disp-formula" rid="e5">Eqs 5</xref>, <xref ref-type="disp-formula" rid="e8">8</xref>, <xref ref-type="disp-formula" rid="e12">12</xref>, <xref ref-type="disp-formula" rid="e14">14</xref>
</italic>
<italic>, or</italic> <xref ref-type="disp-formula" rid="e15">
<italic>Eq. 15</italic>
</xref>
</td>
</tr>
</tbody>
</table>
</table-wrap>
<table-wrap id="T7" position="float">
<label>TABLE 7</label>
<caption>
<p>One-thousand-run (respectively) Monte Carlo analysis.</p>
</caption>
<table>
<thead valign="top">
<tr>
<th align="left">Method</th>
<th align="center">State error</th>
<th align="center">Rate error</th>
<th align="center">Cost</th>
<th align="center">Runtime</th>
</tr>
</thead>
<tbody valign="top">
<tr>
<td align="left">Classical <italic>p</italic> &#x2b; V</td>
<td align="char" char=".">&#x2212;0.0065157</td>
<td align="char" char=".">0.038442</td>
<td align="char" char=".">25.3181</td>
<td align="char" char=".">1.2342</td>
</tr>
<tr>
<td align="left">LQR Optimal PD</td>
<td align="char" char=".">&#x2212;0.0050504</td>
<td align="char" char=".">0.56851</td>
<td align="char" char=".">75.5278</td>
<td align="char" char=".">1.23</td>
</tr>
<tr>
<td align="left">Time-optimal control</td>
<td valign="top" align="char" char=".">0.16381</td>
<td align="char" char=".">1.2703</td>
<td align="char" char=".">1.3643</td>
<td align="char" char=".">1.3055</td>
</tr>
<tr>
<td align="left">Open loop optimal<xref ref-type="table-fn" rid="Tfn6">
<sup>a</sup>
</xref>
</td>
<td align="char" char=".">0.00069197</td>
<td align="char" char=".">&#x2212;0.0052251</td>
<td align="char" char=".">4.0281</td>
<td align="char" char=".">1.2335</td>
</tr>
<tr>
<td align="left">Real-time optimal (RTOC)<xref ref-type="table-fn" rid="Tfn6">
<sup>a</sup>
</xref>
</td>
<td valign="top" align="char" char=".">0.062551</td>
<td align="char" char=".">&#x2212;165.1258</td>
<td align="char" char=".">40,959.5421</td>
<td align="char" char=".">1.2818</td>
</tr>
<tr>
<td align="left">Switched RTOC<xref ref-type="table-fn" rid="Tfn6">
<sup>a</sup>
</xref>
</td>
<td align="char" char=".">0.00066117</td>
<td align="char" char=".">&#x2212;0.0051746</td>
<td align="char" char=".">4.0281</td>
<td align="char" char=".">1.1068</td>
</tr>
</tbody>
</table>
<table-wrap-foot>
<fn id="Tfn6">
<label>a</label>
<p>Real-time optimal control (with and without switching) and open-loop optimal control are visually indistinguishable from one another in the graphic depiction.</p>
</fn>
</table-wrap-foot>
</table-wrap>
<fig id="F2" position="float">
<label>FIGURE 2</label>
<caption>
<p>Scatter plots displaying the results of 1,000 simulation runs (per case) with randomly (uniformly) varied mass and mass moments <inline-formula id="inf83">
<mml:math id="m107">
<mml:mrow>
<mml:mo>&#xb1;</mml:mo>
<mml:mn>10</mml:mn>
<mml:mo>%</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula>. <bold>(A)</bold> classical P &#x2b; V, <bold>(B)</bold> LQR optimal PD, <bold>(C)</bold> time-optimal control, <bold>(D)</bold> open-loop optimal, <bold>(E)</bold> real-time optimal (RTOC), and <bold>(F)</bold> switched RTOC.</p>
</caption>
<graphic xlink:href="frobt-09-884669-g002.tif"/>
</fig>
<table-wrap id="T8" position="float">
<label>TABLE 8</label>
<caption>
<p>Percentage change in performance in one-thousand-run (respectively) Monte Carlo analysis: double-integrator plant (<italic>with</italic> transport theorem) with control design based off double-integrator <italic>with</italic> transport theorem and noisy, mixed sensors (state and rate).</p>
</caption>
<table>
<thead valign="top">
<tr>
<th align="left">Method</th>
<th align="center">State error</th>
<th align="center">Rate error</th>
<th align="center">Cost</th>
<th align="center">Runtime</th>
</tr>
</thead>
<tbody valign="top">
<tr>
<td align="left">Classical <italic>p</italic> &#x2b; V</td>
<td align="center">&#x2014;</td>
<td align="center">&#x2014;</td>
<td align="center">&#x2014;</td>
<td align="center">&#x2014;</td>
</tr>
<tr>
<td align="left">LQR Optimal PD</td>
<td align="center">&#x2212;22%</td>
<td align="center">1,379%</td>
<td align="center">198%</td>
<td align="center">0%</td>
</tr>
<tr>
<td align="left">Time-optimal control</td>
<td align="center">2,614%</td>
<td align="center">3,204%</td>
<td align="center">&#x2212;95%</td>
<td align="center">6%</td>
</tr>
<tr>
<td align="left">Open loop optimal <xref ref-type="table-fn" rid="Tfn7">
<sup>a</sup>
</xref>
</td>
<td align="center">&#x2212;111%</td>
<td align="center">&#x2212;114%</td>
<td align="center">&#x2212;84%</td>
<td align="center">0%</td>
</tr>
<tr>
<td align="left">Real-time optimal (RTOC) <xref ref-type="table-fn" rid="Tfn7">
<sup>a</sup>
</xref>
</td>
<td align="center">1,060%</td>
<td align="center">429,645%</td>
<td align="center">161,680%</td>
<td align="center">4%</td>
</tr>
<tr>
<td align="left">Switched RTOC <xref ref-type="table-fn" rid="Tfn7">
<sup>a</sup>
</xref>
</td>
<td align="center">&#x2212;111%</td>
<td align="center">&#x2212;114%</td>
<td align="center">&#x2212;84%</td>
<td align="center">&#x2212;10%</td>
</tr>
</tbody>
</table>
<table-wrap-foot>
<fn id="Tfn7">
<label>a</label>
<p>Real-time optimal control <inline-formula id="inf123">
<mml:math id="m147">
<mml:mrow>
<mml:msubsup>
<mml:mtext>u</mml:mtext>
<mml:mrow>
<mml:mtext>total</mml:mtext>
</mml:mrow>
<mml:mtext>&#x2a;</mml:mtext>
</mml:msubsup>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>a</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mi>t</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>b</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>&#x3c9;</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#x2217;</mml:mo>
</mml:msup>
<mml:mo>&#xd7;</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>J</mml:mi>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>&#x3c9;</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#x2217;</mml:mo>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula> (with and without switching) and open-loop optimal control are visually indistinguishable from one another in the graphic depiction.</p>
</fn>
</table-wrap-foot>
</table-wrap>
</sec>
<sec id="s2">
<title>2 Materials and Methods</title>
<p>Motion (both translational and rotational) is governed by so-called double-integrator dynamics where the integral of the applied forces vector (inversely scaled by the mass or mass moments, respectively) is the velocity vector and the integral of the velocity vector (translational or rotational) is the displacement vector. Each vector is relative to an inertial (non-rotating) reference frame, while the expression of the vectors in the coordinates of the basis vectors of rotating reference frames necessitates the inclusion of the transport theorem, which articulates the induced motion of the rotating reference frame in cross-products that make the results nonlinear and coupled. The three degrees of rotational motion are coupled to each other by the transport theorem, and the three degrees of translational motion are coupled to each other as well. Furthermore, the three degrees of translation are coupled nonlinearly to the three degrees of rotation, particularly through the angular velocity vector. Especially since this nonlinear coupling is a foremost challenge that is often deemed insurmountable by analytic methods, the foremost subsections of this part of the manuscript begin so. The Materials and Methods section of the manuscript is described with sufficient details to allow readers to replicate and build on the published results.</p>
<sec id="s2-1">
<title>2.1 Double-Integrator Based Plant Equations</title>
<p>
<xref ref-type="disp-formula" rid="e1">Eq. 1</xref> illustrates the fundamental relationships of both translational and rotational motion may be expressed as so-called double-integrators, meant to mean the twice integration of the applied force or torques produces the respective translational or rotational displacement.<disp-formula id="e1">
<mml:math id="m2">
<mml:mrow>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>F</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>m</mml:mi>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>a</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>m</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>x</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#xa8;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>m</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:msup>
<mml:mi>d</mml:mi>
<mml:mn>2</mml:mn>
</mml:msup>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>x</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:msup>
<mml:mi>t</mml:mi>
<mml:mn>2</mml:mn>
</mml:msup>
</mml:mrow>
</mml:mfrac>
<mml:mo>&#xa0;</mml:mo>
<mml:mo>&#xa0;</mml:mo>
<mml:mo>&#x2194;</mml:mo>
<mml:mo>&#xa0;</mml:mo>
<mml:mo>&#xa0;</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>T</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>J</mml:mi>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>&#x3b1;</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>J</mml:mi>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>&#x3c9;</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#x2d9;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>J</mml:mi>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>&#x3b8;</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#xa8;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>J</mml:mi>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:msup>
<mml:mi>d</mml:mi>
<mml:mn>2</mml:mn>
</mml:msup>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>&#x3b8;</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:msup>
<mml:mi>t</mml:mi>
<mml:mn>2</mml:mn>
</mml:msup>
</mml:mrow>
</mml:mfrac>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:math>
<label>(1)</label>
</disp-formula>
</p>
<p>
<xref ref-type="disp-formula" rid="e1">Eq. 1</xref> comprises two sets of three equations each for translation and rotation combining for six equations of mechanical motion. For simplicity of expression, states referred to generically as <italic>x</italic> can represent rotations (<inline-formula id="inf2">
<mml:math id="m3">
<mml:mi>&#x3b8;</mml:mi>
</mml:math>
</inline-formula>) with regards to the basic, shared motion described by the double-integrator. The transport theorem described next will generate differences in the governing equations for translation and rotation.</p>
</sec>
<sec id="s2-2">
<title>2.2 Transport Theorem Cross-Product Coupled Motion Expressed in Rotating Reference Frames</title>
<p>Attach three mutually perpendicular unit vectors to each frame: the non-rotating inertial frame and body-fixed frame. The meaning of differentiation of vectors when specification is made of differentiation with respect to a specific frame. Both rotational and translational motion relative to the non-rotating reference frame may be represented by double-integrators in accordance with <xref ref-type="disp-formula" rid="e2">Eq. 2</xref>.<disp-formula id="e2">
<mml:math id="m4">
<mml:mrow>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>m</mml:mi>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mrow>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>a</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#x7c;</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:mi>r</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>l</mml:mi>
<mml:mi>a</mml:mi>
<mml:mi>t</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>v</mml:mi>
<mml:mi>e</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>m</mml:mi>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mrow>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>x</mml:mi>
<mml:mo>&#xa8;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#x7c;</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:mi>r</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>l</mml:mi>
<mml:mi>a</mml:mi>
<mml:mi>t</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>v</mml:mi>
<mml:mi>e</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>m</mml:mi>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mrow>
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:msup>
<mml:mi>d</mml:mi>
<mml:mn>2</mml:mn>
</mml:msup>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:msup>
<mml:mi>t</mml:mi>
<mml:mn>2</mml:mn>
</mml:msup>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
<mml:mo>&#x7c;</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:mi>r</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>l</mml:mi>
<mml:mi>a</mml:mi>
<mml:mi>t</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>v</mml:mi>
<mml:mi>e</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:math>
<label>(2)</label>
</disp-formula>
</p>
<p>Theorem 1. <italic>Transport Theorem. The derivative of any vector expressed in the coordinates of a rotating reference frame equals the sum of the derivative relative to a non-rotating reference frame plus the cross-product of the angular velocity and the vector.</italic>
</p>
<p>Proof of Theorem 1. The proof of this well-known theorem is provided by <xref ref-type="bibr" rid="B20">Kinematics Handout - MIT OpenCourseWare, 2021</xref>. The tedious process may be summarized as follows: 1) express the position vector with respect to the non-rotating inertial reference frame; 2) differentiate to find the expression for velocity remembering to differentiate both the component measurements and the unit vectors; 3) simplify and substitute the defined unit vectors, define the angular velocity in the direction perpendicular to the two-dimensional space of rotation; and 4) substitute the newly defined angular velocity to arrive at the transport theorem as expressed in <xref ref-type="disp-formula" rid="e3">Eq. 3</xref>. &#x25a1;<disp-formula id="e3">
<mml:math id="m5">
<mml:mrow>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>J</mml:mi>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>&#x3c9;</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:mfrac>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>J</mml:mi>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mrow>
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>&#x3c9;</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
<mml:mo>&#x7c;</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:mi>r</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>l</mml:mi>
<mml:mi>a</mml:mi>
<mml:mi>t</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>v</mml:mi>
<mml:mi>e</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>&#x3c9;</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#xd7;</mml:mo>
<mml:mi>J</mml:mi>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>&#x3c9;</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:math>
<label>(3)</label>
</disp-formula>
</p>
<p>The inclusion of theorem 1, despite being very well-known, is purposely performed to emphasize the most novel proposals presented. In particular, <xref ref-type="disp-formula" rid="e2">Eqs. 2</xref> and <xref ref-type="disp-formula" rid="e3">3</xref> are ubiquitously approximated first by <xref ref-type="disp-formula" rid="e1">Eq. 1</xref> and also often by linearization of Taylor&#x2019;s Series of each equation, respectively.</p>
<sec id="s2-2-1">
<title>2.2.1 Euler&#x2019;s Moment Equations of Rotation Expressed in a Rotating Reference Frame</title>
<p>Externally applied torques, <inline-formula id="inf3">
<mml:math id="m6">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>T</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:math>
</inline-formula> change angular momentum <inline-formula id="inf4">
<mml:math id="m7">
<mml:mrow>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>J</mml:mi>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>&#x3c9;</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mtext>t</mml:mtext>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:math>
</inline-formula> permitting the substitution into <xref ref-type="disp-formula" rid="e3">Eq. 3</xref>, resulting in Euler&#x2019;s nonlinear moment equation in <xref ref-type="disp-formula" rid="e4">Eq. 4</xref>. A system is called linear if it has two mathematical properties: homogeneity and additivity in accordance with the principle of superposition. If two or more solutions to an equation or set of equations can be added together so that their sum is also a solution, linearity may be asserted. In other words, two or more states of the system must be added together to create an additional state. Adding two single-channel angles cannot also be a solution without accounting for the presence of the other two channels&#x2019; states.</p>
<p>An easy way to understand the nonlinear nature of each motion channel induced by the linear cross-product transformation is to recall the mathematical definition: <inline-formula id="inf5">
<mml:math id="m8">
<mml:mrow>
<mml:mi>a</mml:mi>
<mml:mo>&#xd7;</mml:mo>
<mml:mi>b</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>a</mml:mi>
<mml:mi>b</mml:mi>
<mml:mrow>
<mml:mo>&#x7c;</mml:mo>
<mml:mrow>
<mml:mi>s</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>&#x3b8;</mml:mi>
</mml:mrow>
<mml:mo>&#x7c;</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>, while f (x &#x2b; y) &#x3d; f(x) &#x2b; f(y) is a simple counterexample showing that this function f is not linear: <inline-formula id="inf6">
<mml:math id="m9">
<mml:mrow>
<mml:mi>sin</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>&#x3b8;</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>&#x3b8;</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#x2260;</mml:mo>
<mml:mi>sin</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>&#x3b8;</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:mi>sin</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>&#x3b8;</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>. An often-confused notion is the fact that the cross-product is a linear transformation, but nonetheless, each motion channel is evidently nonlinear in the states (evidenced by the presence of multiplicative state pairs and cross-coupled states in each channel. From the perspective of linear algebra, the matrix representation of the cross-product is skew-symmetric and has determinant zero, so it will not always have a solution.<disp-formula id="e4">
<mml:math id="m10">
<mml:mrow>
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>T</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>J</mml:mi>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>&#x3c9;</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#x2d9;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>&#x3c9;</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#xd7;</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>J</mml:mi>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>&#x3c9;</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>&#x3c4;</mml:mi>
<mml:mi>x</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>&#x3c4;</mml:mi>
<mml:mi>y</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>&#x3c4;</mml:mi>
<mml:mi>z</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
<mml:mo>]</mml:mo>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>J</mml:mi>
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mi>x</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>&#x3c9;</mml:mi>
<mml:mo>&#x2d9;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mi>x</mml:mi>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>J</mml:mi>
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mi>y</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>&#x3c9;</mml:mi>
<mml:mo>&#x2d9;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mi>y</mml:mi>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>J</mml:mi>
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mi>z</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>&#x3c9;</mml:mi>
<mml:mo>&#x2d9;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mi>z</mml:mi>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi>J</mml:mi>
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mi>y</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mi>&#x3c9;</mml:mi>
<mml:mi>x</mml:mi>
</mml:msub>
<mml:msub>
<mml:mi>&#x3c9;</mml:mi>
<mml:mi>z</mml:mi>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi>J</mml:mi>
<mml:mrow>
<mml:mi>y</mml:mi>
<mml:mi>y</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mi>&#x3c9;</mml:mi>
<mml:mi>y</mml:mi>
</mml:msub>
<mml:msub>
<mml:mi>&#x3c9;</mml:mi>
<mml:mi>z</mml:mi>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi>J</mml:mi>
<mml:mrow>
<mml:mi>y</mml:mi>
<mml:mi>z</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msubsup>
<mml:mi>&#x3c9;</mml:mi>
<mml:mi>z</mml:mi>
<mml:mn>2</mml:mn>
</mml:msubsup>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>J</mml:mi>
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mi>z</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mi>&#x3c9;</mml:mi>
<mml:mi>x</mml:mi>
</mml:msub>
<mml:msub>
<mml:mi>&#x3c9;</mml:mi>
<mml:mi>y</mml:mi>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>J</mml:mi>
<mml:mrow>
<mml:mi>z</mml:mi>
<mml:mi>z</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mi>&#x3c9;</mml:mi>
<mml:mi>z</mml:mi>
</mml:msub>
<mml:msub>
<mml:mi>&#x3c9;</mml:mi>
<mml:mi>y</mml:mi>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>J</mml:mi>
<mml:mrow>
<mml:mi>y</mml:mi>
<mml:mi>z</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msubsup>
<mml:mi>&#x3c9;</mml:mi>
<mml:mi>y</mml:mi>
<mml:mn>2</mml:mn>
</mml:msubsup>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>J</mml:mi>
<mml:mrow>
<mml:mi>y</mml:mi>
<mml:mi>x</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>&#x3c9;</mml:mi>
<mml:mo>&#x2d9;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mi>x</mml:mi>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>J</mml:mi>
<mml:mrow>
<mml:mi>y</mml:mi>
<mml:mi>y</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>&#x3c9;</mml:mi>
<mml:mo>&#x2d9;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mi>y</mml:mi>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>J</mml:mi>
<mml:mrow>
<mml:mi>y</mml:mi>
<mml:mi>z</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>&#x3c9;</mml:mi>
<mml:mo>&#x2d9;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mi>z</mml:mi>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi>J</mml:mi>
<mml:mrow>
<mml:mi>y</mml:mi>
<mml:mi>z</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mi>&#x3c9;</mml:mi>
<mml:mi>x</mml:mi>
</mml:msub>
<mml:msub>
<mml:mi>&#x3c9;</mml:mi>
<mml:mi>y</mml:mi>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi>J</mml:mi>
<mml:mrow>
<mml:mi>z</mml:mi>
<mml:mi>z</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mi>&#x3c9;</mml:mi>
<mml:mi>x</mml:mi>
</mml:msub>
<mml:msub>
<mml:mi>&#x3c9;</mml:mi>
<mml:mi>z</mml:mi>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi>J</mml:mi>
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mi>z</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msubsup>
<mml:mi>&#x3c9;</mml:mi>
<mml:mi>x</mml:mi>
<mml:mn>2</mml:mn>
</mml:msubsup>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>J</mml:mi>
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mi>x</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mi>&#x3c9;</mml:mi>
<mml:mi>x</mml:mi>
</mml:msub>
<mml:msub>
<mml:mi>&#x3c9;</mml:mi>
<mml:mi>z</mml:mi>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>J</mml:mi>
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mi>y</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mi>&#x3c9;</mml:mi>
<mml:mi>z</mml:mi>
</mml:msub>
<mml:msub>
<mml:mi>&#x3c9;</mml:mi>
<mml:mi>y</mml:mi>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>J</mml:mi>
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mi>z</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msubsup>
<mml:mi>&#x3c9;</mml:mi>
<mml:mi>z</mml:mi>
<mml:mn>2</mml:mn>
</mml:msubsup>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>J</mml:mi>
<mml:mrow>
<mml:mi>z</mml:mi>
<mml:mi>x</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>&#x3c9;</mml:mi>
<mml:mo>&#x2d9;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mi>x</mml:mi>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>J</mml:mi>
<mml:mrow>
<mml:mi>z</mml:mi>
<mml:mi>y</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>&#x3c9;</mml:mi>
<mml:mo>&#x2d9;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mi>y</mml:mi>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>J</mml:mi>
<mml:mrow>
<mml:mi>z</mml:mi>
<mml:mi>z</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>&#x3c9;</mml:mi>
<mml:mo>&#x2d9;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mi>z</mml:mi>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi>J</mml:mi>
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mi>x</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mi>&#x3c9;</mml:mi>
<mml:mi>x</mml:mi>
</mml:msub>
<mml:msub>
<mml:mi>&#x3c9;</mml:mi>
<mml:mi>y</mml:mi>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi>J</mml:mi>
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mi>z</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mi>&#x3c9;</mml:mi>
<mml:mi>y</mml:mi>
</mml:msub>
<mml:msub>
<mml:mi>&#x3c9;</mml:mi>
<mml:mi>z</mml:mi>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi>J</mml:mi>
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mi>y</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msubsup>
<mml:mi>&#x3c9;</mml:mi>
<mml:mi>y</mml:mi>
<mml:mn>2</mml:mn>
</mml:msubsup>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>J</mml:mi>
<mml:mrow>
<mml:mi>y</mml:mi>
<mml:mi>y</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mi>&#x3c9;</mml:mi>
<mml:mi>x</mml:mi>
</mml:msub>
<mml:msub>
<mml:mi>&#x3c9;</mml:mi>
<mml:mi>y</mml:mi>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>J</mml:mi>
<mml:mrow>
<mml:mi>y</mml:mi>
<mml:mi>z</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mi>&#x3c9;</mml:mi>
<mml:mi>z</mml:mi>
</mml:msub>
<mml:msub>
<mml:mi>&#x3c9;</mml:mi>
<mml:mi>x</mml:mi>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>J</mml:mi>
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mi>y</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msubsup>
<mml:mi>&#x3c9;</mml:mi>
<mml:mi>x</mml:mi>
<mml:mn>2</mml:mn>
</mml:msubsup>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
<mml:mo>]</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:math>
<label>(4)</label>
</disp-formula>
</p>
<p>It should be noted the dominant double-integrator dynamics are embodied in <inline-formula id="inf7">
<mml:math id="m11">
<mml:mrow>
<mml:mi>J</mml:mi>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>&#x3c9;</mml:mi>
<mml:mo>&#x2d9;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> in <xref ref-type="disp-formula" rid="e4">Eq. 4</xref>, while the additional accelerations due to the transport theorem are embodied in the coupling cross-product term <inline-formula id="inf8">
<mml:math id="m12">
<mml:mrow>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>&#x3c9;</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#xd7;</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>J</mml:mi>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>&#x3c9;</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>. Control designs based on the double-integrator dynamics alone are hypothesized to have less efficacy than proposed techniques that utilize optimization and the transport theorem terms.</p>
</sec>
<sec id="s2-2-2">
<title>2.2.2 Newton&#x2019;s Equations of Translation Expressed in a Rotating Reference Frame</title>
<p>Performing similar expression of translational motion in non-rotating inertial frames as just performed in section 2.2.1 for rotational motion leads to <xref ref-type="disp-formula" rid="e5">Eq. 5</xref> for Newton&#x2019;s equations of translational motion.<disp-formula id="e5">
<mml:math id="m13">
<mml:mrow>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>F</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:munder>
<mml:munder>
<mml:mrow>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>m</mml:mi>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>a</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:mrow>
<mml:mo stretchy="true">&#xfe38;</mml:mo>
</mml:munder>
<mml:mrow>
<mml:mi>R</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>l</mml:mi>
<mml:mi>a</mml:mi>
<mml:mi>t</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>v</mml:mi>
<mml:mi>e</mml:mi>
</mml:mrow>
</mml:munder>
<mml:mo>&#x2b;</mml:mo>
<mml:munder>
<mml:munder>
<mml:mrow>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>m</mml:mi>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>&#x3c9;</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
<mml:mo stretchy="true">&#xfe38;</mml:mo>
</mml:munder>
<mml:mrow>
<mml:mi>E</mml:mi>
<mml:mi>u</mml:mi>
<mml:mi>l</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>r</mml:mi>
</mml:mrow>
</mml:munder>
<mml:mo>&#xd7;</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>r</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:munder>
<mml:munder>
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>m</mml:mi>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>&#x3c9;</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#xd7;</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>v</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:mrow>
<mml:mo stretchy="true">&#xfe38;</mml:mo>
</mml:munder>
<mml:mrow>
<mml:mi>C</mml:mi>
<mml:mi>o</mml:mi>
<mml:mi>r</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>o</mml:mi>
<mml:mi>l</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:munder>
<mml:mo>&#x2b;</mml:mo>
<mml:munder>
<mml:munder>
<mml:mrow>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>m</mml:mi>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>&#x3c9;</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#xd7;</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>&#x3c9;</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#xd7;</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>r</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:mrow>
<mml:mo stretchy="true">&#xfe38;</mml:mo>
</mml:munder>
<mml:mrow>
<mml:mi>C</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>t</mml:mi>
<mml:mi>r</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>f</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>g</mml:mi>
<mml:mi>u</mml:mi>
<mml:mi>a</mml:mi>
<mml:mi>l</mml:mi>
</mml:mrow>
</mml:munder>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:math>
<label>(5)</label>
</disp-formula>
</p>
<p>Notice the dominant double-integrator dynamics relative to the rotating reference frame in <xref ref-type="disp-formula" rid="e5">Eq. 5</xref> are embodied in <inline-formula id="inf9">
<mml:math id="m14">
<mml:mrow>
<mml:mi>m</mml:mi>
<mml:mi>a</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>, while the additional accelerations due to the transport theorem are embodied in the coupling cross-product terms: Euler (<inline-formula id="inf10">
<mml:math id="m15">
<mml:mrow>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>m</mml:mi>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>&#x3c9;</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:mfrac>
<mml:mo>&#xd7;</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>r</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>), Coriolis (<inline-formula id="inf11">
<mml:math id="m16">
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>m</mml:mi>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>&#x3c9;</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#xd7;</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>v</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>), and centrifugal (<inline-formula id="inf12">
<mml:math id="m17">
<mml:mrow>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>m</mml:mi>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>&#x3c9;</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#xd7;</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>&#x3c9;</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#xd7;</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>r</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>). Control designs based on the double-integrator dynamics alone are hypothesized to have less efficacy than proposed techniques that utilize optimization and the transport theorem terms.</p>
</sec>
<sec id="s2-2-3">
<title>2.2.3 Impacts on Control Design</title>
<p>Neglecting the cross-products of acceleration resulting from the transport theorem reduces both <xref ref-type="disp-formula" rid="e4">Eqs. 4</xref> and <xref ref-type="disp-formula" rid="e5">5</xref> to the double-integrators of <xref ref-type="disp-formula" rid="e1">Eqs. 1</xref> and <xref ref-type="disp-formula" rid="e2">2</xref>. The goal of this research is to develop controls (for applied forces <inline-formula id="inf13">
<mml:math id="m18">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>F</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:math>
</inline-formula> and applied torques <inline-formula id="inf14">
<mml:math id="m19">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>T</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:math>
</inline-formula>) that account for the nonlinear, coupling cross-products produced by the application of the transport theorem. Typically, nonlinearities like those presented in <xref ref-type="disp-formula" rid="e4">Eqs. 4</xref> and <xref ref-type="disp-formula" rid="e5">5</xref> caused by transport theorem are simplified by assumption, neglected altogether, or linearized to permit linear control design. Subsequently, the linear controllers are applied to the nonlinear systems and augmented as necessary to improve performance. Instead, the optimal trajectories that result from the solution of constrained optimization problems (for translation and rotation, respectively) are combined to form new nonlinear controls. The exact form of the nonlinear equation is used to form the new nonlinear control components where the motion states are taken from the solution to the constrained optimization problem.</p>
</sec>
</sec>
<sec id="s2-3">
<title>2.3 Classical Position Plus Velocity (P &#x2b; V) Feedback Control</title>
<p>Proportional plus velocity control (<xref ref-type="bibr" rid="B8">Chai et al., 2019</xref>) utilizes proportional control by forming a state error scaled by a proportional gain adding a negative gained value of velocity (translational or rotational), as elaborated in <xref ref-type="disp-formula" rid="e5">Eq. 5</xref>. The velocity channel is not a differentiated version of the position or angle channel, as is the case with classical cascaded control topologies of PD, PI, and PID types (proportional plus derivative, proportional plus integral, and proportional plus integral plus derivative, respectively).<disp-formula id="e5a">
<mml:math id="m20">
<mml:mrow>
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>J</mml:mi>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>x</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#xa8;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>K</mml:mi>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:mrow>
<mml:mi>V</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>x</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#x2d9;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>K</mml:mi>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:mrow>
<mml:mi>P</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>x</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>K</mml:mi>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:mrow>
<mml:mi>P</mml:mi>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>x</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:mo>&#xa0;</mml:mo>
<mml:mo>&#xa0;</mml:mo>
<mml:mo>&#x2194;</mml:mo>
<mml:mo>&#xa0;</mml:mo>
<mml:mo>&#xa0;</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>u</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>K</mml:mi>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:mrow>
<mml:mi>p</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>x</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>x</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>K</mml:mi>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:mrow>
<mml:mi>v</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>x</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#x2d9;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>x</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>s</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>x</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>s</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:mfrac>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>K</mml:mi>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:mrow>
<mml:mi>p</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>J</mml:mi>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:msup>
<mml:mi>s</mml:mi>
<mml:mn>2</mml:mn>
</mml:msup>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>K</mml:mi>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:mrow>
<mml:mi>v</mml:mi>
</mml:msub>
<mml:mi>s</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>K</mml:mi>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:mrow>
<mml:mi>p</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfrac>
<mml:mo>&#x2192;</mml:mo>
<mml:mi>C</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi>E</mml:mi>
<mml:mo>.</mml:mo>
<mml:mo>:</mml:mo>
<mml:mo>&#xa0;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mi>s</mml:mi>
<mml:mn>2</mml:mn>
</mml:msup>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>K</mml:mi>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:mrow>
<mml:mi>v</mml:mi>
</mml:msub>
<mml:mi>s</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>K</mml:mi>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:mrow>
<mml:mi>p</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mo>&#x7c;</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:mi>I</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msup>
<mml:mi>s</mml:mi>
<mml:mn>2</mml:mn>
</mml:msup>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>2</mml:mn>
<mml:mi>&#x3be;</mml:mi>
<mml:msub>
<mml:mi>&#x3c9;</mml:mi>
<mml:mi>n</mml:mi>
</mml:msub>
<mml:mi>s</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:msubsup>
<mml:mi>&#x3c9;</mml:mi>
<mml:mi>n</mml:mi>
<mml:mn>2</mml:mn>
</mml:msubsup>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
<mml:mo>.</mml:mo>
</mml:mrow>
</mml:math>
<label>(6)</label>
</disp-formula>
</p>
<p>Gains were tuned for performance specification by equating the ubiquitous closed-loop system <xref ref-type="disp-formula" rid="e5">Eq. 5</xref> to the performance specified, where <italic>C.E.</italic> annotates the characteristic equation. The desired rise time established the system natural frequency per <inline-formula id="inf15">
<mml:math id="m21">
<mml:mrow>
<mml:msub>
<mml:mi>t</mml:mi>
<mml:mi>r</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mn>1.8</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>&#x3c9;</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mi>n</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:math>
</inline-formula>, where <inline-formula id="inf16">
<mml:math id="m22">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>&#x3c9;</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mi>n</mml:mi>
</mml:msub>
<mml:mo>&#x2248;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>&#x3c9;</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mi>b</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is the desired control bandwidth; therefore, <inline-formula id="inf17">
<mml:math id="m23">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>&#x3c9;</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mi>n</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mn>1.8</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mi>t</mml:mi>
<mml:mi>r</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfrac>
<mml:mo>&#x2192;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>K</mml:mi>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:mrow>
<mml:mi>p</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>&#x3c9;</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mi>n</mml:mi>
<mml:mn>2</mml:mn>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula>. Settling time: oscillation stabilize within 2&#x2013;5% percent of steady state <inline-formula id="inf18">
<mml:math id="m24">
<mml:mrow>
<mml:msub>
<mml:mi>t</mml:mi>
<mml:mi>s</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mn>4.6</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>&#x3be;</mml:mi>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>&#x3c9;</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mi>n</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:math>
</inline-formula> <inline-formula id="inf19">
<mml:math id="m25">
<mml:mrow>
<mml:mo>&#x2192;</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>&#x3be;</mml:mi>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mn>4.6</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mi>t</mml:mi>
<mml:mi>s</mml:mi>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>&#x3c9;</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mi>n</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfrac>
<mml:mo>&#x2192;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>K</mml:mi>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:mrow>
<mml:mi>v</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>2</mml:mn>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>&#x3be;</mml:mi>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>&#x3c9;</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mi>n</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>.</p>
<p>Elimination of differentiation in the derivative channel often bestows relative advantage in tracking desired velocity trajectories. Another approach is the optimize gain selection, and this alternative approach is called the linear quadratic regulator.</p>
</sec>
<sec id="s2-4">
<title>2.4 Linear-Quadratic Optimal Regulator of Proportional Derivative Type (<xref ref-type="bibr" rid="B25">Murray, 2010</xref>)</title>
<p>
<xref ref-type="disp-formula" rid="e3">Eqs. 3</xref> and <xref ref-type="disp-formula" rid="e4">4</xref>, representing the full, nonlinear, coupled equations of motion in six degrees, may be linearized and be expressed in the form displayed in <xref ref-type="disp-formula" rid="e6">Eq. 6</xref>. This linearization is the basis for the word &#x201c;linear&#x201d; in the LQR title. The word &#x201c;quadratic&#x201d; refers to selecting gains <italic>K</italic> that minimize a quadratic cost function displayed in <xref ref-type="disp-formula" rid="e7">Eq. 7</xref>. The LQR solution (<xref ref-type="bibr" rid="B21">Kwakernaak and Sivan, 1972</xref>; <xref ref-type="bibr" rid="B28">NASA, 2021a</xref>) only bestows optimal solutions for control gains of the form <xref ref-type="disp-formula" rid="e8">Eq. 8</xref> that minimizes the quadratic cost simultaneously satisfying the (linearized) dynamic constraints displayed in <xref ref-type="disp-formula" rid="e5">Eq. 5</xref>.<disp-formula id="e6">
<mml:math id="m26">
<mml:mrow>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>x</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#x2d9;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>A</mml:mi>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>x</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>B</mml:mi>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>u</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:math>
<label>(7)</label>
</disp-formula>
<disp-formula id="e7">
<mml:math id="m27">
<mml:mrow>
<mml:mi>J</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:munderover>
<mml:mstyle displaystyle="true">
<mml:mo>&#x222b;</mml:mo>
</mml:mstyle>
<mml:mn>0</mml:mn>
<mml:mi>&#x221e;</mml:mi>
</mml:munderover>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>x</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mi>T</mml:mi>
</mml:msup>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>Q</mml:mi>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>x</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>u</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mi>T</mml:mi>
</mml:msup>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>R</mml:mi>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>u</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mi>d</mml:mi>
<mml:mi>t</mml:mi>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:math>
<label>(8)</label>
</disp-formula>
<disp-formula id="e8">
<mml:math id="m28">
<mml:mrow>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>u</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mo>&#x2212;</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>K</mml:mi>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>x</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>.</mml:mo>
</mml:mrow>
</mml:math>
<label>(9)</label>
</disp-formula>
</p>
<p>The control designer may select the state weighting matrix <inline-formula id="inf20">
<mml:math id="m29">
<mml:mrow>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>Q</mml:mi>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> and the control weighting matrix <inline-formula id="inf21">
<mml:math id="m30">
<mml:mrow>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>R</mml:mi>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> to penalize the state errors and the control effort, respectively. In section 3, equally weighted identity matrices were chosen for both <inline-formula id="inf22">
<mml:math id="m31">
<mml:mrow>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>Q</mml:mi>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf23">
<mml:math id="m32">
<mml:mrow>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>R</mml:mi>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>. This choice facilitates a multi-faceted comparison in section 3 that does not solely focus on tracking errors or costs. The gains <inline-formula id="inf24">
<mml:math id="m33">
<mml:mrow>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>K</mml:mi>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> are found using <xref ref-type="disp-formula" rid="e9">Eq. 9</xref>, where the matrix <inline-formula id="inf25">
<mml:math id="m34">
<mml:mrow>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>P</mml:mi>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> is first found by solving the algebraic relation in <xref ref-type="disp-formula" rid="e10">Eq. 10</xref>, often referred to as a Riccati equation which is most often solved iteratively by a computer (the MATLAB<sup>&#xae;</sup>/SIMULINK<sup>&#xae;</sup> <italic>lqr</italic> command).<disp-formula id="e9">
<mml:math id="m35">
<mml:mrow>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>K</mml:mi>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>R</mml:mi>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>B</mml:mi>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:mrow>
<mml:mi>T</mml:mi>
</mml:msup>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>P</mml:mi>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
<label>(10)</label>
</disp-formula>
<disp-formula id="e10">
<mml:math id="m36">
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>A</mml:mi>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:mrow>
<mml:mi>T</mml:mi>
</mml:msup>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>P</mml:mi>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>P</mml:mi>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>A</mml:mi>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>P</mml:mi>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>B</mml:mi>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>R</mml:mi>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
<mml:msup>
<mml:mrow>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>B</mml:mi>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:mrow>
<mml:mi>T</mml:mi>
</mml:msup>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>P</mml:mi>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>Q</mml:mi>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mn>0</mml:mn>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:mrow>
</mml:math>
<label>(11)</label>
</disp-formula>
</p>
</sec>
<sec id="s2-5">
<title>2.5 Time-Optimal Control (<xref ref-type="bibr" rid="B25">Murray, 2010</xref>)</title>
<p>Minimizing a non-quadratic cost function comprised of only the final time (as displayed in <xref ref-type="disp-formula" rid="e11">Eqs. 11</xref> and <xref ref-type="disp-formula" rid="e12">12</xref>) constrained with the linearized dynamics of <xref ref-type="disp-formula" rid="e6">Eq. 6</xref> with costate parameters <italic>p(t)</italic> used in the Hamiltonian problem formulation leads to time-optimal control (<xref ref-type="bibr" rid="B14">Flugge-Lotz, 1953</xref>; <xref ref-type="bibr" rid="B30">Pontryagin et al., 1962</xref>; <xref ref-type="bibr" rid="B5">Boltyanskii, 1971</xref>; <xref ref-type="bibr" rid="B36">Sands et al., 2009</xref>; <xref ref-type="bibr" rid="B37">Sands and Ghadawala, 2011</xref>; <xref ref-type="bibr" rid="B12">Duprez et al., 2017</xref>; <xref ref-type="bibr" rid="B16">Heidlauf and Cooper, 2017</xref>; <xref ref-type="bibr" rid="B3">Baker et al., 2018</xref>; <xref ref-type="bibr" rid="B38">Sands, 2019</xref>; <xref ref-type="bibr" rid="B40">Smeresky et al., 2020</xref>; <xref ref-type="bibr" rid="B1">Arguchintsev and Poplevko, 2021</xref>; <xref ref-type="bibr" rid="B23">Malecek, 2021</xref>; <xref ref-type="bibr" rid="B41">Srochko et al., 2021</xref>).<disp-formula id="e11">
<mml:math id="m37">
<mml:mrow>
<mml:mi>J</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:munderover>
<mml:mstyle displaystyle="true">
<mml:mo>&#x222b;</mml:mo>
</mml:mstyle>
<mml:mn>0</mml:mn>
<mml:mi>&#x221e;</mml:mi>
</mml:munderover>
<mml:msub>
<mml:mi>t</mml:mi>
<mml:mi>f</mml:mi>
</mml:msub>
<mml:mi>d</mml:mi>
<mml:mi>t</mml:mi>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:math>
<label>(12)</label>
</disp-formula>
<disp-formula id="e12">
<mml:math id="m38">
<mml:mrow>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>u</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>s</mml:mi>
<mml:mi>g</mml:mi>
<mml:mi>n</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mo>&#x003c;</mml:mo>
<mml:mrow>
<mml:mi>p</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>b</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo>&#x3e;</mml:mo>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mrow>
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:mn>1</mml:mn>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mn>0</mml:mn>
</mml:mtd>
</mml:mtr>
</mml:mtable>
<mml:mo>&#xa0;</mml:mo>
<mml:mo>&#xa0;</mml:mo>
<mml:mo>&#xa0;</mml:mo>
<mml:mo>&#xa0;</mml:mo>
<mml:mo>&#xa0;</mml:mo>
<mml:mo>&#xa0;</mml:mo>
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>f</mml:mi>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>f</mml:mi>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>f</mml:mi>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mrow>
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mo>&#x003c;</mml:mo>
<mml:mi>p</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>b</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo>&#x3e;</mml:mo>
<mml:mo>&#x3e;</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mo>&#x003c;</mml:mo>
<mml:mi>p</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>b</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo>&#x3e;</mml:mo>
<mml:mo>&#x3c;</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mo>&#x003c;</mml:mo>
<mml:mi>p</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>b</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo>&#x3e;</mml:mo>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
<mml:mo>.</mml:mo>
</mml:mrow>
</mml:math>
<label>(13)</label>
</disp-formula>
</p>
<p>Simulation subsystems depicted in the appendix execute a <italic>bang-bang control</italic> where maximal application of control is normalized to unity such that desired unity state and unity time is achieved to aid comparison to the other optimization approaches. One key feature of <italic>bang-bang</italic> control is the neglecting of the rate end condition leading to a so-called <italic>bang-off-bang</italic> control, which is not treated here.</p>
</sec>
<sec id="s2-6">
<title>2.6 Open Loop Minimum-Control Optimization (<xref ref-type="bibr" rid="B30">Pontryagin et al., 1962</xref>; <xref ref-type="bibr" rid="B34">Ross, 2015</xref>)</title>
<p>Minimizing only the control effort alone (not the state errors) (<xref ref-type="bibr" rid="B38">Sands, 2019</xref>) in accordance with <xref ref-type="disp-formula" rid="e13">Eq. 13</xref> constrained by the double-integrator dynamics of <xref ref-type="disp-formula" rid="e2">Eq. 2</xref> for specified initial and final conditions permits the solution of a two-point boundary value problem producing optimal control, acceleration, rate, and state profiles displayed in <xref ref-type="disp-formula" rid="e14">Eq. 14</xref>, respectively. Normalization for unity masses or mass moments is included, thus, control and acceleration equations are identical, where non-normalized control may be expressed by scaling the control equation by the masses or mass moments, respectively.</p>
<p>By specifying quiescent initial conditions and using variable scaling and balancing to normalize the final position coordinate to unity, the constants in <xref ref-type="disp-formula" rid="e14">Eq. 14</xref> may be solved, resulting in <xref ref-type="disp-formula" rid="e15">Eq. 15</xref>, where <italic>a &#x3d;</italic> &#x2212;<italic>12, b &#x3d; 6</italic>, and <italic>c &#x3d; d &#x3d; 0</italic>. It should be noted that states are not penalized in the cost function, instead only solution forms that satisfy the boundary values are produced by the two-point boundary value problem from the initial point (<italic>x(0),v(0)</italic>) <italic>&#x3d;</italic> (<italic>0,0</italic>) to the final point (<italic>x(1), v(1)</italic>) <italic>&#x3d;</italic> (<italic>1,0</italic>), thus, there is no need to solve an algebraic Riccati equation to produce the optimal control, where an additional benefit of this optimization approach includes the production of optimal state trajectories that will prove useful to decouple the nonlinear coupling effects of the transport theorem described in section 2.2. Scaling and balancing must be performed to normalize the initial and final conditions to zero and unity, and the operations are explained in section 2.11. The solution to the constrained optimization problem listed in <xref ref-type="disp-formula" rid="e2">Eqs. 2</xref> and <xref ref-type="disp-formula" rid="e13">13</xref> was solved analytically and presented recently by <xref ref-type="bibr" rid="B39">Sands (2021</xref>) for virtual sensoring, and that solution is presented here in <xref ref-type="disp-formula" rid="e14">Eqs. 14</xref> and <xref ref-type="disp-formula" rid="e15">15</xref>. The mathematical development is intentional since 1) the development is well-articulated by <xref ref-type="bibr" rid="B39">Sands (2021</xref>) and 2) increased focus on the utilization of these results toward nonlinear equations of motion (presented in <xref ref-type="sec" rid="s2-9">Section 2.9</xref>).<disp-formula id="e13">
<mml:math id="m39">
<mml:mrow>
<mml:mi>J</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mn>1</mml:mn>
<mml:mn>2</mml:mn>
</mml:mfrac>
<mml:munderover>
<mml:mstyle displaystyle="true">
<mml:mo>&#x222b;</mml:mo>
</mml:mstyle>
<mml:mn>0</mml:mn>
<mml:mi>&#x221e;</mml:mi>
</mml:munderover>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>u</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mi>T</mml:mi>
</mml:msup>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>u</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mi>d</mml:mi>
<mml:mi>t</mml:mi>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:math>
<label>(14)</label>
</disp-formula>
<disp-formula id="e14">
<mml:math id="m40">
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>u</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#x2217;</mml:mo>
</mml:msup>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>a</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mi>t</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>b</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>,</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>v</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#x2d9;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:mrow>
<mml:mo>&#x2217;</mml:mo>
</mml:msup>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>a</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mi>t</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>b</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>,</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>v</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#x2217;</mml:mo>
</mml:msup>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mn>1</mml:mn>
<mml:mn>2</mml:mn>
</mml:mfrac>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>a</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:msup>
<mml:mi>t</mml:mi>
<mml:mn>2</mml:mn>
</mml:msup>
<mml:mo>&#x2b;</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>b</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mi>t</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>c</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>,</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>x</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#x2217;</mml:mo>
</mml:msup>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mn>1</mml:mn>
<mml:mn>6</mml:mn>
</mml:mfrac>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>a</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:msup>
<mml:mi>t</mml:mi>
<mml:mn>3</mml:mn>
</mml:msup>
<mml:mo>&#x2b;</mml:mo>
<mml:mfrac>
<mml:mn>1</mml:mn>
<mml:mn>2</mml:mn>
</mml:mfrac>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>b</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:msup>
<mml:mi>t</mml:mi>
<mml:mn>2</mml:mn>
</mml:msup>
<mml:mo>&#x2b;</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>c</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mi>t</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>d</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:math>
<label>(15)</label>
</disp-formula>
<disp-formula id="e15">
<mml:math id="m41">
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>u</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#x2217;</mml:mo>
</mml:msup>
<mml:mo>&#x3d;</mml:mo>
<mml:mo>&#x2212;</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mn>12</mml:mn>
</mml:mrow>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mi>t</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mn>6</mml:mn>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>,</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>v</mml:mi>
<mml:mo>&#x2d9;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#x2217;</mml:mo>
</mml:msup>
<mml:mo>&#x3d;</mml:mo>
<mml:mo>&#x2212;</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mn>12</mml:mn>
</mml:mrow>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mi>t</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mn>6</mml:mn>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>,</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>v</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#x2217;</mml:mo>
</mml:msup>
<mml:mo>&#x3d;</mml:mo>
<mml:mo>&#x2212;</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mn>6</mml:mn>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:msup>
<mml:mi>t</mml:mi>
<mml:mn>2</mml:mn>
</mml:msup>
<mml:mo>&#x2b;</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mn>6</mml:mn>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mi>t</mml:mi>
<mml:mo>,</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>x</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#x2217;</mml:mo>
</mml:msup>
<mml:mo>&#x3d;</mml:mo>
<mml:mo>&#x2212;</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mn>2</mml:mn>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:msup>
<mml:mi>t</mml:mi>
<mml:mn>3</mml:mn>
</mml:msup>
<mml:mo>&#x2b;</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mn>3</mml:mn>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:msup>
<mml:mi>t</mml:mi>
<mml:mn>2</mml:mn>
</mml:msup>
<mml:mo>.</mml:mo>
</mml:mrow>
</mml:math>
<label>(16)</label>
</disp-formula>
</p>
<p>The open-loop optimal solution embodied in <xref ref-type="disp-formula" rid="e14">Eqs. 14</xref> and <xref ref-type="disp-formula" rid="e15">15</xref> may be updated in real-time using state feedback resulting in real-time optimal control presented in <xref ref-type="sec" rid="s2-7">Section 2.7</xref>. These optimal states in <xref ref-type="disp-formula" rid="e15">Eq. 15</xref> are used to form nonlinear controls in <xref ref-type="sec" rid="s2-9">Section 2.9</xref>.</p>
</sec>
<sec id="s2-7">
<title>2.7 Real-Time Optimal Control</title>
<p>A corollary is to the open-loop minimum-control optimization in section 2.6 augments the approach with feedback while maintaining the remaining portions of the problem approach. The solution for the constants in between <xref ref-type="disp-formula" rid="e14">Eqs. 14</xref> and <xref ref-type="disp-formula" rid="e15">15</xref> may be accomplished in real-time using feedback but <italic>asserting the current position and velocities (translational and rotational) are the initialization points of a new two-point boundary value problem</italic>. <xref ref-type="disp-formula" rid="e16">Eq. (16)</xref> may be written in a matrix-vector form as <xref ref-type="disp-formula" rid="e17">Eq. 17</xref>, permitting real-time solution for the integration constants in the vector by inverting the matrix and pre-multiplying both sides of the equation as depicted in <xref ref-type="disp-formula" rid="e17">(17)</xref>. Notice the form of the control derived in <xref ref-type="disp-formula" rid="e17">Eq. 17</xref> is the same as <xref ref-type="disp-formula" rid="e14">Eq. 14</xref> in section 2.6, where the constants in the optimal solutions are solved in real-time.<disp-formula id="e16">
<mml:math id="m42">
<mml:mrow>
<mml:msup>
<mml:mi>v</mml:mi>
<mml:mo>&#x2217;</mml:mo>
</mml:msup>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mn>1</mml:mn>
<mml:mn>2</mml:mn>
</mml:mfrac>
<mml:mi>a</mml:mi>
<mml:msup>
<mml:mi>t</mml:mi>
<mml:mn>2</mml:mn>
</mml:msup>
<mml:mo>&#x2b;</mml:mo>
<mml:mi>b</mml:mi>
<mml:mi>t</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mi>c</mml:mi>
<mml:mo>,</mml:mo>
<mml:msup>
<mml:mi>x</mml:mi>
<mml:mo>&#x2217;</mml:mo>
</mml:msup>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mn>1</mml:mn>
<mml:mn>6</mml:mn>
</mml:mfrac>
<mml:mi>a</mml:mi>
<mml:msup>
<mml:mi>t</mml:mi>
<mml:mn>3</mml:mn>
</mml:msup>
<mml:mo>&#x2b;</mml:mo>
<mml:mfrac>
<mml:mn>1</mml:mn>
<mml:mn>2</mml:mn>
</mml:mfrac>
<mml:mi>b</mml:mi>
<mml:msup>
<mml:mi>t</mml:mi>
<mml:mn>2</mml:mn>
</mml:msup>
<mml:mo>&#x26;</mml:mo>
<mml:msup>
<mml:mi>v</mml:mi>
<mml:mo>&#x2217;</mml:mo>
</mml:msup>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>t</mml:mi>
<mml:mi>f</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mn>1</mml:mn>
<mml:mn>2</mml:mn>
</mml:mfrac>
<mml:mi>a</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mi>b</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo>,</mml:mo>
<mml:msup>
<mml:mi>x</mml:mi>
<mml:mo>&#x2217;</mml:mo>
</mml:msup>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>t</mml:mi>
<mml:mi>f</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mn>1</mml:mn>
<mml:mn>6</mml:mn>
</mml:mfrac>
<mml:mi>a</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mfrac>
<mml:mn>1</mml:mn>
<mml:mn>2</mml:mn>
</mml:mfrac>
<mml:mi>b</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:math>
<label>(17)</label>
</disp-formula>
<disp-formula id="e17">
<mml:math id="m43">
<mml:mrow>
<mml:munder>
<mml:munder>
<mml:mrow>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:msubsup>
<mml:mi>t</mml:mi>
<mml:mn>0</mml:mn>
<mml:mn>2</mml:mn>
</mml:msubsup>
</mml:mrow>
<mml:mn>6</mml:mn>
</mml:mfrac>
</mml:mrow>
</mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:msubsup>
<mml:mi>t</mml:mi>
<mml:mn>0</mml:mn>
<mml:mn>2</mml:mn>
</mml:msubsup>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:mfrac>
</mml:mrow>
</mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>t</mml:mi>
<mml:mn>0</mml:mn>
</mml:msub>
</mml:mrow>
</mml:mtd>
<mml:mtd>
<mml:mn>1</mml:mn>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:msubsup>
<mml:mi>t</mml:mi>
<mml:mn>0</mml:mn>
<mml:mn>2</mml:mn>
</mml:msubsup>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:mfrac>
</mml:mrow>
</mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>t</mml:mi>
<mml:mn>0</mml:mn>
</mml:msub>
</mml:mrow>
</mml:mtd>
<mml:mtd>
<mml:mn>1</mml:mn>
</mml:mtd>
<mml:mtd>
<mml:mn>0</mml:mn>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mfrac>
<mml:mn>1</mml:mn>
<mml:mn>6</mml:mn>
</mml:mfrac>
</mml:mrow>
</mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:mfrac>
<mml:mn>1</mml:mn>
<mml:mn>2</mml:mn>
</mml:mfrac>
</mml:mrow>
</mml:mtd>
<mml:mtd>
<mml:mn>1</mml:mn>
</mml:mtd>
<mml:mtd>
<mml:mn>1</mml:mn>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mfrac>
<mml:mn>1</mml:mn>
<mml:mn>2</mml:mn>
</mml:mfrac>
</mml:mrow>
</mml:mtd>
<mml:mtd>
<mml:mn>1</mml:mn>
</mml:mtd>
<mml:mtd>
<mml:mn>1</mml:mn>
</mml:mtd>
<mml:mtd>
<mml:mn>0</mml:mn>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
<mml:mo>]</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mo stretchy="true">&#xfe38;</mml:mo>
</mml:munder>
<mml:mrow>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mi>T</mml:mi>
<mml:mo>]</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:munder>
<mml:munder>
<mml:munder>
<mml:mrow>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mrow>
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:mi>a</mml:mi>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mi>b</mml:mi>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mi>c</mml:mi>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mi>d</mml:mi>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
<mml:mo>}</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mo stretchy="true">&#xfe38;</mml:mo>
</mml:munder>
<mml:mrow>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mi>p</mml:mi>
<mml:mo>}</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:munder>
<mml:mo>&#x3d;</mml:mo>
<mml:munder>
<mml:munder>
<mml:mrow>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mrow>
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>x</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mn>0</mml:mn>
</mml:msub>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>v</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mn>0</mml:mn>
</mml:msub>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mn>1</mml:mn>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mn>0</mml:mn>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
<mml:mo>}</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mo stretchy="true">&#xfe38;</mml:mo>
</mml:munder>
<mml:mrow>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mi>b</mml:mi>
<mml:mo>}</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:munder>
<mml:mo>&#x2192;</mml:mo>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mrow>
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>a</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>b</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>c</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>d</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
<mml:mo>}</mml:mo>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:msubsup>
<mml:mi>t</mml:mi>
<mml:mn>0</mml:mn>
<mml:mn>2</mml:mn>
</mml:msubsup>
</mml:mrow>
<mml:mn>6</mml:mn>
</mml:mfrac>
</mml:mrow>
</mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:msubsup>
<mml:mi>t</mml:mi>
<mml:mn>0</mml:mn>
<mml:mn>2</mml:mn>
</mml:msubsup>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:mfrac>
</mml:mrow>
</mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>t</mml:mi>
<mml:mn>0</mml:mn>
</mml:msub>
</mml:mrow>
</mml:mtd>
<mml:mtd>
<mml:mn>1</mml:mn>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:msubsup>
<mml:mi>t</mml:mi>
<mml:mn>0</mml:mn>
<mml:mn>2</mml:mn>
</mml:msubsup>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:mfrac>
</mml:mrow>
</mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>t</mml:mi>
<mml:mn>0</mml:mn>
</mml:msub>
</mml:mrow>
</mml:mtd>
<mml:mtd>
<mml:mn>1</mml:mn>
</mml:mtd>
<mml:mtd>
<mml:mn>0</mml:mn>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mfrac>
<mml:mn>1</mml:mn>
<mml:mn>6</mml:mn>
</mml:mfrac>
</mml:mrow>
</mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:mfrac>
<mml:mn>1</mml:mn>
<mml:mn>2</mml:mn>
</mml:mfrac>
</mml:mrow>
</mml:mtd>
<mml:mtd>
<mml:mn>1</mml:mn>
</mml:mtd>
<mml:mtd>
<mml:mn>1</mml:mn>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mfrac>
<mml:mn>1</mml:mn>
<mml:mn>2</mml:mn>
</mml:mfrac>
</mml:mrow>
</mml:mtd>
<mml:mtd>
<mml:mn>1</mml:mn>
</mml:mtd>
<mml:mtd>
<mml:mn>1</mml:mn>
</mml:mtd>
<mml:mtd>
<mml:mn>0</mml:mn>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
<mml:mo>]</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mrow>
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>x</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>v</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mn>1</mml:mn>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mn>0</mml:mn>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
<mml:mo>}</mml:mo>
</mml:mrow>
<mml:mtext>&#xa0;and&#xa0;</mml:mtext>
<mml:msup>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>u</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#x2217;</mml:mo>
</mml:msup>
<mml:mo>&#x2261;</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>a</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mi>t</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>b</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>.</mml:mo>
</mml:mrow>
</mml:math>
<label>(18)</label>
</disp-formula>
</p>
<p>One key feature of the open-loop solution method using a two-point boundary-value problem is the enforcement of end conditions producing optimal trajectories for state (<inline-formula id="inf26">
<mml:math id="m44">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>x</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:math>
</inline-formula>&#x2a;), rate (<inline-formula id="inf27">
<mml:math id="m45">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>v</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:math>
</inline-formula>&#x2a;), acceleration (<inline-formula id="inf28">
<mml:math id="m46">
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>v</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#x2d9;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:mrow>
<mml:mo>&#x2217;</mml:mo>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula>), and jerk (<inline-formula id="inf29">
<mml:math id="m47">
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>v</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#xa8;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:mrow>
<mml:mo>&#x2217;</mml:mo>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula>), in addition to the formulation of an optimal control, <italic>u</italic>&#x2a;. These signals yield the opportunity to formulate decoupling control components to mitigate the transport theorem (illustrated in section 2.9).</p>
</sec>
<sec id="s2-8">
<title>2.8 Real-Time Optimal Control With Singular Switching</title>
<p>Highlighting the matrix inverse in <xref ref-type="disp-formula" rid="e17">Eq. 17</xref>, the possibility of issues inverting a poorly conditioned or rank-deficient matrix may be addressed by monitoring matrix conditioning or determinant and switching away from the feedback solution when encountering rank-deficient instances in favor of the optimal solution in <xref ref-type="disp-formula" rid="e15">Eq. 15</xref>.</p>
<sec id="s2-8-1">
<title>2.8.1 Matrix Inverse Formulas</title>
<p>Five disparate methods to invert the <inline-formula id="inf30">
<mml:math id="m48">
<mml:mrow>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mi>T</mml:mi>
<mml:mo>]</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> matrix were investigated, as listed in <xref ref-type="disp-formula" rid="e18">Eq. 18</xref>. Matrix inversion methods already coded in MATLAB/SIMULINK: <inline-formula id="inf31">
<mml:math id="m49">
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mi>T</mml:mi>
<mml:mo>]</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula>, <inline-formula id="inf32">
<mml:math id="m50">
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>\</mml:mo>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mi>T</mml:mi>
<mml:mo>]</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>, <inline-formula id="inf33">
<mml:math id="m51">
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>v</mml:mi>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mi>T</mml:mi>
<mml:mo>]</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>, <inline-formula id="inf34">
<mml:math id="m52">
<mml:mrow>
<mml:mi>p</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>v</mml:mi>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mi>T</mml:mi>
<mml:mo>]</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>, LU Inverse <inline-formula id="inf35">
<mml:math id="m53">
<mml:mrow>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mi>T</mml:mi>
<mml:mo>]</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>. Each method has specific strengths and weaknesses expressed in state error, rate error, control effort (quadratic cost), and runtime, as displayed in <xref ref-type="table" rid="T1">Table 1</xref>. In several instances, the simulation would fault as a result of encountering matrix singularity.</p>
</sec>
</sec>
<sec id="s2-9">
<title>2.9 Nonlinear Transport Theorem Decoupling (Recall Transport Theorem in Section 2.2)</title>
<p>As mentioned in <xref ref-type="sec" rid="s2-6">Section 2.6</xref>, the desire is to use the results of <xref ref-type="sec" rid="s2-7">Sections 2.7</xref> , <xref ref-type="sec" rid="s2-8">2.8</xref> applied to nonlinear dynamics coupled by transport theorem. <xref ref-type="sec" rid="s2-2">Section 2.2</xref> describes the nonlinear coupling effects of measuring motion in coordinates of rotating reference frames extracted for highlighting in <xref ref-type="disp-formula" rid="e18">Eq. 18</xref> for translation and rotation, respectively. These effects were neglected when optimizing the double-integrator&#x2013;based systems of equations or simplified by linearization in other instantiations. Taking advantage of the results in <xref ref-type="sec" rid="s2-6">Sections 2.6</xref>, <xref ref-type="sec" rid="s2-7">2.7</xref>, nonlinear decoupling control components may be formulated using the optimal trajectories as displayed in <xref ref-type="disp-formula" rid="e18">Eq. 18</xref>, <italic>where each component (translation and rotation, respectively) should be added to augment the control in</italic> <xref ref-type="disp-formula" rid="e17">
<italic>Eq. 17</italic>
</xref>
<italic>.</italic>
<disp-formula id="e18">
<mml:math id="m93">
<mml:mrow>
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mrow>
<mml:mrow>
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi>R</mml:mi>
<mml:mi>o</mml:mi>
<mml:mi>t</mml:mi>
<mml:mi>a</mml:mi>
<mml:mi>t</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>o</mml:mi>
<mml:mi>n</mml:mi>
<mml:mo>:</mml:mo>
<mml:mo>&#xa0;</mml:mo>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mi>o</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>l</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>a</mml:mi>
<mml:mi>r</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mo>&#xa0;</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>&#x3c9;</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#xd7;</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>J</mml:mi>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>&#x3c9;</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi>T</mml:mi>
<mml:mi>r</mml:mi>
<mml:mi>a</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>s</mml:mi>
<mml:mi>l</mml:mi>
<mml:mi>a</mml:mi>
<mml:mi>t</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>o</mml:mi>
<mml:mi>n</mml:mi>
<mml:mo>:</mml:mo>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mi>o</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>l</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>a</mml:mi>
<mml:mi>r</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>m</mml:mi>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>&#x3c9;</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:mfrac>
<mml:mo>&#xd7;</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>r</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>2</mml:mn>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>m</mml:mi>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>&#x3c9;</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#xd7;</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>v</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>m</mml:mi>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>&#x3c9;</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#xd7;</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>&#x3c9;</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#xd7;</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>r</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
<mml:mo>}</mml:mo>
</mml:mrow>
<mml:mo>&#xa0;</mml:mo>
<mml:mi>F</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>d</mml:mi>
<mml:mi>b</mml:mi>
<mml:mi>a</mml:mi>
<mml:mi>c</mml:mi>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mrow>
<mml:mrow>
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi>R</mml:mi>
<mml:mi>o</mml:mi>
<mml:mi>t</mml:mi>
<mml:mi>a</mml:mi>
<mml:mi>t</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>o</mml:mi>
<mml:mi>n</mml:mi>
<mml:mo>:</mml:mo>
<mml:mo>&#xa0;</mml:mo>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mi>o</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>l</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>a</mml:mi>
<mml:mi>r</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>&#x3c9;</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#x2217;</mml:mo>
</mml:msup>
<mml:mo>&#xd7;</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>J</mml:mi>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>&#x3c9;</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#x2217;</mml:mo>
</mml:msup>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi>T</mml:mi>
<mml:mi>r</mml:mi>
<mml:mi>a</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>s</mml:mi>
<mml:mi>l</mml:mi>
<mml:mi>a</mml:mi>
<mml:mi>t</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>o</mml:mi>
<mml:mi>n</mml:mi>
<mml:mo>:</mml:mo>
<mml:mo>&#xa0;</mml:mo>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mi>o</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>l</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>a</mml:mi>
<mml:mi>r</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>m</mml:mi>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:msup>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>&#x3c9;</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#x2217;</mml:mo>
</mml:msup>
</mml:mrow>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:mfrac>
<mml:mo>&#xd7;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>r</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#x2217;</mml:mo>
</mml:msup>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>2</mml:mn>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>m</mml:mi>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>&#x3c9;</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#x2217;</mml:mo>
</mml:msup>
<mml:mo>&#xd7;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>v</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#x2217;</mml:mo>
</mml:msup>
<mml:mo>&#x2b;</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>m</mml:mi>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>&#x3c9;</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#x2217;</mml:mo>
</mml:msup>
<mml:mo>&#xd7;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>&#x3c9;</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#x2217;</mml:mo>
</mml:msup>
<mml:mo>&#xd7;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>r</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#x2217;</mml:mo>
</mml:msup>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
<mml:mo>}</mml:mo>
</mml:mrow>
<mml:mo>&#xa0;</mml:mo>
<mml:mi>F</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>d</mml:mi>
<mml:mi>f</mml:mi>
<mml:mi>o</mml:mi>
<mml:mi>r</mml:mi>
<mml:mi>w</mml:mi>
<mml:mi>a</mml:mi>
<mml:mi>r</mml:mi>
<mml:mi>d</mml:mi>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:math>
<label>(19)</label>
</disp-formula>
</p>
<p>It is proposed to take the nonlinear control components in <xref ref-type="disp-formula" rid="e18">Eq. 18</xref> formulated using the optimal <italic>trajectories</italic> from <xref ref-type="disp-formula" rid="e18">Eq. 18</xref> and augment them with <xref ref-type="disp-formula" rid="e17">Eq. 17</xref>&#x2019;s optimal <italic>control</italic> solutions to comprise the <italic>total control</italic> for rotation and translation, respectively, displayed in <xref ref-type="disp-formula" rid="e19">Eq. 19</xref>.<disp-formula id="e19">
<mml:math id="m94">
<mml:mrow>
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mrow>
<mml:mrow>
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi>R</mml:mi>
<mml:mi>o</mml:mi>
<mml:mi>t</mml:mi>
<mml:mi>a</mml:mi>
<mml:mi>t</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>o</mml:mi>
<mml:mi>n</mml:mi>
<mml:mo>:</mml:mo>
<mml:mo>&#xa0;</mml:mo>
<mml:msubsup>
<mml:mi>u</mml:mi>
<mml:mrow>
<mml:mi>t</mml:mi>
<mml:mi>o</mml:mi>
<mml:mi>t</mml:mi>
<mml:mi>a</mml:mi>
<mml:mi>l</mml:mi>
</mml:mrow>
<mml:mo>&#x2217;</mml:mo>
</mml:msubsup>
<mml:mo>&#x3d;</mml:mo>
<mml:mo>&#xa0;</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>a</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mi>t</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>b</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>&#x3c9;</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#xd7;</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>J</mml:mi>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>&#x3c9;</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi>T</mml:mi>
<mml:mi>r</mml:mi>
<mml:mi>a</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>s</mml:mi>
<mml:mi>l</mml:mi>
<mml:mi>a</mml:mi>
<mml:mi>t</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>o</mml:mi>
<mml:mi>n</mml:mi>
<mml:mo>:</mml:mo>
<mml:msubsup>
<mml:mi>u</mml:mi>
<mml:mrow>
<mml:mi>t</mml:mi>
<mml:mi>o</mml:mi>
<mml:mi>t</mml:mi>
<mml:mi>a</mml:mi>
<mml:mi>l</mml:mi>
</mml:mrow>
<mml:mo>&#x2217;</mml:mo>
</mml:msubsup>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>a</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mi>t</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>b</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>m</mml:mi>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>&#x3c9;</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:mfrac>
<mml:mo>&#xd7;</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>r</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>2</mml:mn>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>m</mml:mi>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>&#x3c9;</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#xd7;</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>v</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>m</mml:mi>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>&#x3c9;</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#xd7;</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>&#x3c9;</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#xd7;</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>r</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
<mml:mo>}</mml:mo>
</mml:mrow>
<mml:mo>&#xa0;</mml:mo>
<mml:mo>&#xa0;</mml:mo>
<mml:mi>F</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>d</mml:mi>
<mml:mi>b</mml:mi>
<mml:mi>a</mml:mi>
<mml:mi>c</mml:mi>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mrow>
<mml:mrow>
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi>R</mml:mi>
<mml:mi>o</mml:mi>
<mml:mi>t</mml:mi>
<mml:mi>a</mml:mi>
<mml:mi>t</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>o</mml:mi>
<mml:mi>n</mml:mi>
<mml:mo>:</mml:mo>
<mml:mo>&#xa0;</mml:mo>
<mml:msubsup>
<mml:mi>u</mml:mi>
<mml:mrow>
<mml:mi>t</mml:mi>
<mml:mi>o</mml:mi>
<mml:mi>t</mml:mi>
<mml:mi>a</mml:mi>
<mml:mi>l</mml:mi>
</mml:mrow>
<mml:mo>&#x2217;</mml:mo>
</mml:msubsup>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>a</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mi>t</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>b</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>&#x3c9;</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#x2217;</mml:mo>
</mml:msup>
<mml:mo>&#xd7;</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>J</mml:mi>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>&#x3c9;</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#x2217;</mml:mo>
</mml:msup>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi>T</mml:mi>
<mml:mi>r</mml:mi>
<mml:mi>a</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>s</mml:mi>
<mml:mi>l</mml:mi>
<mml:mi>a</mml:mi>
<mml:mi>t</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>o</mml:mi>
<mml:mi>n</mml:mi>
<mml:mo>:</mml:mo>
<mml:mo>&#xa0;</mml:mo>
<mml:msubsup>
<mml:mi>u</mml:mi>
<mml:mrow>
<mml:mi>t</mml:mi>
<mml:mi>o</mml:mi>
<mml:mi>t</mml:mi>
<mml:mi>a</mml:mi>
<mml:mi>l</mml:mi>
</mml:mrow>
<mml:mo>&#x2217;</mml:mo>
</mml:msubsup>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>a</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mi>t</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>b</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>m</mml:mi>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:msup>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>&#x3c9;</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#x2217;</mml:mo>
</mml:msup>
</mml:mrow>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:mfrac>
<mml:mo>&#xd7;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>r</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#x2217;</mml:mo>
</mml:msup>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>2</mml:mn>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>m</mml:mi>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>&#x3c9;</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#x2217;</mml:mo>
</mml:msup>
<mml:mo>&#xd7;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>v</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#x2217;</mml:mo>
</mml:msup>
<mml:mo>&#x2b;</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>m</mml:mi>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>&#x3c9;</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#x2217;</mml:mo>
</mml:msup>
<mml:mo>&#xd7;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>&#x3c9;</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#x2217;</mml:mo>
</mml:msup>
<mml:mo>&#xd7;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>r</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#x2217;</mml:mo>
</mml:msup>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
<mml:mo>}</mml:mo>
</mml:mrow>
<mml:mo>&#xa0;</mml:mo>
<mml:mi>F</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>d</mml:mi>
<mml:mi>f</mml:mi>
<mml:mi>o</mml:mi>
<mml:mi>r</mml:mi>
<mml:mi>w</mml:mi>
<mml:mi>a</mml:mi>
<mml:mi>r</mml:mi>
<mml:mi>d</mml:mi>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:math>
<label>(20)</label>
</disp-formula>
</p>
<p>The distinction between feedforward and feedback is determined by the chosen manner of decoupling the nonlinear transport theorem. One option is feedback decoupling, where feedback states are combined (for example, for rotation) as <inline-formula id="inf75">
<mml:math id="m95">
<mml:mrow>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>&#x3c9;</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#xd7;</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>J</mml:mi>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>&#x3c9;</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> and added to the optimal control to form a new nonlinear control. On the other hand, feedforward decoupling (used in section 3) combines the optimal equations of state from <xref ref-type="disp-formula" rid="e15">Eqs. 15</xref> and <xref ref-type="disp-formula" rid="e16">16</xref>, respectively, combined as <inline-formula id="inf76">
<mml:math id="m96">
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>&#x3c9;</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#x2217;</mml:mo>
</mml:msup>
<mml:mo>&#xd7;</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>J</mml:mi>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>&#x3c9;</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#x2217;</mml:mo>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula> and augments the optimal controls with this new nonlinear control. The efficacy of this latter suggestion is evaluated in section 3.</p>
<p>Section 3 validates the proposed developments culminating in the combination of real-time optimal control (<xref ref-type="disp-formula" rid="e17">Eq. 17</xref>) together with transport theorem decoupling in <xref ref-type="disp-formula" rid="e19">Eq. 19</xref>, specifically for rotation using feedforward: <inline-formula id="inf77">
<mml:math id="m97">
<mml:mrow>
<mml:msubsup>
<mml:mtext>u</mml:mtext>
<mml:mrow>
<mml:mtext>total</mml:mtext>
</mml:mrow>
<mml:mtext>&#x2a;</mml:mtext>
</mml:msubsup>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>a</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mi>t</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>b</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:msup>
<mml:mi>&#x3c9;</mml:mi>
<mml:mo>&#x2217;</mml:mo>
</mml:msup>
<mml:mo>&#xd7;</mml:mo>
<mml:mi>J</mml:mi>
<mml:msup>
<mml:mi>&#x3c9;</mml:mi>
<mml:mo>&#x2217;</mml:mo>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula>. After evaluating initial efficacy, effectiveness against realistically varying systems with noise is investigated.</p>
</sec>
<sec id="s2-10">
<title>2.10 Noisy Mixed Sensors and Parameter Variations</title>
<p>With the inclusion of feedback, noise must be accounted for in the feedback signals (state and rate only here) in the form of random numbers with a standard deviation of 0.01 (1% of the final state value when states are scaled and balanced to unity). In addition, mass and mass moments are assumed to be unknown or not precisely known; therefore, mass and moments were allowed to vary randomly (uniformly) ten percent heavier and lighter. The resulting scatterplots are presented in section 3.</p>
</sec>
<sec id="s2-11">
<title>2.11 Scaling and Balancing</title>
<p>Poorly conditioned problems are those requiring simultaneous mathematical operations on very large and small numbers. A common mitigation strategy is to scale and balance the variables transforming equations to nominally remain of the same order. Scaling problems by common, well-known values permits single developments to be broadly applied to a wide range of state spaces not initially intended. Normalizing time per <xref ref-type="disp-formula" rid="e20">Eq. 20</xref> restricts simulation time to vary between zero and unity. Scaling mass and mass moments of inertia matrices by their nominal values per <xref ref-type="disp-formula" rid="e21">Eqs. 21</xref> and <xref ref-type="disp-formula" rid="e22">22</xref>, respectively, keep their values roughly on the order of unity. Generic displacements (translation or rotation) are normalized in accordance with <xref ref-type="disp-formula" rid="e23">Eq. 23</xref>, where <inline-formula id="inf78">
<mml:math id="m98">
<mml:mrow>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mtext>r</mml:mtext>
<mml:mo>}</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> could indicate either general translational or rotational displacement.<disp-formula id="e20">
<mml:math id="m99">
<mml:mrow>
<mml:mi>t</mml:mi>
<mml:mo>&#x2261;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>t</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mi>t</mml:mi>
<mml:mi>f</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfrac>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:math>
<label>(21)</label>
</disp-formula>
<disp-formula id="e21">
<mml:math id="m100">
<mml:mrow>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>m</mml:mi>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#x2261;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mi>m</mml:mi>
<mml:mo>]</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mi>m</mml:mi>
<mml:mo>]</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mi>o</mml:mi>
<mml:mi>m</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>a</mml:mi>
<mml:mi>l</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfrac>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:math>
<label>(22)</label>
</disp-formula>
<disp-formula id="e22">
<mml:math id="m101">
<mml:mrow>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>J</mml:mi>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#x2261;</mml:mo>
<mml:mfrac>
<mml:mi>J</mml:mi>
<mml:mrow>
<mml:msub>
<mml:mi>J</mml:mi>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mi>o</mml:mi>
<mml:mi>m</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>a</mml:mi>
<mml:mi>l</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfrac>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:math>
<label>(23)</label>
</disp-formula>
<disp-formula id="e23">
<mml:math id="m102">
<mml:mrow>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>r</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#x2261;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mi>r</mml:mi>
<mml:mo>}</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mi>r</mml:mi>
<mml:mo>}</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mi>f</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfrac>
<mml:mo>&#xa0;</mml:mo>
<mml:mi>f</mml:mi>
<mml:mi>o</mml:mi>
<mml:mi>r</mml:mi>
<mml:mo>&#xa0;</mml:mo>
<mml:mi>t</mml:mi>
<mml:mi>r</mml:mi>
<mml:mi>a</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>s</mml:mi>
<mml:mi>l</mml:mi>
<mml:mi>a</mml:mi>
<mml:mi>t</mml:mi>
<mml:mi>o</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>n</mml:mi>
<mml:mo>&#xa0;</mml:mo>
<mml:mi>a</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>d</mml:mi>
<mml:mo>&#xa0;</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>&#x3b8;</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#x2261;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mi>&#x3b8;</mml:mi>
<mml:mo>}</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mi>&#x3b8;</mml:mi>
<mml:mo>}</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mi>f</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfrac>
<mml:mo>&#xa0;</mml:mo>
<mml:mi>f</mml:mi>
<mml:mi>o</mml:mi>
<mml:mi>r</mml:mi>
<mml:mo>&#xa0;</mml:mo>
<mml:mi>r</mml:mi>
<mml:mi>o</mml:mi>
<mml:mi>t</mml:mi>
<mml:mi>a</mml:mi>
<mml:mi>t</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>o</mml:mi>
<mml:mi>n</mml:mi>
<mml:mo>.</mml:mo>
</mml:mrow>
</mml:math>
<label>(24)</label>
</disp-formula>
</p>
</sec>
</sec>
<sec id="s3">
<title>3 Results</title>
<p>Following the brief introduction to each control technique presented earlier in section 2, section 3 displays the results of individual simulations in addition to the Monte Carlo investigation of ten-thousand simulations. Section 3.1 begins with commonly simplifying assumptions of control design using dominant, double-integrator dynamics with no transport theorem, where the control <inline-formula id="inf79">
<mml:math id="m103">
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>u</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#x2217;</mml:mo>
</mml:msup>
<mml:mo>&#x2261;</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>a</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mi>t</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>b</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> is applied to the same idealized system equations. The use of idealized results provides interesting measures of performance under ideal circumstances subject to mathematical optimization. Another interesting artifact is the immediately obvious differences in the responses to disparate control techniques.</p>
<p>Next, in section 3.2, the performance of controllers designed using simplified double-integrators <inline-formula id="inf80">
<mml:math id="m104">
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>u</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#x2217;</mml:mo>
</mml:msup>
<mml:mo>&#x2261;</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>a</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mi>t</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>b</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> was applied to more realistic plant equations with transport theorem. Then, in section 3.3, nonlinear control designs <inline-formula id="inf81">
<mml:math id="m105">
<mml:mrow>
<mml:msubsup>
<mml:mtext>u</mml:mtext>
<mml:mrow>
<mml:mtext>total</mml:mtext>
</mml:mrow>
<mml:mtext>&#x2a;</mml:mtext>
</mml:msubsup>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>a</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mi>t</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>b</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>&#x3c9;</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#x2217;</mml:mo>
</mml:msup>
<mml:mo>&#xd7;</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>J</mml:mi>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>&#x3c9;</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#x2217;</mml:mo>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula> are introduced, and comparisons are made applied to nonlinear plants, including transport theorem. Lastly, in section 3.4, random uniformly varying inertia was studied with random noise added to sensor data for both state and rate, and the comparisons were repeated in ten-thousand simulations. These final simulations all utilized nonlinear control designs based on various optimization methods, and the results were applied to nonlinear, coupled system equations, including the transport theorem, where controls were tailored specifically for the transport theorem in the recommended application of optimization (real-time optimal control with singular switching and transport theorem decoupling). All simulations were executed in MATLAB<sup>&#xae;</sup>/SIMULINK<sup>&#xae;</sup> R2021b (9.11.0.1769968), whose machine precision was <inline-formula id="inf82">
<mml:math id="m106">
<mml:mrow>
<mml:mi>e</mml:mi>
<mml:mi>p</mml:mi>
<mml:mi>s</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>2.2204</mml:mn>
<mml:mo>&#xd7;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mn>10</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>16</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula>.</p>
<p>A new presentation style is offered to increase the ease of reading and contemplation of the results. Quantitative figures of merit are presented in tables inserted as sub-figures immediately proximal to corresponding data plots presenting qualitative results.</p>
<sec id="s3-1">
<title>3.1 Ideal, Linear Double Integrator System Equations</title>
<p>Double-integrator equations expressing relationships between displacement, displacement rate, and acceleration are canonical relationships used to describe the movement of mass. The relationships are linear, allowing easy control design using classical methods, which predominantly use linear systems methods to design controllers for any equations (including linearizing any nonlinear equations). Each control design technique introduced in section 2 was sequentially used to control the linear, double-integrator system equations, and the results are presented in <xref ref-type="fig" rid="F3">Figure 3</xref>, where <xref ref-type="table" rid="T9">Table 9</xref> contains quantitative results corresponding to the qualitative results presented in the multi-plots.</p>
<fig id="F3" position="float">
<label>FIGURE 3</label>
<caption>
<p>Double-integrator plant (no transport theorem) with control design based on double-integrator. <bold>(A)</bold> Motion <italic>states</italic> (translation or rotational) normalized to propagate from zero and unity in one normalized second. <bold>(B)</bold> Motion <italic>rates</italic> (translation or rotational) intended to propagate from zero initial velocity to zero velocity at the endpoint in one normalized second.</p>
</caption>
<graphic xlink:href="frobt-09-884669-g003.tif"/>
</fig>
<table-wrap id="T9" position="float">
<label>TABLE 9</label>
<caption>
<p>Double-integrator plant (no transport theorem) with control design based off double-integrator (no transport theorem): quantitative comparative data corresponding to the qualitative display in <xref ref-type="fig" rid="F3">Figures 3A,B</xref>.</p>
</caption>
<table>
<thead valign="top">
<tr>
<th align="left">Method</th>
<th align="center">State error</th>
<th align="center">Rate error</th>
<th align="center">Cost</th>
<th align="center">Runtime</th>
</tr>
</thead>
<tbody valign="top">
<tr>
<td align="left">Classical <italic>p</italic> &#x2b; V</td>
<td align="center">0.010115</td>
<td align="center">0.066169</td>
<td align="center">28.1671</td>
<td align="center">3.1012</td>
</tr>
<tr>
<td align="left">LQR Optimal PD</td>
<td align="center">0.015015</td>
<td align="center">0.43861</td>
<td align="char" char=".">76.3418</td>
<td align="char" char=".">2.4597</td>
</tr>
<tr>
<td align="left">Time-optimal control</td>
<td align="center">eps</td>
<td align="center">2</td>
<td align="char" char=".">2</td>
<td align="char" char=".">2.9038</td>
</tr>
<tr>
<td align="left">Open loop optimal<xref ref-type="table-fn" rid="Tfn2">
<sup>a</sup>
</xref>
</td>
<td align="center">eps</td>
<td align="center">Eps</td>
<td align="char" char=".">6</td>
<td align="char" char=".">2.6086</td>
</tr>
<tr>
<td align="left">Real-time optimal (RTOC)<xref ref-type="table-fn" rid="Tfn2">
<sup>a</sup>
</xref>
</td>
<td align="center">
<inline-formula id="inf109">
<mml:math id="m133">
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>9.1882</mml:mn>
<mml:mo>&#xd7;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mn>10</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>6</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="center">0.019289</td>
<td align="char" char=".">6.7656</td>
<td align="char" char=".">2.7497</td>
</tr>
<tr>
<td align="left">Switched RTOC<xref ref-type="table-fn" rid="Tfn2">
<sup>a</sup>
</xref>
</td>
<td align="center">eps</td>
<td align="center">Eps</td>
<td align="char" char=".">6</td>
<td align="char" char=".">2.7281</td>
</tr>
</tbody>
</table>
<table-wrap-foot>
<fn id="Tfn2">
<label>a</label>
<p>Real-time optimal control <inline-formula id="inf110">
<mml:math id="m134">
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>u</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#x2217;</mml:mo>
</mml:msup>
<mml:mo>&#x2261;</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>a</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mi>t</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>b</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> (with and without switching) and open-loop optimal control are visually indistinguishable from one another in the graphic depiction.</p>
</fn>
</table-wrap-foot>
</table-wrap>
<p>The baseline approach (classical proportional plus velocity, or so-called &#x201c;P &#x2b; V&#x201d; control) tuned to performance specification exhibits better accuracy and lower costs than linear-quadratic optimal regulators of the proportional, derivative (PD) type, but the P &#x2b; V controller has the highest computational burden as indicated by computational runtime. The embedded differentiation of the noisy feedback signal in the rate channel would logically explain the relatively lower performance of the LQR tracking. Time-optimal (bang-bang) control achieved machine precision state tracking accuracy with the largest rate tracking error of the controllers investigated. Such performance is validated by the instinct that time-optimal control is mathematically designed to achieve the desired state in the shortest time but is not structured to simultaneously achieve rate tracking in minimal time. The cost was the lowest of the controllers investigated, indicating the benefits of not requiring simultaneous rate tracking. Computational runtime was the second largest.</p>
<p>Open-loop optimization calculates the minimum control effort that simultaneously meets state and rate endpoint conditions, and accordingly, both state and rate endpoints are achieved to machine precision, while the computational burden is modest compared to low and high cases. Real-time optimization solves the open-loop optimal control problem in real-time using ideal sensor feedback of state and rate but involves a matrix inverse. Rate and state errors (particularly) are quite small, but machine precision tracking is not achieved. Part of the cause of tracking errors is the inversion of the rank-deficient matrix as the final time is approached. Seeking to ameliorate the issue, switched real-time optimal control is presented where the matrix condition is used to switch away from real-time optimal control to open-loop optimal control during timesteps when matrix inversion becomes poorly conditioned. Machine precision tracking is attained, open-loop optimally low costs are re-achieved, and the computational burden is slightly elevated compared to the best case investigated.</p>
<p>Summarizing the results so far, real-time optimal control (designed only to minimize control effort) with singular switching to counter the deleterious effects of poor matrix conditioning achieves the best simultaneous state and rate error (machine precision) with costs matching the open-loop minimal and average computational burden. Unfortunately, these results are achievable only in idealized circumstances of double-integrators. Expressing motion in coordinates of rotating reference frames introduced nonlinear coupling described in the next section (3.2).</p>
</sec>
<sec id="s3-2">
<title>3.2 Nonlinear Plants With Cross-Product Coupled Transport Theorem With Linear Control Designs</title>
<p>Expressing motion in coordinates of rotating reference frames is referred to as the &#x201c;transport theorem,&#x201d; which introduces nonlinear coupling between the six channels of motion that would otherwise have been well-described by simple, linear double-integrators. Very often, linearized system equations or linear assumptions (the double-integrators) are used to design linear controllers. Accordingly, each instance investigated in section 3.1 was applied to nonlinear coupled system equations, including the transport theorem. Increased errors and reduced robustness is generally anticipated since the controllers are not designed to accommodate system nonlinearities specifically. Each control technique introduced in Section 2 was sequentially simulated, and the results are presented in <xref ref-type="fig" rid="F4">Figure 4</xref>, where <xref ref-type="table" rid="T10">Table 10</xref> contains quantitative results corresponding to the qualitative results presented in the multi-plots.</p>
<fig id="F4" position="float">
<label>FIGURE 4</label>
<caption>
<p>Double-integrator plant (no transport theorem) with control design based on double-integrator. <bold>(A)</bold> Motion <italic>states</italic> (translation or rotational) normalized to propagate from zero and unity in one normalized second. <bold>(B)</bold> Motion <italic>rates</italic> (translation or rotational) intended to propagate from zero initial velocity to zero velocity at the endpoint in one normalized second.</p>
</caption>
<graphic xlink:href="frobt-09-884669-g004.tif"/>
</fig>
<table-wrap id="T10" position="float">
<label>TABLE 10</label>
<caption>
<p>Double-integrator plant (<italic>with</italic> transport theorem) with control design based off double-integrator (<italic>without</italic> transport theorem): displays the quantitative comparative data corresponding to the qualitative display in <xref ref-type="fig" rid="F4">Figure 4</xref>.</p>
</caption>
<table>
<thead valign="top">
<tr>
<th align="left">Method</th>
<th align="center">State error</th>
<th align="center">Rate error</th>
<th align="center">Cost</th>
<th align="center">Runtime</th>
</tr>
</thead>
<tbody valign="top">
<tr>
<td align="left">Classical <italic>p</italic> &#x2b; V</td>
<td align="center">0.024582</td>
<td align="center">0.12803</td>
<td align="center">26.6076</td>
<td align="center">3.4291</td>
</tr>
<tr>
<td align="left">LQR Optimal PD</td>
<td align="char" char=".">0.26241</td>
<td align="char" char=".">0.31372</td>
<td align="char" char=".">75.8051</td>
<td align="char" char=".">3.4593</td>
</tr>
<tr>
<td align="left">Time-optimal control</td>
<td align="char" char=".">0.56622</td>
<td align="char" char=".">0.76159</td>
<td align="char" char=".">0.5</td>
<td align="char" char=".">3.4437</td>
</tr>
<tr>
<td align="left">Open loop optimal<xref ref-type="table-fn" rid="Tfn3">
<sup>a</sup>
</xref>
</td>
<td align="char" char=".">0.3606</td>
<td align="char" char=".">&#x2212;0.63176</td>
<td align="char" char=".">6</td>
<td align="char" char=".">3.5315</td>
</tr>
<tr>
<td align="left">Real-time optimal (RTOC)<xref ref-type="table-fn" rid="Tfn3">
<sup>a</sup>
</xref>
</td>
<td align="center">
<inline-formula id="inf111">
<mml:math id="m135">
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1.9654</mml:mn>
<mml:mo>&#xd7;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mn>10</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>5</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="char" char=".">0.041323</td>
<td align="char" char=".">11.2002</td>
<td align="char" char=".">3.4579</td>
</tr>
<tr>
<td align="left">Switched RTOC<xref ref-type="table-fn" rid="Tfn3">
<sup>a</sup>
</xref>
</td>
<td align="char" char=".">0.3606</td>
<td align="char" char=".">&#x2212;0.63176</td>
<td align="char" char=".">6</td>
<td align="char" char=".">3.5097</td>
</tr>
</tbody>
</table>
<table-wrap-foot>
<fn id="Tfn3">
<label>a</label>
<p>Real-time optimal control <inline-formula id="inf112">
<mml:math id="m136">
<mml:mrow>
<mml:msubsup>
<mml:mtext>u</mml:mtext>
<mml:mrow>
<mml:mtext>total</mml:mtext>
</mml:mrow>
<mml:mtext>&#x2a;</mml:mtext>
</mml:msubsup>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>a</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mi>t</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>b</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> (with and without switching) and open-loop optimal control are visually indistinguishable from one another in the graphic depiction. Notice the control design did not account for nonlinear transport theorem with <inline-formula id="inf113">
<mml:math id="m137">
<mml:mrow>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mrow>
<mml:mtext>nonlinear</mml:mtext>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>&#x3c9;</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#x2217;</mml:mo>
</mml:msup>
<mml:mo>&#xd7;</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>J</mml:mi>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>&#x3c9;</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#x2217;</mml:mo>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula>, the resulting open-loop optimal costs were unchanged, but the state and rate errors increased substantially due to the nonlinear plant not being included in control design. <xref ref-type="fig" rid="F5">Figure 5</xref> displays the results of including nonlinear control design <inline-formula id="inf114">
<mml:math id="m138">
<mml:mrow>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mrow>
<mml:mtext>nonlinear</mml:mtext>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>&#x3c9;</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#x2217;</mml:mo>
</mml:msup>
<mml:mo>&#xd7;</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>J</mml:mi>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>&#x3c9;</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#x2217;</mml:mo>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula>.</p>
</fn>
</table-wrap-foot>
</table-wrap>
<p>It should be noted that all approaches designed to control double-integrators illustrate degraded performance compared to the idealized case investigated in <xref ref-type="sec" rid="s3-1">Section 3.1</xref>. All methods compared achieved similar costs. The baseline approach (classical proportional plus velocity, or P &#x2b; V) tuned to performance specification exhibits second-best state accuracy and second-best rate accuracy, while real-time optimal control achieved the lowest state and rate errors but used nearly double the amount of control. No technique achieved machine precision tracking.</p>
<p>Summarizing the results so far, all control techniques are degraded from the idealized case. Real-time optimal control (designed only to minimize control effort) and classical control methods were the most robust, but all three methods utilized substantially more control effort.</p>
</sec>
<sec id="s3-3">
<title>3.3 Nonlinear Plants With Cross-Product Coupled Transport Theorem and Nonlinear Control Designs</title>
<p>Double-integrator relationships (implemented identically as done in sections 3.1 and 3.2) are next augmented with feedback decoupling of the transport theorem using state feedback in <xref ref-type="disp-formula" rid="e19">Eq. 19</xref>. Each control design technique introduced in section 2 was sequentially used to control the nonlinear, double-integrator system equations including transport theorem, and the results are presented in <xref ref-type="fig" rid="F5">Figure 5</xref>, where <xref ref-type="table" rid="T11">Table 11</xref> contains quantitative results corresponding to the qualitative results presented in the multi-plots.</p>
<fig id="F5" position="float">
<label>FIGURE 5</label>
<caption>
<p>Double-integrator plant (no transport theorem) with control design based on double-integrator. <bold>(A)</bold> Motion <italic>states</italic> (translation or rotational) normalized to propagate from zero and unity in one normalized second. <bold>(B)</bold> Motion <italic>rates</italic> (translation or rotational) intended to propagate from zero initial velocity to zero velocity at the endpoint in one normalized second.</p>
</caption>
<graphic xlink:href="frobt-09-884669-g005.tif"/>
</fig>
<table-wrap id="T11" position="float">
<label>TABLE 11</label>
<caption>
<p>Double-integrator plant (<italic>with</italic> transport theorem) with control design based off double-integrator <italic>with</italic> transport theorem: displays the quantitative comparative data corresponding to the qualitative display in <xref ref-type="fig" rid="F5">Figures 5A, B</xref>.</p>
</caption>
<table>
<thead valign="top">
<tr>
<th align="left">Method</th>
<th align="center">State error</th>
<th align="center">Rate error</th>
<th align="center">Cost</th>
<th align="center">Runtime</th>
</tr>
</thead>
<tbody valign="top">
<tr>
<td align="left">Classical <italic>p</italic> &#x2b; V</td>
<td align="center">0.0078728</td>
<td align="center">0.038016</td>
<td align="center">27.0064</td>
<td align="center">3.5535</td>
</tr>
<tr>
<td align="left">LQR Optimal PD</td>
<td align="char" char=".">&#x2212;0.0063144</td>
<td align="char" char=".">0.57121</td>
<td align="char" char=".">75.7706</td>
<td align="char" char=".">3.5738</td>
</tr>
<tr>
<td align="left">Time-optimal control</td>
<td align="char" char=".">0.16359</td>
<td align="char" char=".">1.2712</td>
<td valign="top" align="char" char=".">2.7286</td>
<td align="char" char=".">3.629</td>
</tr>
<tr>
<td align="left">Open loop optimal<xref ref-type="table-fn" rid="Tfn4">
<sup>a</sup>
</xref>
</td>
<td align="center">
<inline-formula id="inf115">
<mml:math id="m139">
<mml:mrow>
<mml:mn>3.0287</mml:mn>
<mml:mo>&#xd7;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mn>10</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>13</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="center">
<inline-formula id="inf116">
<mml:math id="m140">
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1.0092</mml:mn>
<mml:mo>&#xd7;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mn>10</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>12</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="char" char=".">7.0286</td>
<td align="char" char=".">3.4504</td>
</tr>
<tr>
<td align="left">Real-time optimal (RTOC)<xref ref-type="table-fn" rid="Tfn4">
<sup>a</sup>
</xref>
</td>
<td align="center">
<inline-formula id="inf117">
<mml:math id="m141">
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>9.1882</mml:mn>
<mml:mo>&#xd7;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mn>10</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>6</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="char" char=".">0.019288</td>
<td valign="top" align="char" char=".">7.7942</td>
<td align="char" char=".">3.6725</td>
</tr>
<tr>
<td align="left">Switched RTOC<xref ref-type="table-fn" rid="Tfn4">
<sup>a</sup>
</xref>
</td>
<td align="center">
<inline-formula id="inf118">
<mml:math id="m142">
<mml:mrow>
<mml:mn>3.0287</mml:mn>
<mml:mo>&#xd7;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mn>10</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>13</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="center">
<inline-formula id="inf119">
<mml:math id="m143">
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1.0092</mml:mn>
<mml:mo>&#xd7;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mn>10</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>12</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="char" char=".">7.0286</td>
<td align="char" char=".">3.5765</td>
</tr>
</tbody>
</table>
<table-wrap-foot>
<fn id="Tfn4">
<label>a</label>
<p>Unlike the results of <xref ref-type="fig" rid="F4">Figure 4</xref> where only linear, time-varying control designs <inline-formula id="inf120">
<mml:math id="m144">
<mml:mrow>
<mml:msubsup>
<mml:mtext>u</mml:mtext>
<mml:mrow>
<mml:mtext>total</mml:mtext>
</mml:mrow>
<mml:mtext>&#x2a;</mml:mtext>
</mml:msubsup>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>a</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mi>t</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>b</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> were used, in <xref ref-type="fig" rid="F5">Figure 5</xref> nonlinear designs for real-time optimal control <inline-formula id="inf121">
<mml:math id="m145">
<mml:mrow>
<mml:msubsup>
<mml:mtext>u</mml:mtext>
<mml:mrow>
<mml:mtext>total</mml:mtext>
</mml:mrow>
<mml:mtext>&#x2a;</mml:mtext>
</mml:msubsup>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>a</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mi>t</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>b</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>&#x3c9;</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#x2217;</mml:mo>
</mml:msup>
<mml:mo>&#xd7;</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>J</mml:mi>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>&#x3c9;</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#x2217;</mml:mo>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula> (with and without switching) were used. Notice the open-loop optimal control is visually indistinguishable from nonlinear, time-varying control designs in the graphic depiction.</p>
</fn>
</table-wrap-foot>
</table-wrap>
<p>All methods are improved by addition of the nonlinear decoupling control designed for the transport theorem. Time-optimal control performs worst regarding state and rate errors, while cost figures are generally increased for methods that effectively track state and rate. Near machine-precision is achieved by open-loop optimal control and switched, real-time optimal control where both are designed to minimize control effort alone (with no state error representation in the minimized cost function). Computational burdens of all approaches are roughly comparable.</p>
<p>Having initially analyzed idealized systems (the double-integrators), nonlinear coupling was induced by the transport theorem with significantly degraded performance using the controllers designed for linear systems. Adding nonlinear control components designed specifically to decouple the transport theorem in feedback roughly restores nominal performances, but feedback remains ideal (without noise). Section 3.4 adds zero-mean Gaussian noise to both sensor types (state and rate)</p>
</sec>
<sec id="s3-4">
<title>3.4 Nonlinear Plants With Cross-Product Coupled Transport Theorem and Nonlinear Control Designs Utilizing Noisy, Mixed-Sensors</title>
<p>Double-integrator equations with nonlinearities induced by transport theorem were controlled by linear control designs augmented with nonlinear feedback decoupling designed specifically for transport theorem. Feedback was provided by simulated mixed state and rate sensors, and Gaussian noise was added. Each control design technique introduced in section 2 was sequentially used to control the linear, double-integrator system equations, and the results are presented in <xref ref-type="fig" rid="F6">Figure 6</xref>, where <xref ref-type="table" rid="T12">Table 12</xref> contains quantitative results corresponding to the qualitative results presented in the multi-plots.</p>
<fig id="F6" position="float">
<label>FIGURE 6</label>
<caption>
<p>Double-integrator plant (with transport theorem) with control design based on double-integrator (with transport theorem). <bold>(A)</bold> Motion <italic>states</italic> (translation or rotational) normalized to propagate from zero and unity in one normalized second. <bold>(B)</bold> Motion <italic>rates</italic> (translation or rotational) intended to propagate from zero initial velocity to zero velocity at the endpoint in one normalized second. Notice that the open-loop optimal (minimum) control effort is increased from 6.0 (controlling double-integrators without transport theorem) to just over 7.0 (controlling double-integrators with transport theorem), manifesting as a 17% increase to account for transport theorem over idealized cases of double-integrators alone.</p>
</caption>
<graphic xlink:href="frobt-09-884669-g006.tif"/>
</fig>
<table-wrap id="T12" position="float">
<label>TABLE 12</label>
<caption>
<p>Double-integrator plant (<italic>with</italic> transport theorem) with control design based off double-integrator <italic>with</italic> transport theorem and noisy, mixed sensors (state and rate): sub-displays the quantitative comparative data corresponding to the qualitative display in sub-<xref ref-type="fig" rid="F6">Figure 6</xref>.</p>
</caption>
<table>
<thead valign="top">
<tr>
<th align="left">Method</th>
<th align="center">State error</th>
<th align="center">Rate error</th>
<th align="center">Cost</th>
<th align="center">Runtime</th>
</tr>
</thead>
<tbody valign="top">
<tr>
<td align="left">Classical <italic>p</italic> &#x2b; V</td>
<td align="char" char=".">&#x2212;0.0066807</td>
<td align="char" char=".">0.03828</td>
<td align="char" char=".">27.0755</td>
<td align="char" char=".">2.3988</td>
</tr>
<tr>
<td align="left">LQR Optimal PD</td>
<td align="char" char=".">&#x2212;0.0047636</td>
<td align="char" char=".">0.56965</td>
<td align="char" char=".">76.8806</td>
<td align="char" char=".">2.4667</td>
</tr>
<tr>
<td align="left">Time-optimal control</td>
<td align="char" char=".">0.16546</td>
<td valign="top" align="char" char=".">1.2693</td>
<td align="char" char=".">2.7286</td>
<td align="char" char=".">2.4837</td>
</tr>
<tr>
<td align="left">Open loop optimal<xref ref-type="table-fn" rid="Tfn5">
<sup>a</sup>
</xref>
</td>
<td align="char" char=".">0.0018665</td>
<td align="char" char=".">&#x2212;0.0018665</td>
<td align="char" char=".">7.0286</td>
<td align="char" char=".">2.5816</td>
</tr>
<tr>
<td align="left">Real-time optimal (RTOC)<xref ref-type="table-fn" rid="Tfn5">
<sup>a</sup>
</xref>
</td>
<td align="char" char=".">0.06463</td>
<td valign="top" align="char" char=".">&#x2212;171.6553</td>
<td align="char" char=".">41,436,948</td>
<td align="char" char=".">2.469</td>
</tr>
<tr>
<td align="left">Switched RTOC<xref ref-type="table-fn" rid="Tfn5">
<sup>a</sup>
</xref>
</td>
<td align="char" char=".">0.0018665</td>
<td align="char" char=".">&#x2212;0.0018665</td>
<td align="char" char=".">7.0286</td>
<td align="char" char=".">2.6125</td>
</tr>
</tbody>
</table>
<table-wrap-foot>
<fn id="Tfn5">
<label>a</label>
<p>Real-time optimal control <inline-formula id="inf122">
<mml:math id="m146">
<mml:mrow>
<mml:msubsup>
<mml:mtext>u</mml:mtext>
<mml:mrow>
<mml:mtext>total</mml:mtext>
</mml:mrow>
<mml:mtext>&#x2a;</mml:mtext>
</mml:msubsup>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>a</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mi>t</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>b</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>&#x3c9;</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#x2217;</mml:mo>
</mml:msup>
<mml:mo>&#xd7;</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>J</mml:mi>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>&#x3c9;</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#x2217;</mml:mo>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula> (with and without switching) and open-loop optimal control are visually indistinguishable from one another in the graphic depiction.</p>
</fn>
</table-wrap-foot>
</table-wrap>
<p>The baseline approach (classical proportional plus velocity, or P &#x2b; V) tuned to performance specification exhibits better rate accuracy and lower costs than linear-quadratic optimal regulators of the proportional, derivative (PD) type, but the P &#x2b; V controller has relatively inferior state errors compared to LQR. Time-optimal control performs poorly in the face of transport theorem and noisy sensors. Real-time optimal control is severely degraded by noise, particularly with respect to rate errors and control effort.</p>
<p>Open-loop optimization and real-time optimal control with singular switching simultaneously achieve the lowest state and rate endpoint errors, with the lowest costs (that may be claimed to meet endpoint conditions), while the computational burden is modest compared to low and high cases.</p>
<sec id="s3-4-1">
<title>3.4.1 Monte Carlos Analysis (6,000 Simulation Runs)</title>
<p>Summarizing the results so far, real-time optimal control (designed only to minimize control effort) with singular switching to counter the deleterious effects of poor matrix conditioning achieves the best simultaneous state and rate error with costs matching the open-loop minimal and average computational burden in cases where nonlinear feedback decoupling of transport theorem is incorporated and where feedback is provided by noisy state and rate sensors.</p>
</sec>
</sec>
</sec>
<sec id="s4">
<title>4 Discussion</title>
<p>The results are multi-variate, but some general comments are evident regarding the proposed real-time optimal control with singular switching and transport theorem decoupling and its performance compared to a classical benchmark and four other instantiations of optimal control. In the most realistic situations revealed by Monte Carlo analysis with random variations of inertia and state and rate sensor noise, time-optimal bang-bang control achieved respectable rate accuracy with the lowest cost but highest runtime and modest rate tracking errors. Meanwhile, optimal (control minimizing constrained to meet endpoint conditions) open-loop control and its companion real-time optimal control with singular switching achieved the lowest state errors (three orders of magnitude better than time-optimal control) and control effort, while real-time optimal control with singular switching and transport theorem decoupling achieved the lowest rate tracking error. Real-time optimal control without singular switching displayed vulnerability in rate errors and high costs.</p>
<p>Other general conclusions apply to all techniques: designing controls based on simplified plants and then applying them to realistic plants is particularly weak compared to the relatively modern approaches. Arguably, milli-degree accuracy with &#x201c;low&#x201d; costs is admirable performance, but the modern methods of control design, including optimality and nonlinear coupling effects (with feedback), achieved, in general, three orders of magnitude superior performance, with the admission that real-time optimal control performed particularly poorly.</p>
<p>Furthermore, well-known lessons from classical control are re-validated in this study. Linear-quadratic regulators are very robust and useful, but suffer from cascaded topologies, particularly in the differentiation of the state feedback to achieve rate feedback, thus the utilization of velocity control was established as the classical baseline (with a requisite demand to purchase and utilize rate sensors).</p>
<p>The proposed instantiation of real-time optimal control with singular switching and nonlinear transport theorem decoupling <inline-formula id="inf124">
<mml:math id="m148">
<mml:mrow>
<mml:msubsup>
<mml:mtext>u</mml:mtext>
<mml:mrow>
<mml:mtext>total</mml:mtext>
</mml:mrow>
<mml:mtext>&#x2a;</mml:mtext>
</mml:msubsup>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>a</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mi>t</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>b</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>&#x3c9;</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#x2217;</mml:mo>
</mml:msup>
<mml:mo>&#xd7;</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>J</mml:mi>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo stretchy="true">&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>&#x3c9;</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#x2217;</mml:mo>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula> was the overall top-performing option with the lowest state errors, lowest rate errors, lowest computational burden, and second-lowest control effort (fuel usage).</p>
<p>Lastly, it should be noted that all the control techniques performed very well (naturally, since most of the techniques were formulated to satisfy optimization problems). The indication of superior performance should not be judged as mandating the proposed technique, especially in instances where operators would be more comfortable with classical techniques and the order of milli-degree accuracy is sufficient.</p>
<sec id="s4-1">
<title>4.1 Performance Improvement Percentages</title>
<p>The claim was just immediately earlier, validating that real-time optimal control with singular switching and transport theorem decoupling was the overall top-performing option, and this section describes the results validating the claim in generally understandable terms (percent performance improvement comparison). Open-loop (control minimizing optimal control constrained to meet end state and rate) performed very well, while real-time optimal control with singular switching matched the performance and was slightly better in terms of computational burden.</p>
</sec>
<sec id="s4-2">
<title>4.2 Future Research</title>
<p>The derivation of optimal trajectories (state, rate, acceleration, and jerk) should prove useful in the implementation of deterministic artificial intelligence (<xref ref-type="bibr" rid="B40">Smeresky et al., 2020</xref>), which requires some scheme of autonomous trajectory generation. The current state of the art utilizes sinusoidal trajectory generation schemes, and the optimal trajectories illustrated here should have improved efficacy when used to augment deterministic artificial intelligence.</p>
</sec>
</sec>
<sec id="s5">
<title>5 Conclusion</title>
<p>Real-time optimal control is proposed to deal with nonlinear mechanics, including transport theorem coupling nonlinearities, where noisy (random) sensors are assumed, and random parameter variation is countered with time-varying solutions to Pontryagin&#x2019;s necessary conditions of optimality. Specifically, the Hamiltonian minimization condition and the adjoint equations produce the form of the control parameterized in terms of time and mass or mass moment of inertia, respectively. Singularity-based switching is proposed to address divergence of the adjoints approaching the final state. Ubiquitous figures of merit are used to compare the proposed methods to benchmark classical and modern optimal control methods: mean state and rate errors, quadratic costs embodying necessary fuel usage, and computational runtime as an avatar of the computational burden. Open-loop optimal control established an intermediate baseline over the benchmark classical control, while the proposed method yielded identical performance improvements in terms of state and rate accuracy and quadratic cost while experimentally illustrating an unexpected ten percent improvement in computational burden.</p>
</sec>
</body>
<back>
<sec sec-type="data-availability" id="s6">
<title>Data Availability Statement</title>
<p>The raw data supporting the conclusions of this article will be made available by the authors, without undue reservation.</p>
</sec>
<sec id="s7">
<title>Author Contributions</title>
<p>The author confirms being the sole contributor of this work and has approved it for publication.</p>
</sec>
<sec id="s8">
<title>Funding</title>
<p>The APC was funded by the corresponding author.</p>
</sec>
<sec sec-type="COI-statement" id="s9">
<title>Conflict of Interest</title>
<p>The author declares that the research was conducted in the absence of any commercial or financial relationships that could be construed as a potential conflict of interest.</p>
</sec>
<sec sec-type="disclaimer" id="s10">
<title>Publisher&#x2019;s Note</title>
<p>All claims expressed in this article are solely those of the authors and do not necessarily represent those of their affiliated organizations, or those of the publisher, the editors, and the reviewers. Any product that may be evaluated in this article, or claim that may be made by its manufacturer, is not guaranteed or endorsed by the publisher.</p>
</sec>
<sec id="s11">
<title>Supplementary Material</title>
<p>The Supplementary Material for this article can be found online at: <ext-link ext-link-type="uri" xlink:href="https://www.frontiersin.org/articles/10.3389/frobt.2022.884669/full#supplementary-material">https://www.frontiersin.org/articles/10.3389/frobt.2022.884669/full&#x23;supplementary-material</ext-link>
</p>
<supplementary-material xlink:href="DataSheet1.docx" id="SM1" mimetype="application/docx" xmlns:xlink="http://www.w3.org/1999/xlink"/>
</sec>
<ref-list>
<title>References</title>
<ref id="B1">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Arguchintsev</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Poplevko</surname>
<given-names>V.</given-names>
</name>
</person-group> (<year>2021</year>). <article-title>An Optimal Control Problem by a Hybrid System of Hyperbolic and Ordinary Differential Equations</article-title>. <source>Games</source> <volume>12</volume>, <fpage>23</fpage>. <pub-id pub-id-type="doi">10.3390/g12010023</pub-id> </citation>
</ref>
<ref id="B2">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Arora</surname>
<given-names>R.</given-names>
</name>
</person-group> (<year>2002</year>). &#x201c;<article-title>Reentry Trajectory Optimization: Evolutionary Approach</article-title>,&#x201d; in <source>Proceedings of the 9th AIAA/ISSMO Symposium on Multidisciplinary Analysis and Optimization</source> (<publisher-loc>Atlanta, Georgia: AIAA Press</publisher-loc>, <fpage>4</fpage>&#x2013;<lpage>6</lpage>. <pub-id pub-id-type="doi">10.2514/6.2002-5466</pub-id> </citation>
</ref>
<ref id="B3">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Baker</surname>
<given-names>K.</given-names>
</name>
<name>
<surname>Cooper</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Heidlauf</surname>
<given-names>P.</given-names>
</name>
<name>
<surname>Sands</surname>
<given-names>T.</given-names>
</name>
</person-group> (<year>2018</year>). <article-title>Autonomous Trajectory Generation for Deterministic Artificial Intelligence</article-title>. <source>Electr. Electron. Eng.</source> <volume>8</volume> (<issue>3</issue>), <fpage>59</fpage>. <pub-id pub-id-type="doi">10.5923/j.eee.20180803.01</pub-id> </citation>
</ref>
<ref id="B4">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Bertin</surname>
<given-names>E.</given-names>
</name>
<name>
<surname>Brendel</surname>
<given-names>E.</given-names>
</name>
<name>
<surname>H&#xe9;riss&#xe9;</surname>
<given-names>B.</given-names>
</name>
<name>
<surname>Sandretto</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Chapoutot</surname>
<given-names>A.</given-names>
</name>
</person-group> (<year>2021</year>). &#x201c;<article-title>Prospects on Solving an Optimal Control Problem with Bounded Uncertainties on Parameters Using Interval Arithmetics</article-title>,&#x201d; in <source>Acta Cybernetica</source> (<publisher-name>Austin, TX: University of Szeged, Institute of Informatics</publisher-name>), <fpage>1</fpage>&#x2013;<lpage>25</lpage>. <pub-id pub-id-type="doi">10.14232/actacyb.285798</pub-id> </citation>
</ref>
<ref id="B5">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Boltyanskii</surname>
<given-names>V.</given-names>
</name>
</person-group> (<year>1971</year>). <source>Mathematical Methods of Optimal Control</source>. <publisher-name>Holt Rinehart &#x26; Winston</publisher-name>. <comment>Austin, TX: (Translated from Russian)</comment>. </citation>
</ref>
<ref id="B6">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Bonnans</surname>
<given-names>J. F.</given-names>
</name>
<name>
<surname>Festa</surname>
<given-names>A.</given-names>
</name>
</person-group> (<year>2017</year>). <article-title>Error Estimates for the Euler Discretization of an Optimal Control Problem with First-Order State Constraints</article-title>. <source>SIAM J. Numer. Anal.</source> <volume>55</volume> (<issue>2</issue>), <fpage>445</fpage>&#x2013;<lpage>471</lpage>. <pub-id pub-id-type="doi">10.1137/140999621</pub-id> </citation>
</ref>
<ref id="B7">
<citation citation-type="confproc">
<person-group person-group-type="author">
<name>
<surname>Botto</surname>
<given-names>M. A.</given-names>
</name>
<name>
<surname>van den Boom</surname>
<given-names>T.</given-names>
</name>
<name>
<surname>Costa</surname>
<given-names>J. S. d.</given-names>
</name>
</person-group> (<year>2001</year>). &#x201c;<article-title>Stability Analysis to Parametric Uncertainty: Extension to the Multivariable Case</article-title>,&#x201d; in <conf-name>Nonlin. Con. Year</conf-name> (<publisher-loc>London</publisher-loc>: <publisher-name>Springer</publisher-name>), <fpage>93</fpage>&#x2013;<lpage>102</lpage>. <pub-id pub-id-type="doi">10.1007/BFb0110210</pub-id> </citation>
</ref>
<ref id="B8">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Chai</surname>
<given-names>R.</given-names>
</name>
<name>
<surname>Savvaris</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Tsourdos</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Chai</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Xia</surname>
<given-names>Y.</given-names>
</name>
</person-group> (<year>2019</year>). <article-title>A Review of Optimization Techniques in Spacecraft Flight Trajectory Design</article-title>. <source>Prog. Aerosp. Sci.</source> <volume>109</volume> (<issue>2</issue>), <fpage>100543</fpage>. <pub-id pub-id-type="doi">10.1016/j.paerosci.2019.05.003</pub-id> </citation>
</ref>
<ref id="B9">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Chai</surname>
<given-names>R.</given-names>
</name>
<name>
<surname>Savvaris</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Tsourdos</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Chai</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Xia</surname>
<given-names>Y.</given-names>
</name>
</person-group> (<year>2018b</year>). <article-title>Optimal Fuel Consumption Finite-Thrust Orbital Hopping of Aeroassisted Spacecraft</article-title>. <source>Aerosp. Sci. Technol.</source> <volume>75</volume>, <fpage>172</fpage>&#x2013;<lpage>182</lpage>. <pub-id pub-id-type="doi">10.1016/j.ast.2017.12.026</pub-id> </citation>
</ref>
<ref id="B10">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Chai</surname>
<given-names>R.</given-names>
</name>
<name>
<surname>Savvaris</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Tsourdos</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Chai</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Xia</surname>
<given-names>Y.</given-names>
</name>
</person-group> (<year>2018b</year>). <article-title>Optimal Tracking Guidance for Aeroassisted Spacecraft Reconnaissance Mission Based on Receding Horizon Control</article-title>. <source>IEEE Trans. Aerosp. Electron. Syst.</source> <volume>54</volume> (<issue>4</issue>), <fpage>1575</fpage>&#x2013;<lpage>1588</lpage>. <pub-id pub-id-type="doi">10.1109/taes.2018.2798219</pub-id> </citation>
</ref>
<ref id="B11">
<citation citation-type="confproc">
<person-group person-group-type="author">
<name>
<surname>Chen</surname>
<given-names>G.</given-names>
</name>
<name>
<surname>Wan</surname>
<given-names>Z.-M.</given-names>
</name>
<name>
<surname>Xu</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Chen</surname>
<given-names>S.-L.</given-names>
</name>
</person-group> (<year>2005</year>). &#x201c;<article-title>Genetic Algorithm Optimization of RLV Reentry Trajectory</article-title>,&#x201d; in <conf-name>Proceedings of the AIAA/CIRA 13th International Space Planes and Hypersonic Systems and Technologies Conference</conf-name> (<publisher-loc>Italy</publisher-loc>: <publisher-name>Capua</publisher-name>). <pub-id pub-id-type="doi">10.2514/6.2005-3269</pub-id> </citation>
</ref>
<ref id="B12">
<citation citation-type="confproc">
<person-group person-group-type="author">
<name>
<surname>Duprez</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Morancey</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Rossi</surname>
<given-names>F.</given-names>
</name>
</person-group> (<year>2017</year>). &#x201c;<article-title>Controllability and Optimal Control of the Transport Equation with a Localized Vector Field</article-title>,&#x201d; in <conf-name>2017 25th Mediterranean Conference on Control and Automation (MED). IEEE</conf-name>, <fpage>74</fpage>&#x2013;<lpage>79</lpage>. <pub-id pub-id-type="doi">10.1109/MED.2017.7984098</pub-id> </citation>
</ref>
<ref id="B13">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Ferreres</surname>
<given-names>G.</given-names>
</name>
<name>
<surname>Fromion</surname>
<given-names>V.</given-names>
</name>
</person-group> (<year>2010</year>). <article-title>Nonlinear Analysis in the Presence of Parametric Uncertainties</article-title>. <source>Int. J. Control</source> <volume>69</volume>, <fpage>695</fpage>&#x2013;<lpage>716</lpage>. <pub-id pub-id-type="doi">10.1080/002071798222631</pub-id> </citation>
</ref>
<ref id="B14">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Flugge-Lotz</surname>
<given-names>I.</given-names>
</name>
</person-group> (<year>1953</year>). <source>Discontinuous Automatic Control</source>. <publisher-loc>Princeton, USA</publisher-loc>: <publisher-name>Princeton University Press</publisher-name>. </citation>
</ref>
<ref id="B15">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Gao</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Yang</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>Shi</surname>
<given-names>P.</given-names>
</name>
</person-group> (<year>2009</year>). <article-title>Multi-Objective Robust <italic>H</italic>
<sub>&#x221e;</sub> Control of Spacecraft Rendezvous</article-title>. <source>IEEE Trans. Contr. Syst. Technol.</source> <volume>17</volume> (<issue>4</issue>), <fpage>794</fpage>&#x2013;<lpage>802</lpage>. <pub-id pub-id-type="doi">10.1109/TCST.2008.2012166</pub-id> </citation>
</ref>
<ref id="B16">
<citation citation-type="confproc">
<person-group person-group-type="author">
<name>
<surname>Heidlauf</surname>
<given-names>P.</given-names>
</name>
<name>
<surname>Cooper</surname>
<given-names>M.</given-names>
</name>
</person-group> (<year>2017</year>). &#x201c;<article-title>Nonlinear Lyapunov Control Improved by an Extended Least Squares Adaptive Feed Forward Controller and Enhanced Luenberger Observer</article-title>,&#x201d; in <conf-name>Proceedings of the International Conference and Exhibition on Mechanical &#x26; Aerospace Engineering</conf-name> (<publisher-loc>NV, USA</publisher-loc>: <publisher-name>Las Vegas</publisher-name>), <fpage>2</fpage>&#x2013;<lpage>4</lpage>. </citation>
</ref>
<ref id="B17">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Hu</surname>
<given-names>W.</given-names>
</name>
<name>
<surname>Xie</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Chau</surname>
<given-names>H. W.</given-names>
</name>
<name>
<surname>Si</surname>
<given-names>B. C.</given-names>
</name>
</person-group> (<year>2015</year>). <article-title>Evaluation of Parameter Uncertainties in Nonlinear Regression Using Microsoft Excel Spreadsheet</article-title>. <source>Environ. Syst. Res.</source> <volume>4</volume>, <fpage>4</fpage>. <pub-id pub-id-type="doi">10.1186/s40068-015-0031-4</pub-id> </citation>
</ref>
<ref id="B18">
<citation citation-type="confproc">
<person-group person-group-type="author">
<name>
<surname>Ivanov</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Vashchenkov</surname>
<given-names>P.</given-names>
</name>
<name>
<surname>Kashkovsky</surname>
<given-names>A.</given-names>
</name>
</person-group> (<year>2007</year>). &#x201c;<article-title>Numerical Investigation of the EXPERT Reentry Vehicle Aerothermodynamics along the Descent Trajectory</article-title>,&#x201d; in <conf-name>Proceedings of the 39th AIAA Thermophysics Conference</conf-name> (<publisher-loc>Miami, Florida</publisher-loc>, <fpage>25</fpage>&#x2013;<lpage>28</lpage>. <pub-id pub-id-type="doi">10.2514/6.2007-4145</pub-id> </citation>
</ref>
<ref id="B19">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Kelly</surname>
<given-names>R.</given-names>
</name>
</person-group> (<year>2005</year>). &#x201c;<article-title>Proportional Control Plus Velocity Feedback and PD Control</article-title>,&#x201d; in <source>Control of Robot Manipulators in Joint Space. Advanced Textbooks in Control and Signal Processing</source> (<publisher-loc>London</publisher-loc>: <publisher-name>Springer</publisher-name>), <fpage>141</fpage>&#x2013;<lpage>156</lpage>. <pub-id pub-id-type="doi">10.1007/1-85233-999-3_8</pub-id> </citation>
</ref>
<ref id="B20">
<citation citation-type="web">
<collab>Kinematics Handout - MIT OpenCourseWare</collab> (<year>2021</year>). <article-title>Newton&#x27;s Laws, Vectors, and Reference Frames</article-title>. <comment>Available online at: <ext-link ext-link-type="uri" xlink:href="https://ocw.mit.edu/courses/mechanical-engineering/2-003sc-engineering-dynamics-fall-2011/newton2019s-laws-vectors-and-reference-frames/MIT2_003SCF11Kinematic.pdf">https://ocw.mit.edu/courses/mechanical-engineering/2-003sc-engineering-dynamics-fall-2011/newton2019s-laws-vectors-and-reference-frames/MIT2_003SCF11Kinematic.pdf</ext-link> (Accessed December 30, 2021)</comment>. </citation>
</ref>
<ref id="B21">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Kwakernaak</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Sivan</surname>
<given-names>R.</given-names>
</name>
</person-group> (<year>1972</year>). <source>Linear Optimal Control Systems</source>. <edition>First Edition</edition>. <publisher-loc>Hoboken, USA</publisher-loc>: <publisher-name>Wiley-Interscience</publisher-name>. </citation>
</ref>
<ref id="B22">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Mahmoodabadi</surname>
<given-names>M. J.</given-names>
</name>
<name>
<surname>Andalib Sahnehsaraei</surname>
<given-names>M.</given-names>
</name>
</person-group> (<year>2021</year>). <article-title>Parametric Uncertainty Handling of Under-actuated Nonlinear Systems Using an Online Optimal Input-Output Feedback Linearization Controller</article-title>. <source>Syst. Sci. Control Eng.</source> <volume>9</volume> (<issue>1</issue>), <fpage>209</fpage>&#x2013;<lpage>218</lpage>. <pub-id pub-id-type="doi">10.1080/21642583.2021.1891993</pub-id> </citation>
</ref>
<ref id="B23">
<citation citation-type="web">
<person-group person-group-type="author">
<name>
<surname>Malecek</surname>
<given-names>A.</given-names>
</name>
</person-group> (<year>2021</year>). <article-title>Robert Lorenz, Pioneer in Controls Engineering, Passes Away</article-title>. <comment>Available online at: <ext-link ext-link-type="uri" xlink:href="https://www.engr.wisc.edu/news/robert-lorenz-pioneer-controls-engineering-passes-away/%20">https://www.engr.wisc.edu/news/robert-lorenz-pioneer-controls-engineering-passes-away/</ext-link>
</comment>(<comment>Accessed February 23, 2021)</comment>. </citation>
</ref>
<ref id="B24">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Meda-Campana</surname>
<given-names>J. A.</given-names>
</name>
</person-group> (<year>2018</year>). <article-title>On the Estimation and Control of Nonlinear Systems with Parametric Uncertainties and Noisy Outputs</article-title>. <source>IEEE Access</source> <volume>6</volume>, <fpage>31968</fpage>&#x2013;<lpage>31973</lpage>. <pub-id pub-id-type="doi">10.1109/ACCESS.2018.2846483</pub-id> </citation>
</ref>
<ref id="B25">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Murray</surname>
<given-names>R. M.</given-names>
</name>
</person-group> (<year>2010</year>). &#x201c;<article-title>CalTech Notes</article-title>,&#x201d; in <source>Chapter 2 Optimization-Based Control</source>. <comment>Available online at: <ext-link ext-link-type="uri" xlink:href="https://www.cds.caltech.edu/%7Emurray/books/AM08/pdf/obc-optimal_04Jan10.pdf">https://www.cds.caltech.edu/&#x223c;murray/books/AM08/pdf/obc-optimal_04Jan10.pdf</ext-link> (Accessed December 30, 2021)</comment>. </citation>
</ref>
<ref id="B26">
<citation citation-type="web">
<collab>NASA</collab> (<year>2021b</year>). <article-title>NASA Ejects Nanosatellite from Microsatellite in Space</article-title>. <comment>Available online at: <ext-link ext-link-type="uri" xlink:href="https://www.nasa.gov/mission_pages/smallsats/fastsat/10-162.html">https://www.nasa.gov/mission_pages/smallsats/fastsat/10-162.html</ext-link> (Accessed February 23, 2021)</comment>. </citation>
</ref>
<ref id="B27">
<citation citation-type="web">
<collab>NASA</collab> (<year>2021c</year>). <article-title>NASA Image Use Policy</article-title>. <comment>Available online at: <ext-link ext-link-type="uri" xlink:href="https://gpm.nasa.gov/image-use-policy">https://gpm.nasa.gov/image-use-policy</ext-link> (Accessed December 23, 2021)</comment>. </citation>
</ref>
<ref id="B28">
<citation citation-type="web">
<collab>NASA</collab> (<year>2021a</year>). <article-title>NASA&#x27;s FASTSAT Microsatellite Readied to Share Ride to Space</article-title>. <comment>Available online at: <ext-link ext-link-type="uri" xlink:href="https://www.nasa.gov/mission_pages/smallsats/fastsat/10-152.html">https://www.nasa.gov/mission_pages/smallsats/fastsat/10-152.html</ext-link> (Accessed February 23, 2021)</comment>. </citation>
</ref>
<ref id="B29">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Pontani</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Conway</surname>
<given-names>B. A.</given-names>
</name>
</person-group> (<year>2013</year>). <article-title>Optimal Finite-Thrust Rendezvous Trajectories Found via Particle Swarm Algorithm</article-title>. <source>J. Spacecr. Rockets</source> <volume>50</volume> (<issue>6</issue>), <fpage>1222</fpage>&#x2013;<lpage>1234</lpage>. <pub-id pub-id-type="doi">10.2514/1.A32402</pub-id> </citation>
</ref>
<ref id="B30">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Pontryagin</surname>
<given-names>L.</given-names>
</name>
<name>
<surname>Boltayanskii</surname>
<given-names>V.</given-names>
</name>
<name>
<surname>Gamkrelidze</surname>
<given-names>R.</given-names>
</name>
<name>
<surname>Mishchenko</surname>
<given-names>E.</given-names>
</name>
</person-group> (<year>1962</year>). <source>The Mathematical Theory of Optimal Processes</source>. <publisher-loc>New York</publisher-loc>: <publisher-name>Wiley-Interscience</publisher-name>. <comment>(Translated from Russian)</comment>. </citation>
</ref>
<ref id="B31">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Rao</surname>
<given-names>A.</given-names>
</name>
</person-group> (<year>2009</year>). <article-title>A Survey of Numerical Methods for Optimal Control</article-title>. <source>Adv. Astronautical Sci.</source> <volume>135</volume> (<issue>1</issue>), <fpage>497</fpage>&#x2013;<lpage>528</lpage>. </citation>
</ref>
<ref id="B32">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Rao</surname>
<given-names>A. V.</given-names>
</name>
<name>
<surname>Tang</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Hallman</surname>
<given-names>W. P.</given-names>
</name>
</person-group> (<year>2002</year>). <article-title>Numerical Optimization Study of Multiple-Pass Aeroassisted Orbital Transfer</article-title>. <source>Optim. Control Appl. Meth.</source> <volume>23</volume> (<issue>4</issue>), <fpage>215</fpage>&#x2013;<lpage>238</lpage>. <pub-id pub-id-type="doi">10.1002/oca.711</pub-id> </citation>
</ref>
<ref id="B33">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Ross</surname>
<given-names>I. M.</given-names>
</name>
<name>
<surname>Karpenko</surname>
<given-names>M.</given-names>
</name>
</person-group> (<year>2012</year>). <article-title>A Review of Pseudospectral Optimal Control: From Theory to Flight</article-title>. <source>Annu. Rev. Control</source> <volume>36</volume> (<issue>2</issue>), <fpage>182</fpage>&#x2013;<lpage>197</lpage>. <pub-id pub-id-type="doi">10.1016/j.arcontrol.2012.09.002</pub-id> </citation>
</ref>
<ref id="B34">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Ross</surname>
<given-names>M.</given-names>
</name>
</person-group> (<year>2015</year>). <source>A Primer on Pontryagin&#x2019;s Principle in Optimal Control</source>. <publisher-loc>CA</publisher-loc>: <publisher-name>Collegiate Publishers</publisher-name>. </citation>
</ref>
<ref id="B35">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Sagliano</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Mooij</surname>
<given-names>E.</given-names>
</name>
<name>
<surname>Theil</surname>
<given-names>S.</given-names>
</name>
</person-group> (<year>2017</year>). <article-title>Onboard Trajectory Generation for Entry Vehicles via Adaptive Multivariate Pseudospectral Interpolation</article-title>. <source>J. Guid. Control, Dyn.</source> <volume>40</volume> (<issue>2</issue>), <fpage>466</fpage>&#x2013;<lpage>476</lpage>. <pub-id pub-id-type="doi">10.2514/1.G001817</pub-id> </citation>
</ref>
<ref id="B36">
<citation citation-type="confproc">
<person-group person-group-type="author">
<name>
<surname>Sands</surname>
<given-names>T.</given-names>
</name>
<name>
<surname>Kim</surname>
<given-names>J. J.</given-names>
</name>
<name>
<surname>Agrawal</surname>
<given-names>B. N.</given-names>
</name>
</person-group> (<year>2009</year>). &#x201c;<article-title>Improved Hamiltonian Adaptive Control of Spacecraft</article-title>,&#x201d; in <conf-name>Proceedings of the IEEE Aerospace Conference</conf-name> (<publisher-loc>MT, USA</publisher-loc>: <publisher-name>Big Sky</publisher-name>). <pub-id pub-id-type="doi">10.1109/AERO.2009.4839565</pub-id> </citation>
</ref>
<ref id="B37">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Sands</surname>
<given-names>T. A.</given-names>
</name>
</person-group> (<year>2011</year>). &#x201c;<article-title>Physics-Based Control Methods</article-title>,&#x201d; in <source>Advances in Spacecraft Systems and Orbit Determination</source>. Editor <person-group person-group-type="editor">
<name>
<surname>Ghadawala</surname>
<given-names>R.</given-names>
</name>
</person-group> (<publisher-loc>London, U.K.</publisher-loc>: <publisher-name>IntechOpen</publisher-name>). <pub-id pub-id-type="doi">10.5772/36128</pub-id> </citation>
</ref>
<ref id="B38">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Sands</surname>
<given-names>T.</given-names>
</name>
</person-group> (<year>2019</year>). <article-title>Comparison and Interpretation Methods for Predictive Control of Mechanics</article-title>. <source>Algorithms</source> <volume>12</volume> (<issue>11</issue>), <fpage>232</fpage>. <pub-id pub-id-type="doi">10.3390/a12110232</pub-id> </citation>
</ref>
<ref id="B39">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Sands</surname>
<given-names>T.</given-names>
</name>
</person-group> (<year>2021</year>). <article-title>Virtual Sensoring of Motion Using Pontryagin&#x27;s Treatment of Hamiltonian Systems</article-title>. <source>Sensors</source> <volume>21</volume> (<issue>13</issue>), <fpage>4603</fpage>. <pub-id pub-id-type="doi">10.3390/s21134603</pub-id> </citation>
</ref>
<ref id="B40">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Smeresky</surname>
<given-names>B.</given-names>
</name>
<name>
<surname>Rizzo</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Sands</surname>
<given-names>T.</given-names>
</name>
</person-group> (<year>2020</year>). <article-title>Optimal Learning and Self-Awareness versus PDI</article-title>. <source>Algorithms</source> <volume>13</volume> (<issue>1</issue>), <fpage>23</fpage>. <pub-id pub-id-type="doi">10.3390/a13010023</pub-id> </citation>
</ref>
<ref id="B41">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Srochko</surname>
<given-names>V. A.</given-names>
</name>
<name>
<surname>Antonik</surname>
<given-names>V. G.</given-names>
</name>
<name>
<surname>Aksenyushkina</surname>
<given-names>E. V.</given-names>
</name>
</person-group> (<year>2021</year>). <article-title>The Method of Parameterization in the Quadratic Optimal Control Problem</article-title>. <source>J. Phys. Conf. Ser.</source> <volume>1847</volume>, <fpage>012023</fpage>. <pub-id pub-id-type="doi">10.1088/1742-6596/1847/1/012023</pub-id> </citation>
</ref>
<ref id="B42">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Sweetha</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Sakthivel</surname>
<given-names>R.</given-names>
</name>
<name>
<surname>Almakhles</surname>
<given-names>D. J.</given-names>
</name>
<name>
<surname>Priyanka</surname>
<given-names>S.</given-names>
</name>
</person-group> (<year>2022</year>). <article-title>Non-Fragile Fault-Tolerant Control Design for Fractional-Order Nonlinear Systems with Distributed Delays and Fractional Parametric Uncertainties</article-title>. <source>IEEE Access</source> <volume>10</volume>, <fpage>19997</fpage>&#x2013;<lpage>20007</lpage>. <pub-id pub-id-type="doi">10.1109/ACCESS.2022.3150477</pub-id> </citation>
</ref>
<ref id="B43">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Taghieh</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Shafiei</surname>
<given-names>M. H.</given-names>
</name>
</person-group> (<year>2021a</year>). <article-title>Observer-based Robust Model Predictive Control of Switched Nonlinear Systems with Time Delay and Parametric Uncertainties</article-title>. <source>J. Vib. Control</source> <volume>27</volume> (<issue>17</issue>), <fpage>1939</fpage>&#x2013;<lpage>1955</lpage>. <pub-id pub-id-type="doi">10.1177/1077546320950523</pub-id> </citation>
</ref>
<ref id="B44">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Taghieh</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Shafiei</surname>
<given-names>M. H.</given-names>
</name>
</person-group> (<year>2021b</year>). <article-title>Static Output Feedback Control of Switched Nonlinear Systems with Time-Varying Delay and Parametric Uncertainties under Asynchronous Switching</article-title>. <source>Trans. Inst. Meas. Control</source> <volume>43</volume> (<issue>5</issue>), <fpage>1156</fpage>&#x2013;<lpage>1167</lpage>. <pub-id pub-id-type="doi">10.1177/0142331220969056</pub-id> </citation>
</ref>
<ref id="B45">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Tian</surname>
<given-names>B.</given-names>
</name>
<name>
<surname>Fan</surname>
<given-names>W.</given-names>
</name>
<name>
<surname>Su</surname>
<given-names>R.</given-names>
</name>
<name>
<surname>Zong</surname>
<given-names>Q.</given-names>
</name>
</person-group> (<year>2015</year>). <article-title>Real-time Trajectory and Attitude Coordination Control for Reusable Launch Vehicle in Reentry Phase</article-title>. <source>IEEE Trans. Ind. Electron.</source> <volume>62</volume> (<issue>3</issue>), <fpage>1639</fpage>&#x2013;<lpage>1650</lpage>. <pub-id pub-id-type="doi">10.1109/TIE.2014.2341553</pub-id> </citation>
</ref>
<ref id="B46">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Wang</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Ying</surname>
<given-names>Z. G.</given-names>
</name>
<name>
<surname>Zhu</surname>
<given-names>W. Q.</given-names>
</name>
</person-group> (<year>2009</year>). <article-title>Robustness of Non-linear Stochastic Optimal Control for Quasi-Hamiltonian Systems with Parametric Uncertainty</article-title>. <source>Int. J. Syst. Sci.</source> <volume>40</volume> (<issue>12</issue>), <fpage>1217</fpage>&#x2013;<lpage>1227</lpage>. <pub-id pub-id-type="doi">10.1080/00207720902989296</pub-id> </citation>
</ref>
<ref id="B47">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Wei</surname>
<given-names>L.</given-names>
</name>
<name>
<surname>McCloy</surname>
<given-names>R.</given-names>
</name>
<name>
<surname>Bao</surname>
<given-names>J.</given-names>
</name>
</person-group> (<year>2022</year>). <article-title>Adaptive Contraction-Based Control of Uncertain Nonlinear Processes Using Neural Networks</article-title>. <source>arXiv</source>. <comment>:2201.12816v1[eess.SY] Accepted for presentation at 13th IFAC Symposium on Dynamics and Control of Process Systems</comment>. <pub-id pub-id-type="doi">10.48550/arXiv.2201.12816</pub-id> </citation>
</ref>
<ref id="B48">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Willems</surname>
<given-names>J.</given-names>
</name>
</person-group> (<year>1971</year>). <article-title>Least Squares Stationary Optimal Control and the Algebraic Riccati Equation</article-title>. <source>IEEE Trans. Autom. Contr.</source> <volume>16</volume> (<issue>6</issue>), <fpage>621</fpage>&#x2013;<lpage>634</lpage>. <pub-id pub-id-type="doi">10.1109/tac.1971.1099831</pub-id> </citation>
</ref>
<ref id="B49">
<citation citation-type="confproc">
<person-group person-group-type="author">
<name>
<surname>Windhorst</surname>
<given-names>R.</given-names>
</name>
<name>
<surname>Ardema</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Bowles</surname>
<given-names>J.</given-names>
</name>
</person-group> (<year>1997</year>). &#x201c;<article-title>Minimum Heating Reentry Trajectories for Advanced Hypersonic Launch Vehicles</article-title>,&#x201d; in <conf-name>Proceedings of the Guidance, Navigation, and Control Conference</conf-name> (<publisher-loc>New Orleans, LA, U.S.A.: AIAA Press</publisher-loc>, <fpage>11</fpage>&#x2013;<lpage>13</lpage>. <pub-id pub-id-type="doi">10.2514/6.1997-3535</pub-id> </citation>
</ref>
<ref id="B50">
<citation citation-type="confproc">
<person-group person-group-type="author">
<name>
<surname>Zhang</surname>
<given-names>K.</given-names>
</name>
<name>
<surname>Chen</surname>
<given-names>W.</given-names>
</name>
</person-group> (<year>2011</year>). &#x201c;<article-title>Reentry Vehicle Constrained Trajectory Optimization</article-title>,&#x201d; in <conf-name>Proceedings of the 17th AIAA International Space Planes and Hypersonic Systems and Technologies Conference</conf-name> (<publisher-loc>San Francisco, California: AIAA Press</publisher-loc>, <fpage>11</fpage>&#x2013;<lpage>14</lpage>. <pub-id pub-id-type="doi">10.2514/6.2011-2231</pub-id> </citation>
</ref>
<ref id="B51">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Zhang</surname>
<given-names>Z.</given-names>
</name>
<name>
<surname>Wen</surname>
<given-names>C.</given-names>
</name>
<name>
<surname>Xing</surname>
<given-names>L.</given-names>
</name>
<name>
<surname>Song</surname>
<given-names>Y.</given-names>
</name>
</person-group> (<year>2022</year>). <article-title>Adaptive Output Feedback Control of Nonlinear Systems with Mismatched Uncertainties under Input/Output Quantization</article-title>. <source>IEEE Trans. Autom. Contr</source>. <pub-id pub-id-type="doi">10.1109/TAC.2022.3159543</pub-id> </citation>
</ref>
</ref-list>
</back>
</article>