Hi Nick and Ross,
I've run a series of other optimizations with a few different settings and I think I've gotten some better results for my model. After getting better velocity outputs with the minimum activation bound set to 0.01, I then tried changing the fiber damping coefficient. First I increased it from the default of 0.01, to 0.05. Turns out, this is actually worse for the fiber velocity output. This was a little counterintuitive to me, but maybe makes more sense to others.
Then I decreased the fiber damping coefficient to 0.005 and it is way better:
I think these differences between the fiber length derivative and fiber velocity (~0.1 m/s) are more in the range of what Ross was finding with his results. As Ross suggested, it does seem to often happen around toe off, but not always. Also, I have yet to notice any negative fiber force outputs from my optimizations, at least nothing that I saw from warnings after convergence.
So it seems that adjusting the minimum activation bound and fiber damping coefficient help resolve this issue - more or less. I have not tried these muscle model settings out with other speeds or conditions yet. I may try to build out some code to calculate the fiber velocity analytically from the muscle states, as Ross suggested earlier, to see if there are any obvious pinch points with these peaks. I can report back if I notice anything interesting from that.
For now, I'm still thinking that using the derivative of fiber length will get me more reliable results for input into my fiber work calculations, and so I may stick with that approach going forward.
Thanks for the help and input with this issue.
Russell
Fiber Velocity Outputs
- Ross Miller
- Posts: 372
- Joined: Tue Sep 22, 2009 2:02 pm
Re: Fiber Velocity Outputs
I think this has to be coming from "inverting the force-velocity relationship" which is a classic numerical problem in traditional forward dynamics (and also here when computing Vcc):
Fcc = Fmax*Act*FL*FV
If Fcc/(Fmax*FL) >> Act, you will get a very large value when calculating FV which will equate to a very fast eccentric Vcc. So another thing to check might be if CC length is really long or really short (relative to optimal length) when the spikes are happening. In my model I made some adjustments to the original Lopt and Lslack values so that the model's torque-angle profiles resembled some dynamometer data (Anderson et al., 2007; great paper). Normally I leave "<active_force_width_scale>" at its default value of 1.0 but for the biarticular muscles I increase it to 1.5 because they tend to go through larger ROMs.
If FL is not small when the spikes are happening, then it probably is the damping. CC damping would look like this:
Fcc = Fmax*Act*FL*FV - d*Vcc
It makes sense to me that increasing d made the problem worse in Russell's simulation: d is positive and Vcc is positive for lengthening, so more damping will make Fcc even bigger relative to Act. Similarly if Vcc is negative and Fcc is small, you could get FV << 0 which will give very fast concentric Vcc.
Ross
https://www.sciencedirect.com/science/a ... 9007001431
Fcc = Fmax*Act*FL*FV
If Fcc/(Fmax*FL) >> Act, you will get a very large value when calculating FV which will equate to a very fast eccentric Vcc. So another thing to check might be if CC length is really long or really short (relative to optimal length) when the spikes are happening. In my model I made some adjustments to the original Lopt and Lslack values so that the model's torque-angle profiles resembled some dynamometer data (Anderson et al., 2007; great paper). Normally I leave "<active_force_width_scale>" at its default value of 1.0 but for the biarticular muscles I increase it to 1.5 because they tend to go through larger ROMs.
If FL is not small when the spikes are happening, then it probably is the damping. CC damping would look like this:
Fcc = Fmax*Act*FL*FV - d*Vcc
It makes sense to me that increasing d made the problem worse in Russell's simulation: d is positive and Vcc is positive for lengthening, so more damping will make Fcc even bigger relative to Act. Similarly if Vcc is negative and Fcc is small, you could get FV << 0 which will give very fast concentric Vcc.
Ross
https://www.sciencedirect.com/science/a ... 9007001431
- Russell Johnson
- Posts: 14
- Joined: Sun Dec 23, 2012 5:10 pm
Re: Fiber Velocity Outputs
Hi Ross-
Thanks for the explanation, makes a lot of sense.
I had a figure in one of my earlier posts with the CC length, and it doesn't seem to be happening at minimums for the CC length, but it could be some combination of CC length, its rate of change, and the low activation. I'm still curious to look further into the calculation of the velocity analytically for this model - if for nothing else than as an exercise.
The note about the active force width scale is a good one, thanks.
Russell
Thanks for the explanation, makes a lot of sense.
I had a figure in one of my earlier posts with the CC length, and it doesn't seem to be happening at minimums for the CC length, but it could be some combination of CC length, its rate of change, and the low activation. I'm still curious to look further into the calculation of the velocity analytically for this model - if for nothing else than as an exercise.
The note about the active force width scale is a good one, thanks.
Russell