Affine Control Interpretation of the Golf Swing — Part 2

Drift/Input Decomposition and Counterfactual Diagnostics

Diagnostic tools for analyzing golf swing dynamics: the Zero Torque Counterfactual (ZTCF) family and Zero Velocity Counterfactual (ZVCF) for model-conditioned drift/input attribution.
Author

Dieter Olson

Published

August 30, 2026

Part I defined the model's equations. Part II introduces interventions that compare its autonomous dynamics with its declared input channel; these do not measure effort or intent.

The Counterfactual Swing (ZTCF)

The Zero Torque Counterfactual (ZTCF) asks what the declared model predicts after its generalized-torque input is set to zero while the initial state, plant, and parameters remain fixed.

Setting the declared input channel to zero does not erase momentum, gravity, or retained impedance. The ZTCF integrates that explicitly defined autonomous model; it does not simulate stopped intent, silent muscles, or a flaccid golfer.

Analogy: A vehicle model can be simulated with its declared drive command set to zero while drag and momentum remain. The result depends on what the model declares as state, plant, input, and parameters.

Weighing the Club Mid-Swing (ZVCF)

The Zero Velocity Counterfactual (ZVCF) asks a different question: "How heavy does the club feel right now?"

It mathematically "freezes" the swing to measure the static loads—gravity and the springiness of the bent shaft—ignoring the speed.

Comparing these baselines separates terms in the declared equations. Work requires torque--velocity integration, and biological effort requires additional physiological measurements and models.
NoteNovelty Status
  • Established (textbook): Lagrangian drift/input decomposition of control-affine systems; the use of counterfactual simulations as diagnostic tools in mechanics.
  • Novel application: Applying the ZTCF/ZVCF framework specifically to golf swing biomechanics; naming and framing these counterfactuals as standard diagnostic tools for practitioners.
  • Terminology: “Zero Torque Counterfactual (ZTCF)” and “Zero Velocity Counterfactual (ZVCF)” are the authors’ labels for these constructions; the underlying mathematics is standard rigid-body dynamics.
ImportantModel-Conditioned Attribution Boundary

The identity \(\dot{x}=f_p(x)+G_p(x)u\) separates the autonomous and declared-input terms for a specified model at a fixed state. Its interpretation is conditional on the model boundary, coordinates, declared input, parameters and frozen variables, and the intervention being evaluated (a pointwise evaluation or a stated simulation horizon). This additivity does not imply orthogonality: under a chosen metric, \(f_p(x)\) and \(G_p(x)u\) may align, oppose, or be oblique. Without a separate identifiability argument and qualifying measurements, this bookkeeping does not identify neural intent, individual-muscle forces, biological effort, or a unique real-world cause.

Drift vs. Input Decomposition

Recall the control-affine form \(\dot{x} = f(x) + G(x)u\) established in Part 1, where \(f\) encodes the autonomous vector field and \(G\) encodes declared input directions (Isidori 1995). Part II turns this equation into reproducible, model-conditioned diagnostics.

The additive form assigns separate terms to the autonomous dynamics and the declared input channel. It does not imply that those vectors are orthogonal or that either term uniquely identifies intent, muscles, or biological effort.

Given the control-affine form \(\dot{x} = f(x) + G(x)u\), we now formalize this equation-level separation of autonomous (drift) and declared-input contributions.

Passive Drift Dynamics

The drift dynamics are defined by setting the declared generalized-torque input to zero while retaining the declared effective plant:

\[\dot{x}_{\text{drift}} = f(x).\]

Physically, this includes:

  • inertia of all rigid segments,
  • Coriolis and centrifugal forces,
  • gravitational torques,
  • passive joint contributions (if modeled),
  • elastic and damping forces from shaft deformation.

Drift represents what the system would do “on its own” given its current configuration, velocities, and shaft deformation, under the modeling assumptions stated earlier.

Torque-Driven Input Dynamics

The input dynamics are defined as the torque-driven component:

\[\dot{x}_{\text{input}} = G(x)\,u.\]

Key properties:

  • The dependence on \(u\) is strictly linear.
  • The mapping \(G(x)\) depends on configuration and shaft deformation, but does not multiply \(u\) nonlinearly.
  • The number of effective torque channels is \(m_{u} \le n\), reflecting anatomical underactuation at the joint level.

