MARINE SURFACE VESSEL TRAJECTORY TRACKING CONTROL

20250111785 ยท 2025-04-03

    Inventors

    Cpc classification

    International classification

    Abstract

    Systems, methods, and computer program products for controlling a marine surface vessel. Nominal position and nominal heading signals are received from a trajectory planner, and nominal force and nominal moment signals generated based thereon. A velocity tracking error signal is generated based on the sensed velocity signal, and a yaw rate tracking error signal is generated based on the sensed yaw rate signal. A force tracking error control signal is generated based on the velocity tracking error signal, and a moment tracking error control signal is generated based on the yaw rate tracking error signal. A force command signal is generated by summing the nominal force and force tracking error control signals, and a moment command signal is generated by summing the nominal moment and moment tracking error control signals. The force and moment command signals are used to control one or more actuators of the marine surface vessel.

    Claims

    1. A method of controlling a marine surface vessel including one or more actuators, comprising: receiving a nominal position signal and a nominal heading signal each corresponding to a planned trajectory of the marine surface vessel in a navigation frame; generating a plurality of nominal control signals based on one or more of the nominal position signal and the nominal heading signal, the nominal control signals including a nominal force signal and a nominal moment signal; receiving a plurality of sensed value signals including a sensed position signal, a sensed velocity signal, a sensed yaw angle signal, and a sensed yaw rate signal; generating a plurality of tracking error signals including a position tracking error signal generated based on the sensed position signal, a velocity tracking error signal generated based on the sensed velocity signal, a yaw angle tracking error signal generated based on the sensed yaw angle signal, and a yaw rate tracking error signal generated based on the sensed yaw rate signal; generating a plurality of tracking error control signals including a velocity tracking error control signal generated based on the position tracking error signal, a force tracking error control signal generated based on the velocity tracking error signal, a yaw tracking error control signal generated based on a sway component of the velocity tracking error signal, and a moment tracking error control signal generated based on the yaw rate tracking error signal; generating a plurality of command signals including a force command signal generated by summing the nominal force signal and the force tracking error control signal and a moment command signal generated by summing the nominal moment signal and the moment tracking error control signal; and controlling the one or more actuators of the marine surface vessel based on the force command signal and the moment command signal.

    2. The method of claim 1, wherein generating the nominal force signal comprises: pseudo-differentiating the nominal position signal to generate an n-frame nominal velocity signal; applying a first inverse translational kinematics function including a nominal yaw angle signal as a coefficient of rotation to the n-frame nominal velocity signal to generate a b-frame nominal velocity signal; pseudo-differentiating the nominal b-frame velocity signal to generate a b-frame nominal acceleration signal; and applying an inverse translational dynamics function including the nominal yaw rate signal, the b-frame nominal velocity signal, the b-frame nominal acceleration signal, and a mass of the marine surface vessel to generate the b-frame nominal force signal.

    3. The method of claim 1, wherein generating the force tracking error control signal comprises: subtracting a sensed position signal from the nominal position signal to generate an n-frame position tracking error signal; applying the inverse translational kinematics function including the nominal yaw angle signal as the coefficient of rotation to the position tracking error signal to generate a b-frame down-range error vector signal; applying a first proportional-integral control law to the b-frame down-range error vector signal to generate a velocity tracking error control signal; summing the nominal velocity signal and the velocity tracking error control signal to generate a velocity command signal; subtracting the sensed velocity signal from the velocity command signal to generate the velocity tracking error signal; and applying a second proportional-integral control law to the velocity tracking error signal to generate the force tracking error control signal.

    4. The method of claim 1, wherein generating the force command signal comprises: summing the nominal force signal and the force tracking error control signal.

    5. The method of claim 1, wherein generating the moment tracking error control signal comprises: generating a yaw angle command signal based on the force command signal; subtracting a sensed yaw angle signal from the yaw angle command signal to generate a yaw angle tracking error signal; applying a third proportional-integral control law to the yaw angle tracking error signal to generate a yaw rate tracking error control signal; summing the yaw rate tracking error control signal and the nominal yaw rate signal to generate a yaw rate command signal; subtracting the sensed yaw rate signal from the yaw rate command signal to generate the yaw rate tracking error signal; and applying a fourth proportional-integral control law to the yaw rate tracking error signal to generate the moment tracking error control signal.

    6. The method of claim 1, wherein generating the moment command signal comprises: summing the nominal moment signal and the moment tracking error control signal.

    7. The method of claim 1, wherein generating the nominal moment signal comprises: using the nominal lateral force signal to compute a nominal sideslip angle signal based on the vessel's inverse force model; subtracting the nominal sideslip angle signal from the nominal heading angle signal and lowpass filtering the difference to generate a nominal yaw angle signal; pseudo-differentiating the nominal yaw angle signal to generate a nominal yaw rate signal; pseudo-differentiating the nominal yaw rate signal to generate a nominal yaw acceleration signal, and multiplying the nominal yaw acceleration signal by a rotational inertia of the marine surface vessel to generate the nominal moment signal.

    8. The method of claim 7, wherein determining the nominal yaw angle signal comprises: generating a nominal velocity signal based on the nominal position signal; generating a nominal yaw rate signal based on the nominal heading signal; generating a nominal force signal including a nominal surge component and a nominal sway component based on the nominal yaw rate signal and the nominal velocity signal; determining a required sway velocity to overcome the lateral drift based on the sway component of the nominal force signal and the vessel's force model parameters; generating a nominal sideslip signal based on a ratio of the required sway velocity to the surge component of the nominal velocity; and subtracting the nominal sideslip signal from the nominal heading signal to generate the nominal yaw angle signal.

    9. The method of claim 8, wherein generating the nominal velocity signal comprises: applying a second inverse translational kinematics function including the nominal heading signal as the coefficient of rotation to the pseudo-differentiated n-frame nominal position signal to generate the nominal b-frame velocity signal.

    10. The method of claim 8, wherein generating the nominal yaw rate signal comprises: pseudo-differentiating the nominal heading signal to generate the nominal yaw rate signal.

    11. The method of claim 8, wherein the marine surface vessel has a mass, and generating the nominal force signal comprises: pseudo-differentiating the nominal velocity signal to generate a nominal acceleration signal; applying a second inverse translational dynamics function including the nominal yaw rate signal as the coefficient of rotation to the nominal velocity signal to generate a result; subtracting the result from the nominal acceleration signal to generate a difference; and multiplying the difference by the mass of the marine surface vessel to generate the nominal force signal.

    12. A system for controlling a marine surface vessel including one or more actuators, comprising: one or more processors; and a memory coupled to the one or more processors and including program code that, when executed by the one or more processors, causes the system to: receive a nominal position signal and a nominal heading signal each corresponding to a planned trajectory of the marine surface vessel in a navigation frame; generate a plurality of nominal control signals based on one or more of the nominal position signal and the nominal heading signal, the nominal control signals including a nominal force signal and a nominal moment signal; receive a plurality of sensed value signals including a sensed position signal, a sensed velocity signal, a sensed yaw angle signal, and a sensed yaw rate signal; generate a plurality of tracking error signals including a position tracking error signal generated based on the sensed position signal, a velocity tracking error signal generated based on the sensed velocity signal, a yaw angle tracking error signal generated based on the sensed yaw angle signal, and a yaw rate tracking error signal generated based on the sensed yaw rate signal; generate a plurality of tracking error control signals including a velocity tracking error control signal generated based on the position tracking error signal, a force tracking error control signal generated based on the velocity tracking error signal, a yaw tracking error control signal generated based on a sway component of the velocity tracking error signal, and a moment tracking error control signal generated based on the yaw rate tracking error signal; generate a plurality of command signals including a force command signal generated by summing the nominal force signal and the force tracking error control signal and a moment command signal generated by summing the nominal moment signal and the moment tracking error control signal; and control the one or more actuators of the marine surface vessel based on the force command signal and the moment command signal.

    13. The system of claim 12, wherein generating the nominal force signal comprises: pseudo-differentiating the nominal position signal to generate an n-frame nominal velocity signal; applying a first inverse translational kinematics function including a nominal yaw angle signal as a coefficient of rotation to the n-frame nominal velocity signal to generate a b-frame nominal velocity signal; pseudo-differentiating the nominal b-frame velocity signal to generate a b-frame nominal acceleration signal; and applying an inverse translational dynamics function including the nominal yaw rate signal, the b-frame nominal velocity signal, the b-frame nominal acceleration signal, and a mass of the marine surface vessel to generate the b-frame nominal force signal.

    14. The system of claim 12, wherein generating the force tracking error control signal comprises: subtracting a sensed position signal from the nominal position signal to generate an n-frame position tracking error signal; applying the inverse translational kinematics function including the nominal yaw angle signal as the coefficient of rotation to the position tracking error signal to generate a b-frame down-range error vector signal; applying a first proportional-integral control law to the b-frame down-range error vector signal to generate a velocity tracking error control signal; summing the nominal velocity signal and the velocity tracking error control signal to generate a velocity command signal; subtracting the sensed velocity signal from the velocity command signal to generate the velocity tracking error signal; and applying a second proportional-integral control law to the velocity tracking error signal to generate the force tracking error control signal.

    15. The system of claim 12, wherein generating the force command signal comprises: summing the nominal force signal and the force tracking error control signal.

    16. The system of claim 12, wherein generating the moment tracking error control signal comprises: generating a yaw angle command signal based on the force command signal; subtracting a sensed yaw angle signal from the yaw angle command signal to generate a yaw angle tracking error signal; applying a third proportional-integral control law to the yaw angle tracking error signal to generate a yaw rate tracking error control signal; summing the yaw rate tracking error control signal and the nominal yaw rate signal to generate a yaw rate command signal; subtracting the sensed yaw rate signal from the yaw rate command signal to generate the yaw rate tracking error signal; and applying a fourth proportional-integral control law to the yaw rate tracking error signal to generate the moment tracking error control signal.

    17. The system of claim 12, wherein generating the moment command signal comprises: summing the nominal moment signal and the moment tracking error control signal.

    18. The system of claim 12, wherein generating the nominal moment signal comprises: using the nominal lateral force signal to compute a nominal sideslip angle signal based on the vessel's inverse force model; subtracting the nominal sideslip angle signal from the nominal heading angle signal and lowpass filtering the difference to generate a nominal yaw angle signal; pseudo-differentiating the nominal yaw angle signal to generate a nominal yaw rate signal; pseudo-differentiating the nominal yaw rate signal to generate a nominal yaw acceleration signal, and multiplying the nominal yaw acceleration signal by a rotational inertia of the marine surface vessel to generate the nominal moment signal.

    19. The system of claim 18, wherein determining the nominal yaw angle signal comprises: generating a nominal velocity signal based on the nominal position signal; generating a nominal yaw rate signal based on the nominal heading signal; generating a nominal force signal including a nominal surge component and a nominal sway component based on the nominal yaw rate signal and the nominal velocity signal; determining a required sway velocity to overcome the lateral drift based on the sway component of the nominal force signal and the vessel's force model parameters; generating a nominal sideslip signal based on a ratio of the required sway velocity to the surge component of the nominal velocity; and subtracting the nominal sideslip signal from the nominal heading signal to generate the nominal yaw angle signal.

    20. The system of claim 19, wherein generating the nominal velocity signal comprises: applying a second inverse translational kinematics function including the nominal heading signal as the coefficient of rotation to the pseudo-differentiated n-frame nominal position signal to generate the nominal b-frame velocity signal.

    21. The system of claim 20, wherein generating the nominal yaw rate signal comprises: pseudo-differentiating the nominal heading signal to generate the nominal yaw rate signal.

    22. The system of claim 20, wherein the marine surface vessel has a mass, and generating the nominal force signal comprises: pseudo-differentiating the nominal velocity signal to generate a nominal acceleration signal; applying a second inverse translational dynamics function including the nominal yaw rate signal as the coefficient of rotation to the nominal velocity signal to generate a result; subtracting the result from the nominal acceleration signal to generate a difference; and multiplying the difference by the mass of the marine surface vessel to generate the nominal force signal.

    23. A computer program product for controlling a marine surface vessel including one or more actuators, comprising: a non-transitory computer-readable storage medium; and program code stored on the non-transitory computer-readable storage medium that, when executed by one or more processors, causes the one or more processors to: receive a nominal position signal and a nominal heading signal each corresponding to a planned trajectory of the marine surface vessel in a navigation frame; generate a plurality of nominal control signals based on one or more of the nominal position signal and the nominal heading signal, the nominal control signals including a nominal force signal and a nominal moment signal; receive a plurality of sensed value signals including a sensed position signal, a sensed velocity signal, a sensed yaw angle signal, and a sensed yaw rate signal; generate a plurality of tracking error signals including a position tracking error signal generated based on the sensed position signal, a velocity tracking error signal generated based on the sensed velocity signal, a yaw angle tracking error signal generated based on the sensed yaw angle signal, and a yaw rate tracking error signal generated based on the sensed yaw rate signal; generate a plurality of tracking error control signals including a velocity tracking error control signal generated based on the position tracking error signal, a force tracking error control signal generated based on the velocity tracking error signal, a yaw tracking error control signal generated based on a sway component of the velocity tracking error signal, and a moment tracking error control signal generated based on the yaw rate tracking error signal; generate a plurality of command signals including a force command signal generated by summing the nominal force signal and the force tracking error control signal and a moment command signal generated by summing the nominal moment signal and the moment tracking error control signal; and control the one or more actuators of the marine surface vessel based on the force command signal and the moment command signal.

    Description

    BRIEF DESCRIPTION OF THE DRAWINGS

    [0036] The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate various embodiments of the invention and, together with the general description of the invention given above, and the detailed description of the embodiments given below, serve to explain the embodiments of the invention.

    [0037] FIG. 1 is a diagrammatic view of an exemplary model including a marine surface vessel, a navigation frame coordinate system, and a body-fixed frame coordinate system.

    [0038] FIG. 2A is a diagrammatic view of the marine surface vessel of FIG. 1, and depicts actuators for propelling and steering the marine surface vessel.

    [0039] FIG. 2B is schematic view of a trajectory linearization control based controller that produces a tracking command.

    [0040] FIG. 3 is a tabular view of vessel parameters for the marine surface vessel of FIGS. 1 and 2.

    [0041] FIG. 4 is a schematic view of a guidance control system for controlling the marine surface vessel of FIGS. 1 and 2.

    [0042] FIG. 5A is a schematic view of a pseudo-differentiator that may be use by the guidance control system of FIG. 4.

    [0043] FIG. 5B is a schematic view of an exemplary sub-controller that may be used to determine the nominal yaw angle.

    [0044] FIG. 6 is a graphical view of exemplary open-loop trajectory tracking and actuator signals that may be generated by the guidance control system of FIG. 4.

    [0045] FIGS. 7 and 8 are graphical views depicting command signals that produced the tracks of FIG. 6.

    [0046] FIG. 9 is a graphical view of a two-dimensional trajectory in the navigation frame generated by a closed-loop controller for a circular test trajectory.

    [0047] FIGS. 10-12 are graphical views showing sensed position tracking in the x-axis and y-axis, and sensed nominal yaw angle for the trajectory of FIG. 9.

    [0048] FIGS. 13-15 are graphical views showing vessel speed for the u-axis, v-axis, and yaw rate for the trajectory of FIG. 9.

    [0049] FIGS. 16-18 are graphical views showing actuator control signals and sideslip angle for the trajectory of FIG. 9.

    [0050] FIGS. 18B-18G are graphical views showing vessel body to inertial frame pose errors for the trajectory of FIG. 9.

    [0051] FIG. 19 is a graphical view of a two-dimensional trajectory in the navigation frame generated by a closed-loop controller for a sinusoidal test trajectory.

    [0052] FIGS. 20-22 are graphical views showing sensed position tracking in the x-axis and y-axis, and sensed nominal yaw angle for the trajectory of FIG. 19.

    [0053] FIGS. 23-25 are graphical views showing vessel speed for the u-axis, v-axis, and yaw rate for the trajectory of FIG. 19.

    [0054] FIGS. 26-28 are graphical views showing actuator control signals and sideslip angle for the trajectory of FIG. 19.

    [0055] FIGS. 28B-28G are graphical views showing vessel body to inertial frame pose errors for the trajectory of FIG. 19.

    [0056] FIG. 29 is a tabular view of trajectory tracking errors for the simulation results depicted by FIGS. 9-28.

    [0057] FIG. 30 is a diagrammatic view of an exemplary computer that may be used to implement one or more of the components or processes shown in FIGS. 4 and 5.

    [0058] It should be understood that the appended drawings are not necessarily to scale, and may present a somewhat simplified representation of various features illustrative of the basic principles of the invention. The specific design features of the sequence of operations disclosed herein, including, for example, specific dimensions, orientations, locations, and shapes of various illustrated components, may be determined in part by the particular intended application and use environment. Certain features of the illustrated embodiments may have been enlarged or distorted relative to others to facilitate visualization and a clear understanding. In particular, thin features may be thickened, for example, for clarity or illustration.

    DETAILED DESCRIPTION

    [0059] Embodiments of the present invention adapt a trajectory linearization control architecture to a three degrees of freedom marine surface vessel model. The marine surface vessel model is derived from the rigid body equations of motion to achieve a trajectory tracking objective with under-actuated two degrees of freedom control actuators. An exemplary approach implements a four-loop structure that simplifies controller design. This approach also separates the equations of motion into rigid-body, forces and moment, and actuator models. This streamlines the controller design as the generalized force components are handled in the control allocation. An exemplary embodiment of the open-loop nominal controller has been tested to demonstrate its ability to bring a marine surface vessel response close to the nominal trajectory. To overcome the under-actuation limitations, a novel approach to the allocation of the sway force to yaw control is also disclosed.

    [0060] The marine surface vessel trajectory guidance control system disclosed herein improves tracking performance with significantly reduced design, development, deployment, and maintenance costs. Because the controller design is analytical in nature, it is scalable and tunable, and has a significantly reduce computational cost as compared to known systems. Embodiments of the present invention are applicable to marine surface vessels of different sizes and for different applications, such as transportation, scientific exploration, defense, and personal use. With suitable extension to six degrees of freedom, embodiments of the invention may also be used for submarine vessels.

    [0061] Trajectory tracking is an aspect of motion control for surface vessels that is used for various applications such as autonomous transportation, defense, and scientific survey tasks. However, nonlinearities and uncertainties can arise during the motion control of marine vessels, making trajectory tracking a complex problem. To tackle this issue, embodiments of the present invention may employ a trajectory linearization control architecture to handle nonlinearities and uncertainties in vessel motion control.

    [0062] Embodiments of the present invention are described in the context of a nonlinear three degrees of freedom rigid-body vessel model. The disclosed guidance control system uses a multi-nested loop trajectory linearization control architecture, and includes an open-loop nominal controller and a closed-loop tracking error controller to achieve integrated motion control of the marine surface vessel. Particular emphasis may be made on the design and tuning of the open-loop nominal controller. This is typically lacking in vessel control applications of trajectory linearization, and in particular for marine surface vessels. Under-actuation may be overcome by assigning sway control to the yaw motion control sub-system. In one embodiment, the guidance control system is divided into four loops that ease the design process. The stability of the overall system may be achieved using the time scale separation principle since each of the individual loops is exponentially stabilized by the tracking error controller corresponding to the loop in question. Simulation results based on a CyberShip II scale model vessel demonstrate that the proposed approach provides satisfactory tracking of a circular trajectory. Overall, the proposed approach effectively addresses the trajectory tracking problem for under-actuated marine surface vessels.

    [0063] The below disclosure is organized into Vessel Modeling, Controller Design, and Simulation Results sections. In the Vessel Modeling section, assumptions have been made to reduce the general six degrees of freedom rigid body model to a three degrees of freedom kinematic and dynamic model of the marine surface vessel. The Vessel Modeling section also describes the generalized forces that act on the marine surface vessel, the interactions that cause them, and an actuator model. The actuator model subsection discloses the corresponding force model equations and the dynamics model of the actuators. The controller design section describes the design of different open-loop nominal and closed-loop feedback modules for the translational and rotational kinematics and dynamics loops of the marine surface vessel model, as well as the control allocation of the command signals. A separate subsection is dedicated to the tuning of the open-loop nominal controller. The Simulation Results section discloses a test case scenario using the parameter values of a sub-scale model vessel for the proposed guidance control system.

    I. Vessel Modeling

    [0064] The below described marine surface vessel model is derived by applying the laws of physics to a rigid body. FIG. 1 depicts an exemplary marine surface vessel 10, a navigation frame (n-frame) coordinate system 12, and a body-fixed frame (b-frame) coordinate system 14. The marine surface vessel kinematic and dynamic equations are determined relative to the n-frame and b-frame. The n-frame follows the North-East-Down (NED) convention, where the x.sub.n-axis points to the North, the y.sub.n-axis points to the East and the z.sub.n-axis points downward. The b-frame coordinate system 14 has an origin at the center of gravity 16 of the vessel, with the x.sub.b-axis pointing toward the bow, the y.sub.b-axis pointing toward the starboard side, and the z.sub.b-axis pointing toward the bottom of the hull.

    [0065] This modeling method produces a six degrees of freedom model of surface vessel kinematics and dynamics. However, the following assumptions may be made to reduce the model to three degrees of freedom, thereby facilitating the design of a baseline guidance control system. These assumptions include: (1) a flat and inertial earth, (2) no rotation about the x.sub.b-axis (rolling), no motion along the z.sub.b-axis (heaving), no rotation about the y.sub.b-axis (pitching), (3) the center of gravity and the center of buoyancy are co-located vertically on the z.sub.b-axis, (4) xz-plane symmetry, and (5) calm water and the absence of wind. Thus, the only movement included in the three degrees of freedom model is linear motion in the x.sub.b-axis (surge), linear motion in the y.sub.b-axis (sway), and rotation about the z.sub.b-axis (yaw).

    [0066] The resulting three degrees of freedom marine surface vessel model may be represented by the following Equations of motion:

    Rigid-Body Model

    Translational Kinematics

    [00001] [ x . y . ] = [ cos ( ) - sin ( ) sin ( ) cos ( ) ] [ u v ] Eqn . 1

    Translational Dynamics

    [00002] [ u . v . ] = [ 0 r - r 0 ] [ u v ] + 1 m [ F ] Eqn . 2

    Rotational Kinematics

    [00003] . = r Eqn . 3

    Rotational Dynamics

    [00004] r . = 1 I z N m Eqn . 4

    Equation 1 may be referred to as the translational kinematics function, and defines the translational kinematics of a rigid body, e.g., between velocity [u v].sup.T in the body frame and velocity [{dot over (x)} {dot over (y)}].sup.T in the n-frame. Equation 2 may be referred to as the translational dynamics function, and defines the translational dynamics of the rigid body. Equation 3 may be referred to as the rotational kinematics function, and defines the rotational kinematics of the rigid body. Equation 4 may be referred to as the rotational dynamics function, and defines the rotational dynamics of the rigid body. In the above Equations, is the angular offset of the b-frame from the n-frame (yaw angle), u is the velocity of the vessel along the x.sub.b-axis, v is the velocity of the vessel along the y.sub.b-axis, m is the mass of the vessel, r is the rotational velocity of the vessel (yaw rate), I.sub.z is the rotational inertia of the vessel about the z.sub.b-axis, and N.sub.m is the moment of force about the z.sub.b-axis.

    Force and Moment Models

    [0067] The force vector F in Equation 2 may be composed of the following terms:

    [00005] F = [ F x F y ] = F H + F D + F C + F w Eqn . 5

    where F.sub.H represents a hydrodynamic force due to the added masses resulting from the interaction of the vessel hull with the surrounding fluid, F.sub.D represents the damping forces resulting from skin friction, vortex shedding, and fluid drag, F.sub.C represents the force vector generated by the actuators, and F.sub.w represents the disturbance forces due to wind and waves. The hydrodynamic force F.sub.H and damping force F.sub.D may be provided by Equations 6 and 7, below:

    [00006] F H = [ X u . u . Y v . v . + Y r . r . ] - [ Y v . vr + Y r . r 2 X u . ur ] Eqn . 6 F D = [ X u u + X .Math. "\[LeftBracketingBar]" u .Math. "\[RightBracketingBar]" u .Math. "\[LeftBracketingBar]" u .Math. "\[RightBracketingBar]" u + X uuu u 3 Y v v + Y r r + Y .Math. "\[LeftBracketingBar]" v .Math. "\[RightBracketingBar]" v .Math. "\[LeftBracketingBar]" v .Math. "\[LeftBracketingBar]" v + Y .Math. "\[LeftBracketingBar]" r .Math. "\[RightBracketingBar]" v .Math. "\[LeftBracketingBar]" r .Math. "\[RightBracketingBar]" v + Y .Math. "\[LeftBracketingBar]" v .Math. "\[RightBracketingBar]" r .Math. "\[LeftBracketingBar]" v .Math. "\[RightBracketingBar]" r + Y .Math. "\[LeftBracketingBar]" r .Math. "\[RightBracketingBar]" r .Math. "\[LeftBracketingBar]" r .Math. "\[RightBracketingBar]" r ] Eqn . 7

    [0068] The moment of force (moment) N.sub.m in Equation 4 may include the following terms:

    [00007] N m = N CR + N H + N D + N C + N w Eqn . 8

    where N.sub.CR is the moment due the Coriolis and centripetal effects (which equals zero when the b-frame origin and center of gravity are co-located), N.sub.H is the hydrodynamic moment due to added mass, N.sub.D is the damping moment, N.sub.C is the control moment produced by the actuators, and N.sub.w is the disturbance due to wind and waves. The N.sub.H and N.sub.D moments may be described by the following Equations:

    [00008] N H = Y r . v . + N r . r . + Y v . uv - Y r . ur - X u . uv Eqn . 9 N D = N v v + N r r + N .Math. "\[LeftBracketingBar]" v .Math. "\[RightBracketingBar]" v .Math. "\[LeftBracketingBar]" v .Math. "\[RightBracketingBar]" v + N .Math. "\[LeftBracketingBar]" r .Math. "\[RightBracketingBar]" v .Math. "\[LeftBracketingBar]" r .Math. "\[RightBracketingBar]" v + N .Math. "\[LeftBracketingBar]" v .Math. "\[RightBracketingBar]" r .Math. "\[LeftBracketingBar]" v .Math. "\[RightBracketingBar]" r + N .Math. "\[LeftBracketingBar]" r .Math. "\[RightBracketingBar]" r .Math. "\[LeftBracketingBar]" r .Math. "\[RightBracketingBar]" r Eqn . 10

    In Equations 6, 7, 9, and 10, X.sub.*, Y.sub.* and N.sub.* are the hydrodynamic derivatives in the surge, sway, and yaw directions, respectively, and the derivatives X.sub.{dot over (u)}, Y.sub.{dot over (u)} and N.sub.{dot over (r)} are the added masses resulting from the interaction of the vessel's hull with water.

    Actuator Model

    [0069] The actuator model is taken from a sub-scale marine surface vessel known as CyberShip II, which is described in detail by R. e. a. Skjetne, Adaptive maneuvering, with experiments, for a model ship in a marine control laboratory, Automatica, vol. 44, pp. 289-298, February 2005. The vessel in Skjetne is originally equipped with a pair of propeller-rudder propulsion systems, located aft of the vessel equidistant from the center line of the vessel.

    [0070] FIG. 2 depicts a surface vessel 10 including a single propeller 18 and rudder 20 to which the disclosed control systems may be applied without loss of generality. The same control effect can be achieved by doubling the control derivatives of the two propeller-rudder system, except that the dual-actuator configuration allows for yaw control by differential thrust. However, the control effectiveness is typically negligible as compared to that of the rudders. Differential thrust may therefore only be useful for very low speed maneuvering, and can generally be ignored. The thrust (custom-character), rudder drag (custom-character) and transversal lift force of the rudder (custom-character) exerted on the marine surface vessel by the one propeller-rudder configuration may be functions of the propeller shaft angular velocity .sub.sh and the rudder angle .sub.rd. These functions are given by the following Equations:

    [00009] ( sh , rd ) = { k p sh 2 sh 2 0 k n .Math. "\[LeftBracketingBar]" sh .Math. "\[RightBracketingBar]" sh sh 2 < 0 Eqn . 11 ( sh , rd ) = { ( 1 + k n sh ) ( k 1 .Math. "\[LeftBracketingBar]" rd .Math. "\[RightBracketingBar]" ) sh 2 0 0 sh 2 < 0 Eqn . 12 ( sh , rd ) = { ( 1 + k n sh ) ( k 1 .Math. "\[LeftBracketingBar]" rd .Math. "\[RightBracketingBar]" ) sh 2 0 0 sh 2 < 0 Eqn . 13

    where custom-character and custom-character are the thrust of the propeller for forward and reverse motion respectively, custom-character and custom-character are the drag coefficients of the rudder, and custom-character and custom-character are the lift coefficients of the rudder. These coefficients, doubled for one actuator, are depicted in FIG. 3. Equations 11-13 are given in the actuator reference frame parallel to the b-frame, whose origin is at (l.sub.x, 0) with respect to the origin of the b-frame. The resulting force vector in the surge and sway directions is given by Equation 14:

    [00010] [ F C , x F C , y N C ] = [ - l x ] Eqn . 14

    [0071] The actuator dynamics model presumes that for the sub-scale marine surface vessel, the propeller and rudder actuators are, respectively, DC motors and DC servo motors. These motors may be modeled as second order transfer functions of the form:

    [00011] G act ( s ) = n , act 2 s 2 + 2 act n , act s + n , act 2 Eqn . 15 a

    [0072] For simplicity, the propeller and rudder actuators may be modeled, respectively, as second order transfer functions of the form:

    [00012] G sh ( s ) = n , sh 2 s 2 + 2 sh n , sh s + n , sh 2 Eqn . 15 b G rd ( s ) = n , rd 2 s 2 + 2 rd n , rd s + n , rd 2 Eqn . 15 c

    II. Control System Design

    [0073] The trajectory linearization control architecture is composed of two controllers, namely an open-loop nominal controller and a closed-loop feedback controller. The nominal controller is design and constructed via dynamic pseudo-inversion of the vessel model. The feedback controller regulates the error dynamics and achieves exponential stability. FIG. 2B depicts a trajectory linearization control based controller that produces a tracking command u.sub.com which is the sum of the b-frame nominal velocity component u.sub.nom and the b-frame velocity tracking error control component u.sub.ctrl.

    [0074] The overall marine surface vessel controller design is simplified by the cascade of the three degrees of freedom marine surface vessel into subsystems. This structure may be referred to as a multi-nested loop trajectory linearization controller. The basic trajectory linearization controller structure depicted by FIG. 2B may be applied to each subsystem. Exponential stability of the overall system may be achieved one subsystem at a time by the time scale separation principle. FIG. 4 depicts an exemplary multi-nested loop trajectory linearization controller. In an embodiment of the present invention, the control algorithm may be realized under the following three assumptions. The first assumption is that a feasible nominal pose trajectory .sub.nom(t)=[x.sub.nom(t), y.sub.nom(t), .sub.nom(t)].sup.T is provided by an external trajectory planner. Due to the multi-nested loop partition, the translational position may be represented as P(t)=[x(t), y(t)].sup.T in the below disclosure. The second assumption is that the nominal trajectory .sub.nomC.sup.2. The third assumption is that all motion states .sub.nom(t)=[x.sub.nom(t), y.sub.nom(t), .sub.nom(t)].sup.T are directly measurable.

    [0075] The approach of the disclosed guidance control system design includes generating a command signal *.sub.com for each state variable in which the command signal *.sub.com includes an open-loop nominal component *.sub.nom and a system stabilizing closed-loop tracking error control component *.sub.ctrl, i.e., *.sub.com=*.sub.nom+*.sub.ctrl. The nominal control signals may be obtained by nonlinear dynamic pseudo-inversion of the vessel model, which takes the system response close to the nominal trajectory. The nonlinear time-varying tracking error dynamics may then be linearized along the nominal trajectory. Exponential stabilization of the error dynamics is effectively achieved by the implementation of a closed-loop tracking error controller with linear time-varying feedback controller gains. The tracking error controller produces the stabilizing tracking error control component of the command signal. This way, the domain of attraction of the tracking error dynamics is maximized as compared to controllers that are linearized at fixed operating points and stabilized by gain scheduling.

    [0076] The guidance control system design is further simplified by partitioning the marine surface vessel model into four nested loops: two translational loops and two rotational loops, per the Equations of motion 1-4. This structure is referred to herein as a multi-nested loop trajectory linearization control architecture. The stability of the overall system is achieved by the time scale separation principle since each of the individual loops is exponentially stabilized by a closed-loop feedback module, such that the bandwidth of an outer loop may be limited by at least a factor of of its inner loop bandwidth. The bandwidth of an outer loop may be limited by at least a factor of of its inner loop bandwidth based on the singular perturbation (time-scale separation) theory. As a consequence, the complexity of the controller design required for each feedback loop is reduced.

    [0077] FIG. 4 depicts an exemplary multi-nested loop trajectory linearization guidance control system 40 which may be used to control the marine surface vessel 10 of FIGS. 1 and 2. The guidance control system 40 includes a translational kinetics loop 42, a translational dynamics loop 44, a rotational kinetics loop 46, and a rotational dynamics loop 48. The upper portion of each loop may collectively define an open-loop nominal controller 50 of guidance control system 40, and the lower portion of each loop may collectively define a closed-loop tracking error controller 52 of guidance control system 40. In the below description of the guidance control system 40, the subscript sen may be used to identify sensed value signals (such as a sensed position signal P.sub.sen), the subscript nom may be used to identify nominal control signals (i.e., the open loop control signals determined from the planned trajectory, such as a nominal velocity signal V.sub.nom), the subscript err may be used to identify tracking error signals (such as a position tracking error signal P.sub.err), the subscript ctrl may be used to identify tracking error control signals (such as a velocity tracking error control signal V.sub.ctrl), and the subscript com may be used to identify command signals (such as a force command signal F.sub.com). Command signals may be generated by adding tracking error control signals to their respective nominal control signals.

    [0078] The nominal controller 50 may include a plurality of open-loop nominal control modules, e.g., a translational kinematics module 54, a translational dynamics module 56, a nominal force allocation module 58, a rotational kinematics module 60, and a rotational dynamics module 62. Each of the nominal control modules 54, 56, 58, 60, 62 may generate a respective nominal control signal. The nominal control signals may include a nominal position signal P.sub.nom, a nominal velocity signal V.sub.nom, a nominal force signal F.sub.nom, a nominal yaw angle signal .sub.nom, a nominal yaw rate signal r.sub.nom, and a nominal moment signal N.sub.m,nom. One or more of these signals may include a surge component (which may also be referred to as a longitudinal component) and a sway component (which may also be referred to as a lateral component).

    [0079] The tracking error controller 52 of guidance control system 40 may include a plurality of closed-loop feedback modules, e.g., a translational kinematics feedback module 64, a translational dynamics feedback module 66, a force allocation module 68, a rotational kinematics feedback module 70, a rotational dynamics feedback module 72, and a moment allocation module 74. Each of the feedback modules 64, 66, 68, 70, 72 may be associated with a corresponding one of the plurality of nominal control modules 54, 56, 58, 60, 62, and may generate a respective tracking error control signal *.sub.ctrl. A moment allocation module 74 may receive the moment command signal N.sub.m,com and provide command signals to the vessel actuators, e.g., the propulsion system and rudder.

    [0080] A vessel sensor system 76 may provide a sensed position P.sub.sen, sensed velocity signal V.sub.sen, sensed yaw angle signal .sub.sen, and sensed yaw rate signal r.sub.sen to the guidance control system 40. To determine these sensed values, the vessel sensor system 76 may use one or more of a Global Positioning System (GPS), inertial measurement unit (IMU), or any other suitable sensors configured to detect the position, orientation, and movement of the surface vessel.

    [0081] A trajectory planner 78 may provide a nominal position signal P.sub.nom and a nominal heading signal .sub.nom to one or more of the translational kinematics module 54, nominal force allocation module 58, and translational kinematics feedback module 64. The translational kinematics module 54 may generate a nominal velocity signal V.sub.nom based on the nominal position signal P.sub.nom. and nominal yaw angle signal .sub.nom. A difference between the nominal position signal P.sub.nom and sensed position P.sub.sen may be determined to generate a position tracking error signal P.sub.err, e.g., P.sub.err=P.sub.nomP.sub.sen. The position tracking error signal P.sub.err may be provided to the translational kinematics feedback module 64, which may generate a velocity tracking error control signal V.sub.ctrl based thereon.

    [0082] The nominal velocity signal V.sub.nom and nominal yaw rate signal r.sub.nom may be provided to the translational dynamics module 56, which may generate a nominal force signal F.sub.nom based thereon. The nominal velocity signal V.sub.nom may also be summed with the velocity tracking error control signal V.sub.ctrl to generate a velocity command signal V.sub.com. A difference between the velocity command signal V.sub.com and sensed velocity signal V.sub.sen may be determined to define a velocity tracking error signal V.sub.err., e.g., V.sub.err=V.sub.comV.sub.sen. The velocity tracking error signal V.sub.err may be provided to the translational dynamics feedback module 66, which may generate a force tracking error control signal F.sub.ctrl based thereon.

    [0083] The nominal force signal F.sub.nom may be provided to the nominal force allocation module 58. The nominal force allocation module 58 may generate a nominal yaw angle signal .sub.nom based on the nominal force signal F.sub.nom and nominal heading signal .sub.nom. The nominal yaw angle signal .sub.nom may be determined from the nominal force signal [F.sub.x,nom, F.sub.y,nom].sup.T as .sub.nom=tan.sup.1(F.sub.y,nom/F.sub.x,nom) for F.sub.x,nom>0, and .sub.nom=tan.sup.1(F.sub.y,nom/F.sub.x,nom+) for F.sub.x,nom<0. The nominal force signal F.sub.nom may also be summed with the force tracking error control signal F.sub.ctrl to generate a force command signal F.sub.com. The force command signal F.sub.com may be provided to the force allocation module 68, which may generate a yaw tracking error control signal .sub.ctrl based thereon, e.g., .sub.ctrl=tan.sup.1(F.sub.y,com/F.sub.x,com) for F.sub.x,com>0, and .sub.ctrl=tan.sup.1(F.sub.y,com/F.sub.x,com+) for F.sub.x,com<0. The yaw tracking error control signal .sub.ctrl may be added to the nominal yaw angle signal .sub.nom to generate a yaw angle command signal .sub.com. A difference between the yaw angle command signal .sub.com and sensed yaw signal .sub.sen may be determined to define a yaw angle tracking error signal .sub.err, e.g., .sub.err=.sub.com.sub.sen. The yaw angle tracking error signal .sub.err may be provided to the rotational kinematics feedback module 70, which may generate a yaw rate tracking error control signal r.sub.ctrl. In each case, F.sub.x,* may be referred to as a longitudinal or surge force signal and Fy, * may be referred to as a lateral or sway force signal. Thus, each of the above signals may comprise a surge component and a sway component.

    [0084] The nominal yaw angle signal .sub.nom may be provided to the rotational kinematics module 60, which may generate a nominal yaw rate signal r.sub.nom based thereon. The nominal yaw rate signal r.sub.nom may be summed with the yaw rate tracking error control signal r.sub.ctrl to generate a yaw rate command signal r.sub.com. A difference between the yaw rate command signal rcom and sensed yaw rate signal r.sub.sen may be determined to define a yaw rate tracking error signal r.sub.err, e.g., r.sub.err=r.sub.comr.sub.sen. The yaw rate tracking error signal r.sub.err may be provided to the rotational dynamics feedback module 72, which may generate a moment tracking error control signal N.sub.m,ctrl based thereon.

    [0085] The nominal yaw angle signal .sub.nom may also be provided to the rotational dynamics module 62, which may generate a nominal moment signal N.sub.m,nom based thereon. The nominal moment signal N.sub.m,nom and moment tracking error control signal N.sub.m,ctrl may be summed to generate the moment command signal N.sub.m,com. The force command signal F.sub.com and moment command signal N.sub.m,com may be provided to the moment allocation module 74, which may generate control signals for controlling one or more of the propeller shaft angular velocity .sub.sh and the rudder angle .sub.rd of the surface vessel 10.

    Nominal Controller Design

    [0086] As described above with respect to FIG. 4, the nominal controller 50 may generate nominal control signals for each of the guidance control system loops 42, 44, 46, 48. The nominal control signals may be generated using a psuedo-dynamic inversions of Equations 1-4. Accordingly, the nominal control signals may be provided by the following Equations:

    [00013] V nom = [ cos ( nom ) - sin ( nom ) sin ( nom ) cos ( nom ) ] - 1 nom Eqn . 16 [ F x , nom F y , nom ] = m [ nom nom ] - m [ 0 r nom - r nom 0 ] [ u nom v nom ] Eqn . 17 nom = nom - nom Eqn . 18 r nom = nom Eqn . 19 N m , nom = Eqn . 20

    where * denotes a variable, {circumflex over (*)} denotes the low-pass filtered variable *, and custom-character denotes a derivative of the low-pass filtered variable {circumflex over (*)}. Thus, {circumflex over (P)}.sub.nom may be referred to as the filtered nominal position signal, custom-character.sub.nom may be referred to as the differential filtered nominal position signal, {circumflex over ()}.sub.nom may be referred to as the filtered nominal yaw angle signal, custom-character.sub.nom may be referred to as the differential filtered nominal yaw angle signal, {circumflex over (r)}.sub.nom may be referred to as the filtered nominal yaw rate signal, and custom-character.sub.nom may be referred to as the differential filtered nominal yaw rate signal. Equation 16 may be referred to as the inverse translational kinematics function and, as depicted, includes the nominal yaw angle .sub.nom as a coefficient of rotation. Equation 17 may be referred to as the inverse translational dynamics function and, as depicted, includes the nominal yaw rate r.sub.nom as a coefficient of rotation. Equation 19 may be referred to as the inverse rotational kinematics function, and Equation 20 may be referred to as the inverse rotational dynamics function.

    [0087] FIG. 5A depicts an exemplary pseudo-differentiator 80 that may be used to obtain differential filtered variables. A pseudo-differentiator may be needed due to the exact derivative operation being anticausal, and thus not realizable in real-time operations. The depicted pseudo-differentiator 80 may also allow for a desired dynamics of the nominal variables to be designed by selecting the values of .sub.diff and .sub.n,diff. By way of example, the pseudo-differentiator 80 may take the form:

    [00014] G diff ( s ) = n , diff 2 s s 2 + 2 diff n , diff s + n , diff 2 Eqn . 21 a

    where G.sub.diff(s) is the low-pass filtered pseudo differential of s. Viewed another way,

    [00015] [ ] = [ 0 1 - n , diff 2 - 2 diff n , diff ] [ * ^ ] + [ 0 n , diff 2 ] Eqn . 21 b

    where {circumflex over (*)} and custom-character denote the lowpass filtered variable and its derivative, respectively.

    [0088] A static inverse may be obtained by eliminating the pseudo-derivatives in Equations 17-20. Such a static inverse can be used in path-following control and determining steady-state trim controls. It may be noted that the nominal yaw angle signal .sub.nom may be determined as the difference between the nominal heading signal .sub.nom and a nominal sideslip angle signal from .sub.nom(.sub.nom=.sub.nom.sub.nom), where the nominal heading signal X.sub.nom is provided by the trajectory planner 78. The nominal sideslip angle signal .sub.nom may be computed from a reference vessel inverse with the reference pose trajectory [x.sub.nom, y.sub.nom, .sub.nom] from the trajectory planner as follows.

    [0089] As shown by Equation 22 below, a nominal velocity V.sub.nom may be determined by low-pass filtering the position reference signal P.sub.nom to generate a low-pass filtered position reference signal {circumflex over (P)}.sub.nom. The low-pass filtered position reference signal {circumflex over (P)}.sub.nom may be differentiated to generate a differential filtered nominal position signal custom-character.sub.nom. These steps may be performed concurrently, e.g., by pseudo-differentiator 80, such that differential filtered nominal position signal custom-character.sub.nom is produced, e.g., as depicted by FIG. 5A. An inverse translational dynamics function including the nominal heading signal .sub.nom as a coefficient of rotation may then be applied to the differential filtered nominal position signal custom-character.sub.nom to generate the nominal velocity signal V.sub.nom.

    [0090] The longitudinal force and torque commanded to the actuators may be calculated by inversion of Equations 5 and 8 to produce Equations 21c and 21d.

    [00016] F Cx ; com = F x , nom - F H , xnom - F D , xnom Eqn . 21 c N C , com = N nom - N H , nom - N D , nom Eqn . 21 d

    The lateral force F.sub.y may be controlled by using the nominal sideslip angle .sub.nom as a virtual control effector with the directional loop as the actuator. FIG. 5B depicts an exemplary algorithm that may implemented in block 58 of the guidance system controller 40 to determine the nominal yaw angle signal .sub.nom. The nominal sideslip angle .sub.nom may be determined from the nominal pose trajectory .sub.nom(t) once the nominal yaw angle signal .sub.nom is known. The required lateral force F.sub.y,req may calculated from the nominal pose trajectory .sub.nom using Equations 22-24 below:

    [00017] V req = [ u req v req ] = [ cos ( req ) - sin ( req ) sin ( req ) cos ( req ) ] - 1 req Eqn . 22

    A required yaw rate signal r.sub.req may be generated by low-pass filtering the required heading signal .sub.req to generate a low-pass filtered required heading signal {circumflex over ()}.sub.req, and differentiating the filtered required heading signal {circumflex over ()}.sub.req to generate a differential filtered required heading signal custom-character.sub.req as shown by Equation 23.

    [00018] r req = req Eqn . 23

    [0091] An inverse translational dynamics function including the required yaw rate signal r.sub.req as a coefficient of rotation may be applied to the nominal velocity signal V.sub.req, and the result subtracted from a differential filtered nominal velocity signal custom-character.sub.req. This difference may be multiplied by the mass m of the marine surface vessel 10 to generate the required force signal F.sub.req as shown by Equation 24a including a nominal surge component F.sub.x,nom and a nominal sway component F.sub.y,nom.

    [00019] [ F x , req F y , req ] = - m [ 0 r req - r req 0 ] V req Eqn . 24

    [0092] The required lateral velocity v.sub.req may be approximated from the required sway force F.sub.y,req with the most significant coefficients Y.sub.|v|v and Y.sub.v. The required velocity v.sub.req may then be determined by:

    [00020] v req = sign ( v nom ) ( - Y v + Y v 2 + p 2 Y .Math. "\[LeftBracketingBar]" v .Math. "\[RightBracketingBar]" v ) Eqn . 25 a p = { 4 F y , req Y .Math. "\[LeftBracketingBar]" v .Math. "\[RightBracketingBar]" v sign ( v nom ) sign ( F y , req ) sign ( v nom ) 0 otherwise Eqn . 25 b

    where:
    Equation 25a presents the erroneous condition sign(F.sub.y,req)=sign(v.sub.nom) that may be caused by approximation errors as v.sub.nom.fwdarw.0.

    [0093] The required sideslip angle .sub.req may then be calculated using the required velocity v.sub.req from Equation 25a and u.sub.req by the approximation:

    [00021] req ( t ) = v req ( t ) u req ( t ) Eqn . 26

    The required sideslip angle .sub.req may then be used to compute the required heading angle .sub.req using Equation 24e:

    [00022] req = req - req Eqn . 27

    The required yaw angle .sub.req may then be used to determine the rate of change of the nominal yaw angle:

    [00023] . nom ( t ) = B ( req ( t ) - nom ( t ) ) Eqn . 28

    where .sub.B is a design parameter.

    [0094] Strict assumptions of constant sideslip angle and constant generalized velocities for a trajectory comprising straight lines and circular segments may be eliminated in the present approach, so long as the nominal trajectory is smooth according to Assumptions 1-2.

    [0095] The above required signals *.sub.req only arise in the nominal sideslip .sub.nom and nominal heading angle .sub.nom computation, as shown in FIG. 5B, due to an intermediate step between the reference and nominal signals. Since the trajectory designer is not concerned with the dynamics of the vessel, at this stage the nominal heading angle .sub.nom=.sub.nom, and nominal sideslip angle .sub.nom=0. If the nominal trajectory calls for a turn, a centrifugal force will be generated due to the coupling of the lateral and rotational dynamics, which will cause the vessel to drift off course. This drift can be overcome by steering the vessel to create a sideslip angle, which in turn will generate a hydrodynamic centripetal force to cancel the centrifugal force. The required sideslip angle is computed by inverting the required side force model, which is then added to the nominal course angle .sub.nom to compute the required vessel heading angle .sub.req. Then the current nominal heading angle is updated to the new required heading angle .sub.req via a smoothing lowpass filter. Essentially, the required variables are computed offline from the nominal signals and then used to update the online nominal signals.

    Nominal Controller Tuning

    [0096] Improved open-loop performance may lead to increased stability margins and less corrective actuator activities in the closed-loop controller. It may therefore be advantageous to tune the nominal controller 50 to optimize open-loop performance. The tuning of the nominal controller 50 may be done in such a way that the module being tuned has a fast enough response to avoid producing an excessive lag to its outer loop motion, but not so fast as to demand an excessive response from its inner loop. To this end, the time-scale separation principle may be applied considering the rotational dynamics of the innermost loop and assigned the fastest response. As a starting point, subsequent modules may be assigned a dynamic response one third as fast as the previous module.

    [0097] The translational kinematic module 54 may need to have enough bandwidth to accommodate the highest expected frequency (curvature) in the desired translational motion. A good rule of thumb may be to assign a bandwidth ten times higher than the expected motion bandwidth.

    [0098] To exemplify the tuning process, FIGS. 6-8 show the open-loop trajectory tracking and actuator signals of an exemplary subscale marine surface vessel model for a circular trajectory starting at rest. For an under-tuned open-loop controller where the bandwidth .sub.n,diff is too small, there may be a lack of initial acceleration. This may produce a large initial error that leads to a large deviation from the nominal trajectory. An over-tuned controller with a very high .sub.n,diff may produce good initial acceleration and initial tracking. However, the actuators may show excessively high rate of activities, which may cause actuator wear-and-tear, or actuator saturation that leads to instability in closed-loop control. A well-tuned controller may produce a good trade-off in both tracking performance and actuator signal demand. It is worth noting that the observed increasing position error is not due to instability. Rather, they are the cumulative errors from the initial transient response, which can be eliminated by the feedback controller. The diameter of the steady-state circular orbits are also about 10% smaller than the nominal. This may be the result of about 4% rudder allocation error, which can be compensated for by the feedback controller.

    Error Feedback Stabilizing Controller Design

    [0099] The tracking error controller 52 may be designed to exponentially stabilize the deviations of the sensed values from their corresponding nominal trajectories. The tracking error signals for each loop may be defined as follows:

    [00024] P err = P sen - P com Eqn . 29 V err = V sen - V com Eqn . 30 err = sen - com Eqn . 31 r err = r sen - r com Eqn . 32

    where the command yaw angle signal .sub.com=tan.sup.1(F.sub.y,com/F.sub.x,com) for F.sub.x,com>0 and tan.sup.1(F.sub.y,com/F.sub.x,com+) for F.sub.x,com<0.

    [0100] The error dynamics may then be derived by taking the derivatives of Equations 29-32, which in general are nonlinear and time-varying. Exponential stability may be guaranteed by a linear control law for the linearized tracking error dynamics. A detailed explanation of this process can be found in U.S. Pat. No. 11,366,478, issued Jun. 1, 2022, the disclosure of which is incorporated by reference herein it its entirety.

    [0101] In the translational kinematics loop, the position tracking error P.sub.err may be rotated to the body-fixed frame to generate a down-range vector signal R.sub.b:

    [00025] R b = [ cos ( nom ) - sin ( nom ) sin ( nom ) cos ( nom ) ] - 1 P err Eqn . 33

    The error dynamics for the b-frame position error may then be given by:

    [00026] R . b = [ 0 r nom - r nom 0 ] R b + V ctrl Eqn . 34

    The following kinematic and dynamic error dynamics may then be derived as:

    [00027] [ u . err v . err ] = [ 0 r nom - r nom 0 ] [ u err v err ] + 1 m [ F x , ctrl F y , ctrl ] Eqn . 35 ctrl = ctrl = tan - 1 v err u nom Eqn . 36 . err = r ctrl Eqn . 37 r . err = 1 I z N m , ctrl Eqn . 38

    [0102] The feedback modules 64, 66, 70, 72 may be designed as Proportional-Integral (PI) controllers such that they cancel the undesired dynamics and assign the desired closed-loop dynamic response which can be time-varying. The designed control laws that exponentially stabilize the error dynamics may be as follows:

    [00028] V ctrl = - K P 1 R b - K I 1 0 t R b d Eqn . 39 [ F x , ctrl F y , ctrl ] = - K P 2 [ u err v err ] - K I 2 [ 0 t u e r r d 0 t v e r r d ] Eqn . 40 r ctrl = - K P 3 e r r - K I 3 0 t e r r d Eqn . 41 N m , ctrl = - K P 4 r e r r - K I 4 0 t r e r r d Eqn . 42 K P 1 ( t ) = [ a 111 ( t ) r n o m - r nom a 121 ( t ) ] K I 1 ( t ) = [ a 1 1 2 ( t ) 0 0 a 122 ( t ) ]

    where:

    [00029] K P 2 ( t ) = m [ a 211 ( t ) r n o m - r nom a 221 ( t ) ] K 1 2 ( t ) = m [ a 212 ( t ) 0 0 a 222 ( t ) ] K P 3 ( t ) = a 3 1 1 ( t ) K I 3 ( t ) = a 3 1 2 ( t ) K P 4 ( t ) = I z a 4 1 1 ( t ) K I 4 ( t ) = I z a 4 1 2 ( t ) a ij 1 ( t ) = 2 i j n i j ( t ) Eqn . 43 a ij 2 ( t ) = n i j 2 ( t ) - n i j ( t ) n i j ( t ) Eqn . 44

    and:

    [0103] The constant damping ratio .sub.ij and time varying bandwidth {dot over ()}.sub.n,ij(t) may be used to synthesize the desired feedback control response for the loop. Note that when .sub.n,ij(t)=0 Equations 43 and 44 may reduce to the constant eigenvalues .sub.ij=.sub.nj.sub.n{square root over (1.sup.2)}.

    [0104] Equations 39-42 may be referred to as proportional-integral control laws, and the coefficients a.sub.ij1 and a.sub.ij2 may be used to assign the desired feedback control response for the loop. The command control signal generated by each controller loop may be the sum of the nominal control signal and the feedback control signal, e.g., *com=*nom+*ctrl. In particular, the force command signal F.sub.com and moment command signal N.sub.m,com may be used to determine the actuator command signals for the one or more actuators of the marine surface vessel.

    [0105] The dynamics of the actuators may be ignored in the above controller design because it can be viewed as a singular perturbation to the closed-loop system with a bandwidth much larger than the highest bandwidth in the closed-loop controller. The bandwidth .sub.nij may be initially set to:

    [00030] nij = 1 3 n , act ( i + 1 ) l

    and the innermost loop bandwidth may be set to:

    [00031] n 4 , 1 < 1 3 n , act

    Bandwidth tuning may be performed starting from the innermost loop and moving out one loop at a time.

    Control Allocation

    [0106] The actuator command signals may be calculated from the force and moment command signals as follows:

    [00032] Fc x , nom = F x , nom - F H , xnom - F D , xnom Eqn . 45 Fc x , com = Fc x , nom + Fc x , ctrl Eqn . 46 Nc nom = Nm nom - N H , nom - N D , nom Eqn . 47 Nc com = Nc nom + Nc ctrl Eqn . 48

    The commanded force Fc.sub.x,com and torque Nc.sub.com may then be used to compute .sub.sh,com and .sub.rd,com as follows:

    [00033] sh = Fc x , com + rd Eqn . 49 sh , com = sh k p Eqn . 50 rd , com = N C , com l x ( sh ( 1 + k n sh ) ( k 1 ) ) Eqn . 51

    III. Experimental Results

    [0107] A circular test trajectory was used to verify the implementation of the multi-nested loop-trajectory linearization control algorithm on the subscale ship CyberShip II, and to demonstrate the control algorithm's effectiveness by establishing a baseline performance.

    [0108] The actuator model has been modified to match the under-actuation condition of the present work, i.e., no lateral thruster is used. The marine surface vessel model parameters are taken from R. e. a. Skjetne, Adaptive maneuvering, with experiments, for a model ship in a marine control laboratory, Automatica, vol. 44, pp. 289-298 February 2005, and K. Lindegaard and T. Fossen, Fuel-efficient rudder and propeller control allocation for marine craft: Experiments with a model ship, IEEE Transactions on Control Systems Technology, vol. 11, pp. 850-862, November 2003, with adaptation to an equivalent single propeller-rudder configuration. The actuator saturation limits are set to max(|.sub.rd|)=30 degrees and max(|.sub.sh|)=16 rad/s.

    TABLE-US-00001 TABLE II CONTROLLER PARAMETERS Guidance Outer Guidance Inner Steering Outer Steering Inner Loop Loop Loop Loop Nominal controller [0.9 0.9] [1.4 1.4] 1.4 1.4 .sub.n [10 10] [1/27 1/21] 1/5 1 Feedback Controller [0.9 0.9] [1.4 0.7] 1.4 0.9 .sub.n [1/500 1/500] [1/45 1/75] 1/15 1/3

    [0109] There are three types of trajectories with constant that may be considered. These trajectories are, in order of tracking control challenge levels: [0110] 1) Straight line: Unaccelerated with constant .sub.nom and ramp P.sub.nom, and zero nominal sideslip angle .sub.nom. [0111] 2) Circle: Unaccelerated with ramp .sub.nom, sinusoidal P.sub.nom, and constant nominal sideslip angle .sub.nom. [0112] 3) Sine wave: accelerated with sinusoidal v.sub.nom, r.sub.nom, .sub.nom, and nominal sideslip angle .sub.nom.

    [0113] Experimental results are not shown for the first type of trajectory because it is the easiest trajectory to track. The tuned controller parameters for all trajectories are summarized in Table II above.

    Test Trajectory TwoCircular Trajectory

    [0114] A circular trajectory is used to demonstrate both accelerated tracking in the transient phase and un-accelerated tracking performance in steady-state. The radius of the circle is R=11 m and the steady-state tangential velocity of V=0.13 m/s. The simulation results are shown in FIGS. 9-18. While the cumulative open-loop tracking error appears large, as shown in FIG. 6, the initial errors are sufficiently small so that the feedback control based on the trajectory linearization is exponentially stable and robust. The closed loop response is a clear improvement over the open loop control response, with smooth and benign actuator activities. The proportional-integral control law for each of the four loops is a Type-I system with zero steady-state error for constant inputs. However the kinematics variables have nonzero steady-state errors due to the sinusoidal trajectories. To further reduce these steady-state errors, a Type-II controller can be employed at the cost of reduced agility and stability margins. To exemplify the stability robustness, simulation results for a 6 times mismatched I.sub.z for the vessel model and the controller, which may happen in practice by cargo distribution on a ship, are also shown in FIGS. 9-18G. The tracking error for unperturbed and perturbed cases are summarized in the table depicted by FIG. 29. It may be of particular interest to note that the sideslip angle in the test data depicted by FIGS. 16-18 has a non-negligible rate of change and has a steady-state values around 11 degrees. This demonstrates that the restrictions on the sideslip angle as disclosed by T. I. Fossen, K. Y. Pettersen, and R. Galeazzi, Line-of-sight path following for dubins paths with adaptive sideslip compensation of drift forces, IEEE Transactions on Control Systems Technology, vol. 23, no. 2, pp. 820-827, 2014., have been overcome by the proposed marine surface vessel trajectory linearization control system. Furthermore, FIG. 9 shows that the proposed lateral force generation algorithm yields a clear improvement over the case without it. In this case, the peak lateral error y.sub.b,err.sub. is reduced from 1.93 m to 0.42 m, which is an improvement of about 3.5 times. In addition, the Root-Mean-Square (RMS) error y.sub.b,err.sub.2 goes from 1.05 m to 0:23 m, which is an improvement of about 3.6 times.

    Test Trajectory ThreeSinusoidal Trajectory

    [0115] A sinusoidal trajectory with amplitude of 12 m and a wavelength of 74 m is used to demonstrate accelerated tracking with variant r.sub.nom, v.sub.nom and in both the transient and steady-state tracking performance, which is a more challenging task as compared to the steady set point in the generalized velocities v.sub.nom and r.sub.nom of the circular trajectory. The results are shown in FIGS. 19-28G. A 5 times I.sub.z perturbation case is also included. Tracking error metrics for both circular and sinewave trajectories with and without I.sub.z perturbations are summarized FIG. 29. Notably, the I.sub.z perturbations had minimal effects for both trajectories. The allowable perturbation is limited by integrator windup.

    Conclusions

    [0116] An integrated three degrees of freedom trajectory tracking control system based on a multi-nested loop trajectory linearization control architecture for under-actuated marine surface vehicles has been disclosed. This is considered a complex control challenge. The challenge of lateral drift when turning is tackled by using the sideslip angle as a virtual control effector. A novel method is disclosed for determining the nominal sideslip angle .sub.nom based on the reference kinematic pose and the dynamic forces along a nominal trajectory. This approach enables an under-actuated marine surface vessel to track an accelerated trajectory with a 3.5 times reduction in lateral tracking error under closed-loop control, as demonstrated by simulation with a realistic subscale vessel model. Guidelines and demonstrative examples on the tuning of inverse dynamics in the open loop nominal controller have been presented, which provide an insight on the response of the nominal controller and its effects on the overall controller transient response, steady-state tracking errors, and resulting actuator activities. Simulation results for the closed-loop tracking of a circular and a sinewave trajectory demonstrate tracking performance of both unaccelerated and accelerated trajectories. The robustness of the controller is demonstrated by simulations of circular and sinusoidal trajectories with 6 times and 5 times mismatch of the yaw moment of inertia I.sub.z, respectively, in the vessel and controller. These simulations show minimal performance degradation.

    [0117] As used herein, the term module refers to any hardware, software, or combination thereof that provides the functionality associated with the described module. Modules may include analog circuitry, digital circuity, program code, or any combination thereof, that performs one or more functions associated with the functionality of the module. In some embodiments, a module may comprise program code that is part of a larger program including multiple modules which, when executed by a computer, provides a desired function or set of functions.

    [0118] As used herein the term signal may refer to any digital or analog signal conveying information, e.g., information that defines a value of a parameter such as a velocity, heading, yaw rate, force, etc. The value of the parameter may be defined by a voltage, current, phase, amplitude, or any other suitable characteristic of the signal. In cases where the signal is a digital signal, the value may be represented by a digital number stored in or generated by a computer.

    [0119] Referring now to FIG. 30, embodiments of the invention described above, or portions thereof, may be implemented using one or more computing devices or systems, such as exemplary computer 100. The computer 100 may include a processor 102, a memory 104, an input/output (I/O) interface 106, and a Human Machine Interface (HMI) 108. The computer 100 may also be operatively coupled to one or more external resources 110 via a network 112 or I/O interface 106. External resources may include, but are not limited to, servers, databases, mass storage devices, peripheral devices, cloud-based network services, or any other resource that may be used by the computer 100.

    [0120] The processor 102 may include one or more devices selected from microprocessors, micro-controllers, digital signal processors, microcomputers, central processing units, field programmable gate arrays, programmable logic devices, state machines, logic circuits, analog circuits, digital circuits, or any other devices that manipulate signals (analog or digital) based on operational instructions stored in memory 104. Memory 104 may include a single memory device or a plurality of memory devices including, but not limited to, read-only memory (ROM), random access memory (RAM), volatile memory, non-volatile memory, static random access memory (SRAM), dynamic random access memory (DRAM), flash memory, cache memory, or data storage devices such as a hard drive, optical drive, tape drive, volatile or non-volatile solid state device, or any other device capable of storing data.

    [0121] The processor 102 may operate under the control of an operating system 114 that resides in memory 104. The operating system 114 may manage computer resources so that computer program code embodied as one or more computer software applications, such as an application 116 residing in memory 104, may have instructions executed by the processor 102. In an alternative embodiment, the processor 102 may execute the application 116 directly, in which case the operating system 114 may be omitted. One or more data structures 118 may also reside in memory 104, and may be used by the processor 102, operating system 114, or application 116 to store or manipulate data.

    [0122] The I/O interface 106 may provide a machine interface that operatively couples the processor 102 to other devices and systems, such as the external resource 110 or the network 112. The application 116 may thereby work cooperatively with the external resource 110 or network 112 by communicating via the I/O interface 106 to provide the various features, functions, applications, processes, or modules comprising embodiments of the invention. The application 116 may also have program code that is executed by one or more external resources 110, or otherwise rely on functions or signals provided by other system or network components external to the computer 100. Indeed, given the nearly endless hardware and software configurations possible, persons having ordinary skill in the art will understand that embodiments of the invention may include applications that are located externally to the computer 100, distributed among multiple computers or other external resources 110, or provided by computing resources (hardware and software) that are provided as a service over the network 112, such as a cloud computing service.

    [0123] The HMI 108 may be operatively coupled to the processor 102 of computer 100 to allow a user to interact directly with the computer 100. The HMI 108 may include video or alphanumeric displays, a touch screen, a speaker, and any other suitable audio and visual indicators capable of providing data to the user. The HMI 108 may also include input devices and controls such as an alphanumeric keyboard, a pointing device, keypads, pushbuttons, control knobs, microphones, etc., capable of accepting commands or input from the user and transmitting the entered input to the processor 102.

    [0124] A database 120 may reside in memory 104, and may be used to collect and organize data used by the various systems and modules described herein. The database 120 may include data and supporting data structures that store and organize the data. In particular, the database 120 may be arranged with any database organization or structure including, but not limited to, a relational database, a hierarchical database, a network database, or combinations thereof. A database management system in the form of a computer software application executing as instructions on the processor 102 may be used to access the information or data stored in records of the database 120 in response to a query, which may be dynamically determined and executed by the operating system 114, other applications 116, or one or more modules.

    [0125] In general, the routines executed to implement the embodiments of the invention, whether implemented as part of an operating system or a specific application, component, program, object, module or sequence of instructions, or a subset thereof, may be referred to herein as program code. Program code typically comprises computer-readable instructions that are resident at various times in various memory and storage devices in a computer and that, when read and executed by one or more processors in a computer, cause that computer to perform the operations necessary to execute operations or elements embodying the various aspects of the embodiments of the invention. Computer-readable program instructions for carrying out operations of the embodiments of the invention may be, for example, assembly language, source code, or object code written in any combination of one or more programming languages.

    [0126] Various program code described herein may be identified based upon the application within which it is implemented in specific embodiments of the invention. However, it should be appreciated that any particular program nomenclature which follows is used merely for convenience, and thus the invention should not be limited to use solely in any specific application identified or implied by such nomenclature. Furthermore, given the generally endless number of manners in which computer programs may be organized into routines, procedures, methods, modules, objects, and the like, as well as the various manners in which program functionality may be allocated among various software layers that are resident within a typical computer (e.g., operating systems, libraries, API's, applications, applets, etc.), it should be appreciated that the embodiments of the invention are not limited to the specific organization and allocation of program functionality described herein.

    [0127] The program code embodied in any of the applications/modules described herein is capable of being individually or collectively distributed as a computer program product in a variety of different forms. In particular, the program code may be distributed using a computer-readable storage medium having computer-readable program instructions thereon for causing a processor to carry out aspects of the embodiments of the invention.

    [0128] Computer-readable storage media, which is inherently non-transitory, may include volatile and non-volatile, and removable and non-removable tangible media implemented in any method or technology for storage of data, such as computer-readable instructions, data structures, program modules, or other data. Computer-readable storage media may further include RAM, ROM, erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), flash memory or other solid state memory technology, portable compact disc read-only memory (CD-ROM), or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium that can be used to store data and which can be read by a computer. A computer-readable storage medium should not be construed as transitory signals per se (e.g., radio waves or other propagating electromagnetic waves, electromagnetic waves propagating through a transmission media such as a waveguide, or electrical signals transmitted through a wire). Computer-readable program instructions may be downloaded to a computer, another type of programmable data processing apparatus, or another device from a computer-readable storage medium or to an external computer or external storage device via a network.

    [0129] Computer-readable program instructions stored in a computer-readable medium may be used to direct a computer, other types of programmable data processing apparatuses, or other devices to function in a particular manner, such that the instructions stored in the computer-readable medium produce an article of manufacture including instructions that implement the functions, acts, or operations specified in the text of the specification, the flowcharts, sequence diagrams, or block diagrams. The computer program instructions may be provided to one or more processors of a general purpose computer, a special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the one or more processors, cause a series of computations to be performed to implement the functions, acts, or operations specified in the text of the specification, flowcharts, sequence diagrams, or block diagrams.

    [0130] The flowcharts and block diagrams depicted in the figures illustrate the architecture, functionality, or operation of possible implementations of systems, methods, or computer program products according to various embodiments of the invention. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of instructions, which comprises one or more executable instructions for implementing the specified logical function or functions.

    [0131] In certain alternative embodiments, the functions, acts, or operations specified in the text of the specification, the flowcharts, sequence diagrams, or block diagrams may be re-ordered, processed serially, or processed concurrently consistent with embodiments of the invention. Moreover, any of the flowcharts, sequence diagrams, or block diagrams may include more or fewer blocks than those illustrated consistent with embodiments of the invention. It should also be understood that each block of the block diagrams or flowcharts, or any combination of blocks in the block diagrams or flowcharts, may be implemented by a special purpose hardware-based system configured to perform the specified functions or acts, or carried out by a combination of special purpose hardware and computer instructions.

    [0132] The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the embodiments of the invention. As used herein, the singular forms a, an and the are intended to include both the singular and plural forms, and the terms and and or are each intended to include both alternative and conjunctive combinations, unless the context clearly indicates otherwise. It will be further understood that the terms comprises or comprising, when used in this specification, specify the presence of stated features, integers, actions, steps, operations, elements, or components, but do not preclude the presence or addition of one or more other features, integers, actions, steps, operations, elements, components, or groups thereof. Furthermore, to the extent that the terms includes, having, has, with, comprised of, or variants thereof are used in either the detailed description or the claims, such terms are intended to be inclusive in a manner similar to the term comprising.

    [0133] While all the invention has been illustrated by a description of various embodiments, and while these embodiments have been described in considerable detail, it is not the intention of the Applicant to restrict or in any way limit the scope of the appended claims to such detail. Additional advantages and modifications will readily appear to those skilled in the art. The invention in its broader aspects is therefore not limited to the specific details, representative apparatus and method, and illustrative examples shown and described. Accordingly, departures may be made from such details without departing from the spirit or scope of the Applicant's general inventive concept.