To tack, or not to tack, that is the question...

by Dermot Tynan in Microtransat

Posted on Friday, March 01, 2013 at 08:00

82e49275 6cb2 49d3 8cfd 1abf907aeea9
Wind indicator with mount.

Looking at the upper-level navigation software introduces some particularly interesting questions. The low-level software will keep the boat on a TWA, or true wind angle. Technically, it's an apparent wind angle, but that's ok.

The upper level has to decide what is the best TWA. To do this, it has the current position of the boat and the position of the next waypoint. It also knows the current TWA and the compass heading. Without bogging down in the maths, it can compute the distance and bearing to the next waypoint using something called a Haversin algorithm. Given the current TWA and the heading, it can determine the wind direction. We can compute the VMG or "velocity made good" for each new heading possibility, based on the predicted Polar (more on that anon). So, we can see that a particular heading is the best course to get us as fast as possible to the next mark. All of this is standard stuff, and is used on sailboat race courses every day.

I'm going to define some terms, which are somewhat understood, and some which may be uh, original. The first thing to look at is the alpha angle. This is the relative angle to the next waypoint, from the perspective of the boat. We'll use plus or minus to indicate port and starboard. We could say that alpha is 0 degrees if the mark is directly on the bow. An alpha of +45 would indicate that it is at around 1 or 2 o'clock, and -90 would say that it's off the port beam. It's easy to see how we might calculate this variable. In an ideal world, on a motorboat for example, we can adjust our compass heading by alpha and bring the boat around to point at the mark. In short, to always maintain an alpha of 0.0.

If, however, the mark is upwind of us, then we can't do this. We will need to sail either on a port or starboard tack (at 45 degrees to the wind, give or take) to make distance to the mark. Let's say we take off on a starboard tack, keeping the boat at 45 degrees off the wind, and hopefully alpha at no greater than +45. We can calculate the VMG through cos(alpha) * v (where v is the hull speed). At this angle, it'll be 0.7071v. Not bad, but not brilliant either. We chose a starboard tack "just because." In truth, we could have taken off to the right of the course as well. If alpha was slightly greater than or less than zero, we might have favoured that tack a bit more. Following the rule that you sail the longest tack first. To decide which, we would look at the VMG on each tack, and consider the highest. In the case of a draw, we'd choose a starboard tack, "just because."

But, as we head off on this course, and keep recomputing alpha, it will quickly come to pass that we're on the 'wrong' tack, because alpha will begin to inch towards the other tack. Tacking back and forth every few seconds won't help us make distance upwind, as the actual tack will cost us speed and distance to the mark. What we want to do is tell the software not to tack unless the angle is really better than the one we're on. Say, ten or twenty degrees better. Close to the mark, this will hinder us, because we'll overshoot it if the delta is too large. Conversely, we don't want the boat sailing off a hundred or so nautical miles in the wrong direction, because the alpha will change quite slowly when the mark is a long way off (a thousand miles, say).

So, the delta-alpha algorithm needs to be modified to avoid too great a cross-track error (XTE). But how?

I have some ideas, and I'll discuss them in a later posting...

Current Missions
Recent Posts
Blog Categories