This term is the instantaneous contribution assigned to the declared generalized-torque channel at the mechanical level of description.

Total Evolution and Causal Interpretation Within the Model

Combining the two contributions yields

\[\dot{x} = f(x) + G(x)\,u = \dot{x}_{\text{drift}} + \dot{x}_{\text{input}}.\]

Within the model, this additive structure supports the following interpretation:

  • the drift term \(f(x)\) captures the passive mechanical response to the current state,
  • the input term \(G(x)u\) captures the incremental effect of the applied torques on top of that passive response.

The decomposition is analytically exact for the chosen multibody model; in practice it is limited by parameter accuracy and the validity of the modeling assumptions.

This analytical separation defines two explicit interventions: set the declared input to zero to evaluate or integrate drift, or set the declared velocity coordinates to zero to evaluate configuration loads. Each result is conditional on its model, coordinates, parameters, initial state, and horizon. Neither operation alone establishes a unique real-world causal explanation.

To operationalize this decomposition, we cannot simply look at the equations; we must observe the behavior they dictate. The drift field \(f(x)\) is not static; it describes a flow. To understand the burden of “passive dynamics,” we must follow this flow over time. It is not enough to know the instantaneous passive force vector; we must integrate that vector to see where it takes the club. We need a counterfactual history—a timeline of what would have happened if the golfer had ceased to intervene. This logic compels us to move from the tangent space (velocities/forces) to the integral curves (trajectories).

Role in Counterfactual Analysis

The drift–input decomposition underlies the counterfactual tools introduced later:

  • The Zero Torque Counterfactual (ZTCF) trajectory integrates the drift-only dynamics from a given initial state, isolating the passive evolution of the system.
  • The Zero Velocity Counterfactual (ZVCF) evaluates forces at the same configuration with velocities set to zero, isolating configuration-dependent contributions (Featherstone 2008).

By comparing total forces to these counterfactual constructions via inverse dynamics, we can separate drift and input forces (Nesbit 2005; Koike et al. 2019). This process moves us from the instantaneous vector fields of Part I to the temporal domain of Part II. It allows us to simulate the counterfactual trajectories—the unobserved trajectories that would have occurred had the golfer chosen differently—exposing the contribution of inertial coupling to the observed motion.

Zero Torque Counterfactual (ZTCF)

NoteCanonical ZTCF Convention (This Part)

This part uses the Branched ZTCF trajectory: the solution of \(\dot x = f(x)\) initialized from the observed swing state at a branch time \(t_0\), and compared against the observed swing for \(t > t_0\). The canonical ZTCF family definitions (Pointwise ZTCF sample \(f(x(t))\), Stitched pointwise ZTCF trace, Forward ZTCF trajectory, and Branched ZTCF trajectory) are in the standalone Zero-Torque Counterfactual article and NOTATION.md.

The drift–input decomposition separates the dynamics into a passive component \(f(x)\) and a torque-driven component \(G(x)u\). The Zero Torque Counterfactual (ZTCF) formalizes the idea of “what the system would have done under identical conditions if the golfer had applied no torques at all.” It is defined strictly within the mechanical model and is used as a reference against which the actual, torque-driven motion can be compared.

The vector fields \(f(x)\) and \(G(x)\) derived in the previous section define the instantaneous tendencies of the system: \(f(x)\) dictates how the state evolves passively, while \(G(x)\) dictates how it responds to input. However, the golf swing is not an instant; it is a ballistic process where past inputs shape current passive dynamics. The ‘drift’ forces experienced at impact are not merely functions of the current configuration; they are the legacy of momentum generated earlier in the downswing. To capture this history-dependent nature of drift, we must move from the tangent bundle (velocities) to the integral curves (trajectories). The ZTCF performs this integration, extending the instantaneous decomposition into a full counterfactual history.

Definition as a Drift-Only Trajectory

Consider the control-affine system

\[\dot{x} = f(x) + G(x)\,u, \qquad x(t_{0}) = x_{0}.\]

Let \(x(t)\) denote the actual trajectory of the system under some torque input \(u(t)\) on a time interval \(t \in [t_{0}, t_{f}]\), with the initial condition

\[x(t_{0}) = x_{0}.\]

