65. Using an RAO database

The identification tag for this tutorial is PDS-ABV. Pregenerated input files for this tutorial are found in the folder named PDS-ABV in the provided tutorial input files.

65.1. Tutorial overview

This tutorial covers:

  • Use of a motion response amplitude operator (RAO) database to define the response of a RigidBody DObject based on the wave conditions in simulation
  • Use a maneuvering schedule to control the forward speed and turning rates of a ship.
alternate text

Fig. 65.1 Frigate in PST

65.2. Possible applications for RigidBody RAOs

Note

  • RAOs refers to the motion of a floating vessel or body (e.g. ship or buoy) in six degrees of freedom (surge, sway, heave, roll, pitch and yaw) due to passing waves. RAOs can be used to calculate displacements, and velocities at any point on a rigid floating vessel or body.
  • The RigidBodyRAO feature (motion RAO) and RigidBodyForwardSpeedYawRateSchedule feature are useful for modelling bodies where external forces (except for wave loads) have minimal impacts on the motions of the vessel.
  • Popular applications include the simulation and analysis of Towed systems such as trawls, towed bodies, and towed arrays.

65.3. Defining the RAO

Note

  • The RAOs described here are motion RAOs. The RigidBody’s motions are entirely prescribed by the motion RAO. The RigidBody is kinematically driven and dynamics are ignored. Any external forces applied to the RigidBody will not affect its acceleration or motion.
  • A motion RAO may be generated from any potential flow hydrodynamics program (e.g. ShipMo3D, WAMIT). The RAO format expected in ProteusDS is defined in the ProteusDS manual in Appendix A under the RigidBody section (see RAO database properties (.rao)). For further assistance, contact support@dsa-ltd.ca.
  • The .rao file is an ASCII text file containing a database of the body’s amplitude and relative phase of motion for a unit amplitude wave as a function of frequency, relative wave direction, and forward speed of the body. ProteusDS uses this information to define the position and velocity of a RigidBody based on it’s location, forward speed and heading in a wave field.
  • ShipMo3D has an RAO export capability that exports directly to a ProteusDS format. From the SeakeepRegular tab in ShipMo3D, for a suitably defined range of forward speeds, headings and wave frequencies. Run the SeakeepRegular analysis then select ProteusDS Export. This will generate a RAO Database file which may be used/referenced in the RigidBodyRAO feature.

65.4. Setting up the project and creating the RigidBody/Ship

  • To complete the following tutorial, download the required tutorial files zip archive on the ProteusDS website Download.
  • Locate the ProteusDS_FrigateExport.rao and the GenericFrigate.obj files.
  • Create a new ProteusDS project and save the project.
  • Place the downloaded ProteusDS_FrigateExport.rao and the GenericFrigate.obj files in the ProteusDS input folder for the project.
  • Add a RigidBody to the simulation.
  • For ship models, it’s standard practice to have the RigidBody reference frame located at the stern and baseline. This is a convenient and consistent location about which everything can be referred to where mass properties don’t affect its location.
  • In the RigidBody input file, set Kinematic property to 3 and resolve the required follower properties. This means the RigidBody motion will be kinematically defined by an RAO.
  • Set DefineInertiaAboutCG to 1 and CGPosition to (58.253, 0.0, -6.0) m. This is technically not required. However, it is a useful reminder of where the CG for the model is located.

Note

  • The mass/inertia properties of the RigidBody are ignored and can be kept at default values since this is a kinematic body and dynamics are not computed.

65.5. Associating a RAO with a RigidBody / Vessel

  • Create a RigidBodyRAO feature in the Library and reference this feature from the RAODatabaseModel property in the RigidBody input file. Suggested name for the feature is “frigateRAO”.
  • Set the RAODatabaseFile property in the RigidBodyRAO feature to ProteusDS_FrigateExport.rao. The .rao file contains the motion phases and amplitudes for a unit amplitude wave computed by ShipMo3D. ProteusDS will use these coefficients to calculate the kinematic motion response of the RigidBody to the incident wave field. ShipMo3D defines the RAO coefficients as the motion of the body at the CG.
  • The RAO defines the motion of the RigidBodyRAO feature’s reference frame of the vessel; the location of the RigidBodyRAO feature frame is specified using the RAODatabaseModel property. In this case, the location of the feature is set to (58.253, 0.0, -6.0) m which is coincident with the CG.

