17  Tutorial 05 - Straight Line Stability

17.1 Question 1

A ship has the following non-dimensional hydrodynamic derivatives and characteristics:

  • \(Y_v' = -0.35\)
  • \(Y_r' = -0.12\)
  • \(N_v' = -0.05\)
  • \(N_r' = -0.15\)
  • \(m' = 0.72\)
  • \(x_G' = 0.1\)

Calculate the non-dimensional stability constant \(C'\) and determine if the ship is straight-line stable.

If the center of gravity of the ship is moved aft so that \(x_G = -0.1\), is the ship still straight-line stable?

Question 2

A ship model has the following non-dimensional hydrodynamic derivatives:

  • \(Y_v' = -0.42\)
  • \(Y_r' = -0.15\)
  • \(N_v' = -0.08\)
  • \(N_r' = -0.18\)
  • \(m' = 0.85\)
  • \(x_G' = 0.05\)
  1. Calculate the non-dimensional stability constant \(C'\).

  2. If the ship is found to be unstable, what is the minimum change needed in \(N_v'\) to make it stable while keeping all other parameters constant?

Question 3

A ship has a length of \(200\) m and the following non-dimensional parameters:

  • \(Y_v' = -0.40\)
  • \(Y_r' = -0.13\)
  • \(N_v' = -0.07\)
  • \(N_r' = -0.17\)
  • \(m' = 0.82\)
  1. Calculate the range of \(x_G'\) values for which the ship will be straight-line stable.

  2. Convert this range to actual distances from midship in meters assuming that BCS origin is at midship.

Question 4

Consider a ship of length \(200\) m with a design speed of \(U=12\) m/s. Let the non-dimensional stability parameters of the ship be as given below:

  • \(A'= 0.15\)
  • \(B'=0.20\)
  • \(C'=0.05\)

During its nominal operation, the ship experiences a momentary gust of wind. After the disturbance has just passed, the ship has the following state:

  • \(v=0.5 ~m/s\)
  • \(r=0.01 ~rad/s\)
  • \(\dot{v} = -0.01 ~m/s^2\)
  • \(\dot{r} = -0.0006 ~rad/s^2\)
  1. How long does it take for the sway velocity to become \(0.25 ~m/s\) after the disturbance has just passed?

  2. How long does it take for the yaw velocity to become \(0.005 ~rad/s\) after the disturbance has just passed?

Solution 1

A ship has the following non-dimensional hydrodynamic derivatives and characteristics:

  • \(Y_v' = -0.35\)
  • \(Y_r' = -0.12\)
  • \(N_v' = -0.05\)
  • \(N_r' = -0.15\)
  • \(m' = 0.72\)
  • \(x_G' = 0.1\)

Calculate the non-dimensional stability constant \(C'\) and determine if the ship is straight-line stable.

If the center of gravity of the ship is moved aft so that \(x_G = -0.1\), is the ship still straight-line stable?

Code
def solve_problem1():
    # Non-dimensional parameters
    Y_v_prime = -0.35
    Y_r_prime = -0.12
    N_v_prime = -0.05
    N_r_prime = -0.15
    m_prime = 0.72
    x_G_prime = 0.1
    
    x_G_prime_new = -0.1

    # Calculate non-dimensional stability constant C'
    C_prime = (N_r_prime - m_prime*x_G_prime) * Y_v_prime - (Y_r_prime - m_prime) * N_v_prime
    C_prime_new = (N_r_prime - m_prime*x_G_prime_new) * Y_v_prime - (Y_r_prime - m_prime) * N_v_prime

    print(f"Non-dimensional stability constant C' = {C_prime:.4f} {'> 0' if C_prime > 0 else '< 0'} and the ship is {'straight-line stable' if C_prime > 0 else 'not straight-line stable'}\n")

    print(f"For xG' = {x_G_prime_new:.2f}, non-dimensional stability constant C' = {C_prime_new:.4f} {'> 0' if C_prime_new > 0 else '< 0' } and the ship is {'straight-line stable' if C_prime_new > 0 else 'not straight-line stable'}")

solve_problem1()
Non-dimensional stability constant C' = 0.0357 > 0 and the ship is straight-line stable

For xG' = -0.10, non-dimensional stability constant C' = -0.0147 < 0 and the ship is not straight-line stable

Solution 2

A ship model has the following non-dimensional hydrodynamic derivatives:

  • \(Y_v' = -0.42\)
  • \(Y_r' = -0.15\)
  • \(N_v' = -0.08\)
  • \(N_r' = -0.18\)
  • \(m' = 0.85\)
  • \(x_G' = 0.05\)
  1. Calculate the non-dimensional stability constant \(C'\).

  2. If the ship is found to be unstable, what is the minimum change needed in \(N_v'\) to make it stable while keeping all other parameters constant?

Code
def solve_problem2():
    # Given parameters
    Y_v_prime = -0.42
    Y_r_prime = -0.15
    N_v_prime = -0.08
    N_r_prime = -0.18
    m_prime = 0.85
    x_G_prime = 0.05
    
    # Calculate C'
    C_prime = (N_r_prime - m_prime*x_G_prime) * Y_v_prime - (Y_r_prime - m_prime) * N_v_prime
    
    # Calculate required N_v_prime for C' = 0
    N_v_prime_req = ((N_r_prime - m_prime*x_G_prime) * Y_v_prime) / (Y_r_prime - m_prime)
    
    print(f"(a) Non-dimensional stability constant C' = {C_prime:.4f} {'> 0' if C_prime > 0 else '< 0'}\n")
    print(f"(b) Minimum Nv' required for stability: {N_v_prime_req:.4f}\n")
    print(f"\tChange needed in Nv': {N_v_prime_req - N_v_prime:.4f}\n")

solve_problem2()
(a) Non-dimensional stability constant C' = 0.0134 > 0

(b) Minimum Nv' required for stability: -0.0934

    Change needed in Nv': -0.0134

Solution 3

A ship has a length of \(200\) m and the following non-dimensional parameters:

  • \(Y_v' = -0.40\)
  • \(Y_r' = -0.13\)
  • \(N_v' = -0.07\)
  • \(N_r' = -0.17\)
  • \(m' = 0.82\)
  1. Calculate the range of \(x_G'\) values for which the ship will be straight-line stable.

  2. Convert this range to actual distances from midship in meters assuming that BCS origin is at midship.

Code
def solve_problem3():
    # Given parameters
    Y_v_prime = -0.40
    Y_r_prime = -0.13
    N_v_prime = -0.07
    N_r_prime = -0.17
    m_prime = 0.82
    L = 200
    
    # Calculate x_G_prime where C' = 0
    x_G_prime_crit = (N_r_prime - ((Y_r_prime - m_prime) * N_v_prime / Y_v_prime)) / m_prime
    
    # Convert to actual distance
    x_G_crit = x_G_prime_crit * L
    
    print(f"(a) For straight-line stability: x_G' > {x_G_prime_crit:.4f}\n")
    print(f"(b) Distance from midship: x_G > {x_G_crit:.2f} m\n")

solve_problem3()
(a) For straight-line stability: x_G' > -0.0046

(b) Distance from midship: x_G > -0.91 m

Solution 4

Consider a ship of length \(200\) m with a design speed of \(U=12\) m/s. Let the non-dimensional stability parameters of the ship be as given below:

  • \(A'= 0.15\)
  • \(B'=0.20\)
  • \(C'=0.05\)

During its nominal operation, the ship experiences a momentary gust of wind. After the disturbance has just passed, the ship has the following state:

  • \(v=0.5 ~m/s\)
  • \(r=0.01 ~rad/s\)
  • \(\dot{v} = -0.01 ~m/s^2\)
  • \(\dot{r} = -0.0006 ~rad/s^2\)
  1. How long does it take for the sway velocity to become \(0.25 ~m/s\) after the disturbance has just passed?

  2. How long does it take for the yaw velocity to become \(0.005 ~rad/s\) after the disturbance has just passed?

Code
import numpy as np

def solve_problem4():
    U = 12
    L = 200
    
    Ap = 0.15
    Bp = 0.20
    Cp = 0.05

    v0 = 0.5
    r0 = 0.01
    v0d = -0.01
    r0d = -0.0006

    v_new = 0.25
    r_new = 0.005

    v0p = v0 / U
    r0p = r0 * L / U
    v0dp = v0d * L / U**2
    r0dp = r0d * L**2 / U**2

    s1p = (- Bp + np.sqrt(Bp**2 - 4*Ap*Cp)) / (2*Ap)
    s2p = (- Bp - np.sqrt(Bp**2 - 4*Ap*Cp)) / (2*Ap)

    s1 = s1p * U / L
    s2 = s2p * U / L

    A_mat = np.array([
        [1, 1],
        [s1p, s2p]
    ])
    bv_vec = np.array([v0p, v0dp])
    br_vec = np.array([r0p, r0dp])

    v_amp = np.linalg.solve(A_mat, bv_vec) * U
    r_amp = np.linalg.solve(A_mat, br_vec) * U / L

    print(f"Velocity amplitudes v1 = {v_amp[0]:.2f} m/s, v2 = {v_amp[1]:.2f} m/s")
    print(f"Yaw rate amplitudes r1 = {r_amp[0]:.2f} rad/s, r2 = {r_amp[1]:.2f} rad/s\n")

    t1 = np.log(v_new / v_amp[0]) / s1
    t2 = np.log(r_new / r_amp[1]) / s2

    print(f"(a) Time for v to reach {v_new:.2f} m/s is {t1:.2f} seconds")
    print(f"(b) Time for r to reach {r_new:.3f} m/s is {t2:.2f} seconds")

solve_problem4()
Velocity amplitudes v1 = 0.50 m/s, v2 = 0.00 m/s
Yaw rate amplitudes r1 = 0.00 rad/s, r2 = 0.01 rad/s

(a) Time for v to reach 0.25 m/s is 34.66 seconds
(b) Time for r to reach 0.005 m/s is 11.55 seconds