We define the Zero Torque Counterfactual trajectory, denoted \(x^{\mathrm{ZTCF}}(t)\), as the solution of the drift-only system

\[\dot{x}^{\mathrm{ZTCF}}(t) = f\big(x^{\mathrm{ZTCF}}(t)\big), \qquad x^{\mathrm{ZTCF}}(t_{0}) = x_{0},\]

on the same time interval \([t_{0}, t_{f}]\). Counterfactual trajectories of this type have been used for decomposing the golf swing by Nesbit (Nesbit 2005) and Koike (Koike et al. 2019).

By construction:

  • The initial condition is identical to that of the actual swing.
  • All mechanical parameters (masses, inertias, shaft stiffness, etc.) are identical.
  • The only difference is that the torque input is set to zero: \(u(t) \equiv 0\).

Thus \(x^{\mathrm{ZTCF}}(t)\) is the unique trajectory predicted by the model when the system is released from the same initial state but allowed to evolve purely under passive dynamics.

Relationship to Drift and Input Terms

Along the actual trajectory \(x(t)\), the state derivative is

\[\dot{x}(t) = f\big(x(t)\big) + g\big(x(t)\big)\,u(t),\]

while along the ZTCF trajectory \(x^{\mathrm{ZTCF}}(t)\) the derivative is purely

\[\dot{x}^{\mathrm{ZTCF}}(t) = f\big(x^{\mathrm{ZTCF}}(t)\big).\]

The drift vector field \(f(x)\) is invariant with respect to the instantaneous torque input: it depends only on the state and model parameters, not on \(u\). In contrast, the input term \(G(x)u\) vanishes identically when \(u = 0\).

Conceptually, ZTCF isolates the drift dynamics by providing a full trajectory that is generated only by \(f(x)\). The difference between the actual trajectory and its ZTCF counterpart, when interpreted via the equations of motion, captures the incremental effect of the torque input.

The drift–input decomposition and the ZTCF provide the theoretical basis for separating passive and active forces. However, simply defining the trajectory is abstract. To make this operational, we must connect these differential equations to the practical tools of biomechanics—specifically, inverse dynamics—to quantify the specific torque cost of deviating from this passive path.

Using ZTCF With Inverse Dynamics

In practice, we are often given a measured or simulated swing trajectory in terms of kinematics,

\[\big(q(t), \dot{q}(t), \eta(t), \dot{\eta}(t)\big), \qquad t \in [t_{0}, t_{f}],\]

and we obtain the generalized torque vector \(\tau_{\text{total}}(t)\) from inverse dynamics:

\[\tau_{\text{total}}(t) = \text{ID}\big(q(t), \dot{q}(t), \ddot{q}(t), \eta(t), \dot{\eta}(t), \ddot{\eta}(t)\big),\]

where \(\text{ID}(\cdot)\) denotes the inverse dynamics operator for the coupled rigid–flexible model (Featherstone 2008; Spong et al. 2005).

From the equations of motion, the generalized torques can be written as

\[\tau_{\text{total}}(t) = \underbrace{\tau_{\text{drift}}\big(x(t)\big)}_{\text{passive component}} + \underbrace{\tau_{\text{input}}(t)}_{\text{torque-driven component}},\]

where the drift torque is defined by evaluating the passive terms at the actual state:

\[\tau_{\text{drift}}\big(x(t)\big) = \begin{bmatrix} M_{qq}(q,\eta) & M_{q\eta}(q,\eta) \end{bmatrix} a_{\text{drift}}\big(x(t)\big),\]

where \(a_{\text{drift}}(x(t))\) is the full drift acceleration vector, including both rigid and flexible components. Writing the rigid-torque row block explicitly keeps the recoil term \(M_{q\eta}\ddot{\eta}_{\text{drift}}\) visible instead of hiding it behind an undefined shorthand.

Physically, \(\tau_{\text{drift}}\) represents the generalized torque required to sustain the passive acceleration \(a_{\text{drift}}\) (Murray et al. 1994; Spong et al. 2005). Since \(a_{\text{drift}}\) is the system’s natural response to its own internal state (gravity, elasticity, velocity coupling), \(\tau_{\text{drift}}\) captures the ‘inertial cost’ of the system’s current momentum and configuration. Subtracting this cost from the total torque reveals the surplus provided by the input.

