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
TWSx = SOG * Sin (COG) - AWS * Sin (AWD)
TWSy = SOG * Cos (COG) - AWS * Cos (AWD)
TWS= SQRT (TWSx*TWSx + TWSy*TWSy)
- TWD True Wind Direction (relative to true north) ???
TWD = ATAN ( TWSx / TWSy )
- STW Speed Trough Water navigation.speedThroughWater
- DFT Current Drift (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 (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
AWSx = AWS * Cos (AWA)
AWSy = AWS * Sin (AWA)
- TWA True Wind Angle (relative to H) environment.wind.angleTrueGround
ATAN2(AWSy, -SOG + AWSx)
- TWS True Wind Speed (relative to ground) environment.wind.speedOverGround
SQRT (POWER(AWSy,2) POWER(-SOG + AWSx,2))
see also