Compute Initial States (CMC)

Provide easy-to-use, extensible software for modeling, simulating, controlling, and analyzing the neuromusculoskeletal system.
POST REPLY
User avatar
Hamidreza Aftabi
Posts: 9
Joined: Mon Oct 08, 2018 12:09 pm

Compute Initial States (CMC)

Post by Hamidreza Aftabi » Sat Sep 14, 2019 7:35 am

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

Tags:

POST REPLY