Sunteți pe pagina 1din 169

Further Studies into the Dynamics of a Supercavitating Torpedo

Eric A. Euteneuer
University of Minnesota Department of Aerospace Engineering and Mechanics 107 Akerman Hall 110 Union ST SE Minneapolis, MN 55455

July 18, 2003

Acknowledgements
I would like to thank Mike Elgersma, Ph.D. for his technical help and guidance on this work and thesis. His attention to detail and vast dynamics knowledge has saved me an immense amount of time and headache. I would also like to thank my advisor Prof. Gary Balas for his guidance and patience throughout this work. Also deserving mention is Ivan Kirschner at Anteon Corporation. His work, and that of his peers, helped provide the backbone to this thesis work.

For my Sara Thank you!

ii

Table of Contents
Further Studies into the Dynamics of a Supercavitating Torpedo....................................... i Acknowledgements.............................................................................................................. i Table of Contents............................................................................................................... iii List of Figures .................................................................................................................... iv Lift of Tables....................................................................................................................... v List of Symbols .................................................................................................................. vi Abstract ............................................................................................................................... 1 1 Introduction................................................................................................................. 1 1.1 Focus of Thesis ................................................................................................... 2 2 General Hydrodynamics ............................................................................................. 3 3 Vehicle Dynamics....................................................................................................... 6 3.1 Coordinate System, States, and Control Variables ............................................. 6 3.1.1 Flow Angles ................................................................................................ 8 3.1.2 Torpedo Dimensions................................................................................... 8 3.2 Cavity Dynamics................................................................................................. 9 3.2.1 Maximum Cavity Dimensions .................................................................. 10 3.2.2 Cavity Centerline ...................................................................................... 10 3.2.3 Cavity Closure .......................................................................................... 15 3.2.4 Final Cavity Shape.................................................................................... 17 3.3 Cavitator Forces ................................................................................................ 18 3.4 Fin Forces.......................................................................................................... 21 3.4.1 Cavity-Fin Interaction............................................................................... 27 3.4.2 Computation of the Fin Forces and Moments........................................... 28 3.4.3 Notes on Fin Forces .................................................................................. 33 3.5 Planing Forces................................................................................................... 33 3.5.1 Computation of the Planing Forces........................................................... 37 3.5.1.1 Pressure Forces and Moments .............................................................. 38 3.5.1.2 Skin Friction Forces.............................................................................. 39 3.5.1.3 Added Mass and Impact Forces............................................................ 40 3.5.1.4 Total Planing Forces and Moments ...................................................... 40 3.5.2 Effects of Planing...................................................................................... 41 3.6 Mass and Inertial Forces ................................................................................... 42 3.6.1 Center of Mass .......................................................................................... 43 3.6.2 Mass Moments of Inertia .......................................................................... 44 3.7 Putting it all Together ....................................................................................... 46 3.7.1 EOM about an Arbitrary Point.................................................................. 48 3.7.2 Implementation ......................................................................................... 49 4 Linearization ............................................................................................................. 51 4.1 General Linearization Procedures and Information.......................................... 52 4.1.1 Limitations of Linearization ..................................................................... 53 5 Flight Envelope......................................................................................................... 54 6 Stability and System Poles........................................................................................ 56 6.1 Phase Plane Analysis ........................................................................................ 58

iii

6.2 Simulation and Integration Schemes ................................................................ 58 6.3 Nominal System Stability ................................................................................. 59 7 Control Law Design.................................................................................................. 63 7.1 Transfer Functions ............................................................................................ 64 7.1.1 1DOF Controller ....................................................................................... 66 7.1.2 Closed-Loop Transfer Functions .............................................................. 67 7.2 Continuous-Time Linear Quadratic Controller................................................. 68 7.2.1 Closed-Loop Dynamics ............................................................................ 69 7.3 Transformed System ......................................................................................... 72 8 Model Uncertainty .................................................................................................... 74 8.1.1 Open-Loop Effects of Parametric Uncertainty ......................................... 76 8.1.2 General Control Configuration with Uncertainty ..................................... 78 9 General Conclusions ................................................................................................. 79 10 Bibliography ......................................................................................................... 81 Appendix A: Fin Force and Moment Coefficient Data Computed Directly From Anteons Fin Look-up Table ............................................................................................................ 83 Appendix B ..................................................................................................................... 100 Appendix C ..................................................................................................................... 154 Appendix D..................................................................................................................... 156

List of Figures
Figure 1: Schematic of Cavitation Flow Regimes [6] ........................................................ 4 Figure 2: Moment and Angular Rotation Notation............................................................. 7 Figure 3: Artists Conception of a Supercavitating Torpedo ............................................... 9 Figure 4: Displacement Model Comparisons ................................................................... 12 Figure 5: Pole Comparison of Systems with Delays vs. "Classic" Centerline Displacement............................................................................................................. 15 Figure 6: Cavity Closure Schemes.................................................................................... 16 Figure 7 : Cavity Shape Components ............................................................................... 17 Figure 8: Overall Cavity Shape......................................................................................... 17 Figure 9: Cavitator Free-Body Diagram ........................................................................... 18 Figure 10: Cavitator Forces and Moments - Test.......................................................... 20 Figure 11: Cavitator Forces and Moments - Test ........................................................ 21 Figure 12: Fin Geometry................................................................................................... 22 Figure 13: Representation of a Subset of Forces Acting on the Fin and the Appropriate Flow Regimes ........................................................................................................... 23 Figure 14: Anteon Look-Up Table Data........................................................................... 24 Figure 15: Coefficient Data Using Least Squares Approximations.................................. 27 Figure 16: Fin and Supercavity Interaction ...................................................................... 28 Figure 17: Cruciform Orientation of Fins (View from Nose)........................................... 28 Figure 18: Fin Forces and Moments - Test ................................................................... 32 Figure 19: Fin Forces and Moments - Test.................................................................... 33 Figure 20: Displacement Hull........................................................................................... 34 Figure 21: Planing Hull..................................................................................................... 34

iv

Figure 22: Possible Supercavitating Flow Schemes with Planing Forces ........................ 35 Figure 23: Spring-Mass 2nd Order System with Dead-Zone ........................................... 35 Figure 24: Cavity Behavior in an Extreme Turn [1]......................................................... 37 Figure 25: Sketch of Planing Region of Torpedo ............................................................. 38 Figure 26: FFT of Planing Forces..................................................................................... 42 Figure 27: Drawing of Torpedo (In Sectional Form)........................................................ 44 Figure 28: Simulation Time Step Comparisons: 1 deg Step in Elevators......................... 50 Figure 29: Torpedo Flight Envelope for Non-Planing Flight ........................................... 55 Figure 30: Nominal System Pole-Zero Map..................................................................... 60 Figure 31: Nonlinear Step Responses ............................................................................... 61 Figure 32: Comparison of Nonlinear and Linear System Transients with a 1 deg Elevator Step ........................................................................................................................... 62 Figure 33: Closed-Loop Block Diagrams ......................................................................... 66 Figure 34:Closed-Loop Pole-Zero Map of Nominal System with LQR Controller ......... 70 Figure 35: Closed-Loop Transients (1 deg/sec Step in r) ................................................. 71 Figure 36: Pole-Zero Map of Transformed System.......................................................... 73 Figure 37: System Dynamics Comparison for a Varying Cavitation Number ................. 77 Figure 38: Generalized Control Configuration (for Controller Synthesis)....................... 78

Lift of Tables
Table 1: Choices for State Variables .................................................................................. 7 Table 2: Equation Coefficient Values............................................................................... 26 Table 3: Coefficient %-Errors........................................................................................... 26 Table 4: Nominal System Pole Information ..................................................................... 59 Table 5: Eigenvectors of Unstable Poles of Nominal System .......................................... 60 Table 6: Uncertain Parameters.......................................................................................... 75

List of Symbols
psv p pc V i Fr CQ Q g Dcav Rcav CDo x Rc Lc rc saturated vapor pressure free-stream pressure cavity pressure water density free-stream velocity cavitation number cavitation boundary Froude Number ventilation coefficient volumetric ventilation flow rate gravitational acceleration cavitator diameter cavitator radius cavitator drag coefficient at zero angle of attack state vector control vector angle of attack side-slip angle maximum cavity radius maximum cavity length local cavity radius cavity centerline displacements apparent turn acceleration apparent tail-up acceleration perpendicular force acting on the cavitator moment arm, distance from the cavitator to the origin of the system cavitator apparent angle of attack cavitator apparent side-slip angle

c, hc
aturn ag Fp lcav

cav cav

vi

xcg
Fcav , M cav

position of the center of gravity, distance behind the cavitator cavitator forces and moments, respectively fin immersion ratio fixed fin sweep apparent fin sweep fin force and moment coefficients vector of coefficients used to calculate the fin force and moment coefficients %-error of the least-squares approximation used for fin coefficient computations vector of angles representing the radial locations of the fins location of the fin pivot points on the torpedo fin forces and moments, respectively length of the torpedo hull that is planing maximum planing depth planing immersion angle angle measurement of the lateral displacement of the torpedo compared to the cavity centerline radius difference of the cavity and the torpedo at the transom of the planing section

imm swp swpf CF, CM P

E xpiv, rpiv

F fin , M fin
Lplane hplane

plane plane
p

F plane , M plane planing forces and moments, respectively


J M y G d [A,B,C,D] rotational inertia velocity vector, [u, v, w]T rotational velocity vector, [p, q, r]T mass matrix rotational velocity matrix system output system transfer function system disturbance system state-space matrices vii

K r e n

control law reference signal error signal noise signal general uncertainty block

viii

Abstract
Supercavitating torpedoes are complex systems that require an active controller, which can ensure stability while enabling the torpedo to track a target. In addition, the control law design process requires a dynamic model that captures the physics of the problem. It is therefore necessary to define a full 6DOF nonlinear model that lends itself to linearization for use in the control law design process. This thesis defines such a model and also discusses such topics as control, model uncertainty, and sensitivity analysis in order to provide a stepping stone for further studies.

Keywords: Cavitation, Supercavitation, Torpedo, Nonlinearities, Linearization

1 Introduction
As is known, water is a nearly incompressible medium having properties weakly changing under great pressure. However, when the pressure in liquid is reduced lower than the saturated vapor pressure p sv = 0.021 MPascal, discontinuities in the form of bubbles, foils and cavities, which are filled by water vapor, are observed in water. Froude was the first to investigate this phenomenon and gave it the name cavitation, originating from the Greek word cavity. The history of hydrodynamics research displays an emphasis on eliminating cavitation, chiefly because of the erosion, vibration, and acoustical signatures that often accompany the effect. The drag-reducing benefits of cavitation, however, were noted during the first half of the last century, and have received significant attention over the last decade. The invention of the Russian Shkval, a supercavitating torpedo that was demonstrated in the 1990s, is proof of this. The issue with these torpedoes is that they currently act like underwater bullets, projectiles that have no active control. In order to design a control system for these types of vehicles so that they may track targets, the dynamics must be modeled and analyzed. There are special conditions that make modeling and control a challenge. The main difficulties of using the supercavitating flow for underwater objects are connected

with a necessity of ensuring the objects stability in conditions where there is a loss of Archimedes buoyancy forces and where the location of the center of pressure is well forward of the center of gravity. Also, whereas a fully-wetted vehicle develops substantial lift in a turn due to vortex shedding off the hull, a supercavitating vehicle does not develop significant lift over its gas-enveloped surfaces. These difficulties are in addition to the highly nonlinear interaction between the cavity and the torpedo body. However, with proper design, supercavitating vehicles can achieve high velocities by virtue of reduced drag via a cavitation bubble generated at the nose of the vehicle such that the skin fraction drag is drastically reduced. Depending on the type and shape of the supercavitating vehicle under consideration, the overall drag coefficient can be reduced by an order of magnitude compared to a fully-wetted vehicle. Currently, the U.S. is pursuing supercavitating marine technology (specifically torpedoes and other projectiles) and is looking for ways to guaranty stability while tracking a target through active control, unlike the passively controlled Shkval that only capable of traveling in straight lines. Supercavitating weapons work in the U.S. is being directed by the Office of Naval Research (ONR) in Arlington, Va. In general, the ONRs efforts are aimed at developing two classes of supercavitating technologies: projectiles and torpedoes. The focus of this thesis is on supercavitating torpedoes.

1.1 Focus of Thesis


The forces on cavitating bodies have been studied at least as far back as the 1920s; an example reference is Brodetsky (1923). Interest increased as focus shifted to cavitating hydrofoils and propellers; see, for example, Tulin (1958). Since the late 1980s, the emphasis has returned to nominally axis-symmetric bodies, although vehicle control requires incorporation of cavitating lifting surface theory as well. Kirschner, et. al. (1995), Fine and Kinnas (1993), and Savchenko, et al (1997) serve as suitable introductions and May (1975) is an invaluable resource. The foreign literature contains several landmark works, for example, Logvinovich, et al, (1985). Given the scope of this research, the most valuable reference has been Kirschner, et. al at Anteon Corp. [1] This

reference provides the background and basic dynamic model on which most of this research is based on and provides a model that the ONR is starting to use as a benchmark. The main point that all these references make is that supercavitating torpedoes are complex systems, systems that will require the use of an active controller in order to guarantee stability while performing advanced maneuvers. This controller is necessary to ensure stability and to enable the torpedo to track a target. However, the control law design process requires a dynamic model that captures the physics of the problem. Existing (public) models currently dont model full six degree-of-freedom (6DOF) dynamics and/or have other issues with them such as mismatching dynamic properties between the linear and nonlinear models as does the current benchmark model used by the Office of Naval Research (ONR). This full 6DOF model used by the ONR produces stable nonlinear transients while the linearized model indicates that the system is unstable. This prevents the use of the linear representation of the dynamics from being used in control law design because it does not have the same dynamics as the nonlinear model and thus eliminates many of the control designers tools. Therefore it is convenient to define a full 6DOF nonlinear model that lends itself to linearization for use in the control law design process. This thesis defines such a model and also discusses such topics as control, model uncertainty, and sensitivity analysis in order to provide a stepping stone for further studies.

2 General Hydrodynamics
As is known, water is a practically incompressible medium having properties weakly changing under pressure in hundreds and thousands of atmospheres. However, when the pressure in the liquid reduces to the saturated vapor pressure, psv = 0.021 MPascals owing to the action of extending stresses, discontinuities on the form of bubbles, foils and cavities which are filled by water vapor, are observed in water. Cavitating flows are commonly described by the cavitation number, , and is expressed as

p pc 1 V 2 2

Equation 1

where is the fluid density, V is the free-stream velocity, and p and p c are the ambient and cavity pressures, respectively. According to the degree, or size of , three cavitation stages are defined: 1. Initial cavitation is the bubble stage and it is accompanied by the strong characteristic noise of collapsing bubbles and is capable of destroying solid material; for example, blades of screws, pumps, turbines. 2. Partial cavitation is the stage when arising cavities cover a cavitating body part. The cavity pulses and is unstable. 3. Fully developed cavitation supercavitation is the stage when the cavity dimensions considerably exceed the body dimensions. These stages are better illustrated in Figure 1. This figure shows a fictional cavitation experiment that holds the velocity constant and allows varying amounts of ambient pressure; various amounts of cavitation can be observed.

Figure 1: Schematic of Cavitation Flow Regimes [6]

Here, i can be thought of as a type of performance boundary where > i results in no cavitation. For this study, the cavitation number is assumed constant, = 0.029, which is low enough for natural supercavitation to occur. Noncavitating flows occur at sufficiently high pressures. Supercavitation occurs at very low pressures where a very long vapor cavity exists and in many cases the cavity wall appears glassy and stable except near the end of the cavity. Limited cavitation is seen between these two flow regimes. Other parameters used to describe the supercavitating flows are the Froude (Fr) number and the ventilation coefficient (CQ) and are shown below (respectively). Fr = V gDcav
Q 2 VDcav
Equation 3 Equation 2

CQ =

Here g is the gravitational acceleration, the cavitator diameter is Dcav, V is the magnitude of the vehicles velocity vector, and Q is the volumetric rate at which ventilation gas is supplied to the cavity. The Froude number characterizes the importance of gravity to the flow, and therefore governs distortions to the nominally axis-symmetric cavity centerline shape. The ventilation coefficient governs the time-dependent behavior of the cavity as ventilation gas is entrained by the flow. For the trajectories considered in this thesis, the Froude number is typically on the order of 90 to 110. [1] A supercavity can be maintained in one of two ways: (1) achieving such a high speed that the water vaporizes near the nose of the body; or, (2) supplying gas to the cavity at nearly ambient pressure. The first technique is known as vaporous or natural cavitation. The second is termed ventilation, or artificial, cavitation. Note that each concept involves some sort of cavitator with a clean edge to provide the sharp drop in pressure required to form a clean cavity near the nose of the body. For simplicity, only natural cavitation is considered in this thesis and thus the ventilation coefficient is zero. It is, however, conceivable to think of controlling the ventilation, and thus the cavitation number to affect the dynamics of the system. The effects of varying cavitation numbers will be described in Section 8.1.1.

3 Vehicle Dynamics
As was mentioned in the introduction, the bulk of this dynamic model is based on, and expanded from, the work done by Ivan Kirschner et. al. at Anteon Corp under direction of the ONR. For completeness, all the dynamics will be described in detail here.

3.1 Coordinate System, States, and Control Variables


The model developed by Anteon uses the cavitator pivot point as the torpedo's origin. However, for simplicity and for reasons of common convention, this thesis computes the dynamics with the torpedos center of gravity as the origin. The coordinate system was chosen to be the same as is defined by Kirschner et. al. That is, is positive forward of the center of mass, is positive to the starboard portion of the torpedo, and h is positive, as is defined by the right-hand rule, down. This coordinate system will make up the body coordinate system. manner. The states of the system are the body component states, one set of the two widely used. The two different choices can be seen in Table 1. The symbols used throughout the text correspond generally to current usage and are used in a consistent

Table 3-1: Choices for State Variables


Body Components Variable Symbol Units Flight Path Components Variable Symbol Units

Roll Rate Pitch Rate Yaw Rate Longitudinal Velocity Lateral Velocity Normal Velocity Euler Roll Angle Euler Pitch Angle Euler Yaw Angle North Position East Position Depth

p q r u v w

rad/sec rad/sec rad/sec ft/sec ft/sec ft/sec rad rad rad ft ft ft

Roll Rate Pitch Rate Yaw Rate Velocity Magnitude Sideslip Angle Angle of Attack Bank Angle (about velocity vector) Flight Path Angle Heading Angle North Position East Position Depth

p q r V

rad/sec rad/sec rad/sec ft/sec


rad

rad
rad

rad rad ft ft ft

Appropriate conversions can be seen in [4] and [2] if flight path components of the states are desired. The notation defining the positive moments and the positive angular rotations about the body axes can be seen in Figure 2. Positive velocity components are along the directions of the axes.

Mx, p

My, q

Mz, r h

Figure 2: Moment and Angular Rotation Notation

The choice of control surfaces is the same as is presented in Kirchner et. al. except an additional degree of freedom has been given to the control of the cavitator; in

addition of pivoting in the pitch axis, rotation in the yaw axis has also been considered in the equations of motion. Therefore, our states and controls are:
x = [ h p q r]

u v w

= f1

cav

pitch

cav

yaw

However, since the water density variation with depth is not modeled in this investigation, all the position states, North, East, and depth position states, are just kinematics and play no role in the dynamics modeled below. The state vector then becomes
x = [ p q r]

u v

3.1.1 Flow Angles


It is useful to define the orientation of the torpedo about the velocity vector as these values are often used to compute the forces and moments acting on the body. The inclination of the body to the velocity vector is defined by the angle of attack and the sideslip angle such that

= tan 1

w u

Equation 4

= sin 1

v u 2 + v 2 + w2

Equation 5

3.1.2 Torpedo Dimensions


Simulation was conducted on a vehicle with the following characteristics: 4.0 m in length, 0.2 m in diameter, and with a cavitator diameter of 0.07 m. The fins were located 3.5 m aft of the cavitator, and were swept back at 45. Although the mass

properties of the vehicle will change as the rocket and ventilation fuels are consumed, they are assumed constant for purposes of the current analysis. This model is an Applied Research Lab (ARL) defined model.

3.2 Cavity Dynamics


The behavior of the cavity is central to the dynamics of a supercavitating vehicle. It is the cavity that makes this dynamical system not only highly nonlinear, but dependent on the history of the vehicles motion. The nominally steady cavity behavior forms the basis of the quasi-time dependent model implemented for the current investigation. The cavity model not only affects the forces acting at the nose of the vehicle, but also has a strong influence on the fin forces and moments via the amount the fins are immersed in the free-stream flow and the planing forces, both of which will be discussed in more detail later in the thesis. During supercavitation, the cavity stays attached to the body and the cavity closure is far downstream. The length of the cavity does not vary significantly even though considerable oscillations can occur at its closure. However, the cavity acts as if it were an extension of the body. In this case, the same flow field would exist around a solid body having a shape comprising of the wetted nose plus the free-cavity profile as might be see in Figure 3.

Figure 3: Artists Conception of a Supercavitating Torpedo

3.2.1 Maximum Cavity Dimensions


The cavity itself is slender, and its maximum diameter is at least 5 times greater than the cavitator diameter. For axis-symmetric flows, the maximum cavity diameter (made dimensionless with the cavitator diameter) is a strong function of the cavitator drag coefficient and the cavitation number, and is otherwise nearly independent of the cavitator shape (Reichardt, 1946). In fact, both the cavity diameter and the cavity length increase with cavitator drag and decrease with cavitation number. Various analytical, numerical, and semi- and fully-empirical models have been developed that provide estimates of the maximum cavity radius, Rc, and cavity length, Lc. The analytical formulae of Reichardt (1946) provide useful and reasonably accurate 1 approximations for investigation of cavity dynamics. These relations can be seen in Equations 6-7.
C D = C D0 * 1 + + 0.028 2

) )

Equation 6

Rc = Rcav 1.35C D 0.93


Lc = Dcav C D 1.24 1.123 0.6

Equation 7 Equation 8

where C D0 = 0.8050 = const. , Rcav is the cavitator radius, and Dcav is the cavitator

diameter. It is important to note that since the cavitation number is assumed constant for this investigation, the drag coefficient is considered constant. This means that the maximum cavity length and radius is assumed constant and will also affect the way that the cavitator forces are computed. This is a very large assumption since physics dictate that the cavitation number is going to change as the velocity and cavity change.

3.2.2 Cavity Centerline


There are essentially three methods (which are practical for time-based simulations) to compute the cavity centerline: (1) Analytical formula developed by Mnzer and Reichardt (1950) which are described in the paper by Kirschner [1], (2)
1

The approximations are accurate for completely horizontal flows only.

10

