<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD Journal Publishing with OASIS Tables v3.0 20080202//EN" "https://jats.nlm.nih.gov/nlm-dtd/publishing/3.0/journalpub-oasis3.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:oasis="http://docs.oasis-open.org/ns/oasis-exchange/table" xml:lang="en" dtd-version="3.0" article-type="research-article">
  <front>
    <journal-meta><journal-id journal-id-type="publisher">WES</journal-id><journal-title-group>
    <journal-title>Wind Energy Science</journal-title>
    <abbrev-journal-title abbrev-type="publisher">WES</abbrev-journal-title><abbrev-journal-title abbrev-type="nlm-ta">Wind Energ. Sci.</abbrev-journal-title>
  </journal-title-group><issn pub-type="epub">2366-7451</issn><publisher>
    <publisher-name>Copernicus Publications</publisher-name>
    <publisher-loc>Göttingen, Germany</publisher-loc>
  </publisher></journal-meta>
    <article-meta>
      <article-id pub-id-type="doi">10.5194/wes-11-2987-2026</article-id><title-group><article-title>Controlling rigid-wing airborne wind energy systems during circular flight without exact path following</article-title><alt-title>Controlling airborne wind energy systems in circular flights</alt-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author" corresp="yes" rid="aff1">
          <name><surname>Nguyen</surname><given-names>Duc H.</given-names></name>
          <email>duc.nguyen@bristol.ac.uk</email>
        <ext-link>https://orcid.org/0000-0002-6871-7919</ext-link></contrib>
        <contrib contrib-type="author" corresp="no" rid="aff2 aff3">
          <name><surname>Porta Ko</surname><given-names>Agustí</given-names></name>
          
        <ext-link>https://orcid.org/0000-0001-9648-9821</ext-link></contrib>
        <contrib contrib-type="author" corresp="no" rid="aff2">
          <name><surname>Tveide</surname><given-names>Tallak</given-names></name>
          
        </contrib>
        <contrib contrib-type="author" corresp="no" rid="aff1">
          <name><surname>Lowenberg</surname><given-names>Mark H.</given-names></name>
          
        </contrib>
        <contrib contrib-type="author" corresp="no" rid="aff2">
          <name><surname>Oland</surname><given-names>Espen</given-names></name>
          
        </contrib>
        <aff id="aff1"><label>1</label><institution>School of Civil, Aerospace, and Design Engineering, University of Bristol, Bristol, BS8 1TR, United Kingdom</institution>
        </aff>
        <aff id="aff2"><label>2</label><institution>Kitemill AS, Voss, 5704, Norway</institution>
        </aff>
        <aff id="aff3"><label>3</label><institution>Technical University of Denmark, Frederiksborgvej 399, 4000 Roskilde, Denmark</institution>
        </aff>
      </contrib-group>
      <author-notes><corresp id="corr1">Duc H. Nguyen (duc.nguyen@bristol.ac.uk)</corresp></author-notes><pub-date><day>14</day><month>August</month><year>2026</year></pub-date>
      
      <volume>11</volume>
      <issue>8</issue>
      <fpage>2987</fpage><lpage>3013</lpage>
      <history>
        <date date-type="received"><day>16</day><month>April</month><year>2026</year></date>
           <date date-type="rev-request"><day>23</day><month>April</month><year>2026</year></date>
           <date date-type="rev-recd"><day>1</day><month>July</month><year>2026</year></date>
           <date date-type="accepted"><day>30</day><month>July</month><year>2026</year></date>
      </history>
      <permissions>
        <copyright-statement>Copyright: © 2026 Duc H. Nguyen et al.</copyright-statement>
        <copyright-year>2026</copyright-year>
      <license license-type="open-access"><license-p>This work is licensed under the Creative Commons Attribution 4.0 International License. To view a copy of this licence, visit <ext-link ext-link-type="uri" xlink:href="https://creativecommons.org/licenses/by/4.0/">https://creativecommons.org/licenses/by/4.0/</ext-link></license-p></license></permissions><self-uri xlink:href="https://wes.copernicus.org/articles/11/2987/2026/wes-11-2987-2026.html">This article is available from https://wes.copernicus.org/articles/11/2987/2026/wes-11-2987-2026.html</self-uri><self-uri xlink:href="https://wes.copernicus.org/articles/11/2987/2026/wes-11-2987-2026.pdf">The full text article is available as a PDF file from https://wes.copernicus.org/articles/11/2987/2026/wes-11-2987-2026.pdf</self-uri>
      <abstract><title>Abstract</title>

      <p id="d2e131">We propose a feedback architecture that enables effective flight control of rigid-wing airborne wind energy systems during circular-pattern reel out. The controller performs well with only proportional-integral regulators, thereby presenting a significantly simpler solution compared to the existing literature. The key idea is in tracking the roll angle on a non-static reference frame, effectively reducing the control problem to one degree of freedom. This method of navigation does not require users to define an exact path for the kite to follow, which contributes to stability and robustness. In its minimum viable form, the controller can function with only ailerons while requiring no pitot-tube measurement, although the addition of elevators and rudder enables angle-of-attack and zero-sideslip tracking for more efficient power generation. Simulation-based verification is conducted on an industrial six-degree-of-freedom model with a flexible tether, nonlinear aerodynamics, and realistic wind conditions, showing satisfactory performance. Three expansions to the control law are then presented. The first one reduces angle of attack fluctuation during reel out by adding a proportional pitch angle feedback term to the elevator, resulting in more power. In the second expansion, the reel-out radius is automatically adjusted to enable phase synchronisation of multiple kites in a farm configuration, where minimum separation rules may apply. The third expansion implements a proportional feedback rule that enables figure-of-eight flight. By using proportional-integral architecture, the controller is easy to implement, making it a suitable baseline system for benchmarking more advanced control laws.</p>
  </abstract>
    
<funding-group>
<award-group id="gs1">
<funding-source>Engineering and Physical Sciences Research Council</funding-source>
<award-id>EP/Y014545/1</award-id>
</award-group>
<award-group id="gs2">
<funding-source>HORIZON EUROPE Marie Sklodowska-Curie Actions</funding-source>
<award-id>101168734</award-id>
</award-group>
<award-group id="gs3">
<funding-source>European Health and Digital Executive Agency</funding-source>
<award-id>101226256</award-id>
</award-group>
</funding-group>
</article-meta>
  </front>
<body>
      

<sec id="Ch1.S1" sec-type="intro">
  <label>1</label><title>Introduction</title>
      <p id="d2e143">Airborne wind energy systems (AWES) are an emerging technology for electricity generation using tethered flying devices. Compared to traditional wind turbines, AWES are easy to transport and use less material over their lifetime. This means they can provide clean energy in areas where the construction of wind turbines is not feasible. Since its first formal conceptualisation by Loyd (1980), AWES development has grown significantly in the past 2 decades, with research groups and startups proposing increasingly innovative designs. For an overview of the technology and its progression over the past decade, readers can refer to three systematic reviews published between 2015 and 2025 (Cherubini et al., 2015; Pereira and Sousa, 2023; Khurshid et al., 2025). Also worth mentioning are two books by Ahrens et al. (2013) and Schmehl (2018) that summarise key technical concepts.</p>
      <p id="d2e146">Because AWES lack a solid structural foundation seen in conventional wind turbines, the number of degrees of freedom expands from 1 to 6. This fact places great emphasis on flight control for making AWES safe and efficient (Vermillion et al., 2021). Compared to free-flying aircraft, AWES differ by the fact that their natural motions during circular flights are limit cycles (self-sustained oscillations with fixed amplitude and frequency). Equilibrium responses during circular flights exist only when gravity is ignored and the circular trajectory is perpendicular to the wind (Trevisi et al., 2021; Trevisi, 2024; Nguyen et al., 2026b), although this trajectory is unachievable as half of the orbit has negative height (Nguyen et al., 2026b). Consequently, any realistic trajectory requires a feedback strategy that can handle self-oscillating dynamics, and the resulting control surface movements should also be cyclic. Closed-loop control in the presence of limit cycles is uncommon for fixed-wing airframes, although it is not unheard of. The X-15's flight control system uses adaptive gains that automatically increase until a small-amplitude limit cycle is achieved, which helps the aircraft achieve the highest gain possible without causing instability (NASA, 1971).</p>
      <p id="d2e149">An overview of many AWES controllers by (Vermillion et al., 2021) shows that their algorithms are sophisticated. In the context of this paper, we can classify reel-out controllers into two categories: optimisation-based path planning and direct path planning. The former involves utilising an optimisation search (Cobb et al., 2020; Heydarnia et al., 2025) or reinforcement learning agent (Orzan et al., 2023; Basile et al., 2025) to find the best flight path that generates the most energy. The found path is a useful reference for quantifying the maximum power generation capability. However, deploying a pure optimisation-based controller on a real system introduces implementation complexity, especially due to many complex physical phenomena that are difficult or costly to model. Direct path planning involves designing a flight controller for a tethered aerial vehicle (rigid-wing aircraft or kites) to follow a predefined path in 3D space. Past works have covered waypoint-based guidance using L0- and L1-based control (Fernandes et al., 2022), defining the circular flight path as combinations of motion primitives (fundamental circles) (Vinha et al., 2025) and linking the target path's geometry to the steering control law (Fagiano et al., 2014; Dief et al., 2020; DeLosRíos-Navarrete et al., 2025). These algorithms show great promise, and some have been verified experimentally (Fagiano et al., 2014; Dief et al., 2020; DeLosRíos-Navarrete et al., 2025). However, they may require more effort to design and implement than classical controllers do. Waypoint- and geometry-based guidance also split the control task into discrete steps, thereby creating a discontinuous controller that can complicate classical analysis. Lastly, cascaded nonlinear dynamic inversion control can provide continuous guidance with good tracking performance (Rapp et al., 2019), although successful deployment relies on accurate system modelling.</p>
      <p id="d2e152">Accordingly, a reel-out flight control law resembling classical designs with continuous guidance provides a familiar working space for practitioners, which can be useful during the early simulator development phase, where the model may undergo multiple revisions and requires repeated retuning. This paper proposes a solution for rigid-wing AWES – those that resemble fixed-wing aircraft with conventional control surfaces. Circular reel out is achieved using an indirect path planning method, which ensures the flight path has the correct orientation and dimension but does not specify the exact path for the kite to follow. Instead, circular flight emerges naturally as an inherent property of the controller. The resulting control surface movements are periodic, which are required for tethered circular flight (Nguyen et al., 2026b). This indirect path-planning process contains elements resembling virtual holonomic constraints (VHC). First proposed by (Shiriaev et al., 2005), a VHC uses feedback to enforce an algebraic relation that confines the closed-loop motion to a manifold carrying a periodic orbit. The method has seen applications in mechanical systems and robotics (Freidovich et al., 2008; Rezapour et al., 2014). In relation to AWES reel out, the closest VHC work known to the authors addresses vertical-plane flight along smooth curves (Consolini et al., 2010) and stabilisation of a circular orbit with a desired speed profile (Mohammadi et al., 2018) – both based on the simplified vertical-takeoff-and-landing aircraft model by (Hauser et al., 1992). Our results show satisfactory closed-loop response on a six-degree-of-freedom system with nonlinear aerodynamics. Since the control law presented in this paper was derived mostly from intuition, readers may find the VHC framework useful for rigorous stability analysis in a future work. We also refer readers to our trim analysis in Nguyen et al. (2026b), which discusses the flight dynamics of tethered fixed-wing airframes and lays the foundation for the flight control law presented. In the latter parts of the paper, we propose two extensions that reduces angle-of-attack oscillations and enable multi-kite synchronisation – both of which address key challenges in AWES operations.</p>
      <p id="d2e156">Lastly, the feedback architecture follows a cascaded control structure intended for use during reel out only. Flight control in other phases is not considered in this work and will require entirely different control architectures (e.g. see the following references for launching (Fagiano et al., 2018; Vinha et al., 2024; Duda et al., 2025), reel in (Zgraggen et al., 2016; Berra and Fagiano, 2021), and recovery (Vinha et al., 2024; Duda et al., 2025)). Our control gains are tuned empirically but follow the timescale separation principle, i.e. the gains in the outer layers should be an order of magnitude smaller than the inner layer gains. Higher performance can be obtained by employing classical methods for rigorous tuning, although the present system with empirically derived gains can already achieve all control objectives. Since the control algorithm is flight-path agnostic, both circular and figure of eight trajectories are possible. Flight control with a fixed tether length is also possible, which enables deployment in ship-towing applications (Fritz, 2013).</p>
</sec>
<sec id="Ch1.S2">
  <label>2</label><title>Simulation environment</title>
      <p id="d2e167">This study uses a six-degree-of-freedom simulator of Kitemill's KM1 prototype – a 20 kW groundgen system driven by a fixed-wing autonomous aerial vehicle with mass 54 kg and wingspan 7.4 m (see Fig. 1). The aerial vehicle is referred to as a kite in this paper based on conventions adopted by the AWES community, which highlights the fact that the air vehicle extracts energy from the wind to remain airborne. Traditional trailing-edge control surfaces (aileron, elevator, and rudder) are used for flight control, in addition to flaps for increased lift during power production. The simulation was constructed in MATLAB &amp; Simulink and, more recently, extended into Julia. Past studies that used the Simulink version can be found in references (Mohammed et al., 2024b, a; Rapp et al., 2019). In this paper, results with constant wind were generated in MATLAB &amp; Simulink, while non-uniform wind analyses (Sect. 4.2) were conducted in Julia but plotted in MATLAB for style consistency. Aerodynamic data of the KM1 airframe were obtained from computational fluid dynamics and saved as nonlinear polynomials, which are provided in Sect. 1 of Mohammed (2024). For illustrative purposes, a few key static aerodynamic relationships are shown in Fig. 2 to indicate the nonlinear dependencies of the force and moment coefficients with respect to the angles of incidence and sideslip.</p>

      <fig id="F1"><label>Figure 1</label><caption><p id="d2e172">Aerial component of Kitemill's KM1 system.</p></caption>
        <graphic xlink:href="https://wes.copernicus.org/articles/11/2987/2026/wes-11-2987-2026-f01.jpg"/>

      </fig>

      <fig id="F2" specific-use="star"><label>Figure 2</label><caption><p id="d2e183">Static aerodynamic force <bold>(a)</bold> and moment <bold>(b)</bold> coefficients at full flaps and no control surface deflection.</p></caption>
        <graphic xlink:href="https://wes.copernicus.org/articles/11/2987/2026/wes-11-2987-2026-f02.png"/>

      </fig>

      <p id="d2e199">In its open loop configuration, the simulator has 108 states, comprising 12 states to describe the aircraft's motion in 3D space, 4 actuator states modelled as first-order lags with 50° s<sup>−1</sup> rate limit, 2 states to describe the ground winch, and 6<inline-formula><mml:math id="M2" display="inline"><mml:mi>N</mml:mi></mml:math></inline-formula> states to model the flexible tether, where <inline-formula><mml:math id="M3" display="inline"><mml:mi>N</mml:mi></mml:math></inline-formula> is the number of tether nodes between the winch and the kite. The <inline-formula><mml:math id="M4" display="inline"><mml:mi>N</mml:mi></mml:math></inline-formula> nodes discretised the tether into <inline-formula><mml:math id="M5" display="inline"><mml:mrow><mml:mi>N</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:math></inline-formula> segments, which are connected by second-order mass-spring–damper elements. If the tether's natural length is fixed, the winch states can be discarded, and the model reduces to 102 states. A detailed description of the equations of motion can be found in Rapp et al. (2019). Table 1 summarises the open-loop states, control surface inputs, and outputs.</p>

<table-wrap id="T1" specific-use="star"><label>Table 1</label><caption><p id="d2e250">Key elements of the open-loop model.</p></caption><oasis:table frame="topbot"><oasis:tgroup cols="2">
     <oasis:colspec colnum="1" colname="col1" align="justify" colwidth="4cm"/>
     <oasis:colspec colnum="2" colname="col2" align="justify" colwidth="8cm"/>
     <oasis:thead>
       <oasis:row rowsep="1">
         <oasis:entry colname="col1">Aircraft states</oasis:entry>
         <oasis:entry colname="col2">Body-axis velocities: <inline-formula><mml:math id="M6" display="inline"><mml:mi>u</mml:mi></mml:math></inline-formula>, <inline-formula><mml:math id="M7" display="inline"><mml:mi>v</mml:mi></mml:math></inline-formula>, <inline-formula><mml:math id="M8" display="inline"><mml:mi>w</mml:mi></mml:math></inline-formula> Body-axis angular rates: <inline-formula><mml:math id="M9" display="inline"><mml:mi>p</mml:mi></mml:math></inline-formula>, <inline-formula><mml:math id="M10" display="inline"><mml:mi>q</mml:mi></mml:math></inline-formula>, <inline-formula><mml:math id="M11" display="inline"><mml:mi>r</mml:mi></mml:math></inline-formula> Earth-axis Euler angles: <inline-formula><mml:math id="M12" display="inline"><mml:mi mathvariant="italic">ϕ</mml:mi></mml:math></inline-formula>, <inline-formula><mml:math id="M13" display="inline"><mml:mi mathvariant="italic">θ</mml:mi></mml:math></inline-formula>, <inline-formula><mml:math id="M14" display="inline"><mml:mi mathvariant="italic">ψ</mml:mi></mml:math></inline-formula> Earth-axis coordinates: <inline-formula><mml:math id="M15" display="inline"><mml:mi>X</mml:mi></mml:math></inline-formula>, <inline-formula><mml:math id="M16" display="inline"><mml:mi>Y</mml:mi></mml:math></inline-formula>, <inline-formula><mml:math id="M17" display="inline"><mml:mi>Z</mml:mi></mml:math></inline-formula></oasis:entry>
       </oasis:row>
     </oasis:thead>
     <oasis:tbody>
       <oasis:row rowsep="1">
         <oasis:entry colname="col1">Winch states</oasis:entry>
         <oasis:entry colname="col2">Tether natural length: <inline-formula><mml:math id="M18" display="inline"><mml:mi>L</mml:mi></mml:math></inline-formula> Winch linear speed: <inline-formula><mml:math id="M19" display="inline"><mml:mover accent="true"><mml:mi>L</mml:mi><mml:mo mathvariant="normal">˙</mml:mo></mml:mover></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row rowsep="1">
         <oasis:entry colname="col1">Tether states</oasis:entry>
         <oasis:entry colname="col2">Each node <inline-formula><mml:math id="M20" display="inline"><mml:mi>N</mml:mi></mml:math></inline-formula> has six states: its 3D Earth-axis coordinates and velocities. All results use <inline-formula><mml:math id="M21" display="inline"><mml:mrow><mml:mi>N</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">15</mml:mn></mml:mrow></mml:math></inline-formula> nodes.</oasis:entry>
       </oasis:row>
       <oasis:row rowsep="1">
         <oasis:entry colname="col1">Control surface actuator states</oasis:entry>
         <oasis:entry colname="col2">Ailerons: <inline-formula><mml:math id="M22" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">δ</mml:mi><mml:mi mathvariant="normal">a</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> Elevator: <inline-formula><mml:math id="M23" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">δ</mml:mi><mml:mi mathvariant="normal">e</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> Rudder: <inline-formula><mml:math id="M24" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">δ</mml:mi><mml:mi mathvariant="normal">r</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> Flaps: fixed at the full-down (13°) position during reel out All modelled as first-order lags with <inline-formula><mml:math id="M25" display="inline"><mml:mrow><mml:mn mathvariant="normal">1</mml:mn><mml:mo>/</mml:mo><mml:mn mathvariant="normal">50</mml:mn></mml:mrow></mml:math></inline-formula> s time constant and 50° s<sup>−1</sup> rate limit.</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">Outputs</oasis:entry>
         <oasis:entry colname="col2">Angle of attack: <inline-formula><mml:math id="M27" display="inline"><mml:mi mathvariant="italic">α</mml:mi></mml:math></inline-formula> Sideslip angle: <inline-formula><mml:math id="M28" display="inline"><mml:mi mathvariant="italic">β</mml:mi></mml:math></inline-formula> Airspeed at the kite: <inline-formula><mml:math id="M29" display="inline"><mml:mi>V</mml:mi></mml:math></inline-formula> Instantaneous mechanical power: <inline-formula><mml:math id="M30" display="inline"><mml:mi>P</mml:mi></mml:math></inline-formula> Energy generated: <inline-formula><mml:math id="M31" display="inline"><mml:mi>E</mml:mi></mml:math></inline-formula></oasis:entry>
       </oasis:row>
     </oasis:tbody>
   </oasis:tgroup></oasis:table></table-wrap>

      <p id="d2e550">The tether's natural length <inline-formula><mml:math id="M32" display="inline"><mml:mi>L</mml:mi></mml:math></inline-formula> (excluding elastic extension) is regulated by an ideal ground winch, which is modelled as a cylinder of mass <inline-formula><mml:math id="M33" display="inline"><mml:mrow><mml:msub><mml:mi>m</mml:mi><mml:mi mathvariant="normal">w</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> <inline-formula><mml:math id="M34" display="inline"><mml:mo>=</mml:mo></mml:math></inline-formula> 25 kg and has a constant radius of <inline-formula><mml:math id="M35" display="inline"><mml:mrow><mml:msub><mml:mi>R</mml:mi><mml:mi mathvariant="normal">w</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0.25</mml:mn></mml:mrow></mml:math></inline-formula> m. The winch control system applies a winch force <inline-formula><mml:math id="M36" display="inline"><mml:mrow><mml:msub><mml:mi>F</mml:mi><mml:mi mathvariant="normal">w</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> that opposes the tether tension <inline-formula><mml:math id="M37" display="inline"><mml:mi>T</mml:mi></mml:math></inline-formula> at the winch. This gives a winch linear acceleration of

          <disp-formula id="Ch1.E1" content-type="numbered"><label>1</label><mml:math id="M38" display="block"><mml:mrow><mml:mover accent="true"><mml:mi>L</mml:mi><mml:mo mathvariant="normal">¨</mml:mo></mml:mover><mml:mo>=</mml:mo><mml:mfenced close=")" open="("><mml:mrow><mml:mi>T</mml:mi><mml:mo>-</mml:mo><mml:msub><mml:mi>F</mml:mi><mml:mi mathvariant="normal">w</mml:mi></mml:msub></mml:mrow></mml:mfenced><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msubsup><mml:mi>R</mml:mi><mml:mi mathvariant="normal">w</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msubsup></mml:mrow><mml:mrow><mml:msub><mml:mi>I</mml:mi><mml:mi mathvariant="normal">w</mml:mi></mml:msub></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>

        where <inline-formula><mml:math id="M39" display="inline"><mml:mrow><mml:msub><mml:mi>I</mml:mi><mml:mi mathvariant="normal">w</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0.5</mml:mn><mml:msub><mml:mi>m</mml:mi><mml:mi mathvariant="normal">w</mml:mi></mml:msub><mml:msubsup><mml:mi>R</mml:mi><mml:mi mathvariant="normal">w</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msubsup></mml:mrow></mml:math></inline-formula> is the winch moment of inertia. The winch speed (reel-out speed) <inline-formula><mml:math id="M40" display="inline"><mml:mover accent="true"><mml:mi>L</mml:mi><mml:mo mathvariant="normal">˙</mml:mo></mml:mover></mml:math></inline-formula> and natural length <inline-formula><mml:math id="M41" display="inline"><mml:mi>L</mml:mi></mml:math></inline-formula> are found by integrating Eq. (1) once and twice, respectively. Feedback control of the winch is provided by the term <inline-formula><mml:math id="M42" display="inline"><mml:mrow><mml:msub><mml:mi>F</mml:mi><mml:mi mathvariant="normal">w</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, which is the output of a high-gain PID controller that tracks either a desired winch speed (keeping <inline-formula><mml:math id="M43" display="inline"><mml:mover accent="true"><mml:mi>L</mml:mi><mml:mo mathvariant="normal">˙</mml:mo></mml:mover></mml:math></inline-formula> close to constant) or a desired tether tension (keeping <inline-formula><mml:math id="M44" display="inline"><mml:mi>T</mml:mi></mml:math></inline-formula> close to constant). Apart from Fig. 30, all results in this paper with the winch active use the constant winch speed mode.</p>
      <p id="d2e727">Provided that the winch is reeling out with positive tether tension, the instantaneous mechanical power <inline-formula><mml:math id="M45" display="inline"><mml:mi>P</mml:mi></mml:math></inline-formula> is calculated as

          <disp-formula id="Ch1.E2" content-type="numbered"><label>2</label><mml:math id="M46" display="block"><mml:mrow><mml:mi>P</mml:mi><mml:mo>=</mml:mo><mml:mi>T</mml:mi><mml:mover accent="true"><mml:mi>L</mml:mi><mml:mo mathvariant="normal">˙</mml:mo></mml:mover><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>

        and assuming no losses in the winch, Eq. (2) can be integrated to give the total energy generated up to time <inline-formula><mml:math id="M47" display="inline"><mml:mi>t</mml:mi></mml:math></inline-formula>

          <disp-formula id="Ch1.E3" content-type="numbered"><label>3</label><mml:math id="M48" display="block"><mml:mrow><mml:mi>E</mml:mi><mml:mo>=</mml:mo><mml:msubsup><mml:mo>∫</mml:mo><mml:mrow><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:mi>L</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">350</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mi>t</mml:mi></mml:msubsup><mml:mi>P</mml:mi><mml:mspace linebreak="nobreak" width="0.125em"/><mml:mi mathvariant="normal">d</mml:mi><mml:mi>t</mml:mi><mml:mspace linebreak="nobreak" width="0.125em"/><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>

        where <inline-formula><mml:math id="M49" display="inline"><mml:mrow><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:mi>L</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">350</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> is the simulation time at the start of reel out, defined to be when the tether's natural length is 350 m. Reel out ends when <inline-formula><mml:math id="M50" display="inline"><mml:mi>L</mml:mi></mml:math></inline-formula> reaches 700 m.</p>

      <fig id="F3" specific-use="star"><label>Figure 3</label><caption><p id="d2e825">Experiment and simulated flight data (first presented in Nguyen et al., 2026a).</p></caption>
        <graphic xlink:href="https://wes.copernicus.org/articles/11/2987/2026/wes-11-2987-2026-f03.png"/>

      </fig>

      <p id="d2e835">To verify the simulator's accuracy, we replicated a test flight in 16 m s<sup>−1</sup> wind. This test used an early flight control law presented in Mohammed et al. (2024a), which has only one proportional feedback loop on the rudder to generate yaw-induced roll. Elevator and aileron were fixed at <inline-formula><mml:math id="M52" display="inline"><mml:mo>-</mml:mo></mml:math></inline-formula>4 and 0°, respectively. Figure 3 shows that there is strong agreement between the recorded and simulated responses, apart from an offset in airspeed <inline-formula><mml:math id="M53" display="inline"><mml:mi>V</mml:mi></mml:math></inline-formula> due to a known sensor calibration fault that also affected angle of attack measurements. However, the shapes of the simulated and recorded airspeed are comparable, and other parameters show strong correlations. These results suggests that the simulator possesses sufficient accuracy for control law developments.</p>
</sec>
<sec id="Ch1.S3">
  <label>3</label><title>Baseline controller design</title>