The input torque is then given by

\[\tau_{\text{input}}(t) = \tau_{\text{total}}(t) - \tau_{\text{drift}}\big(x(t)\big).\]

These equations provide an algebraically exact decomposition of the total generalized torque into drift and input components within the model.

The ZTCF trajectory is not strictly required to compute this decomposition: evaluating the drift terms \(a_{\text{drift}}(x)\) along the actual trajectory \(x(t)\) is sufficient. However, the ZTCF provides a useful conceptual and computational tool:

  • Conceptually, it is the trajectory that realizes the drift dynamics in isolation.
  • Computationally, simulating \(x^{\mathrm{ZTCF}}(t)\) gives a concrete motion that can be analyzed or visualized alongside the actual swing to illustrate the effect of the torque input.

There is a dynamical implication in this construction. In phases of low velocity (takeaway), the ZTCF is merely one of many possible paths, and the golfer retains high authority to deviate from it. However, as swing speed increases, the passive drift field \(f(x)\) grows energetically while the input authority \(G(x)u\) remains bounded by physiological limits. In this high-energy regime, the ZTCF becomes a useful reference for diagnosing how much of the observed motion is passive versus controlled (Koike et al. 2019). As the Drift-Control Ratio (defined in subsequent work) rises, a growing share of the observed joint acceleration is accounted for by the passive terms, so that the velocity-dependent drift contributes more of the late-swing mechanics than the active control does.

Worked Numerical Example

NoteIllustrative Example

The numbers below are hypothetical values chosen to illustrate the decomposition method. They do not represent real motion-capture measurements from a specific swing.

To make the bookkeeping concrete, consider a hypothetical snapshot during mid-downswing. Suppose the model assigns a signed scalar generalized-torque component, expressed in one declared coordinate and sign convention, of \(\tau_{\text{total}} = 100 \text{ N m}\) at the lead shoulder. If the drift term evaluated at the same state and in the same coordinate is \(\tau_{\text{drift}} = 85 \text{ N m}\), the model’s input term is:

\[\tau_{\text{input}} = \tau_{\text{total}} - \tau_{\text{drift}} = 100 - 85 = 15 \text{ N m}.\]

This arithmetic establishes only a pointwise generalized-torque decomposition for the declared model and coordinate. It does not establish percentages of mechanical load, energetic contribution, physiological effort, or outcome. Mechanical power and work require velocity and a time interval:

\[ P = \tau^\mathsf{T}\dot{q}, \qquad W = \int_{t_0}^{t_1} P(t)\,dt. \]

The input term is a net generalized quantity. It does not identify individual muscle forces, bilateral hand-force allocation, neural intent, or tissue loading; those require additional measurements, physiological models, and an identifiability analysis. The hypothetical numbers therefore illustrate the model’s algebraic partition, not an empirical claim about how a golfer powers or steers a downswing.

Scope and Limitations

The ZTCF is a counterfactual within the model. It answers the question:

“Given the same initial state, declared effective plant, model parameters, and integration horizon, what trajectory does the model predict when its declared generalized-torque input is set to zero?”

It does not claim that such a motion could actually be achieved by a real golfer, nor that the nervous system ever selects “zero torque” as a control policy during a swing. Instead, ZTCF is a mathematical device that:

  • isolates the passive mechanical contribution to the dynamics,
  • provides a baseline against which torque-driven effects can be quantified, and
  • makes the drift–input decomposition explicit and reproducible.

All attribution statements made in this paper are conditional on the mechanical model and the modeling assumptions stated earlier. Within that scope, the decomposition

\[\tau_{\text{total}}(t) = \tau_{\text{drift}}\big(x(t)\big) + \tau_{\text{input}}(t)\]

and the associated ZTCF construction are analytically exact. Outside that scope, their interpretation must be made with care and with explicit reference to model fidelity, parameter uncertainty, and unmodeled physiological effects.

Practical Considerations: ZTCF Identifiability

WarningZTCF Cannot Be Directly Measured From Real Swing Data

