Difference between revisions of "TrueWind"

From wiki.bastelbude.grade.de
Jump to: navigation, search
(vessel's Movement and Orientation)
Line 1: Line 1:
 
== see also ==
 
== see also ==
* http://davidburchnavigation.blogspot.com/2013/04/true-true-wind-from-apparent-wind.html
 
 
* https://coaps.fsu.edu/woce/truewind/paper/index.html
 
* https://coaps.fsu.edu/woce/truewind/paper/index.html
* http://signalk.org/specification/1.0.0/doc/otherBranches.html
 
 
* http://www.catb.org/gpsd/NMEA.html
 
* http://www.catb.org/gpsd/NMEA.html
* https://opencpn.org/wiki/dokuwiki/doku.php?id=opencpn:opencpn_user_manual:terminology
 
 
* http://www.ybw.com/forums/showthread.php?474209-Raymarine-True-amp-Apparent-Wind-calculation
 
* http://www.ybw.com/forums/showthread.php?474209-Raymarine-True-amp-Apparent-Wind-calculation
 
* https://www.sailingworld.com/what-are-my-electronics-telling-me-about-boatspeed-and-heading
 
* https://www.sailingworld.com/what-are-my-electronics-telling-me-about-boatspeed-and-heading
Line 11: Line 8:
  
 
== Terms ==
 
== Terms ==
 +
* https://opencpn.org/wiki/dokuwiki/doku.php?id=opencpn:opencpn_user_manual:terminology
 +
* http://signalk.org/specification/1.0.0/doc/otherBranches.html
 +
* https://en.wikipedia.org/wiki/Euclidean_vector
  
* https://en.wikipedia.org/wiki/Euclidean_vector
 
 
=== vessel's Movement and Orientation ===
 
=== vessel's Movement and Orientation ===
 
* <b>'OG'</b> movement over ground
 
* <b>'OG'</b> movement over ground
Line 20: Line 19:
 
*** <b>COGm</b> Course Over Ground (relative to magnetic north) <b>navigation.courseOverGroundMagnetic</b>
 
*** <b>COGm</b> Course Over Ground (relative to magnetic north) <b>navigation.courseOverGroundMagnetic</b>
 
* <b>'SH'</b>
 
* <b>'SH'</b>
** <b>STW</b> Speed Trough Water <b>navigation.speedThroughWater</b>
+
** <b>STW</b> Speed Trough Water (magnitude)<b>navigation.speedThroughWater</b>
** <b>HDG</b> Heading
+
** <b>HDG</b> Heading (direction)
 
*** <b>HDT</b> Heading (relative to true north) <b>navigation.headingTrue</b>
 
*** <b>HDT</b> Heading (relative to true north) <b>navigation.headingTrue</b>
 
*** <b>HDM</b> Heading (relative to magnetic north) <b>navigation.headingMagnetic</b>
 
*** <b>HDM</b> Heading (relative to magnetic north) <b>navigation.headingMagnetic</b>
Line 27: Line 26:
 
=== Wind ===
 
=== Wind ===
 
* <b>AW</b> Apparent Wind (relative to vessel)
 
* <b>AW</b> Apparent Wind (relative to vessel)
** <b>AWS</b> Apparent Wind Speed <b>environment.wind.speedApparent</b>
+
** <b>AWS</b> Apparent Wind Speed (direction) <b>environment.wind.speedApparent</b>
 
** <b>AWDt</b> Apparent Wind Direction (relative to true north) <b>environment.wind.<strike>directionTrue</strike></b> <b>directionApparantTrue</b>
 
** <b>AWDt</b> Apparent Wind Direction (relative to true north) <b>environment.wind.<strike>directionTrue</strike></b> <b>directionApparantTrue</b>
 
** <b>AWDm</b> Apparent Wind Direction (relative to magnetic north) <b>environment.wind.<strike>directionMagnetic</strike></b> <b>directionApparantMagnetic</b>
 
** <b>AWDm</b> Apparent Wind Direction (relative to magnetic north) <b>environment.wind.<strike>directionMagnetic</strike></b> <b>directionApparantMagnetic</b>
Line 33: Line 32:
  
 
* <b>TW</b> True Wind (relative to surface of the water)
 
* <b>TW</b> True Wind (relative to surface of the water)
** <b>TWS</b> True Wind Speed <b>environment.wind.<strike>speedTrue</strike></b> <b>speedWater</b>
+
** <b>TWS</b> True Wind Speed (magnitude) <b>environment.wind.<strike>speedTrue</strike></b> <b>speedWater</b>
** <b>TWDt</b> True Wind Direction (relative to true north) add: <b>environment.wind.directionWaterTrue</b>
+
** <b>TWDt</b> True Wind Direction (direction)
** <b>TWDm</b> True Wind Direction (relative to magnetic north) add: <b>environment.wind.directionWaterMagnetic</b>
+
*** <b>TWDt</b> True Wind Direction (relative to true north) add: <b>environment.wind.directionWaterTrue</b>
 +
*** <b>TWDm</b> True Wind Direction (relative to magnetic north) add: <b>environment.wind.directionWaterMagnetic</b>
 
** <b>TWA</b> True Wind Angle (relative to HDG) <b>environment.wind.<strike>angleTrueWater</strike></b> <b>angleWater</b>
 
** <b>TWA</b> True Wind Angle (relative to HDG) <b>environment.wind.<strike>angleTrueWater</strike></b> <b>angleWater</b>
  
 
* <b>GW</b> Ground Wind (relative to ground) used in weather forecasts and reports
 
* <b>GW</b> Ground Wind (relative to ground) used in weather forecasts and reports
** <b>GWS</b> Ground Wind Speed <b>environment.wind.speedOverGround</b>
+
** <b>GWS</b> Ground Wind Speed (magnitude) <b>environment.wind.speedOverGround</b>
 +
** <b>GWD</b> Ground Wind Direction (direction)
 
** <b>GWDt</b> Ground Wind Direction (relative to true north) add: <b>environment.wind.directionOverGroundTrue</b>
 
** <b>GWDt</b> Ground Wind Direction (relative to true north) add: <b>environment.wind.directionOverGroundTrue</b>
 
** <b>GWDm</b> Ground Wind Direction (relative to magnetic north) add: <b>environment.wind.directionOverGroundMagnetic</b>
 
** <b>GWDm</b> Ground Wind Direction (relative to magnetic north) add: <b>environment.wind.directionOverGroundMagnetic</b>
 
** <b>GWA</b> Ground Wind Angle (relative to HDG) <b>environment.wind.<strike>angleTrueGround</strike></b> <b>angleOverGround</b>
 
** <b>GWA</b> Ground Wind Angle (relative to HDG) <b>environment.wind.<strike>angleTrueGround</strike></b> <b>angleOverGround</b>
  
=== Current ===
+
=== other ===
* <b>DFT</b> Current Drift (speed relative to ground) <b>environment.current.drift</b>
+
* <b>'CU'</b> (relative to ground)
* <b>SETt</b> Current Set (direction relative to true north) <b>environment.current.setTrue</b>
+
** <b>DFT</b> Current Drift (speed, magnitude) <b>environment.current.drift</b>
* <b>SETm</b> Current Set (direction relative to magnetic north) <b>environment.current.setMagnetic</b>
+
** <b>SETt</b> Current Set (direction)
 +
*** <b>SETt</b> Current Set (direction relative to true north) <b>environment.current.setTrue</b>
 +
*** <b>SETm</b> Current Set (direction relative to magnetic north) <b>environment.current.setMagnetic</b>
  
 
== calculate Ground Wind from Apparent Wind ==
 
== calculate Ground Wind from Apparent Wind ==
* <b>AWA</b> Apparent Wind Angle (relative to HDG) <b>environment.wind.angleApparent</b>
+
* http://davidburchnavigation.blogspot.com/2013/04/true-true-wind-from-apparent-wind.html
* <b>HDT</b> Heading (relative to true north) <b>navigation.headingTrue</b>
+
* <b>AWA</b> Apparent Wind Angle (relative to HDG)
** <b>AWD</b> Apparent Wind Direction (relative to true north) <b>environment.wind.directionTrue</b>
+
* <b>HDT</b> Heading (relative to true north)
 +
** <b>AWD</b> Apparent Wind Direction (relative to true north)
 
** <code>AWD =  MOD(H+AWA;360)</code>
 
** <code>AWD =  MOD(H+AWA;360)</code>
  
* <b>AWS</b> Apparent Wind Speed <b>environment.wind.speedApparent</b>
+
* <b>AWS</b> Apparent Wind Speed
* <b>COG</b> Course Over Ground <b>navigation.courseOverGroundTrue</b>
+
* <b>COG</b> Course Over Ground
* <b>SOG</b> Speed Over Ground <b>navigation.speedOverGround</b>
+
* <b>SOG</b> Speed Over Ground
** <b>GWS</b> Ground Wind Speed <b>environment.wind.speedOverGround</b>
+
** <b>GWS</b> Ground Wind Speed
 
** <code>GWx = OGx - AWx = SOG * Sin (COG) - AWS * Sin (AWD)</code>
 
** <code>GWx = OGx - AWx = SOG * Sin (COG) - AWS * Sin (AWD)</code>
 
** <code>GWy = OGy - AWy = SOG * Cos (COG) - AWS * Cos (AWD)</code>
 
** <code>GWy = OGy - AWy = SOG * Cos (COG) - AWS * Cos (AWD)</code>
 
** <code>GWS= SQRT (GWx*GWx  + GWy*GWy)</code>
 
** <code>GWS= SQRT (GWx*GWx  + GWy*GWy)</code>
** <b>GWD</b> Ground Wind Direction (relative to true north) <b>???</b>
+
** <b>GWD</b> Ground Wind Direction (relative to true north)
 
** <code>GWD = ATAN ( GWx / GWy )</code>
 
** <code>GWD = ATAN ( GWx / GWy )</code>
  
 
== (calculate current) ==
 
== (calculate current) ==
* <b>COG</b> Course Over Ground <b>navigation.courseOverGroundTrue</b>
+
* <b>COG</b> Course Over Ground
* <b>SOG</b> Speed Over Ground <b>navigation.speedOverGround</b>
+
* <b>SOG</b> Speed Over Ground
* <b>HDT</b> Heading (relative to true north) <b>navigation.headingTrue</b>
+
* <b>HDT</b> Heading (relative to true north)
 
* <b>STW</b> Speed Trough Water  in direction of HDG
 
* <b>STW</b> Speed Trough Water  in direction of HDG
** <b>DFT</b> Drift (current speed relative to ground) <b>environment.current.drift</b>
+
** <b>DFT</b> Drift (current speed relative to ground)
 
** <code>DFTx = OGx - SHx = SOG * Sin (COG) - STW * Sin (HDT)</code>
 
** <code>DFTx = OGx - SHx = SOG * Sin (COG) - STW * Sin (HDT)</code>
 
** <code>DFTy = OGy - SHy = SOG * Cos (COG) - STW * Cos (HDT)</code>
 
** <code>DFTy = OGy - SHy = SOG * Cos (COG) - STW * Cos (HDT)</code>
 
** <code>DFT= SQRT (DFTx*DFTx  + DFTy*DFTy)</code>
 
** <code>DFT= SQRT (DFTx*DFTx  + DFTy*DFTy)</code>
** <b>SET</b> Set (current direction relative to true north) <b>environment.current.setTrue</b>
+
** <b>SET</b> Set (current direction relative to true north)
 
** <code>SET = ATAN ( DFTx / DFTy )</code>
 
** <code>SET = ATAN ( DFTx / DFTy )</code>
  

Revision as of 12:44, 1 November 2018

see also

Terms

vessel's Movement and Orientation

  • 'OG' movement over ground
    • SOG Speed Over Ground (magnitude) navigation.speedOverGround
    • COG Course Over Ground (direction)
      • COGt Course Over Ground (relative to true north) navigation.courseOverGroundTrue
      • COGm Course Over Ground (relative to magnetic north) navigation.courseOverGroundMagnetic
  • 'SH'
    • STW Speed Trough Water (magnitude)navigation.speedThroughWater
    • HDG Heading (direction)
      • HDT Heading (relative to true north) navigation.headingTrue
      • HDM Heading (relative to magnetic north) navigation.headingMagnetic

Wind

  • AW Apparent Wind (relative to vessel)
    • AWS Apparent Wind Speed (direction) environment.wind.speedApparent
    • AWDt Apparent Wind Direction (relative to true north) environment.wind.directionTrue directionApparantTrue
    • AWDm Apparent Wind Direction (relative to magnetic north) environment.wind.directionMagnetic directionApparantMagnetic
    • AWA Apparent Wind Angle (relative to HDG) environment.wind.angleApparent
  • TW True Wind (relative to surface of the water)
    • TWS True Wind Speed (magnitude) environment.wind.speedTrue speedWater
    • TWDt True Wind Direction (direction)
      • TWDt True Wind Direction (relative to true north) add: environment.wind.directionWaterTrue
      • TWDm True Wind Direction (relative to magnetic north) add: environment.wind.directionWaterMagnetic
    • TWA True Wind Angle (relative to HDG) environment.wind.angleTrueWater angleWater
  • GW Ground Wind (relative to ground) used in weather forecasts and reports
    • GWS Ground Wind Speed (magnitude) environment.wind.speedOverGround
    • GWD Ground Wind Direction (direction)
    • GWDt Ground Wind Direction (relative to true north) add: environment.wind.directionOverGroundTrue
    • GWDm Ground Wind Direction (relative to magnetic north) add: environment.wind.directionOverGroundMagnetic
    • GWA Ground Wind Angle (relative to HDG) environment.wind.angleTrueGround angleOverGround

other

  • 'CU' (relative to ground)
    • DFT Current Drift (speed, magnitude) environment.current.drift
    • SETt Current Set (direction)
      • SETt Current Set (direction relative to true north) environment.current.setTrue
      • SETm Current Set (direction relative to magnetic north) environment.current.setMagnetic

calculate Ground Wind from Apparent Wind

  • AWS Apparent Wind Speed
  • COG Course Over Ground
  • SOG Speed Over Ground
    • GWS Ground Wind Speed
    • GWx = OGx - AWx = SOG * Sin (COG) - AWS * Sin (AWD)
    • GWy = OGy - AWy = SOG * Cos (COG) - AWS * Cos (AWD)
    • GWS= SQRT (GWx*GWx + GWy*GWy)
    • GWD Ground Wind Direction (relative to true north)
    • GWD = ATAN ( GWx / GWy )

(calculate current)

  • COG Course Over Ground
  • SOG Speed Over Ground
  • HDT Heading (relative to true north)
  • STW Speed Trough Water in direction of HDG
    • DFT Drift (current speed relative to ground)
    • DFTx = OGx - SHx = SOG * Sin (COG) - STW * Sin (HDT)
    • DFTy = OGy - SHy = SOG * Cos (COG) - STW * Cos (HDT)
    • DFT= SQRT (DFTx*DFTx + DFTy*DFTy)
    • SET Set (current direction relative to true north)
    • SET = ATAN ( DFTx / DFTy )

signalk-derived-data groundWind.js

  • https://github.com/SignalK/signalk-derived-data/blob/master/calcs/groundWind.js
  • SOG Speed Over Ground navigation.speedOverGround
  • AWA Apparent Wind Angle (relative to HDG) environment.wind.angleApparent
  • AWS Apparent Wind Speed environment.wind.speedApparent
    • AWx = AWS * Cos (AWA)
    • AWy = AWS * Sin (AWA)
    • GWA Ground Wind Angle (relative to HDG) environment.wind.angleTrueGround
    • GWA = ATAN2(AWy, -SOG + AWx)
    • GWS Ground Wind Speed (relative to ground) environment.wind.speedOverGround
    • GWS = SQRT (POWER(AWy,2) POWER(-SOG + AWx,2))

signalk-derived-data windDirection.js

  • https://github.com/SignalK/signalk-derived-data/blob/master/calcs/windDirection.js
  • HDG Heading
    • HDT Heading (relative to true north) navigation.headingTrue
    • HDM Heading (relative to magnetic north) navigation.headingMagnetic
  • AWA Apparent Wind Angle (relative to HDG) environment.wind.angleApparent
    • AWD Apparent Wind Direction
      • environment.wind.directionTrue
      • environment.wind.directionMagnetic
    • AWD = HDG + AWA
      if (AWD > Math.PI * 2) AWD -= Math.PI * 2
      else if (AWD < 0) AWD += Math.PI * 2

Sensors

Heading

SOG and COG

  • GPS receiver

STW

AWS and AWA