<sec id="Ch1.S3.SS1">
  <label>3.1</label><title>Key concept: tilting the reference plane</title>
      <p id="d2e879">To implement the control law, three coordinate systems are required: Earth, reference, and production. The first two are needed for the current section and are now described. The Earth plane is defined by the three axes <inline-formula><mml:math id="M54" display="inline"><mml:mi>X</mml:mi></mml:math></inline-formula>, <inline-formula><mml:math id="M55" display="inline"><mml:mi>Y</mml:mi></mml:math></inline-formula>, and <inline-formula><mml:math id="M56" display="inline"><mml:mi>Z</mml:mi></mml:math></inline-formula> originating from the winch and pointing in the north, east, and down directions, respectively (see Fig. 4a). Three Euler angles describe the kite's body-axis orientation with respect to the Earth plane: <inline-formula><mml:math id="M57" display="inline"><mml:mi mathvariant="italic">ϕ</mml:mi></mml:math></inline-formula> (roll), <inline-formula><mml:math id="M58" display="inline"><mml:mi mathvariant="italic">θ</mml:mi></mml:math></inline-formula> (pitch), and <inline-formula><mml:math id="M59" display="inline"><mml:mi mathvariant="italic">ψ</mml:mi></mml:math></inline-formula> (yaw). Unless otherwise noted, the wind is assumed to be uniform and travels from south to north at a speed of 14 m s<sup>−1</sup>.</p>
      <p id="d2e937">The reference plane is a “guidance plane” that provides a second set of Euler angles for the roll controller. Three axes <inline-formula><mml:math id="M61" display="inline"><mml:mrow><mml:msub><mml:mi>X</mml:mi><mml:mi mathvariant="normal">R</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M62" display="inline"><mml:mrow><mml:msub><mml:mi>Y</mml:mi><mml:mi mathvariant="normal">R</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, and <inline-formula><mml:math id="M63" display="inline"><mml:mrow><mml:msub><mml:mi>Z</mml:mi><mml:mi mathvariant="normal">R</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> define the reference plane. They also originate from the winch but have different orientations with respect to the Earth's axes. To construct the reference plane, start with its axes <inline-formula><mml:math id="M64" display="inline"><mml:mrow><mml:msub><mml:mi>X</mml:mi><mml:mi mathvariant="normal">R</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M65" display="inline"><mml:mrow><mml:msub><mml:mi>Y</mml:mi><mml:mi mathvariant="normal">R</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, and <inline-formula><mml:math id="M66" display="inline"><mml:mrow><mml:msub><mml:mi>Z</mml:mi><mml:mi mathvariant="normal">R</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> aligned with the Earth's axes <inline-formula><mml:math id="M67" display="inline"><mml:mi>X</mml:mi></mml:math></inline-formula>, <inline-formula><mml:math id="M68" display="inline"><mml:mi>Y</mml:mi></mml:math></inline-formula>, and <inline-formula><mml:math id="M69" display="inline"><mml:mi>Z</mml:mi></mml:math></inline-formula>, then apply the following right-hand rotations. <list list-type="bullet"><list-item>
      <p id="d2e1030">Rotate <inline-formula><mml:math id="M70" display="inline"><mml:mrow><mml:msub><mml:mi>Z</mml:mi><mml:mi mathvariant="normal">R</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> by an angle <inline-formula><mml:math id="M71" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ζ</mml:mi><mml:mi mathvariant="normal">R</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> (zeta for aZimuth).</p></list-item><list-item>
      <p id="d2e1056">Rotate <inline-formula><mml:math id="M72" display="inline"><mml:mrow><mml:msub><mml:mi>Y</mml:mi><mml:mi mathvariant="normal">R</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> axis by an angle <inline-formula><mml:math id="M73" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">λ</mml:mi><mml:mi mathvariant="normal">R</mml:mi></mml:msub><mml:mo>+</mml:mo></mml:mrow></mml:math></inline-formula> 90° (lambda for eLevation).</p></list-item><list-item>
      <p id="d2e1084">Rotate <inline-formula><mml:math id="M74" display="inline"><mml:mrow><mml:msub><mml:mi>X</mml:mi><mml:mi mathvariant="normal">R</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> by 180°.</p></list-item></list> These three rotations result in the reference plane having an orientation as shown in Fig. 4b – depicting <inline-formula><mml:math id="M75" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">λ</mml:mi><mml:mi mathvariant="normal">R</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M76" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ζ</mml:mi><mml:mi mathvariant="normal">R</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> having small positive values. Note that when <inline-formula><mml:math id="M77" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">λ</mml:mi><mml:mi mathvariant="normal">R</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mi mathvariant="italic">ζ</mml:mi><mml:mi mathvariant="normal">R</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:math></inline-formula>°, <inline-formula><mml:math id="M78" display="inline"><mml:mrow><mml:msub><mml:mi>Z</mml:mi><mml:mi mathvariant="normal">R</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> points in the negative <inline-formula><mml:math id="M79" display="inline"><mml:mi>X</mml:mi></mml:math></inline-formula> direction, and <inline-formula><mml:math id="M80" display="inline"><mml:mrow><mml:msub><mml:mi>X</mml:mi><mml:mi mathvariant="normal">R</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> points in the negative <inline-formula><mml:math id="M81" display="inline"><mml:mi>Z</mml:mi></mml:math></inline-formula> direction. From here, we obtain another set of Euler angles [<inline-formula><mml:math id="M82" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ϕ</mml:mi><mml:mi mathvariant="normal">R</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M83" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">θ</mml:mi><mml:mi mathvariant="normal">R</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M84" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ψ</mml:mi><mml:mi mathvariant="normal">R</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>] that depicts the kite's roll, pitch, and yaw angles with respect to the reference plane. To aid understanding, Fig. 5 depicts a special case of <inline-formula><mml:math id="M85" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">λ</mml:mi><mml:mi mathvariant="normal">R</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mi mathvariant="italic">ζ</mml:mi><mml:mi mathvariant="normal">R</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:math></inline-formula>° with the kite in a south-bound, wing-level, climbing attitude. The corresponding Euler angles on the Earth and reference planes are shown. Subsequent analysis does not require the use of the kite's reference plane yaw angle <inline-formula><mml:math id="M86" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ψ</mml:mi><mml:mi mathvariant="normal">R</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>. To simplify illustrations, the reference plane will be depicted by a single dashed line originating from the winch and pointing in negative <inline-formula><mml:math id="M87" display="inline"><mml:mrow><mml:msub><mml:mi>Z</mml:mi><mml:mi mathvariant="normal">R</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> direction, as shown in Figs. 4b and 5b. Appendix A provides the mathematical operations for converting Euler angles from Earth to reference plane.</p>

      <fig id="F4" specific-use="star"><label>Figure 4</label><caption><p id="d2e1260">Two coordinate systems: Earth <bold>(a)</bold> and reference plane <bold>(b)</bold>.</p></caption>
          <graphic xlink:href="https://wes.copernicus.org/articles/11/2987/2026/wes-11-2987-2026-f04.png"/>

        </fig>

      <fig id="F5"><label>Figure 5</label><caption><p id="d2e1278">Illustrations of Euler angles on the Earth plane <bold>(a)</bold> and reference plane with <inline-formula><mml:math id="M88" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">λ</mml:mi><mml:mi mathvariant="normal">R</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mi mathvariant="italic">ζ</mml:mi><mml:mi mathvariant="normal">R</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:math></inline-formula>° <bold>(b)</bold>.</p></caption>
          <graphic xlink:href="https://wes.copernicus.org/articles/11/2987/2026/wes-11-2987-2026-f05.png"/>

        </fig>

      <p id="d2e1315">We now discuss the flight controller. The principal idea is to use ailerons to track the roll angle <inline-formula><mml:math id="M89" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ϕ</mml:mi><mml:mi mathvariant="normal">R</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> on the reference plane, not <inline-formula><mml:math id="M90" display="inline"><mml:mi mathvariant="italic">ϕ</mml:mi></mml:math></inline-formula> on the Earth plane. Assuming that gravity and wind are not present, the kite has its own propulsion, and the tether length is fixed, then the trajectory will converge to a circular orbit on a plane parallel to the reference plane as shown in Fig. 6. This convergence is facilitated by two elements: the fixed-length tether preventing the kite from “climbing” away from the reference plane and converging to a helical trajectory and the roll controller keeping <inline-formula><mml:math id="M91" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ϕ</mml:mi><mml:mi mathvariant="normal">R</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> and hence radius constant. From this arrangement, we can shift the centre of the circle to a desired location by adjusting the reference plane orientation via <inline-formula><mml:math id="M92" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">λ</mml:mi><mml:mi mathvariant="normal">R</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M93" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ζ</mml:mi><mml:mi mathvariant="normal">R</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>. Equilibrium trim exists in this hypothetical scenario. However, AWES derive their propulsive force from the wind and operate in the presence of gravity, both of which act as external periodic disturbances that require a cyclic control input to compensate (Nguyen et al., 2026b). This cyclic input can be obtained by configuring the controller to track a fixed roll angle set point <inline-formula><mml:math id="M94" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ϕ</mml:mi><mml:mrow><mml:msub><mml:mi mathvariant="normal">R</mml:mi><mml:mi mathvariant="normal">SP</mml:mi></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> and accepting the subsequent oscillations caused by gravity and the wind.</p>

      <fig id="F6"><label>Figure 6</label><caption><p id="d2e1387">Example left-roll circular orbit as defined by the reference plane.</p></caption>
          <graphic xlink:href="https://wes.copernicus.org/articles/11/2987/2026/wes-11-2987-2026-f06.png"/>

        </fig>

      <fig id="F7" specific-use="star"><label>Figure 7</label><caption><p id="d2e1398">Basic flight control system (subsequently referred to as the inner loop). The Earth-to-reference-plane coordinate transformation is presented in Appendix A.</p></caption>
          <graphic xlink:href="https://wes.copernicus.org/articles/11/2987/2026/wes-11-2987-2026-f07.png"/>

        </fig>

      <p id="d2e1407">Figure 7 presents the proposed flight control system. For convenience, the following shorthand notation for proportional-integral control is used throughout the paper.

            <disp-formula id="Ch1.E4" content-type="numbered"><label>4</label><mml:math id="M95" display="block"><mml:mrow><mml:mi mathvariant="normal">PI</mml:mi><mml:mfenced open="(" close=")"><mml:mrow><mml:msub><mml:mi>x</mml:mi><mml:mi mathvariant="normal">SP</mml:mi></mml:msub><mml:mo>,</mml:mo><mml:mi>x</mml:mi></mml:mrow></mml:mfenced><mml:mo>=</mml:mo><mml:msub><mml:mi>K</mml:mi><mml:mi mathvariant="normal">P</mml:mi></mml:msub><mml:mfenced open="(" close=")"><mml:mrow><mml:msub><mml:mi>x</mml:mi><mml:mi mathvariant="normal">SP</mml:mi></mml:msub><mml:mo>-</mml:mo><mml:mi>x</mml:mi></mml:mrow></mml:mfenced><mml:mo>+</mml:mo><mml:msub><mml:mi>K</mml:mi><mml:mi mathvariant="normal">I</mml:mi></mml:msub><mml:mo movablelimits="false">∫</mml:mo><mml:mfenced open="(" close=")"><mml:mrow><mml:msub><mml:mi>x</mml:mi><mml:mi mathvariant="normal">SP</mml:mi></mml:msub><mml:mo>-</mml:mo><mml:mi>x</mml:mi></mml:mrow></mml:mfenced><mml:mi mathvariant="normal">d</mml:mi><mml:mi>t</mml:mi><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>

          where <inline-formula><mml:math id="M96" display="inline"><mml:mrow><mml:msub><mml:mi>x</mml:mi><mml:mi mathvariant="normal">SP</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M97" display="inline"><mml:mi>x</mml:mi></mml:math></inline-formula> are the set point (SP) and feedback signal, and <inline-formula><mml:math id="M98" display="inline"><mml:mrow><mml:msub><mml:mi>K</mml:mi><mml:mi mathvariant="normal">P</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M99" display="inline"><mml:mrow><mml:msub><mml:mi>K</mml:mi><mml:mi mathvariant="normal">I</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> are the proportional and integral gains. Three proportional-integral (PI) loops are used. The pitch and yaw channels channel adjust the elevator and rudder to track the desired angle of attack and sideslip set points. For the ailerons, their role is to track a demanded roll angle <inline-formula><mml:math id="M100" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ϕ</mml:mi><mml:mrow><mml:msub><mml:mi mathvariant="normal">R</mml:mi><mml:mi mathvariant="normal">SP</mml:mi></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> on the reference plane. This roll control method requires knowledge of the reference plane's orientation <inline-formula><mml:math id="M101" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">λ</mml:mi><mml:mi mathvariant="normal">R</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M102" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ζ</mml:mi><mml:mi mathvariant="normal">R</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>. In this section, we treat these two angles as user inputs, and Sect. 3.2 will explain how <inline-formula><mml:math id="M103" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">λ</mml:mi><mml:mi mathvariant="normal">R</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M104" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ζ</mml:mi><mml:mi mathvariant="normal">R</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> can be controlled automatically by the outer loop. Accordingly, the demanded control surface deflections are governed by the following feedback law.

                <disp-formula specific-use="gather" content-type="numbered"><mml:math id="M105" display="block"><mml:mtable displaystyle="true"><mml:mlabeledtr id="Ch1.E5"><mml:mtd><mml:mtext>5</mml:mtext></mml:mtd><mml:mtd><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:msub><mml:mi mathvariant="italic">δ</mml:mi><mml:mrow><mml:msub><mml:mi mathvariant="normal">e</mml:mi><mml:mi mathvariant="normal">SP</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mi mathvariant="normal">PI</mml:mi><mml:mo>(</mml:mo><mml:msub><mml:mi mathvariant="italic">α</mml:mi><mml:mi mathvariant="normal">SP</mml:mi></mml:msub><mml:mo>,</mml:mo><mml:mi mathvariant="italic">α</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:mtd></mml:mlabeledtr><mml:mlabeledtr id="Ch1.E6"><mml:mtd><mml:mtext>6</mml:mtext></mml:mtd><mml:mtd><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:msub><mml:mi mathvariant="italic">δ</mml:mi><mml:mrow><mml:msub><mml:mi mathvariant="normal">r</mml:mi><mml:mi mathvariant="normal">SP</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mi mathvariant="normal">PI</mml:mi><mml:mo>(</mml:mo><mml:msub><mml:mi mathvariant="italic">β</mml:mi><mml:mi mathvariant="normal">SP</mml:mi></mml:msub><mml:mo>,</mml:mo><mml:mi mathvariant="italic">β</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:mtd></mml:mlabeledtr><mml:mlabeledtr id="Ch1.E7"><mml:mtd><mml:mtext>7</mml:mtext></mml:mtd><mml:mtd><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:msub><mml:mi mathvariant="italic">δ</mml:mi><mml:mrow><mml:msub><mml:mi mathvariant="normal">a</mml:mi><mml:mi mathvariant="normal">SP</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mi mathvariant="normal">PI</mml:mi><mml:mfenced open="(" close=")"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ϕ</mml:mi><mml:mrow><mml:msub><mml:mi mathvariant="normal">R</mml:mi><mml:mi mathvariant="normal">SP</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi mathvariant="italic">ϕ</mml:mi><mml:mi mathvariant="normal">R</mml:mi></mml:msub></mml:mrow></mml:mfenced><mml:mo>+</mml:mo><mml:msub><mml:mi>K</mml:mi><mml:mi mathvariant="normal">r</mml:mi></mml:msub><mml:msub><mml:mi mathvariant="italic">θ</mml:mi><mml:mi mathvariant="normal">R</mml:mi></mml:msub></mml:mrow></mml:mtd></mml:mlabeledtr></mml:mtable></mml:math></disp-formula></p>
      <p id="d2e1696">The second term in Eq. (7) multiplies the reference-plane pitch angle by a proportional gain <inline-formula><mml:math id="M106" display="inline"><mml:mrow><mml:msub><mml:mi>K</mml:mi><mml:mi mathvariant="normal">r</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>. This pitch-roll cross-feeding signal counteracts the roll instability encountered in large-radius tethered circular flight, which was first reported in one of our earlier studies (see the discussion surrounding Eq. 1 in Nguyen et al., 2026a). The sign of <inline-formula><mml:math id="M107" display="inline"><mml:mrow><mml:msub><mml:mi>K</mml:mi><mml:mi mathvariant="normal">r</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> reflects flight direction. For trajectories where the circle's centre is on the port (left) wing's side, <inline-formula><mml:math id="M108" display="inline"><mml:mrow><mml:msub><mml:mi>K</mml:mi><mml:mi mathvariant="normal">r</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> should be negative. By conventional flight control standards, the PI-only feedback scheme in Fig. 7 can be stable but may not provide adequate handling qualities – mainly due to the clear separation between fast and slow dynamics in the pitch and yaw responses. Higher performance is usually achieved by adding an inner stability augmentation loop that feeds back both fast (body-axis angular rates) and slow (body-axis angles) variables. Those performance-enhancement elements are deliberately left out in this work to demonstrate the robustness of our flight control scheme, which can handle sub-optimal handling qualities caused by rudimentary inner-loop designs.</p>
      <p id="d2e1732">We now examine a closed-loop response with the tether length fixed (i.e. <inline-formula><mml:math id="M109" display="inline"><mml:mrow><mml:mover accent="true"><mml:mi>L</mml:mi><mml:mo mathvariant="normal">˙</mml:mo></mml:mover><mml:mo>=</mml:mo><mml:mover accent="true"><mml:mi>L</mml:mi><mml:mo mathvariant="normal">¨</mml:mo></mml:mover><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:math></inline-formula>) at 350 m – a typical length at the start of reel out for the KM1 AWES. The reference plane orientation is [<inline-formula><mml:math id="M110" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">λ</mml:mi><mml:mi mathvariant="normal">R</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M111" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ζ</mml:mi><mml:mi mathvariant="normal">R</mml:mi></mml:msub><mml:mo>]</mml:mo><mml:mo>=</mml:mo><mml:mo>[</mml:mo><mml:mn mathvariant="normal">0</mml:mn><mml:mi mathvariant="italic">°</mml:mi><mml:mo>,</mml:mo><mml:mn mathvariant="normal">0</mml:mn><mml:mi mathvariant="italic">°</mml:mi><mml:mo>]</mml:mo></mml:mrow></mml:math></inline-formula>, and a representative combination of set points <inline-formula><mml:math id="M112" display="inline"><mml:mrow><mml:mo>[</mml:mo><mml:msub><mml:mi mathvariant="italic">α</mml:mi><mml:mi mathvariant="normal">SP</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M113" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">β</mml:mi><mml:mi mathvariant="normal">SP</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M114" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ϕ</mml:mi><mml:mrow><mml:msub><mml:mi mathvariant="normal">R</mml:mi><mml:mi mathvariant="normal">SP</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo>]</mml:mo><mml:mo>=</mml:mo><mml:mo>[</mml:mo><mml:mn mathvariant="normal">6</mml:mn><mml:mi mathvariant="italic">°</mml:mi><mml:mo>,</mml:mo><mml:mn mathvariant="normal">0</mml:mn><mml:mi mathvariant="italic">°</mml:mi><mml:mo>,</mml:mo><mml:mo>-</mml:mo><mml:mn mathvariant="normal">15</mml:mn><mml:mi mathvariant="italic">°</mml:mi><mml:mo>]</mml:mo></mml:mrow></mml:math></inline-formula> is chosen. Negative <inline-formula><mml:math id="M115" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ϕ</mml:mi><mml:mrow><mml:msub><mml:mi mathvariant="normal">R</mml:mi><mml:mi mathvariant="normal">SP</mml:mi></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> indicates the circle centre is on the port side of the wing, which is assumed throughout this paper without loss of generality. In this arrangement, the kite follows a circular orbit as shown in Fig. 8a. Inspecting the time history of this trajectory (Fig. 8b) reveals that the controller has entered a small limit cycle with periodic forcing inputs. This behaviour is expected, as our previous work in Nguyen et al. (2026b) has shown that tracking a set of specified <inline-formula><mml:math id="M116" display="inline"><mml:mi mathvariant="italic">α</mml:mi></mml:math></inline-formula>, <inline-formula><mml:math id="M117" display="inline"><mml:mi mathvariant="italic">β</mml:mi></mml:math></inline-formula>, and <inline-formula><mml:math id="M118" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ϕ</mml:mi><mml:mi mathvariant="normal">R</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> using fixed control surfaces (i.e. an equilibrium response) is only possible when gravity is ignored. The resulting gravity-free orbit is normal to the wind and has its circle centre on the ground, which overlaps the winch when viewed from the wind-facing direction. When gravity is included as shown in Fig. 8a, we see the circle centre shifting downward due to weight and slightly sideways due to lift asymmetry (from the wind-facing view: the kite climbs at the 3 o'clock position and descends at the 9 o'clock point, so the latter generates more lift, pushing the orbit centre to the side). Gravity also changes direction periodically with respect to the kite's body axis throughout the cycle. All of the above factors mean that the desired closed-loop trajectory is a limit cycle, so control surface movements should be cyclic to counteract the external periodic disturbance. Nevertheless, all three controlled variables <inline-formula><mml:math id="M119" display="inline"><mml:mi mathvariant="italic">α</mml:mi></mml:math></inline-formula>, <inline-formula><mml:math id="M120" display="inline"><mml:mi mathvariant="italic">β</mml:mi></mml:math></inline-formula>, and <inline-formula><mml:math id="M121" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ϕ</mml:mi><mml:mi mathvariant="normal">R</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> oscillate with small amplitudes around the desired values, and the cyclic control surface movements are also small.</p>

      <fig id="F8"><label>Figure 8</label><caption><p id="d2e1932">Closed-loop trajectories <bold>(a)</bold> and time histories (<bold>b</bold> and <bold>c</bold>) with two different reference plane orientations. The time histories of [<inline-formula><mml:math id="M122" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">λ</mml:mi><mml:mi mathvariant="normal">R</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M123" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ζ</mml:mi><mml:mi mathvariant="normal">R</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>] <inline-formula><mml:math id="M124" display="inline"><mml:mo>=</mml:mo></mml:math></inline-formula> <inline-formula><mml:math id="M125" display="inline"><mml:mo>[</mml:mo></mml:math></inline-formula>0°, 0°] and [<inline-formula><mml:math id="M126" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">λ</mml:mi><mml:mi mathvariant="normal">R</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M127" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ζ</mml:mi><mml:mi mathvariant="normal">R</mml:mi></mml:msub><mml:mo>]</mml:mo><mml:mo>=</mml:mo><mml:mo>[</mml:mo><mml:mn mathvariant="normal">30</mml:mn><mml:mi mathvariant="italic">°</mml:mi><mml:mo>,</mml:mo><mml:mn mathvariant="normal">20</mml:mn><mml:mi mathvariant="italic">°</mml:mi><mml:mo>]</mml:mo></mml:mrow></mml:math></inline-formula> are shown in <bold>(b)</bold> and <bold>(c)</bold>, respectively.</p></caption>
          <graphic xlink:href="https://wes.copernicus.org/articles/11/2987/2026/wes-11-2987-2026-f08.png"/>

        </fig>

      <p id="d2e2033">The reference plane orientation is now changed to non-trivial values of [<inline-formula><mml:math id="M128" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">λ</mml:mi><mml:mi mathvariant="normal">R</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M129" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ζ</mml:mi><mml:mi mathvariant="normal">R</mml:mi></mml:msub><mml:mo>]</mml:mo><mml:mo>=</mml:mo><mml:mo>[</mml:mo><mml:mn mathvariant="normal">30</mml:mn><mml:mi mathvariant="italic">°</mml:mi><mml:mo>,</mml:mo><mml:mn mathvariant="normal">20</mml:mn><mml:mi mathvariant="italic">°</mml:mi><mml:mo>]</mml:mo></mml:mrow></mml:math></inline-formula>. Figure 8a shows the resulting closed-loop response. The kite still follows a circular path, which is now at a slight angle to the wind due to the new reference plane's orientation. Larger magnitudes in <inline-formula><mml:math id="M130" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">λ</mml:mi><mml:mi mathvariant="normal">R</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M131" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ζ</mml:mi><mml:mi mathvariant="normal">R</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> result in more longitudinal and lateral shifting, which become less effective as the circular orbit moves further away from its ideal location of being normal to the wind (achieved only when gravity is ignored and [<inline-formula><mml:math id="M132" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">λ</mml:mi><mml:mi mathvariant="normal">R</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M133" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ζ</mml:mi><mml:mi mathvariant="normal">R</mml:mi></mml:msub><mml:mo>]</mml:mo><mml:mo>=</mml:mo><mml:mo>[</mml:mo><mml:mn mathvariant="normal">0</mml:mn><mml:mi mathvariant="italic">°</mml:mi><mml:mo>,</mml:mo><mml:mn mathvariant="normal">0</mml:mn><mml:mi mathvariant="italic">°</mml:mi><mml:mo>]</mml:mo></mml:mrow></mml:math></inline-formula>). A consequence of shifting further away from the ideal location is higher limit cycle amplitudes, as seen in Fig. 8c vs Fig. 8b. This behaviour is congruent with our previous observations, which noted that circular flight further away from the ideal location requires larger cyclic control inputs (Nguyen et al., 2026b). Nevertheless, as long as there is enough control power and sufficient wind to prevent airspeed from dropping to the stall point, the current flight control scheme will keep the kite in a stable circular orbit.</p>
      <p id="d2e2139">Results in Fig. 8 suggests that the orbit centre can be dynamically shifted by adjusting the reference plane's orientation. To demonstrate this point, Fig. 9 shows the kite's response to two simultaneous ramp inputs in <inline-formula><mml:math id="M134" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">λ</mml:mi><mml:mi mathvariant="normal">R</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M135" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ζ</mml:mi><mml:mi mathvariant="normal">R</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>. Both ramps last 15 s, starting from [<inline-formula><mml:math id="M136" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">λ</mml:mi><mml:mi mathvariant="normal">R</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M137" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ζ</mml:mi><mml:mi mathvariant="normal">R</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>] <inline-formula><mml:math id="M138" display="inline"><mml:mo>=</mml:mo></mml:math></inline-formula> <inline-formula><mml:math id="M139" display="inline"><mml:mo>[</mml:mo></mml:math></inline-formula>0°, 0°] and ending at [<inline-formula><mml:math id="M140" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">λ</mml:mi><mml:mi mathvariant="normal">R</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M141" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ζ</mml:mi><mml:mi mathvariant="normal">R</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>] <inline-formula><mml:math id="M142" display="inline"><mml:mo>=</mml:mo></mml:math></inline-formula> <inline-formula><mml:math id="M143" display="inline"><mml:mrow><mml:mo>[</mml:mo><mml:mn mathvariant="normal">3</mml:mn></mml:mrow></mml:math></inline-formula>0°, 20°]. The resulting trajectory shows that the kite achieves a gradual transition between the two conditions while maintaining circular flight throughout the manoeuvre. This method of transitioning between different operating points is more desirable than taking a straight-line path to the destination, which risks running out of airspeed mid-flight due to the lack of a dedicated propulsion unit. The fact that the kite maintains circular flight by itself also simplifies control design significantly, as there is no need to design the exact path in 3D space for the kite to follow. In other words, the path-planning problem is reduced to adjusting two variables <inline-formula><mml:math id="M144" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">λ</mml:mi><mml:mi mathvariant="normal">R</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M145" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ζ</mml:mi><mml:mi mathvariant="normal">R</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> by the right rate and magnitude.</p>

      <fig id="F9"><label>Figure 9</label><caption><p id="d2e2266">Response to simultaneous ramp inputs in <inline-formula><mml:math id="M146" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">λ</mml:mi><mml:mi mathvariant="normal">R</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M147" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ζ</mml:mi><mml:mi mathvariant="normal">R</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>.</p></caption>
          <graphic xlink:href="https://wes.copernicus.org/articles/11/2987/2026/wes-11-2987-2026-f09.png"/>

        </fig>

      <p id="d2e2297">Lastly, to adjust the circle radius, one simply needs to change the set point for the reference plane roll angle <inline-formula><mml:math id="M148" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ϕ</mml:mi><mml:mrow><mml:msub><mml:mi>R</mml:mi><mml:mi mathvariant="normal">SP</mml:mi></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>. Our previous work has shown that leaning more into the turn reduces the radius, while leaning out widens the orbit (Nguyen et al., 2026b). In this example of a left-turning trajectory, increasing the radius requires a more positive <inline-formula><mml:math id="M149" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ϕ</mml:mi><mml:mi mathvariant="normal">R</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>. Figure 10 shows two circular trajectories corresponding to <inline-formula><mml:math id="M150" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ϕ</mml:mi><mml:mrow><mml:msub><mml:mi>R</mml:mi><mml:mi mathvariant="normal">SP</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mo>-</mml:mo><mml:mn mathvariant="normal">15</mml:mn></mml:mrow></mml:math></inline-formula> and 0°. It can be seen that the 0° case achieves a larger radius as intended.</p>
      <p id="d2e2347">This section has shown that by using the ailerons to track a fixed roll angle on a user-defined reference plane, the kite can keep itself in circular orbit without requiring complex path planning. Tilting the reference plane (i.e. adjusting <inline-formula><mml:math id="M151" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">λ</mml:mi><mml:mi mathvariant="normal">R</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M152" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ζ</mml:mi><mml:mi mathvariant="normal">R</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>) provides a means to shift the circular orbit to a desired location. Additionally, the radius can be widened or tightened by changing the set point for the reference plane roll angle. These ideas provide the foundation for a circular reel-out controller, which is described in the following section.</p>

      <fig id="F10"><label>Figure 10</label><caption><p id="d2e2374">Closed-loop trajectories <bold>(a)</bold> and time histories <bold>(b)</bold> with different <inline-formula><mml:math id="M153" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ϕ</mml:mi><mml:mrow><mml:msub><mml:mi mathvariant="normal">R</mml:mi><mml:mi mathvariant="normal">SP</mml:mi></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>. The kite is drawn true to scale at 0.5 s intervals.</p></caption>
          <graphic xlink:href="https://wes.copernicus.org/articles/11/2987/2026/wes-11-2987-2026-f10.png"/>

        </fig>

</sec>
<sec id="Ch1.S3.SS2">
  <label>3.2</label><title>Outer loop: tracking a target cylinder</title>
      <p id="d2e2412">During circular reel out, the kite flies in a helical trajectory resembling a spring that “wraps” around an imaginary cylinder, shown in light blue in Fig. 11. The cylinder can be defined by a third coordinate system called the production plane. Its orientation with respect to the Earth's plane is defined by three axes <inline-formula><mml:math id="M154" display="inline"><mml:mrow><mml:msub><mml:mi>X</mml:mi><mml:mi mathvariant="normal">P</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M155" display="inline"><mml:mrow><mml:msub><mml:mi>Y</mml:mi><mml:mi mathvariant="normal">P</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, and <inline-formula><mml:math id="M156" display="inline"><mml:mrow><mml:msub><mml:mi>Z</mml:mi><mml:mi mathvariant="normal">P</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, along with two angles <inline-formula><mml:math id="M157" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">λ</mml:mi><mml:mi mathvariant="normal">P</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M158" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ζ</mml:mi><mml:mi mathvariant="normal">P</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> – constructed in a similar manner to <inline-formula><mml:math id="M159" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">λ</mml:mi><mml:mi mathvariant="normal">R</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M160" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ζ</mml:mi><mml:mi mathvariant="normal">R</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> in the reference plane. However, unlike the reference plane, the production plane does not have to originate from the winch. The user can specify the location of the production plane's origin, which is shown as point <inline-formula><mml:math id="M161" display="inline"><mml:mi>P</mml:mi></mml:math></inline-formula> in the top plot of Fig. 11. The Earth-axis coordinate of point <inline-formula><mml:math id="M162" display="inline"><mml:mi>P</mml:mi></mml:math></inline-formula> is referred to as <inline-formula><mml:math id="M163" display="inline"><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mi>X</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M164" display="inline"><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mi>Y</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, and <inline-formula><mml:math id="M165" display="inline"><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mi>Z</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>. From here, the target cylinder is defined to have a circular base on the <inline-formula><mml:math id="M166" display="inline"><mml:mrow><mml:msub><mml:mi>X</mml:mi><mml:mi mathvariant="normal">P</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>-<inline-formula><mml:math id="M167" display="inline"><mml:mrow><mml:msub><mml:mi>Y</mml:mi><mml:mi mathvariant="normal">P</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> plane, centred around point <inline-formula><mml:math id="M168" display="inline"><mml:mi>P</mml:mi></mml:math></inline-formula> with radius <inline-formula><mml:math id="M169" display="inline"><mml:mrow><mml:msub><mml:mi>R</mml:mi><mml:mi mathvariant="normal">SP</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, and extends in the negative <inline-formula><mml:math id="M170" display="inline"><mml:mrow><mml:msub><mml:mi>Z</mml:mi><mml:mi mathvariant="normal">P</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> direction. For convenience, we refer to the kite's location on the production plane as <inline-formula><mml:math id="M171" display="inline"><mml:mrow><mml:msub><mml:mi>X</mml:mi><mml:mi mathvariant="normal">P</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M172" display="inline"><mml:mrow><mml:msub><mml:mi>Y</mml:mi><mml:mi mathvariant="normal">P</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, and <inline-formula><mml:math id="M173" display="inline"><mml:mrow><mml:msub><mml:mi>Z</mml:mi><mml:mi mathvariant="normal">P</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>. For instance, Fig. 11 depicts the production plane originating from point <inline-formula><mml:math id="M174" display="inline"><mml:mi>P</mml:mi></mml:math></inline-formula> with Earth-axis coordinates [<inline-formula><mml:math id="M175" display="inline"><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mi>X</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M176" display="inline"><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mi>Y</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M177" display="inline"><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mi>Z</mml:mi></mml:msub><mml:mo>]</mml:mo><mml:mo>=</mml:mo><mml:mo>[</mml:mo><mml:mn mathvariant="normal">200</mml:mn><mml:mo>,</mml:mo><mml:mn mathvariant="normal">0</mml:mn><mml:mo>,</mml:mo><mml:mo>-</mml:mo><mml:mn mathvariant="normal">150</mml:mn><mml:mo>]</mml:mo></mml:mrow></mml:math></inline-formula> m. If the kite is also located at point <inline-formula><mml:math id="M178" display="inline"><mml:mi>P</mml:mi></mml:math></inline-formula>, then the kite's location is [<inline-formula><mml:math id="M179" display="inline"><mml:mi>X</mml:mi></mml:math></inline-formula>, <inline-formula><mml:math id="M180" display="inline"><mml:mi>Y</mml:mi></mml:math></inline-formula>, <inline-formula><mml:math id="M181" display="inline"><mml:mi>Z</mml:mi></mml:math></inline-formula>] <inline-formula><mml:math id="M182" display="inline"><mml:mo>=</mml:mo></mml:math></inline-formula> [200, 0, <inline-formula><mml:math id="M183" display="inline"><mml:mo>-</mml:mo></mml:math></inline-formula>150] m using Earth-axis coordinates, and [<inline-formula><mml:math id="M184" display="inline"><mml:mrow><mml:msub><mml:mi>X</mml:mi><mml:mi mathvariant="normal">P</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M185" display="inline"><mml:mrow><mml:msub><mml:mi>Y</mml:mi><mml:mi mathvariant="normal">P</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M186" display="inline"><mml:mrow><mml:msub><mml:mi>Z</mml:mi><mml:mi mathvariant="normal">P</mml:mi></mml:msub><mml:mo>]</mml:mo><mml:mo>=</mml:mo><mml:mo>[</mml:mo><mml:mn mathvariant="normal">0</mml:mn><mml:mo>,</mml:mo><mml:mn mathvariant="normal">0</mml:mn><mml:mo>,</mml:mo><mml:mn mathvariant="normal">0</mml:mn><mml:mo>]</mml:mo></mml:mrow></mml:math></inline-formula> m on the production plane. The equations to convert from Earth to production plane coordinates are provided in Appendix B.</p>

      <fig id="F11"><label>Figure 11</label><caption><p id="d2e2783">Target cylinder (light blue) and the production plane (blue square with axes <inline-formula><mml:math id="M187" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold">X</mml:mi><mml:mi mathvariant="normal">P</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M188" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold">Y</mml:mi><mml:mi mathvariant="normal">P</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, and <inline-formula><mml:math id="M189" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold">Z</mml:mi><mml:mi mathvariant="normal">P</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>).</p></caption>
          <graphic xlink:href="https://wes.copernicus.org/articles/11/2987/2026/wes-11-2987-2026-f11.png"/>

        </fig>

      <p id="d2e2825">The kite's radius on the production plane is calculated as <inline-formula><mml:math id="M190" display="inline"><mml:mrow><mml:mi>R</mml:mi><mml:mo>=</mml:mo><mml:msqrt><mml:mrow><mml:msubsup><mml:mi>X</mml:mi><mml:mi mathvariant="normal">P</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msubsup><mml:mo>+</mml:mo><mml:msubsup><mml:mi>Y</mml:mi><mml:mi mathvariant="normal">P</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msubsup></mml:mrow></mml:msqrt></mml:mrow></mml:math></inline-formula>. To keep <inline-formula><mml:math id="M191" display="inline"><mml:mi>R</mml:mi></mml:math></inline-formula> close to the desired radius <inline-formula><mml:math id="M192" display="inline"><mml:mrow><mml:msub><mml:mi>R</mml:mi><mml:mi mathvariant="normal">SP</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, the three inputs to the inner loop <inline-formula><mml:math id="M193" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ϕ</mml:mi><mml:mrow><mml:msub><mml:mi mathvariant="normal">R</mml:mi><mml:mi mathvariant="normal">SP</mml:mi></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M194" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">λ</mml:mi><mml:mi mathvariant="normal">R</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, and <inline-formula><mml:math id="M195" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ζ</mml:mi><mml:mi mathvariant="normal">R</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> need to be adjusted automatically via a feedback scheme. We refer to this second feedback layer as the outer loop, which works based on the following principles. <list list-type="bullet"><list-item>
      <p id="d2e2914">Adjust the amount of roll via <inline-formula><mml:math id="M196" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ϕ</mml:mi><mml:mrow><mml:msub><mml:mi mathvariant="normal">R</mml:mi><mml:mi mathvariant="normal">SP</mml:mi></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> to keep the actual radius <inline-formula><mml:math id="M197" display="inline"><mml:mi>R</mml:mi></mml:math></inline-formula> close to the desired radius <inline-formula><mml:math id="M198" display="inline"><mml:mrow><mml:msub><mml:mi>R</mml:mi><mml:mi mathvariant="normal">SP</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>.</p></list-item><list-item>
      <p id="d2e2951">Move the circle's centre up or down by adjusting <inline-formula><mml:math id="M199" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">λ</mml:mi><mml:mi mathvariant="normal">R</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, so that the kite's production-plane coordinate <inline-formula><mml:math id="M200" display="inline"><mml:mrow><mml:msub><mml:mi>X</mml:mi><mml:mi mathvariant="normal">P</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> is kept oscillating around zero.</p></list-item><list-item>
      <p id="d2e2977">Move the circle's centre left or right by adjusting <inline-formula><mml:math id="M201" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ζ</mml:mi><mml:mi mathvariant="normal">R</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, so that the kite's production-plane coordinate <inline-formula><mml:math id="M202" display="inline"><mml:mrow><mml:msub><mml:mi>Y</mml:mi><mml:mi mathvariant="normal">P</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> is kept oscillating around zero.</p></list-item></list> This feedback scheme can be achieved using three additional PI controllers as shown in Fig. 12. The components previously presented in Fig. 7 form the inner loop, while three new PI elements form the outer loop. In addition, a low-pass filter with time constant <inline-formula><mml:math id="M203" display="inline"><mml:mrow><mml:mi mathvariant="italic">τ</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">10</mml:mn></mml:mrow></mml:math></inline-formula> s is used on the <inline-formula><mml:math id="M204" display="inline"><mml:mi>R</mml:mi></mml:math></inline-formula> feedback path to reduce <inline-formula><mml:math id="M205" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ϕ</mml:mi><mml:mrow><mml:msub><mml:mi mathvariant="normal">R</mml:mi><mml:mi mathvariant="normal">SP</mml:mi></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> oscillation since large changes in radius can be achieved by a gradual adjustment in <inline-formula><mml:math id="M206" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ϕ</mml:mi><mml:mrow><mml:msub><mml:mi mathvariant="normal">R</mml:mi><mml:mi mathvariant="normal">SP</mml:mi></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>. The resulting outer loop dynamics is described by Eqs. (8)–(11).

                <disp-formula specific-use="gather" content-type="numbered"><mml:math id="M207" display="block"><mml:mtable displaystyle="true"><mml:mlabeledtr id="Ch1.E8"><mml:mtd><mml:mtext>8</mml:mtext></mml:mtd><mml:mtd><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:msub><mml:mover accent="true"><mml:mi>R</mml:mi><mml:mo mathvariant="normal">˙</mml:mo></mml:mover><mml:mi mathvariant="normal">filtered</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mo>-</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mn mathvariant="normal">1</mml:mn><mml:mi mathvariant="italic">τ</mml:mi></mml:mfrac></mml:mstyle><mml:msub><mml:mi>R</mml:mi><mml:mi mathvariant="normal">filtered</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mn mathvariant="normal">1</mml:mn><mml:mi mathvariant="italic">τ</mml:mi></mml:mfrac></mml:mstyle><mml:mi>R</mml:mi></mml:mrow></mml:mtd></mml:mlabeledtr><mml:mlabeledtr id="Ch1.E9"><mml:mtd><mml:mtext>9</mml:mtext></mml:mtd><mml:mtd><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:msub><mml:mi mathvariant="italic">ϕ</mml:mi><mml:mrow><mml:msub><mml:mi mathvariant="normal">R</mml:mi><mml:mi mathvariant="normal">SP</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mi mathvariant="normal">PI</mml:mi><mml:mo>(</mml:mo><mml:msub><mml:mi>R</mml:mi><mml:mi mathvariant="normal">SP</mml:mi></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>R</mml:mi><mml:mi mathvariant="normal">filtered</mml:mi></mml:msub><mml:mo>)</mml:mo></mml:mrow></mml:mtd></mml:mlabeledtr><mml:mlabeledtr id="Ch1.E10"><mml:mtd><mml:mtext>10</mml:mtext></mml:mtd><mml:mtd><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:msub><mml:mi mathvariant="italic">λ</mml:mi><mml:mi mathvariant="normal">R</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mi mathvariant="normal">PI</mml:mi><mml:mo>(</mml:mo><mml:mn mathvariant="normal">0</mml:mn><mml:mo>,</mml:mo><mml:msub><mml:mi>X</mml:mi><mml:mi mathvariant="normal">P</mml:mi></mml:msub><mml:mo>)</mml:mo></mml:mrow></mml:mtd></mml:mlabeledtr><mml:mlabeledtr id="Ch1.E11"><mml:mtd><mml:mtext>11</mml:mtext></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:msub><mml:mi mathvariant="italic">ζ</mml:mi><mml:mi mathvariant="normal">R</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mi mathvariant="normal">PI</mml:mi><mml:mfenced close=")" open="("><mml:mrow><mml:mn mathvariant="normal">0</mml:mn><mml:mo>,</mml:mo><mml:msub><mml:mi>Y</mml:mi><mml:mi mathvariant="normal">P</mml:mi></mml:msub></mml:mrow></mml:mfenced></mml:mrow></mml:mtd></mml:mlabeledtr></mml:mtable></mml:math></disp-formula></p>

      <fig id="F12" specific-use="star"><label>Figure 12</label><caption><p id="d2e3193">Full flight control system. The Earth-to-production-plane coordinate transformation is presented in Appendix B.</p></caption>
          <graphic xlink:href="https://wes.copernicus.org/articles/11/2987/2026/wes-11-2987-2026-f12.png"/>

        </fig>

      <p id="d2e3202">In addition, the inner loop in Fig. 12 shows an optional <inline-formula><mml:math id="M208" display="inline"><mml:mrow><mml:msub><mml:mi>K</mml:mi><mml:mi>g</mml:mi></mml:msub><mml:mi>sin⁡</mml:mi><mml:mi mathvariant="italic">θ</mml:mi></mml:mrow></mml:math></inline-formula> feedback path to the elevator. This term reduces the angle of attack oscillation amplitude and is only used in Sect. 6. All results in Sects. 4–5 do not use this additional term, effectively having <inline-formula><mml:math id="M209" display="inline"><mml:mrow><mml:msub><mml:mi>K</mml:mi><mml:mi>g</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:math></inline-formula>. The other control gains are kept identical throughout the paper for circular flights.</p>
      <p id="d2e3235">An example reel-out trajectory with the tether visible is depicted in Fig. 11. This helical flight path wraps around the cylinder without requiring an exact 3D space to be specified. Therefore, the flight control problem has been reduced to a one-degree-of-freedom task handled by the ailerons (as elevator and rudder are only used for adjusting angle of attack and sideslip to achieve aerodynamic efficiency). The Julia code for the full flight control system is provided in a public depository (Nguyen, 2026). This code and the main body of this paper have been written to provide enough context for automatic implementation by a large language model. For instance, the authors have successfully used Claude Code by Anthropic (version 2.1, run as an extension in Visual Studio Code) to build a fully functional closed-loop system in MATLAB. Claude Code was granted access to only this article and an open-loop version of the simulator.</p>

      <fig id="F13"><label>Figure 13</label><caption><p id="d2e3240">A typical circular reel-out trajectory with parameters <inline-formula><mml:math id="M210" display="inline"><mml:mrow><mml:mi mathvariant="bold">P</mml:mi><mml:mo>=</mml:mo><mml:mo>[</mml:mo><mml:mn mathvariant="normal">200</mml:mn><mml:mo>,</mml:mo><mml:mn mathvariant="normal">0</mml:mn><mml:mo>,</mml:mo><mml:mo>-</mml:mo><mml:mn mathvariant="normal">150</mml:mn><mml:mo>]</mml:mo></mml:mrow></mml:math></inline-formula> m, [<inline-formula><mml:math id="M211" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">λ</mml:mi><mml:mi mathvariant="normal">P</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M212" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ζ</mml:mi><mml:mi mathvariant="normal">P</mml:mi></mml:msub><mml:mo>]</mml:mo><mml:mo>=</mml:mo><mml:mo>[</mml:mo><mml:mn mathvariant="normal">13</mml:mn><mml:mi mathvariant="italic">°</mml:mi><mml:mo>,</mml:mo><mml:mn mathvariant="normal">0</mml:mn><mml:mi mathvariant="italic">°</mml:mi><mml:mo>]</mml:mo></mml:mrow></mml:math></inline-formula>, and <inline-formula><mml:math id="M213" display="inline"><mml:mrow><mml:msub><mml:mi>R</mml:mi><mml:mi mathvariant="normal">SP</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">75</mml:mn></mml:mrow></mml:math></inline-formula> m. The winch speed is kept constant at 2.0 m s<sup>−1</sup>.</p></caption>
          <graphic xlink:href="https://wes.copernicus.org/articles/11/2987/2026/wes-11-2987-2026-f13.png"/>

        </fig>

</sec>
</sec>
<sec id="Ch1.S4">
  <label>4</label><title>Results</title>
<sec id="Ch1.S4.SS1">
  <label>4.1</label><title>Uniform wind</title>
      <p id="d2e3358">A typical reel-out trajectory is presented in Fig. 13, which tracks a target cylinder of 50–75 m radius (75 m in this case), originating from point <inline-formula><mml:math id="M215" display="inline"><mml:mi>P</mml:mi></mml:math></inline-formula> with Earth-axis coordinate [<inline-formula><mml:math id="M216" display="inline"><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mi>X</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M217" display="inline"><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mi>Y</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M218" display="inline"><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mi>Z</mml:mi></mml:msub><mml:mo>]</mml:mo><mml:mo>=</mml:mo><mml:mo>[</mml:mo><mml:mn mathvariant="normal">200</mml:mn><mml:mo>,</mml:mo><mml:mn mathvariant="normal">0</mml:mn><mml:mo>,</mml:mo><mml:mo>-</mml:mo><mml:mn mathvariant="normal">150</mml:mn><mml:mo>]</mml:mo></mml:mrow></mml:math></inline-formula> m, tilted up by 13°, and pointing in the downwind direction ([<inline-formula><mml:math id="M219" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">λ</mml:mi><mml:mi mathvariant="normal">P</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M220" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ζ</mml:mi><mml:mi mathvariant="normal">P</mml:mi></mml:msub><mml:mo>]</mml:mo><mml:mo>=</mml:mo><mml:mo>[</mml:mo><mml:mn mathvariant="normal">13</mml:mn><mml:mi mathvariant="italic">°</mml:mi><mml:mo>,</mml:mo><mml:mn mathvariant="normal">0</mml:mn><mml:mi mathvariant="italic">°</mml:mi><mml:mo>]</mml:mo></mml:mrow></mml:math></inline-formula>). Setting <inline-formula><mml:math id="M221" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">λ</mml:mi><mml:mi mathvariant="normal">P</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> to 13° results in a slight climbing trajectory that reduces the risk of the tether scraping the ground at long tether length but at the cost of higher cosine losses (Diehl, 2013). In practice, this loss can be mitigated by stronger winds experienced at higher altitudes. Results in Fig. 13 shows the kite successfully achieving reference tracking in angle of attack, sideslip, and cylinder wrap-around. Note the second row in Fig. 13b, which shows the three output variables <inline-formula><mml:math id="M222" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">λ</mml:mi><mml:mi mathvariant="normal">R</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M223" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ζ</mml:mi><mml:mi mathvariant="normal">R</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, and <inline-formula><mml:math id="M224" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ϕ</mml:mi><mml:mrow><mml:msub><mml:mi mathvariant="normal">R</mml:mi><mml:mi mathvariant="normal">SP</mml:mi></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> of the outer loop. All three variables require gradual adjustment as the tether length extends to compensate for increasing tether drag. By conventional feedback control standard, the variation in radius can be considered large, reaching 15 % above the set point toward the end of reel out. Nevertheless, the 3D trajectory suggests that this variation still results in a reasonable trajectory. Control surface usage increases as the tether length increases due to higher tether mass and drag, resulting in lower airspeed and hence reduced control effectiveness. Therefore, a limiting factor in how far the kite can reel out is control surface magnitude saturation (in addition to other efficiency issues that can be studied with an optimisation algorithm).</p>
      <p id="d2e3510">To further stress-test the controller, tracking performance with less ideal reel-out paths is now examined. Figure 14 shows a diagonal reel out, which is achieved by setting <inline-formula><mml:math id="M225" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ζ</mml:mi><mml:mi mathvariant="normal">P</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> to 15°. Sideway reel out is shown in Fig. 15, where both <inline-formula><mml:math id="M226" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ζ</mml:mi><mml:mi mathvariant="normal">P</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M227" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">λ</mml:mi><mml:mi mathvariant="normal">P</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> are 0°, but the target cylinder is shifted to the side by 100 m. Both instances show the kite successfully tracking the blue cylinder despite higher lateral force from the tether.</p>

      <fig id="F14"><label>Figure 14</label><caption><p id="d2e3548">Diagonal reel out with parameters <inline-formula><mml:math id="M228" display="inline"><mml:mrow><mml:mi mathvariant="bold">P</mml:mi><mml:mo>=</mml:mo><mml:mo>[</mml:mo><mml:mn mathvariant="normal">200</mml:mn><mml:mo>,</mml:mo><mml:mn mathvariant="normal">0</mml:mn><mml:mo>,</mml:mo><mml:mo>-</mml:mo><mml:mn mathvariant="normal">150</mml:mn><mml:mo>]</mml:mo></mml:mrow></mml:math></inline-formula> m, [<inline-formula><mml:math id="M229" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">λ</mml:mi><mml:mi mathvariant="normal">P</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M230" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ζ</mml:mi><mml:mi mathvariant="normal">P</mml:mi></mml:msub><mml:mo>]</mml:mo><mml:mo>=</mml:mo><mml:mo>[</mml:mo><mml:mn mathvariant="normal">13</mml:mn><mml:mi mathvariant="italic">°</mml:mi><mml:mo>,</mml:mo><mml:mn mathvariant="normal">15</mml:mn><mml:mi mathvariant="italic">°</mml:mi><mml:mo>]</mml:mo></mml:mrow></mml:math></inline-formula>, and <inline-formula><mml:math id="M231" display="inline"><mml:mrow><mml:msub><mml:mi>R</mml:mi><mml:mi mathvariant="normal">SP</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">75</mml:mn></mml:mrow></mml:math></inline-formula> m. The winch speed is kept constant at 2.0 m s<sup>−1</sup>.</p></caption>
          <graphic xlink:href="https://wes.copernicus.org/articles/11/2987/2026/wes-11-2987-2026-f14.png"/>

        </fig>

      <fig id="F15"><label>Figure 15</label><caption><p id="d2e3653">Sideway reel out with parameters <inline-formula><mml:math id="M233" display="inline"><mml:mrow><mml:mi mathvariant="bold">P</mml:mi><mml:mo>=</mml:mo><mml:mo>[</mml:mo><mml:mn mathvariant="normal">200</mml:mn><mml:mo>,</mml:mo><mml:mn mathvariant="normal">100</mml:mn><mml:mo>,</mml:mo><mml:mo>-</mml:mo><mml:mn mathvariant="normal">150</mml:mn><mml:mo>]</mml:mo></mml:mrow></mml:math></inline-formula> m, [<inline-formula><mml:math id="M234" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">λ</mml:mi><mml:mi mathvariant="normal">P</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M235" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ζ</mml:mi><mml:mi mathvariant="normal">P</mml:mi></mml:msub><mml:mo>]</mml:mo><mml:mo>=</mml:mo><mml:mo>[</mml:mo><mml:mn mathvariant="normal">0</mml:mn><mml:mi mathvariant="italic">°</mml:mi><mml:mo>,</mml:mo><mml:mn mathvariant="normal">0</mml:mn><mml:mi mathvariant="italic">°</mml:mi><mml:mo>]</mml:mo></mml:mrow></mml:math></inline-formula>, and <inline-formula><mml:math id="M236" display="inline"><mml:mrow><mml:msub><mml:mi>R</mml:mi><mml:mi mathvariant="normal">SP</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">50</mml:mn></mml:mrow></mml:math></inline-formula> m. The winch speed is kept constant at 2.0 m s<sup>−1</sup>.</p></caption>
          <graphic xlink:href="https://wes.copernicus.org/articles/11/2987/2026/wes-11-2987-2026-f15.png"/>

        </fig>

      <p id="d2e3755">For the final robustness tests, the target cylinder in Fig. 13 is flown again with the controller implemented in discrete form using a low sample rate of 20 Hz while subjected to a 0.1 s delay to all feedback variables. After 50 s of reeling out, the wind direction suddenly changes from 0 to 30°. Figures 16 and 17 show the closed-loop responses with and without corrective actions to the target cylinder to accommodate the new wind direction. In both cases, the kite successfully follows the target cylinder while tracking the angle of attack and sideslip set points despite the sub-optimal condition. Actuator rate limiting is not an issue, as a peak rate of only 14° s<sup>−1</sup> was recorded in the yaw channel of both figures. A lot of the oscillations before the wind-direction change can be attributed to the simple design of the inner loops, which exacerbates the poor transient responses in the presence of feedback delay and low sample time. As discussed in Sect. 3.1, better performance can be achieved with a more sophisticated inner loop. The outer loop, on the other hand, has demonstrated sufficient robustness to guide the kite in sub-optimal conditions even with a simple inner loop design.</p>

      <fig id="F16"><label>Figure 16</label><caption><p id="d2e3772">Closed-loop response to a sudden change in wind direction using a discrete controller (10 Hz) with feedback delay (0.1 s) and no corrective action to the target cylinder.</p></caption>
          <graphic xlink:href="https://wes.copernicus.org/articles/11/2987/2026/wes-11-2987-2026-f16.png"/>

        </fig>

      <fig id="F17"><label>Figure 17</label><caption><p id="d2e3783">Closed-loop response to a sudden change in wind direction using the same discrete controller but with corrective actions to the target cylinder.</p></caption>
          <graphic xlink:href="https://wes.copernicus.org/articles/11/2987/2026/wes-11-2987-2026-f17.png"/>

        </fig>

</sec>
<sec id="Ch1.S4.SS2">
  <label>4.2</label><title>Non-uniform wind with turbulence</title>
      <p id="d2e3800">Experiments have shown that there is considerable variation in wind speed with height, so a feasible controller must be able to perform in a non-uniform wind field. The simulation is now augmented with realistic wind and turbulence conditions. Two wind fields shown in Fig. 18 are used. The first one (referred to as medium wind) has an average speed of 12.1 m s<sup>−1</sup> at 150 m height, and the second one (high wind) averages at 22.9 m s<sup>−1</sup> at 100 m. Both wind fields were derived from lidar data at Kitemill's test site in Lista, Norway, on two different days. Variations in the wind profile over time are also captured in the lidar data as shown in Fig. 18 and implemented in the simulation.</p>

      <fig id="F18"><label>Figure 18</label><caption><p id="d2e3829">Medium <bold>(a)</bold> and high <bold>(b)</bold> wind fields implemented in the simulation based on lidar data.</p></caption>
          <graphic xlink:href="https://wes.copernicus.org/articles/11/2987/2026/wes-11-2987-2026-f18.png"/>

        </fig>

      <fig id="F19"><label>Figure 19</label><caption><p id="d2e3846">Reel out in medium wind and medium turbulence. The winch speed is kept constant at 2.0 m s<sup>−1</sup>. A better tracking performance can be achieved by reducing the winch speed.</p></caption>
          <graphic xlink:href="https://wes.copernicus.org/articles/11/2987/2026/wes-11-2987-2026-f19.png"/>

        </fig>

      <fig id="F20"><label>Figure 20</label><caption><p id="d2e3870">Reel out in high wind and high turbulence. The winch speed is kept constant at 4.0 m s<sup>−1</sup>.</p></caption>
          <graphic xlink:href="https://wes.copernicus.org/articles/11/2987/2026/wes-11-2987-2026-f20.png"/>

        </fig>

      <p id="d2e3891">Additionally, lidar measurements at the site have shown that atmospheric turbulence is present, resulting in significant disturbances in both wind speed and direction. To capture this phenomenon, we implemented a turbulence box based on the Mann model (Mann, 1994). This box covers the 3D space flown by the kite with local wind velocity fluctuations due to atmospheric turbulence. Such fluctuations are added to the wind velocity seen by the kite as the turbulence box is convected downstream with the mean wind speed. This modelling approach follows Taylor's frozen turbulence hypothesis, which states that the turbulent eddies move downstream with the mean wind speed and assumes the structures remain mostly unchanged as they propagate (Taylor, 1937). Generating the turbulence box requires the Mann model parameters: dominant turbulence length scale <inline-formula><mml:math id="M243" display="inline"><mml:mrow><mml:msub><mml:mi>L</mml:mi><mml:mi mathvariant="normal">M</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, amplitude parameter <inline-formula><mml:math id="M244" display="inline"><mml:mrow><mml:mi mathvariant="italic">α</mml:mi><mml:msup><mml:mi mathvariant="italic">ε</mml:mi><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:mo>/</mml:mo><mml:mn mathvariant="normal">3</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula> and anisotropy parameter <inline-formula><mml:math id="M245" display="inline"><mml:mi mathvariant="normal">Γ</mml:mi></mml:math></inline-formula>. The turbulence length scale and amplitude parameter have been estimated from flow field parameters (Kelly, 2018) measured by the lidar at the test site. Two different turbulence cases have been employed in the simulations according to the turbulence measured at the site, referred to as medium turbulence (<inline-formula><mml:math id="M246" display="inline"><mml:mrow><mml:mi mathvariant="italic">α</mml:mi><mml:msup><mml:mi mathvariant="italic">ε</mml:mi><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:mo>/</mml:mo><mml:mn mathvariant="normal">3</mml:mn></mml:mrow></mml:msup><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0.0108</mml:mn></mml:mrow></mml:math></inline-formula>) and high turbulence (<inline-formula><mml:math id="M247" display="inline"><mml:mrow><mml:mi mathvariant="italic">α</mml:mi><mml:msup><mml:mi mathvariant="italic">ε</mml:mi><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:mo>/</mml:mo><mml:mn mathvariant="normal">3</mml:mn></mml:mrow></mml:msup><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0.0267</mml:mn></mml:mrow></mml:math></inline-formula>). The turbulence length scale has been defined as <inline-formula><mml:math id="M248" display="inline"><mml:mrow><mml:msub><mml:mi>L</mml:mi><mml:mi mathvariant="normal">M</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">78.44</mml:mn></mml:mrow></mml:math></inline-formula> m for both cases, being representative of the site, while the anisotropy parameter has been assumed as <inline-formula><mml:math id="M249" display="inline"><mml:mrow><mml:mi mathvariant="normal">Γ</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">3.0</mml:mn></mml:mrow></mml:math></inline-formula>.</p>
      <p id="d2e4002">Figure 19 shows the closed-loop response to medium wind and medium turbulence, and Fig. 20 is for high wind and high turbulence. The first case (Fig. 19) exhibits notably poorer tracking. This is caused by the reduced control surface effectiveness at low airspeed during reel out, which becomes noticeable on the KM1 at airspeed below 35 m s<sup>−1</sup>. The combination of wind gradient and turbulence creates multiple instances of the airspeed dropping below 35 m s<sup>−1</sup>, leading to reduced tracking performance. A potential remedy for flying in such conditions is to reduce winch speed, which increases the apparent wind speed at the kite and results in higher airspeed. Conversely, the high wind and high turbulence case in Fig. 20 exhibits much better performance, despite significantly larger local wind speed fluctuation in all three directions. An even faster convergence to the blue cylinder can be achieved if the gains are tuned for high wind. Nevertheless, both simulations have demonstrated that the controller can provide accurate tracking in realistic wind conditions. Good performance can be expected when the airspeed is kept above 30 m s<sup>−1</sup>, whether through flying at higher wind speed, reeling out slower, or both. A method to improve flight performance in low wind by dynamically varying the winch reel-out speed will be presented in a future publication.</p>
</sec>
</sec>
<sec id="Ch1.S5">
  <label>5</label><title>Discussions</title>
<sec id="Ch1.S5.SS1">
  <label>5.1</label><title>Winch speed control</title>
      <p id="d2e4058">Since our flight control system does not specify an exact flight path, the “wavelength” of the resulting helical trajectory is dependent on winch control, not flight control. Figure 21 shows two reel-out cycles with the same target cylinders and wind conditions but different winch speeds. Figure 21a demonstrates reeling out faster, which creates more sparsely spaced loops and generally produces more energy (since mechanical power equals tether tension times winch speed). However, a high reel-out winch speed reduces the apparent wind speed at the kite, resulting in a drop in airspeed that can eventually stall the airframe. Stall can be prevented by reducing the winch speed as shown in Fig. 21b, which has a higher airspeed than in Fig. 21a toward the end of reel out. A detailed study on the impact of winch speed control on power production during reel out can be found in Nguyen et al. (2026a).</p>

      <fig id="F21"><label>Figure 21</label><caption><p id="d2e4063">Reeling out at 2.5 m s<sup>−1</sup> <bold>(a)</bold> and 1.0 m s<sup>−1</sup> <bold>(b)</bold> winch speed, showing lower airspeed in <bold>(a)</bold> due to faster reel out.</p></caption>
          <graphic xlink:href="https://wes.copernicus.org/articles/11/2987/2026/wes-11-2987-2026-f21.png"/>

        </fig>

      <p id="d2e4105">By the same token, flying in lower wind speeds can be done by reducing the winch speed accordingly. The KM1 airframe stalls at 20 m s<sup>−1</sup> airspeed, so the minimum acceptable airspeed during simulated reel out in steady uniform wind was chosen to be 30 m s<sup>−1</sup>. This apparently large margin is deemed necessary because steady and uniform wind is rarely encountered in real flights, so the kite must be able to remain airborne during temporal drops in wind speed. This airspeed constraint results in a reel-out winch speed of zero in 8 m s<sup>−1</sup> uniform wind. Figure 10 shows the resulting trajectory: a circular orbit with the winch locked in place to keep the tether length fixed at 350 m – arguably a fixed-wing version of “parking” the kite mid-air as seen in soft kites AWES but achievable at much lower wind speeds (Fechner et al., 2015). The minimum airspeed is reached at the top of the circle. Therefore, preventing such a large drop in airspeed will enable the kite to operate at lower wind speeds. One method to do so is to phase-synchronise winch speed control with flight control. This winch control method can reduce the KM1's “minimum parking wind speed” to 6.7 m s<sup>−1</sup>, thereby enabling power production in 8 m s<sup>−1</sup> wind. Further details of such a winch control system will be provided in a future publication. In the context of this paper, we have shown that the flight control system can track the target cylinder as long as there is sufficient airspeed to prevent stall.</p>

      <fig id="F22"><label>Figure 22</label><caption><p id="d2e4171">Trajectory under zero winch speed in 8 m s<sup>−1</sup> wind. The kite is drawn true to scale at 1 s intervals. Time histories show data from two cycles.</p></caption>
          <graphic xlink:href="https://wes.copernicus.org/articles/11/2987/2026/wes-11-2987-2026-f22.png"/>

        </fig>

</sec>
<sec id="Ch1.S5.SS2">
  <label>5.2</label><title>Radius control with large error signal</title>
      <p id="d2e4200">Figure 23a shows the kite joining a sideway reel out from outside the target cylinder. A bottleneck point is seen, which is caused by the radius controller. At the starting point, the radius error is large, so the radius tracker tightens the turn to compensate for the large error signal. This manoeuvre can excessively reduce the radii of the enroute circular loops, causing potential control problems. To avoid the bottleneck problem, radius control should be turned off until the kite is already inside the target cylinder. Figure 23b shows the kite rejoining the same cylinder but with <inline-formula><mml:math id="M261" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ϕ</mml:mi><mml:mrow><mml:msub><mml:mi mathvariant="normal">R</mml:mi><mml:mi mathvariant="normal">SP</mml:mi></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> manually set to <inline-formula><mml:math id="M262" display="inline"><mml:mo>-</mml:mo></mml:math></inline-formula>3° at the start, which resulted in no bottleneck. Once inside the cylinder, radius tracking can be safely turned on.</p>

      <fig id="F23"><label>Figure 23</label><caption><p id="d2e4227">Bottleneck issue caused by enabling radius tracking when the kite is far outside the cylinder: <bold>(a)</bold> with radius tracking deployed, <bold>(b)</bold> without radius tracking.</p></caption>
          <graphic xlink:href="https://wes.copernicus.org/articles/11/2987/2026/wes-11-2987-2026-f23.png"/>

        </fig>

</sec>
<sec id="Ch1.S5.SS3">
  <label>5.3</label><title>Cosine losses at high altitudes</title>
      <p id="d2e4250">Early AWES literature has noted the cosine loss phenomenon, where given the same wind speed, power is reduced at higher altitudes (Diehl, 2013). This reduction is caused by a misalignment between the aerodynamic force and the wind vector. In the context of circular reel out, flying higher means individual orbits are angled further away from their ideal position of being 90° to the wind. The misalignment between aerodynamic force and wind direction increases, resulting in power reduction. A demonstration is provided in Fig. 24, which analyses three horizontal reel-out trajectories with same radii (50 m) but different target heights (reflected by different values for <inline-formula><mml:math id="M263" display="inline"><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mi>z</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, which is the <inline-formula><mml:math id="M264" display="inline"><mml:mi>Z</mml:mi></mml:math></inline-formula> coordinate of the target cylinder's origin in the Earth axis). <list list-type="bullet"><list-item>
      <p id="d2e4273">Solid line: ideal trajectory orbiting the centre of the wind window with <inline-formula><mml:math id="M265" display="inline"><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mi>z</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:math></inline-formula> m and no gravity. This flight path is not achievable in test flights due to the negative heights.</p></list-item><list-item>
      <p id="d2e4292">Dashed line: 100 m height with gravity. This trajectory can be considered realistic.</p></list-item><list-item>
      <p id="d2e4296">Dotted line: 250 m height with gravity.</p></list-item></list> The kite with highest altitude experiences more control difficulty, and notably produces 46 % less power than in the ideal case. As altitude increases, the angle between individual circular orbits and the wind drops below the ideal value of 90°, which is achieved only when <inline-formula><mml:math id="M266" display="inline"><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mi>z</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:math></inline-formula> m with no gravity. Due to this increasing misalignment with height, the wind contributes less to pulling the tether out, resulting in less power generated. Whilst flying higher also increases tether drag and reduces power, the contribution from the cosine loss is more significant. If the kite at <inline-formula><mml:math id="M267" display="inline"><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mi>z</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mo>-</mml:mo><mml:mn mathvariant="normal">250</mml:mn></mml:mrow></mml:math></inline-formula> m was to achieve 21.9 kW (same power output as with <inline-formula><mml:math id="M268" display="inline"><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mi>z</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mo>-</mml:mo><mml:mn mathvariant="normal">100</mml:mn></mml:mrow></mml:math></inline-formula> m), the wind speed must increase to 17 m s<sup>−1</sup>.</p>

      <fig id="F24"><label>Figure 24</label><caption><p id="d2e4364">Different power production capacities at different heights due to cosine loss.</p></caption>
          <graphic xlink:href="https://wes.copernicus.org/articles/11/2987/2026/wes-11-2987-2026-f24.png"/>

        </fig>

</sec>
<sec id="Ch1.S5.SS4">
  <label>5.4</label><title>Minimum viable controller: ailerons only</title>
      <p id="d2e4381">Since all outer-loop signals are combined into just one control surface input (ailerons – see Fig. 12), the kite can follow the target cylinder with elevator and rudder fixed. Figure 25 shows one such example, where rudder is kept neutral and elevator is set to <inline-formula><mml:math id="M270" display="inline"><mml:mo>-</mml:mo></mml:math></inline-formula>4°. Power production is less efficient without active angle of attack and sideslip monitoring, but being able to test the flight controller without pitot tubes (for <inline-formula><mml:math id="M271" display="inline"><mml:mi mathvariant="italic">α</mml:mi></mml:math></inline-formula> and <inline-formula><mml:math id="M272" display="inline"><mml:mi mathvariant="italic">β</mml:mi></mml:math></inline-formula> measurements) can be useful for rapid development of new AWES prototypes. Mathematically speaking, flying with only one active control surface is possible because the goal of tracking a constant radius – regardless of the flight path taken – is a one-degree-of-freedom problem. This formulation of feedback control reduces complexity and implies that a different control effector can be used. Indeed, test flights at Kitemill have successfully flown circular reel out using only rudder (ailerons and elevator are fixed), although simulations show that this method is less efficient for power generation than using ailerons (Nguyen et al., 2026a).</p>

      <fig id="F25"><label>Figure 25</label><caption><p id="d2e4407">Normal reel out flown with fixed elevator (<inline-formula><mml:math id="M273" display="inline"><mml:mo lspace="0mm">-</mml:mo></mml:math></inline-formula>4°) and rudder (0°). Parameters: <inline-formula><mml:math id="M274" display="inline"><mml:mrow><mml:mi mathvariant="bold">P</mml:mi><mml:mo>=</mml:mo><mml:mo>[</mml:mo><mml:mn mathvariant="normal">200</mml:mn><mml:mo>,</mml:mo><mml:mn mathvariant="normal">0</mml:mn><mml:mo>,</mml:mo><mml:mo>-</mml:mo><mml:mn mathvariant="normal">150</mml:mn><mml:mo>]</mml:mo></mml:mrow></mml:math></inline-formula> m, [<inline-formula><mml:math id="M275" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">λ</mml:mi><mml:mi mathvariant="normal">P</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M276" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ζ</mml:mi><mml:mi mathvariant="normal">P</mml:mi></mml:msub><mml:mo>]</mml:mo><mml:mo>=</mml:mo><mml:mo>[</mml:mo><mml:mn mathvariant="normal">13</mml:mn><mml:mi mathvariant="italic">°</mml:mi><mml:mo>,</mml:mo><mml:mn mathvariant="normal">0</mml:mn><mml:mi mathvariant="italic">°</mml:mi><mml:mo>]</mml:mo></mml:mrow></mml:math></inline-formula>, and <inline-formula><mml:math id="M277" display="inline"><mml:mrow><mml:msub><mml:mi>R</mml:mi><mml:mi mathvariant="normal">SP</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">75</mml:mn></mml:mrow></mml:math></inline-formula> m. The winch speed is kept constant at 2.0 m s<sup>−1</sup>.</p></caption>
          <graphic xlink:href="https://wes.copernicus.org/articles/11/2987/2026/wes-11-2987-2026-f25.png"/>

        </fig>

</sec>
<sec id="Ch1.S5.SS5">
  <label>5.5</label><title>Semi-manual mode</title>
      <p id="d2e4526">The kite can be flown using only the inner loop – even with the winch active. We refer to this configuration as the “semi-manual mode”. Figure 26 shows an example. Five set points have to be specified by the user as shown in Fig. 7, namely <inline-formula><mml:math id="M279" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ϕ</mml:mi><mml:mrow><mml:msub><mml:mi>R</mml:mi><mml:mi mathvariant="normal">SP</mml:mi></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M280" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">λ</mml:mi><mml:mi mathvariant="normal">R</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, and <inline-formula><mml:math id="M281" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ζ</mml:mi><mml:mi mathvariant="normal">R</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> for the ailerons, <inline-formula><mml:math id="M282" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">α</mml:mi><mml:mi mathvariant="normal">SP</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> for the elevator, and <inline-formula><mml:math id="M283" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">β</mml:mi><mml:mi mathvariant="normal">SP</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> for the rudder (noting that the last two can also be kept fixed as discussed in Sect. 5.4). With <inline-formula><mml:math id="M284" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">λ</mml:mi><mml:mi mathvariant="normal">R</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> sufficiently high for satisfactory ground clearance and <inline-formula><mml:math id="M285" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ζ</mml:mi><mml:mi mathvariant="normal">R</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> not too far off the wind direction, the kite can sustain safe circular reel out. Steering the reel-out path can be achieved by manually adjusting <inline-formula><mml:math id="M286" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">λ</mml:mi><mml:mi mathvariant="normal">R</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M287" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ζ</mml:mi><mml:mi mathvariant="normal">R</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, while radius adjustment can be done with <inline-formula><mml:math id="M288" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ϕ</mml:mi><mml:mrow><mml:msub><mml:mi>R</mml:mi><mml:mi mathvariant="normal">SP</mml:mi></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>.</p>
      <p id="d2e4648">For initial AWES control development, we recommend flying in semi-manual mode with the tether length fixed, gravity disabled, and <inline-formula><mml:math id="M289" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">λ</mml:mi><mml:mi mathvariant="normal">R</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M290" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ζ</mml:mi><mml:mi mathvariant="normal">R</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> set to 0°. Doing so enable the kite to converge to an equilibrium state by circling a point at zero height. From here, the <inline-formula><mml:math id="M291" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">α</mml:mi><mml:mi mathvariant="normal">SP</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M292" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">β</mml:mi><mml:mi mathvariant="normal">SP</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, and <inline-formula><mml:math id="M293" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ϕ</mml:mi><mml:mrow><mml:msub><mml:mi>R</mml:mi><mml:mi mathvariant="normal">SP</mml:mi></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> loops can be tuned using classical methods.</p>

      <fig id="F26"><label>Figure 26</label><caption><p id="d2e4712">Semi-manual flight using only the inner loop.</p></caption>
          <graphic xlink:href="https://wes.copernicus.org/articles/11/2987/2026/wes-11-2987-2026-f26.png"/>

        </fig>

</sec>
<sec id="Ch1.S5.SS6">
  <label>5.6</label><title>Limit cycles</title>
      <p id="d2e4729">A potential downside of the controller is that it cannot converge to an equilibrium. To demonstrate, consider the full flight control system in a gravity-free environment with [<inline-formula><mml:math id="M294" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">λ</mml:mi><mml:mi mathvariant="normal">P</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M295" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ζ</mml:mi><mml:mi mathvariant="normal">P</mml:mi></mml:msub><mml:mo>]</mml:mo><mml:mo>=</mml:mo><mml:mo>[</mml:mo><mml:mn mathvariant="normal">0</mml:mn><mml:mi mathvariant="italic">°</mml:mi><mml:mo>,</mml:mo><mml:mn mathvariant="normal">0</mml:mn><mml:mi mathvariant="italic">°</mml:mi><mml:mo>]</mml:mo></mml:mrow></mml:math></inline-formula> and fixed tether length as shown in Fig. 27a. The resulting circular trajectory is perpendicular to the wind, and past work has shown that an equilibrium trim point exists in this condition (i.e. no cyclic control surface movement required) (Nguyen et al., 2026b). However, Fig. 27b shows that <inline-formula><mml:math id="M296" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">λ</mml:mi><mml:mi mathvariant="normal">R</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M297" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ζ</mml:mi><mml:mi mathvariant="normal">R</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> still exhibit small limit cycles caused by the integrated production-plane coordinates <inline-formula><mml:math id="M298" display="inline"><mml:mrow><mml:msub><mml:mi>X</mml:mi><mml:mi mathvariant="normal">P</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M299" display="inline"><mml:mrow><mml:msub><mml:mi>Y</mml:mi><mml:mi mathvariant="normal">P</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> in the error signal. All three control surfaces are also in limit cycles as a result. These limit cycles disappear when <inline-formula><mml:math id="M300" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">λ</mml:mi><mml:mi mathvariant="normal">R</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M301" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ζ</mml:mi><mml:mi mathvariant="normal">R</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> are manually set to zero, at which point, the kite can be linearised for inner-loop control design. For the outer loop, the small-amplitude limit cycles can be ignored during manual tuning, but they may pose a challenge for rigorous control design. Further discussions on analysing nonlinear limit-cycle systems can be found in maths textbooks such as Jordan and Smith (2007).</p>

      <fig id="F27"><label>Figure 27</label><caption><p id="d2e4841">Closed-loop limit cycles, which is always present in the full flight controller even when equilibrium trim is possible.</p></caption>
          <graphic xlink:href="https://wes.copernicus.org/articles/11/2987/2026/wes-11-2987-2026-f27.png"/>

        </fig>

</sec>
</sec>
<sec id="Ch1.S6">
  <label>6</label><title>Control law extensions</title>
<sec id="Ch1.S6.SS1">
  <label>6.1</label><title>Reducing angle-of-attack oscillation</title>
      <p id="d2e4866">Although limit cycles cannot be eliminated, some can be reduced in amplitude. Angle of attack is one prime candidate for this reduction because flying at a near-constant <inline-formula><mml:math id="M302" display="inline"><mml:mi mathvariant="italic">α</mml:mi></mml:math></inline-formula> keeps the airframe close to its optimal aerodynamic configuration, which improves power generation. Two elements contribute to angle-of-attack oscillation during circular reel out: changing apparent wind direction at different points in the circle and changing gravity direction with respect to the airframe's body axis. Whilst the former is unavoidable, the latter can be reduced. Assuming no external wind, gravity's contribution can be seen in the last term of Eq. (12).

            <disp-formula id="Ch1.E12" content-type="numbered"><label>12</label><mml:math id="M303" display="block"><mml:mtable class="split" rowspacing="0.2ex" displaystyle="true" columnalign="right left"><mml:mtr><mml:mtd><mml:mrow><mml:mover accent="true"><mml:mi mathvariant="italic">α</mml:mi><mml:mo mathvariant="normal">˙</mml:mo></mml:mover></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mo>=</mml:mo><mml:mi>q</mml:mi><mml:mo>-</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mn mathvariant="normal">1</mml:mn><mml:mn mathvariant="normal">2</mml:mn></mml:mfrac></mml:mstyle><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi mathvariant="normal">VS</mml:mi></mml:mrow><mml:mi>m</mml:mi></mml:mfrac></mml:mstyle><mml:msub><mml:mi>C</mml:mi><mml:mi mathvariant="normal">L</mml:mi></mml:msub><mml:mo>-</mml:mo><mml:mfenced close=")" open="("><mml:mrow><mml:mi>p</mml:mi><mml:mi>cos⁡</mml:mi><mml:mi mathvariant="italic">α</mml:mi><mml:mo>+</mml:mo><mml:mi>r</mml:mi><mml:mi>sin⁡</mml:mi><mml:mi mathvariant="italic">α</mml:mi></mml:mrow></mml:mfenced><mml:mi>tan⁡</mml:mi><mml:mi mathvariant="italic">β</mml:mi></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:mo>+</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mi>g</mml:mi><mml:mi>V</mml:mi></mml:mfrac></mml:mstyle><mml:mfenced close=")" open="("><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mi>cos⁡</mml:mi><mml:mi mathvariant="italic">ϕ</mml:mi><mml:mi>cos⁡</mml:mi><mml:mi mathvariant="italic">θ</mml:mi><mml:mi>cos⁡</mml:mi><mml:mi mathvariant="italic">α</mml:mi><mml:mo>+</mml:mo><mml:mi>sin⁡</mml:mi><mml:mi mathvariant="italic">θ</mml:mi><mml:mi>sin⁡</mml:mi><mml:mi mathvariant="italic">α</mml:mi></mml:mrow><mml:mrow><mml:mi>cos⁡</mml:mi><mml:mi mathvariant="italic">β</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:mfenced></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>

          This is one of the standard six-degree-of-freedom equations of motion for aircraft but is written in the aerodynamic wind axis (<inline-formula><mml:math id="M304" display="inline"><mml:mrow><mml:mi mathvariant="italic">α</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="italic">β</mml:mi></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M305" display="inline"><mml:mi>V</mml:mi></mml:math></inline-formula>) instead of the more common body-axis velocities (<inline-formula><mml:math id="M306" display="inline"><mml:mi>u</mml:mi></mml:math></inline-formula>, <inline-formula><mml:math id="M307" display="inline"><mml:mi>v</mml:mi></mml:math></inline-formula>, <inline-formula><mml:math id="M308" display="inline"><mml:mi>w</mml:mi></mml:math></inline-formula>). If the contribution of gravity in Eq. (12) can be cancelled out using feedback control, angle-of-attack oscillation will be significantly reduced. This gravity term can be decomposed into two components:

                <disp-formula specific-use="gather" content-type="numbered"><mml:math id="M309" display="block"><mml:mtable displaystyle="true"><mml:mlabeledtr id="Ch1.E13"><mml:mtd><mml:mtext>13</mml:mtext></mml:mtd><mml:mtd><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:msub><mml:mover accent="true"><mml:mi mathvariant="italic">α</mml:mi><mml:mo mathvariant="normal">˙</mml:mo></mml:mover><mml:mrow><mml:msub><mml:mi>g</mml:mi><mml:mi>z</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mi>g</mml:mi><mml:mi>V</mml:mi></mml:mfrac></mml:mstyle><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mi>cos⁡</mml:mi><mml:mi mathvariant="italic">ϕ</mml:mi><mml:mi>cos⁡</mml:mi><mml:mi mathvariant="italic">θ</mml:mi><mml:mi>cos⁡</mml:mi><mml:mi mathvariant="italic">α</mml:mi></mml:mrow><mml:mrow><mml:mi>cos⁡</mml:mi><mml:mi mathvariant="italic">β</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mlabeledtr><mml:mlabeledtr id="Ch1.E14"><mml:mtd><mml:mtext>14</mml:mtext></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:msub><mml:mover accent="true"><mml:mi mathvariant="italic">α</mml:mi><mml:mo mathvariant="normal">˙</mml:mo></mml:mover><mml:mrow><mml:msub><mml:mi>g</mml:mi><mml:mi>x</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mi>g</mml:mi><mml:mi>V</mml:mi></mml:mfrac></mml:mstyle><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mi>sin⁡</mml:mi><mml:mi mathvariant="italic">θ</mml:mi><mml:mi>sin⁡</mml:mi><mml:mi mathvariant="italic">α</mml:mi></mml:mrow><mml:mrow><mml:mi>cos⁡</mml:mi><mml:mi mathvariant="italic">β</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mlabeledtr></mml:mtable></mml:math></disp-formula>

          where <inline-formula><mml:math id="M310" display="inline"><mml:mrow><mml:msub><mml:mover accent="true"><mml:mi mathvariant="italic">α</mml:mi><mml:mo mathvariant="normal">˙</mml:mo></mml:mover><mml:mrow><mml:msub><mml:mi>g</mml:mi><mml:mi>z</mml:mi></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> describes how the body-axis (not Earth-axis) vertical component of gravity affects angle of attack, and <inline-formula><mml:math id="M311" display="inline"><mml:mrow><mml:msub><mml:mover accent="true"><mml:mi mathvariant="italic">α</mml:mi><mml:mo mathvariant="normal">˙</mml:mo></mml:mover><mml:mrow><mml:msub><mml:mi>g</mml:mi><mml:mi>x</mml:mi></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> reflects the contribution of the longitudinal component. Comparing both variables against <inline-formula><mml:math id="M312" display="inline"><mml:mi mathvariant="italic">α</mml:mi></mml:math></inline-formula> in Fig. 28, one can see that <inline-formula><mml:math id="M313" display="inline"><mml:mrow><mml:msub><mml:mover accent="true"><mml:mi mathvariant="italic">α</mml:mi><mml:mo mathvariant="normal">˙</mml:mo></mml:mover><mml:mrow><mml:msub><mml:mi>g</mml:mi><mml:mi>x</mml:mi></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> is roughly in phase with <inline-formula><mml:math id="M314" display="inline"><mml:mi mathvariant="italic">α</mml:mi></mml:math></inline-formula> and oscillates about zero, whereas <inline-formula><mml:math id="M315" display="inline"><mml:mrow><mml:msub><mml:mover accent="true"><mml:mi mathvariant="italic">α</mml:mi><mml:mo mathvariant="normal">˙</mml:mo></mml:mover><mml:mrow><mml:msub><mml:mi>g</mml:mi><mml:mi>z</mml:mi></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> has a slight phase lead and is offset from zero. Both properties of <inline-formula><mml:math id="M316" display="inline"><mml:mrow><mml:msub><mml:mover accent="true"><mml:mi mathvariant="italic">α</mml:mi><mml:mo mathvariant="normal">˙</mml:mo></mml:mover><mml:mrow><mml:msub><mml:mi>g</mml:mi><mml:mi>x</mml:mi></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> suggest that it can be used as a feedback signal on the elevator channel to cancel out the angle-of-attack oscillation. This is possible in the simulation. However, <inline-formula><mml:math id="M317" display="inline"><mml:mrow><mml:msub><mml:mover accent="true"><mml:mi mathvariant="italic">α</mml:mi><mml:mo mathvariant="normal">˙</mml:mo></mml:mover><mml:mrow><mml:msub><mml:mi>g</mml:mi><mml:mi>x</mml:mi></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> in Eq. (14) has three quantities that require measurements from a pitot tube: <inline-formula><mml:math id="M318" display="inline"><mml:mi>V</mml:mi></mml:math></inline-formula>, <inline-formula><mml:math id="M319" display="inline"><mml:mi mathvariant="italic">α</mml:mi></mml:math></inline-formula>, and <inline-formula><mml:math id="M320" display="inline"><mml:mi mathvariant="italic">β</mml:mi></mml:math></inline-formula>. If all three are removed from Eq. (14), the right-hand side reduces to just <inline-formula><mml:math id="M321" display="inline"><mml:mrow><mml:mi>g</mml:mi><mml:mi>sin⁡</mml:mi><mml:mi mathvariant="italic">θ</mml:mi></mml:mrow></mml:math></inline-formula>. Figure 28 shows that this term has similar phase and offset properties as the full <inline-formula><mml:math id="M322" display="inline"><mml:mrow><mml:msub><mml:mover accent="true"><mml:mi mathvariant="italic">α</mml:mi><mml:mo mathvariant="normal">˙</mml:mo></mml:mover><mml:mrow><mml:msub><mml:mi>g</mml:mi><mml:mi>x</mml:mi></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> equation. Therefore, the feedback signal to the elevator can be simply <inline-formula><mml:math id="M323" display="inline"><mml:mrow><mml:msub><mml:mi>K</mml:mi><mml:mi>g</mml:mi></mml:msub><mml:mi>sin⁡</mml:mi><mml:mi mathvariant="italic">θ</mml:mi></mml:mrow></mml:math></inline-formula>, where <inline-formula><mml:math id="M324" display="inline"><mml:mrow><mml:msub><mml:mi>K</mml:mi><mml:mi>g</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> is a proportional gain equal to <inline-formula><mml:math id="M325" display="inline"><mml:mi>g</mml:mi></mml:math></inline-formula> multiplied by a constant. This additional feedback path creates the second junction in the elevator path (see Fig. 12). As such, the augmented pitch control law is

            <disp-formula id="Ch1.E15" content-type="numbered"><label>15</label><mml:math id="M326" display="block"><mml:mrow><mml:msub><mml:mi mathvariant="italic">δ</mml:mi><mml:mrow><mml:msub><mml:mi mathvariant="normal">e</mml:mi><mml:mi mathvariant="normal">SP</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mi mathvariant="normal">PI</mml:mi><mml:mo>(</mml:mo><mml:msub><mml:mi mathvariant="italic">α</mml:mi><mml:mi mathvariant="normal">SP</mml:mi></mml:msub><mml:mo>,</mml:mo><mml:mi mathvariant="italic">α</mml:mi><mml:mo>)</mml:mo><mml:mo>+</mml:mo><mml:msub><mml:mi>K</mml:mi><mml:mi>g</mml:mi></mml:msub><mml:mi>sin⁡</mml:mi><mml:mi mathvariant="italic">θ</mml:mi><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula></p>

      <fig id="F28"><label>Figure 28</label><caption><p id="d2e5380">Potential feedback terms to cancel out the effect of gravity on <inline-formula><mml:math id="M327" display="inline"><mml:mi mathvariant="italic">α</mml:mi></mml:math></inline-formula> oscillation.</p></caption>
          <graphic xlink:href="https://wes.copernicus.org/articles/11/2987/2026/wes-11-2987-2026-f28.png"/>

        </fig>

      <p id="d2e5396">Figure 29 shows the effect of the new pitch control law on angle of attack and power generation over a normal reel-out trajectory but with a low radius of 50 m to exaggerate <inline-formula><mml:math id="M328" display="inline"><mml:mi mathvariant="italic">α</mml:mi></mml:math></inline-formula> oscillation. The dashed line labelled “<inline-formula><mml:math id="M329" display="inline"><mml:mrow><mml:msub><mml:mi>K</mml:mi><mml:mi>g</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:math></inline-formula>” indicates flying without the <inline-formula><mml:math id="M330" display="inline"><mml:mi mathvariant="italic">α</mml:mi></mml:math></inline-formula>-suppression controller. It can be seen that the controller successfully suppresses the limit cycle in <inline-formula><mml:math id="M331" display="inline"><mml:mi mathvariant="italic">α</mml:mi></mml:math></inline-formula> and provides a marginal 0.1 kW gain in power. This power gain is more noticeable if a less ideal winch is used. In Fig. 30, the same reel-out trajectory is flown again but with a winch that maintains a constant tether tension of 8 kN. This winch control mechanism is less efficient for power generation (Nguyen et al., 2026a) but is closer to what has been tested experimentally at Kitemill. In this arrangement, angle of attack oscillation has been significantly reduced. The kite experiences less aerodynamic drag as a result and completes the production cycle 14 s faster – a 0.9 kW gain in power. Inspecting the elevator movement in both Figs. 29 and 30, we can see that the new pitch control law has phase-shifted the cyclic elevator input and also demands more elevator movements compared to the <inline-formula><mml:math id="M332" display="inline"><mml:mrow><mml:msub><mml:mi>K</mml:mi><mml:mi>g</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:math></inline-formula> case, resulting in the desired <inline-formula><mml:math id="M333" display="inline"><mml:mi mathvariant="italic">α</mml:mi></mml:math></inline-formula>-suppression effect. This behaviour reflects the fact that our proposed control law is a form of dynamic inversion.</p>

      <fig id="F29"><label>Figure 29</label><caption><p id="d2e5461">Effect of the <inline-formula><mml:math id="M334" display="inline"><mml:mi mathvariant="italic">α</mml:mi></mml:math></inline-formula>-suppression controller. The winch speed is constant at 2 m s<sup>−1</sup>.</p></caption>
          <graphic xlink:href="https://wes.copernicus.org/articles/11/2987/2026/wes-11-2987-2026-f29.png"/>

        </fig>

      <fig id="F30"><label>Figure 30</label><caption><p id="d2e5491">Effect of the <inline-formula><mml:math id="M336" display="inline"><mml:mi mathvariant="italic">α</mml:mi></mml:math></inline-formula>-suppression controller. The winch tracks a constant tether tension of 8 kN.</p></caption>
          <graphic xlink:href="https://wes.copernicus.org/articles/11/2987/2026/wes-11-2987-2026-f30.png"/>

        </fig>

      <fig id="F31"><label>Figure 31</label><caption><p id="d2e5509">Starting location of the two kites for synchronisation testing.</p></caption>
          <graphic xlink:href="https://wes.copernicus.org/articles/11/2987/2026/wes-11-2987-2026-f31.png"/>

        </fig>

      <p id="d2e5518">Since gravity's contribution is independent of the chosen flight path, the angle-of-attack suppression controller also works with figure-of-eight reel out. This capability is demonstrated in Sect. 6.3. Appendix C presents the stability proof of the <inline-formula><mml:math id="M337" display="inline"><mml:mi mathvariant="italic">α</mml:mi></mml:math></inline-formula> dynamics in closed loop with the proposed controller.</p>
</sec>
<sec id="Ch1.S6.SS2">
  <label>6.2</label><title>Multi-kite synchronisation</title>
      <p id="d2e5536">Our proposed flight controller can be extended to synchronise multiple kites in a farm configuration, where a minimum separation rule may be in place. The working principle is based on the fact that without a dedicated propulsion unit, the kite's angular velocity in the cylinder is dependent primarily on radius. Faster sweep is achieved by lowering the radius and vice versa, as shown in Fig. 10. Within the same 10 s window, the blue trajectory with a smaller radius completes around 2.5 orbits, whereas the grey one does only 1.5. Therefore, phase synchronisation of multiple kites can be achieved by adjusting the radius. To demonstrate, consider a hypothetical two-kite farm scenario in Fig. 31. Two target cylinders with 80 m radius are placed with only 100 m in lateral separation between their centre lines, leading to 60 m of overlap in the <inline-formula><mml:math id="M338" display="inline"><mml:mi>Y</mml:mi></mml:math></inline-formula> direction. The angular phase <inline-formula><mml:math id="M339" display="inline"><mml:mi mathvariant="normal">Ω</mml:mi></mml:math></inline-formula> of each kite in its target cylinder is defined as

            <disp-formula id="Ch1.E16" content-type="numbered"><label>16</label><mml:math id="M340" display="block"><mml:mrow><mml:mi mathvariant="normal">Ω</mml:mi><mml:mo>=</mml:mo><mml:mi mathvariant="normal">atan</mml:mi><mml:mn mathvariant="normal">2</mml:mn><mml:mfenced close=")" open="("><mml:mrow><mml:msub><mml:mi>Y</mml:mi><mml:mi mathvariant="normal">P</mml:mi></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>X</mml:mi><mml:mi mathvariant="normal">P</mml:mi></mml:msub></mml:mrow></mml:mfenced><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula>

          Note that <inline-formula><mml:math id="M341" display="inline"><mml:mrow><mml:mi mathvariant="normal">Ω</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0</mml:mn><mml:mi mathvariant="italic">°</mml:mi></mml:mrow></mml:math></inline-formula> corresponds to the kite being at the highest point of the circle.</p>

      <fig id="F32"><label>Figure 32</label><caption><p id="d2e5599">Phase synchronisation controller in the second kite.</p></caption>
          <graphic xlink:href="https://wes.copernicus.org/articles/11/2987/2026/wes-11-2987-2026-f32.png"/>

        </fig>

      <p id="d2e5608">The lead kite is flown normally using the control scheme in Fig. 12. For the second kite, the radius set point <inline-formula><mml:math id="M342" display="inline"><mml:mrow><mml:msub><mml:mi>R</mml:mi><mml:mrow><mml:msub><mml:mi mathvariant="normal">SP</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> is automatically adjusted using an additional PI loop presented in Fig. 32. This controller seeks to match the second kite's phase with the first kite's by adjusting the second kite's radius. To prevent overcorrection, the output <inline-formula><mml:math id="M343" display="inline"><mml:mrow><mml:msub><mml:mi>R</mml:mi><mml:mrow><mml:msub><mml:mi mathvariant="normal">SP</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> of the phase-synchronisation controller is limited to between 60 and 100 m, which is no more than <inline-formula><mml:math id="M344" display="inline"><mml:mrow><mml:mo>±</mml:mo><mml:mn mathvariant="normal">20</mml:mn></mml:mrow></mml:math></inline-formula> m from <inline-formula><mml:math id="M345" display="inline"><mml:mrow><mml:msub><mml:mi>R</mml:mi><mml:mrow><mml:msub><mml:mi mathvariant="normal">SP</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">80</mml:mn></mml:mrow></mml:math></inline-formula> m.</p>
      <p id="d2e5671">The phase synchronisation controller is now tested with two kites starting from a 180° out-of-phase position as shown in Fig. 31. Longitudinal separation is provided by the different starting tether lengths: 350 m for kite 1 and 300 m for kite 2. The resulting trajectories in Fig. 33 show successful synchronisation after 35 s, or just under three loops. Once the phase gap is closed, the second kite remains in sync for the rest of the reel-out cycle.</p>

      <fig id="F33" specific-use="star"><label>Figure 33</label><caption><p id="d2e5676">Simulation result of the phase synchronisation controller.</p></caption>
          <graphic xlink:href="https://wes.copernicus.org/articles/11/2987/2026/wes-11-2987-2026-f33.png"/>

        </fig>

</sec>
<sec id="Ch1.S6.SS3">
  <label>6.3</label><title>Figure-of-eight flight pattern</title>
      <p id="d2e5693">The proposed control framework can be adapted to fly figure-of-eight (henceforth abbreviated to “F8”) patterns using a proportional feedback law. Although this method cannot provide non-symmetric flight capabilities as seen in circular-flight analysis (i.e. sideway and diagonal reel out), it is sufficient as a demonstrator for rapid simulator development and verification. Consider a generic F8 pattern as shown in Fig. 34a. The production plane location is now shifted to the winch at the origin with the elevation and azimuth angles <inline-formula><mml:math id="M346" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">λ</mml:mi><mml:mi mathvariant="normal">P</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M347" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ζ</mml:mi><mml:mi mathvariant="normal">P</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> set to zero. In this configuration, the axis <inline-formula><mml:math id="M348" display="inline"><mml:mrow><mml:msub><mml:mi>Z</mml:mi><mml:mi mathvariant="normal">P</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> points in the opposite direction of the wind. Using the same definition of angular phase <inline-formula><mml:math id="M349" display="inline"><mml:mi mathvariant="normal">Ω</mml:mi></mml:math></inline-formula> from Eq. (6), we have the evolution of <inline-formula><mml:math id="M350" display="inline"><mml:mi mathvariant="normal">Ω</mml:mi></mml:math></inline-formula> over two F8 cycles as shown in Fig. 34b. This evolution resembles the amount of roll on the production plane required to fly an F8 path. Near the centre of lemniscate (point A), this roll angle crosses zero, reaching its peak positive and negative values at C or B (depending on whether an eight-up or eight-down pattern is flown). The phase angle <inline-formula><mml:math id="M351" display="inline"><mml:mi mathvariant="normal">Ω</mml:mi></mml:math></inline-formula> can therefore be used as the feedback signal to change the reference plane roll angle set point using a proportional control law with gain <inline-formula><mml:math id="M352" display="inline"><mml:mrow><mml:msub><mml:mi>K</mml:mi><mml:mn mathvariant="normal">8</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula>

            <disp-formula id="Ch1.E17" content-type="numbered"><label>17</label><mml:math id="M353" display="block"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ϕ</mml:mi><mml:mrow><mml:msub><mml:mi>R</mml:mi><mml:mi mathvariant="normal">SP</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mspace width="0.125em" linebreak="nobreak"/><mml:mfenced close="]" open="["><mml:mi mathvariant="normal">deg</mml:mi></mml:mfenced><mml:mo>=</mml:mo><mml:msub><mml:mi>K</mml:mi><mml:mn mathvariant="normal">8</mml:mn></mml:msub><mml:mi mathvariant="normal">Ω</mml:mi><mml:mspace linebreak="nobreak" width="0.125em"/><mml:mo>[</mml:mo><mml:mi mathvariant="normal">deg</mml:mi><mml:mo>]</mml:mo><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>

          where the sign of the proportional gain <inline-formula><mml:math id="M354" display="inline"><mml:mrow><mml:msub><mml:mi>K</mml:mi><mml:mn mathvariant="normal">8</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> determines if the trajectory is eight-up or eight-down. Setting a larger magnitude for <inline-formula><mml:math id="M355" display="inline"><mml:mrow><mml:msub><mml:mi>K</mml:mi><mml:mn mathvariant="normal">8</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> means a tighter turn when the kite reaches the edge of the lemniscate, resulting in a narrower F8 trajectory. The aileron control law requires a minor modification:

            <disp-formula id="Ch1.E18" content-type="numbered"><label>18</label><mml:math id="M356" display="block"><mml:mrow><mml:msub><mml:mi mathvariant="italic">δ</mml:mi><mml:mrow><mml:msub><mml:mi mathvariant="normal">a</mml:mi><mml:mi mathvariant="normal">SP</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mi mathvariant="normal">PI</mml:mi><mml:mfenced close=")" open="("><mml:mrow><mml:msub><mml:mi mathvariant="italic">ϕ</mml:mi><mml:mrow><mml:msub><mml:mi mathvariant="normal">R</mml:mi><mml:mi mathvariant="normal">SP</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi mathvariant="italic">ϕ</mml:mi><mml:mi mathvariant="normal">R</mml:mi></mml:msub></mml:mrow></mml:mfenced><mml:mo>+</mml:mo><mml:msub><mml:mi>K</mml:mi><mml:mi mathvariant="normal">r</mml:mi></mml:msub><mml:msub><mml:mi mathvariant="italic">θ</mml:mi><mml:mi mathvariant="normal">r</mml:mi></mml:msub><mml:msub><mml:mi>K</mml:mi><mml:mi mathvariant="normal">s</mml:mi></mml:msub><mml:msub><mml:mi mathvariant="italic">ϕ</mml:mi><mml:mrow><mml:msub><mml:mi mathvariant="normal">R</mml:mi><mml:mi mathvariant="normal">SP</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>

          noting that the roll stiffness term is now multiplied by a factor <inline-formula><mml:math id="M357" display="inline"><mml:mrow><mml:msub><mml:mi>K</mml:mi><mml:mi mathvariant="normal">s</mml:mi></mml:msub><mml:msub><mml:mi mathvariant="italic">ϕ</mml:mi><mml:mrow><mml:msub><mml:mi mathvariant="normal">R</mml:mi><mml:mi mathvariant="normal">SP</mml:mi></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>, with <inline-formula><mml:math id="M358" display="inline"><mml:mrow><mml:msub><mml:mi>K</mml:mi><mml:mi mathvariant="normal">s</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> being another proportional gain. This addition accommodates the fact that the roll stiffness gain <inline-formula><mml:math id="M359" display="inline"><mml:mrow><mml:msub><mml:mi>K</mml:mi><mml:mi mathvariant="normal">r</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> must change sign depending on which side of the lemniscate the kite is flying on. Because <inline-formula><mml:math id="M360" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ϕ</mml:mi><mml:mrow><mml:msub><mml:mi mathvariant="normal">R</mml:mi><mml:mi mathvariant="normal">SP</mml:mi></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> has a smooth zero crossing near centre of the lemniscate, this signal can be used to indicate sign change after appropriate scaling by <inline-formula><mml:math id="M361" display="inline"><mml:mrow><mml:msub><mml:mi>K</mml:mi><mml:mi mathvariant="normal">s</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> to keep the peak magnitude of <inline-formula><mml:math id="M362" display="inline"><mml:mrow><mml:msub><mml:mi>K</mml:mi><mml:mi mathvariant="normal">s</mml:mi></mml:msub><mml:msub><mml:mi mathvariant="italic">ϕ</mml:mi><mml:mrow><mml:msub><mml:mi mathvariant="normal">R</mml:mi><mml:mi mathvariant="normal">SP</mml:mi></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> close to 1. In all subsequent results, <inline-formula><mml:math id="M363" display="inline"><mml:mrow><mml:msub><mml:mi>K</mml:mi><mml:mi mathvariant="normal">s</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> is fixed at <inline-formula><mml:math id="M364" display="inline"><mml:mo>-</mml:mo></mml:math></inline-formula>0.05. Figure 35 shows the block diagram of the F8 controller. The only user input available (beyond control gains) is the reference plane elevation angle <inline-formula><mml:math id="M365" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">λ</mml:mi><mml:mi mathvariant="normal">R</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>. All other guidance parameters must be set to zero to avoid instability caused by the limited steering capability of the proportional control law, which requires symmetry in the lemniscate to function properly.</p>

      <fig id="F34"><label>Figure 34</label><caption><p id="d2e6007">A generic figure-of-eight pattern <bold>(a)</bold> and evolution of the phase angle over two cycles <bold>(b)</bold>.</p></caption>
          <graphic xlink:href="https://wes.copernicus.org/articles/11/2987/2026/wes-11-2987-2026-f34.png"/>

        </fig>

      <fig id="F35" specific-use="star"><label>Figure 35</label><caption><p id="d2e6024">Block diagram of the figure-of-eight flight controller for aileron. Note that the elevator and rudder loops remain unchanged.</p></caption>
          <graphic xlink:href="https://wes.copernicus.org/articles/11/2987/2026/wes-11-2987-2026-f35.png"/>

        </fig>

      <p id="d2e6034">The controller's performance is now assessed. Figure 36 shows a few F8 patterns with positive and negative gains. As discussed, the lemniscate's width can be reduced by increasing <inline-formula><mml:math id="M366" display="inline"><mml:mrow><mml:msub><mml:mi>K</mml:mi><mml:mn mathvariant="normal">8</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> magnitude. To fly at a higher elevation, <inline-formula><mml:math id="M367" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">λ</mml:mi><mml:mi mathvariant="normal">R</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> should be increased as shown in Fig. 37.</p>

      <fig id="F36"><label>Figure 36</label><caption><p id="d2e6061">Eight-up <bold>(a)</bold> and eight-down <bold>(b)</bold> trajectories at <inline-formula><mml:math id="M368" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">λ</mml:mi><mml:mi mathvariant="normal">R</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">25</mml:mn><mml:mi mathvariant="italic">°</mml:mi></mml:mrow></mml:math></inline-formula> with different control gains.</p></caption>
          <graphic xlink:href="https://wes.copernicus.org/articles/11/2987/2026/wes-11-2987-2026-f36.png"/>

        </fig>

      <fig id="F37"><label>Figure 37</label><caption><p id="d2e6095">Effect of changing <inline-formula><mml:math id="M369" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">λ</mml:mi><mml:mi mathvariant="normal">R</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>.</p></caption>
          <graphic xlink:href="https://wes.copernicus.org/articles/11/2987/2026/wes-11-2987-2026-f37.png"/>

        </fig>

      <p id="d2e6115">An F8 pattern can be considered to be two small circles on each side joined at the centre of the lemniscate. Each side-circle's radius is smaller than typical values for circular reel out. As a result, the angle of attack and sideslip variation can be large, although the former can be alleviated using the <inline-formula><mml:math id="M370" display="inline"><mml:mi mathvariant="italic">α</mml:mi></mml:math></inline-formula>-suppression controller in Eq. (15). Figure 38 demonstrate the controller's effectiveness in keeping <inline-formula><mml:math id="M371" display="inline"><mml:mi mathvariant="italic">α</mml:mi></mml:math></inline-formula> close to its 6° set point throughout a typical F8 reel-out cycle. This result confirms that the <inline-formula><mml:math id="M372" display="inline"><mml:mi mathvariant="italic">α</mml:mi></mml:math></inline-formula>-suppression controller can be used on both circular and figure-of-eight flight.</p>

      <fig id="F38"><label>Figure 38</label><caption><p id="d2e6142">Eight-down reel out without and with <inline-formula><mml:math id="M373" display="inline"><mml:mi mathvariant="italic">α</mml:mi></mml:math></inline-formula>-suppression control.</p></caption>
          <graphic xlink:href="https://wes.copernicus.org/articles/11/2987/2026/wes-11-2987-2026-f38.png"/>

        </fig>

</sec>
</sec>
<sec id="Ch1.S7" sec-type="conclusions">
  <label>7</label><title>Conclusions</title>
      <p id="d2e6167">This paper has shown that by relaxing the path-following requirement, a simple proportional-integral feedback system can provide accurate flight control during circular-pattern reel out. The key enabling idea is in tracking the roll angle on a non-static reference frame. In its simplest form, the controller achieves accurate path following using only ailerons while requiring no air data from a pitot tube. This capability could enable rapid control law development and testing of new AWES prototypes. Future improvements can implement more advanced controllers, such as nonlinear dynamic inversion, for the same roll-angle tracking idea but with higher performance. Additionally, recognising that AWES are self-oscillating systems opens up a new class of nonlinear controllers with great potential for the sector. An example of leveraging the inherent limit cycle property to improve performance is provided in the extension to the pitch control loop. By adding a proportional pitch angle feedback term to the elevator, angle-of-attack oscillation can be significantly reduced. Doing so enables the kite to spend more time in its optimal aerodynamic condition and results in more power. Lastly, an additional PI loop that adjusts circular flight radius provides indirect control of the kite's angular velocity. This property can be exploited to enable phase-synchronisation of multiple kites in a farm configuration. The proportional-integral architecture also positions the controller as a suitable baseline system for benchmarking more advanced control laws. All of the above developments contribute to making AWES safer and more efficient, thereby bringing them one step closer to commercial use. </p>
</sec>

      
      </body>
    <back><app-group>

<app id="App1.Ch1.S1">
  <label>Appendix A</label><title>Earth-to-reference-plane transformation</title>
      <p id="d2e6182">The Euler roll, pitch, and yaw angles on the reference plane [<inline-formula><mml:math id="M374" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ϕ</mml:mi><mml:mi mathvariant="normal">R</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M375" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">θ</mml:mi><mml:mi mathvariant="normal">R</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M376" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ψ</mml:mi><mml:mi mathvariant="normal">R</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>] are obtained from their Earth-axis counterparts [<inline-formula><mml:math id="M377" display="inline"><mml:mi mathvariant="italic">ϕ</mml:mi></mml:math></inline-formula>, <inline-formula><mml:math id="M378" display="inline"><mml:mi mathvariant="italic">θ</mml:mi></mml:math></inline-formula>, <inline-formula><mml:math id="M379" display="inline"><mml:mi mathvariant="italic">ψ</mml:mi></mml:math></inline-formula>] and the reference plane's elevation and azimuth angles [<inline-formula><mml:math id="M380" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">λ</mml:mi><mml:mi mathvariant="normal">R</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M381" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ζ</mml:mi><mml:mi mathvariant="normal">R</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>]. This procedure is outlined in Eqs. (A1)–(A7). Subscripts E, B, and R  denote Earth, body, and reference frames, respectively.

              <disp-formula specific-use="gather" content-type="numbered"><mml:math id="M382" display="block"><mml:mtable displaystyle="true"><mml:mlabeledtr id="App1.Ch1.S1.E19"><mml:mtd><mml:mtext>A1</mml:mtext></mml:mtd><mml:mtd><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:mtable class="split" rowspacing="0.2ex" displaystyle="true" columnalign="right left"><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi mathvariant="bold">q</mml:mi><mml:mi mathvariant="normal">EB</mml:mi></mml:msub></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mo>=</mml:mo><mml:mfenced close="]" open="["><mml:mtable class="array" columnalign="left"><mml:mtr><mml:mtd><mml:mrow><mml:mi mathvariant="normal">cos</mml:mi><mml:mfenced open="(" close=")"><mml:mrow><mml:mi mathvariant="italic">ψ</mml:mi><mml:mo>/</mml:mo><mml:mn mathvariant="normal">2</mml:mn></mml:mrow></mml:mfenced></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:mi>sin⁡</mml:mi><mml:mfenced close=")" open="("><mml:mrow><mml:mi mathvariant="italic">ψ</mml:mi><mml:mo>/</mml:mo><mml:mn mathvariant="normal">2</mml:mn></mml:mrow></mml:mfenced></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mfenced><mml:mo>⊗</mml:mo><mml:mfenced open="[" close="]"><mml:mtable class="array" columnalign="left"><mml:mtr><mml:mtd><mml:mrow><mml:mi>cos⁡</mml:mi><mml:mfenced close=")" open="("><mml:mrow><mml:mi mathvariant="italic">θ</mml:mi><mml:mo>/</mml:mo><mml:mn mathvariant="normal">2</mml:mn></mml:mrow></mml:mfenced></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:mi>sin⁡</mml:mi><mml:mfenced close=")" open="("><mml:mrow><mml:mi mathvariant="italic">θ</mml:mi><mml:mo>/</mml:mo><mml:mn mathvariant="normal">2</mml:mn></mml:mrow></mml:mfenced></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd></mml:mtr></mml:mtable></mml:mfenced></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:mo>⊗</mml:mo><mml:mfenced open="[" close="]"><mml:mtable class="array" columnalign="left"><mml:mtr><mml:mtd><mml:mrow><mml:mi mathvariant="normal">cos</mml:mi><mml:mfenced open="(" close=")"><mml:mrow><mml:mi mathvariant="italic">ϕ</mml:mi><mml:mo>/</mml:mo><mml:mn mathvariant="normal">2</mml:mn></mml:mrow></mml:mfenced></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:mi mathvariant="normal">sin</mml:mi><mml:mfenced close=")" open="("><mml:mrow><mml:mi mathvariant="italic">ϕ</mml:mi><mml:mo>/</mml:mo><mml:mn mathvariant="normal">2</mml:mn></mml:mrow></mml:mfenced></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd></mml:mtr></mml:mtable></mml:mfenced><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow></mml:mtd></mml:mlabeledtr><mml:mlabeledtr id="App1.Ch1.S1.E20"><mml:mtd><mml:mtext>A2</mml:mtext></mml:mtd><mml:mtd><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:mtable class="split" rowspacing="0.2ex" displaystyle="true" columnalign="right left"><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi mathvariant="bold">q</mml:mi><mml:mi mathvariant="normal">ER</mml:mi></mml:msub></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mo>=</mml:mo><mml:mfenced open="[" close="]"><mml:mtable class="array" columnalign="left"><mml:mtr><mml:mtd><mml:mrow><mml:mi>cos⁡</mml:mi><mml:mfenced close=")" open="("><mml:mrow><mml:msub><mml:mi mathvariant="italic">ζ</mml:mi><mml:mi mathvariant="normal">R</mml:mi></mml:msub><mml:mo>/</mml:mo><mml:mn mathvariant="normal">2</mml:mn></mml:mrow></mml:mfenced></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:mi>sin⁡</mml:mi><mml:mspace width="0.125em" linebreak="nobreak"/><mml:mfenced open="(" close=")"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ζ</mml:mi><mml:mi mathvariant="normal">R</mml:mi></mml:msub><mml:mo>/</mml:mo><mml:mn mathvariant="normal">2</mml:mn></mml:mrow></mml:mfenced></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mfenced><mml:mo>⊗</mml:mo><mml:mfenced close="]" open="["><mml:mtable class="array" columnalign="left"><mml:mtr><mml:mtd><mml:mrow><mml:mi>cos⁡</mml:mi><mml:mspace width="0.125em" linebreak="nobreak"/><mml:mfenced open="(" close=")"><mml:mrow><mml:mfenced open="(" close=")"><mml:mrow><mml:msub><mml:mi mathvariant="italic">λ</mml:mi><mml:mi mathvariant="normal">R</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:mn mathvariant="normal">90</mml:mn><mml:mi mathvariant="italic">°</mml:mi></mml:mrow></mml:mfenced><mml:mo>/</mml:mo><mml:mn mathvariant="normal">2</mml:mn></mml:mrow></mml:mfenced></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:mi>sin⁡</mml:mi><mml:mspace linebreak="nobreak" width="0.125em"/><mml:mfenced open="(" close=")"><mml:mrow><mml:mfenced close=")" open="("><mml:mrow><mml:msub><mml:mi mathvariant="italic">λ</mml:mi><mml:mi mathvariant="normal">R</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:mn mathvariant="normal">90</mml:mn><mml:mi mathvariant="italic">°</mml:mi></mml:mrow></mml:mfenced><mml:mo>/</mml:mo><mml:mn mathvariant="normal">2</mml:mn></mml:mrow></mml:mfenced></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd></mml:mtr></mml:mtable></mml:mfenced></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:mo>⊗</mml:mo><mml:mfenced open="[" close="]"><mml:mtable class="array" columnalign="left"><mml:mtr><mml:mtd><mml:mrow><mml:mi mathvariant="normal">cos</mml:mi><mml:mfenced open="(" close=")"><mml:mrow><mml:mn mathvariant="normal">180</mml:mn><mml:mi mathvariant="italic">°</mml:mi><mml:mo>/</mml:mo><mml:mn mathvariant="normal">2</mml:mn></mml:mrow></mml:mfenced></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:mi mathvariant="normal">sin</mml:mi><mml:mfenced close=")" open="("><mml:mrow><mml:mn mathvariant="normal">180</mml:mn><mml:mi mathvariant="italic">°</mml:mi><mml:mo>/</mml:mo><mml:mn mathvariant="normal">2</mml:mn></mml:mrow></mml:mfenced></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd></mml:mtr></mml:mtable></mml:mfenced><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow></mml:mtd></mml:mlabeledtr><mml:mlabeledtr id="App1.Ch1.S1.E21"><mml:mtd><mml:mtext>A3</mml:mtext></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:msub><mml:mi mathvariant="bold">q</mml:mi><mml:mi mathvariant="normal">BR</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:msubsup><mml:mi mathvariant="bold">q</mml:mi><mml:mi mathvariant="normal">EB</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msubsup><mml:mspace width="0.125em" linebreak="nobreak"/><mml:mo>⊗</mml:mo><mml:mspace width="0.125em" linebreak="nobreak"/><mml:msub><mml:mi mathvariant="bold">q</mml:mi><mml:mi mathvariant="normal">ER</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mfenced open="[" close="]"><mml:mtable class="array" columnalign="left"><mml:mtr><mml:mtd><mml:mi mathvariant="italic">η</mml:mi></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi mathvariant="italic">ϵ</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi mathvariant="italic">ϵ</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi mathvariant="italic">ϵ</mml:mi><mml:mn mathvariant="normal">3</mml:mn></mml:msub></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mfenced><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mlabeledtr></mml:mtable></mml:math></disp-formula>

        where <inline-formula><mml:math id="M383" display="inline"><mml:mi mathvariant="italic">η</mml:mi></mml:math></inline-formula>, <inline-formula><mml:math id="M384" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ϵ</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M385" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ϵ</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula>, and <inline-formula><mml:math id="M386" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ϵ</mml:mi><mml:mn mathvariant="normal">3</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> are the four elements in the 4 <inline-formula><mml:math id="M387" display="inline"><mml:mo>×</mml:mo></mml:math></inline-formula> 1 matrix <inline-formula><mml:math id="M388" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold">q</mml:mi><mml:mi mathvariant="normal">BR</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>. This gives a direction cosine matrix <inline-formula><mml:math id="M389" display="inline"><mml:mrow><mml:msubsup><mml:mi mathvariant="bold">R</mml:mi><mml:mi mathvariant="normal">R</mml:mi><mml:mi mathvariant="normal">B</mml:mi></mml:msubsup></mml:mrow></mml:math></inline-formula> of dimension 3 by 3

          <disp-formula id="App1.Ch1.S1.E22" content-type="numbered"><label>A4</label><mml:math id="M390" display="block"><mml:mrow><mml:msubsup><mml:mi mathvariant="bold">R</mml:mi><mml:mi mathvariant="normal">R</mml:mi><mml:mi mathvariant="normal">B</mml:mi></mml:msubsup><mml:mo>=</mml:mo><mml:mi mathvariant="bold">I</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">2</mml:mn><mml:mi mathvariant="italic">η</mml:mi><mml:mi>S</mml:mi><mml:mfenced open="(" close=")"><mml:mi mathvariant="bold-italic">ϵ</mml:mi></mml:mfenced><mml:mo>+</mml:mo><mml:mn mathvariant="normal">2</mml:mn><mml:mi>S</mml:mi><mml:mfenced close=")" open="("><mml:mi mathvariant="bold-italic">ϵ</mml:mi></mml:mfenced><mml:mi>S</mml:mi><mml:mfenced close=")" open="("><mml:mi mathvariant="bold-italic">ϵ</mml:mi></mml:mfenced><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>

        where <inline-formula><mml:math id="M391" display="inline"><mml:mrow><mml:mi mathvariant="bold-italic">ϵ</mml:mi><mml:mo>=</mml:mo><mml:mfenced open="[" close="]"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ϵ</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi mathvariant="italic">ϵ</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi mathvariant="italic">ϵ</mml:mi><mml:mn mathvariant="normal">3</mml:mn></mml:msub></mml:mrow></mml:mfenced></mml:mrow></mml:math></inline-formula> are the non-zero elements in the skew-symmetric matrix: <inline-formula><mml:math id="M392" display="inline"><mml:mrow><mml:mi>S</mml:mi><mml:mo>(</mml:mo><mml:mi mathvariant="italic">ϵ</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula>

          <disp-formula id="App1.Ch1.S1.E23" content-type="numbered"><label>A5</label><mml:math id="M393" display="block"><mml:mrow><mml:mi>S</mml:mi><mml:mfenced open="(" close=")"><mml:mi mathvariant="bold-italic">ϵ</mml:mi></mml:mfenced><mml:mo>=</mml:mo><mml:mfenced open="[" close="]"><mml:mtable class="array" columnalign="left left left"><mml:mtr><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd><mml:mtd><mml:mrow><mml:mo>-</mml:mo><mml:msub><mml:mi mathvariant="italic">ϵ</mml:mi><mml:mn mathvariant="normal">3</mml:mn></mml:msub></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:msub><mml:mi mathvariant="italic">ϵ</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi mathvariant="italic">ϵ</mml:mi><mml:mn mathvariant="normal">3</mml:mn></mml:msub></mml:mrow></mml:mtd><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd><mml:mtd><mml:mrow><mml:mo>-</mml:mo><mml:msub><mml:mi mathvariant="italic">ϵ</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:mo>-</mml:mo><mml:msub><mml:mi mathvariant="italic">ϵ</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:msub><mml:mi mathvariant="italic">ϵ</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub></mml:mrow></mml:mtd><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd></mml:mtr></mml:mtable></mml:mfenced><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula>

        Substitute Eq. (A5) into Eq. (A4) and expand

          <disp-formula id="App1.Ch1.S1.E24" content-type="numbered"><label>A6</label><mml:math id="M394" display="block"><mml:mrow><mml:mtable rowspacing="0.2ex" class="split" displaystyle="true" columnalign="right left"><mml:mtr><mml:mtd><mml:mrow><mml:msubsup><mml:mi mathvariant="bold">R</mml:mi><mml:mi mathvariant="normal">R</mml:mi><mml:mi mathvariant="normal">B</mml:mi></mml:msubsup></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mo>=</mml:mo><mml:mfenced open="[" close="]"><mml:mtable class="array" columnalign="left left left"><mml:mtr><mml:mtd><mml:mrow><mml:msubsup><mml:mi>R</mml:mi><mml:mrow><mml:mi mathvariant="normal">R</mml:mi><mml:mo>,</mml:mo><mml:mn mathvariant="normal">11</mml:mn></mml:mrow><mml:mi mathvariant="normal">B</mml:mi></mml:msubsup></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:msubsup><mml:mi>R</mml:mi><mml:mrow><mml:mi mathvariant="normal">R</mml:mi><mml:mo>,</mml:mo><mml:mn mathvariant="normal">12</mml:mn></mml:mrow><mml:mi mathvariant="normal">B</mml:mi></mml:msubsup></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:msubsup><mml:mi>R</mml:mi><mml:mrow><mml:mi mathvariant="normal">R</mml:mi><mml:mo>,</mml:mo><mml:mn mathvariant="normal">13</mml:mn></mml:mrow><mml:mi mathvariant="normal">B</mml:mi></mml:msubsup></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:msubsup><mml:mi>R</mml:mi><mml:mrow><mml:mi mathvariant="normal">R</mml:mi><mml:mo>,</mml:mo><mml:mn mathvariant="normal">21</mml:mn></mml:mrow><mml:mi mathvariant="normal">B</mml:mi></mml:msubsup></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:msubsup><mml:mi>R</mml:mi><mml:mrow><mml:mi mathvariant="normal">R</mml:mi><mml:mo>,</mml:mo><mml:mn mathvariant="normal">22</mml:mn></mml:mrow><mml:mi mathvariant="normal">B</mml:mi></mml:msubsup></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:msubsup><mml:mi>R</mml:mi><mml:mrow><mml:mi mathvariant="normal">R</mml:mi><mml:mo>,</mml:mo><mml:mn mathvariant="normal">23</mml:mn></mml:mrow><mml:mi mathvariant="normal">B</mml:mi></mml:msubsup></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:msubsup><mml:mi>R</mml:mi><mml:mrow><mml:mi mathvariant="normal">R</mml:mi><mml:mo>,</mml:mo><mml:mn mathvariant="normal">31</mml:mn></mml:mrow><mml:mi mathvariant="normal">B</mml:mi></mml:msubsup></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:msubsup><mml:mi>R</mml:mi><mml:mrow><mml:mi mathvariant="normal">R</mml:mi><mml:mo>,</mml:mo><mml:mn mathvariant="normal">32</mml:mn></mml:mrow><mml:mi mathvariant="normal">B</mml:mi></mml:msubsup></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:msubsup><mml:mi>R</mml:mi><mml:mrow><mml:mi mathvariant="normal">R</mml:mi><mml:mo>,</mml:mo><mml:mn mathvariant="normal">33</mml:mn></mml:mrow><mml:mi mathvariant="normal">B</mml:mi></mml:msubsup></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mfenced></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:mo>=</mml:mo><mml:mfenced close="]" open="["><mml:mtable class="array" columnalign="left left left"><mml:mtr><mml:mtd><mml:mrow><mml:mn mathvariant="normal">1</mml:mn><mml:mo>-</mml:mo><mml:mn mathvariant="normal">2</mml:mn><mml:mo>(</mml:mo><mml:msubsup><mml:mi mathvariant="italic">ϵ</mml:mi><mml:mn mathvariant="normal">2</mml:mn><mml:mn mathvariant="normal">2</mml:mn></mml:msubsup><mml:mo>+</mml:mo><mml:msubsup><mml:mi mathvariant="italic">ϵ</mml:mi><mml:mn mathvariant="normal">3</mml:mn><mml:mn mathvariant="normal">2</mml:mn></mml:msubsup><mml:mo>)</mml:mo></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:mo>(</mml:mo><mml:msub><mml:mi mathvariant="italic">ϵ</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub><mml:msub><mml:mi mathvariant="italic">ϵ</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:mo>-</mml:mo><mml:mi mathvariant="italic">η</mml:mi><mml:msub><mml:mi mathvariant="italic">ϵ</mml:mi><mml:mn mathvariant="normal">3</mml:mn></mml:msub><mml:mo>)</mml:mo></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:mo>(</mml:mo><mml:msub><mml:mi mathvariant="italic">ϵ</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub><mml:msub><mml:mi mathvariant="italic">ϵ</mml:mi><mml:mn mathvariant="normal">3</mml:mn></mml:msub><mml:mo>+</mml:mo><mml:mi mathvariant="italic">η</mml:mi><mml:msub><mml:mi mathvariant="italic">ϵ</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:mo>)</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:mo>(</mml:mo><mml:msub><mml:mi mathvariant="italic">ϵ</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub><mml:msub><mml:mi mathvariant="italic">ϵ</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:mo>+</mml:mo><mml:mi mathvariant="italic">η</mml:mi><mml:msub><mml:mi mathvariant="italic">ϵ</mml:mi><mml:mn mathvariant="normal">3</mml:mn></mml:msub><mml:mo>)</mml:mo></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mn mathvariant="normal">1</mml:mn><mml:mo>-</mml:mo><mml:mn mathvariant="normal">2</mml:mn><mml:mo>(</mml:mo><mml:msubsup><mml:mi mathvariant="italic">ϵ</mml:mi><mml:mn mathvariant="normal">1</mml:mn><mml:mn mathvariant="normal">2</mml:mn></mml:msubsup><mml:mo>+</mml:mo><mml:msubsup><mml:mi mathvariant="italic">ϵ</mml:mi><mml:mn mathvariant="normal">3</mml:mn><mml:mn mathvariant="normal">2</mml:mn></mml:msubsup><mml:mo>)</mml:mo></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:mo>(</mml:mo><mml:msub><mml:mi mathvariant="italic">ϵ</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:msub><mml:mi mathvariant="italic">ϵ</mml:mi><mml:mn mathvariant="normal">3</mml:mn></mml:msub><mml:mo>-</mml:mo><mml:mi mathvariant="italic">η</mml:mi><mml:msub><mml:mi mathvariant="italic">ϵ</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub><mml:mo>)</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:mo>(</mml:mo><mml:msub><mml:mi mathvariant="italic">ϵ</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub><mml:msub><mml:mi mathvariant="italic">ϵ</mml:mi><mml:mn mathvariant="normal">3</mml:mn></mml:msub><mml:mo>-</mml:mo><mml:mi mathvariant="italic">η</mml:mi><mml:msub><mml:mi mathvariant="italic">ϵ</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:mo>)</mml:mo></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:mo>(</mml:mo><mml:msub><mml:mi mathvariant="italic">ϵ</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:msub><mml:mi mathvariant="italic">ϵ</mml:mi><mml:mn mathvariant="normal">3</mml:mn></mml:msub><mml:mo>+</mml:mo><mml:mi mathvariant="italic">η</mml:mi><mml:msub><mml:mi mathvariant="italic">ϵ</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub><mml:mo>)</mml:mo></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mn mathvariant="normal">1</mml:mn><mml:mo>-</mml:mo><mml:mn mathvariant="normal">2</mml:mn><mml:mo>(</mml:mo><mml:msubsup><mml:mi mathvariant="italic">ϵ</mml:mi><mml:mn mathvariant="normal">1</mml:mn><mml:mn mathvariant="normal">2</mml:mn></mml:msubsup><mml:mo>+</mml:mo><mml:msubsup><mml:mi mathvariant="italic">ϵ</mml:mi><mml:mn mathvariant="normal">2</mml:mn><mml:mn mathvariant="normal">2</mml:mn></mml:msubsup><mml:mo>)</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mfenced><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow></mml:math></disp-formula>

        which is based on Eq. (6.215) in Egeland and Gravdahl (2003) but with <inline-formula><mml:math id="M395" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="italic">η</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msup></mml:mrow></mml:math></inline-formula> replaced by <inline-formula><mml:math id="M396" display="inline"><mml:mrow><mml:mn mathvariant="normal">1</mml:mn><mml:mo>-</mml:mo><mml:msubsup><mml:mi mathvariant="italic">ϵ</mml:mi><mml:mn mathvariant="normal">1</mml:mn><mml:mn mathvariant="normal">2</mml:mn></mml:msubsup><mml:mo>-</mml:mo><mml:msubsup><mml:mi mathvariant="italic">ϵ</mml:mi><mml:mn mathvariant="normal">2</mml:mn><mml:mn mathvariant="normal">2</mml:mn></mml:msubsup><mml:mo>-</mml:mo><mml:msubsup><mml:mi mathvariant="italic">ϵ</mml:mi><mml:mn mathvariant="normal">3</mml:mn><mml:mn mathvariant="normal">2</mml:mn></mml:msubsup></mml:mrow></mml:math></inline-formula>. From here, the reference-plane Euler angles can be obtained:

          <disp-formula id="App1.Ch1.S1.E25" content-type="numbered"><label>A7</label><mml:math id="M397" display="block"><mml:mrow><mml:mtable rowspacing="0.2ex" class="split" displaystyle="true" columnalign="right left"><mml:mtr><mml:mtd><mml:mrow><mml:mfenced open="[" close="]"><mml:mtable class="array" columnalign="left"><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi mathvariant="italic">ϕ</mml:mi><mml:mi mathvariant="normal">R</mml:mi></mml:msub></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi mathvariant="italic">θ</mml:mi><mml:mi mathvariant="normal">R</mml:mi></mml:msub></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi mathvariant="italic">ψ</mml:mi><mml:mi mathvariant="normal">r</mml:mi></mml:msub></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mfenced></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mo>=</mml:mo><mml:mfenced close="]" open="["><mml:mtable class="array" columnalign="left"><mml:mtr><mml:mtd><mml:mrow><mml:mi mathvariant="normal">atan</mml:mi><mml:mn mathvariant="normal">2</mml:mn><mml:mfenced open="(" close=")"><mml:mrow><mml:msubsup><mml:mi>R</mml:mi><mml:mrow><mml:mi mathvariant="normal">R</mml:mi><mml:mo>,</mml:mo><mml:mn mathvariant="normal">23</mml:mn></mml:mrow><mml:mi mathvariant="normal">B</mml:mi></mml:msubsup><mml:mspace width="0.125em" linebreak="nobreak"/><mml:mi mathvariant="normal">|</mml:mi><mml:mspace width="0.125em" linebreak="nobreak"/><mml:msubsup><mml:mi>R</mml:mi><mml:mrow><mml:mi mathvariant="normal">R</mml:mi><mml:mo>,</mml:mo><mml:mn mathvariant="normal">33</mml:mn></mml:mrow><mml:mi mathvariant="normal">B</mml:mi></mml:msubsup></mml:mrow></mml:mfenced></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:mo>-</mml:mo><mml:msup><mml:mi>sin⁡</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup><mml:mfenced close=")" open="("><mml:mrow><mml:msubsup><mml:mi>R</mml:mi><mml:mrow><mml:mi mathvariant="normal">R</mml:mi><mml:mo>,</mml:mo><mml:mn mathvariant="normal">13</mml:mn></mml:mrow><mml:mi mathvariant="normal">B</mml:mi></mml:msubsup></mml:mrow></mml:mfenced></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:mi mathvariant="normal">atan</mml:mi><mml:mn mathvariant="normal">2</mml:mn><mml:mfenced open="(" close=")"><mml:mrow><mml:msubsup><mml:mi>R</mml:mi><mml:mrow><mml:mi mathvariant="normal">R</mml:mi><mml:mo>,</mml:mo><mml:mn mathvariant="normal">12</mml:mn></mml:mrow><mml:mi mathvariant="normal">B</mml:mi></mml:msubsup><mml:mspace width="0.125em" linebreak="nobreak"/><mml:mi mathvariant="normal">|</mml:mi><mml:mspace linebreak="nobreak" width="0.125em"/><mml:msubsup><mml:mi>R</mml:mi><mml:mrow><mml:mi mathvariant="normal">R</mml:mi><mml:mo>,</mml:mo><mml:mn mathvariant="normal">11</mml:mn></mml:mrow><mml:mi mathvariant="normal">B</mml:mi></mml:msubsup></mml:mrow></mml:mfenced></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mfenced></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:mo>=</mml:mo><mml:mfenced close="]" open="["><mml:mtable class="array" columnalign="left"><mml:mtr><mml:mtd><mml:mrow><mml:mi mathvariant="normal">atan</mml:mi><mml:mn mathvariant="normal">2</mml:mn><mml:mfenced open="(" close=")"><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:mfenced close=")" open="("><mml:mrow><mml:msub><mml:mi mathvariant="italic">ϵ</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:msub><mml:mi mathvariant="italic">ϵ</mml:mi><mml:mn mathvariant="normal">3</mml:mn></mml:msub><mml:mo>-</mml:mo><mml:mi mathvariant="italic">η</mml:mi><mml:msub><mml:mi mathvariant="italic">ϵ</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub></mml:mrow></mml:mfenced><mml:mo>,</mml:mo><mml:mfenced open="(" close=")"><mml:mrow><mml:mn mathvariant="normal">1</mml:mn><mml:mo>-</mml:mo><mml:mn mathvariant="normal">2</mml:mn><mml:mfenced open="(" close=")"><mml:mrow><mml:msubsup><mml:mi mathvariant="italic">ϵ</mml:mi><mml:mn mathvariant="normal">1</mml:mn><mml:mn mathvariant="normal">2</mml:mn></mml:msubsup><mml:mo>+</mml:mo><mml:msubsup><mml:mi mathvariant="italic">ϵ</mml:mi><mml:mn mathvariant="normal">2</mml:mn><mml:mn mathvariant="normal">2</mml:mn></mml:msubsup></mml:mrow></mml:mfenced></mml:mrow></mml:mfenced></mml:mrow></mml:mfenced></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:mo>-</mml:mo><mml:msup><mml:mi mathvariant="normal">sin</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup><mml:mfenced open="(" close=")"><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:mfenced open="(" close=")"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ϵ</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub><mml:msub><mml:mi mathvariant="italic">ϵ</mml:mi><mml:mn mathvariant="normal">3</mml:mn></mml:msub><mml:mo>+</mml:mo><mml:mi mathvariant="italic">η</mml:mi><mml:msub><mml:mi mathvariant="italic">ϵ</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:mfenced></mml:mrow></mml:mfenced></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:mi mathvariant="normal">atan</mml:mi><mml:mn mathvariant="normal">2</mml:mn><mml:mfenced close=")" open="("><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:mfenced close=")" open="("><mml:mrow><mml:msub><mml:mi mathvariant="italic">ϵ</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub><mml:msub><mml:mi mathvariant="italic">ϵ</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:mo>-</mml:mo><mml:mi mathvariant="italic">η</mml:mi><mml:msub><mml:mi mathvariant="italic">ϵ</mml:mi><mml:mn mathvariant="normal">3</mml:mn></mml:msub></mml:mrow></mml:mfenced><mml:mo>,</mml:mo><mml:mfenced open="(" close=")"><mml:mrow><mml:mn mathvariant="normal">1</mml:mn><mml:mo>-</mml:mo><mml:mn mathvariant="normal">2</mml:mn><mml:mfenced open="(" close=")"><mml:mrow><mml:msubsup><mml:mi mathvariant="italic">ϵ</mml:mi><mml:mn mathvariant="normal">2</mml:mn><mml:mn mathvariant="normal">2</mml:mn></mml:msubsup><mml:mo>+</mml:mo><mml:msubsup><mml:mi mathvariant="italic">ϵ</mml:mi><mml:mn mathvariant="normal">3</mml:mn><mml:mn mathvariant="normal">2</mml:mn></mml:msubsup></mml:mrow></mml:mfenced></mml:mrow></mml:mfenced></mml:mrow></mml:mfenced></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mfenced><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow></mml:math></disp-formula>

        where <inline-formula><mml:math id="M398" display="inline"><mml:mrow><mml:mi mathvariant="normal">atan</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:mrow></mml:math></inline-formula> is the four-quadrant version of the arctangent function. The <inline-formula><mml:math id="M399" display="inline"><mml:mrow><mml:mi mathvariant="normal">atan</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:mrow></mml:math></inline-formula> function is available in most programming languages.</p>
</app>

<app id="App1.Ch1.S2">
  <label>Appendix B</label><title>Earth-to-production-plane transformation</title>
      <p id="d2e7687">The production plane <inline-formula><mml:math id="M400" display="inline"><mml:mi>P</mml:mi></mml:math></inline-formula> is defined by its origin, which has an Earth-axis coordinates [<inline-formula><mml:math id="M401" display="inline"><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mi>X</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M402" display="inline"><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mi>Y</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M403" display="inline"><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mi>Z</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>], elevation angle <inline-formula><mml:math id="M404" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">λ</mml:mi><mml:mi mathvariant="normal">P</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, and azimuth angle <inline-formula><mml:math id="M405" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ζ</mml:mi><mml:mi mathvariant="normal">P</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>. If the kite's position on the Earth axis is [<inline-formula><mml:math id="M406" display="inline"><mml:mi>X</mml:mi></mml:math></inline-formula>, <inline-formula><mml:math id="M407" display="inline"><mml:mi>Y</mml:mi></mml:math></inline-formula>, <inline-formula><mml:math id="M408" display="inline"><mml:mi>Z</mml:mi></mml:math></inline-formula>], its coordinates [<inline-formula><mml:math id="M409" display="inline"><mml:mrow><mml:msub><mml:mi>X</mml:mi><mml:mi mathvariant="normal">P</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M410" display="inline"><mml:mrow><mml:msub><mml:mi>Y</mml:mi><mml:mi mathvariant="normal">P</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M411" display="inline"><mml:mrow><mml:msub><mml:mi>Z</mml:mi><mml:mi mathvariant="normal">P</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>] on the production plane is found using Eqs. (B1)–(B3).

              <disp-formula specific-use="gather" content-type="numbered"><mml:math id="M412" display="block"><mml:mtable displaystyle="true"><mml:mlabeledtr id="App1.Ch1.S2.E26"><mml:mtd><mml:mtext>B1</mml:mtext></mml:mtd><mml:mtd><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:mtable class="split" rowspacing="0.2ex" displaystyle="true" columnalign="right left"><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi mathvariant="bold">q</mml:mi><mml:mi mathvariant="normal">EP</mml:mi></mml:msub></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mo>=</mml:mo><mml:mfenced close="]" open="["><mml:mtable class="array" columnalign="left"><mml:mtr><mml:mtd><mml:mrow><mml:mi>cos⁡</mml:mi><mml:mo>(</mml:mo><mml:msub><mml:mi mathvariant="italic">ζ</mml:mi><mml:mi mathvariant="normal">P</mml:mi></mml:msub><mml:mo>/</mml:mo><mml:mn mathvariant="normal">2</mml:mn><mml:mo>)</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:mi>sin⁡</mml:mi><mml:mo>(</mml:mo><mml:msub><mml:mi mathvariant="italic">ζ</mml:mi><mml:mi mathvariant="normal">P</mml:mi></mml:msub><mml:mo>/</mml:mo><mml:mn mathvariant="normal">2</mml:mn><mml:mo>)</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mfenced><mml:mo>⊗</mml:mo><mml:mfenced open="[" close="]"><mml:mtable class="array" columnalign="left"><mml:mtr><mml:mtd><mml:mrow><mml:mi>cos⁡</mml:mi><mml:mspace width="0.125em" linebreak="nobreak"/><mml:mfenced open="(" close=")"><mml:mrow><mml:mo>(</mml:mo><mml:msub><mml:mi mathvariant="italic">λ</mml:mi><mml:mi mathvariant="normal">P</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:mn mathvariant="normal">90</mml:mn><mml:mi mathvariant="italic">°</mml:mi><mml:mo>)</mml:mo><mml:mo>/</mml:mo><mml:mn mathvariant="normal">2</mml:mn><mml:mspace linebreak="nobreak" width="0.125em"/></mml:mrow></mml:mfenced></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:mi>sin⁡</mml:mi><mml:mspace width="0.125em" linebreak="nobreak"/><mml:mfenced open="(" close=")"><mml:mrow><mml:mo>(</mml:mo><mml:msub><mml:mi mathvariant="italic">λ</mml:mi><mml:mi mathvariant="normal">P</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:mn mathvariant="normal">90</mml:mn><mml:mi mathvariant="italic">°</mml:mi><mml:mo>)</mml:mo><mml:mo>/</mml:mo><mml:mn mathvariant="normal">2</mml:mn></mml:mrow></mml:mfenced></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd></mml:mtr></mml:mtable></mml:mfenced></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:mo>⊗</mml:mo><mml:mfenced close="]" open="["><mml:mtable class="array" columnalign="left"><mml:mtr><mml:mtd><mml:mrow><mml:mi>cos⁡</mml:mi><mml:mfenced close=")" open="("><mml:mrow><mml:mn mathvariant="normal">180</mml:mn><mml:mi mathvariant="italic">°</mml:mi><mml:mo>/</mml:mo><mml:mn mathvariant="normal">2</mml:mn></mml:mrow></mml:mfenced></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:mi>sin⁡</mml:mi><mml:mfenced close=")" open="("><mml:mrow><mml:mn mathvariant="normal">180</mml:mn><mml:mi mathvariant="italic">°</mml:mi><mml:mo>/</mml:mo><mml:mn mathvariant="normal">2</mml:mn></mml:mrow></mml:mfenced></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd></mml:mtr></mml:mtable></mml:mfenced></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow></mml:mtd></mml:mlabeledtr><mml:mlabeledtr id="App1.Ch1.S2.E27"><mml:mtd><mml:mtext>B2</mml:mtext></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:msubsup><mml:mi mathvariant="bold">R</mml:mi><mml:mi>E</mml:mi><mml:mi>P</mml:mi></mml:msubsup><mml:mo>=</mml:mo><mml:mi mathvariant="bold">R</mml:mi><mml:mo>(</mml:mo><mml:msubsup><mml:mi mathvariant="bold">q</mml:mi><mml:mi mathvariant="normal">EP</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msubsup><mml:mo>)</mml:mo></mml:mrow></mml:mtd></mml:mlabeledtr><mml:mlabeledtr id="App1.Ch1.S2.E28"><mml:mtd><mml:mtext>B3</mml:mtext></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:mfenced close="]" open="["><mml:mtable class="array" columnalign="left"><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi>X</mml:mi><mml:mi mathvariant="normal">P</mml:mi></mml:msub></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi>Y</mml:mi><mml:mi mathvariant="normal">P</mml:mi></mml:msub></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi>Z</mml:mi><mml:mi mathvariant="normal">P</mml:mi></mml:msub></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mfenced><mml:mo>=</mml:mo><mml:msubsup><mml:mi mathvariant="bold">R</mml:mi><mml:mi>E</mml:mi><mml:mi>P</mml:mi></mml:msubsup><mml:mfenced open="(" close=")"><mml:mrow><mml:mfenced open="[" close="]"><mml:mtable class="array" columnalign="left"><mml:mtr><mml:mtd><mml:mi>X</mml:mi></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mi>Y</mml:mi></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mi>Z</mml:mi></mml:mtd></mml:mtr></mml:mtable></mml:mfenced><mml:mo>-</mml:mo><mml:mfenced open="[" close="]"><mml:mtable class="array" columnalign="left"><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi>P</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>P</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>P</mml:mi><mml:mi>Z</mml:mi></mml:msub></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mfenced></mml:mrow></mml:mfenced></mml:mrow></mml:mtd></mml:mlabeledtr></mml:mtable></mml:math></disp-formula></p>
</app>

<app id="App1.Ch1.S3">
  <label>Appendix C</label><title>Stability proof of the angle-of-attack-oscillation suppression controller</title>
      <p id="d2e8118">The differential equation for angle of attack (Eq. 12) is reproduced below:

          <disp-formula id="App1.Ch1.S3.E29" content-type="numbered"><label>C1</label><mml:math id="M413" display="block"><mml:mrow><mml:mtable rowspacing="0.2ex" class="split" displaystyle="true" columnalign="right left"><mml:mtr><mml:mtd><mml:mrow><mml:mover accent="true"><mml:mi mathvariant="italic">α</mml:mi><mml:mo mathvariant="normal">˙</mml:mo></mml:mover></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mo>=</mml:mo><mml:mo>-</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mn mathvariant="normal">1</mml:mn><mml:mn mathvariant="normal">2</mml:mn></mml:mfrac></mml:mstyle><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi mathvariant="normal">VS</mml:mi></mml:mrow><mml:mi>m</mml:mi></mml:mfrac></mml:mstyle><mml:msub><mml:mi>C</mml:mi><mml:mi mathvariant="normal">L</mml:mi></mml:msub><mml:mo>-</mml:mo><mml:mfenced close=")" open="("><mml:mrow><mml:mi>p</mml:mi><mml:mi>cos⁡</mml:mi><mml:mi mathvariant="italic">α</mml:mi><mml:mo>+</mml:mo><mml:mi>r</mml:mi><mml:mi>sin⁡</mml:mi><mml:mi mathvariant="italic">α</mml:mi></mml:mrow></mml:mfenced><mml:mi>tan⁡</mml:mi><mml:mi mathvariant="italic">β</mml:mi></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:mo>+</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mi>g</mml:mi><mml:mi>V</mml:mi></mml:mfrac></mml:mstyle><mml:mfenced close=")" open="("><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mi>cos⁡</mml:mi><mml:mi mathvariant="italic">ϕ</mml:mi><mml:mi>cos⁡</mml:mi><mml:mi mathvariant="italic">θ</mml:mi><mml:mi>cos⁡</mml:mi><mml:mi mathvariant="italic">α</mml:mi><mml:mo>+</mml:mo><mml:mi>sin⁡</mml:mi><mml:mi mathvariant="italic">θ</mml:mi><mml:mi>sin⁡</mml:mi><mml:mi mathvariant="italic">α</mml:mi></mml:mrow><mml:mrow><mml:mi>cos⁡</mml:mi><mml:mi mathvariant="italic">β</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:mfenced><mml:mo>+</mml:mo><mml:mi>q</mml:mi></mml:mrow></mml:mtd></mml:mtr></mml:mtable><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>

        where <inline-formula><mml:math id="M414" display="inline"><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mi mathvariant="normal">L</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> is the lift coefficient. Presume that aerodynamic lift is within the linear region; the lift coefficient can then be decomposed into the zero-lift, angle-of-attack, and elevator components:

          <disp-formula id="App1.Ch1.S3.E30" content-type="numbered"><label>C2</label><mml:math id="M415" display="block"><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mi mathvariant="normal">L</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:msub><mml:mi>L</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:msub><mml:mi>L</mml:mi><mml:mi mathvariant="italic">α</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mi mathvariant="italic">α</mml:mi><mml:mo>+</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:msub><mml:mi>L</mml:mi><mml:mrow><mml:msub><mml:mi mathvariant="italic">δ</mml:mi><mml:mi mathvariant="normal">e</mml:mi></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:msub><mml:msub><mml:mi mathvariant="italic">δ</mml:mi><mml:mi mathvariant="normal">e</mml:mi></mml:msub><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula>

        Substitute Eq. (C2) into (C1), assume that the sideslip <inline-formula><mml:math id="M416" display="inline"><mml:mi mathvariant="italic">β</mml:mi></mml:math></inline-formula> angle is close to zero, giving <inline-formula><mml:math id="M417" display="inline"><mml:mrow><mml:mi>tan⁡</mml:mi><mml:mi mathvariant="italic">β</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M418" display="inline"><mml:mrow><mml:mi>cos⁡</mml:mi><mml:mi mathvariant="italic">β</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:math></inline-formula>, we have

          <disp-formula id="App1.Ch1.S3.E31" content-type="numbered"><label>C3</label><mml:math id="M419" display="block"><mml:mrow><mml:mtable class="split" rowspacing="0.2ex" displaystyle="true" columnalign="right left"><mml:mtr><mml:mtd><mml:mrow><mml:mover accent="true"><mml:mi mathvariant="italic">α</mml:mi><mml:mo mathvariant="normal">˙</mml:mo></mml:mover></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mo>=</mml:mo><mml:mo>-</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mn mathvariant="normal">1</mml:mn><mml:mn mathvariant="normal">2</mml:mn></mml:mfrac></mml:mstyle><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi mathvariant="normal">VS</mml:mi></mml:mrow><mml:mi>m</mml:mi></mml:mfrac></mml:mstyle><mml:mfenced close=")" open="("><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:msub><mml:mi>L</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:msub><mml:mi>L</mml:mi><mml:mi mathvariant="italic">α</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mi mathvariant="italic">α</mml:mi><mml:mo>+</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:msub><mml:mi>L</mml:mi><mml:mrow><mml:msub><mml:mi mathvariant="italic">δ</mml:mi><mml:mi mathvariant="normal">e</mml:mi></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:msub><mml:msub><mml:mi mathvariant="italic">δ</mml:mi><mml:mi mathvariant="normal">e</mml:mi></mml:msub></mml:mrow></mml:mfenced></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:mo>+</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mi>g</mml:mi><mml:mi>V</mml:mi></mml:mfrac></mml:mstyle><mml:mfenced open="(" close=")"><mml:mrow><mml:mi>cos⁡</mml:mi><mml:mi mathvariant="italic">ϕ</mml:mi><mml:mi>cos⁡</mml:mi><mml:mi mathvariant="italic">θ</mml:mi><mml:mi>cos⁡</mml:mi><mml:mi mathvariant="italic">α</mml:mi><mml:mo>+</mml:mo><mml:mi>sin⁡</mml:mi><mml:mi mathvariant="italic">θ</mml:mi><mml:mi>sin⁡</mml:mi><mml:mi mathvariant="italic">α</mml:mi></mml:mrow></mml:mfenced><mml:mo>+</mml:mo><mml:mi>q</mml:mi></mml:mrow></mml:mtd></mml:mtr></mml:mtable><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula>

        Denote the error signal in the angle-of-attack feedback loop as <inline-formula><mml:math id="M420" display="inline"><mml:mrow><mml:mi>e</mml:mi><mml:mo>=</mml:mo><mml:mi mathvariant="italic">α</mml:mi><mml:mo>-</mml:mo><mml:msub><mml:mi mathvariant="italic">α</mml:mi><mml:mi mathvariant="normal">SP</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> and the integrated error as <inline-formula><mml:math id="M421" display="inline"><mml:mrow><mml:msub><mml:mi>e</mml:mi><mml:mi mathvariant="normal">i</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mo>∫</mml:mo><mml:mi>e</mml:mi><mml:mspace width="0.125em" linebreak="nobreak"/><mml:mi mathvariant="normal">d</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:math></inline-formula>. If <inline-formula><mml:math id="M422" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">α</mml:mi><mml:mi mathvariant="normal">SP</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> is static (i.e. a constant), <inline-formula><mml:math id="M423" display="inline"><mml:mrow><mml:mover accent="true"><mml:mi>e</mml:mi><mml:mo mathvariant="normal">˙</mml:mo></mml:mover><mml:mo>=</mml:mo><mml:mover accent="true"><mml:mi mathvariant="italic">α</mml:mi><mml:mo mathvariant="normal">˙</mml:mo></mml:mover></mml:mrow></mml:math></inline-formula>. A Lyapunov function can be defined as

          <disp-formula id="App1.Ch1.S3.E32" content-type="numbered"><label>C4</label><mml:math id="M424" display="block"><mml:mrow><mml:mi>H</mml:mi><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mn mathvariant="normal">1</mml:mn><mml:mn mathvariant="normal">2</mml:mn></mml:mfrac></mml:mstyle><mml:msub><mml:mi>k</mml:mi><mml:mi mathvariant="normal">i</mml:mi></mml:msub><mml:msubsup><mml:mi>e</mml:mi><mml:mi mathvariant="normal">i</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msubsup><mml:mo>+</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mn mathvariant="normal">1</mml:mn><mml:mn mathvariant="normal">2</mml:mn></mml:mfrac></mml:mstyle><mml:msup><mml:mi>e</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msup><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>

        where <inline-formula><mml:math id="M425" display="inline"><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mi mathvariant="normal">i</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> is a constant. Differentiating Eq. (C4) gives

          <disp-formula id="App1.Ch1.S3.E33" content-type="numbered"><label>C5</label><mml:math id="M426" display="block"><mml:mrow><mml:mover accent="true"><mml:mi>H</mml:mi><mml:mo mathvariant="normal">˙</mml:mo></mml:mover><mml:mo>=</mml:mo><mml:msub><mml:mi>k</mml:mi><mml:mi mathvariant="normal">i</mml:mi></mml:msub><mml:msub><mml:mi>e</mml:mi><mml:mi mathvariant="normal">i</mml:mi></mml:msub><mml:msub><mml:mover accent="true"><mml:mi>e</mml:mi><mml:mo mathvariant="normal">˙</mml:mo></mml:mover><mml:mi mathvariant="normal">i</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:mi>e</mml:mi><mml:mover accent="true"><mml:mi>e</mml:mi><mml:mo mathvariant="normal">˙</mml:mo></mml:mover><mml:mo>=</mml:mo><mml:msub><mml:mi>k</mml:mi><mml:mi mathvariant="normal">i</mml:mi></mml:msub><mml:msub><mml:mi>e</mml:mi><mml:mi mathvariant="normal">i</mml:mi></mml:msub><mml:mi>e</mml:mi><mml:mo>+</mml:mo><mml:mi>e</mml:mi><mml:mover accent="true"><mml:mi mathvariant="italic">α</mml:mi><mml:mo mathvariant="normal">˙</mml:mo></mml:mover><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula>

        Substituting Eq. (C3) into (C5),

          <disp-formula id="App1.Ch1.S3.E34" content-type="numbered"><label>C6</label><mml:math id="M427" display="block"><mml:mrow><mml:mtable class="split" rowspacing="0.2ex" displaystyle="true" columnalign="right left"><mml:mtr><mml:mtd><mml:mrow><mml:mover accent="true"><mml:mi>H</mml:mi><mml:mo mathvariant="normal">˙</mml:mo></mml:mover></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mo>=</mml:mo><mml:msub><mml:mi>k</mml:mi><mml:mi mathvariant="normal">i</mml:mi></mml:msub><mml:msub><mml:mi>e</mml:mi><mml:mi mathvariant="normal">i</mml:mi></mml:msub><mml:mi>e</mml:mi><mml:mo>+</mml:mo><mml:mi>e</mml:mi><mml:mfenced open="[" close=""><mml:mrow><mml:mo>-</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mn mathvariant="normal">1</mml:mn><mml:mn mathvariant="normal">2</mml:mn></mml:mfrac></mml:mstyle><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi mathvariant="normal">VS</mml:mi></mml:mrow><mml:mi>m</mml:mi></mml:mfrac></mml:mstyle><mml:mfenced close=")" open="("><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:msub><mml:mi>L</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:msub><mml:mi>L</mml:mi><mml:mi mathvariant="italic">α</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mi mathvariant="italic">α</mml:mi><mml:mo>+</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:msub><mml:mi>L</mml:mi><mml:mrow><mml:msub><mml:mi mathvariant="italic">δ</mml:mi><mml:mi mathvariant="normal">e</mml:mi></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:msub><mml:msub><mml:mi mathvariant="italic">δ</mml:mi><mml:mi mathvariant="normal">e</mml:mi></mml:msub></mml:mrow></mml:mfenced></mml:mrow></mml:mfenced></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:mfenced close="]" open=""><mml:mrow><mml:mo>+</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mi>g</mml:mi><mml:mi>V</mml:mi></mml:mfrac></mml:mstyle><mml:mfenced open="(" close=")"><mml:mrow><mml:mi>cos⁡</mml:mi><mml:mi mathvariant="italic">ϕ</mml:mi><mml:mi>cos⁡</mml:mi><mml:mi mathvariant="italic">θ</mml:mi><mml:mi>cos⁡</mml:mi><mml:mi mathvariant="italic">α</mml:mi><mml:mo>+</mml:mo><mml:mi>sin⁡</mml:mi><mml:mi mathvariant="italic">θ</mml:mi><mml:mi>sin⁡</mml:mi><mml:mi mathvariant="italic">α</mml:mi></mml:mrow></mml:mfenced><mml:mo>+</mml:mo><mml:mi>q</mml:mi></mml:mrow></mml:mfenced></mml:mrow></mml:mtd></mml:mtr></mml:mtable><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula>

        Equation (C6) can be rearranged into

          <disp-formula id="App1.Ch1.S3.E35" content-type="numbered"><label>C7</label><mml:math id="M428" display="block"><mml:mrow><mml:mtable class="split" rowspacing="0.2ex" displaystyle="true" columnalign="right left"><mml:mtr><mml:mtd><mml:mrow><mml:mover accent="true"><mml:mi>H</mml:mi><mml:mo mathvariant="normal">˙</mml:mo></mml:mover></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mo>=</mml:mo><mml:mi>e</mml:mi><mml:mfenced open="(" close=")"><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mi mathvariant="normal">i</mml:mi></mml:msub><mml:msub><mml:mi>e</mml:mi><mml:mi mathvariant="normal">i</mml:mi></mml:msub><mml:mo>-</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mn mathvariant="normal">1</mml:mn><mml:mn mathvariant="normal">2</mml:mn></mml:mfrac></mml:mstyle><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi mathvariant="normal">VS</mml:mi></mml:mrow><mml:mi>m</mml:mi></mml:mfrac></mml:mstyle><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:msub><mml:mi>L</mml:mi><mml:mrow><mml:msub><mml:mi mathvariant="italic">δ</mml:mi><mml:mi mathvariant="normal">e</mml:mi></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:msub><mml:msub><mml:mi mathvariant="italic">δ</mml:mi><mml:mi mathvariant="normal">e</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mi>g</mml:mi><mml:mi>V</mml:mi></mml:mfrac></mml:mstyle><mml:mi>sin⁡</mml:mi><mml:mi mathvariant="italic">θ</mml:mi><mml:mi>sin⁡</mml:mi><mml:mi mathvariant="italic">α</mml:mi></mml:mrow></mml:mfenced></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:mo>-</mml:mo><mml:mi>e</mml:mi><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mn mathvariant="normal">1</mml:mn><mml:mn mathvariant="normal">2</mml:mn></mml:mfrac></mml:mstyle><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi mathvariant="normal">VS</mml:mi></mml:mrow><mml:mi>m</mml:mi></mml:mfrac></mml:mstyle><mml:mfenced close=")" open="("><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:msub><mml:mi>L</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:msub><mml:mi>L</mml:mi><mml:mi mathvariant="italic">α</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mi mathvariant="italic">α</mml:mi></mml:mrow></mml:mfenced><mml:mo>+</mml:mo><mml:mi>e</mml:mi><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mi>g</mml:mi><mml:mi>V</mml:mi></mml:mfrac></mml:mstyle><mml:mi>cos⁡</mml:mi><mml:mi mathvariant="italic">ϕ</mml:mi><mml:mi>cos⁡</mml:mi><mml:mi mathvariant="italic">θ</mml:mi><mml:mi>cos⁡</mml:mi><mml:mi mathvariant="italic">α</mml:mi></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:mo>+</mml:mo><mml:mi mathvariant="normal">eq</mml:mi></mml:mrow></mml:mtd></mml:mtr></mml:mtable><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula>

        The first term in Eq. (C7) can be rewritten into <inline-formula><mml:math id="M429" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:msub><mml:mi>k</mml:mi><mml:mi mathvariant="normal">e</mml:mi></mml:msub><mml:msup><mml:mi>e</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msup></mml:mrow></mml:math></inline-formula>, where <inline-formula><mml:math id="M430" display="inline"><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mi mathvariant="normal">e</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> is a constant, by defining the following feedback control law for the elevator (assuming no actuator dynamics, i.e. <inline-formula><mml:math id="M431" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">δ</mml:mi><mml:mi mathvariant="normal">e</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mi mathvariant="italic">δ</mml:mi><mml:mrow><mml:msub><mml:mi mathvariant="normal">e</mml:mi><mml:mi mathvariant="normal">SP</mml:mi></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>):

          <disp-formula id="App1.Ch1.S3.E36" content-type="numbered"><label>C8</label><mml:math id="M432" display="block"><mml:mrow><mml:msub><mml:mi mathvariant="italic">δ</mml:mi><mml:mi mathvariant="normal">e</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:mi>m</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">ρ</mml:mi><mml:msub><mml:mi mathvariant="normal">VSC</mml:mi><mml:mrow><mml:msub><mml:mi>L</mml:mi><mml:mrow><mml:msub><mml:mi mathvariant="italic">δ</mml:mi><mml:mi mathvariant="normal">e</mml:mi></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:mfrac></mml:mstyle><mml:mfenced open="(" close=")"><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mi mathvariant="normal">e</mml:mi></mml:msub><mml:mi>e</mml:mi><mml:mo>+</mml:mo><mml:msub><mml:mi>k</mml:mi><mml:mi mathvariant="normal">i</mml:mi></mml:msub><mml:msub><mml:mi>e</mml:mi><mml:mi mathvariant="normal">i</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mi>g</mml:mi><mml:mi>V</mml:mi></mml:mfrac></mml:mstyle><mml:mi>sin⁡</mml:mi><mml:mi mathvariant="italic">θ</mml:mi><mml:mi>sin⁡</mml:mi><mml:mi mathvariant="italic">α</mml:mi></mml:mrow></mml:mfenced><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula>

        The remaining terms of Eq. (C7) can be grouped into   <inline-formula><mml:math id="M433" display="inline"><mml:mrow><mml:mi>e</mml:mi><mml:mi>D</mml:mi><mml:mo>(</mml:mo><mml:mi>t</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> where <inline-formula><mml:math id="M434" display="inline"><mml:mrow><mml:mi>D</mml:mi><mml:mo>(</mml:mo><mml:mi>t</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> is the disturbance function

          <disp-formula id="App1.Ch1.S3.E37" content-type="numbered"><label>C9</label><mml:math id="M435" display="block"><mml:mrow><mml:mtable rowspacing="0.2ex" class="split" displaystyle="true" columnalign="right left"><mml:mtr><mml:mtd><mml:mrow><mml:mi>D</mml:mi><mml:mfenced close=")" open="("><mml:mi>t</mml:mi></mml:mfenced></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mo>=</mml:mo><mml:mo>-</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mn mathvariant="normal">1</mml:mn><mml:mn mathvariant="normal">2</mml:mn></mml:mfrac></mml:mstyle><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi mathvariant="normal">VS</mml:mi></mml:mrow><mml:mi>m</mml:mi></mml:mfrac></mml:mstyle><mml:mfenced open="(" close=")"><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:msub><mml:mi>L</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:msub><mml:mi>L</mml:mi><mml:mi mathvariant="italic">α</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mi mathvariant="italic">α</mml:mi></mml:mrow></mml:mfenced></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:mo>+</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mi>g</mml:mi><mml:mi>V</mml:mi></mml:mfrac></mml:mstyle><mml:mi>cos⁡</mml:mi><mml:mi mathvariant="italic">ϕ</mml:mi><mml:mi>cos⁡</mml:mi><mml:mi mathvariant="italic">θ</mml:mi><mml:mi>cos⁡</mml:mi><mml:mi mathvariant="italic">α</mml:mi><mml:mo>+</mml:mo><mml:mi>q</mml:mi></mml:mrow></mml:mtd></mml:mtr></mml:mtable><mml:mo>;</mml:mo></mml:mrow></mml:math></disp-formula>

        this gives the Lyapunov derivative

          <disp-formula id="App1.Ch1.S3.E38" content-type="numbered"><label>C10</label><mml:math id="M436" display="block"><mml:mrow><mml:mover accent="true"><mml:mi>H</mml:mi><mml:mo mathvariant="normal">˙</mml:mo></mml:mover><mml:mo>=</mml:mo><mml:mo>-</mml:mo><mml:msub><mml:mi>k</mml:mi><mml:mi mathvariant="normal">e</mml:mi></mml:msub><mml:msup><mml:mi>e</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msup><mml:mo>+</mml:mo><mml:mi>e</mml:mi><mml:mi>D</mml:mi><mml:mo>(</mml:mo><mml:mi>t</mml:mi><mml:mo>)</mml:mo><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula>

        Each term in the disturbance function (C9) is physically bounded for all time, such that the disturbance becomes upper bounded as <inline-formula><mml:math id="M437" display="inline"><mml:mrow><mml:mfenced open="|" close="|"><mml:mrow><mml:mi>D</mml:mi><mml:mfenced close=")" open="("><mml:mi>t</mml:mi></mml:mfenced></mml:mrow></mml:mfenced><mml:mo>≤</mml:mo><mml:mover accent="true"><mml:mi>D</mml:mi><mml:mo mathvariant="normal">‾</mml:mo></mml:mover></mml:mrow></mml:math></inline-formula> for some constant <inline-formula><mml:math id="M438" display="inline"><mml:mrow><mml:mover accent="true"><mml:mi>D</mml:mi><mml:mo mathvariant="normal">‾</mml:mo></mml:mover><mml:mo>≥</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:math></inline-formula>. Applying Young's inequality to the cross-term yields

          <disp-formula id="App1.Ch1.S3.E39" content-type="numbered"><label>C11</label><mml:math id="M439" display="block"><mml:mrow><mml:mover accent="true"><mml:mi>H</mml:mi><mml:mo mathvariant="normal">˙</mml:mo></mml:mover><mml:mo>≤</mml:mo><mml:mo>-</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mi mathvariant="normal">e</mml:mi></mml:msub></mml:mrow><mml:mn mathvariant="normal">2</mml:mn></mml:mfrac></mml:mstyle><mml:msup><mml:mi>e</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msup><mml:mo>+</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mn mathvariant="normal">1</mml:mn><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:msub><mml:mi>k</mml:mi><mml:mi mathvariant="normal">e</mml:mi></mml:msub></mml:mrow></mml:mfrac></mml:mstyle><mml:mi>D</mml:mi><mml:msup><mml:mfenced close=")" open="("><mml:mi>t</mml:mi></mml:mfenced><mml:mn mathvariant="normal">2</mml:mn></mml:msup><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>

        which a standard ISS condition implying that the closed-loop system is input-to-state stable with respect to the disturbance <inline-formula><mml:math id="M440" display="inline"><mml:mrow><mml:mi>D</mml:mi><mml:mo>(</mml:mo><mml:mi>t</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> (see Khalil, 2002, for more details).</p>
      <p id="d2e9348">The control law in Eq. (C8) can be simplified further based on the small angle of attack assumption:

          <disp-formula id="App1.Ch1.S3.E40" content-type="numbered"><label>C12</label><mml:math id="M441" display="block"><mml:mrow><mml:msub><mml:mi mathvariant="italic">δ</mml:mi><mml:mi mathvariant="normal">e</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:mi>m</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">ρ</mml:mi><mml:msub><mml:mi mathvariant="normal">VSC</mml:mi><mml:mrow><mml:msub><mml:mi>L</mml:mi><mml:mrow><mml:msub><mml:mi mathvariant="italic">δ</mml:mi><mml:mi mathvariant="normal">e</mml:mi></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:mfrac></mml:mstyle><mml:mfenced close=")" open="("><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mi mathvariant="normal">e</mml:mi></mml:msub><mml:mi>e</mml:mi><mml:mo>+</mml:mo><mml:msub><mml:mi>k</mml:mi><mml:mi mathvariant="normal">i</mml:mi></mml:msub><mml:msub><mml:mi>e</mml:mi><mml:mi mathvariant="normal">i</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mi>g</mml:mi><mml:mi>V</mml:mi></mml:mfrac></mml:mstyle><mml:mi mathvariant="italic">α</mml:mi><mml:mi>sin⁡</mml:mi><mml:mi mathvariant="italic">θ</mml:mi></mml:mrow></mml:mfenced><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>

        which can be rewritten as

          <disp-formula id="App1.Ch1.S3.E41" content-type="numbered"><label>C13</label><mml:math id="M442" display="block"><mml:mrow><mml:msub><mml:mi mathvariant="italic">δ</mml:mi><mml:mi mathvariant="normal">e</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mo>-</mml:mo><mml:msub><mml:mi>K</mml:mi><mml:mi>p</mml:mi></mml:msub><mml:mi>e</mml:mi><mml:mo>-</mml:mo><mml:msub><mml:mi>K</mml:mi><mml:mi mathvariant="normal">i</mml:mi></mml:msub><mml:msub><mml:mi>e</mml:mi><mml:mi mathvariant="normal">i</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>k</mml:mi><mml:mi mathvariant="italic">θ</mml:mi></mml:msub><mml:mi>sin⁡</mml:mi><mml:mi mathvariant="italic">θ</mml:mi><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>

        with

              <disp-formula specific-use="gather" content-type="numbered"><mml:math id="M443" display="block"><mml:mtable displaystyle="true"><mml:mlabeledtr id="App1.Ch1.S3.E42"><mml:mtd><mml:mtext>C14</mml:mtext></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:msub><mml:mi>K</mml:mi><mml:mi>p</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:mi>m</mml:mi><mml:msub><mml:mi>k</mml:mi><mml:mi mathvariant="normal">e</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:mi mathvariant="italic">ρ</mml:mi><mml:msub><mml:mi mathvariant="normal">VSC</mml:mi><mml:mrow><mml:msub><mml:mi>L</mml:mi><mml:mrow><mml:msub><mml:mi mathvariant="italic">δ</mml:mi><mml:mi mathvariant="normal">e</mml:mi></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mlabeledtr><mml:mlabeledtr id="App1.Ch1.S3.E43"><mml:mtd><mml:mtext>C15</mml:mtext></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:msub><mml:mi>K</mml:mi><mml:mi mathvariant="normal">i</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:mi>m</mml:mi><mml:msub><mml:mi>k</mml:mi><mml:mi mathvariant="normal">i</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:mi mathvariant="italic">ρ</mml:mi><mml:msub><mml:mi mathvariant="normal">VSC</mml:mi><mml:mrow><mml:msub><mml:mi>L</mml:mi><mml:mrow><mml:msub><mml:mi mathvariant="italic">δ</mml:mi><mml:mi mathvariant="normal">e</mml:mi></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mlabeledtr><mml:mlabeledtr id="App1.Ch1.S3.E44"><mml:mtd><mml:mtext>C16</mml:mtext></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:msub><mml:mi>K</mml:mi><mml:mi mathvariant="italic">θ</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:mi>m</mml:mi><mml:mi>g</mml:mi><mml:mover accent="true"><mml:mi mathvariant="italic">α</mml:mi><mml:mo mathvariant="normal">‾</mml:mo></mml:mover><mml:mspace linebreak="nobreak" width="0.125em"/></mml:mrow><mml:mrow><mml:mi mathvariant="italic">ρ</mml:mi><mml:msup><mml:mi>V</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msup><mml:mi>S</mml:mi><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:msub><mml:mi>L</mml:mi><mml:mrow><mml:msub><mml:mi mathvariant="italic">δ</mml:mi><mml:mi mathvariant="normal">e</mml:mi></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mlabeledtr></mml:mtable></mml:math></disp-formula>

        where <inline-formula><mml:math id="M444" display="inline"><mml:mover accent="true"><mml:mi mathvariant="italic">α</mml:mi><mml:mo mathvariant="normal">‾</mml:mo></mml:mover></mml:math></inline-formula> is an upper bound on the angle of attack.</p>
</app>
  </app-group><notes notes-type="codedataavailability"><title>Code and data availability</title>

      <p id="d2e9634">The simulation model is proprietary and is not available to the public. The Julia code for the flight controller can be downloaded from an online depository (<ext-link xlink:href="https://doi.org/10.5281/zenodo.21775971" ext-link-type="DOI">10.5281/zenodo.21775971</ext-link>,  Nguyen, 2026).</p>
  </notes><notes notes-type="authorcontribution"><title>Author contributions</title>

      <p id="d2e9643">DN: funding acquisition, analysis, writing (original draft). APK: software, analysis, writing (review and editing). TV: software, resources. ML: funding acquisition, writing (review and editing). EO: analysis, software, resources, methodology, validation, writing (review and editing).</p>
  </notes><notes notes-type="competinginterests"><title>Competing interests</title>

      <p id="d2e9649">The contact author has declared that none of the authors has any competing interests.</p>
  </notes><notes notes-type="disclaimer"><title>Disclaimer</title>

      <p id="d2e9655">Publisher's note: Copernicus Publications remains neutral with regard to jurisdictional claims made in the text, published maps, institutional affiliations, or any other geographical representation in this paper. The authors bear the ultimate responsibility for providing appropriate place names. Views expressed in the text are those of the authors and do not necessarily reflect the views of the publisher.</p>
  </notes><notes notes-type="financialsupport"><title>Financial support</title>

      <p id="d2e9662">Duc H. Nguyen and Mark H. Lowenberg are supported by the UK Engineering and Physical Sciences Research Council (EPSRC), grant no. EP/Y014545/1. Agustí Porta Ko is supported by the AWETRAIN project, which receives funding from the European Union's Horizon Europe research and innovation programme under the Marie Skłodowska-Curie grant agreement no. 101168734. Espen Oland is part of the 3D-CIRCULAR project, which has received funding from the European Health and Digital Executive Agency under the grant agreement no. 101226256. The contents of this publication are the sole responsibility of the authors and do not necessarily reflect the opinion of the European Union.</p>
  </notes><notes notes-type="reviewstatement"><title>Review statement</title>

      <p id="d2e9668">This paper was edited by Roland Schmehl and reviewed by two anonymous referees.</p>
  </notes><ref-list>
    <title>References</title>

      <ref id="bib1.bib1"><label>1</label><mixed-citation>Ahrens, U., Diehl, M., and Schmehl, R.: Airborne Wind Energy, 1st, Green Energy and Technology, Springer Berlin, Heidelberg, Germany, <ext-link xlink:href="https://doi.org/10.1007/978-3-642-39965-7" ext-link-type="DOI">10.1007/978-3-642-39965-7</ext-link>, 2013.</mixed-citation></ref>
      <ref id="bib1.bib2"><label>2</label><mixed-citation>Basile, L., Berni, M. G., and Celani, A.: Harvesting energy from turbulent winds with reinforcement learning, Europhys. Lett., 152, 43001, <ext-link xlink:href="https://doi.org/10.1209/0295-5075/ae1ce9" ext-link-type="DOI">10.1209/0295-5075/ae1ce9</ext-link>, 2025.</mixed-citation></ref>
      <ref id="bib1.bib3"><label>3</label><mixed-citation>Berra, A. and Fagiano, L.: An optimal reeling control strategy for pumping airborne wind energy systems without wind speed feedback, 2021 European Control Conference (ECC), Online, 29 June–2 July, <ext-link xlink:href="https://doi.org/10.23919/ECC54610.2021.9655018" ext-link-type="DOI">10.23919/ECC54610.2021.9655018</ext-link>, 2021.</mixed-citation></ref>
      <ref id="bib1.bib4"><label>4</label><mixed-citation>Cherubini, A., Papini, A., Vertechy, R., and Fontana, M.: Airborne Wind Energy Systems: A review of the technologies, Renewable and Sustainable Energy Reviews, 51, 1461–1476, <ext-link xlink:href="https://doi.org/10.1016/j.rser.2015.07.053" ext-link-type="DOI">10.1016/j.rser.2015.07.053</ext-link>, 2015.</mixed-citation></ref>
      <ref id="bib1.bib5"><label>5</label><mixed-citation>Cobb, M. K., Barton, K., Fathy, H., and Vermillion, C.: Iterative Learning-Based Path Optimization for Repetitive Path Planning, With Application to 3-D Crosswind Flight of Airborne Wind Energy Systems, IEEE T. Contr. Syst. T., 28, 1447–1459, <ext-link xlink:href="https://doi.org/10.1109/TCST.2019.2912345" ext-link-type="DOI">10.1109/TCST.2019.2912345</ext-link>, 2020.</mixed-citation></ref>
      <ref id="bib1.bib6"><label>6</label><mixed-citation>Consolini, L., Maggiore, M., Nielsen, C., and Tosques, M.: Path following for the PVTOL aircraft, Automatica, 46, 1284–1296, <ext-link xlink:href="https://doi.org/10.1016/j.automatica.2010.05.014" ext-link-type="DOI">10.1016/j.automatica.2010.05.014</ext-link>, 2010.</mixed-citation></ref>
      <ref id="bib1.bib7"><label>7</label><mixed-citation>DeLosRíos-Navarrete, F., González-García, J., Castro-Fernández, I., and Sánchez-Arriaga, G.: A small-scale and autonomous testbed for three-line delta kites applied to airborne wind energy, Wind Energ. Sci., 10, 1153–1166, <ext-link xlink:href="https://doi.org/10.5194/wes-10-1153-2025" ext-link-type="DOI">10.5194/wes-10-1153-2025</ext-link>, 2025.</mixed-citation></ref>
      <ref id="bib1.bib8"><label>8</label><mixed-citation>Dief, T. N., Fechner, U., Schmehl, R., Yoshida, S., and Rushdi, M. A.: Adaptive Flight Path Control of Airborne Wind Energy Systems, Energies, 13, 667, <ext-link xlink:href="https://doi.org/10.3390/en13030667" ext-link-type="DOI">10.3390/en13030667</ext-link>, 2020.</mixed-citation></ref>
      <ref id="bib1.bib9"><label>9</label><mixed-citation>Diehl, M.: Airborne Wind Energy: Basic Concepts and Physical Foundations, in: Airborne Wind Energy, edited by: Ahrens, U., Diehl, M., and Schmehl, R., Springer Berlin Heidelberg, Berlin, Heidelberg, 3–22, <ext-link xlink:href="https://doi.org/10.1007/978-3-642-39965-7_1" ext-link-type="DOI">10.1007/978-3-642-39965-7_1</ext-link>, 2013.</mixed-citation></ref>
      <ref id="bib1.bib10"><label>10</label><mixed-citation>Duda, D. F., Fuest, H., Islam, T., and Moormann, D.: Flight guidance concept for the launching and landing phase of a flying wing used in an airborne wind energy system, Wind Energ. Sci., 10, 661–678, <ext-link xlink:href="https://doi.org/10.5194/wes-10-661-2025" ext-link-type="DOI">10.5194/wes-10-661-2025</ext-link>, 2025</mixed-citation></ref>
      <ref id="bib1.bib11"><label>11</label><mixed-citation>Egeland, O. and Gravdahl, J.: Modeling and Simulation for Automatic Control, 2nd, Marine Cybernetics, Trondheim, Norway, <uri>https://www.researchgate.net/publication/256492530_Modeling_and_Simulation_for_Automatic_Control</uri> (last access: 11 August 2026), 2003.</mixed-citation></ref>
      <ref id="bib1.bib12"><label>12</label><mixed-citation>Fagiano, L., Zgraggen, A. U., Morari, M., and Khammash, M.: Automatic Crosswind Flight of Tethered Wings for Airborne Wind Energy: Modeling, Control Design, and Experimental Results, IEEE T. Contr. Syst. T., 22, 1433–1447, <ext-link xlink:href="https://doi.org/10.1109/TCST.2013.2279592" ext-link-type="DOI">10.1109/TCST.2013.2279592</ext-link>, 2014.</mixed-citation></ref>
      <ref id="bib1.bib13"><label>13</label><mixed-citation>Fagiano, L., Nguyen-Van, E., Rager, F., Schnez, S., and Ohler, C.: Autonomous Takeoff and Flight of a Tethered Aircraft for Airborne Wind Energy, IEEE T. Contr. Syst. T., 26, 151–166, <ext-link xlink:href="https://doi.org/10.1109/TCST.2017.2661825" ext-link-type="DOI">10.1109/TCST.2017.2661825</ext-link>, 2018.</mixed-citation></ref>
      <ref id="bib1.bib14"><label>14</label><mixed-citation>Fechner, U., van der Vlugt, R., Schreuder, E., and Schmehl, R.: Dynamic model of a pumping kite power system, Renewable Energy, 83, 705–716, <ext-link xlink:href="https://doi.org/10.1016/j.renene.2015.04.028" ext-link-type="DOI">10.1016/j.renene.2015.04.028</ext-link>, 2015.</mixed-citation></ref>
      <ref id="bib1.bib15"><label>15</label><mixed-citation>Fernandes, M. C. R. M., Vinha, S., Paiva, L. T., and Fontes, F. A. C. C.: L0 and L1 Guidance and Path-Following Control for Airborne Wind Energy Systems, Energies, 15, 1390, <ext-link xlink:href="https://doi.org/10.3390/en15041390" ext-link-type="DOI">10.3390/en15041390</ext-link>, 2022.</mixed-citation></ref>
      <ref id="bib1.bib16"><label>16</label><mixed-citation>Freidovich, L., Robertsson, A., Shiriaev, A., and Johansson, R.: Periodic motions of the Pendubot via virtual holonomic constraints: Theory and experiments, Automatica, 44, 785–791, <ext-link xlink:href="https://doi.org/10.1016/j.automatica.2007.07.011" ext-link-type="DOI">10.1016/j.automatica.2007.07.011</ext-link>, 2008.</mixed-citation></ref>
      <ref id="bib1.bib17"><label>17</label><mixed-citation>Fritz, F.: Application of an Automated Kite System for Ship Propulsion and Power Generation, in: Airborne Wind Energy, edited by: Ahrens, U., Diehl, M., and Schmehl, R., Springer Berlin Heidelberg, Berlin, Heidelberg, 359–372, <ext-link xlink:href="https://doi.org/10.1007/978-3-642-39965-7_20" ext-link-type="DOI">10.1007/978-3-642-39965-7_20</ext-link>, 2013.</mixed-citation></ref>
      <ref id="bib1.bib18"><label>18</label><mixed-citation>Hauser, J., Sastry, S., and Meyer, G.: Nonlinear control design for slightly non-minimum phase systems: Application to V/STOL aircraft, Automatica, 28, 665–679, <ext-link xlink:href="https://doi.org/10.1016/0005-1098(92)90029-F" ext-link-type="DOI">10.1016/0005-1098(92)90029-F</ext-link>, 1992.</mixed-citation></ref>
      <ref id="bib1.bib19"><label>19</label><mixed-citation>Heydarnia, O., Wauters, J., Lefebvre, T., and Crevecoeur, G.: Optimal Path Planning of Airborne Wind Energy Systems with a Flexible Tether, J. Guid. Control Dynam., 48, <ext-link xlink:href="https://doi.org/10.2514/1.G008967" ext-link-type="DOI">10.2514/1.G008967</ext-link>, 2025.</mixed-citation></ref>
      <ref id="bib1.bib20"><label>20</label><mixed-citation>Jordan, D. W. and Smith, P.: Nonlinear Ordinary Differential Equations – An Introduction for Scientists and Engineers, Oxford University Press, New York, ISBN 978-0-19-920824-1 (Hbk), ISBN 978-0-19-920825-8 (Pbk), 2007.</mixed-citation></ref>
      <ref id="bib1.bib21"><label>21</label><mixed-citation>Kelly, M.: From standard wind measurements to spectral characterization: turbulence length scale and distribution, Wind Energ. Sci., 3, 533–543, <ext-link xlink:href="https://doi.org/10.5194/wes-3-533-2018" ext-link-type="DOI">10.5194/wes-3-533-2018</ext-link>, 2018.</mixed-citation></ref>
      <ref id="bib1.bib22"><label>22</label><mixed-citation>Khalil, H. K.: Nonlinear Systems, 3rd, Prentice Hall, New Jersey, ISBN-10 1292039213, ISBN-13 978-1292039213, 2002.</mixed-citation></ref>
      <ref id="bib1.bib23"><label>23</label><mixed-citation>Khurshid, Y., Paul, P., Elhesasy, M., Ali, B., Kamra, M. M., Okasha, M., and Dief, T. N.: From inception to commercialization: A systematic review of airborne wind energy systems, Sustainable Energy Technologies and Assessments, 83, 104623, <ext-link xlink:href="https://doi.org/10.1016/j.seta.2025.104623" ext-link-type="DOI">10.1016/j.seta.2025.104623</ext-link>, 2025.</mixed-citation></ref>
      <ref id="bib1.bib24"><label>24</label><mixed-citation>Loyd, M. L.: Crosswind kite power (for large-scale wind power production), J. Energy, 4, 106–111, <ext-link xlink:href="https://doi.org/10.2514/3.48021" ext-link-type="DOI">10.2514/3.48021</ext-link>, 1980.</mixed-citation></ref>
      <ref id="bib1.bib25"><label>25</label><mixed-citation>Mann, J.: The spatial structure of neutral atmospheric surface-layer turbulence, J. Fluid Mech., 273, 141–168, <ext-link xlink:href="https://doi.org/10.1017/S0022112094001886" ext-link-type="DOI">10.1017/S0022112094001886</ext-link>, 1994.</mixed-citation></ref>
      <ref id="bib1.bib26"><label>26</label><mixed-citation>Mohammadi, A., Maggiore, M., and Consolini, L.: Dynamic virtual holonomic constraints for stabilization of closed orbits in underactuated mechanical systems, Automatica, 94, 112–124, <ext-link xlink:href="https://doi.org/10.1016/j.automatica.2018.04.023" ext-link-type="DOI">10.1016/j.automatica.2018.04.023</ext-link>, 2018.</mixed-citation></ref>
      <ref id="bib1.bib27"><label>27</label><mixed-citation>Mohammed, T., Oland, E., and Fagiano, L.: Fault Tolerant Flight Control for the Traction Phase of Pumping Airborne Wind Energy Systems, International Journal of Control, Automation and Systems, <ext-link xlink:href="https://doi.org/10.1007/s12555-023-0588-z" ext-link-type="DOI">10.1007/s12555-023-0588-z</ext-link>, 2024a.</mixed-citation></ref>
      <ref id="bib1.bib28"><label>28</label><mixed-citation>Mohammed, T., Busk, J., Oland, E., and Fagiano, L.: Large-Scale Reverse Pumping for Rigid-Wing Airborne Wind Energy Systems, J. Guid. Control Dynam., 47, 1748–1758, <ext-link xlink:href="https://doi.org/10.2514/1.G007859" ext-link-type="DOI">10.2514/1.G007859</ext-link>, 2024b.</mixed-citation></ref>
      <ref id="bib1.bib29"><label>29</label><mixed-citation>Mohammed, T. M. H.: Automatic control solutions to enhance the reliabilty of airborne wind energy systems, Department of Electronics, Information and Bioengineering, Polytechnic University of Milan, Milan, Italy, <uri>https://tesidottorato.depositolegale.it/handle/20.500.14242/206817</uri> (last access: 11 August 2026), 2024.</mixed-citation></ref>
      <ref id="bib1.bib30"><label>30</label><mixed-citation>NASA: Experience with the X-15 Adaptive Flight Control System, National Aeronautics and Space Administraion, NASA Technical Note D-6208, <uri>https://ntrs.nasa.gov/api/citations/19710008947/downloads/19710008947.pdf</uri> (last access: 11 August 2026), 1971.</mixed-citation></ref>
      <ref id="bib1.bib31"><label>31</label><mixed-citation>Nguyen, D. H.: duchn7/circular_reel_out_controller: Initial release, Zenodo [code], <ext-link xlink:href="https://doi.org/10.5281/zenodo.21775971" ext-link-type="DOI">10.5281/zenodo.21775971</ext-link>, 2026.</mixed-citation></ref>
      <ref id="bib1.bib32"><label>32</label><mixed-citation>Nguyen, D. H., Lowenberg, M. H., and Oland, E.: Improving Power Generation in Rigid-Wing Groundgen Airborne Wind Energy Systems Using Feedback Control – A Parametric Study, Wind Energy, 29, e70109, <ext-link xlink:href="https://doi.org/10.1002/we.70109" ext-link-type="DOI">10.1002/we.70109</ext-link>, 2026a.</mixed-citation></ref>
      <ref id="bib1.bib33"><label>33</label><mixed-citation>Nguyen, D. H., Lowenberg, M. H., and Oland, E.: Trimming a rigid-wing airborne wind system for coordinated circular flights, Wind Energ. Sci., 11, 285–298, <ext-link xlink:href="https://doi.org/10.5194/wes-11-285-2026" ext-link-type="DOI">10.5194/wes-11-285-2026</ext-link>, 2026b.</mixed-citation></ref>
      <ref id="bib1.bib34"><label>34</label><mixed-citation>Orzan, N., Leone, C., Mazzolini, A., Oyero, J., and Celani, A.: Optimizing airborne wind energy with reinforcement learning, The Eur. Phys. J. E, 46, 2, <ext-link xlink:href="https://doi.org/10.1140/epje/s10189-022-00259-2" ext-link-type="DOI">10.1140/epje/s10189-022-00259-2</ext-link>, 2023.</mixed-citation></ref>
      <ref id="bib1.bib35"><label>35</label><mixed-citation>Pereira, A. F. C. and Sousa, J. M. M.: A Review on Crosswind Airborne Wind Energy Systems: Key Factors for a Design Choice, Energies, 16, 351, <ext-link xlink:href="https://doi.org/10.3390/en16010351" ext-link-type="DOI">10.3390/en16010351</ext-link>, 2023.</mixed-citation></ref>
      <ref id="bib1.bib36"><label>36</label><mixed-citation>Rapp, S., Schmehl, R., Oland, E., and Haas, T.: Cascaded Pumping Cycle Control for Rigid Wing Airborne Wind Energy Systems, J. Guid. Control Dynam., 42, 2456–2473, <ext-link xlink:href="https://doi.org/10.2514/1.G004246" ext-link-type="DOI">10.2514/1.G004246</ext-link>, 2019.</mixed-citation></ref>
      <ref id="bib1.bib37"><label>37</label><mixed-citation>Rezapour, E., Pettersen, K. Y., Liljebäck, P., Gravdahl, J. T., and Kelasidi, E.: Path following control of planar snake robots using virtual holonomic constraints: theory and experiments, Robotics and Biomimetics, 1, 3, <ext-link xlink:href="https://doi.org/10.1186/s40638-014-0003-6" ext-link-type="DOI">10.1186/s40638-014-0003-6</ext-link>, 2014.</mixed-citation></ref>
      <ref id="bib1.bib38"><label>38</label><mixed-citation>Schmehl, R.: Airborne Wind Energy – Advances in Technology Development and Research, Green Energy and Technology, Springer Singapore, Singapore, <ext-link xlink:href="https://doi.org/10.1007/978-981-10-1947-0" ext-link-type="DOI">10.1007/978-981-10-1947-0</ext-link>, 2018.</mixed-citation></ref>
      <ref id="bib1.bib39"><label>39</label><mixed-citation>Shiriaev, A., Perram, J. W., and Canudas-de-Wit, C.: Constructive tool for orbital stabilization of underactuated nonlinear systems: virtual constraints approach, IEEE T. Automat. Contr., 50, 1164–1176, <ext-link xlink:href="https://doi.org/10.1109/TAC.2005.852568" ext-link-type="DOI">10.1109/TAC.2005.852568</ext-link>, 2005.</mixed-citation></ref>
      <ref id="bib1.bib40"><label>40</label><mixed-citation>Taylor, G. I.: The Statistical Theory of Isotropic Turbulence, J. Aeronaut. Sci., 4, 311–315, <ext-link xlink:href="https://doi.org/10.2514/8.419" ext-link-type="DOI">10.2514/8.419</ext-link>, 1937.</mixed-citation></ref>
      <ref id="bib1.bib41"><label>41</label><mixed-citation>Trevisi, F.: Conceptual design of windplanes, Department of Aerospace Science and Technology, Polytechnic University of Milan, Milano, Italy, <uri>https://www.politesi.polimi.it/handle/10589/216694</uri> (last access: 11 August 2026), 2024.</mixed-citation></ref>
      <ref id="bib1.bib42"><label>42</label><mixed-citation>Trevisi, F., Croce, A., and Riboldi, C. E. D.: Flight Stability of Rigid Wing Airborne Wind Energy Systems, Energies, 14, 7704, <ext-link xlink:href="https://doi.org/10.3390/en14227704" ext-link-type="DOI">10.3390/en14227704</ext-link>, 2021.</mixed-citation></ref>
      <ref id="bib1.bib43"><label>43</label><mixed-citation>Vermillion, C., Cobb, M., Fagiano, L., Leuthold, R., Diehl, M., Smith, R. S., Wood, T. A., Rapp, S., Schmehl, R., Olinger, D., and Demetriou, M.: Electricity in the air: Insights from two decades of advanced control research and experimental flight testing of airborne wind energy systems, Annu. Rev. Control, 52, 330–357, <ext-link xlink:href="https://doi.org/10.1016/j.arcontrol.2021.03.002" ext-link-type="DOI">10.1016/j.arcontrol.2021.03.002</ext-link>, 2021.</mixed-citation></ref>
      <ref id="bib1.bib44"><label>44</label><mixed-citation>Vinha, S., Fernandes, G. M., Fernandes, M. C. R. M., and Fontes, F. A. C. C.: Motion Primitives on a Spherical Surface with Application to Tethered Aircraft Guidance, 2025 IEEE 19th International Conference on Control &amp; Automation (ICCA), Tallinn, Estonia, 30 June–3 July, 186–191, <ext-link xlink:href="https://doi.org/10.1109/ICCA65672.2025.11129856" ext-link-type="DOI">10.1109/ICCA65672.2025.11129856</ext-link>, 2025. </mixed-citation></ref>
      <ref id="bib1.bib45"><label>45</label><mixed-citation>Vinha, S., Fernandes, G. M., Nguyen, H. T., Fernandes, M. C. R. M., and Fontes, F. A. C. C.: Automatic Circular Take-off and Landing of Motorized Tethered Aircraft, 2024 European Control Conference (ECC), 25–28 June 2024, 681–686, <ext-link xlink:href="https://doi.org/10.23919/ECC64448.2024.10590893" ext-link-type="DOI">10.23919/ECC64448.2024.10590893</ext-link>, 2024. </mixed-citation></ref>
      <ref id="bib1.bib46"><label>46</label><mixed-citation>Zgraggen, A. U., Fagiano, L., and Morari, M.: Automatic Retraction and Full-Cycle Operation for a Class of Airborne Wind Energy Generators, IEEE T. Contr. Syst. T., 24, 594–608, <ext-link xlink:href="https://doi.org/10.1109/TCST.2015.2452230" ext-link-type="DOI">10.1109/TCST.2015.2452230</ext-link>, 2016.</mixed-citation></ref>

  </ref-list></back>
    <!--<article-title-html>Controlling rigid-wing airborne wind energy systems during circular flight without exact path following</article-title-html>
<abstract-html/>
<ref-html id="bib1.bib1"><label>1</label><mixed-citation>
      
Ahrens, U., Diehl, M., and Schmehl, R.: Airborne Wind Energy, 1st, Green
Energy and Technology, Springer Berlin, Heidelberg, Germany,
<a href="https://doi.org/10.1007/978-3-642-39965-7" target="_blank">https://doi.org/10.1007/978-3-642-39965-7</a>, 2013.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib2"><label>2</label><mixed-citation>
      Basile, L., Berni, M. G., and Celani, A.: Harvesting energy from turbulent
winds with reinforcement learning, Europhys. Lett., 152, 43001, <a href="https://doi.org/10.1209/0295-5075/ae1ce9" target="_blank">https://doi.org/10.1209/0295-5075/ae1ce9</a>, 2025.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib3"><label>3</label><mixed-citation>
      Berra, A. and Fagiano, L.: An optimal reeling control strategy for pumping
airborne wind energy systems without wind speed feedback, 2021 European
Control Conference (ECC), Online, 29 June–2 July, <a href="https://doi.org/10.23919/ECC54610.2021.9655018" target="_blank">https://doi.org/10.23919/ECC54610.2021.9655018</a>, 2021.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib4"><label>4</label><mixed-citation>
      Cherubini, A., Papini, A., Vertechy, R., and Fontana, M.: Airborne Wind
Energy Systems: A review of the technologies, Renewable and Sustainable
Energy Reviews, 51, 1461–1476, <a href="https://doi.org/10.1016/j.rser.2015.07.053" target="_blank">https://doi.org/10.1016/j.rser.2015.07.053</a>, 2015.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib5"><label>5</label><mixed-citation>
      Cobb, M. K., Barton, K., Fathy, H., and Vermillion, C.: Iterative
Learning-Based Path Optimization for Repetitive Path Planning, With
Application to 3-D Crosswind Flight of Airborne Wind Energy Systems, IEEE
T. Contr. Syst. T., 28, 1447–1459, <a href="https://doi.org/10.1109/TCST.2019.2912345" target="_blank">https://doi.org/10.1109/TCST.2019.2912345</a>, 2020.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib6"><label>6</label><mixed-citation>
      Consolini, L., Maggiore, M., Nielsen, C., and Tosques, M.: Path following
for the PVTOL aircraft, Automatica, 46, 1284–1296, <a href="https://doi.org/10.1016/j.automatica.2010.05.014" target="_blank">https://doi.org/10.1016/j.automatica.2010.05.014</a>, 2010.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib7"><label>7</label><mixed-citation>
      DeLosRíos-Navarrete, F., González-García, J., Castro-Fernández, I., and Sánchez-Arriaga, G.: A small-scale and autonomous testbed for three-line delta kites applied to airborne wind energy, Wind Energ. Sci., 10, 1153–1166, <a href="https://doi.org/10.5194/wes-10-1153-2025" target="_blank">https://doi.org/10.5194/wes-10-1153-2025</a>, 2025.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib8"><label>8</label><mixed-citation>
      Dief, T. N., Fechner, U., Schmehl, R., Yoshida, S., and Rushdi, M. A.:
Adaptive Flight Path Control of Airborne Wind Energy Systems, Energies, 13,
667, <a href="https://doi.org/10.3390/en13030667" target="_blank">https://doi.org/10.3390/en13030667</a>, 2020.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib9"><label>9</label><mixed-citation>
      Diehl, M.: Airborne Wind Energy: Basic Concepts and Physical Foundations,
in: Airborne Wind Energy, edited by: Ahrens, U., Diehl, M., and Schmehl, R.,
Springer Berlin Heidelberg, Berlin, Heidelberg, 3–22,
<a href="https://doi.org/10.1007/978-3-642-39965-7_1" target="_blank">https://doi.org/10.1007/978-3-642-39965-7_1</a>, 2013.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib10"><label>10</label><mixed-citation>
      Duda, D. F., Fuest, H., Islam, T., and Moormann, D.: Flight guidance concept for the launching and landing phase of a flying wing used in an airborne wind energy system, Wind Energ. Sci., 10, 661–678, <a href="https://doi.org/10.5194/wes-10-661-2025" target="_blank">https://doi.org/10.5194/wes-10-661-2025</a>, 2025

    </mixed-citation></ref-html>
<ref-html id="bib1.bib11"><label>11</label><mixed-citation>
      Egeland, O. and Gravdahl, J.: Modeling and Simulation for Automatic Control,
2nd, Marine Cybernetics, Trondheim, Norway, <a href="https://www.researchgate.net/publication/256492530_Modeling_and_Simulation_for_Automatic_Control" target="_blank"/> (last access: 11 August 2026), 2003.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib12"><label>12</label><mixed-citation>
      Fagiano, L., Zgraggen, A. U., Morari, M., and Khammash, M.: Automatic
Crosswind Flight of Tethered Wings for Airborne Wind Energy: Modeling,
Control Design, and Experimental Results, IEEE T. Contr. Syst. T., 22, 1433–1447, <a href="https://doi.org/10.1109/TCST.2013.2279592" target="_blank">https://doi.org/10.1109/TCST.2013.2279592</a>, 2014.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib13"><label>13</label><mixed-citation>
      Fagiano, L., Nguyen-Van, E., Rager, F., Schnez, S., and Ohler, C.:
Autonomous Takeoff and Flight of a Tethered Aircraft for Airborne Wind
Energy, IEEE T. Contr. Syst. T., 26, 151–166, <a href="https://doi.org/10.1109/TCST.2017.2661825" target="_blank">https://doi.org/10.1109/TCST.2017.2661825</a>, 2018.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib14"><label>14</label><mixed-citation>
      Fechner, U., van der Vlugt, R., Schreuder, E., and Schmehl, R.: Dynamic
model of a pumping kite power system, Renewable Energy, 83, 705–716, <a href="https://doi.org/10.1016/j.renene.2015.04.028" target="_blank">https://doi.org/10.1016/j.renene.2015.04.028</a>, 2015.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib15"><label>15</label><mixed-citation>
      Fernandes, M. C. R. M., Vinha, S., Paiva, L. T., and Fontes, F. A. C. C.: L0
and L1 Guidance and Path-Following Control for Airborne Wind Energy Systems,
Energies, 15, 1390, <a href="https://doi.org/10.3390/en15041390" target="_blank">https://doi.org/10.3390/en15041390</a>, 2022.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib16"><label>16</label><mixed-citation>
      Freidovich, L., Robertsson, A., Shiriaev, A., and Johansson, R.: Periodic
motions of the Pendubot via virtual holonomic constraints: Theory and
experiments, Automatica, 44, 785–791, <a href="https://doi.org/10.1016/j.automatica.2007.07.011" target="_blank">https://doi.org/10.1016/j.automatica.2007.07.011</a>,
2008.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib17"><label>17</label><mixed-citation>
      Fritz, F.: Application of an Automated Kite System for Ship Propulsion and
Power Generation, in: Airborne Wind Energy, edited by: Ahrens, U., Diehl,
M., and Schmehl, R., Springer Berlin Heidelberg, Berlin, Heidelberg,
359–372, <a href="https://doi.org/10.1007/978-3-642-39965-7_20" target="_blank">https://doi.org/10.1007/978-3-642-39965-7_20</a>, 2013.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib18"><label>18</label><mixed-citation>
      Hauser, J., Sastry, S., and Meyer, G.: Nonlinear control design for slightly
non-minimum phase systems: Application to V/STOL aircraft, Automatica, 28,
665–679, <a href="https://doi.org/10.1016/0005-1098(92)90029-F" target="_blank">https://doi.org/10.1016/0005-1098(92)90029-F</a>, 1992.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib19"><label>19</label><mixed-citation>
      Heydarnia, O., Wauters, J., Lefebvre, T., and Crevecoeur, G.: Optimal Path
Planning of Airborne Wind Energy Systems with a Flexible Tether, J.
Guid. Control Dynam., 48, <a href="https://doi.org/10.2514/1.G008967" target="_blank">https://doi.org/10.2514/1.G008967</a>, 2025.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib20"><label>20</label><mixed-citation>
      Jordan, D. W. and Smith, P.: Nonlinear Ordinary Differential Equations – An
Introduction for Scientists and Engineers, Oxford University Press, New
York, ISBN 978-0-19-920824-1 (Hbk), ISBN 978-0-19-920825-8 (Pbk), 2007.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib21"><label>21</label><mixed-citation>
      Kelly, M.: From standard wind measurements to spectral characterization: turbulence length scale and distribution, Wind Energ. Sci., 3, 533–543, <a href="https://doi.org/10.5194/wes-3-533-2018" target="_blank">https://doi.org/10.5194/wes-3-533-2018</a>, 2018.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib22"><label>22</label><mixed-citation>
      Khalil, H. K.: Nonlinear Systems, 3rd, Prentice Hall, New Jersey, ISBN-10 1292039213, ISBN-13 978-1292039213, 2002.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib23"><label>23</label><mixed-citation>
      Khurshid, Y., Paul, P., Elhesasy, M., Ali, B., Kamra, M. M., Okasha, M., and
Dief, T. N.: From inception to commercialization: A systematic review of
airborne wind energy systems, Sustainable Energy Technologies and
Assessments, 83, 104623, <a href="https://doi.org/10.1016/j.seta.2025.104623" target="_blank">https://doi.org/10.1016/j.seta.2025.104623</a>, 2025.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib24"><label>24</label><mixed-citation>
      Loyd, M. L.: Crosswind kite power (for large-scale wind power production),
J. Energy, 4, 106–111, <a href="https://doi.org/10.2514/3.48021" target="_blank">https://doi.org/10.2514/3.48021</a>, 1980.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib25"><label>25</label><mixed-citation>
      Mann, J.: The spatial structure of neutral atmospheric surface-layer
turbulence, J. Fluid Mech., 273, 141–168, <a href="https://doi.org/10.1017/S0022112094001886" target="_blank">https://doi.org/10.1017/S0022112094001886</a>, 1994.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib26"><label>26</label><mixed-citation>
      Mohammadi, A., Maggiore, M., and Consolini, L.: Dynamic virtual holonomic
constraints for stabilization of closed orbits in underactuated mechanical
systems, Automatica, 94, 112–124, <a href="https://doi.org/10.1016/j.automatica.2018.04.023" target="_blank">https://doi.org/10.1016/j.automatica.2018.04.023</a>,
2018.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib27"><label>27</label><mixed-citation>
      Mohammed, T., Oland, E., and Fagiano, L.: Fault Tolerant Flight Control for
the Traction Phase of Pumping Airborne Wind Energy Systems, International
Journal of Control, Automation and Systems, <a href="https://doi.org/10.1007/s12555-023-0588-z" target="_blank">https://doi.org/10.1007/s12555-023-0588-z</a>,
2024a.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib28"><label>28</label><mixed-citation>
      Mohammed, T., Busk, J., Oland, E., and Fagiano, L.: Large-Scale Reverse
Pumping for Rigid-Wing Airborne Wind Energy Systems, J. Guid.
Control Dynam., 47, 1748–1758, <a href="https://doi.org/10.2514/1.G007859" target="_blank">https://doi.org/10.2514/1.G007859</a>, 2024b.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib29"><label>29</label><mixed-citation>
      Mohammed, T. M. H.: Automatic control solutions to enhance the reliabilty of
airborne wind energy systems, Department of Electronics, Information and
Bioengineering, Polytechnic University of Milan, Milan, Italy, <a href="https://tesidottorato.depositolegale.it/handle/20.500.14242/206817" target="_blank"/> (last access: 11 August 2026), 2024.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib30"><label>30</label><mixed-citation>
      NASA: Experience with the X-15 Adaptive Flight Control System, National
Aeronautics and Space Administraion, NASA Technical Note D-6208, <a href="https://ntrs.nasa.gov/api/citations/19710008947/downloads/19710008947.pdf" target="_blank"/> (last access: 11 August 2026), 1971.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib31"><label>31</label><mixed-citation>
      Nguyen, D. H.: duchn7/circular_reel_out_controller: Initial release, Zenodo [code],
<a href="https://doi.org/10.5281/zenodo.21775971" target="_blank">https://doi.org/10.5281/zenodo.21775971</a>, 2026.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib32"><label>32</label><mixed-citation>
      Nguyen, D. H., Lowenberg, M. H., and Oland, E.: Improving Power Generation
in Rigid-Wing Groundgen Airborne Wind Energy Systems Using Feedback
Control – A Parametric Study, Wind Energy, 29, e70109, <a href="https://doi.org/10.1002/we.70109" target="_blank">https://doi.org/10.1002/we.70109</a>, 2026a.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib33"><label>33</label><mixed-citation>
      Nguyen, D. H., Lowenberg, M. H., and Oland, E.: Trimming a rigid-wing airborne wind system for coordinated circular flights, Wind Energ. Sci., 11, 285–298, <a href="https://doi.org/10.5194/wes-11-285-2026" target="_blank">https://doi.org/10.5194/wes-11-285-2026</a>, 2026b.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib34"><label>34</label><mixed-citation>
      Orzan, N., Leone, C., Mazzolini, A., Oyero, J., and Celani, A.: Optimizing
airborne wind energy with reinforcement learning, The Eur. Phys.
J. E, 46, 2, <a href="https://doi.org/10.1140/epje/s10189-022-00259-2" target="_blank">https://doi.org/10.1140/epje/s10189-022-00259-2</a>, 2023.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib35"><label>35</label><mixed-citation>
      Pereira, A. F. C. and Sousa, J. M. M.: A Review on Crosswind Airborne Wind
Energy Systems: Key Factors for a Design Choice, Energies, 16, 351, <a href="https://doi.org/10.3390/en16010351" target="_blank">https://doi.org/10.3390/en16010351</a>, 2023.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib36"><label>36</label><mixed-citation>
      Rapp, S., Schmehl, R., Oland, E., and Haas, T.: Cascaded Pumping Cycle
Control for Rigid Wing Airborne Wind Energy Systems, J. Guid.
Control Dynam., 42, 2456–2473, <a href="https://doi.org/10.2514/1.G004246" target="_blank">https://doi.org/10.2514/1.G004246</a>, 2019.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib37"><label>37</label><mixed-citation>
      Rezapour, E., Pettersen, K. Y., Liljebäck, P., Gravdahl, J. T., and
Kelasidi, E.: Path following control of planar snake robots using virtual
holonomic constraints: theory and experiments, Robotics and Biomimetics, 1,
3, <a href="https://doi.org/10.1186/s40638-014-0003-6" target="_blank">https://doi.org/10.1186/s40638-014-0003-6</a>, 2014.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib38"><label>38</label><mixed-citation>
      Schmehl, R.: Airborne Wind Energy – Advances in Technology Development and
Research, Green Energy and Technology, Springer Singapore, Singapore,
<a href="https://doi.org/10.1007/978-981-10-1947-0" target="_blank">https://doi.org/10.1007/978-981-10-1947-0</a>, 2018.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib39"><label>39</label><mixed-citation>
      Shiriaev, A., Perram, J. W., and Canudas-de-Wit, C.: Constructive tool for
orbital stabilization of underactuated nonlinear systems: virtual
constraints approach, IEEE T. Automat. Contr., 50, 1164–1176,
<a href="https://doi.org/10.1109/TAC.2005.852568" target="_blank">https://doi.org/10.1109/TAC.2005.852568</a>, 2005.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib40"><label>40</label><mixed-citation>
      Taylor, G. I.: The Statistical Theory of Isotropic Turbulence, J.
Aeronaut. Sci., 4, 311–315, <a href="https://doi.org/10.2514/8.419" target="_blank">https://doi.org/10.2514/8.419</a>, 1937.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib41"><label>41</label><mixed-citation>
      Trevisi, F.: Conceptual design of windplanes, Department of Aerospace
Science and Technology, Polytechnic University of Milan, Milano, Italy, <a href="https://www.politesi.polimi.it/handle/10589/216694" target="_blank"/> (last access: 11 August 2026),
2024.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib42"><label>42</label><mixed-citation>
      Trevisi, F., Croce, A., and Riboldi, C. E. D.: Flight Stability of Rigid
Wing Airborne Wind Energy Systems, Energies, 14, 7704, <a href="https://doi.org/10.3390/en14227704" target="_blank">https://doi.org/10.3390/en14227704</a>, 2021.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib43"><label>43</label><mixed-citation>
      Vermillion, C., Cobb, M., Fagiano, L., Leuthold, R., Diehl, M., Smith, R.
S., Wood, T. A., Rapp, S., Schmehl, R., Olinger, D., and Demetriou, M.:
Electricity in the air: Insights from two decades of advanced control
research and experimental flight testing of airborne wind energy systems,
Annu. Rev. Control, 52, 330–357, <a href="https://doi.org/10.1016/j.arcontrol.2021.03.002" target="_blank">https://doi.org/10.1016/j.arcontrol.2021.03.002</a>, 2021.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib44"><label>44</label><mixed-citation>
      Vinha, S., Fernandes, G. M., Fernandes, M. C. R. M., and Fontes, F. A. C.
C.: Motion Primitives on a Spherical Surface with Application to Tethered
Aircraft Guidance, 2025 IEEE 19th International Conference on Control &amp;
Automation (ICCA), Tallinn, Estonia, 30 June–3 July, 186–191, <a href="https://doi.org/10.1109/ICCA65672.2025.11129856" target="_blank">https://doi.org/10.1109/ICCA65672.2025.11129856</a>, 2025.


    </mixed-citation></ref-html>
<ref-html id="bib1.bib45"><label>45</label><mixed-citation>
      Vinha, S., Fernandes, G. M., Nguyen, H. T., Fernandes, M. C. R. M., and
Fontes, F. A. C. C.: Automatic Circular Take-off and Landing of Motorized
Tethered Aircraft, 2024 European Control Conference (ECC), 25–28 June 2024,
681–686, <a href="https://doi.org/10.23919/ECC64448.2024.10590893" target="_blank">https://doi.org/10.23919/ECC64448.2024.10590893</a>, 2024.


    </mixed-citation></ref-html>
<ref-html id="bib1.bib46"><label>46</label><mixed-citation>
      Zgraggen, A. U., Fagiano, L., and Morari, M.: Automatic Retraction and
Full-Cycle Operation for a Class of Airborne Wind Energy Generators, IEEE
T. Contr. Syst. T., 24, 594–608, <a href="https://doi.org/10.1109/TCST.2015.2452230" target="_blank">https://doi.org/10.1109/TCST.2015.2452230</a>, 2016.

    </mixed-citation></ref-html>--></article>
