Specifications

100
The final step is to modify the calibration study to use the calibration drivers:
// A new calibration study
// A new calibration study
AnyBodyCalibrationStudy CalibrationStudy = {
AnyFolder &Model = Main.ArmModel;
AnyFolder &Drivers = .CalibrationDrivers;
nStep = 1;
}; // End of study
What we have now is a study that uses the model together with two static drivers for calibration of the
muscles, and a study that uses the model with the previous set of dynamic drivers. If you run the
CalibrationStudy first, the system will adjust the tendon lengths and remember the values for the
subsequent run of the AnyBodyStudy. Running this sequence of two studies reveals that there is no more
passive force present in the BicepsLong muscle because it has now been calibrated in a more natural
position.
The final issue of this tutorial is: How can we handle calibration of different muscles in different positions?
For instance, it might be reasonable to believe that the elbow extensors should be calibrated in a different
elbow position than the elbow flexors. How can we accomplish that? Well a closer investigation of the
calibration study listed above can actually give us a clue. The study contains the following two lines:
AnyFolder &Model = Main.ArmModel;
AnyFolder &Drivers = Main.CalibrationDrivers;
This tells us that a study manipulates the objects mentioned inside the study folder, in this case the
ArmModel and the CalibrationDrivers. Perhaps you remember that we took the drivers out of the ArmModel,
so that we could refer separately to them in the study? We did this to be able to not refer to the movement
drivers when we run the calibration study and vice versa. Similarly, if we want to calibrate a subset of the
muscles, we simply make it possible to just refer to precisely this subset in the study and leave the others
out.
Let us create a new muscle model for TricepsLong and calibrate that in another position.
}; // End of BicepsLongModel
AnyMuscleModel3E TricepsLongModel = {
AnyVar PCSA = 15; // Physiological cross sectional area [cm^2]
F0= PCSA*30; // Presuming a maximum muscle stress of 30 N/cm^2
Lfbar= 0.194; //Optimum fiber length [m]
Lt0 = 0.35; //First guess of tendon slack length [m]
Gammabar = 2.0*(pi/180); //Pennation angle converted to radians
Epsilonbar = 0.053; //Tendon strain at F0
K1 = 10.0; //Slow twitch factor
K2 = 0.0; //Fast twitch factor(zero when no info available)
Fcfast = 0.4; //Percentage of fast to slow factor
Jt = 3.0; //Shape parameter for the tendon stiffness
Jpe = 3.0; //Shape parameter for the parallel stiffness
PEFactor = 5.0; //Parameter for influence of parallel stiffness
}; // End of TricepsLongModel
AnyViaPointMuscle TricepsLong = {
AnyMuscleModel &MusMdl = .TricpesLongModel;
AnyRefNode &Org = ..GlobalRef.TricpesLong;
AnyRefNode &Ins = ..Segs.ForeArmArm.Tricpes;
AnyDrawViaPointMuscle DrwMus = {};
};