Calculating a single stroke

The figure shows a schematic of one of the routines of my numerical model. The routine starts with obtaining the external parameters. These are the boat and rigging parameters (boat weight, oar length, inboard, blade length and blade area, span, catch angle), the rower’s parameters (weight, stroke length, handle force profile, maximum handle force, and stroke rate in strokes per minute). The routine also needs the center of mass velocity at the catch.

For each time increment, the blade force subroutine gives the new oar angular velocity and the propulsive force to the boat. From this, the new handle velocity and center of mass velocity are calculated. Subsequently, crew velocity and boat velocity are calculated. Finally, a new oar angle and crew position is calculated. This is repeated until the rower reaches the end of the stroke and starts the recovery.

The time needed for the stroke is now known, so we can calculate the time available for the recovery, given the stroke rate. I have implemented two different recovery speed profiles. The first one is the rather unrealistic constant speed. The second one is a sinus function of the position of the handle. Rower center of mass velocity is a function of handle velocity as described in the previous post.

In a typical simulation, I start with an estimated initial boat velocity. For the given stroke rate and handle force, it will take a few strokes before a stable situation is reached, stable meaning that the boat speed at the catch is the constant (within .1%) over subsequent strokes. Here’s a picture of the blade position with respect to the earth (water) reference frame for a typical stroke. The blue line shows the trajectory of the blade center, while the red line indicates the position and orientation of the blade. The red lines are drawn at constant time intervals:

Everything was implemented in Python with NumPy tools.