65.6. Setting the state

Note

  • Setting the correct initial state is important for a RigidBody in RAO mode.
  • For convenience, the RigidBody local frame has been set at the stern and baseline. Conveniently, this means the Z position of the RigidBody’s reference frame is the same as its draft.
  • For the Frigate in the example, the draft of the body is 4.2m; when defining the state of the RigidBody set the Z position, as in the figure below, to 4.2m.
alternate text

Fig. 65.2 Frigate Initial State

65.7. Visualizing a vessel

  • Create a RigidBodyVisualizationModel feature in the library. Suggested feature name is “frigateViz”.
  • Add a VisualizationModel property to the RigidBody input file and reference the “frigateViz” feature. You can leave the feature’s position and orientation properties at (0, 0, 0, 0, 0, 0) for now.
  • In the Library’s section for “frigateViz”, set the VisualizationModelFilePath property in the RigidBodyVisualizationModel feature to GenericFrigate.obj.

Note

  • The .obj file is an industry standard ASCII file for describing a 3D polygonal model. It is used here for visualization purposes within PST and PostPDS.
  • The RigidBodyVisualizationModel feature should look like the following:
// Mesh File
$VisualizationModelFilePath GenericFrigate.obj
  • View the obj object in the PST visualizer window. Notice that the vessel is upside down. This is because the geometry employs a Z up reference frame while ProteusDS employs a Z down reference frame.
  • Set the roll of the RigidBodyVisualizationModel feature to 180 degrees in the RigidBody input file.

Note

  • The RigidBody input file is shown in the listing below. Since the RigidBodyVisualizationModel obj file’s reference frame is also located at the stern and baseline, no offset of the mesh is required for visualization.
  • If the RigidBodyVisualizationModel obj file used did not share the same reference frame, the VisualizationModel would need to be offset such that the mesh is correctly located about the chosen RigidBody local frame of reference.
// Mass properties
$Ix 1
$Iy 1
$Iz 1
$Ixy 0
$Ixz 0
$Iyz 0
$DefineInertiaAboutCG 0
$CGPosition 58.253 0.0 -6.0
$Mass 1

// Numerical
$Kinematic 3
$RAODatabaseModel frigateRAO 58.253 0.0 -6.0

$VisualizationModel frigateViz 0 0 0 180 0 0

$ForwardSpeedYawRateSchedule frigateManeuvers

65.8. Running the simulation

  • Set the simulation end time to 200 seconds.
  • Set $WaveType to 1, resolve the required follower properties, and set $WavePeriod and $WaveHeight to 20 seconds and 10 meters.
  • Set the wave ramp of 20 seconds.
  • Run the simulation.
  • Visualize the ship in waves in PostPDS.

65.9. Scheduling maneuvers

Note

  • Ship maneuvers can be scheduled or scripted. The schedule allows the user to make the ship achieve a set ship forward speeds and turning rates at particular time stamps; it is a script of maneuvers to executed over the course of a simulation.
  • The user can add as many time stamped states to command of the ship. Each command consists of a time stamp, a commanded forward speed and a commanded turning rate for the ship to achieve at that timestamp.
  • Create a RigidBodyForwardSpeedYawRateSchedule feature in the library. Suggested feature name is “frigateManeuvers”.
  • Add a ForwardSpeedYawRateSchedule property to the RigidBody input file.
  • In the Library’s “frigateManeuvers” section, add 3 scheduled speeds (3m/s, 5m/s and 10m/s) and 2 turning rates (0deg/s and 2deg/s) using the ForwardSpeedYawRateSchedule property. Your “frigateManeuvers” section should appear as follows:
$ForwardSpeedYawRateSchedule 0 3 0
$ForwardSpeedYawRateSchedule 100 5 0
$ForwardSpeedYawRateSchedule 120 10 2
  • Observe the simulation begins with the frigate travelling at a speed of 3m/s with a heading of 0degrees. The frigate will accelerate over a period of 100s until it reaches a forward speed of 5m/s at the 100s timestamp. Then over a periods of 20s it’ll accelerate to a speed of 10m/s and a turning rate of 2Deg/s.

65.10. Rerunning the simulation

  • Rerun the simulation.
  • Visualize the ship in waves in PostPDS.
  • Plot the ship’s yaw rate and local X velocity.