A critical practical limitation is that the ZTCF trajectory is not directly observable from real golf swing data. Three identifiability challenges arise:

  1. Muscles always apply some force. A living golfer cannot truly apply zero torque; even passive muscle tone, joint stiffness, and co-contraction produce residual forces. The “zero torque” baseline is a modeling construct, not a physiologically achievable state.

  2. Separating drift from control requires a complete model. To evaluate \(f(x)\) at the measured state, one needs the full inertia matrix \(M(q)\), the Coriolis/centrifugal matrix \(C(q,\dot{q})\), gravity \(g(q)\), and shaft elasticity parameters. Each of these introduces model uncertainty that propagates directly into the ZTCF estimate.

  3. Initial condition sensitivity. Because \(\dot{x}^{\text{ZTCF}} = f(x^{\text{ZTCF}})\) is a nonlinear ODE, small errors in the initial state \((q_0, \dot{q}_0)\) at the moment of ZTCF branching will cause the counterfactual trajectory to diverge exponentially over time. The ZTCF is most reliable over short time horizons (tens of milliseconds) near the branch point.

These challenges mean that ZTCF-based analyses must be validated against simulation data with known ground truth, not directly against raw motion capture. See ZTCF Identifiability Critique for a more detailed treatment.

Quantifying the valid time horizon (Lyapunov-exponent estimate). Linearizing the drift ODE about the nominal trajectory \(\bar x(t)\) gives the variational equation \(\delta \dot x = J_f(\bar x(t))\,\delta x\) with drift Jacobian \(J_f := \partial f/\partial x\). A perturbation then grows at most as \[ \lVert \delta x(t) \rVert \;\lesssim\; \lVert \delta x(0) \rVert \cdot \exp\!\left( \int_{t_0}^{t} \lambda_{\max}^{\mathrm{sym}}(J_f(\bar x(s)))\, ds \right), \] where \(\lambda_{\max}^{\mathrm{sym}}(A) := \lambda_{\max}\!\left(\tfrac{1}{2}(A + A^\top)\right)\) is the symmetric-part maximum eigenvalue — an upper bound on the instantaneous growth rate in the Euclidean norm. For a representative planar double-pendulum downswing model parameterized from marker data (driver, 110 mph clubhead speed, 0.25 s downswing), numerical integration of the variational equation over the nominal trajectory yields a time-averaged \(\bar \lambda \sim 15\)\(30\ \mathrm{s}^{-1}\) during the release phase (roughly the interval \(t \in [0.18, 0.24]\) s). Applying the bound:

horizon \(\bar\lambda = 15\,\mathrm{s^{-1}}\) \(\bar\lambda = 30\,\mathrm{s^{-1}}\)
20 ms \(e^{0.30} \approx 1.35\times\) \(e^{0.60} \approx 1.82\times\)
100 ms \(e^{1.5} \approx 4.5\times\) \(e^{3.0} \approx 20\times\)
250 ms \(e^{3.75} \approx 42\times\) \(e^{7.5} \approx 1800\times\)

Practical conclusion. ZTCF is quantitatively trustworthy for horizons on the order of 20–50 ms from the branch point under typical release-phase Jacobians; at 100 ms, initial-state uncertainty is already amplified by roughly \(5\times\)\(20\times\) and the trajectory should be used only for qualitative insight; across the full 250 ms downswing the exponential envelope is large enough that quantitative ZTCF claims are not defensible without error bars propagated from the state uncertainty. The exact \(\bar\lambda\) for a given model should be recomputed by integrating the variational equation along the specific trajectory of interest; the numbers above are order-of-magnitude, not universal.

Decomposing the Drift

The ZTCF successfully removes the golfer from the equation, but it leaves behind a complex web of passive forces. A swinging club is burdened by both its position (gravity, elasticity) and its speed (centrifugal force, inertia). The ZTCF tells us the total passive tendency, but it lumps these distinct physical phenomena together.

To truly diagnose the mechanical load, we need a sharper instrument—a frozen-coefficient decomposition that can separate the “static” weight of the club from the “dynamic” weight of its motion. This motivates the Zero Velocity Counterfactual.

Zero Velocity Counterfactual (ZVCF)

