[38ba34]: / Application / Beta / IndexFinger_JohnWu / IndexFinger_JohnWu.Main.any

Download this file

105 lines (79 with data), 3.0 kB

#include "../libdef.any"

/** 
 Index Finger Model
 Developed by John Z. Wu (NIOSH, Morgantown, WV 26505, USA)
 Last revision: September, 2008.

 Detailed model information: 
 Wu JZ, An KN, Cutlip RG, Krajnak K, Welcome D, Dong RG.
 Analysis of musculoskeletal loading in an index finger during tapping.
 Journal of Biomechanics.2008.41(3):668-76.



 May 2010
 Modified by AnyBody Technology (sc) to follow the standard model structure:
 - RunApplication introduced
 - Study syntax updated for new recruitment solver
 The results may differ from the ones published in the paper due to the new recruitment solver.
*/
Main = {
  
  // Include an operation sequence to run all required steps of your application (see Operations tab)
    #include "Model\RunApplication.any"

 
  // The actual body model goes in this folder
  AnyFolder IndexModel = {
    
    #include "Model/Index_parameters.any"
    
    #include "Model/Index_metacarpal.any"
    
    #include "Model/Index_segments.any"
    
    #include "Model/Index_joints.any"
    
    #include "Model/Index_muscles_2.any"

    #include "Model/Index_forces.any"
    
  }; // IndexModel
     
    #include "Model/Index_drivers.any"

//  
  AnyFolder CalibrationDrivers = {    
    //---------------------------------
      AnyKinEqSimpleDriver MCPCali = {
      AnyUniversalJoint &Jnts = Main.IndexModel.Jnts.MCP;
          DriverPos = {0, -(11.5/180)*pi};
          DriverVel = {0, 0};
      //    (-abduction/+adduction, +flextion/-externsion)
      Reaction.Type = {Off,Off};
    }; // MP driver
    //---------------------------------  
      AnyKinEqSimpleDriver PIPCali = {
      AnyRevoluteJoint &Jnts = Main.IndexModel.Jnts.PIP;        
          DriverPos = {-(28.5/180)*pi};
          DriverVel = {0};
      Reaction.Type = {Off};
    }; // PIP driver
    //---------------------------------  
      AnyKinEqSimpleDriver DIPCali = {
      AnyRevoluteJoint &Jnts = Main.IndexModel.Jnts.DIP;
          DriverPos = {-(13.6/180)*pi};
          DriverVel = {0};
      Reaction.Type = {Off};
    }; // DIP driver
  };  //CalibrationDrivers
  
  AnyBodyCalibrationStudy Calibration = 
  {
    AnyFolder &Model = Main.IndexModel;
    AnyFolder &Drivers = Main.CalibrationDrivers;
    
    tStart = 0;
    tEnd = 0.240;
    nStep = 1;
  };
  
  AnyBodyStudy Study = {
    AnyFolder &Model = Main.IndexModel;
    AnyFolder &Drivers = Main.Drivers;
    AnyFolder &Measurements = Main.Measurements;
    
    InverseDynamics.Criterion.Type = MR_MinMaxStrict;
    //    RecruitmentSolver = MinMaxSimplex;
    //    RecruitmentSolver = MinMaxOOSolSimplex;
    //    RecruitmentSolver = MinMaxOOSolQP;
    //    RecruitmentLpPenalty =1000.0;
    //    RecruitmentQpPenalty=1000.0;
    Gravity = {0.0, -9.81, 0.0};
    nStep = 40;
    tStart = 0;
    tEnd = 0.240;
    //MuscleEliminationTol = 1e-3;
    
    #include "Model/Output.any"
    
  }; //AnyBodyStudy
  
};  // Main