// This is a very simple model for demonstration of muscle modeling Main = { AnyFolder MyModel = { // Global Reference Frame AnyFixedRefFrame GlobalRef = { AnyDrawRefFrame drw = { RGB = {1,0,0}; }; AnyRefNode M1Origin = { sRel = {0.0, 0.1, 0}; }; }; // Global reference frame // Define one simple segment AnySeg Arm = { r0 = {0.500000, 0.000000, 0.000000}; Mass = 1.000000; Jii = {0.100000, 1.000000, 1.000000}*0.03; AnyRefNode Jnt = { sRel = {-0.5, 0.0, 0}; }; AnyRefNode M1Insertion = { sRel = {0.0, 0.1, 0}; }; AnyDrawSeg drw = {}; }; // Attach the segment to ground by a revolute joint AnyRevoluteJoint Jnt = { AnyRefFrame &ref1 = .GlobalRef; AnyRefFrame &ref2 = .Arm.Jnt; Axis = z; }; // Drive the revolute joint at constant velocity AnyKinEqSimpleDriver Drv = { DriverPos = {-10*pi/180}; DriverVel = {40*pi/180}; AnyRevoluteJoint &Jnt = .Jnt; Reaction.Type = {Off}; }; AnyMuscleModel SimpleModel = { F0 = 100; }; AnyMuscleViaPoint Muscle1 = { AnyMuscleModel &Model = .SimpleModel; AnyRefFrame &Orig = .GlobalRef.M1Origin; AnyRefFrame &Ins = .Arm.M1Insertion; AnyDrawMuscle drw = {}; }; }; // MyModel // The study: Operations to be performed on the model AnyBodyStudy MyStudy = { AnyFolder &Model = .MyModel; InverseDynamics.Criterion.Type = MR_MinMaxStrict; Gravity = {0.0, -9.81, 0.0}; }; }; // Main