Hi,
I want to ask about muscle force on wrapping object
I made a simple model to understand muscle force.
It consists of 2 segment , 1joint(2DOF) and 1 shortestpath muscle with wrapping object(cylinder).
I attached the picture of my simple model. On x-y plane, muscle passes a joint. So, I thought that there’s no moment arm
length and muscle can’t play a role as flex/extensor(up/downwards on x-y plane) muscle. but it could and made a muscle
force.
I thought muscle could play a role as abd/adductor muscle, but it couldn’t.
I want to ask you about this question and role of muscle.
below is code of my simple model.
thank you
// Todo: Write a small description of your model here
Main = {
// The actual body model goes in this folder
AnyFolder ArmModel = {
// Global Reference Frame
AnyFixedRefFrame GlobalRef = {
AnyDrawRefFrame DrwGlobalRef = {
ScaleXYZ = {0.1, 0.1, 0.1};
RGB = {0,1,0};
};
AnyRefNode Shoulder = {
sRel = {0,0,0};
};
AnyRefNode DeltodeusA = {
sRel = {0.05,0,0};
};
AnyRefNode DeltodeusB = {
sRel = {-0.05,0,0};
};
AnyRefNode BicepsLong = {
sRel = {0.1,0,0};
};
AnyRefNode TricepsLong = {
sRel = {-0.1,0,0};
};
}; // Global reference frame
// Segments
AnyFolder Segs = {
AnySeg UpperArm = {
r0 = {0.3,0, 0};
//Axes0 =RotMat(-90*pi/180, z);
Mass = 10;
Jii = {0.001, 0.01, 0.01};
AnyDrawSeg drw = {};
AnyRefNode origin = {
sRel = {0,0,0};
ARel = RotMat(90*pi/180, y);
AnySurfCylinder cyl =
{
Radius = 0.03;
Length = 0.4;
AnyDrawParamSurf drw = {};
};
};
AnyRefNode ShoulderNode = {
sRel = {-0.2,0,0};
};
AnyRefNode ElbowNode = {
sRel = {0.2,0,0};
};
AnyRefNode test = {
sRel = {0,-0.035,0};
};
AnyRefNode test1 = {
sRel = {0,0.0,0};
};
}; // UpperArm
AnySeg ForeArm = {
r0 = {0.7,0, 0};
Mass = 10.0;
Jii = {0.001,0.01,0.01};
AnyRefNode ElbowNode = {
sRel = {-0.2,0,0};
};
AnyRefNode HandNode = {
sRel = {0.2,0,0};
};
AnyRefNode test = {
sRel = {0,0.035,0};
};
AnyRefNode test1 = {
sRel = {0,0.0,0};
};
AnyDrawSeg DrwSeg = {};
}; // ForeArm
}; // Segs folder
AnyFolder Jnts = {
//---------------------------------
AnyRevoluteJoint Shoulder = {
Axis = z;
AnyRefNode &GroundNode = ..GlobalRef.Shoulder;
AnyRefNode &UpperArmNode = ..Segs.UpperArm.ShoulderNode;
}; // Shoulder joint
AnyUniversalJoint Elbow = {
AnyRefNode &UpperArmNode = Main.ArmModel.Segs.UpperArm.ElbowNode;
AnyRefNode &ForeArmNode = Main.ArmModel.Segs.ForeArm.ElbowNode;
Axis1 = z;
Axis2 = y;
}; // Elbow joint
}; // Jnts folder
AnyFolder Drivers = {
//---------------------------------
AnyKinEqSimpleDriver ShoulderMotion = {
AnyRevoluteJoint &Jnt = ..Jnts.Shoulder;
DriverPos = {0*pi/180};
DriverVel = {00*pi/180};
Reaction.Type = {On};
}; // Shoulder driver
//---------------------------------
AnyKinEqSimpleDriver ElbowMotion = {
AnyUniversalJoint &Jnt = ..Jnts.Elbow;
DriverPos = {0*pi/180, 0};
//DriverPos = {-0*pi/180};
DriverVel = {0*pi/180,0};
Reaction.Type = {Off,On};
}; // Elbow driver
}; // Driver folder
AnyFolder Muscles = {
// Simple muscle model with constant strength = 300 Newton
AnyMuscleModel MusMdl = {
F0 = 30000;
};
//---------------------------------
AnyShortestPathMuscle test1 = {
AnyMuscleModel &MusMdl = ..Muscles.MusMdl;
AnyRefNode &Org = ..Segs.UpperArm.test;
AnyRefNode &Via = ..Segs.ForeArm.test;
AnyDrawMuscle DrwMus = {Bulging =1;};
AnySurface &cylinder = Main.ArmModel.Segs.UpperArm.origin.cyl;
SPLine.StringMesh = 25;
};
}; // Muscles folder
}; // MyModel
// The study: Operations to be performed on the model
AnyBodyStudy ArmStudy = {
AnyFolder &Model = .ArmModel;
//InverseDynamics.Criterion.Type = MR_MinMaxStrict;
tStart = 0.0;
tEnd = 5.0;
Gravity = {0.0, -10, 0.0};
nStep = 20;
};