While the ZTCF successfully isolates the system’s passive dynamics from the golfer’s active input, the passive drift itself remains a composite phenomenon. It aggregates both motion-dependent forces (such as centrifugal, Coriolis, and inertial coupling) and configuration-dependent forces (such as gravity and elastic stiffness). In high-speed motions like the golf swing, velocity-driven terms often obscure the underlying static loads. To fully deconstruct the drift, we require a second analytical slice—one that freezes motion to reveal the forces arising purely from the system’s instantaneous shape.

The Zero Velocity Counterfactual (ZVCF) performs this isolation. By evaluating the system at the same configuration as the actual swing but with all generalized velocities set to zero, it functions as an “analytical tare.” Whereas the ZTCF is a trajectory-level counterfactual that simulates the drift dynamics forward in time, the ZVCF is an instantaneous snapshot. It identifies the passive mechanical forces that arise only from configuration (such as gravity and elastic shaft deformation), stripping away the contributions from inertial, Coriolis, and damping terms.

Definition

Let the actual swing at time \(t\) be characterized by the state \(x(t) \in T\mathcal{Q}\). Locally,

\[x(t) = (q(t), \eta(t), \dot{q}(t), \dot{\eta}(t)).\]

We formally define the Zero Velocity Counterfactual operator using the fiber bundle structure of the state space. Let \(\mathcal{Q}\) be the configuration manifold. The state evolves on the tangent bundle \(T\mathcal{Q}\). Let \(\pi: T\mathcal{Q} \to \mathcal{Q}\) be the canonical projection (bundle map) that maps a state vector to its configuration: \(\pi(q, v) = q\). Let \(\zeta_0: \mathcal{Q} \to T\mathcal{Q}\) be the zero section of the tangent bundle, which embeds the configuration manifold into the state space as the locus of zero velocities: \(\zeta_0(q) = (q, 0)\).

The ZVCF operator \(\mathcal{Z}: T\mathcal{Q} \to T\mathcal{Q}\) is the composition of projection and zero-section embedding: \[ \mathcal{Z}(x) = (\zeta_0 \circ \pi)(x). \] Applied to the state \(x(t) = (q(t), \eta(t), \dot{q}(t), \dot{\eta}(t))\), this yields:

\[ x^{\mathrm{ZVCF}}(t) = \mathcal{Z}(x(t)) = (q(t), \eta(t), 0, 0). \tag{1}\]

Physically, this operation “freezes” the system in its current configuration. It is a projection onto the submanifold of static states.

Evaluating the equations of motion at this zero-velocity state yields the ZVCF generalized torque:

\[\tau_{\mathrm{ZVCF}}(t) = \text{ID}\!\left(q(t),\, 0,\, \eta(t),\, 0,\, \ddot{q}^{\mathrm{ZVCF}}(t),\, \ddot{\eta}^{\mathrm{ZVCF}}(t)\right)\]

where the ZVCF accelerations are computed from the passive terms of the dynamics evaluated at zero velocity:

\[\begin{bmatrix} \ddot{q}^{\mathrm{ZVCF}} \\[0.2em] \ddot{\eta}^{\mathrm{ZVCF}} \end{bmatrix} = a_{\text{drift}}\big(q(t),0,\eta(t),0\big).\]

Intuitively, \(\tau_{\mathrm{ZVCF}}(t)\) represents the generalized torques the model predicts at that configuration if:

  • the system were held momentarily at rest,
  • the shaft retained its instantaneous deformation \(\eta(t)\),
  • but no velocity-dependent forces were present.

What ZVCF Isolates

Evaluating the drift terms at zero velocity eliminates:

  • Coriolis and centrifugal forces (all terms proportional to \(\dot{q}\) or \(\dot{\eta}\)),
  • velocity-proportional damping in the shaft,
  • any passive joint damping,
  • all torque input contributions.

What remains in \(\tau_{\mathrm{ZVCF}}(t)\) are:

  • gravitational torques \(g(q)\),
  • elastic shaft restoring forces \(K_s \eta(t)\),
  • configuration-dependent components of the multibody dynamics (e.g., coupling due to mass distribution),
  • geometric projection effects (due to Jacobians and inertia coupling).

Thus the ZVCF isolates forces arising purely from the system’s instantaneous shape.

Relation to ZTCF and Drift–Input Decomposition

ZVCF and ZTCF play complementary roles:

  • ZTCF (trajectory-level) removes torque input but preserves velocity, allowing inertial, history-dependent drift forces to act naturally.
  • ZVCF (instantaneous) removes all velocity contributions, freezing the system in place to expose purely configuration-dependent loads.

