DYNAMIC SYSTEMS

Static vs. Dynamic. A dynamic model accounts for time-dependent changes in the state of a system, while a static (or steady-state) model assumes the system is in equilibrium and does not vary over time—in other words, it is time-invariant.

Dynamic models are typically represented using differential equations. In mathematics, a differential equation relates one or more unknown functions to their derivatives. A derivative is a fundamental concept that quantifies how a function changes in response to changes in its input.

In our case, we are interested in how a variable evolves over time. This means we are specifically concerned with the time derivative of a variable. We write the derivative term as:

ddty(t)\frac{d}{dt}y(t)

This is read as: "the derivative of y with respect to time (t)." Do not worry too much about the notation or mathematics just yet. The important takeaway is that differential equations, those involving derivatives, help us describe how systems change over time, and thus are key to building dynamic models.

For example, a simple model such as:

ddty(t)=3\frac{d}{dt}y(t)=3

describes a system where a property (y) increases at a constant rate of 3.

However, one of the most important differential equations in sport science is:

τddty(t)+y(t)=x(t)\tau\frac{d}{dt}y(t)+y(t)=x(t)

This equation describes a system that reacts exponentially to changes in the input (x(t)). The parameter τ\tau is the time constant of the system—something we already encountered in Module 3! This equation is one of the most versatile equations in your modelling toolbox 🛠️, believe me. If you get the behaviour of these equations, you can model a wide range of systems, such as: the oxygen consumption dynamics during generic exercise, the supercompensation principle and Banister model, the exponentially weighted moving averages, a resistance-capacitance circuit, and on and on and on.


I ORDER DYNAMIC SYSTEMS

We introduce here the first and second order dynamic models.

The first-order will let you understand the importance of the time-characteristics of these systems. The second-order will let you understand the importance of the inertia, stiffness, and damping of these systems.

The VO₂ Kinetics Model (Dynamic Version)

It is highly recommended to review the static version of the VO₂ model in Module 3 before approaching this dynamic version.

The simplest dynamic formulation of the VO₂ kinetics model is:

τddtVO2(t)+VO2(t)=VO2SS(t)\tau \frac{d}{dt} VO_2(t) + VO_2(t) = VO_{2SS}(t)

This equation describes how the actual oxygen uptake VO2(t)VO_2(t) responds over time to a steady-state target VO2SS(t)VO_{2SS}(t).

The steady-state oxygen uptake is defined as:

VO2SS(t)=P(t)ϵ+VO2RESVO_{2SS}(t) = P(t) \cdot \epsilon + VO_{2RES}

Where:

  • P(t)P(t) is the power output at time tt
  • ϵ\epsilon is the oxygen cost per unit of power (e.g., in mL·W⁻¹·min⁻¹)
  • VO2RESVO_{2RES} is the resting or baseline oxygen consumption

Substituting into the first equation, we get:

τddtVO2(t)+VO2(t)=P(t)ϵ+VO2RES\tau \frac{d}{dt} VO_2(t) + VO_2(t) = P(t) \cdot \epsilon + VO_{2RES}

Here, you can recognize the derivative operator (rate of change) and the time constant τ\tau, which governs how fast the VO₂ adapts.

To implement this model in a spreadsheet or software, we approximate the derivative using a finite difference method:

ddtVO2(t)VO2,k+1VO2,ktk+1tk\frac{d}{dt} VO_2(t) \approx \frac{VO_{2,k+1} - VO_{2,k}}{t_{k+1} - t_k}

Substituting into the dynamic equation:

τVO2,k+1VO2,ktk+1tk+VO2,k=Pkϵ+VO2RES\tau \cdot \frac{VO_{2,k+1} - VO_{2,k}}{t_{k+1} - t_k} + VO_{2,k} = P_k \cdot \epsilon + VO_{2RES}

Now solve for VO2,k+1VO_{2,k+1}:

