Hi,
I was trying to make 2-segment model for tibia and foot. When I load
the file, it builds it properly. But when I run SetInitialConditions , then
it completly changes the orientation of all segments. Why is it doing so?
Here is the model I am using…
Prabhav
// Todo: Write a small description of your model here
Main = {
// The actual body model goes in this folder
AnyFolder FootModel = {
// Global Reference Frame
AnyFixedRefFrame GlobalRef = {
AnyDrawRefFrame DrwGlobalRef = {
ScaleXYZ = {.5,.5,.5};
};
AnyRefNode Knee = {
sRel = {0,0,0};
};
}; // Global reference frame
// Segments
AnyFolder Segs = {
AnySeg Leg = {
r = {0,-0.15,0};
//Axes = {{0,1,0},{-1,0,0},{0,0,1}};
Mass = 2.0;
Jii = {0.01,0.005,0.01};
AnyRefNode KneeNode = {
sRel = {0,0.2,0};
};
AnyRefNode AnkleNode = {
sRel = {0,-0.2,0};
};
AnyRefNode MuscleA = {
sRel = {0,-0.1,0.01};
};
AnyRefNode MuscleB = {
sRel = {0,-0.05,0.02};
};
AnyDrawSeg DrwSeg = {};
//AnyDrawSurf DrwSurf = {
// FileName = “leg_bone”;
// RGB = {0.2,0.4,0.5};
//};
}; // Leg
AnySeg Foot = {
r = {0.25,-0.3,0};
Mass = 2.0;
Jii = {0.005,0.01,0.01};
AnyRefNode AnkleNode = {
sRel = {-0.2,0,0};
};
AnyRefNode ToeNode = {
sRel = {0.2,0,0};
};
AnyRefNode MuscleA = {
sRel = {-0.1,0,0.02};
};
AnyRefNode MuscleB = {
sRel = {0.0,0,0.02};
};
AnyDrawSeg DrwSeg ={};
//AnyDrawSurf DrwSurf = {
// FileName = “foot_bone”;
// RGB = {0.2,0.4,0.5};
//};
}; // Foot
}; // Segs folder
AnyFolder Jnts = {
//---------------------------------
AnyRevoluteJoint Knee = {
Axis = z;
AnyRefNode &GroundNode = …GlobalRef.Knee;
AnyRefNode &LegNode = …Segs.Leg.KneeNode;
}; // Knee joint
AnyRevoluteJoint Ankle = {
Axis = z;
AnyRefNode &LegNode = …Segs.Leg.AnkleNode;
AnyRefNode &FootNode = …Segs.Foot.AnkleNode;
}; // Ankle joint
}; // Jnts folder
AnyFolder Drivers = {
//---------------------------------
AnyKinEqSimpleDriver KneeMotion = {
AnyRevoluteJoint &Jnt = …Jnts.Knee;
DriverPos = {-1.7};
DriverVel = {0.4};
}; // Knee driver
//---------------------------------
AnyKinEqSimpleDriver AnkleMotion = {
AnyRevoluteJoint &Jnt = …Jnts.Ankle;
DriverPos = {1.5};
DriverVel = {0.7};
Reaction.Type = {0};
}; // Ankle driver
}; // Driver folder
AnyFolder Muscles = {
// Simple muscle model with constant strength = 300 Newton
AnyMuscleModel MusMdl1 = {
F0 = 300;
};
AnyMuscleModel3E MusMdl2 = {
AnyVar PCSA = 2.66; // Physiological cross sectional area [cm^2]
F0 = PCSA*30; // Presuming a maximum muscle stress of 30 N/cm^2
Lfbar = 0.123; //Optimum fiber length [m]
Lt0 = 0.15; //First guess of tendon slack length [m]
Gammabar = 0.3*(pi/180); //Pennation angle converted to radians
Epsilonbar = 0.053; //Tendon strain at F0
K1 = 10; //Slow twitch factor
K2 = 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 BicepsLongModel
//---------------------------------
AnyViaPointMuscle MuscleA = {
AnyMuscleModel &MusMdl = …Muscles.MusMdl1;
AnyRefNode &Org = …Segs.Leg.MuscleA;
AnyRefNode &Ins = …Segs.Foot.MuscleA;
AnyDrawMuscle DrwMus = {};
};
//---------------------------------
AnyViaPointMuscle MuscleB = {
AnyMuscleModel &MusMdl = …Muscles.MusMdl1;
AnyRefNode &Org = …Segs.Leg.MuscleB;
AnyRefNode &Ins = …Segs.Foot.MuscleB;
AnyDrawMuscle DrwMus = {};
};
}; // Muscles folder
}; // FootModel
// The study: Operations to be performed on the model
AnyBodyStudy FootModelStudy = {
AnyFolder &Model = .FootModel;
RecruitmentSolver = MinMaxSimplex;
Gravity = {0.0, -9.81, 0.0};
};
}; // Main
[Non-text portions of this message have been removed]