Within the drift–input decomposition,

\[\tau_{\mathrm{total}}(t) = \tau_{\mathrm{drift}}(x(t)) + \tau_{\mathrm{input}}(t),\]

the ZVCF satisfies

\[\tau_{\mathrm{ZVCF}}(t) = \tau_{\mathrm{drift}}(q(t),0,\eta(t),0),\]

so ZVCF should be viewed as the zero-velocity slice of the drift torque field.

The full drift torque can be written as

\[\tau_{\text{drift}}(x(t)) = \tau_{\mathrm{ZVCF}}(t) + \tau_{\mathrm{vel.\,drift}}(t),\]

where \(\tau_{\mathrm{vel.\,drift}}(t)\) contains all velocity-dependent passive forces (Coriolis, centrifugal, shaft damping, etc.).

Interpretational Cautions

The ZVCF is not intended to represent a physically realizable motion:

  • A real golfer cannot instantaneously set all joint and shaft velocities to zero while holding the same configuration.
  • The system would generally not remain in equilibrium under \(\tau_{\mathrm{ZVCF}}(t)\); internal and external forces would cause instantaneous acceleration.

Instead, ZVCF is a mathematical probe of the model used to answer:

“At this exact configuration, ignoring all motion, what passive torques does the system geometry and shaft deformation impose?”

This makes it especially useful for:

  • quantifying shaft bending loads independent of motion history,
  • separating gravity from inertial effects,
  • identifying configuration-driven mechanical biases (e.g., favored directions of passive motion),
  • analyzing torque effectiveness by comparing total torque to ZVCF and ZTCF baselines.
ImportantWhy Configuration-Dependent Forces Must Be Subtracted

The ZVCF isolates configuration-dependent forces—gravity and elastic stiffness—not because they dominate the downswing (they don’t), but because they must be algebraically separated to measure velocity-dependent terms accurately. Think of ZVCF as a “tare weight” operation on a scale: to measure the true weight of velocity-dependent forces (Coriolis, centrifugal, shaft damping), you must first zero out the static load (gravity, elasticity). Without this mathematical baseline, you cannot distinguish “Geometric Stiffness” (a velocity-dependent re-stiffening effect) from “Elastic Stiffness” (the shaft’s intrinsic material property). The decomposition thus has mathematical necessity: configuration-dependent and velocity-dependent drift forces are structurally distinct in the equations of motion, and only by computing ZVCF can we isolate each category with precision.

ZVCF therefore complements ZTCF in building a full picture of drift forces across both configuration and velocity dimensions.

We have now constructed two counterfactual baselines: the ZTCF for the declared zero-input evolution, and the ZVCF for configuration loads at declared zero velocity. Their equation-level interpretation requires the autonomous term to have no direct dependence on the declared instantaneous input. If impedance, inertia, or another retained plant property changes with that input, the model boundary must be expanded or the quantity frozen explicitly; algebra alone does not supply causal independence.

But is this separation scientifically valid? A skeptic might argue that in a biological system, the “passive” plant changes when the “active” input changes (e.g., via stiffness modulation). To defend our counterfactuals, we must prove the property of Drift Invariance—showing that the passive drift field is structurally immune to the active input. This is the subject of the next part of this series.

References

Featherstone, Roy. 2008. Rigid Body Dynamics Algorithms. Springer. https://doi.org/10.1007/978-1-4899-7560-7.
Isidori, Alberto. 1995. Nonlinear Control Systems. Springer.
Koike, Sekiya, Tatsuya Ishikawa, Alexander P. Willmott, and Neil E. Bezodis. 2019. “Dynamic Contribution Analysis of the Golf Swing.” Sports Biomechanics.
Murray, Richard M., Zexiang Li, and S. Shankar Sastry. 1994. A Mathematical Introduction to Robotic Manipulation. CRC Press.
Nesbit, Steven M. 2005. “A Three Dimensional Kinematic and Kinetic Study of the Golf Swing.” Journal of Sports Science and Medicine.
Spong, Mark W., Seth Hutchinson, and M. Vidyasagar. 2005. Robot Modeling and Control. Wiley.