opensim-org / opensim-core

SimTK OpenSim C++ libraries and command-line applications, and Java/Python wrapping.
https://opensim.stanford.edu
Apache License 2.0
801 stars 324 forks source link

Improving `DegrooteFregly2016Muscle` active fiber force-length curve #3912

Open mrrezaie opened 2 months ago

mrrezaie commented 2 months ago

Hi, I noticed that the active fiber force-length curve in OpenSim DegrooteFregly2016Muscle does not match the Millard2012EquilibriumMuscle; the later one is wider, the max force is at optimal fiber force, and it matches the experimental data very well (Link). I'm also familiar with the active_force_width_scale method, but it expands the left side more the the right side.

I engaged in some curve fitting to improve the parameters, and this is the result: image

And this is the peak: image

As can be seen, the optimized curve matches the Millard curve very well, and the peak value is exactly at the optimal fiber length. I'm sharing the parameters here:

b11 = 0.72593788
b21 = 1.01662509
b31 = 0.14822035
b41 = 0.07999036
b12 = 0.48117123
b22 = 0.68465555
b32 = 0.004977
b42 = 0.17908455
b13 = 0.28468675
b23 = 1.33670321
b33 = 0.4310037
b43 =-0.10840583

Hope this helps.