Classic displacement equations based on acceleration, and (3) Use of past (delayed) position states 2 which are coincident with the cavity centerline. Let us first consider the first two methods which are a function of the instantaneous states. If the analytical formulas of Mnzer and Reichardt as presented by Kirschner [1] are used, the local cavity radius, -, and h-offsets for a given distance behind the cavitator are given in Equations 9-11, respectively.
x / D L / 2D cav c cav rc = Rc 1 Lc / 2 Dcav
1 a x c ( x) = 2 turn Fr g Dcav
2

2.4

Equation 9

Equation 10

1 ag x hc ( x) = 2 Fr g Dcav

Equation 11

where Fr is the Froude number, g is gravity, aturn is the apparent turn acceleration and ag is the apparent tail-up acceleration of the cavity (which are both functions of the states). ag is also a function of buoyancy, 8.29 m/s2. Although distortions to the cavity shape due to turning and gravity have been considered, distortions associated with cavitator lift have been ignored. For more information on how pitching the cavitator can affect cavity dimensions see reference [9]. If the classic physics equations are used, - and h-offsets are calculated by Equations 12-13.

c (x ) = 1 aturn 2
x hc ( x ) = a g V
1 2

x V

Equation 12

Equation 13

Figure 4 shows the drastic difference between the analytical set of equations (Eq.s 10 & 11) derived by Munzer and Reichardt and the classic displacement equations (Eqs 12 &
2

Position states (, , and h) were the option chosen by the researchers at Anteon, though they are not the only option. Delayed Euler angles would be another suitable option.

11

13). Notice that the analytical equations (those supposedly derived from experiments) are much more sensitive to acceleration than the classic physics equations.

Centerline Displacement Comparisons 0.5 0.45 0.4 0.35 Displacement (m) 0.3 0.25 0.2 0.15 0.1 0.05 0 Classic: (1/2)*a*t 2 Analytical

0.5

1.5 2 2.5 3 3.5 Position (aft of cavitator) (m)

4.5

Figure 4: Displacement Model Comparisons

In fact, if a velocity of 77 m/s is considered, it turns out that the analytical equations are nearly 30 times more sensitive to accelerations than classical physics equations predict. This ultimately shows that if the analytical equations are used, then planing will be much more likely to occur and thus the model would be much more sensitive to angular accelerations and turn rates. Since the code produced by Anteon uses the classic physics equations to project the displacement of the cavity due to buoyancy and because it makes the model much less sensitive to accelerations, the classic physics equations represented by Equations 12 and 13 appears to be the better method to model the cavity centerline displacements in the presence of apparent acceleration. However, critics will note that assuming that the cavity centerline changes instantaneously for various accelerations goes against the physics of cavitation and will argue that the method that uses delayed states should be used. In order to understand the particulars of the cavity dynamics, consider a projectile moving through a liquid at a speed that induces natural supercavitation. Now consider a point along the boundary of the cavity directly behind the cavitator, located at the nose of the projectile. This point is

12

stationary in the -axis. In other words, the projectile moves, not the boundary. Now this point is a function of the current states of the projectile. By the time the projectile has moved and its states have changed, the point along the boundary still is associated with the original states and is now relatively further behind the cavitator. This delay in states has an overall effect on the dynamics, but the question is how much? To answer this, a Dutch-Roll 3 model with the slide-slip angle and yaw rate used as the representative states of the torpedo is considered. After the torpedo dynamics are identified, two methods are created to compute the cavity centerline; the simple model uses the classic displacement equations mentioned above, and the second, more complex model, uses a set of delayed states. The number of delays needed for each state is dependent upon the number of sections the model designer wants to divide the cavity profile into; in this case ten sections were chosen and the delays are then assumed to be variable time delays that are dependent upon the velocity of the torpedo. Interpolation techniques can then be used to find data between the specified sections. Note that the more sections that the cavity is divided into, the more accurate the cavity dimensions can be calculated at any given point behind the cavitator. In order to take the delays of the more complex system into consideration, it is common practice to use a nonlinear 2nd order Pad approximation 4 to model this delay. This not only ensures that the delays are represented in the model, but also guarantees that the delays are differentiable. A 2nd order approximation is given by the transfer function written in Equation 14.
e
s

1 + s 2 + (s ) 12
2

1 s 2 + (s ) 12
2

Equation 14

where is the time delay given in seconds. The consequence of using these approximations is that it adds two poles and zeros 5 to the linear model for every Pad approximation used. This ultimately affects the
3

There are many sources out there that describe how to model the Dutch-Roll dynamics. One of these is by Etkin [2]. 4 Other models have tried to model these delays through use of a state buffer in which the states are stored in an array and then accessed in the functions. This is potentially dangerous as it can result in misrepresentation of the nonlinear dynamics during linearization. 5 Poles, zeros, and other linearization information are described in more depth later in the thesis.

13

stability and controllability of the linear state-space representation of the nonlinear system. In order to express how this happens, consider the linearized system A matrix,
f ( xi , ) , of the Dutch-Roll model based on instantaneous changes in the cavity x j

centerlinewhich is a function of the torpedo states only and call it A(xt). Now consider a new A matrix that has components from the Pad approximations and call it A(xPad). The resultant A matrix is similar to a model based on a nonlinear model which includes the both the torpedo model and the associated Pad approximations needed for the correct computation of the cavity shape and would be similar to the one described in Equation 15.
a A( x Dutch Roll ) A= b A( x Pade )
Equation 15

If a and b are nonzero, it is possible that the system poles would be different from those just computed from the torpedo states, or the simple model. In addition, in the process of designing a controller, one would need to design a Kalman filter in order to approximate the torpedo states before an actual control law could be defined, a possibly difficult design process in itself. Now that the differences between the simple and complex systems have been defined, the dynamics of the two systems can be compared by examining Figure 5.

14

Pole-Zero Map: Centerline Method Comparison 60 0.84 40 0.92 0.72 0.58 0.44 0.3 0.14 Delayed States Method Poles Delayed States Method Zeros "Classic" Method Poles

20 0.98 Imaginary Axis

80

60

40

20

-20 0.98

-40 0.92 0.84 -60 -100 -90 -80 -70 0.72 -60 -50 0.58 -40 0.44 -30 0.3 -20 0.14 -10 0

Real A xis

Figure 5: Pole Comparison of Systems with Delays vs. "Classic" Centerline Displacement

The dynamics of interest in this graph are shown in the RHP. These poles represent the dominating dynamics of the two systems. Note that the two poles lie in nearly the same location. This means that the extra states associated with the 20 delays (ten for each state, some not shown in the above graph) have little influence on the torpedos motion (assuming that the steady-state gains are equal). What it also means is that it is reasonable 6 to use the classic displacement equations which are dependent upon the instantaneous states to compute the distortion of the cavity centerline.

3.2.3 Cavity Closure


A description of the cavity closure zone is the most difficult issue when describing cavity shape and how it affects the overall cavity dynamics. According to the
6

There is some concern that it will not match in the pitch axis because of the buoyancy forces acting on the cavity, but the same type of pole matching seen in Figure 5 occurs with a 1-g turn trim condition, a condition similar to straight-and-level flight with buoyancy affecting the cavity shape in the vertical direction. This leads us to the assumption that the delays will have a similar effect on a full 6DOF.

15

known theoretical closure schemes (described below) the cavity may be closed on a solid body (such as a torpedo) in the following manner(s): [5]
Ryabushinsky scheme: A cavity is closed on the solid surface analogous to the

cavitator (Figure 6, a).


Zhukovsky-Roshko scheme: A cavity is closed on the cylinder with diameter Dc

equal to the diameter of the biggest cavity section (Figure 6, b).


Brilluene scheme: A cavity is closed on the solid body with a base cavity

formation, where pc2 > po and < 0. 7 In this case the base cavity is closed without a critical point formation (Figure 6, c).
Efros scheme: A cavity is closed with formation of a reentrant jet which may

have effect on the body (Figure 6, d).

Figure 6: Cavity Closure Schemes

The cavity modeled in this study most closely resembles the Ryabushinsky scheme, similar to the Kutta condition 8 with the exception that our model has a more elliptical shape near the transom rather than the blunt tail depicted in the drawing.
7

Note that this condition states that < 0. THIS IS NOT POSSIBLE! However, this was stated in the source [6] and I can not translate, or track, the source of this condition in order to correct this apparent typo. 8 Kutta condition: A body with a sharp trailing edge in motion through a fluid creates about itself a circulation of sufficient strength to hold the rear stagnation point at the trailing edge of finite angle to make

16

3.2.4 Final Cavity Shape


When all is said and done, the following ellipsoid represents the cavity shape (with no other accelerations except buoyancy):

Cavity Shape
1

yc

-1 0 -0.005 zc -0.01 -0.015 0.2

0.5

1.5

2.5

3.5

4.5

0.5

1.5

2.5

3.5

4.5

0.1

rc

0.5

1.5

2 x

2.5

3.5

4.5

Figure 7 : Cavity Shape Components

Figure 8: Overall Cavity Shape the flow along the trailing edge bisector angle smooth. For a body with a cusped trailing edge where the upper and lower surfaces meet tangentially, a smooth flow at the trailing edge requires equal velocities on both sides of the edge in the tangential direction. Essentially it means that there can be no velocity discontinuities at the trailing edge, or in this case, the transom (rear) of the cavity.

17

Remember that a negative h-value means up. If the torpedo were making a starboard turn, the -component of the cavity centerline would be nonzero and positive and similar in shape to the h-component.

3.3 Cavitator Forces


Throughout this study of the supercavitating torpedo dynamics, several attempts were made to describe the disk-cavitator forces. The first attempt didnt proportionally take into consideration the cavitators relative angle of attack or bank angle and the second failed to model the lift and side forces correctly. However, by taking the apparent flow angles into account (as shown in Figure 9), the cavitator forces can be computed as a function of the disks perpendicular force, apparent angle of attack and apparent sideslip angle.

xcav

Fp

ybody

cav
ycav

cav xbody

zcav

zbody

Figure 9: Cavitator Free-Body Diagram

where
2 F p = 1 V 2 Rcav C D 2

Equation 16

cav = cav =

ql cav u 2 + v 2 + w2 rl cav u 2 + v 2 + w2

cav pitch cav yaw

Equation 17

Equation 18

18

Fp is the perpendicular force acting on the cavitator, and lcav is the distance from the

cavitator to the origin of the system (in this case, the distance to the center of gravity). Fp is considered perpendicular because the equation used to compute the force is based on flows that are perpendicular to the cavitator disc. The body components of the cavitator forces then become:
Fcavx F p cos cav cos cav = Fcav y = F p sin cav Fcav F p sin cav cos cav z

Fcav

Equation 19

The moments acting about the cavitators center of effect are assumed to be negligible, but the moment about the center of gravity due to the forces is not. Since the origin of the system is the center of gravity and the center of gravity is assumed to lie on the -axis, the moment arm, lcav, is equal to the location of the center of mass (xcg) and is measured as the distance aft of the nose of the torpedo. produced by the cavitator forces are: M cav = x cg Therefore, the moments

0 0 Fcav
T

Equation 20

Remember that the assumption was made that the drag coefficient remains constant and so Fp is always constant if the velocity is held constant. This means that the cavitator forces and moments are only going to be a function of the apparent flow angles

cav and cav .


In order to get a better idea of both the sign convention and sensitivity of the cavitator forces to the apparent flow angles, a straight-and-level flight condition with a velocity of 77 m/s is considered and cav and cav are allowed to vary.

19

Cavitator Forces - Test


5000 0 -5000 -10000 -15000 -20 1 0.5 M cav 0 -0.5 -1 -20 x 10
4

Fx Fy Fz

F cav

-15

-10

-5

10

15

20

Cavitator Moments - Test


Mx My Mz

-15

-10

-5

10

15

20

(deg)

Figure 10: Cavitator Forces and Moments - Test

Notice from Figure 10 that the forces and moments are centered about a negative cav value. This means that the cavitator has to be pitched down or the angle of attack as to be negative in order to provide the lift force needed to help support the weight of the torpedo since fin or planing forces would be insufficient to support the weight alone and since a controllable forward force is necessary for active control. Figure 11 shows the effects of varying cav values.

20

Cavitator Forces - Test


5000 0 -5000 -10000 -15000 -20 1 0.5 M cav 0 -0.5 -1 -20 Mx My Mz -15 -10 -5 0 5 10 15 20 x 10
4

Fx Fy Fz

F cav

-15

-10

-5

10

15

20

Cavitator Moments - Test

(deg)

Figure 11: Cavitator Forces and Moments - Test

Here the cav forces and moments are centered at zero because the torpedo is not in a turn. If it were, a similar centering shift would be noticed as was noticed in the example. However, notice that the My value is nonzero for the example. This is because of the nonzero pitch control of the cavitator.

3.4 Fin Forces


The forces acting on the fins were predicted using a fully three-dimensional boundary-element method supplemented with a viscous drag correction 9 . The basic computational approach is summarized in Fine and Kinnas (1993). A high level of detail was required over even the limited operational range considered, because several cavity detachment modes must be taken into account. The simple fin geometry considered for this investigation (depicted in Figure 12) would be easily fabricated and appropriate to operation in the supercavitating regime, but is probably not optimal. The wedge shape
9

The source of the viscous drag correction is unknown. It is mentioned by Kirschner in both the paper and the code, but no direct source was given for this computation so no further explanation can be given.

21

also provides good strength characteristics. In addition, for small wedge angles, the unsteady effects associated with the transition between partial cavitation and supercavitation are confined to a very limited range of deflection angles. [1]

Fin Geometry

Wedge Half-Angle

S Sweepback Angle, Angle of Attack, Fin Immersion y z x So Body Cavity


= sin1[sin cos ]
Inflow velocity, V

y x

Figure 12: Fin Geometry

The forces acting on the cavitating fins are complicated by the different flow regimes that can be encountered. Some of these regimes include base cavitation, partial cavitation, and supercavitation.

22

z x
0.050 0.045 0.040 0.035

Supercavity

Fz

0.030 0.025 0.020 0.015 0.010 0.005 0.000 0.0 5.0 10.0 15.0

Partial Cavity

Base Cavity

Angle of Attack (deg)


Figure 13: Representation of a Subset of Forces Acting on the Fin and the Appropriate Flow Regimes

The force and moment coefficients were computed with these various cavitating schemes in mind and were provided via a look-up table computed by Anteon. Each coefficient is a function of the individual fins apparent angle of attack, apparent sweep, and immersion ratio, all of which are a function of the local cavity dimensions, fin sweep, and torpedo velocity (both linear and angular) components. However, the original fin force and moment coefficient look-up table contained data that produced a non-differential data space. Recall that one issue with previous models is that the nonlinear system was not represented in the linearization. One major contributor of this nonlinear and linear model mismatch actually has to do with the fin force and moment coefficient computation. The reason behind this inconsistency is shown graphically in Figures 1-3 in Appendix A which depict the fin forces and moments for each axis as a function of fin angle of attack and immersion ratio which were computed directly from the given look-up table for a sweep of 45 degrees. Notice that there are small symbols on the surface plots. These symbols represent the mapping of each fin and their associated values during the linearization process. What is important to notice is that for some forces and moments there are two fins that lie on vertices of the coefficient data surface. These vertex locations are easy to see in Figure 14 and are not differentiable. Mathematically, these vertices can be depicted as a type of relay (similar to an absolute function).

23

F y for Sw eep = 45 deg. (Look-up Table)


-4

x 10 2 0 -2 -4 Fy -6 -8 -10 -12 -2

0.5 -1 0.6

0 1 2 0.9 0.8

0.7 Imm

Figure 14: Anteon Look-Up Table Data

Figure 14 clearly illustrates the lines of discontinuity that are present in the y-component of the fin force coefficient which make the coefficient nondifferentiable. Similar lines of discontinuity appear in other coefficient values as well. The locations of these lines are also important. For example, if the system were to be linearized about a straight-andlevel flight condition, the rudder fins (fins 2 and 4) would have zero angle of attack and thus put their operating space on a line of discontinuity and would make the linearization invalid. If the linearization were to take place in a different region of the space, (for example, = 1 deg, imm = 0.75) the linearization may work for a trim condition in this region, but there is no guarantee that the entire flight envelope of the torpedo would be differentiable. This result means that we have to find a new way to represent the fin force and moment coefficients (or rather smooth the look-up table) so that a linear model may be

24

computed in order to understand the system properties and to facilitate a (linear) control law design. In order to make the fin operating space completely differentiable for all flow conditions, a parabolic least squares function was fitted to each of the fin force and moment coefficients. This involves a least-squares type approximation to the fin force and moment data provided by Anteon such that C F , C M = f ( , imm, swp f ) . Since the

data is not completely linear, it makes sense to fit a higher order equation to the data. In indicial notation:
C i , j = p1 i3 + p 2 imm 3 + p3 i2 imm j + p 4 i imm 2 + j j

p5 i imm j + p 6 i + p 7 imm j + p8
Equation 21

Note that the higher the order of the approximation, the more accurate the approximation will be. In order to solve for the coefficients pi the system can be solved as follows: First define the vectors as follows
i3 3 imm j i2 imm j 2 i imm j A= imm j i i imm j 1

p1 p P = 8 p8

B = Ci , j

Now the coefficients pi can be solved

[A A]P = A B P = [A A]
T T T

A P = B

Equation 22

A B

25

To get a measure of how good the approximation is to the original data, an averaged value representing the %-error can be computed using Equation 23.
E= A P B B
Equation 23

Note that these approximations must be done for each coefficient. Using this method, the coefficients pi and their representative %-errors can be seen in Tables 2 & 3.

Coefficient Fx Fy Fz Mx My Mz Coefficient Fx Fy Fz Mx My Mz

p1 0.0000E+00 0.0000E+00 -6.5104E-06 -2.6977E-06 2.1674E-06 0.0000E+00 p5 0.0000E+00 0.0000E+00 -1.3193E-03 2.1428E-03 -1.8498E-03 0.0000E+00

p2 5.0856E-03 -4.8993E-03 0.0000E+00 0.0000E+00 0.0000E+00 -1.1683E-03 p6 0.0000E+00 0.0000E+00 2.6340E-04 -2.8316E-04 2.7272E-04 0.0000E+00

p3 4.6230E-05 -4.4502E-05 0.0000E+00 0.0000E+00 0.0000E+00 -4.0303E-05 p7 5.6605E-04 1.0178E-03 0.0000E+00 0.0000E+00 0.0000E+00 -1.4744E-03

p4 0.0000E+00 0.0000E+00 1.0074E-02 1.3920E-03 -1.6503E-03 0.0000E+00 p8 -4.7508E-04 1.7334E-04 0.0000E+00 0.0000E+00 0.0000E+00 5.8590E-04

Table 3-2: Equation Coefficient Values

Coefficient Fx Fy Fz Mx My Mz

% Error 12.99% 16.71% 11.06% 14.53% 13.90% 17.92%

Table 3-3: Coefficient %-Errors

Examples showing the difference between the two coefficient data spaces ((1) Anteon look-up table data, (2) Least-squares approximations) can be seen in Figures 14 and 15.

26

F y for Sw eep = 45 deg. (Least Squares Fit)


-4

x 10 5

Fy

-5

-10

-15 -2 -1 0 0.7 1 2 0.9 0.8 Imm 0.6

0.5

Figure 15: Coefficient Data Using Least Squares Approximations

Figure 15 shows that by taking a least squares approximate fit to the data, the lines of discontinuities are removed and the entire operating space of the fins would be differentiable.

3.4.1 Cavity-Fin Interaction


Note that with the occurrence of cavitation at the fins, there is some interaction between the supercavity surrounding the entire torpedo and the fin cavities. It has been shown at the University of Minnesota in water tunnel tests that there will be some loss of cavity gas (particularly in ventilated cavities) due to the interaction of the fin cavities and the supercavity enveloping the torpedo.

27

Figure 16: Fin and Supercavity Interaction

For simplicity, this interaction is ignored. explore this interaction and its effects.

However, it will have an effect on the

cavitation number and thus the dynamics of the model itself. Further studies will need to

3.4.2 Computation of the Fin Forces and Moments


Before the fin forces and moments are computed, the orientation of the fins have to be considered. For the model presented here, the fins are arranged in a cruciform formation as shown in Figure 17.

2 h Figure 17: Cruciform Orientation of Fins (View from Nose)

This orientation is represented by a vector of angles, = [0 o

90 o 180 o

270 ] ,

where the index is associated with the fin number. Note that this is not the only way to orient the fins and that the following equations used to compute the fin forces and moments would work for any fin configuration. Fins 1 and 3 are elevators. Depending

28

on the case considered, they provide some component of steady lift to support the afterbody, and would be important to depth changes. Fins 2 and 4 are rudders that stabilize the vehicle in roll, and are otherwise deflected only during maneuvers. In addition to angular placement, the location of the fins on the torpedo body itself is defined by the variables xpiv and rpiv where xpiv = 0.85 Lbody rpiv = 0.9 Rbody These positions define the pivot points of the fins. Also shown in Figure 17 is the sign convention of the fin lift forces (Fz), the moments (My), and pitch rotation or each fin. The straight arrows on each fin show the positive direction of the lift force. This type of convention is needed because the fin force and moment coefficients computed by Anteon were computed for a general wedgetype fin. This requires special attention to reference frames when computing the total fin forces in the body reference frame. The following steps walk through the computations of the individual fin forces and moments and the appropriate reference frame conversions used to compute the general fin forces and moments in the body reference frame. 1. Determine the local centerline values for each fin.
zcen (i ) = y finc sin ( (i )) + z finc cos( (i )) ycen (i ) = y finc cos((i )) + z fin c sin ( (i ))

where y finc , z finc , and rfinc are the cavity centerline values at xpiv. 2. Find the intersection of the cavity and the local fin.
2 yR (i ) = rfinc zcen (i )

3. Calculate the fin immersion ratio.

29

imm(i ) = 0.7 *

(r

tip

ycen (i ) + yR (i )) b fin

+ 0.3
Equation 24

imm(i ) < 0 0 imm(i ) = imm(i ) 0 < imm(i ) < 1 1 imm(i ) > 1

where bfin is the span of the fin and rtip is the sum of the span and the pivot radius. 4. Calculate the apparent sweep. swp f (i ) = swp sin ( (i )) + cos((i ))
Equation 25

5. Calculate the approximate center of effect on the submerged portion of the fin.
x f (i ) = x piv + b fin

(1 imm(i )) sin (swp (i )) f


2

(1 imm(i )) cos(swp (i )) rf (i ) = rpiv + b fin f


z f (i ) = rf (i )cos( (i )) 2 y f (i ) = rf (i )sin ( (i ))

6. Compute the apparent flow angles in the body-fixed frame.


x fin (i ) = x f (i ) xorigin

body (i ) = +
y

(qx (i ) + py (i ))
fin f

body (i ) = +
y

