I illustrated an efficient method of calculating VMG angles using a pseudo ‘binary search’ methodology, and will now do similarly for VMC. But first a few things on what exactly VMC is, and some helpful observations about the cosine function. Also note the following abbreviations:

- boatspeed =
*SOG*(Speed Over Ground) - heading =
*COG*(Course Over Ground) - target waypoint direction =
*WP_CC*(Waypoint Compass Course)

And of course, *TWS, TWD* & *TWA* for true wind speed, direction and angle.

I will also assume basic sailing terminology is familiar to the reader.

When we consider a velocity, which is what we do when sailing, we have a direction (*COG* or* CC*) and magnitude (*SOG *or boatspeed). This gives us a **vector** quantity, which can be broken down into components along the *x* and *y* axes on a graph, or along *latittude* and *longitude* on a map. For example if we are heading NE: *COG = 45*, then we can consider our speed along the vertical and horizontal axes. In other words we can ask “*How fast are we sailing E?*” and “*How fast are we sailing N?*“, and this is a useful question if where we want to go is not directly NE. To find these values, we can use the trigonometric functions *sine* and *cosine*. We use (in this instance) *cosine *for the Easterly component and *sine* for the Northerly. A simple diagram will help here:

The black arrow is our velocity, and the green arrow is the component of that velocity due E, the red due N. Visually, a vector is an arrow with the direction indicated and magnitude shown as length. Now, we can also rotate these component axes however we like, as long as they stay at rightangles to each other. So when we wish to know exactly how fast we are moving directly toward a target (that is not straight ahead), it is most convenient to rotate the axes such that the original horizontal (green) coincides with a rhumbline course to our target. To keep things simple, I will just use an example where due E is the target we are trying to maximise our speed toward, or the rotation angle is 0. So, to find out exactly how fast we are travelling E (the length of the green line), we simply multiply our boatspeed by the cosine of the angle between our heading and target, which in this case is 45 degrees. This is what is known as *VM C*, which is short for

**V**elocity

**M**ade (to)

**C**ourse. When computing

*VM*, we are interested in how fast we are moving either upwind or downwind, which is precisely what we want to know when we are sailing a course with a mark directly upwind or downwind. To calculate

**G***VMG*, we multiplied our boatspeed by the our

*TWA*, which is just the difference between our heading and the wind direction or

*SOG * cosine(TWA) = SOG * cosine(TWD – COG)*. So, this is the formula when we want to know how fast we are sailing to windward (or leeward if downwind), and we can use the exact same formula to see how fast we are sailing toward a different target direction by substituting in that direction for

*TWD*. In the example above, our

*COG*is

*45*, and East is at

*CC 90*, so we have:

*SOG * cosine(90 – 45)*for our

*VM*towards the East. Often this is said “

**C***with respect to*” whichever direction. To get an actual number, lets say we are currently sailing at 10kts so our

*VMC*is

*7.07kts*“with respect to (the) East”. Now you might ask “But there is no mention of the wind direction here, or our

*TWA*?”, but it is hidden in the calculation for

*SOG*– ie our boatspeed on

*COG=45*will depend on the

*TWS*&

*TWD*. So the general formula for

*VMC*is:

*SOG * cosine(COG – WP_CC)*

you will see below the order of the difference between *COG *and *WP_CC* doesnt actually matter, so all you need remember is to take the difference (angle?) between them.

You might also want to read 76Trombones’ excellent post on VMC, which has much prettier pictures than mine…

A few observations about the cosine function will help us to calculate the optimum *COG* to maximise *VMC*, especially to do so more intuitively with more experience, and these are:

**The cosine function is 1, when the input angle is 0**. The implication of this is that when we are heading directly toward out target waypoint, then*COG – WP_CC = 0*, which means that our boatspeed IS our*VMC*, which makes sense when you look back at the triangle diagram, and imagine the black and green arrows are in the same direction.**cosine(A) = cosine(-A)**. The cosine of any angle is exactly the same if we take the negative of that angle. This is why I said above that it makes no difference which you put first,*COG*or*WP_CC*when taking the difference, because*A – B = -(B – A)*. In fact usually people tend to swap depending on the values, so that they get a positive result. So in the example above, in our heads it is easiest to think “*WP_CC – COG*” as this gives us, whereas**+**45*CC – WP_CC*results in*-45*. But for doing these calculations it makes no difference which way you do it.**The cosine of 90 degrees, is 0**. This just says mathematically, that if you are sailing at right-angles to your target, you aren’t getting any closer –*SOG * 0 = 0*!**The value of the cosine function decreases as the angle increases from 0 to 90 degrees**, or*0 to PI / 2*in radians. So what this means is that the larger the angle between*COG*and*WP_CC*, less of our boatspeed is taking us in the target direction. This is a natural consequence of points 1 & 3. Furthermore, the further away from 0 the angle, the faster the cosine approaches 0. ie the difference between*cosine(0)*and*cosine(10)*is only 0.0152, but the difference betwen*cosine(80)*and*cosine(90)*is 0.1736, over 11 times as much for the same change in angle!

