Page 1 of 1

Compute Initial States (CMC)

Posted: Sat Sep 14, 2019 7:35 am
by hamidreza1372
Dear all

I have a few question about implementing CMC algorithm in C++ and I would be grateful if you could help me .
computeInitialStates() function (https://github.com/opensim-org/opensim- ... C.cpp#L507) has obtainActuatorEquilibrium() function inside, which description in the source code says: "Obtain actuator equilibrium. A series of long (e.g., 200 msec) integrations are performed to allow time-dependent actuators forces to reach equilibrium values.".
Now these are my question:
1-It is mentioned in the Opensim documentation that " To compute viable starting muscle states, CMC is applied to the first 0.030 seconds of the desired movement", but in the source file, dtReal=.200 is passed to the computeInitialStates() function. what is the difference between these 2 times (.200 and .03)?
2- Whys is obtainActuatorEquilibrium() function repeated 3 times in the computeInitialStates() function?
3- What if our simulation time is less than dtReal=.200 ?
4- Finally I really appreciate if you could give a brief explanation about how computeInitialStates() works

Sincerely
Hamidreza