From wiki.bastelbude.grade.de
calculate True Wind from Apparent Wind
- AWA Apparent Wind Angle (relative to H) environment.wind.angleApparent
- H Heading (relative to true north) navigation.headingTrue
- AWD Apparent Wind Direction (relative to true north) environment.wind.directionTrue
AWD = MOD(H+AWA;360)
- AWS Apparent Wind Speed environment.wind.speedApparent
- COG Course Over Ground navigation.courseOverGroundTrue
- SOG Speed Over Ground navigation.speedOverGround
- TWS True Wind Speed (relative to ground) environment.wind.speedOverGround
TWx = SOG * Sin (COG) - AWS * Sin (AWD)
TWy = SOG * Cos (COG) - AWS * Cos (AWD)
TWS= SQRT (TWx*TWx + TWy*TWy)
- TWD True Wind Direction (relative to true north) ???
TWD = ATAN ( TWx / TWy )
- STW Speed Trough Water navigation.speedThroughWater
- DFT Current Drift (speed relative to ground) environment.current.drift
DFTx = SOG * Sin (COG) - STW * Sin (H)
DFTy = SOG * Cos (COG) - STW * Cos (H)
DFT= SQRT (DFTx*DFTx + DFTy*DFTy)
- SET Current Set (direction relative to true north) environment.current.setTrue
SET = ATAN ( DFTx / DFTy )
simplified, assuming H=COG
- COG Course Over Ground navigation.courseOverGroundTrue
- SOG Speed Over Ground navigation.speedOverGround
- AWA Apparent Wind Angle (relative to H) environment.wind.angleApparent
- AWS Apparent Wind Speed environment.wind.speedApparent
AWx = AWS * Cos (AWA)
AWy = AWS * Sin (AWA)
- TWA True Wind Angle (relative to H) environment.wind.angleTrueGround
ATAN2(AWy, -SOG + AWx)
- TWS True Wind Speed (relative to ground) environment.wind.speedOverGround
SQRT (POWER(AWy,2) POWER(-SOG + AWx,2))
see also
Sensors
Heading
SOG and COG
STW
AWS and AWA