GHS Port Reference Center
Information for maritime designers, engineers and builders
Maintained by Creative Systems, Inc., Creators of GHS
Click here for information about GHS and other fine marine software.
Go to Main page

Sailing vessel stability criterion after 46 CFR 171.055.
    Applying 46 CFR 171.055
    
    In applying 46 CFR 171.055 for sailing vessels, the following method of doing
    the relevant calculations may be useful.  The user should check it carefully
    and verify that it is operating correctly.  It is recommended that the
    "/NOPRINT" parameter on the RA commands in macros "getangle" and "getarea"
    be deleted during this checking.
    
    Since GHS/BHS cannot slice off the top of an RA curve, if you have a condition
    with the maximum less than 35 degrees, you will have to make two runs; the
    first to get the excessive area (by inspection of the RA-area curve) which you
    can then subtract from the area in the next run by giving it as the parameter
    on the "case" macro.
    
     disk off
     proj sail
     `erase sail.gf
     mac makesv
     enter pm
      create hull
      ends 0 100
      top 20
      bot 0
      out 15
      margin 0
     //
     create sail
      class sail
      ends 25 75
      top 120
      bot 20
      out .1
     //
     di
     write
     qu pm
     /
     if not fexist {project}.gf then .makesv else read
    
     macro getarea
      `Sets the area veriable to the area under the RA curve.
      `Assumes one LIMIT AREA in effect.
      variable area
      heel = 0
      ra 0 5 /lim:att /noprint
      set area = {limmarg} div 100 plus 1 minus {toparea}
     /
    
     macro getangle
      `Sets the variable t to the angle of the given condition (RA0, DI, FLD).
      variable t
      limit(1) angle from 0 to %1 > 0
      heel = 0
      ra 0 10 /lim /noprint
      set t = {limmarg}
     /
    
     macro gethz
      `Computes HZ%1 according to CFR 171.055(g) using the given angle.
      `The area variable is used for "I".
      variable t1
      set t1 = %1 times 2
      set t1 = sin {t1} times 14.3
      set t1 = %1 div 2 plus {t1}
      set HZ%2 = {area} div {t1}
     /
    
     macro truncate
      if {toparea} > 0 then exit
      \ >>>> This is too small!  The following does not apply.
      \ You must determine the area to truncate from the following curve.
      ra 0 2.5 ... 35 /area
      set skip = 1
     /
    
     macro begin
      `---- Check angle of maximum RA ----
      variable skip, toparea
      set skip = 0
      set toparea = %1
      .getangle MAX
      \ Angle of maximum RA is {t}
      if {t} < 35 then .truncate else set toparea = 0
      if {toparea} > 0 then NOTE Trunced area = {toparea}
      if {skip}<>0 then exit
      \
      `---- Get wind heeling arm ----
      variable HZW
      wind (pressure) = 0.001
      hmmt wind /const
      heel = 0
      solve trim
      hmmt report
      set HZW = {HMMT} div {DISPL}
      hmmt off
      \ HZW = A x H / 1000 / W = {HZW}
      \
     /
    
     macro hza
      if {skip}<>0 then exit
      variable ch,ch2,HZ,HZA,r
      .getangle DI
      \ Angle of deck immersion: {t}
      heel = {t}
      set ch = cos {heel}
      set ch2 = {ch} times {ch}
      tcg = 0
      solve trim, tcg
      set HZ = {FTCG} times {ch}
      set HZA = {HZ} DIV {ch2}
      tcg = 0
      status
      \ HZ = {HZ}  HZA = {HZA}
      set r = {HZA} div {HZW}
      \ HZA / HZW = {r}   (Should be greater than 1.0 protected, 1.5 exposed)
      \
     /
    
     macro hzb
      if {skip}<>0 then exit
      variable HZB,r
      fldpt on
      limit(1) area from abs 0 to abs 60 or fld > 1
      .getarea
      .getangle fld
      .gethz {t} B
      \ Downflooding angle = {t}
      \ Area = {area}  HZB = {HZB}
      set r = {HZB} div {HZW}
      \ HZB / HZW = {r}   (Should be greater than 1.1 protected, 1.7 exposed)
      \
     /
    
     macro hzc
      if {skip}<>0 then exit
      variable HZC,r
      fldpt off
      .getangle ra0
      limit(1) area from abs 0 to abs 90 > 1
      if {t} > 90 then limit(1) area from abs 0 to ra0 or abs 120 > 1
      .getarea
      .gethz {t} C
      \ Angle of vanishing righting arm = {t}
      if {t} < 90 then NOTE This is not sufficient for exposed waters.
      if {t} < 70 then NOTE This is not sufficient even for protected waters!
      \ Area = {area}  HZC = {HZC}
      set r = {HZC} div {HZW}
      \ HZC / HZW = {r}  (Should be greater than 1.25 protected, 1.9 exposed)
      \
     /
    
     `---- Set up condition ----
     draft 13
     vcg 12.5
     solve weight, lcg
     crtpt(1) "downflooding point", 50,10,30
    
     macro case
      .begin %1
      .hza
      .hzb
      .hzc
     /
    
     .case 1.4  `<-- put area to truncate here if max is < 35 deg.
    
     vcg = 11
     .case 0
    
Add a free link to your site
Copyright © , Creative Systems, Inc.
Privacy policy