So, armed with this we are ready to calculate the angle which will maximise the speed at which we sail toward any given direction, ie *VMC*. All you need for this is a Calculator (software or handheld), Schakel’s DC Calculator (DCC) open to the ‘Boatspeed’ tab, and something to write with/on (or a text editor). For this example, we will stick with a target direction of due East, use the IMOCA polar and actual weather in SOL as I am writing this: *TWS=5.3 kts, TWD = 278.7 degrees*. Enter these into the DCC, and just leave them.

Now, the first direction we should try is sailing directly toward our target *COG=90*. When we put this into DCC we find a *SOG* of 4.9kts, and as we are heading directly at our target this is also our *VMC*, and we write this down, just *90=4.9* will do. Now the next question is whether to point higher or lower. Well, we can just try a bit either side of this heading and see what we get. Lets try 10 derees and we get for *COG=80 -> BS=5.5kts* so *VMC = 5.5 * cosine(90-80) = 5.42kts* and for *COG=100 -> BS=4.6* and *VMC = 4.6 * cosine(90-100) = 4.53kts*, so it is pretty clear we will need to point UP (more North) to increase our *VMC*. Be careful here as a lower *SOG *does not always result in a lower *VMC *– for example upwind on the non-favoured tack, *VMC *is increased by pinching (pointing slightly higher than the max *VMG *angle) but that is a different calculation.

So now we know which direction to look, how to narrow in on the best angle? Well, we simply compute the *VMC *for a course well away from the direct route. We know if we go as far as 90 degrees away our *VMC* will be 0, and intuitively if the max *VMC *angle is more than about 45 degrees away, then we are either beating or running, or we need to be sailing so far off course for some other reason like better conditions in a few days on a long leg like Legs 3, 4 and 5 of the IMOCA Global Challenge. All these are outside the scope of this article, so we will stick with *COG*s within 45 degrees of our target. So what does a* COG* of 45 result in? Plugging 45 into DCC shows we would sail at a *SOG *of 8.2kts, and our *VMC* is *8.2 * cosine(90-45) = 5.80 kts*. If you really want you can take an angle further out and check, doing so for COG=35 gives 8.9 & 5.10 for *SOG* and *VMC* respectively, which is *< 5.8 kts*. Record “45=5.80”.

So, now we can employ our ‘halving’ strategy to this calculation. We know the optimum is somewhere between 45 and 90, so check bang in the middle: 67.5 and DCC tells us our boatspeed here is *6.2kts, * cos(22.5) = 5.73kts VMC*. Write down “*67.5=5.73*“.

Now we have 3 *VMC* values, for 3 different *COG*s. What we do now is to take the 2 largest and split them down the middle or take the average – here it is 45 and 67.5, and the angle to use next is *(45+67.5)/2 = 56.25* degrees. DCC shows a *SOG* of 7.2kts, multiply by *cosine (90-56.25) = * cosine(33.75) = 5.99kts*… We are getting East faster! Recording this and repeating gives us angle of 50.63 (between 56.25 & 45 – our 2 best angles so far) which has a *SOG* of 7.7kts and **cos(39.37)=5.95kts VMC*. One more iteration (for a total of 5) yeilds a *VMC* of 5.94 at 53.44 degrees, and the change in our new computed value is almost zero, which means we have found an answer. We have *VMC=5.99kts at COG=56.25* and the next largest value occurs at *COG*=50.63 with a *VMC* of 5.95. At this level of accuracy we are starting to deal with *IN*accuracies between different methods of calculating the SOG, so we cant really hope to get better, and also we have found a range of angles where the *VMC* only varies by 0.04kts or < 0.85% of the *SOG*! Now to decide exactly what angle to sail on, we think back to where we are trying to maximise *VMC* toward which is East or 90, and pick the angle closest to that, which here is 56.25. So, in only 5 iterations we have calculated this as the optimum angle to sail to within less than 1% error – not including 2 calculations to tell us whether to point up or down, and the original direct course. And in practice, you would probably skip the last iteration and say “Its about 56 degrees” once you compute the 4th iteration to be so close, but to illustrate here I did the extra calculation. So all up, that is 7 cosines and multiplications, and plugging 7 *COG*s into DCC, likely only 5 once you get a feel for whether to point up or down without actually performing a calculation – about 3 minutes with practice…

So again, the general strategy is to check the direct course, then find out whether to point up or down (and with experience doing this you can tell visually from the polar). Then take a heading/*COG* 45 degrees in that direction, and iteratively split the 2 headings that give you the maximum *VMC*s computed so far, recording the results as you go.

Happy Calculating 😉

NOTE – if you write a spreadsheet to automate this calculation, you will need to convert all angles input to the cosine function into radians. This is simple enough as most spreadsheets will have a “to radians” or TORAD function, but incase you are interested is is simply ANGLE * PI / 180. And possibly follow a completely different method, ie compute for all twa’s and then use a MAX function ??

Indeed Schakel just today posted an article on how to create a spreadsheet to calculate VMG, and with a little imagination and ingenuity (both?) vmc can quite easily be added following the same method. Read it here.