-
Notifications
You must be signed in to change notification settings - Fork 50
Pedal theory part 2 (in work)
A kinetic model of the foot and pedal is depicted below

The foot is modeled as a second order system. It has two masses,
In total, we define:
Collecting all the forces gives us:
The control-loop objective is to control the pedal position such, that (a) it follows the user defined force-travel curve and (b) the force response is fast, but does not start to oscillate.
Collecting all the forces gives:
Solving for the pedal force:
For the sake of simplicity we set
The objective is to make the pedal force

From the above model we see, that moving positive in
For easier parameterization, lets define the constant
Where
.
Lets try simulate a passive pedal first. A python script to simulate the passive pedal can be found here.
In the simulation, at
The left side plots show the dynamic states of the pedal, whilst the right hand side plot shows the pedals force-travel curve and the force breakdown

In the first plot, one can see a slight difference between the user induced travel and the actual pedal travel at steady state, e.g. at 0.75s. This is caused by the foot model spring beeing slightly compressed. One can image, that in real life, applying some travel to the leg, will likewise result in some travel loss due to foot compression.
A Python script to simulate the closed-loop response can be found here.
The script simulates the dynamic model of the foot and includes the PID interaction of the pedal. The top right plot shows the target force-travel curve parameterized.
The top left plot shows the foot/pedal position over time.
The middle right plot shows the forces, whereas
In the begining of the simulation, the pedal/foot is at 0m and 0N steady state. After 0.2s, the user applies a fixed foot presure of 500N, ultimately causing a position, velocity and acceleration change by the FFB pedal.
The simulation takes into account the foot parameters
Assuming no feedback loop, meaning all PID parameters are zero, we can see the foot response model. The user applies some force, resulting in a compression of the foot. The foot spring model is gets loaded and the compression builds up over time.
Please find the different entries on the right hand side.