VO2,k+1=VO2,k+tk+1tkτ(Pkϵ+VO2RESVO2,k)VO_{2,k+1} = VO_{2,k} + \frac{t_{k+1} - t_k}{\tau} \left( P_k \cdot \epsilon + VO_{2RES} - VO_{2,k} \right)

This recursive equation lets you compute oxygen uptake step-by-step over time based on power data. This dynamic model allows you to simulate the transient response of oxygen consumption during exercise. It's especially useful for interval training or transitions between work rates. Once implemented in a spreadsheet, you can model and visualize how VO₂ behaves in response to different power profiles over time.

VO₂ Resting (mlO₂/min): 350

Select Exercise Protocol:

VO₂ Kinetics

Power Profile

🚨Danger

Some people argue that VO₂ should be written with a dot above the "V", to emphasize that it represents a rate or flux (volume per time). 🙄

So, ideally, according to them, you should write:

VO2V˙O2VO_2 \rightarrow \dot{V}O_2

In this course, you can call it VO2VO_2, xx, yy, or zz ... I really don't mind. Just make sure you understand what it represents.


II ORDER DYNAMIC SYSTEMS

The mass-spring-damping system

One of the main reasons we introduce second-order dynamic models in sports science is because they naturally derive from Newton's second law of motion — the foundation of classical mechanics. You may already be familiar with the general form of this law:

ma(t)=i=1nFi(t)m \cdot a(t) = \sum_{i=1}^n F_i(t)

This tells us that an object with mass mm will experience an acceleration a(t)a(t) that is proportional to the sum of the n external forces F acting on it. Since acceleration is the second derivative of position, we can rewrite this more formally as:

ddtx(t)=v(t)\frac{d}{dt}x(t) = v(t)
d2dt2x(t)=a(t)\frac{d^2}{dt^2}x(t) = a(t)

So Newton's law becomes:

md2dt2x(t)=i=1nFi(t)m \cdot \frac{d^2}{dt^2}x(t) = \sum_{i=1}^n F_i(t)

In many physical systems, especially those involving movement or impact, we observe three key mechanical properties: inertia, stiffness, and damping. These are particularly relevant in sports settings — for example in the dynamics of skis, rackets, bicycles, and other equipment.

Each of these effects can be captured by a parameter in the classic mass-spring-damper system:

  • Inertia is represented by the mass m.
  • Stiffness corresponds to a restoring force proportional to the displacement x.
  • Damping corresponds to a resistive force proportional to velocity v.

A typical equation of motion for such a system — where a mass is connected to the ground through a spring and a damper — is:

md2dt2x(t)+Cddtx(t)+Kx(t)=F(t)m \cdot \frac{d^2}{dt^2}x(t) + C \cdot \frac{d}{dt}x(t) + K \cdot x(t) = F(t)

Here, F(t) is a single generic external force applied to the system.
This type of equation is useful when modeling human biomechanics, such as during running, or in this case, for a mountain bike suspension system. In that system, changes in ground elevation drive corresponding changes in the rider's vertical position.

Let's define:

  • x1x_1: the vertical position of the rider (the mass),
  • x2x_2: the position of the ground (known and imposed),
  • K: stiffness of the suspension,
  • C: damping coefficient,
  • L₀: the equilibrium length of the suspension.

Modelling a mountain bike suspension

The forces acting on the rider include:

  • Spring force: depends on displacement between rider and ground,
  • Damping force: depends on the relative velocity between rider and ground,
  • Gravity: acts downward on the rider's mass.

We write the equation of motion as:

mddtv1(t)+C(v1(t)v2(t))+K((x1(t)L0)x2(t))=mgm \cdot \frac{d}{dt}v_1(t) + C \cdot (v_1(t)-v_2(t)) + K\cdot ((x_1(t)-L_0)-x_2(t)) = -m\cdot g

Rearranging for acceleration:

ddtv1(t)=1m(C(v2(t)v1(t))+K(x2(t)(x1(t)L0))mg)\frac{d}{dt}v_1(t) = \frac{1}{m}(C \cdot (v_2(t)-v_1(t)) + K \cdot (x_2(t) - (x_1(t)-L_0)) - m\cdot g)

To use this model in a spreadsheet or code, we discretize the time derivative using a finite difference approximation:

ddtv(t)vk+1vktk+1tk\frac{d}{dt}v(t) \approx \frac{v_{k+1} - v_k}{t_{k+1} - t_k}

Substituting this into the equation:

v1,k+1v1,ktk+1tk=1m(C(v2,kv1,k)+K(x2,k(x1,kL0))mg)\frac{v_{1,k+1} - v_{1,k}}{t_{k+1} - t_k} = \frac{1}{m}(C \cdot (v_{2,k} - v_{1,k}) + K \cdot (x_{2,k} - (x_{1,k} - L_0)) - m \cdot g)

And solving for v1,k+1v_{1,k+1}:

v1,k+1=(C(v2,kv1,k)+K(x2,k(x1,kL0))mg)Δtm+v1,kv_{1,k+1} = \left( C \cdot (v_{2,k} - v_{1,k}) + K \cdot \left(x_{2,k} - (x_{1,k} - L_0)\right) - mg \right) \cdot \frac{\Delta t}{m} + v_{1,k}

Since x2x_2 is imposed by the terrain, we can compute v2v_2 directly from it. Then, starting from an initial condition for x1x_1 and v1v_1 at time step k = 0, we can simulate the system step-by-step.

Try it yourself!
Use the sliders to adjust the parameters and see how the model responds to changes in mass, stiffness, damping, or terrain input.

Parameter selection

Fixed: g = 9.81 m/s², Δt = 10 ms, L0 = 0.8 m

Vertical displacements

Velocities

💡Tip

A key concept in mass-spring-damper systems is the undamped angular frequency or natural frequency, which is given by:

ω0=K/m\omega_0 = \sqrt{K/m}

This is measured in radians per second. To convert it to frequency in hertz (f), use:

f=ω02πf = \frac{\omega_0}{2\pi}

Try computing the natural frequency using the parameters you've chosen.
What happens to the oscillations of the saddle if the ground vibrations are close to this frequency?
Have you ever felt something similar while riding?

💡Spreadsheet

You can find the data and models at this link.


Equation of Motion for Locomotor Sports

Equation of motion, the second-order differential equations introduced previously, form the basis for modeling the dynamics of many locomotor sports such as cycling, cross-country skiing, and running.

In cycling, the primary forces acting on the system (cyclist and bicycle) are:

  • FP(t)F_P(t): Propulsive force generated by the cyclist
  • FW(t)F_W(t): Aerodynamic drag
  • FR(t)F_R(t): Rolling resistance
  • FG(t)F_G(t): Gravitational force due to slope

The dynamic model becomes:

md2dt2x(t)=FP(t)FW(t)FR(t)FG(t)m \cdot \frac{d^2}{dt^2}x(t) = F_P(t) - F_W(t) - F_R(t) - F_G(t)

In cycling, we usually monitor effort and performance through power, not force. Power is defined as the product of force and velocity:

P(t)=F(t)v(t)P(t) = F(t) \cdot v(t)

Multiplying both sides of the equation of motion by v(t)v(t) gives:

v(t)mddtv(t)=v(t)FP(t)v(t)FW(t)v(t)FR(t)v(t)FG(t)v(t) \cdot m \cdot \frac{d}{dt}v(t) = v(t) \cdot F_P(t) - v(t) \cdot F_W(t) - v(t) \cdot F_R(t) - v(t) \cdot F_G(t)

This equation expresses how the power produced by the cyclist is used to accelerate the system and overcome resistive forces.

We now replace each force on the right-hand side with its physical expression:

v(t)mddtv(t)=P(t)v(t)12ρCDAv2(t)v(t)mgcos(β)Crrv(t)mgsin(β)v(t) \cdot m \cdot \frac{d}{dt}v(t) = P(t) - v(t) \cdot \frac{1}{2} \rho \cdot C_{DA} \cdot v^2(t) - v(t) \cdot m g \cos(\beta) \cdot C_{rr} - v(t) \cdot m g \sin(\beta)

Where:

  • ρ\rho is the air density
  • CDAC_{DA} is the aerodynamic drag coefficient times frontal area
  • CrrC_{rr} is the coefficient of rolling resistance
  • β\beta is the road gradient (in radians)
  • gg is gravitational acceleration (9.81 m/s²)

To use this model in a spreadsheet or in code, we discretize the time derivative using a finite difference approximation:

ddtv(t)vk+1vktk+1tk\frac{d}{dt}v(t) \approx \frac{v_{k+1} - v_k}{t_{k+1} - t_k}

Substituting into the equation:

vkmvk+1vktk+1tk=Pkvk12ρCDAvk2vkmgcos(β)Crrvkmgsin(β)v_k \cdot m \cdot \frac{v_{k+1} - v_k}{t_{k+1} - t_k} = P_k - v_k \cdot \frac{1}{2} \rho \cdot C_{DA} \cdot v_k^2 - v_k \cdot m g \cos(\beta) \cdot C_{rr} - v_k \cdot m g \sin(\beta)

Solving for vk+1v_{k+1}:

vk+1=vk+tk+1tkmvk[Pk12ρCDAvk3mgcos(β)Crrvkmgsin(β)vk]v_{k+1} = v_k + \frac{t_{k+1} - t_k}{m \cdot v_k} \left[ P_k - \frac{1}{2} \rho \cdot C_{DA} \cdot v_k^3 - m g \cos(\beta) \cdot C_{rr} \cdot v_k - m g \sin(\beta) \cdot v_k \right]

And of course we do the same to find the distance:

xk+1=xk+(tk+1tk)vkx_{k+1} = x_k + (t_{k+1} - t_k) \cdot v_k

These recursive equations allows you to compute the velocity and distance at the next time step, based on the power input and environmental parameters.

⚠️Warning

Please notice that the measurement unit of the road gradient β\beta is radians, which is not commonly used in every-day conversations, where the road gradient is mostly discussed in terms of %. To convert the slope in radians to the slope in % you can do:

Slope%=100tan(β)Slope_{\%} = 100 \cdot tan(\beta)

This dynamic model based on Newton's second law gives you a useful tool for simulating motion in sports like cycling. By using power instead of force and discretizing the equations, you can build accurate performance simulations in spreadsheets or programming environments.

🚴 Bicycle Locomotion Simulation

Fixed: g = 9.81 m/s², Initial Distance = 0 m, Simulation Duration = 60 s, Time Step = 0.1 s

Velocity vs. Time

Distance vs. Time

📚Biblio

Equation of motion of a cyclist, by Di Prampero et al, 1979 is a must-read paper for the sport scientists interested in locomotor sports. I also recommend reading the paper by Olds, 2001 and the paper by Jeukendrup and Martin. If you are interested in the discussion of the equation of motion in the context of the cycling hour record, then you can read the paper by Bassett et al. 1999. In this last paper, the authors also discuss models of performance (VO2max) against altitude.


Checkout

Well done, you were able to complete the fourth module of this course.

👮🏻‍♂️Checkpoint

At the end of Module-4 you should be able to reply to these questions with confidence:

  1. What is the fundamental difference between static and dynamic models, and how do differential equations help describe time-dependent changes in physiological systems?
  2. What role does the time constant τ play in the dynamic VO₂ kinetics model, and how does the finite difference method allow us to implement these models computationally?
  3. How do mass, stiffness, and damping parameters affect the behavior of second-order systems like mountain bike suspension, and what is the significance of natural frequency?
  4. How does Newton's second law form the basis for locomotor sports modeling, and why do we convert from force-based to power-based equations in cycling dynamics?
Previous Module
Next Module