u + v + w2 ( rx fin (i ) + pz f (i ))
2 2

u 2 + v 2 + w2

7. Transform the apparent flow angles to the appropriate fin reference frame (designated as the LSCAV frame in the Anteon code)

LSCAV (i ) = body cos( (i )) + body sin ( (i ))


y z

8. Add fin actuator angle to compute final angle of attack of each fin

30

atk (i ) = LSCAV (i ) + fin (i )cos(swp f (i ))

Equation 26

9. Compute force and moment coefficients from Anteon precomputed data as a function of imm(i), spwf(i), and atk(i). 10. Add any uncertainty associated with the coefficients 10 . 11. Dimensionalize the force and moment coefficients.

qF =

F = q F C Fx

(u 2 + v 2 + w 2 )b 2 fin

M = q F b fin C M x

C Fy

C Fz CM y

CM z

] + [x
T

fin

(i )

0 0 F
T

12. Once all the forces and moments are calculated for each fin sum and rotate the forces and moments into the correct body axis and sum the values
F fin (1) = Fi (1)
i =1 N fin

F fin (2 ) = Fi (2 ) cos((i )) + Fi (3)sin ( (i ))


i =1

N fin

Equation 27

F fin (3) = Fi (3)sin ( (i )) Fi (3) cos( (i ))


i =1

N fin

M fin (1) = M i (1)


i =1

N fin

M fin (2 ) = M i (2 ) cos((i )) + M i (3)sin ( (i ))


i =1

N fin

Equation 28

M fin (3) = M i (3)sin ((i )) M i (3) cos( (i ))


i =1

N fin

Now that the computations of the fin forces and moments have been defined, as was done for the cavitator forces and moments, the fin forces and moments are shown in
10

System uncertainty is discussed later in the thesis.

31

Figures 18 and 19 for various flow angles, and . These graphs not only show the effects of the flow angles on the forces and moments, but also provide insight into the effects of the fin control surfaces (as they are currently modeled). The effects of various angles of attack on the fin forces and moments are first shown in Figure 16.

1 0.5 F f in 0 -0.5

x 10

Fin Forces - Test


Fx Fy Fz

-1 -20 1 0.5 M f in 0 -0.5 -1 -20 x 10


4

-15

-10

-5

10

15

20

Fin Moments - Test


Mx My Mz

-15

-10

-5

10

15

20

(deg)

Figure 18: Fin Forces and Moments - Test

Again, the forces and moments are not centered at zero degrees angle of attack because the elevator (fins 1 and 3) control values are not set to zero in order to help support the weight of the torpedo. Notice that unlike the cavitator forces and moments these forces and moments are nonlinear. This is apparent by the curved lines This type of effect was representing the dominant fin forces and moments and is the result of different amounts of cavitation that can occur for various angles of attack. illustrated in Figures 13-15. Similar comparisons can be made of the test shown in Figure 19.

32

1 0.5 F f in 0 -0.5

x 10

Fin Forces - Test


Fx Fy Fz

-1 -20 1 0.5 M f in 0 -0.5 -1 -20 x 10


4

-15

-10

-5

10

15

20

Fin Moments - Test

Mx My Mz -15 -10 -5 0 5 10 15 20

(deg)

Figure 19: Fin Forces and Moments - Test

3.4.3 Notes on Fin Forces


The fin forces and moment presented here do not specifically model any damping forces and moments. This ultimately has an effect on the system poles and zeros and is most important when considering the roll motion. While the sweep of the fins provides a local lateral force which acts like a passive control surface helping to control pitch and yaw, there is no such force helping to prevent roll motion. This means that the roll motion, just based on the fin forces only, is neutrally stable. This makes roll a potentially hard state to control as the other torpedo dynamics can easily make this motion unstable.

3.5 Planing Forces


Common planing forces are typically associated with boats. At rest, the planing hull and displacement hull both displace the water around them.

33

Figure 20: Displacement Hull

In this case, the planing hull reacts nearly the same as a displacement hull when it initially gets underway it takes considerable power to produce a small increase in speed. But at a certain point, external forces acting on the shape cause an interesting effect, the hull is lifted up onto the surface of the water.

Figure 21: Planing Hull

The planing hull skims along the surface of the water whereas the displacement hull always forces water around it. This skimming along the waters surface is called planing. Once on top, the power/speed ratio is considerably altered very little power is needed to get a large increase in speed. These types of forces occur with supercavitating torpedo schemes when the torpedo attitude is larger than the allowable space defined by the cavity shape and dimensions. However, unlike the boat application, these forces are not desirable for the reason that, while drag may be reduced as compared to a fully-wetted vehicle, the planing vehicle will produce more drag than the vehicle entirely enveloped in a supercavity. Two possible schemes of a planing supercavitating torpedo are shown in Figure 22 (Savchenko et al 1998, Savchenko et al 1999). [5] 34

Figure 22: Possible Supercavitating Flow Schemes with Planing Forces

In the two possible motion schemes the objects weight G is compensated by two hydrodynamic forces, G = Y1 + Y2 , where Y1 is the lift on the cavitator and Y2 is the lift on the planing part of the hull. The top part of Figure 22 represents a type of steady-state planing force that is being used to help support the weight of the body. The bottom part displays a situation where the body is bouncing around the inside of the cavity. Upon further investigation into the torpedo models behavior, it is observed that the planing forces represent a force with a deadzone, much like the one shown in massspring example in Figure 23:

(dampener)

M
(Spring)

Figure 23: Spring-Mass 2nd Order System with Dead-Zone

Here we can see that the spring force will only exist when the end of the spring hits one of the edges of the mass. The area between the two edges of the mass is the

35

deadzone. This deadzone is similar to the inside of the cavity and the mass edges are similar to the cavity boundaries (dimensions). What this means is that a linearized system would not be representative of all the possible dynamics. In other words, when planing forces exist, the torpedo is actually a different system. For this spring mass example shown above, there would have to be three linear models to represent the three systems: (1) when the spring is not hitting the edge of the mass, (2) when the spring hits the bottom edge, and (3) when the spring hits the top edge. A similar process must be applied to the torpedo model for when the torpedo is planing and when it is not. There are numerous studies in how to handle these types of nonlinearities in control law design if one decides that it is possible to control the torpedo (given the very high bandwidth) in the presence of strong and frequent planing forces. Planing of a slender afterbody on a supercavitating boundary also distorts the flow (Logvinovich, 1980). The pressure increase on the wetted portion of the section is associated with the deflection of the streamlines toward the cavity region. This results in a jet of fluid into the cavity on each side of the body similar to the spray jet observed along planing hulls. Both types of secondary flows due to the fins and to the afterbody planing have been ignored in the current investigation, although the theory used to estimate the afterbody planing forces accounts for the lowest-order effect of the spray jet. [1] Planing forces acting on the blast tube used for propulsion is assumed to be negligible for reasons that this aft part of the cavity will, in reality, have a large void fraction and so the hydrodynamic forces acting on the blast tube would be small. Further studies have been done on the afterbody cavity dynamics by Travis Schauer at the University of Minnesota and more information regarding these void fractions can be seen in his Masters thesis. The importance of cavity distortion in high turn rates is apparent in Figure 24 which represents results for an extreme turn (in this case, a 5-g turn, which is probably impractical, but is illustrative for the cavity-body interactions important to the dynamics).

36

X Y Z

Figure 24: Cavity Behavior in an Extreme Turn [1]

The submergence of the afterbody into the flow is clear in this diagram. This is a cause of nonlinear forces acting on the torpedo. First, as the cavity distorts from a nominally axisymmetric configuration, the immersion of the fins into the ambient liquid outside the cavity becomes asymmetric. Therefore, the couple associated with symmetric or anti-symmetric fin forces and moments will be associated with a nonlinear system response. Secondly, a supercavitating system designed for a nominally axisymmetric cavity (or even one designed for cavity tail-up) will be subject to nonlinear forces associated with afterbody planing.

3.5.1 Computation of the Planing Forces


The planing forces are computed using an extension of Wagner planing theory developed by Logvinivich (for example, 1980). What this means is that the planing region of the hull can be approximated as a wedge-type immersion as presented in Figure 25.

37

Figure 25: Sketch of Planing Region of Torpedo

where a = Lplane = xentry - xtransom o = hplane = htransom

= plane = + atan2(hplane,Lplane) = plane = 0.25(entry+3transom); a conical average weighted to the transom


p = Rcavity at transom Rhull at transom

and correspond to the notation used in Figure 25.

3.5.1.1 Pressure Forces and Moments


The drag force associate with planing has two components, pressure drag (form drag) and skin friction drag (viscous drag). Most of the drag is typically caused by pressure drag. The pressure drag is caused by a combination of the build of pressure in front of the submerged portion of the body and the decrease in pressure behind. The pressure force normal to the inclined longitudinal axis of the cylindrical hull is then given by Equation 29 p rh + h plane 1 Fp = r u (sin plane )( cos plane ) rh + 2h plane h plane + p
2 c 2


Equation 29

38

where rh is the hull radius (assumed to be constant over the planing region), rc, plane, and

are (respectively) the cavity radius (at transom), the angle of attack between the

longitudinal axes of the body and the cavity, and the difference between the cavity and hull radii (all averaged along the planing region); and h0 is the immersion depth at the transom measured normal to the cavity centerline. Similarly, the moment of pressure forces about the transom can be expressed as

M p = r u cos plane
2 c 2 2

rh + h plane

2 h plane

rh + 2h plane h plane + p

Equation 30

3.5.1.2 Skin Friction Forces


The skin friction forces, caused by the viscosity of water, were computed using the following set of equations [1]:

uc = us = Cd = 2 rh

h plane p p h plane 0.031 uL plane 7


1

S w = 4rh

p
tan plane

[(1 + u )arctan u
2 c

uc +

rh3 u s2 1 arcsin u s + 1 u s 1 u s2 2 2 2 p tan plane

[(

]
Equation 31

F f = 1 u 2 cos 2 plane S w C d 2

39

where u is the forward velocity state and the moments are assumed to be negligible.

3.5.1.3 Added Mass and Impact Forces


The extra terms that are now added to the planing force computation is the unsteady force which is proportional to the acceleration and the impact force which is proportional to the impact speed and the speed of sound in water. The impact force is important for the case when the hull of the torpedo hits the surface of the cavity. The generic forces due to acceleration and impact are represented as

Facceleration = C a madded a Fimpact = C i mimpact CVA pw

Equation 32 Equation 33

where C is the speed of sound in water, a and V are the acceleration and velocities of the center of mass of the wetted wedge (computed using the norm of the q and r components of the state-space derivative and state-space, respectively), Apw is the projected area of the surface area of the wetted wedge, and Ca and Ci are coefficients for the acceleration and impact forces respectively and are yet to be determined through CFD analysis. Currently, an upper limit based on a fully wetted cylindrical body, the values of Ca and Ci are 1 and , respectively. madded and mimpact are related to the geometry. For a noncavitating sphere the added mass is equal to half the displaced water, but for a cavitating body, there is no such compact result. For now, a crude approximation is to set the added mass equal to the cavity volume and the impact mass to the mass of the displaced water by the impacting hull.

3.5.1.4 Total Planing Forces and Moments


The total planing forces and moments then become

40

F plane

Ff = (F p + Facceleration + Fimpact )cos plane (F p + Facceleration + Fimpact )sin plane

Equation 34

M plane

0 xcg ,wedge = M p sin c + F plane 0 M p cos c 0

Equation 35

3.5.2 Effects of Planing


The magnitude of the forces are large (on the order of 6000 N!) and occur at dominating frequencies 11 of about 10 Hz, 25 Hz, and 50 Hz as seen in Figure 26. Keep in mind that these frequencies and forces are specific to the torpedo geometry described above as well as the flight condition and may be different for other torpedo models. Due to the large forces and the high frequency (with dominant modes as high as 50 Hz) of these forces, not to mention the large increase in drag associated with planing, planing forces are considered undesirable and are not required for the overall stability of the torpedo as long as there are other control surfaces such as fins to help support the weight. In addition, the model becomes a switching model with the cavity dimensions at the transom of the torpedo representing the dead-zone region. Since the dominant frequencies of the planing forces are about 10 Hz, 25 Hz, and 50 Hz it would take significant control effort as well as very fast and expensive actuators and sensors to actively control the torpedo at this high of a bandwidth. This is why this thesis treats the planing forces as a general disturbance (which is a function of the states) in the nonlinear model which means that these forces are not used to compute the linear model used for control law design. Rather, they will be used to help specify the constraints on the turning accelerations for the horizontal trajectories considered in order to minimize the allowable planing forces. In other words, allowable trajectories will be based on the steady-state turn rate required to produce planing forces.
These frequencies are based on the original model developed by Anteon for fin and planing force supported, straight-and-level flight at a speed of 77 m/s.
11

41

x 10 3

FFT of Norm al P laning Force S teady-Flow A ll P laning Term s

2.5

|F|

1.5

0.5

0 0 10 20 30 40 50 Frequency (Hz) 60 70 80

Figure 26: FFT of Planing Forces

3.6 Mass and Inertial Forces


This thesis treats the torpedo as an ideal rigid body. The term rigid is in reality a mathematical idealization, because all bodies deform by a certain amount under the application of loads. If the deformation is small compared to the overall dimensions of the body, and energy dissipation due to elastic effects is negligible, the rigid body assumption can safely be used. This is not to say that the high frequency dynamics associated with an elastic body is not important, but rather that the low frequency dynamics must be thoroughly understood first. A rigid body is defined as a body with physical dimensions where the distances between the particles that constitute the body remain unchanged. One needs to consider the rotational motion of a rigid body; thus six degrees of freedom, three translational and three rotational, are required to completely describe the vehicles motion. In addition, one needs to develop qualities that give information regarding the distribution of mass along the body. Just as the mass of a body represents its resistance to translational motion, the

42

distribution of the mass about a certain axis represents the bodys resistance to rotational motion about that axis.

3.6.1 Center of Mass


A rigid body can be considered as a collection of particles in which the number of particles approaches infinity and in which the distances between the individual masses remain the same. As N approaches infinity, each particle can be treated as a differential mass element dm and the mass of the body is computed as an integral over the body dimensions

m=

body

dm

where the nominal mass is set at 175.7 Kg for this investigation. The location of the center of mass can then be defined as 1 r dm m body

rG =

where r is the vector from the origin to the differential element dm. Since the torpedo is symmetric about the -axis, the only nonzero element of rG is the -component and will be defined as xcg and is measured in units aft of the cavitator. The center of mass is a very important quantity, as its use simplifies the analysis of bodies considerably. One has to perform the integrations above in order to find the center of mass. These integrals in general are triple integrals, but in order to simplify the problem the geometry of the torpedo is considered and uniform density is assumed. As is shown in Figure 27, the torpedo geometry can be broken into four main sections: (1) the cavitator/pivot joints, (2) nose cone, (3) body cylinder, and (4) the blast tube. Since it is reasonable to consider most of the mass to be contained in the nose cone and the cylindrical body, we just need to know the simple geometry of those sections.

43

xcg

Figure 27: Drawing of Torpedo (In Sectional Form)

With just two components of the torpedo represented with simple geometry, it is straight forward to compute the position of the center of mass xcg.

xcg =

mcone xcg cone + mcylinder xcg cylinder mtotal

Equation 36

3.6.2 Mass Moments of Inertia


While the center of mass provides valuable information and simplifies the analysis of translational motion, it gives no measure of the way the mass is distributed on the body. The mass of a body describes the amount of matter contained in the body and the resistance of the body to translational motion. The resistance of the body to rotation is dependant upon how the mass is distributed. This resistance is known as the second moment of inertia 12 or rotational inertia. A coordinate system xyz fixed to a point on the body (the center of gravity in this study) and describe the configuration of a differential mass element by the vector r = xi +

yj + zk where x is positive forward of the origin and negative aft of the origin.
There are typically two quantities of interest: the distribution of the mass with respect to a certain axis; and the distribution of mass with respect to a certain plane. Consider the x-axis first. The perpendicular distance of a differential element dm from

12

The first moment of inertia refers to translational inertia and is just the total mass mtotal.

44

the x-axis is R x = computed as


J xx =

y 2 + z 2 . The mass moment of inertia about the x-axis is then

body

2 x

dm =

body

+ z 2 dm

Equation 37

In a similar fashion, the mass moments of inertia about the y and z axes are defined as
J yy = J zz =

body

2 y

dm = dm =

body

+ z 2 dm + y 2 dm

Equation 38

body

2 z

body

Equation 39

One quick observation is that the mass moment of inertia of a body about a certain axis becomes larger as the axis is selected further away from the body. This is an indication that mass moments of inertia will be useful in describing the rotational motion of a body. Consider the distribution of the mass with respect to the xy, xz, and yz planes; these produce the products of inertia.
J xy = J yz = J xz =

body

xy dm yz dm

Equation 40

Equation 41

body

body

xz dm

Equation 42

It is clear that Jxy=Jyx, and so forth. In general, the products of inertia do not contribute too much to the physical description of the mass distribution, unless there are certain symmetry properties with respect to the coordinate axes. Since the fins are oriented in the cross formation and line up with the principal axes, the products of inertia are zero unless an origin is chosen to be something other than the center of mass. The moments and products of inertia form the so called inertia matrix, denoted by
[J] and is defined as

45

J xx [J ] = J xy J xz

J xy J yy J yz

J xz J yz J zz

Equation 43

The diagonal elements of [J] are the principal moments of inertia and they are all positive quantities, each obtained by integration of a positive integrand. The mass, center of mass, and the inertia matrix of a rigid body specify what are called the internal properties is the body completely. For an elastic body, one needs to know measures of the resistance of the body to deformation, in addition to the internal properties. To compute the components of the inertia matrix, the simple torpedo geometry can be taken advantage of again by use of the parallel axis theorem. In other words, the moments of inertia are computed for the cone and the cylinder separately taking into consideration the distance from the sections center of gravity to the origin and then performing the following calculation (parallel axis theorem).
2 d y + d z2 + mi d x d y dxdz

J Bi = J Gi

dxd y d x2 + d z2 d ydz

dxdz d ydz 2 d x2 + d y

Equation 44

where JG are the moments of inertia of the individual section, mi is the mass of the section, and dx, dy, and dz represent the distances to the origin in the -, -, and h-axes. The total inertia is then computed by summing the two sections of inertia.

3.7 Putting it all Together


A variety of methods exist for writing equations of motion (EOM) for dynamical systems. One of the most common is the Newton-Euler formulation. From a historical perspective, Newton developed his laws for the motion of rigid bodies, even though we first study them within the context of particles. Defining the inertia force acting on the body as macg, Newtons second law can be described as the inertia force being equal and opposite to the applied forces. The law governing rotational motion was formally stated by Euler in 1775. The law states that the rate of change of the angular momentum about

46

the center of mass of a rigid body is equal to the sum of all applied moments about the center of mass. [8] Using this methodology, the system dynamics about the center of gravity in an inertial coordinate system are computed as shown in the following matrix notation form of the EOM.
mI 33 0

~ 0 & 0 mI 33 = ~ J cg cg 0 0 &

0 F + J cg cg M cg

Equation 45

where

= [u v w]T = [ p q r ]T
are the linear and angular velocity vectors, respectively, F and M are the external forces and moments acting about the center of gravity, and the tilde (~) character is used to represent the cross product of a vector in matrix form. The inertia about the center of gravity is defined as Jcg. The tilde character is used as follows:
0 c b ~= c 0 a b a 0

= [a b c ]

and is the same as using the cross product as is illustrated below.


a l 0 c b l b m = c 0 a m c n b a 0 n

Note that the tilde matrix representation is a skew-symmetric matrix. It is often convenient to write the EOM in short-hand notation with the help of the tilde operation described above. Defining a mass matrix, M, and angular rate matrix, , such that 47

mI 33 0 M = J cg 0 ~ 0 = ~ 0 The equations of motion about the center of gravity (Equation 45) are then written as F & M = M + & cg cg M cg
Equation 46

3.7.1 EOM about an Arbitrary Point


If it is desired to compute the EOM about an arbitrary point other than the center of mass (such as the cavitator pivot point as is considered by Anteon), appropriate transformations must be added to these system equations of motion. If a vector defining the distance to the arbitrary point from the center of mass is defined as r = rx

ry

rz

where distances are positive in the positive directions of the coordinate system, the velocity components of the system are transformed to the new coordinate system. In other words, we substitute the velocity components about the center of gravity with the transformed values such that I 33 = 0 cg ~ r = R I 33
Equation 47

where R is the origin transformation matrix. Substituting and making sure that the forces and moments are in the correct reference frames, the EOM become F & R T MR = R T MR + R T & M cg
Equation 48

48

If one wanted to compare the two models (Equation 46 vs. Equation 48), there are certain intricacies that occur when changing between coordinates. These issues become apparent when investigating system dynamics such as nonlinear transients and system poles and zeros. To make sure that the users code is debugged, it is suggested that the energy and momentum are conserved and that the values compare between the two models. However, since it assumed that the mass remains constant such that the center of gravity is not a function of time, it is convenient and easier to post-process the states of the EOM represented in Equation 46. This would create fewer errors when trying to compare the system poles and zeros (they should be the same) between the EOM in Equation 46 and the EOM in Equation 48 and give the same results in nonlinear transients. This type of post-processing can be best described in the following block diagram 13 .

Remember that the states are the Euler angles, the translational velocities, and the angular velocities as defined above.

3.7.2 Implementation
The dynamic system was implemented, simulated, and analyzed using MATLAB, a standard in todays engineering research community. For simplification and for future use in control law design, the dynamics were simulated in Simulink using a fixed-step, 4th order Runge-Kutta integration method with a time step of 0.001 sec. This is a sufficiently small time step as is shown in Figure 28. This figure displays the most interesting transients of this test case and displays how they change as a function of the time step. The transients are representative of a 1 deg step in the elevator fins (fins 1
13

Note that this block diagram uses the Simulink to make this block diagram.

49

and 3). Though the transients are fairly close for time steps of 0.005 seconds and 0.001 seconds, to be safe and thorough, a time step of 0.001 seconds was chosen.

Simulation Time Step Comparisons 0.02 0.01

(rad)

0 -0.01 -0.02

t = t = t = t =
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6

0.05 sec 0.01 sec 0.005 sec 0.001 sec 1.8 2

82.28 82.26 u (m/s) 82.24 82.22 82.2 82.18 0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2

0.2 0.1 q (rad/s) 0 -0.1 -0.2

0.2

0.4

0.6

0.8

1 1.2 time (sec)

1.4

1.6

1.8

Figure 28: Simulation Time Step Comparisons: 1 deg Step in Elevators

The simulation block diagrams as well as the code used to compute the forces and moments can be examined in Appendix B.

50

4 Linearization
A classical dilemma in modeling physical systems is the trade-off between model accuracy and tractability. While sophisticated models might provide accurate descriptions of system behavior, the resulting analysis can be considerably more complicated. Simpler models, on the other hand, may make analysis easier and offer more insight, but might neglect important system behaviors. The required fidelity of a model depends on the intended utility. For example, one may use a very simplified model for the sake of control design, but then use a sophisticated model to simulate the overall control system. One instance where this dilemma manifests itself is the use of linear versus nonlinear models. Nonlinearities occur in most physical systems. Simple examples include saturations, rate limiters, dead-zones, and backlash. Further examples include inherently nonlinear behavior of systems such as chemical process plants, aircraft, and the torpedo model under inspection. However, methods for analysis and control design are considerably more available and developed for linear systems than nonlinear systems. One approach is to directly address the nonlinear behavior of such systems, and nonlinear control design remains a topic of active research. An alternative method is to linearize the system dynamics; i.e. to approximate the nonlinear model by a linear one. Some immediate consequences are that (1) the linear model can only give a local description of the system behavior and (2) some of the intricacies of the system behavior may be completely neglected even locally. In some cases, these consequences are tolerable, and one may then employ methods for linear systems. Recall that the main reason for continuing to understand and further the development of the torpedos dynamic model (rather than diving into control law design) is because there is an issue with the previous model developed by Kirschner et. al; that is that the stable nonlinear transients did not match the unstable linear description of the model. This means that it is probable that some of the model intricacies were not being captured by the linearization process. The following provides detailed description of the process of linearization and situations when this process fails in a general form.

51

4.1 General Linearization Procedures and Information


The goal of linearization is to provide insight into nonlinear system behavior about an equilibrium point and to give the engineer some useful tools for attacking certain classes of nonlinear problems. Many systems with mild, sufficiently smooth nonlinearities can be treated by using a linear approximate model, obtained by linearizing about a known nominal solution or operating point. Most control design is based on behavior in the vicinity of an operating point. Many aircraft, rocket, and spacecraft control systems have been successfully designed using linear behavior in the neighborhood of a nominal trajectory. Consider the general time-invariant nonlinear state variable mode of Equations 49 and 50:
& x = f ( x, ) y = g ( x, )
Equation 49 Equation 50

where x is the state vector, is the input vector, and y is the output vector. Suppose that a nominal solution xn, n, and yn, such as an equilibrium point, is known. The difference between the nominal vector functions and some slightly perturbed functions x, , and y can be defined by

x = x x n = n y = y y n
Then Equations 49 and 50 can be written as & & x n + x = f (x n + x, n + )
f f = f ( x n ,U n ) + x + + h.o.t x n n
Equation 51

y n + y = g (x n + x, U n + U ) 52

g g = g ( y n , U n ) + x + + h.o.t x n n

Equation 52

where []n means that the derivatives, the Jacobians, are evaluated on the nominal solutions. Since the nominal solutions satisfy Equations 49 and 50, the first terms in the preceding Taylors series expansion cancel. One other condition must also hold. For sufficiently small x , , and

y perturbations, the higher-order terms must approach zero as x approaches xn, that is:
lim sup
h.o.t. x =0
Equation 53

x xn t 0

Since these higher-order terms can be neglected, this leaves the linear time-invarient (LTI) equations f f x + x n n g g y = x + x n n & x = which is equal to

Equation 54

& x = Ax + B y = Cx + D

Equation 55

when (xn, n) is equal to (0,0) and the matrices A, B, C, and D are the respective Jacobians.

4.1.1 Limitations of Linearization


There are a couple of nonlinearities that do not lend themselves to linearizationbased analysis. Consider the system

& x = Ax + BN ()

Equation 56

This system represents linear dynamics where the input u first passes through a nonlinearity, N. Some common nonlinearities are:

53

saturation 14 :
1 1 N ( ) = 1 1 1 1

Equation 57

deadzone:
1 1 N ( ) = 0 1 1 + 1 1

Equation 58

and relay: 1 >0 N () = 1 < 0


Equation 59

Other nonlinearities include backlash and hysteresis. All of these nonlinearities result in a failure in linearization-based analysis because the linearization completely removes the intricacies that the nonlinearities cause. i.e. N() is not differentiable (the slope is not smooth).

5 Flight Envelope
In order to define the flight envelope, the constant cavitation number of 0.029 must be considered. Given the definition of in Equation 1 the velocity needed to maintain this cavitation number can be solved providing we know something about the freestream pressure, cavity pressure, and water density. If the freestream pressure is assumed to be about 101325 Pa and the cavity pressure is assumed to be water vapor pressure at a temperature of 41o F (871.928 Pa) and a density of 1024 kg/m3, the velocity required to maintain the cavitation number of 0.029 would be about 82.25 m/s. Since the temperature of the water and operating depth (assumed to be about ten meters) greatly affect the density and pressure, the velocity value is allowed to vary by 10% of the nominal value. This gives a velocity operating range of about V = [74,90] m/s. Note that
14

Note that from the definition of Equation 51 that this is only true when the has hit a saturation point.

54

even at the lower bound, the velocity is still high enough to produce a cavity that completely envelopes the torpedo body.

In many ways, the cavity dimensions and profile can be thought of as a dynamic constraint imposed on the torpedo dynamics. If the pitch or yaw angle become too great (in terms of trim or turning accelerations), the hull of the torpedo starts to incur cavity disruptive planing forces that add extra drag and create a very difficult problem for the control and actuator designers. Therefore, the flight envelope is designed such that the planing forces should not occur which places limits on the turn rates. Since the allowable turning rates are a function of the velocity, the rates must be computed for each velocity value. Doing so produces the flight envelope shown in Figure 29.

Flight Envelope
5 4 4 3 2 Turning Rate (G's) 1 1 0 -1 -2 -3 -4 -5 60 5 6 nom 2 3

65

70

75

80 85 Velocity (m/s)

90

95

100

Figure 29: Torpedo Flight Envelope for Non-Planing Flight

Note that this flight envelope is dependent upon the geometry of the torpedo. If a different torpedo configuration were to be used, the flight envelope would need to be recomputed.

55

In order to fully understand the torpedo model, several linear models of the openloop torpedo model for various trim conditions should be computed and analyzed. In order to get a representation of the full flight envelope, a linear model should be taken for the nominal model (V = 82.25 m/s, turning acceleration = 0 gs) as well as six other trim conditions indicated in Figure 29. Whats more important is that since the controller can typically only be designed with one nominal model, it is important to test the closed-loop system with all trim conditions in order to make sure that the controller performs as intended for all possible flight conditions.

6 Stability and System Poles


One of the most important characteristics of both nonlinear and linear systems is its stability. For completeness and in order to better understand the analysis of the torpedo, the definitions of stability and some of the tools used to determine system stability are presented below. Consider the state equation written in Equation 49. For the continuous-time case with zero input & x = f ( x,0)

with the origin defined at the equilibrium trim condition, the following apply.

Definition 1

The origin is a stable equilibrium point if there exists an > 0 and a (,t0) > 0, such that if x(t 0 ) < , then the resultant motion x(t) satisfies x(t ) < for all t >
t0.

This definition of stability is sometimes called stability in the sense of Lyapunov, abbreviated as stable i.s.L. If a system possesses this type of stability, then it is ensured

56

that the state can be kept within , in norm, of the origin by restricting the initial perturbation to be less than , in norm. Note that it is necessarily true that .

Definition 2

The origin is an asymptotically stable stable equilibrium point if (a) it is stable, and if in addition, (b) there exists a number (t0) > 0 such that whenever
x(t 0 ) < (t 0 ) the resultant motion satisfies lim x(t ) = 0 .
t

The following is a standard analysis result based on Definition 2. The equilibrium point xn equal to x0 is asymptotically stable if all of the eigenvalues (poles 15 ) of the Jacobian f ( xi , ) (the state-space A-matrix) have negative real parts. It is unstable if A x j

has an eigenvalue with a positive real part. If one or more of the eigenvalues are on the
j axis and all others are in the left-half plane, no conclusions about stability can be

drawn from the linear model. Whether the actual behavior of the system is divergent or convergent will then depend upon the higher-order terms in the Taylors Series expansion. Thus, except for the borderline j axis case, this result states that the linearization can provide sufficient conditions for stability of the nonlinear system in a neighborhood of an equilibrium point. When nonzero inputs (t) are considered, additional types of stability are often used.
Definition 3 (Bounded input, bounded output stability)

Let u be a bounded input with Km as the least upper bound. If there exists a scalar such that for every t, the output satisfies y K m , then the system is bounded
input, bounded output stable, abbreviated as BIBO stable.
When the system equations are simultaneous linear ordinary differential equations (ODEs), the transfer function that results will be a ratio of polynomials; that is, H (s ) = b(s ) a (s ) . If we assume that b and a have no common factors (as is usually the case), then values of s such that a(s)=0 will represent points where H(s) is infinity. These s-values are called poles of H(s). Values of s such that b(s)=0 are points where H(s)=0, and the corresponding s-locations are called zeros.
15

57

Some useful tools to analyze BIBO stability and full nonlinear stability include phase-plane analysis and simulation.

6.1 Phase Plane Analysis


Phase-plane representations of nonlinear systems are used at various times to analyze stability of a system because of the insight they provide. Although general phase-plane analysis techniques exist, they are fully effective only for second-order systems and are not pursued in detail here.

6.2 Simulation and Integration Schemes


Because of the lack of analytical solutions for nonlinear system equations, simulation takes on a much greater significance. Many numerical integration schemes will diverge if the integration step is too large for the frequency of the signal being integrated. The major danger in applying fixed-step integration schemes to nonlinear systems whose response frequencies may not be known in advance is that the numerical algorithm instability may be falsely interpreted as a system instability. One approach suggests that when a simulated response appears to be diverging, the simulation should be retried using a smaller integration time-step. Our simulations have been run with a time-step of 0.001 seconds with a 4th order Runge-Kutta integration scheme. This time step appears to be sufficient, as was shown in Figure 28, and allows the simulation to finish in a reasonable amount of time. Note that there are other integration schemes that allow variable step sizes which are adjusted based on the change in states, the errors associated with these methods can be unquantifiable.

58

6.3 Nominal System Stability


Consider the nominal system presented above (straight-and-level flight with a forward velocity of 82.25 m/s. The poles of the nominal system are displayed in Table 4 and Figure 30.

Unstable Pole Index

Real 0.0000E+00 -1.9100E-02 7.9389E-01 -1.5710E+00 -9.6386E+00 -2.3886E+00 -2.3886E+00 2.7866E+00 2.7866E+00

Imaginary 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00 -2.1893E+01 2.1893E+01 -2.2634E+01 2.2634E+01

Frequency 0.0000E+00 1.9100E-02 7.9389E-01 1.5710E+00 9.6386E+00 2.2023E+01 2.2023E+01 2.2804E+01 2.2804E+01

Damping NaN 1.0000E+00 -1.0000E+00 1.0000E+00 1.0000E+00 1.0846E-01 1.0846E-01 -1.2220E-01 -1.2220E-01

Table 6-1: Nominal System Pole Information

The highlighted values in Table 4 and the xs in the right half plane (RHP) of Figure 30 correspond to the unstable poles.

59

Open-Loop Pole-Zero Map 25 0.32 20 0.44 15 0.6 10 Imaginary Axis 5 0 -5 -10 0.6 -15 -20 0.44 0.32 -25 -10 -8 0.23 -6 0.16 -4 Real A xis 0.1 -2 0.05 0 2 4 15 20 0.84 10 5 0.23 0.16 0.1 0.05 20 15

0.84

5 10

Figure 30: Nominal System Pole-Zero Map

To get an idea about which states play the largest role in these unstable poles, the eigenvectors are examined and displayed in Table 5.

Unstable Pole 1 Index phi 7.7052E-01 theta 0.0000E+00 psi 1.2016E-01 u 0.0000E+00 v -9.3310E-02 w 0.0000E+00 p 6.1159E-01 q 0.0000E+00 r 9.5397E-02

2 -1.1408e-002 -2.1663e-002i 0.0000E+00 -9.7572e-003 -7.3079e-004i 0.0000E+00 7.9872E-01 0.0000E+00 -5.2205e-001 +1.9757e-001i 0.0000E+00 -4.3730e-002 +2.1880e-001i

Table 6-2: Eigenvectors of Unstable Poles of Nominal System

60

Based on the eigenvectors presented, the states representing roll (), roll-rate (p), and starboard velocity (v) appear to be the main contributors to the system instabilities. This is verified by examining the nonlinear step responses (applied to the states) where the step is a scaled version of the eigenvector corresponding to the unstable pole of 0.794 (since it already has real components) shown in Figure 30.

0.7 0.6 0.5 u (m/s)

82.285 82.28 82.275 82.27 82.265 82.26 82.255 0 x 10


-3

0.7 0.6 0.5 p (rad/sec) 0 1 2 3 0.4 0.3 0.2 0.1 0 0 1 2 3

(rad)

0.4 0.3 0.2 0.1 0 1 2 3

82.25

2 0 -2

0.15 0.1 0.05 v (m/s) 0 -0.05 -0.1 -0.15 q (rad/sec)

0.035 0.03 0.025 0.02 0.015 0.01 0.005 0 1 2 3 0 0 1 2 3

(rad)

-4 -6 -8 -10 -12 0 1 2 3

-0.2

0.1 0.08

0.04

0.15

0.02 r (rad/sec) 0 1 Time (sec) 2 3 0.06 0.04 0.02 -0.02 0 -0.02 -0.04 z (m/s)

0.1

(rad)

0.05

1 Time (sec)

-0.05

1 Time (sec)

Figure 31: Nonlinear Step Responses

Note that it is apparent that the and p step response transients appear to be the most unstable as was predicted by the eigenvector corresponding to the unstable pole of 0.794. Also keep in mind that these are nonlinear transients which include the higher order terms that the linearization procedure doesnt capture. Since there is a good match between the dynamics represented in the state-space (linear) model and those in the nonlinear

61

transients, the linear model represents a good approximation so the state-space model can be used to design a control law. Another comparison can be seen in Figure 32 where an elevator step of 1 degree given at 0.5 seconds.

1 Nonlinear Linear 0.5 u (m/s)

82.28 82.26 82.24 82.22 82.2 82.18 Nonlinear Linear 0 0.5 1 1.5 2 p (rad/sec)

1 Nonlinear Linear 0.5

(rad)

-0.5

-0.5

-1

0.5

1.5

-1

0.5

1.5

0.02 0.015 0.01 v (m/s) Nonlinear Linear

1 Nonlinear Linear 0.5 q (rad/sec)

0.15 0.1 0.05 0 -0.05 -0.1 -0.15 Nonlinear Linear

(rad)

0.005 0 -0.005 -0.01 -0.015 0 0.5 1 1.5 2

-0.5

-1

0.5

1.5

-0.2

0.5

1.5

1 Nonlinear Linear 0.5

1 Nonlinear Linear 0.5 r (rad/sec) z (m/s)

1 Nonlinear Linear 0.5

(rad)

-0.5

-0.5

-0.5

-1

0.5

1 Time (sec)

1.5

-1

0.5

1 Time (sec)

1.5

-1

0.5

1 Time (sec)

1.5

Figure 32: Comparison of Nonlinear and Linear System Transients with a 1 deg Elevator Step

Note that the nonlinear and the linear responses are nearly identical. This is an important comparison as one of the main purposes of this thesis was to design a full 6DOF model that has matching nonlinear and linear dynamics. To get an idea of the dynamics in the remainder of the flight envelope, pole-zero maps for the six trim conditions identified in Figure 29 are displayed in Appendix C. The

62

basic conclusion from those results is that as the velocity increases, the plant becomes more unstable. Also displayed in Appendix C is the state-space matrix for a straight-and-level flight condition with a forward velocity of 88.25 m/s so that these results may be readily verified by other researchers.

7 Control Law Design


The objective of a control system is to make the output y behave in a desired way by manipulating the plant input . The regulator problem is to manipulate to counteract the effect of a disturbance d. The servo problem is to manipulate to keep the output close to a given reference input r. Thus, in both cases we want the control error

e = y r to be small. The algorithm for adjusting based on the available information


is the controller K. To arrive at a good design for K, a priori information is needed about the expected disturbances and reference inputs, and of the plant model (G) and the disturbance model (Gd). In this thesis, control design makes use of the linear models for the form
y = G + Gd d
Equation 60

A major source of difficulty is that the models G and Gd are approximations and may be inaccurate and can possibly change with time (when planing for instance). In particular, inaccuracy in G may cause problems because the plant will be part of the feedback loop. To deal with such a problem, there is the concept of model uncertainty. For example, instead of a single nominal model G, the behavior of a class of models,
G p = G + E , where the uncertainty or perturbation E is bounded, but otherwise

unknown. In most cases, weighting functions w(s) are used to express E = w in terms of the normalized perturbations, , where the magnitude (norm) of is less than or equal to 1. When considering such a design process, the following terms are useful:
Nominal Stability (NS): The nominal system is stable with no uncertainty.

63

Nominal Performance (NP): The system satisfies the performance specifications

with no model uncertainty.


Robust Stability (RS): The system is stable for all perturbed plans about the

nominal model up to worst-case model uncertainty.


Robust Performance (RP): The system satisfies the performance specifications

for all perturbed plants about the nominal model up to the worst-case model uncertainty.

7.1 Transfer Functions


The remainder of this thesis makes extensive use of transfer functions, G(s), and of the frequency domain, which are very useful in applications for the following reasons: Invaluable insights are obtained from simple frequency-dependent plots. Important concepts for feedback such as bandwidth and peaks of closed-loop transfer functions may be defined.
G(j) gives the response to sinusoidal input of frequency .

A series interconnection of systems corresponds in the frequency domain to multiplication of the individual transfer functions, whereas in the time domain, the evaluation of complicated convolution integrals is required.

Poles and zeros appear explicitly in factorized scaler transfer functions. Uncertainty is more easily handled in the frequency domain. This is related to the fact that two systems can be described as close (i.e. have similar behavior) if the frequency responses are similar. response. Reconsider the linear, time invariant system from Equation 55 whose input-output On the other hand, a small change in a parameters in a state-space description can result in an entirely different system

responses are governed by linear ODEs with constant coefficients.


x = Ax + B y = Cx + D

64

For a proper system, with the number of poles greater than or equal to the number of zeros, the transfer function can be written from the above state-space realization as
G (s ) = C (sI A) B + D
1

Equation 61

Note that for multivariable system such as this torpedo model, G(s) is a matrix of transfer functions. For closed-loop transfer functions S denotes the sensitivity of the plant output, and T = I S denotes the complimentary sensitivity.
1 1

With negative feedback,

S = (I + L ) and T = L(I + L ) , where L is the transfer function around the loop as seen

from the output. In most cases, L=GK, but if measurement dynamics are also included

( ym

= Gm y + n ) then L=GKGm. The corresponding transfer functions as seen from the Typical representations of closed-loop systems in block diagram form are shown

input of the plant are LI=KG or (LI=KGmG), SI=(I+LI)-1 and TI=LI(I+LI)-1. in Figure 33; case (a) is a one degree-of-freedom (1DOF) feedback loop and (b) is the general structure.

65

Figure 33: Closed-Loop Block Diagrams

Here n is the noise, w is the exogenous inputs such as commands, disturbances, and noise, z is the exogenous outputs such as the errors to be minimized, e.g. y-r, and v is the controller inputs for the general configuration, e.g. commands, measured plant outputs, measured disturbances, etc.

7.1.1 1DOF Controller


The input to the controller K is r-ym where ym = y+n is the measured output and n is the measurement noise. Thus, the input to the torpedo model is
= K (r y n )
Equation 62

The objective of control is to manipulate (design K) such that the control error e remains small in spite of disturbances d. The control error e is defined as

66

e = yr
where r denotes the reference point of the output.

Equation 63

7.1.2 Closed-Loop Transfer Functions


The plant model is written as
y = G + Gd d
Equation 64

and for a 1DOF controller and substitution of Equation 62 into Equation 64 yields

(I + GK ) y = GKr + Gd d GKn 1 1 1 y = (I + GK ) GK r + (I + GK ) G d d (I + GK ) GK n 1 4 4 2 4 43 1 4 2 43 1 4 4 2 4 43
T S T

y = GK (r y n ) + G d d

Equation 65

Equation 65 represents the closed-loop response. The control error is


e = y r = Sr + SGd d Tn
Equation 66

The corresponding plant input signal is = KSr KSG d d KSn From the above equations, it is clear that S is the closed-loop transfer function from the output disturbances to the outputs, while T is the closed-loop transfer function from the reference signals to the outputs. The term complimentary sensitivity follows from the identity:
S +T = I
Equation 67

This is a fundamental design constraint for the control designer. What it means is that there is ultimately a trade-off between disturbance rejection and closed-loop performance; the designer cannot improve one without hindering the other.

67

7.2 Continuous-Time Linear Quadratic Controller


There are many methods used today to design controllers, some better than others depending on the application. Common methods include PID, LQR, LQG, H, , Dynamic Inversion, etc. However, since the focus of this thesis is really to define the torpedo dynamic model, just a simple linear quadratic regulator (LQR) stabilizing controller is synthesized here. The purpose being that this provides a stepping-stone to further the control design process. The LQR is a cornerstone of modern optimal control design. It has a wide range of relevance, because many systems are linear to begin with, and in this case, the torpedo model can be linearized when operating near an equilibrium point. To design the optimal LQR, the design engineer must first select the design parameter weight matrices Q (the state weighting) and R (the control weighting) in the performance index shown in Equation 68.
J = x T Qx + T R dt
t0 t1

Equation 68

Q and R are symmetric matrices of design parameters chosen by the designer depending

on the control objectives. The weight matrix Q is assumed positive-semidefinite (Q 0 ) . Thus Q has nonnegative eigenvalues so that xTQx is nonnegative for all x. Likewise, it will be assumed that R is positive definite (R > 0), that is, R has positive eigenvalues so that T R > 0 for all . In this case, J is always bounded below zero, so that a sensible minimization problem results. Since the squares of the states and control inputs occur in Equation 68, the performance index is a form of generalized energy and minimizing it will keep the states and controls small. For starting purposes, the gains for Q and R used in the original Anteon model provide a good starting point. Thus, the weighting matrices chosen are

Q = diag (1 1 1 0 0 0 0.1 0.5 0.1) R = diag (1 1 1 1 0.1 01.)

68

The LQR design procedure is in stark contrast to classical control design where the gain matrix K is selected directly. In modern optimal control design, some parameter matrices Q and R are selected by the engineer. Then, the feedback gain K is automatically given by matrix design equations (see MATLABs lqr command). This has the significant advantages of allowing all the control loops in a multiloop system to be closed simultaneously, while guaranteeing closed-loop stability.

7.2.1 Closed-Loop Dynamics


Once the LQR controller has been defined, system dynamics can be analyzed and simulated time histories can be examined. As expected the LQR design created a stable closed-loop system as is shown in Figure 34 where the closed-loop poles and zeros are presented. Notice that there are no RHP poles in the system. This means that our system is stable. However, note that there are two very small damping ratios of about 0.28 and four poles that have large frequencies. The low damping ratios means it will take longer for some signals to come to there steady-state values and the high frequencies means that there will be some transients that have fast oscillations and also means that faster, more expensive actuators would be needed to perform the necessary control action.

69

Closed-Loop Pole-Zero Map 30 0.64 0.8 20 0.5 0.38 0.28 0.17 0.08 25 20 15 10 0.94 Imaginary Axis 10 5 0 5 -10 0.94 10 15 -20 0.8 0.64 -30 -30 -25 -20 0.5 -15 Real A xis 0.38 -10 0.28 0.17 -5 0.08 20 25 0

Figure 34:Closed-Loop Pole-Zero Map of Nominal System with LQR Controller

Note that the large negative pole at -536 (lies on the Real axis) is not shown in the above pole-zero map. Figure 35 displays the nonlinear (solid, blue line) and linear (red, dashed line) transients of a closed-loop system that utilizes the designed LQR controller after a step in the yaw-rate state, r, with magnitude of 1 deg/sec at 0.5 sec.

70

1 0.8 0.6 0.4 0.2 0

x 10

-3

82.251 Nonlinear Linear 82.25 p (rad/sec) u (m/s) Nonlinear Linear

15

x 10

-3

Nonlinear Linear 10

(rad)

82.249

0 82.248 0
-3

0.5

1.5

0.5

1.5

-5

0
-5

0.5

1.5

1.234 1.233 1.232 1.231 1.23 1.229 1.228

x 10

0.2 Nonlinear Linear 0.1 0 q (rad/sec) v (m/s) -0.1 -0.2 -0.3 -0.4 Nonlinear Linear

1.5 1 0.5 0 -0.5 -1

x 10

Nonlinear Linear

(rad)

0 x 10
-3

0.5

1.5

-0.5

0 x 10
-3

0.5

1.5

0 x 10
-3

0.5

1.5

8 6 4 2 0 -2

1.8 1.6 1.4 1.2 1 0.8

20 Nonlinear Linear 15 r (rad/sec) 10 5 0 -5

Nonlinear Linear

Nonlinear Linear 0 0.5 1 Time (sec) 1.5 2

z (m/s)

(rad)

0.5

1 Time (sec)

1.5

0.5

1 Time (sec)

1.5

Figure 35: Closed-Loop Transients (1 deg/sec Step in r)

Since the step was in the yaw-rate state, r, and since the controller is supposed to drive the errors to zero, there apparently is a problem with the performance of the LQR designed controller. One would expect that the yaw rate approach 1 deg/sec = 0.01745 rad/sec and remain at that value. Instead, the nonlinear r doesnt even approach 0.01 rad/sec. Both the linear and nonlinear r signals settle back to zero which means that there is a steady-state error in r of 1 deg/sec. Clearly this is not a sufficient controller. The only thing that this particular LQR controller was good for was guaranteeing nominal stability for the nominal torpedo model. There are numerous and varying methods for designing control laws and that is to this day an active field of research and development. As was stated earlier, the purpose of this thesis was not to present a controller, but to present a description of a supercavitating torpedo model and all the associated issues it has and purposes it will

71

fulfill such as control law design as well as to provide some reference for comparison between the benchmark torpedo model and this updated model.

7.3 Transformed System


It is common in most aerospace applications that control of the torpedo be broken up into two different loops. The inner loop which would control the angular rates p, q, and r while the outer loop which would control the Euler angles , , and . An additional guidance loop is wrapped around these two loops for such applications such as missiles and torpedoes. In order to stick with this convention and in order to get a better idea of how the open-loop model behaves in terms of rate inputs to rate outputs (this is currently difficult given the complex orientation and interaction between the torpedoes control surfaces). To do this, the linear state-space must be transformed. In order to get the desired inner-loop transfer functions, a new output matrix must be defined.

CT

u 0 0 0 0 = 0 0 0 0 0 0 0 0

v 0 0 0

w p q r 0 1 0 0 0 0 1 0 0 0 0 1

so that the angular rates can be pulled out of the state-space model. A transformation matrix is then defined as T = (CT Bol ) CT Bol (CT Bol )
T

T 1

= pinv(CT Bol )
B

Equation 69

which is the pseudo inverse of the product of CT and Bol where Aol and Bol are the
B

dynamics and input Jacobean matrices representing the linearization of the open-loop torpedo model. The transformed system then becomes the state-space representation defined in Equation 70.

72

x = Aol x + Bol T y = CT x

Equation 70

Notice that in this transformed system, the new A matrix is the same as before, so the new system poles representing the transfer functions from angular rate input to angular rate output are the same as before the transformation. This means that the previous stability analysis will still be useful. The multivariable transformed system is represented in the following pole-zero map.

Pole-Zero Map of Transf ormed Multivariable System 25 0.32 20 0.44 15 0.6 10 Imaginary Axis 5 0 -5 -10 0.6 -15 -20 0.44 0.32 -25 -10 -8 0.23 -6 0.16 -4 Real A xis 0.1 -2 0.05 0 2 4 15 20 0.84 10 5 0.23 0.16 0.1 0.05 20 15

0.84

5 10

Figure 36: Pole-Zero Map of Transformed System

Close investigation would show that there are two zeros with the value of zero in addition to the RHP poles. This adds difficulty to the control law design, particularly if Dynamic Inversion was the designers preferred method since the nonminimum phase zeros would cause problems.

73

The purpose of this section is not necessarily to develop a controller for the innerloop, but rather to present a new method/model for control law design that is typically of interest. Once a controller is designed for this inner loop, the outer-loop design for the Euler angles becomes a much easier problem.

8 Model Uncertainty
A control system is robust if it is insensitive to differences between the actual system and the model of the system which was used to design the controller. These differences are referred to as model/plant mismatch or simply model uncertainty. Uncertainty in the plant model may have several origins: 1. There are always parameters in the linear model which are only known approximately or are simply in error. 2. The parameters in the linear model may vary due to nonlinearities or changes in the operating conditions. 3. Measurement devices have imperfections. This may even give rise to uncertainty on the manipulated inputs, since the actual control input is often measured and adjusted in a cascade manner. For example, this is often the case with valves used to measure flow. uncertainty. 4. At high frequencies even the structure and the model order is unknown and the uncertainty will always exceed 100% at some frequency. 5. Even when a very detailed model is available we may choose to work with a simpler (low-order) nominal model and represent neglected dynamics as uncertainty. 6. Finally, the controller implemented may differ from the one obtained by solving the synthesis problem. In this case one may include uncertainty to allow for controller order reduction and implementation inaccuracies. In other cases limited valve resolution may cause input

74

The various sources of model uncertainty mentioned above may be grouped into two main classes: 1. Parametric Uncertainty: Here the structure of the model (including the order) is known, but some of the parameters are uncertain. 2. Neglected and unmodelled dynamics uncertainty: Here the model is in error because of missing dynamics, usually at high frequencies, either through deliberate neglect of because of a lack of understanding of the physical process. Any model of a real system will contain this source of uncertainty. Parametric uncertainty will be quantified by assuming that each uncertain parameter is bounded within some region [min, max]. That is, we have parameter sets of the form

p = (1 + r )

Equation 71

where is the mean parameter value, r = ( max min ) max + min is the relative uncertainty in the parameter, and is any real scaler satisfying 1 . The parameters and their ranges identified in this thesis can be seen in Table 6.

Parameter Nominal Value % Variation (+/-) Cavitation 0.029 100 Number Cavitator 0.805 10 Cd0 Fin Cfx 13 Computed Using the Fin Cfy 17 Least-Squares Fin Cfz 12 Approximations for Fin Cmx 15 Varying a.o.a. and Fin Cmy 14 immersion ratios Fin Cmz 18

Table 8-1: Uncertain Parameters

The amount the cavitation number is allowed to vary is conservative since, in reality, a cavitation number of zero is not achievable. The fin force and moment coefficient variations are based on the %-error associated with the least-squares fit. i.e. they do not

75

contain any errors due to the original model not being accurate. If one wanted to take these type of errors into account, then the %-variation must be increased. Neglected and unmodelled dynamics uncertainty is somewhat less precise and thus more difficult to quantify, but it appears that the frequency domain is well suited for this class. This leads to complex perturbations which we normalize that

1 . Some

examples of unmodelled dynamics in this application would include the purposely neglected time delays that were discussed when the cavity shape was defined. For completeness one may consider a third class of uncertainty (which is really a combination of the two). 3. Lumped Uncertainty: Here the uncertainty description represents one or several sources of parametric and/or unmodelled dynamics uncertainty combined into a single lumped perturbation of a chosen structure. Parametric uncertainty is sometimes called structured uncertainty as it models the uncertainty in a structured manner. Analogously, lumped dynamics uncertainty is sometimes called unstructured uncertainty. However, one should be careful when using these terms because there are several levels of structure, especially for MIMO systems such as this torpedo.

8.1.1 Open-Loop Effects of Parametric Uncertainty


Some effects of model uncertainty can be seen in the way various parameters effect the overall system dynamics. In order to examine these results, the uncertain parameters identified above were examined by comparing the dynamics of the nominal system with the systems with the minimum and maximum parameter variations. One example of this comparison can be seen in Figure 37.

76

Open-Loop Pole-Zero Map f or parameter 25 0.36 20 15 0.66 10 0.86 Imaginary Axis 5 0 -5 0.86 -10 0.66 -15 -20 -25 -12 15 0.48 0.36 -10 -8 0.26 -6 0.18 -4 Real A xis 0.11 -2 0.06 0 2 4 20 10 5 0.48 0.26 0.18 0.11 0.06 20 15 Nominal Minimum Maximum

5 10

Figure 37: System Dynamics Comparison for a Varying Cavitation Number

Figure 37 displays the effects of varying cavitation numbers via a pole-zero map (note that there are no zeros). In this case, the cavitation number is allowed to vary from zero to 0.058 (two times the nominal value of 0.029). The arrows in the figure show the trends of the system poles for increasing values in the parameter. Remember that the lower the cavitation number, the more likely cavitation is to occur and the larger the cavity will be. However, the figure shows that the larger cavitation numbers makes the system more stable and increases the damping ratios of already stable poles but also increases the frequency which means the controller will have to be designed for a higher bandwidth. Similar types of pole-zero maps can be seen in Appendix D. In each case, the pole-zero map must be studied to determine the overall effects that the varying parameter will have on the open-loop dynamics. In addition, these types of studies help to identify model parameters that must be studied in more depth so that a more precise value can be

77

determined. With a more precise measurement, the size of the uncertainty can be reduced and a more accurate, less conservative, and most likely a better performing controller can be designed.

8.1.2 General Control Configuration with Uncertainty


The starting point for uncertain control law design and robustness analysis is a system representation in which the uncertain parameters are pulled out into a block diagonal matrix, 1 = diag{ i } =

Equation 72

where each i represents a specific source of uncertainty. If the controller K is also pulled out, a generalized plant, P, configuration is developed and is represented in Figure 38,

K
Figure 38: Generalized Control Configuration (for Controller Synthesis)

where d and e are the generalized disturbances and errors, respectively. This form is useful for controller synthesis In order to describe the uncertainty, one method that would be useful and easy to implement is one that is described by A. Helmerssons Ph.D. thesis Methods for Robust Gain Scheduling. It describes a method for computing the uncertainty matrix by 78

differencing the A matrices of the nominal system with the system linearized with a min and max value of an uncertain parameter and adding the unmodelled dynamics where appropriate. This method would save on the work needed to pull out the uncertain parameters from the code and represent them individually, though this method would be marginally more accurate. Numerous references exist which describe uncertainty in more detail and how to design a controller that takes the various types of uncertainty into consideration. If circumstances were different, this would have been the topic of this thesis, but due to time constraints and other commitments, this work must be handed to another.

9 General Conclusions
Supercavitating torpedoes are complex systems that require an active controller, which can ensure stability and enable the torpedo to track a target. In addition, the control law design process requires a dynamic model that captures the physics of the problem. Existing public 6DOF models were not able to fully capture the dynamics of the torpedo and provide a good platform with which to design a feedback controller. This thesis was able to design such a model and it was shown that the complex nonlinear and simple linear model (used for control design) had matching dynamics via computer simulation. In addition, parameters within the model that are uncertain were identified and it was described how to incorporate them into the control law design process. By designing such a model, several interesting properties of the torpedo were discovered. The first, and maybe one of the most important, is that if the planing forces are used to help support the weight of the torpedo the large planing forces occur at such a high frequency (~50 Hz) that designing a controller with the appropriate bandwidth would be extremely difficult in addition to expensive. This is why the thesis treated the occurrence of planing forces as a type of operating boundary since the forces produced by the cavitator and fins are sufficient to support the vehicles weight. This also helps to reap the benefits of a supercavitating torpedo less drag.

79

Unfortunately, this model is not open-loop stable as is represented by the three open-loop system RHP poles. The states that contribute the most to these unstable poles are roll, roll-rate, and side velocity. In addition, two of the poles have a large frequency which means that a robustly stable controller will be much harder to design since it will have to have a high bandwidth. Other interesting system properties are those that are observed when model parameters are allowed to vary. Some of the more interesting affects were noticed when the velocity and the cavitation number was allowed to vary. For example, as the velocity increases, the plant becomes more unstable. When considering the cavitation number, remember that the lower the cavitation number, the more likely the cavitation occurs and the larger the cavity will be. However, open-loop sensitivity analysis showed that the larger cavitation number not only made the system more stable and increased the damping ratios of already stable poles but also increased the frequency. Similar types of effects can be seen in other parameters as well as can be seen in Appendix D. Further work into this subject should yield a robust feedback controller and further analysis into the worst-case performance.

80

10 Bibliography
[1] Ivan N. Kirschner, et al. Control Strategies For Supercavitating Vehicles. University of Minnesota Graduate Seminar Series (2001) [2] Etkin, Bernard. Dynamics of Flight: Stability and Control. Second Edition Ney York, John Wiley & Sons. 1958 [3] Enns, Dale Ph. D., AEM 4303 Flight Dynamics and Control Handout. University of Minnesota, Minneapolis. Spring Semester, 2000 [4] Honeywell Technology Center, Lockheed Martin Skunk Works, Lockheed Martin Tactical Aircraft Systems, Application of Multivariable Control Theory to Aircraft Control Laws. WL-TR-96-3099 [5] Yuriy N. Savchenko, SUPERCAVITATION PROBLEMS AND PERSPECTIVES. National Academy of Sciences Institute of Hydromechanics, Kyiv, Ukraine, CAV2001:lecture.003. 2001 [6] Stinebring, Billet, and Lindau, Kunz, Developed Cavitation- Cavity Dynamics. Applied Research Laboratory, Penn State [7] Mike Elgersma, Multibody Dynamics Using a Projection Method (Kanes Equations). Honeywell Labs, Internal Document, November, 1989 [8] Burah, Haim. Analytical Dynamics. Boston, WCB McGraw-Hill. 1999 [9] R.L. Waid , Cavity Shapes for Circular Disks at Angles of Attack California Institute of Technology Hydrodynamics Laboratory Report No. E-73.4 Pasadena, CA. 1957 [10] Blakelock, John H., Automatic Control of Aircraft and Missiles. Second Edition New York: John Wiley & Sons, Inc, 1991 [11] Kirschner, Ivan, Numerical Modeling of Supercavitating Flows. Anteon/Engineering Technology Center. February, 2001 [12] Savchecnko, Yu. N., Control of Supercavitation Flow and Stability of Supercavitating Motion of Bodies. Ukranian National Academy of Sciences Institute of Hydromechanics. Kyiv, Ukraine. 2001 [13] Savchecnko, Yuriy N., Supercavitation Problems and Perspectives. National Academy of Sciences Institute of Hydromechanics. Kyiv, Ukraine [14] Michel, J.M., Introduction of Cavitation and Supercavitation. Laboratoire des

81

Ecoulements Geophysiques et Industriels. Grenoble Cedex 9, France. 2001 [15] Savchenko, Yu. N., Experimental Investigation of Supercavitating Motion of Bodies. Ukranian National Academy of Sciences Institute of Hydromechanics. Kyiv, Ukraine. 2001 [16] Uhlman, J.S., Fine, N.E., and Kring, D.C., Calculation of Added Mass and Damping Forces on Supercavitating Bodies. Engineering Technology Center, a Division of Anteon Coorporation. Middletown, RI. 2001 [17] Streeter, Handbook of Fluid Dynamics. pp 12-25 12-45 [18] Savchenko, Yu. N., Supercavitating Object Propulsion. Ukranian National Academy of Sciences Institute of Hydromechanics. Kyiv, Ukraine. 2001 [19] Serebryakov, Vladimmir V., Some Models of Prediction of Supercavitation Flows Based on Slender Body Approximation. Institute of Hydromechanics of NASU, Kieve, Ukraine. 2001 [20] Levine, William S., The Control Handbook. IEEE Press. pp 82-83, 388-393, 417-418, 457-458, 762-768, 889-891, 1105-1107 [21] Shin, Jong-Yeob, Balas, Gary J., and Packard, Andrew K., Worst-Case Analysis of the X-38 Crew Return Vehicle Flight Control System. Journal of Guidance, Control and Dynamics. Vol. 24, No.2, March-April 2001

82

Appendix A: Fin Force and Moment Coefficient Data Computed Directly From Anteons Fin Look-up Table
This appendix provides graphs of the provided fin force and moment coefficient look-up table as a function of angle of attack and immersion ratios. Only limited regions of the computed/possible operating spaces are presented in order to better show the portion of the space the linearization occurs in. It should be noted, however, that these linearization values or points in the table space are based in linearization of the original Anteon model code and does not represent data for the updated/corrected model.

83

F x for Sweep = 45o

x 10 2.5

-3

Fx

1.5

0.5 2 1 0 -1 0.6 -2 0.55 Imm 0.65 0.7

0.8 0.75

M x for Sweep = 45o

0.01 0.005 Mx 0 -0.005 -0.01 2 1 0 0.7 -1 0.65 -2 0.6 0.55 Imm 0.75 0.8

Figure 39: Map of the x-Component of the Fin Force and Moment Coefficients

84

F y for Sweep = 45o

x 10 0 -0.2 -0.4 Fy -0.6 -0.8 -1 -1.2 -2

-3

0.55 -1 0 1 2 0.8 Imm 0.75 0.7 0.6 0.65

M y for Sweep = 45o

0.01

0.005

My

-0.005

-0.01 0.8 0.75 0.7 0.65 0.6 0.55 Imm 2 1 0 -1

-2

Figure 40: Map of the y-Component of the Fin Force and Moment Coefficients

85

F z for Sweep = 45o

0.02 0.01 Fz 0 -0.01 2 -0.02 0.55 0.6 0.65 0.7 0.75 0.8 Imm -2 -1 0 1

M z for Sweep = 45o

x 10 -2 -4 -6 Mz -8 -10

-4

2 -12 0.55 0.6 0.65 0.7 0.75 0.8 Imm -2 -1 0 1

Figure 41: Map of the z-Component of the Fin Force and Moment Coefficients

86

2.4 2.2 2 1.8 1.6 Fx 1.4 1.2 1 0.8

x 10

-3

F x for Sweep = 45o

0.6 -2

-1.5

-1

-0.5

0.5

1.5

8 6 4 2 Mx 0 -2 -4 -6

x 10

-3

M x for Sweep = 45o

-8 -2

-1.5

-1

-0.5

0.5

1.5

87

x 10

-3

F y for Sweep = 45o

-0.2

-0.4

Fy

-0.6

-0.8

-1

-1.2 -2

-1.5

-1

-0.5

0.5

1.5

8 6 4 2 My 0 -2 -4 -6

x 10

-3

M y for Sweep = 45o

-8 -2

-1.5

-1

-0.5

0.5

1.5

88

F z for Sweep = 45o 0.02 0.015 0.01 0.005 Fz 0 -0.005 -0.01 -0.015 -0.02 -2

-1.5

-1

-0.5

0.5

1.5

-2 -3 -4 -5 -6 Mz -7 -8 -9 -10

x 10

-4

M z for Sweep = 45o

-11 -2

-1.5

-1

-0.5

0.5

1.5

89

2.4 2.2 2 1.8 1.6 Fx 1.4 1.2 1 0.8

x 10

-3

F x for Sweep = 45o

0.6 0.55

0.6

0.65 Imm

0.7

0.75

0.8

8 6 4 2 Mx 0 -2 -4 -6

x 10

-3

M x for Sweep = 45o

-8 0.55

0.6

0.65 Imm

0.7

0.75

0.8

90

x 10

-3

F y for Sweep = 45o

-0.2

-0.4

Fy

-0.6

-0.8

-1

-1.2 0.55

0.6

0.65 Imm

0.7

0.75

0.8

8 6 4 2 My 0 -2 -4 -6

x 10

-3

M y for Sweep = 45o

-8 0.55

0.6

0.65 Imm

0.7

0.75

0.8

91

F z for Sweep = 45o 0.02 0.015 0.01 0.005 Fz 0 -0.005 -0.01 -0.015 -0.02 0.55

0.6

0.65 Imm

0.7

0.75

0.8

-2 -3 -4 -5 -6 Mz -7 -8 -9 -10

x 10

-4

M z for Sweep = 45o

-11 0.55

0.6

0.65 Imm

0.7

0.75

0.8

92

2.5

x 10

-3

F x for Sweep = 45o

Fx 1.5 1 -2

-1.5

-1

-0.5

0.5

1.5

8 6 4 2 Mx 0 -2 -4 -6

x 10

-3

M x for Sweep = 45o

-8 -2

-1.5

-1

-0.5

0.5

1.5

93

-2

x 10

-4

F y for Sweep = 45o

-4

-6 Fy -8 -10 -12 -2

-1.5

-1

-0.5

0.5

1.5

8 6 4 2 My 0 -2 -4 -6

x 10

-3

M y for Sweep = 45o

-8 -2

-1.5

-1

-0.5

0.5

1.5

94

F z for Sweep = 45o 0.02 0.015 0.01 0.005 Fz 0 -0.005 -0.01 -0.015 -0.02 -2

-1.5

-1

-0.5

0.5

1.5

-3 -4 -5 -6 Mz -7 -8 -9 -10

x 10

-4

M z for Sweep = 45o

-11 -2

-1.5

-1

-0.5

0.5

1.5

95

F z for Sweep = 45o 0.02 0.015 0.01 0.005 Fz 0 -0.005 -0.01 -0.015 -0.02 -2

-1.5

-1

-0.5

0.5

1.5

-3 -4 -5 -6 Mz -7 -8 -9 -10

x 10

-4

M z for Sweep = 45o

-11 -2

-1.5

-1

-0.5

0.5

1.5

96

2.5

x 10

-3

F x for Sweep = 45o

Fx 1.5 1 0.55

0.6

0.65 Imm

0.7

0.75

0.8

8 6 4 2 Mx 0 -2 -4 -6

x 10

-3

M x for Sweep = 45o

-8 0.55

0.6

0.65 Imm

0.7

0.75

0.8

97

-2

x 10

-4

F y for Sweep = 45o

-4

-6 Fy -8 -10 -12 0.55

0.6

0.65 Imm

0.7

0.75

0.8

8 6 4 2 My 0 -2 -4 -6

x 10

-3

M y for Sweep = 45o

-8 0.55

0.6

0.65 Imm

0.7

0.75

0.8

98

F z for Sweep = 45o 0.02 0.015 0.01 0.005 Fz 0 -0.005 -0.01 -0.015 -0.02 0.55

0.6

0.65 Imm

0.7

0.75

0.8

-3 -4 -5 -6 Mz -7 -8 -9 -10

x 10

-4

M z for Sweep = 45o

-11 0.55

0.6

0.65 Imm

0.7

0.75

0.8

99

Appendix B
This appendix contains the Simulink and MATLAB code used to simulate the model and compute all appropriate forces.

100

Phi Theta Psi u v w p q r

Phi Theta 0 0 0 0 0 0 0 -9.8100E+00 9.8100E+00 0 0 0 0 0 0 0 0 0 p 1.0000E+00 0 0 0 2.5156E-02 0 -9.0922E+00 0 -4.2581E-02 q 0 1.0000E+00 0 -3.1469E-01 4.0440E-12 7.5629E+01 -1.2524E-09 -3.2889E+00 -1.1247E-11

Psi 0 0 0 0 0 0 0 0 0 r 0 0 1.0000E+00 1.6176E-11 -8.1673E+01 6.4705E-11 6.4728E+01 0 7.3486E+00

u 0 0 0 -1.5892E+00 4.0441E-12 -2.3353E-01 8.3493E-10 8.8772E-03 -5.6233E-12

v 0 0 0 0 -1.5279E+00 0 1.3780E+00 8.9974E-11 6.4222E+00

w 0 0 0 -1.0785E-01 4.9423E-17 -1.4891E+00 -4.1746E-10 -6.3489E+00 -3.3003E-16

Phi Theta Psi u v w p q r

Table A-1: A-Matrix for Straight-and-Level Flight with V = 82.25 m/s


u1 u2 u3 u4 u5 u6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1.8872 0 1.8872E+00 0 3.5329E+00 0 -1.8166E+00 7.3874E+01 -1.8166E+00 -5.9306E+01 0 -6.2846E+01 -6.5488E+01 0 6.5488E+01 0 -6.2747E+01 0 -8.4284E+02 -9.2238E+02 -8.4284E+02 -7.8728E+02 0 0 -1.1525E+02 0 1.1525E+02 0 1.9623E+02 0 3.3651E+00 -1.2983E+02 3.3651E+00 1.0449E+02 0 -1.9654E+02

Phi Theta Psi u v w p q r

Table 0-2: B-Matrix for Straight-and-Level Flight with V = 82.25 m/s

The C-matrix is the identity matrix and the D-matrix is [zero]. This flight condition is given here so that the results may be easily duplicated without reproducing all the code. It also provides a method to check the nonlinear code given in this appendix.

101

102

103

104

105

106

do_6DOF.m % This is a script designed to simulate the nonlinear 6DOF EOM and % compute the appropriate linear model. This model is slightly different % than the original EOM in that I moved the origin to the center of mass. warning off %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Set up model information %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % set the global variables global planeModel mass inertia body cav cavity DELTA global sim hwait d2r = pi/180; r2d = 180/pi; % set constants and model data [mass, inertia, body, cav, cavity, rho] = setup_sim_data;

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Setup simulation parameters %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% sim.dt = 0.001; %sec sim.t_stop = 2; %sec sim.simulating = false; ol_sim = true; ol_lin_sim = false; cl_sim = false; cl_lin_sim = false; % set the nominal speed V = 82.25; % set the turning acceleration turnG = 0; % set the flight condition: % 'straight-and-level' % 'turn' flight_con = 'straight-and-level'; %flight_con = 'turn'; % set the initial heading initial_heading = 0; % set the output reference frame and appropriate transformation matrix mass.origin_method = 'U of MN'; %('U of MN','Anteon') switch mass.origin_method case 'U of MN' dist = [0;0;0]; case 'Anteon' dist = [mass.x_cg;0;0]';

107

otherwise error('Incorrect origin setting') end r_tilde = [0,-dist(3),dist(2); dist(3),0,-dist(1); -dist(2),dist(1),0]; R = [eye(3),r_tilde; zeros(3),eye(3)];

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Define Initial/Trim Conditions %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % set the planing model (no planing is desired) planeModel = 'Hassan'; % set the appropraite trim conditions switch flight_con case 'straight-and-level' x0 = [0,0,initial_heading,V,0,0,0,0,0]'; thrust = -1*compute_drag(x0,zeros(6,1),rho); u0 = [0,0,0,0,0,0,thrust,0,0]'; [x0,u0,y0,dx,options] = trim('trim_6DOF_model',x0,u0,[],... [1,2,3,4,5,6,7,8,9],[2,4,6,8,9]); case 'turn' x0 = [0,0,initial_heading,V,0,0,0,0,(turnG*9.81)/V]'; x_dot = zeros(9,1); s1= sin(x0(1)); c1= cos(x0(1)); s2= sin(x0(2)); c2= cos(x0(2)); tan2= tan(x0(2)); sec2= sec(x0(2)); Tb2i_ang= [1, s1*tan2, c1*tan2 ; ... 0, c1, -s1 ; ... 0, s1*sec2, c1*sec2 ]; x_dot(1:3) = Tb2i_ang*x0(7:9); x_dot(1) = 0; thrust = -1*compute_drag(x0,zeros(6,1),rho); u0 = [0,0,0,0,0,0,thrust,0,0]'; [x0,u0,y0,dx,options] = trim('trim_6DOF_model',x0,u0,[],... [9],[8,9],[],x_dot,[1,2,3,4,5,6,7,8,9]); otherwise disp('Incorrect flight condition setting') return end % check for engineering zeros in x0 and u0 tol = 1e-9; for i = 1:length(x0) if abs(x0(i)) < tol x0(i) = 0; end end for i = 1:length(u0) if abs(u0(i)) < tol u0(i) = 0; end end % display the trim conditions disp(' ')

108

disp('The trim conditions are as follows:') disp(' x0 u0 y0 dx0') disp([x0,u0,y0,dx]) % set the initial conditions thrust = u0(7:9); u0 = u0(1:6); x0 = x0;

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Simulate the open-loop nonlinear model %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % set the step sizes for simulation %input_step_matrix = diag([1*d2r,0,-1*d2r,0,0,0]); input_step_matrix = zeros(6,6); state_step_matrix = 1/10*diag([7.7052e-001 -1.5297e-010 1.2016e-001 5.6766e-010 -9.3310e002 8.2390e-009 6.1159e-001 -1.2144e-010 9.5397e-002]); %state_step_matrix = zeros(9,9); if ol_sim == true % set the planing model to be used planeModel = 'Hassan'; %('Hassan,'Hassan_and_Song','None') % simulate the openloop response sim.simulating = true; hwait = waitbar(0,'open-loop simulation running. Please wait...'); [t_ol,x_ol,y_ol] = sim('ol_model'); sim.simulating = false; close(hwait) % make plots of output make_graphs(t_ol,y_ol) end

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Linearize the model %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % compute the linear model planeModel = 'Hassan'; [A_ol,B_ol,C_ol,D_ol] = linmod('ol_model'); ol_sys = ss(A_ol,B_ol,C_ol,D_ol); % Check the controllability of the system if rank(ctrb(A_ol,B_ol),0.001) < 9 disp('Base open-loop plant is not controllable!') end % Check the observability of the system designKalman = false; if rank(obsv(A_ol,C_ol),0.001) < 9 disp('System is not observable!') end

109

% display the eigen value data [ol_eigVec,ol_eigVal] = eig(A_ol); disp(' ') disp('The open-loop plant eigenvalues are:') rifd(eig(A_ol)) % disp(' ') % disp('The open-loop plant eigenvectors are:') % ol_eigVec % make a pole-zero map figure pzmap(ol_sys) grid on title('Open-Loop Pole-Zero Map')

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % simulate the Open-Loop linearized model %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% if ol_lin_sim == true [t_ol_lin,x_ol_lin,y_ol_lin] = sim('ol_lin_model'); % make plots of output make_graphs(t_ol_lin,y_ol_lin) % compare liner and nonliner sim results if ol_sim == true make_comp_graphs(t_ol,y_ol,y_ol_lin); end end

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Design the controller(s) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Q = diag([1,1,1,0,0,0,.1,.5,.1]); R = diag([1,1,1,1,.1,.1]); [K_lqr,S,cl_eigVal_lqr] = lqr(A_ol,B_ol,Q,R);

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Simulate the closed-loop nonlinear system %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % set the step command values ref_step_matrix = diag([0,0,0,0,0,0,0,0,1*d2r]); ref_state = x0; if cl_sim == true % simulate the closed-loop response planeModel = 'Hassan'; hwait = waitbar(0,'Closed-loop simulation running. Please wait...'); sim.simulating = true;

110

[t_cl,x_cl,y_cl] = sim('cl_model'); sim.simulating = false; close(hwait) % plot the output make_graphs(t_cl,y_cl) end

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Linearize the closed-loop system %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % compute the linear model planeModel = 'None'; [A_cl,B_cl,C_cl,D_cl] = linmod('cl_model'); cl_sys = ss(A_cl,B_cl,C_cl,D_cl); % display the eigen value data [cl_eigVec,cl_eigVal] = eig(A_cl); disp(' ') disp('The closed-loop system eigenvalues are:') rifd(eig(A_cl)) % make a pole-zero map figure pzmap(cl_sys) grid on title('Closed-Loop Pole-Zero Map')

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % simulate the closed-loop linearized model %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% if cl_lin_sim == true [t_cl_lin,x_cl_lin,y_cl_lin] = sim('cl_lin_model'); % make plots of output make_graphs(t_cl_lin,y_cl_lin) % compare liner and nonliner sim results if cl_sim == true make_comp_graphs(t_cl,y_cl,y_cl_lin); end end

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Transform the system to examine multi-variable inner-loop (p,q,r) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %Define ol system G_ss = minreal(ss(A_ol,B_ol,C_ol,D_ol)); G_tf = minreal(tf(G_ss));

111

%Define the transformation Ct = zeros(3,9); Ct(1:3,7:9) = eye(3); Dt = zeros(3,3); T = Ct*B_ol; T_inv = pinv(T); %Define the transformed system [Gt_ss,U] = minreal(ss(A_ol,B_ol*T_inv,Ct,Dt)) Gt_tf = minreal(tf(Gt_ss)); % display the transformed system information disp(' ') disp('The transformed system poles are:') rifd(pole(Gt_ss)) disp(' ') disp('The transformed transmision zeros are:') rifd(zero(Gt_ss)) figure pzmap(Gt_ss) grid on title('Pole-Zero Map of Transformed Multivariable System')

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Transform the system to examine multi-variable inner-loop (p,q,r) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % find the individual loop information p_tf = minreal(Gt_tf(1,1)); p_ss = minreal(ss(p_tf)); p_tf = minreal(tf(p_ss)); q_tf = minreal(Gt_tf(2,2)); q_ss = minreal(ss(q_tf)); q_tf = minreal(tf(q_ss)); r_tf = minreal(Gt_tf(3,3)); r_ss = minreal(ss(r_tf)); r_tf = minreal(tf(q_ss)); % display the loop information disp(' ') disp('The info for transformed ol p/p_cmd is:') p_tf [z,p,k] = zpkdata(p_tf,'v') disp(' ') disp('The info for transformed ol q/q_cmd is:') q_tf [z,p,k] = zpkdata(q_tf,'v') disp(' ') disp('The info for transformed ol r/r_cmd is:')

112

r_tf [z,p,k] = zpkdata(r_tf,'v')

113

setup_sim_data.m function [mass, inertia, body, cav, cavity, rho] = setup_sim_data() global DELTA %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Define the uncertain parameters and the their associated range of values % (in percent difference) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % uncertainty in cavitator Cd0 DELTA.Cd0_range = [-.05 0 0.05]; % +/- 5% DELTA.Cd0_rval = 2; % uncertainty in the fin force and moment coefficients DELTA.Cfin_range = [-.13, 0, .13; -.17, 0, .17; -.12, 0, .12; -.15, 0, .15; -.14, 0, .14; -.18, 0, .18]; DELTA.Cfin_rval = 2; DELTA.Cfin_coef = 1; % uncertainty in the cavitation number DELTA.sigma_range = [-.029 0 .029]; DELTA.sigma_rval = 2; % uncertainty in the position of the center of gravity. This could account % for variations in mass as fuel is depleted much like an aircraft deals % with forward-heavy and aft-light conditions. DELTA.xcg_range = [-.1 0 .1]; %+/- 10% DELTA.xcg_rval = 2;

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % define the water density % NOTE: This constant should actually become a function since the density % changes with water depth %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% rho = 1024; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % torpedo body related constants (geometry) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % maximum dimensions body.L = 4.064; % overall body length [m] body.R = 0.1015; % maximum body radius [m] % body/section lengths (aft of cavitator) secL = [0.0625, 0.2500, 0.59375, 0.09375]; xlast = 0; for i = 1:4 body.x1(i) = xlast; body.x2(i) = xlast + secL(i)*body.L;

114

xlast = body.x2(i); end % define the body's radii body.r1 = [0.345, 0.5, 1.0, 0.375]*body.R; body.r2 = [0.345, 1.0, 1.0, 0.500]*body.R; % fin data body.fin.x_piv = 0.85*body.L; %location of fins (aft of cavitator) body.fin.r_piv = 0.9*body.R; %pivot point of fins (out from centerline) body.fin.Phi = (pi/180)*[0,90,180,270]; %angular locations of fins body.fin.swp = 45*(pi/180); %fin sweep angle body.fin.b = 0.14; %fin span (m) % define the sections of the body that are assumed to incurr planing forces body.planeSec = [0,0,1,0]; %sections that are presumed to plane body.nSec = 4;

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % mass and inertia related constants %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% mass.m = 175.7; % Nominal body mass (kg) mass.g = 9.81; %m/sec^2 mass.origin_method = 'U of MN'; %('U of MN','Anteon') inertia = set_inertia(body,mass); mass.x_cg = inertia.x_cg;

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Disk Cavitator constants %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% cav.Cd0 = 0.805; cav.R = 0.0350; cav.D = 2*cav.R; cav.sigma = 0.029; %cavitation number assumed constant cav.model = 'U of MN'; %('U of MN','Anteon')

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % cavity subsection information % NOTE: This section is intended for use with delays states to compute the % cavity centerline and local radii % % This data is only used int he "complex" models %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% [Rc,Lc] = max_cavity_dimensions(cav); cavity.n = 10; %NOTE: if this number changes, the number of modeled delays %has to change in the simulink file cavity.dx = Lc/cavity.n;

115

cavitator_forces.m function [out] = cavitator_forces(in) global cav mass DELTA % Compute the cavitator forces and moments acting in the by-direction % set the input eul = in(1:3); %[phi,theta,psi] vel = in(4:6); %[u,v,w] omg = in(7:9); %[p,q,r] delta = in(10:15); rho = in(16); u = vel(1); v = vel(2); w = vel(3); p = omg(1); q = omg(2); r = omg(3); delta_pitch = delta(5); delta_yaw = delta(6);

% define the effectiveness of the cavitator actuator motion tau = 1; % compute alpha and beta from the velocity vector [alpha,beta] = compute_alpha_beta(vel); % set the moment arm arm = mass.x_cg; %(forward of cg) % set the apparent sideslip angle alpha_flow = -arm*q/norm(vel); beta_flow = arm*r/norm(vel); alpha_cav = alpha + alpha_flow - tau*delta_pitch; beta_cav = beta + beta_flow - tau*delta_yaw; % add any uncertain terms Cd0 = cav.Cd0 + cav.Cd0*DELTA.Cd0_range(DELTA.Cd0_rval); sigma = cav.sigma + cav.sigma*DELTA.sigma_range(DELTA.sigma_rval); % compute the normal force to the disk switch cav.model case 'U of MN' Fp = 0.5*rho*norm(vel)^2*(pi*cav.R^2)*Cd0*(1+sigma+0.028*sigma^2); % define some transformation matrices T1 = [ cos(beta_cav), sin(beta_cav), 0; -sin(beta_cav), cos(beta_cav), 0; 0, 0, 1]; T2 = [ cos(alpha_cav), 0, sin(alpha_cav); 0, 1, 0; -sin(alpha_cav), 0, cos(alpha_cav)]; T = T2*T1; % compute the body components of the normal force Fcav = T*[-Fp,0,0]';

116

case 'Anteon' % Force perpendicular to disk, drag reduced for apparent angles of attack Fp= 0.5*rho*norm(vel)^2*(pi*cav.R^2) * ... Cd0*(1+sigma+.028*sigma^2)*cos(alpha_cav)*cos(beta_cav); % Forces in body-frame of reference fx= -Fp*cos(delta_pitch)*cos(delta_yaw); fy= -Fp*cos(delta_pitch)*sin(delta_yaw); fz= Fp*sin(delta_pitch); Fcav = [fx,fy,fz]'; otherwise disp('Unknown cavitator model') end % compute the moments caused by the cavitator Mcav = cross([arm,0,0]',Fcav); % set the output out = [Fcav; Mcav]; return

117

fin_forces.m function [out] = fin_forces(in) global mass body DELTA % Compute the total fin forces and their components in the body axis % Constants r2d = 180/pi; d2r = pi/180; % define the states, state derivatives, and input x = in(1:9); %states x_dot = in(10:18); %state derivatives delta = in(19:24); %[uf1,uf2,uf3,uf4,ucp,ucy] rho = in(25); eul = x(1:3); %[phi,theta,psi] vel = x(4:6); %[u,v,w] omg = x(7:9); %[p,q,r] u = vel(1); v = vel(2); w = vel(3); p = omg(1); q = omg(2); r = omg(3); % compute alpha and beta [alpha,beta] = compute_alpha_beta(vel); % compute the cavity dimensions at the fins [yfin_c,zfin_c,rfin_c] = local_cav_dimensions(x,x_dot,body.fin.x_piv); % CALCULATE THE FIN IMMERSION r_tip = body.fin.b+body.fin.r_piv; % calulate the forces for each fin F_fin = zeros(3,1); M_fin = zeros(3,1); for i = 1:4 % Determine the local centerline for each fin ycen(i) = yfin_c*cos(body.fin.Phi(i)) + zfin_c*sin(body.fin.Phi(i)); zcen(i) = -yfin_c*sin(body.fin.Phi(i)) + zfin_c*cos(body.fin.Phi(i)); % Find the intersection of the cavity and the local fin yR(i) = sqrt(rfin_c^2-zcen(i)^2); % Calculate the fin immersion imm(i) = 0.7 * (r_tip-(ycen(i)+yR(i)))/body.fin.b + 0.3; if imm(i) < 0 imm(i) = 0; %disp('Warning: Saturated Fin Immersion') elseif imm(i) > 1 imm(i) = 1; %disp('Warning: Saturated Fin Immersion') end % Calculate the apparent sweep

118

swp_f(i) = body.fin.swp - ... (alpha*sin(body.fin.Phi(i)) + beta*cos(body.fin.Phi(i))); % COMPUTE THE APPARENT ANGLE OF ATTACK % Calculate the approximate center of effect on the submerged portion % of the fin xf(i) = body.fin.x_piv + body.fin.b*(1-imm(i)/2)*sin(swp_f(i)); rf(i) = body.fin.r_piv + body.fin.b*(1-imm(i)/2)*cos(swp_f(i)); yf(i) = rf(i)*cos(body.fin.Phi(i)); zf(i) = rf(i)*sin(body.fin.Phi(i)); % Compute the apparent flow angles in the body-fixed frame x_fin = xf(i) - mass.x_cg; %(aft of cg) alpha_yb = alpha + (q*x_fin + p*yf(i))/norm(vel); alpha_zb = -beta + (-r*x_fin + p*zf(i))/norm(vel); % transform y-component (parallel to flow) t0 LSCAV frame a_LSCAV(i) = alpha_yb*cos(body.fin.Phi(i))+alpha_zb*sin(body.fin.Phi(i)); % add fin actuator angle to compute final angle of attack atk(i) = a_LSCAV(i) + delta(i)*cos(swp_f(i)); % COMPUTE THE FIN FORCE AND MOMENT COEFFICIENTS load LS_finCoef8; %coefficients for LS equations % for coef = 1:6 % finCoef(coef) = LS_finCoef6(coef,1)*(atk(i)*r2d)^2 + ... % LS_finCoef6(coef,2)*atk(i)*r2d*imm(i) + ... % LS_finCoef6(coef,3)*imm(i)^2 + ... % LS_finCoef6(coef,4)*atk(i)*r2d + ... % LS_finCoef6(coef,5)*imm(i) + ... % LS_finCoef6(coef,6); % end for coef = 1:6 finCoef(coef) = LS_finCoef8(coef,1)*(atk(i)*r2d)^3 + ... LS_finCoef8(coef,2)*imm(i)^3 + ... LS_finCoef8(coef,3)*(atk(i)*r2d)^2*imm(i) + ... LS_finCoef8(coef,4)*(atk(i)*r2d)*imm(i)^2 + ... LS_finCoef8(coef,5)*(atk(i)*r2d)*imm(i) + ... LS_finCoef8(coef,6)*(atk(i)*r2d) + ... LS_finCoef8(coef,7)*imm(i) + ... LS_finCoef8(coef,8); end % Add the coefficient uncertainty finCoef(DELTA.Cfin_coef) = finCoef(DELTA.Cfin_coef) + ... finCoef(DELTA.Cfin_coef)*DELTA.Cfin_range(DELTA.Cfin_coef,DELTA.Cfin_rval); % Dimensionalize the Force and moment Coefficients qbar_f = 0.5*rho*norm(vel)^2*body.fin.b^2; arm = abs(mass.x_cg-body.fin.x_piv); F = qbar_f*[finCoef(1:3)]'; M = qbar_f*body.fin.b*[finCoef(4:6)]' + ... cross([arm,0,0]',F);

119

% rotate the forces and moments into the corect body axis ci = cos(body.fin.Phi(i)); si = sin(body.fin.Phi(i)); F_fin(1) = F_fin(1) - F(1); F_fin(2) = F_fin(2) + F(2)*ci + F(3)*si; F_fin(3) = F_fin(3) + F(2)*si - F(3)*ci; M_fin(1) = M_fin(1) - M(1); M_fin(2) = M_fin(2) + M(2)*ci + M(3)*si; M_fin(3) = M_fin(3) + M(2)*si - M(3)*ci; end out = [F_fin;M_fin]; return

120

planing_forces.m function [out] = planing_forces(in) global planeModel body cav mass % Evaluates the immersion of the transom and resulting forces. % Typically only the midbody and tail will be examined. % % Fplane(1:3)= [Fx,Fy,Fz]' Mplane(1:3)= [Mx,My,Mz]' % % Hassan's forces and moments are computed at the transom % centerline with the x-axis pointing along the body toward % the nose and the y-axis pointing to starboard (right) so % that the z-axis points below. % % ref: NUWC-NOT Technical Memorandum 990085 % Scott E. Hassan, "Analysis of Hydrodynamic Planing Forces % Associated with Cavity Riding Vehicles", July, 1999. % define the input x = in(1:9); %states x_dot = in(10:18); %state derivatives rho = in(19); eul = x(1:3); %[phi,theta,psi] vel = x(4:6); %[u,v,w] omg = x(7:9); %[p,q,r] u = vel(1); v = vel(2); w = vel(3); p = omg(1); q = omg(2); r = omg(3); p_dot = x_dot(7); q_dot = x_dot(8); r_dot = x_dot(9); % initialize the forces and moments Fplane = [0,0,0]'; Mplane = [0,0,0]'; % Assume that the only section of the hull that planes is the third % section, the cylindrical hull portion pSec = 3; % define transom position and determine immersion there xTransom = body.x2(pSec); planeLength = 0; [hTransom,aTransom] = body_immersion(x,x_dot,xTransom,pSec,body); % if the tail/transom of the torpedo is dry, skip to the end of the % loop if ((hTransom > 0) & (body.planeSec(pSec) == 1)) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Determine planing depth & length, immersion angle, contact angle %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % find the entry point along the x-axis where the body becomes wet % (or where the body breaks the cavity wall, where immDepth == 0) xFwd = body.x1(pSec); [hFwd,aFwd] = body_immersion(x,x_dot,xFwd,pSec,body);

121

if (hFwd*hTransom > 0) warning('Not a wedge-type immersion.') xEntry = xFwd; else if (hFwd == 0) xEntry = xFwd; else xguess = [xTransom,xFwd]; warning off MATLAB:fzero:UndeterminedSyntax xEntry = fzero('immersion_depth',xguess,[],x,x_dot,pSec,body); if ((xEntry > xTransom) | (xEntry < xFwd)) error('Entry root outside bounds.'); end end end [hEntry,aEntry] = body_immersion(x,x_dot,xEntry,pSec,body); % Find the depth of the immersed planing region if (hTransom > body.r2(pSec)) warning('Transom submergence is greater than body radius.') planeDepth = body.r2(pSec); else planeDepth = hTransom; end % Find the length of the immersed planing region planeLength = xTransom-xEntry; if planeLength > body.x2(pSec)-body.x1(pSec) warning('Planing length is longer than currect planing section.') planeLength = body.x2(pSec)-body.x1(pSec); end % determine the body's contact angles planeIncline = atan2(planeDepth,planeLength); planeContact = 0.25*(aEntry+3.*aTransom); % a conical average, % weighted to the % transom % display the planing length and contact angle (the angle around % the x-axis that defines the location of the planing forces) disp(sprintf(' planing: length = %11.4e, contact = %10.1f',... planeLength,planeContact*180/pi));

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Planing Forces and Moment, aligned with contact angle % moments about transom %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % calculate the skin friction drag kvisc = 1.4e-6; Cd = 0.031/(norm(vel)*planeLength/kvisc)^(1/7); % calculate force and moment components rTransom = body.r2(pSec); % transom radius % Cavity radius at transom

122

[junk,junk,Rc] = local_cav_dimensions(x,x_dot,xTransom); R = body.r2(pSec); dim = rho*pi*Rc^2*norm(vel)^2; del = Rc-rTransom; h0 = planeDepth; r2r = (rTransom+h0)/(rTransom+2*h0); sa = sin(planeIncline); ca = cos(planeIncline); ta = tan(planeIncline); % Normal pressure forces Fp = dim*sa*ca*(1-(del/(h0+del))^2)*r2r; Mp = dim*ca*ca*(h0^2/(h0+del))*r2r; Lp = (Mp/Fp); % note: this center is measured forward % from the transom of the planing section % Friction forces uc= sqrt(h0/del); us= 2/R*sqrt(del*h0); % note: corrected Hassan's result for Sw Sw= 4*R*del/ta * ((1+uc*uc)*atan(uc)-uc) + ... R^3/(2*del*ta) * ((us^2-0.5)*asin(us)+0.5*us*sqrt(1-us^2)); Ff= 0.5*rho*norm(vel)^2*ca*ca*Sw*Cd; % neglect moment for now Mf= 0;

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Additional planing forces, acceleration and impact % % F_a = C_a*m_added*a % F_i = C_i*m_imapct*C*V_ang % % a Acceleration (some combination of p_dot or q_dot % V_ang angular velocity % m_added This is an added mass based on the geometry of the torpedo. % m_impact volume of displaced water as a result of the impact % C_a & C_i coefficients yet to be determined. % (Waiting for results from Dr. Charles Song) % C speed of sound in water %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% K_plane = 1; %some fration of the added mass Ca_plane = 1; %coefficient for acceleration forces Ci_plane = 0.5; %coefficient for impact forces C = 1500; %(m/s) approximate speed of sound in salt water % set the acceleration to some combination of r_dot and q_dot arm = abs(mass.x_cg-xTransom)-(1/3)*planeLength; V_ang = sqrt(r^2+q^2)*arm; a = sqrt(r_dot^2+q_dot^2)*arm; % Determine the volumes needed for m_added and m_impact n_sec = 20;

123

[Rc,Lc] = max_cavity_dimensions(cav); xc_sec = [0:Lc/n_sec:Lc]; rc_sec = []; yc_sec = []; zc_sec = []; for i = 1:n_sec [yc_sec(i),zc_sec(i),rc_sec(i)] = ... local_cav_dimensions(x,x_dot,xc_sec(i)); end vol_cavShell = 0; for i = 1:(n_sec-1) center_i1 = [xc_sec(i+1),yc_sec(i+1),zc_sec(i+1)]'; center_i = [xc_sec(i),yc_sec(i),zc_sec(i)]'; vol_cavShell = vol_cavShell + ... ((rc_sec(i+1)+rc_sec(i))/2)^2 * norm(center_i1-center_i); end vol_torpedo = 0; for i=1:4 vol_torpedo = vol_torpedo + ... ((body.r1(i)+body.r2(i))*body.R/2)^2 * ... (body.x2(i)-body.x1(i))*body.L; end [junk,junk,rEntry] = local_cav_dimensions(x,x_dot,xEntry); width = (pi/4)*(rEntry+rTransom); vol_wedge = (1/3)*planeLength*planeDepth*width; % projected area of the torpedo wetted area proj_area = 2*sqrt(rTransom^2-planeDepth^2); % masses m_added = K_plane*(vol_cavShell-vol_torpedo+vol_wedge); m_impact = rho*vol_wedge; % additional forces F_acc = Ca_plane*m_added*a; %acceleration forces F_im = Ci_plane*m_impact*C*V_ang*proj_area; %impact forces

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Rotate and shift from transom contact to body-frame % % Fx= Ff % Fy= -Fp*cos(contactAngle) % Fz= -Fp*sin(contactAngle) % Mx= 0 % My= (Mp+Mf)*sin(contactAngle) - xTransom*Fz % Mz= -(Mp+Mf)*cos(contactAngle) + xTransom*Fy %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % set the moment arm xPlane = xTransom-(1/3)*planeLength-mass.x_cg; % compute the forces and moments switch planeModel case 'Hassan'

124

Fplane = [Ff, -Fp*cos(planeContact), -Fp*sin(planeContact) ]'; Mplane = [0, (Mp+Mf)*sin(planeContact), -(Mp+Mf)*cos(planeContact)]'; Mplane = Mplane + cross([mass.x_cg-xPlane,0,0]',Fplane); case 'Hassan_and_Song' Fplane = [Ff, -(Fp+F_acc+F_im)*cos(planeContact), ... -(Fp+F_acc+F_im)*sin(planeContact) ]'; Mplane = [0, (Mp+Mf)*sin(planeContact), -(Mp+Mf)*cos(planeContact)]'; Mplane = Mplane + cross([mass.x_cg-xPlane,0,0]',Fplane); otherwise disp('The planing forces were not computed') end %switch end %if ((hTransom > 0) & (body.planeSec(i) == 1)) out = [Fplane; Mplane]; return

125

set_inertia.m function inertia = set_inertia(body,mass) % Set the inertia % % Currently only written for HSW testbed geometry with homogenous % mass distribution % % This is here (rather than in the setup file) because it is possible to % model the reduction in mass to use of fuel. % % See Analytical Dynamics by Haim Baruh for reference on how inertia was % computed.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % determine the x_cg of the torpedo as well as the mass of the individual % sections and the total mass %(only considers 2 section, Anteon Legacy code) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Forward cone (includes the cavitator portion of torpedo) L(1) = body.x2(2); R(1) = body.r2(2); vol(1) = (1/3)*pi*R(1)^2*L(1); xcg(1) = (3/4)*L(1); %aft of cavitator % midbody cylinder L(2) = body.x2(3)-body.x1(3); R(2) = body.r2(3); vol(2) = pi*R(2)^2*L(2); xcg(2) = body.x2(3)-0.5*L(2); % aft of cavitator % determine the mass of each section tot_vol = sum(vol); rho_b = mass.m/tot_vol; m(1) = vol(1)/tot_vol * mass.m; m(2) = vol(2)/tot_vol * mass.m; % determine the center of mass x_cg = (1/mass.m) * (m(1)*xcg(1)+m(2)*xcg(2)); %aft of cavitator inertia.x_cg = x_cg;

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Determine the inertia about the center of gravity % origin = x_cg % % Inertia Matrix % % [Ixx -Ixy -Ixz % I = -Ixy Iyy -Iyz % -Ixz -Iyz Izz] % % Transformation matrix with a dummy transformation vector % (Parallel Axis Theorem)

126

% Tvec = [dx,dy,dz]; % Tmat = [ (dx^2+dy^2), -dx*dy, -dx*dz; % -dx*dy, (dx^2+dz^2), -dy*dz; % -dx*dz, -dy*dz, (dx^2+dy^2)]; % % such that I = Ig + m*Tmat %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % calculate the inertia of the cone (about cone's cg) Iyy = (3/20)*m(1)*R(1)^2 + (3/80)*m(1)*L(1)^2; Izz = Iyy; Ixx = (3/10)*m(1)*R(1)^2; Icone = diag([Ixx,Iyy,Izz]); % Transform the cone inertia to the origin dx = xcg(1) - x_cg; dy = 0; dz = 0; Tmat = [ (dy^2+dz^2), -dx*dy, -dx*dz; -dx*dy, (dx^2+dz^2), -dy*dz; -dx*dz, -dy*dz, (dx^2+dy^2)]; Icone = Icone + m(1)*Tmat; % calculate the inertia of the cylinder (about cylinder's cg) Iyy = (1/4)*m(2)*R(2)^2 + (1/12)*m(2)*L(2)^2; Izz = Iyy; Ixx = (1/2)*m(2)*R(2)^2; Icyl = diag([Ixx,Iyy,Izz]); % Transform the cylinder inertia to the origin dx = xcg(2) - x_cg; dy = 0; dz = 0; Tmat = [ (dy^2+dz^2), -dx*dy, -dx*dz; -dx*dy, (dx^2+dz^2), -dy*dz; -dx*dz, -dy*dz, (dx^2+dy^2)]; Icyl = Icyl + m(2)*Tmat; % Compute the total angular inertia inertia.J = Icone + Icyl;

127

mass_forces.m function [out] = mass_forces(in) global mass body inertia % gravity forces and moments % set the input eul = in(1:3); %[phi,theta,psi]' vel = in(4:6); %[u,v,w]' omg = in(7:9); %[p,q,r]' phi = eul(1); theta = eul(2); psi = eul(3); % Define the transformation matrix to bring the gavity forces to body % forces c1 = cos(phi); c2= cos(theta); c3= cos(psi); s1 = sin(phi); s2= sin(theta); s3= sin(psi); T_i2b = [ c3*c2, -c1*s3+c3*s1*s2, s1*s3+c3*c1*s2 ; ... s3*c2, c1*c3+s3*s1*s2, -s1*c3+s3*c1*s2 ; ... -s2, s1*c2, c1*c2]; T_b2i = T_i2b'; % compute the gravity forces and moments Fgrav = T_b2i*[0,0,mass.m*mass.g]'; Mgrav = zeros(3,1); % set the output out = [Fgrav; Mgrav]; return

128

sixDofEom.m function [out] = sixDofEom(in) global sim hwait mass body inertia % define the input eul = in(1:3); %[phi,theta,psi] vel = in(4:6); %[u,v,w] omg = in(7:9); %[p,q,r] Fcav = in(10:12); Mcav = in(13:15); Ffin = in(16:18); Mfin = in(19:21); Fplane = in(22:24); Mplane = in(25:27); Fmass = in(28:30); Mmass = in(31:33); thrust = in(34:36); t = in(37); phi = eul(1); theta = eul(2); psi = eul(3); % update the waitbar if sim.simulating == true waitbar(t/sim.t_stop,hwait) end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % compute the kinematics %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% s1= sin(phi); c1= cos(phi); s2= sin(theta); c2= cos(theta); tan2= tan(theta); sec2= sec(theta); Tb2i_ang= [1, s1*tan2, c1*tan2 ; ... 0, c1, -s1 ; ... 0, s1*sec2, c1*sec2 ]; eul_dot = Tb2i_ang*omg; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % compute the dynamics % % NOTE: The dynamics equations assumes that the reference frame % being used is about the cg %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % compute the moments produced by the thrust vector about the cg Mthrust = cross([body.L-mass.x_cg,0,0]',thrust); % compute the omega shorthand matrix p = omg(1); q = omg(2); r = omg(3); omg_tilde = [0,-r,q; r,0,-p; -q,p,0]; OMG = [-omg_tilde,zeros(3); zeros(3),-omg_tilde]; % compute the mass shorthand matrix M = [mass.m*eye(3),zeros(3); zeros(3),inertia.J];

129

% sum forces and moments about the cg Ftot = (Fmass+Fcav+Ffin+Fplane+thrust); Mtot = (Mmass+Mcav+Mfin+Mplane+Mthrust); % EOM accel = inv(M) * (OMG*M*[vel;omg] + [Ftot;Mtot]); vel_dot = accel(1:3); omg_dot = accel(4:6); % set the output out = [eul_dot; vel_dot; omg_dot];

130

body_immersion.m function [depth, angle] = body_immersion(x,x_dot,X,pSec,body) % This function calculates the torpedo body immersion % initialize output angle = 0; depth = 0; % calculate the slope of the body's radius x1 = body.x1(pSec); x2 = body.x2(pSec); r1 = body.r1(pSec); r2 = body.r2(pSec); Rb = (r1-r2)/(x1-x2)*(X-x2)+r2; % check that x is within body section if ((X > x2 | X < x1) & (X ~= x2) & (X ~= x1)) warning('Outside specified body section.'); return end % Interpolate cavity profile to find radius and center offset at chosen x % position (behind the cavitator) [yc,zc,rc] = local_cav_dimensions(x,x_dot,X); angle = pi + atan2(zc,yc); depth = Rb + (sqrt(yc^2+zc^2)-rc); return

131

cavity_info.m function [out] = cavity_info(r_vec,beta_dot_vec,V) global cavity % Calculate three sets of vectors representing the cavity centerline and % the local radii. These vectors will be used to interpret the local % cavity states at a given distance behind the cavitator. % define the x distance behind the cavitator xc(1) = 0; for i = 2:cavity.n xc(i) = xc(i-1)+cavity.dx; end % determine the sectional centerline offset and radii for i = 1:cavity.n x = [r_vec(i),0]; x_dot = [0,beta_dot_vec(i)]; [yc(i),zc(i),rc(i)] = local_cav_dimensions(x,x_dot,xc(i),V); end % define the output out = [xc, yc, zc, rc];

132

compute_alpha_beta.m function [alpha,beta] = compute_alpha_beta(vel) % compute alpha and beta as defined by Etkin (pg 10-11) u = vel(1); v = vel(2); w = vel(3); speed = norm(vel); alpha = atan2(w,u); beta = asin(v/speed); return;

133

compute_drag.m function drag = compute_drag(x,u,rho) % set the global variables global planeModel mass inertia body cav cavity DELTA % define the state derivatives x_dot = zeros(9,1); s1= sin(x(1)); c1= cos(x(1)); s2= sin(x(2)); c2= cos(x(2)); tan2= tan(x(2)); sec2= sec(x(2)); Tb2i_ang= [1, s1*tan2, c1*tan2 ; ... 0, c1, -s1 ; ... 0, s1*sec2, c1*sec2 ]; x_dot(1:3) = Tb2i_ang*x(7:9); % compute the cavitator forces and moments cav_FandM = cavitator_forces([x;u;rho]); Fcav_x = cav_FandM(1); % Check the fin forces fin_FandM = fin_forces([x;x_dot;u;rho]); Ffin_x = fin_FandM(1); % check planing forces plane_FandM = planing_forces([x;x_dot;rho]); Fplane_x = plane_FandM(1); % check mass moments and forces mass_FandM = mass_forces(x); Fmass_x = mass_FandM(1); % sum the forces to get the drag value drag = Fcav_x + Ffin_x + Fplane_x + Fmass_x;

134

eval_fintable.m function finCoef= eval_fintable(atk1,imm1,swp1,finTable) % Given the local angle of attack, immersion ration, and sweepback angle, % this function evaluates the six generalized % fin forces from the table of fin-force coefficients. % % Input: % atk1 - local angle of attack [deg] % imm1 - immersion as a fraction of fin span [] % swp1 - sweep back angle [deg] % FinTable - fin-force coefficient table % Output: % finCoef(1:6)= [CFx,CFy,CFz,CMx,CMy,CMz] % % Note: The table of fin force coefficients is based on the LSCAV local fin % coordinate system and the angle of attack in finTable is assumed to be in % degrees. % localize FinTable nFrc= finTable.nFrc; nSweep= finTable.nSweep; nImmersion= finTable.nImmersion; nAttack= finTable.nAttack; sweepAngle(1:nSweep)= finTable.sweepAngle(1:nSweep); immersionRatio(1:nImmersion)= finTable.immersionRatio(1:nImmersion); attackAngle(1:nAttack)= finTable.attackAngle(1:nAttack); % account for symmetry atk= abs(atk1); frcsymm= [1 1 1 1 1 1]; if (atk1 < 0) frcsymm= [1 1 -1 -1 -1 1]; end % check bounds on angle of attack, immersion, and sweepback angle atk= bind(atk,attackAngle(1),attackAngle(nAttack)); imm= bind(imm1,immersionRatio(1),immersionRatio(nImmersion)); swp= bind(swp1,sweepAngle(1),sweepAngle(nSweep)); % setup the linear interpolation for the given sweep and immersion [jSwp1,jSwp2,sSwp]= interp_nodes(swp,sweepAngle); [jImm1,jImm2,sImm]= interp_nodes(imm,immersionRatio); % set the table fit near the given angle of attack, sweep, and immersion Evaluate and interpolate at given angle of attack clear fit11 fit12 fit21 fit22; if (atk < finTable.attackBreak1) nP= 2; fit11(1:nP,1:6)= finTable.partialFit(1:nP,jImm1,jSwp1,1:6); fit12(1:nP,1:6)= finTable.partialFit(1:nP,jImm1,jSwp2,1:6); fit21(1:nP,1:6)= finTable.partialFit(1:nP,jImm2,jSwp1,1:6); fit22(1:nP,1:6)= finTable.partialFit(1:nP,jImm2,jSwp2,1:6); %elseif (atk < finTable.attackBreak2) % nP= 4; % fit11(1:nP,1:6)= finTable.transitFit(1:nP,jImm1,jSwp1,1:6); % fit12(1:nP,1:6)= finTable.transitFit(1:nP,jImm1,jSwp2,1:6);

135

% fit21(1:nP,1:6)= finTable.transitFit(1:nP,jImm2,jSwp1,1:6); % fit22(1:nP,1:6)= finTable.transitFit(1:nP,jImm2,jSwp2,1:6); else nP= 5; fit11(1:nP,1:6)= finTable.supercvFit(1:nP,jImm1,jSwp1,1:6); fit12(1:nP,1:6)= finTable.supercvFit(1:nP,jImm1,jSwp2,1:6); fit21(1:nP,1:6)= finTable.supercvFit(1:nP,jImm2,jSwp1,1:6); fit22(1:nP,1:6)= finTable.supercvFit(1:nP,jImm2,jSwp2,1:6); end % evaluate fit and interpolate if (sSwp == 0 & sImm == 0) for kFrc= 1:6 finCoef(kFrc)= frcsymm(kFrc)*polyval(fit11(1:nP,kFrc),atk); end elseif (sSwp == 0) for kFrc= 1:6 f11= polyval(fit11(1:nP,kFrc),atk); f21= polyval(fit21(1:nP,kFrc),atk); finCoef(kFrc)= frcsymm(kFrc)*((f21-f11)*sImm + f11); end elseif (sImm == 0) for kFrc= 1:6 f11= polyval(fit11(1:nP,kFrc),atk); f12= polyval(fit12(1:nP,kFrc),atk); finCoef(kFrc)= frcsymm(kFrc)*((f12-f11)*sSwp + f11); end else for kFrc= 1:6 f11= polyval(fit11(1:nP,kFrc),atk); f12= polyval(fit12(1:nP,kFrc),atk); f21= polyval(fit21(1:nP,kFrc),atk); f22= polyval(fit22(1:nP,kFrc),atk); f1= (f12-f11)*sSwp + f11; f2= (f22-f21)*sSwp + f21; finCoef(kFrc)= frcsymm(kFrc)*((f2-f1)*sImm + f1); end end return function x= bind(x,bound1,bound2) % place x within bounds so that bound1<=x<=bound2 if (x<bound1) x= bound1; elseif (x>bound2) x= bound2; end function [j1,j2,slope]= interp_nodes(x,v) % assume x bound within the possible values v, and v is monotonically increasing tol= 1.e-9; for j= 1:length(v) if (abs(x-v(j)) < tol) j1= j; j2= j; slope= 0; return

136

end if (x < v(j)) j1= j-1; j2= j; delv= v(j2)-v(j1); if (abs(delv) < tol) slope= 0; return else slope= (x-v(j1))/delv; return end end end return

137

immersion_depth.m function immDepth = immersion_depth(x,states,states_dot,pSec,body) % function used in fzero to calculate the point of body immersion [immDepth,immAngle] = body_immersion(states,states_dot,x,pSec,body); return

138

local_cav_dimensions.m function [yc,zc,rc] = local_cav_dimensions(x,x_dot,xc) global mass cav % compute the local cavity centerline and radius dimensions % define the states and state derivatives eul = x(1:3); %[phi,theta,psi] vel = x(4:6); %[u,v,w] omg = x(7:9); %[p,q,r] eul_dot = x_dot(1:3); %[phi_dot,theta_dot,psi_dot] vel_dot = x_dot(4:6); %[u_dot,v_dot,w_dot] omg_dot = x_dot(7:9); %[p_dot,q_dot,w_dot] % compute the maximum cavity dimensions [Rc,Lc] = max_cavity_dimensions(cav); % Compute the cavity centerline coordinates at a given x-location % Fr = norm(vel)/sqrt(mass.g*cav.D); bouyancy = 8.29; %Bouyancy (m/s^2) a_pitch = bouyancy + norm(vel)*eul_dot(2); a_yaw = norm(vel)*eul_dot(3); % compute centerline displacements due to turning and pitch accelerations % as well as bouyancy in the z-direction %yc = (1/Fr^2)*(a_turn/mass.g)*(xc/cav.D)^2; %zc = -(1/Fr^2)*(a_g/mass.g)*(xc/cav.D)^2 - 0.5*a_pitch*(xc/V)^2; yc = 0.5*a_yaw*(xc/norm(vel))^2; zc = -0.5*a_pitch*(xc/norm(vel))^2; X = norm([xc,yc,zc]); %X = xc; if X < Lc rc = Rc*(1-((2*X)/Lc-1)^2)^(1/2.4); %local cavity radius else rc = 0; end % return the local cavity coordinates return

139

make_comp_graphs.m % This function is designed to make state plots for two sets of data function [] = make_comp_graphs(t,x1,x2) % check for engineering zeros [row,col] = size(x1); tol = 1e-9; for i = 1:col if max(x1(:,i)) < tol x1(:,i) = zeros(row,1); end end [row,col] = size(x2); tol = 1e-9; for i = 1:col if max(x2(:,i)) < tol x2(:,i) = zeros(row,1); end end figure % phi subplot(3,3,1) plot(t,x1(:,1),'b-',t,x2(:,1),'r--') grid on ylabel('\phi (rad)') legend('Nonlinear','Linear') % theta subplot(3,3,4) plot(t,x1(:,2),'b-',t,x2(:,2),'r--') grid on ylabel('\theta (rad)') legend('Nonlinear','Linear') % psi subplot(3,3,7) plot(t,x1(:,3),'b-',t,x2(:,3),'r--') grid on ylabel('\psi (rad)') xlabel('Time (sec)') legend('Nonlinear','Linear') %u subplot(3,3,2) plot(t,x1(:,4),'b-',t,x2(:,4),'r--') grid on ylabel('u (m/s)') legend('Nonlinear','Linear') %v subplot(3,3,5) plot(t,x1(:,5),'b-',t,x2(:,5),'r--')

140

grid on ylabel('v (m/s)') legend('Nonlinear','Linear') %z subplot(3,3,8) plot(t,x1(:,6),'b-',t,x2(:,6),'r--') grid on ylabel('z (m/s)') xlabel('Time (sec)') legend('Nonlinear','Linear') %p subplot(3,3,3) plot(t,x1(:,7),'b-',t,x2(:,7),'r--') grid on ylabel('p (rad/sec)') legend('Nonlinear','Linear') %q subplot(3,3,6) plot(t,x1(:,8),'b-',t,x2(:,8),'r--') grid on ylabel('q (rad/sec)') legend('Nonlinear','Linear') %r subplot(3,3,9) plot(t,x1(:,9),'b-',t,x2(:,9),'r--') grid on ylabel('r (rad/sec)') xlabel('Time (sec)') legend('Nonlinear','Linear')

141

make_graphs.m % This function is designed to make state plots function [] = make_graphs(t,x) % check for engineering zeros [row,col] = size(x); tol = 1e-9; for i = 1:col if max(x(:,i)) < tol x(:,i) = zeros(row,1); end end figure % phi subplot(3,3,1) plot(t,x(:,1)) grid on ylabel('\phi (rad)') % theta subplot(3,3,4) plot(t,x(:,2)) grid on ylabel('\theta (rad)') % psi subplot(3,3,7) plot(t,x(:,3)) grid on ylabel('\psi (rad)') xlabel('Time (sec)') %u subplot(3,3,2) plot(t,x(:,4)) grid on ylabel('u (m/s)') %v subplot(3,3,5) plot(t,x(:,5)) grid on ylabel('v (m/s)') %z subplot(3,3,8) plot(t,x(:,6)) grid on ylabel('z (m/s)') xlabel('Time (sec)') %p subplot(3,3,3)

142

plot(t,x(:,7)) grid on ylabel('p (rad/sec)') %q subplot(3,3,6) plot(t,x(:,8)) grid on ylabel('q (rad/sec)') %r subplot(3,3,9) plot(t,x(:,9)) grid on ylabel('r (rad/sec)') xlabel('Time (sec)')

143

max_cavity_dimensions.m function [Rc,Lc] = max_cavity_dimensions(cav) global DELTA % This function computes the maximum cavity dimensions % % Since there is no model for the cavitation number and assuming that the % drag coefficient remains constant, the maximum cavity dimensions are not % only not a function of the states, but remain constant % add the DELTA values Cd0 = cav.Cd0 + cav.Cd0*DELTA.Cd0_range(DELTA.Cd0_rval); sigma = cav.sigma + cav.sigma*DELTA.sigma_range(DELTA.sigma_rval); % Compute the maximum cavity dimensions Cd = Cd0*(1+sigma+0.028*sigma^2); %Drag Coefficient Lc = cav.D*sqrt(Cd)*(1.24*sigma^(-1.123)-0.6); %Maximum cavity length Rc = cav.R*sqrt(1.35*Cd*sigma^(-0.93)); %Maximum cavity radius return

144

scav_least_squares3.m % Determine the coefficients a, b, and c ( z(i,j) = a*x(i)+b*y(j)+c ) function [coef,normed_error] = scav_least_squares3(x,y,z) N = length(x); M = length(y); % Fill the A and B matrics A = zeros(N*M,3); B = zeros(N*M,1); for i = 1:N for j = 1:M A(M*(i-1)+j,:) = [x(i),y(j),1]; B(M*(i-1)+j) = z(i,j); end end coef = inv([A'*A])*A'*B; normed_error = norm(A*coef-B)/norm(B); return scav_least_squares6.m % Determine the coefficients [p1,p2,p3,p4,5p,p6] % z(i,j) = p1*x^2 + p2*x*y + p3*y^2 + p4*x + p5*y + p6 function [coef,normed_error] = scav_least_squares6(x,y,z) N = length(x); M = length(y); % Fill the A and B matrics A = zeros(N*M,6); B = zeros(N*M,1); for i = 1:N for j = 1:M A(M*(i-1)+j,:) = [x(i)^2, x(i)*y(j), y(j)^2, x(i), y(j), 1]; B(M*(i-1)+j) = z(i,j); end end coef = inv([A'*A])*A'*B; normed_error = norm(A*coef-B)/norm(B); return scav_least_squares8.m % Determine the coefficients [p1,p2,p3,p4,p5,p6,97,p8] % z(i,j) = p1*x^3 + p2*y^3 + p3*x^2*y + p4*x*y^2 + p5*x*y + p6*x + p7*y + % p8 function [coef,normed_error] = scav_least_squares8(x,y,z) N = length(x); M = length(y); % Fill the A and B matrics

145

A = zeros(N*M,8); B = zeros(N*M,1); for i = 1:N for j = 1:M A(M*(i-1)+j,:) = [x(i)^3, y(j)^3, x(i)^2*y(j), x(i)*y(j)^2,... x(i)*y(j), x(i), y(j), 1]; B(M*(i-1)+j) = z(i,j); end end coef = inv([A'*A])*A'*B; normed_error = norm(A*coef-B)/norm(B); return

146

test_ol_sensitivity.m % This function is designed to test the open sensitivity to variations in % system parameters as is defined in setup_sim_data. It does this by % comparing the A and B matrices as well as comparing stability

% set the global variables global planeModel mass inertia body cav cavity DELTA global sim hwait % set constants and model data [mass, inertia, body, cav, cavity, rho] = setup_sim_data;

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Setup simulation parameters %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% sim.dt = 0.001; %sec sim.t_stop = 2; %sec sim.simulating = false; % set the nominal speed V = 82.25; % set the turning acceleration turnG = 0; % set the flight condition: % 'straight-and-level' % 'turn' flight_con = 'straight-and-level'; %flight_con = 'turn'; % set the initial heading initial_heading = 0; % set the output reference frame and appropriate transformation matrix mass.origin_method = 'U of MN'; %('U of MN','Anteon') switch mass.origin_method case 'U of MN' dist = [0;0;0]; case 'Anteon' dist = [mass.x_cg;0;0]'; otherwise error('Incorrect origin setting') end r_tilde = [0,-dist(3),dist(2); dist(3),0,-dist(1); -dist(2),dist(1),0]; R = [eye(3),r_tilde; zeros(3),eye(3)]; % define value for uncertainty ranges minVal = 1; nomVal = 2; maxVal = 3;

147

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Define Initial/Trim Conditions %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % set the planing model (no planing is desired) planeModel = 'Hassan'; % set the appropraite trim conditions switch flight_con case 'straight-and-level' x0 = [0,0,initial_heading,V,0,0,0,0,0]'; thrust = -1*compute_drag(x0,zeros(6,1),rho); u0 = [0,0,0,0,0,0,thrust,0,0]'; [x0,u0,y0,dx,options] = trim('trim_6DOF_model',x0,u0,[],... [1,2,3,4,5,6,7,8,9],[2,4,6,8,9]); case 'turn' x0 = [0,0,initial_heading,V,0,0,0,0,(turnG*9.81)/V]'; x_dot = zeros(9,1); s1= sin(x0(1)); c1= cos(x0(1)); s2= sin(x0(2)); c2= cos(x0(2)); tan2= tan(x0(2)); sec2= sec(x0(2)); Tb2i_ang= [1, s1*tan2, c1*tan2 ; ... 0, c1, -s1 ; ... 0, s1*sec2, c1*sec2 ]; x_dot(1:3) = Tb2i_ang*x0(7:9); x_dot(1) = 0; thrust = -1*compute_drag(x0,zeros(6,1),rho); u0 = [0,0,0,0,0,0,thrust,0,0]'; [x0,u0,y0,dx,options] = trim('trim_6DOF_model',x0,u0,[],... [9],[8,9],[],x_dot,[1,2,3,4,5,6,7,8,9]); otherwise disp('Incorrect flight condition setting') return end % check for engineering zeros in x0 and u0 tol = 1e-9; for i = 1:length(x0) if abs(x0(i)) < tol x0(i) = 0; end end for i = 1:length(u0) if abs(u0(i)) < tol u0(i) = 0; end end % display the trim conditions disp(' ') disp('The trim conditions are as follows:') disp(' x0 u0 y0 dx0') disp([x0,u0,y0,dx]) % set the initial conditions thrust = u0(7:9); u0 = u0(1:6);

148

x0 = x0;

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Compute the Nominal Linearized Model %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% input_step_matrix = zeros(6,6); state_step_matrix = zeros(9,9); planeModel = 'Hassan'; [A_nom,B_nom,C_nom,D_nom] = linmod('ol_model'); nom_sys = ss(A_nom,B_nom,C_nom,D_nom);

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Check the sensitivity to the fin force and moment coefficients %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% for coef = 1:6 DELTA.Cfin_coef = coef; % compute the linear system with the min parameter DELTA.Cfin_rval = minVal; [A_min,B_min,C_min,D_min] = linmod('ol_model'); min_sys = ss(A_min,B_min,C_min,D_min); % compute the linear system with the max parameter DELTA.Cfin_rval = maxVal; [A_max,B_max,C_max,D_max] = linmod('ol_model'); max_sys = ss(A_max,B_max,C_max,D_max); % reset to the nominal value DELTA.Cfin_rval = nomVal; % make the varying system pole-zero map figure pzmap(nom_sys,'k',min_sys,'r',max_sys,'b') grid on legend('Nominal','Minimum','Maximum') title(['Open-Loop Pole-Zero Map for Fin Coefficient Index ',num2str(coef)]) end

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Check the sensitivity to the cavitator Cd0 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % compute the linear system with the min parameter DELTA.Cd0_rval = minVal; [A_min,B_min,C_min,D_min] = linmod('ol_model'); min_sys = ss(A_min,B_min,C_min,D_min); % compute the linear system with the max parameter DELTA.Cd0_rval = maxVal; [A_max,B_max,C_max,D_max] = linmod('ol_model');

149

max_sys = ss(A_max,B_max,C_max,D_max); % reset to the nominal value DELTA.Cd0_rval = nomVal; % make the varying system pole-zero map figure pzmap(nom_sys,'k',min_sys,'r',max_sys,'b') grid on legend('Nominal','Minimum','Maximum') title('Open-Loop Pole-Zero Map for Cd_0')

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Check the sensitivity to the cavitator number %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % compute the linear system with the min parameter DELTA.sigma_rval = minVal; [A_min,B_min,C_min,D_min] = linmod('ol_model'); min_sys = ss(A_min,B_min,C_min,D_min); % compute the linear system with the max parameter DELTA.sigma_rval = maxVal; [A_max,B_max,C_max,D_max] = linmod('ol_model'); max_sys = ss(A_max,B_max,C_max,D_max); % reset to the nominal value DELTA.sigma_rval = nomVal; % make the varying system pole-zero map figure pzmap(nom_sys,'k',min_sys,'r',max_sys,'b') grid on legend('Nominal','Minimum','Maximum') title('Open-Loop Pole-Zero Map for \sigma parameter')

150

test_turnG.m function [maxG] = test_turnG(Vrange) % The purpose of this function is to test the min and max allowable turnG % before planing forces occur. Keep in mind that planing forces are not % desirable and that the limit of the trajectory profile is based on the % occurance of these planing forces % set constants and model data [mass, inertia, body, cav, cavity, rho] = setup_sim_data; sim.dt = 0.001; %sec sim.t_stop = 0.5; %sec sim.simulating = false; initial_heading = 0; delG = 0.1; pSec = 3; % check max turnG for range of velocities maxG = zeros(1,length(Vrange)); for vel_index = 1:length(Vrange) % stop when planing occurs hTransom = -100; count = 0; turnG = 0; while (hTransom < 0) & (count < 100) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Setup simulation parameters %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % set the nominal speed V = Vrange(vel_index); % set the flight condition: % 'straight-and-level' % 'turn' %flight_con = 'straight-and-level'; flight_con = 'turn'; % set the output reference frame and appropriate transformation matrix mass.origin_method = 'U of MN'; %('U of MN','Anteon') switch mass.origin_method case 'U of MN' dist = [0;0;0]; case 'Anteon' dist = [mass.x_cg;0;0]'; otherwise error('Incorrect origin setting') end r_tilde = [0,-dist(3),dist(2); dist(3),0,-dist(1); -dist(2),dist(1),0]; R = [eye(3),r_tilde; zeros(3),eye(3)];

151

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Define Initial/Trim Conditions %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % set the planing model (no planing is desired) planeModel = 'Hassan'; % set the appropraite trim conditions x_dot = zeros(9,1); switch flight_con case 'straight-and-level' x0 = [0,0,initial_heading,V,0,0,0,0,0]'; thrust = -1*compute_drag(x0,zeros(6,1),rho); u0 = [0,0,0,0,0,0,thrust,0,0]'; [x0,u0,y0,dx,options] = trim('trim_6DOF_model',x0,u0,[],... [1,2,3,4,5,6,7,8,9],[2,4,6,8,9]); case 'turn' x0 = [0,0,initial_heading,V,0,0,0,0,(turnG*9.81)/V]'; x_dot = zeros(9,1); s1= sin(x0(1)); c1= cos(x0(1)); s2= sin(x0(2)); c2= cos(x0(2)); tan2= tan(x0(2)); sec2= sec(x0(2)); Tb2i_ang= [1, s1*tan2, c1*tan2 ; ... 0, c1, -s1 ; ... 0, s1*sec2, c1*sec2 ]; x_dot(1:3) = Tb2i_ang*x0(7:9); x_dot(1) = 0; thrust = -1*compute_drag(x0,zeros(6,1),rho); u0 = [0,0,0,0,0,0,thrust,0,0]'; [x0,u0,y0,dx,options] = trim('trim_6DOF_model',x0,u0,[],... [9],[8,9],[],x_dot,[1,2,3,4,5,6,7,8,9]); otherwise disp('Incorrect flight condition setting') return end % check for engineering zeros in x0 and u0 tol = 1e-9; for i = 1:length(x0) if abs(x0(i)) < tol x0(i) = 0; end end for i = 1:length(u0) if abs(u0(i)) < tol u0(i) = 0; end end % set the initial conditions thrust = u0(7:9); u = u0(1:6); x = x0; % define transom position and determine immersion there xTransom = body.x2(pSec); planeLength = 0;

152

[hTransom,aTransom] = body_immersion(x,x_dot,xTransom,pSec,body); % store max turnG value if hTransom > 0 maxG(vel_index) = turnG else turnG = turnG + delG; end count = count + 1 end %while end %for

153

Appendix C
This appendix shows how the system dynamics vary with velocity.

154

Pole-Zero Map 0.5 0.38 20 0.64 15 0.28 0.17 0.08

25

20

15

10

0.8 10

V V V V V V

= 74 m/s, turn rate = 90 m/s, turn rate = 74 m/s, turn rate = 74 m/s, turn rate = 90 m/s, turn rate = 90 m/s, turn rate

= 0 g's = 0 g's = 2.4 g's = -2.4 g's = 3.7 g's = -3.7 g's

0.94

Imaginary Axis

155
0.94 5 0.8 10 15 0.64 20 0.5 -10 0.38 0.28 -5 Real A xis 0.17 0.08 0

-5

-10

-15

-20

-25 -15

10

11 Appendix D
This appendix displays pole-zero maps of the open-loop system for varying parameters. Given the range of the varying parameters, how the system dynamics change can be read from the graphs. The parameters shown here are the cavitation number, the cavitator drag coefficient and zero a.o.a., and the six fin force and moment coefficients.

156

Open-Loop Pole-Zero Map f or parameter 25 0.36 20 15 0.66 10 0.86 Imaginary Axis 5 0 -5 0.86 -10 0.66 -15 -20 -25 -12 15 0.48 0.36 -10 -8 0.26 -6 0.18 -4 Real A xis 0.11 -2 0.06 0 2 4 20 10 5 0.48 0.26 0.18 0.11 0.06 20 15 Nominal Minimum Maximum

5 10

Figure 42:System Poles for Range of Cavitation Numbers

Open-Loop Pole-Zero Map for Cd 0 25 0.36 20 15 0.66 10 0.86 Imaginary Axis 5 0 -5 0.86 -10 0.66 -15 -20 -25 -12 15 0.48 0.36 -10 -8 0.26 -6 0.18 -4 Real A xis 0.11 -2 0.06 0 2 4 20 10 5 0.48 0.26 0.18 0.11 0.06 20 15 Nominal Minimum Maximum

5 10

Figure 43: System Poles for Range of Cavitator Cd0

157

Open-Loop Pole-Zero Map f or Fin Coef f icient Index 1 25 0.32 20 0.44 15 0.6 10 5 0 -5 -10 0.6 -15 -20 0.44 0.32 -25 -10 -8 0.23 -6 0.16 -4 Real A xis 0.1 -2 0.05 0 2 4 15 20 0.84 10 5 0.23 0.16 0.1 0.05 20 15 Nominal Minimum Maximum

Imaginary Axis

0.84

5 10

Figure 44: System Poles for Range of Fin Force Coefficient (x-component)

Open-Loop Pole-Zero Map f or Fin Coef f icient Index 2 25 0.32 20 0.44 15 0.6 10 5 0 -5 -10 0.6 -15 -20 0.44 0.32 -25 -10 -8 0.23 -6 0.16 -4 Real A xis 0.1 -2 0.05 0 2 4 15 20 0.84 10 5 0.23 0.16 0.1 0.05 20 15

Nominal Minimum Maximum

Imaginary Axis

0.84

5 10

Figure 45: System Poles for Range of Fin Force Coefficient (y-component)

158

Open-Loop Pole-Zero Map f or Fin Coef f icient Index 3 25 0.32 20 0.44 15 0.6 10 5 0 -5 -10 0.6 -15 -20 0.44 0.32 -25 -10 -8 0.23 -6 0.16 -4 Real A xis 0.1 -2 0.05 0 2 4 15 20 0.84 10 5 0.23 0.16 0.1 0.05 20 15 Nominal Minimum Maximum

Imaginary Axis

0.84

5 10

Figure 46: System Poles for Range of Fin Force Coefficient (z-component)

Open-Loop Pole-Zero Map for Fin Coeff icient Index 4 25 0.36 20 15 0.66 10 0.86 Imaginary Axis 5 0 -5 0.86 -10 0.66 -15 -20 -25 -12 15 0.48 0.36 -10 -8 0.26 -6 0.18 -4 Real A xis 0.11 -2 0.06 0 2 4 20 10 5 0.48 0.26 0.18 0.11 0.06 20 15 Nominal Minimum Maximum

5 10

Figure 47: System Poles for Range of Fin Moment Coefficient (x-component)

159

Open-Loop Pole-Zero Map f or Fin Coef f icient Index 5 25 0.32 20 0.44 15 0.6 10 5 0 -5 -10 0.6 -15 -20 0.44 0.32 -25 -10 -8 0.23 -6 0.16 -4 Real A xis 0.1 -2 0.05 0 2 4 15 20 0.84 10 5 0.23 0.16 0.1 0.05 20 15 Nominal Minimum Maximum

Imaginary Axis

0.84

5 10

Figure 48: System Poles for Range of Fin Moment Coefficient (y-component)

Open-Loop Pole-Zero Map f or Fin Coef f icient Index 6 25 0.32 20 0.44 15 0.6 10 5 0 -5 -10 0.6 -15 -20 0.44 0.32 -25 -10 -8 0.23 -6 0.16 -4 Real A xis 0.1 -2 0.05 0 2 4 15 20 0.84 10 5 0.23 0.16 0.1 0.05 20 15 Nominal Minimum Maximum

Imaginary Axis

0.84

5 10

Figure 49: System Poles for Range of Fin Moment Coefficient (z-component)

160

S-ar putea să vă placă și