Forums Anyscript.org Muscle recruitment solver
 Register FAQ Calendar Search Today's Posts Mark Forums Read

 Notices Meet us !

#1
11-22-2013, 10:21 AM
 yangyang_2151 Junior Member Join Date: Sep 2013 Posts: 22
Muscle recruitment solver

Hi ~

I encountered a problem when I was learning muscle modeling.I made a very example test,but always show :Muscle recruitment solver: solve aborted after maximum number of line-search iteration. Why?

But ,when changed the 'Axis=y' to 'Axis=x' or 'Axis=z',the example run successful

the changed code :
AnyPrismaticJoint Joint={
Axis = y;
AnyRefFrame & hel= Main.MyModel.GlobalRef.global;
AnyRefFrame & global=Main.MyModel.segment.center;
};

thank you very much for you time and help.
Attached Files
 teat3.any (1.3 KB, 10 views)
#2
11-23-2013, 02:34 PM
 jr@anybodytech.com Member Join Date: May 2010 Posts: 98

Hi Yang Yang,

This is the algorithm's way of telling you that the equilibrium cannot be obtained with the muscle configuration you have. Possibly the muscles you have are able to carry loads around the x and z axes but not around the y axis.

Best regards,
John
#3
11-23-2013, 03:46 PM
 yangyang_2151 Junior Member Join Date: Sep 2013 Posts: 22

Quote:
 Originally Posted by jr@anybodytech.com Hi Yang Yang, This is the algorithm's way of telling you that the equilibrium cannot be obtained with the muscle configuration you have. Possibly the muscles you have are able to carry loads around the x and z axes but not around the y axis. Best regards, John
Hi John
thank you help,I can't understand why The direction of elongation along x and z axis is ok but around the y axis ? In my mind , The direction of elongation is the same and there are no difference between the x y and z axis .
If I need the segment move along the y axis ,How to set the program?
thank you very much ~~~~
#4
11-23-2013, 11:30 PM
 jr@anybodytech.com Member Join Date: May 2010 Posts: 98

Yang Yang, it's really very simple. When axis is 'y' you have segment above the global reference frame. Muscles can only pull, but to hold segment up against gravity, the muscle would have to push.

If you reverse gravity from -9.81 to 9.81, then it works.

John
#5
11-24-2013, 03:48 AM
 yangyang_2151 Junior Member Join Date: Sep 2013 Posts: 22

Thank you for your help, with you help I solve the problem .
#6
02-24-2015, 03:39 AM
 aliasad Junior Member Join Date: Feb 2015 Posts: 14
Muscle recruitment solver

ERROR(OBJ.MCH.MUS4) : C:/U..s/t..k/D..p/A..3/AMMR/A..n/E..s/S..l/SitUpModel.Main.any(70) : Study.InverseDynamics : Muscle recruitment solver : solver aborted due to singular KKT matrix.

Hi dear Sir I am facing these problem whenever I tried to change number of steps from 51 to 5 or 10 please help me out sir.

#include "../libdef.any"

// Find a detailed description here
#include "Model/Description.any"

Main = {
// ----------------------------------------------------------
// Path to draw settings
// ----------------------------------------------------------
#path BM_DRAWSETTINGS_FILE "Model/DrawSettings.any"

// ----------------------------------------------------------
// Model configuration:
// #include "<ANYBODY_PATH_BODY>\Documentation\BodyModel.param eters.any"
// ----------------------------------------------------------

// The Mannequin file specifies load-time positions for all the segments
// in the HumanModel. This is important for the model's ablity to resolve
// all the kinematic constraints when the model is analyzed.
// The mannequin file also drives those degrees of freedom of the human
// model that are not governed by problem-specific drivers at run time.
#path BM_MANNEQUIN_FILE "Model/Mannequin.any"

// #define BM_TRUNK_MUSCLES CONST_MUSCLES_NONE
// #define BM_LEG_MUSCLES_BOTH CONST_MUSCLES_NONE
// #define BM_ARM_MUSCLES_BOTH CONST_MUSCLES_NONE

// Model of the human body to be used for the analysis
#include "<ANYBODY_PATH_BODY>/HumanModel.any"

/// The actual model where all components are assembled
AnyFolder Model =
{
/// Body model without default drivers
AnyFolder &HumanModel=.HumanModel.BodyModel;
/// Reference to the mannequin folder (used by drivers)
AnyFolder &Mannequin =.HumanModel.Mannequin;

#include "Model/Environment.any"

AnyFolder ModelEnvironmentConnection = {
#include "Model/JointsAndDrivers.any"
};

//-->Folder for design parameters
AnyFolder Parameters =
{
AnyVar Distance_From_PelvisContactNode_To_HeelNode = 0.6;
};
//<--

//-->Use of the object name to insert additional objects inside
HumanModel.Trunk.SegmentsLumbar.PelvisSeg =
{
AnyRefNode ContactNode =
{
sRel = .Scale({-0.02, -0.18, 0});
AnyDrawRefFrame Drw =
{
ScaleXYZ = 0.1*{1, 1, 1};
RGB = {1, 0, 0};
};
};
};
//<--
};

AnyBodyStudy Study = {
AnyOperationShellExec ConvertToAPDL=
{
Show=On;
FileName ="AnyFE2APDL.exe";
Arguments ="-i\C:\Users\tamuk\Desktop\AMMRV1.6.3\AMMR\Applicati on\Examples\SitUpModel\Model\ForceL5.xml-o\C:\Users\tamuk\Desktop\AMMRV1.6.3\AMMR\Applicati on\Examples\SitUpModel\Model-t\C:\Users\tamuk\Desktop\AMMRV1.6.3\AMMR\Applicati on\Examples\SitUpModel\Model\APDLsitup.txt";
WorkDir="C:\Users\tamuk\Desktop\AMMRV1.6.3\AMMR\Ap plication\Examples\SitUpModel\Model";
};

AnyFolder &Model = .Model;

tEnd = 10;
Gravity = {0.0, -9.81, 0.0};
nStep = 5;
AnyMechOutputFileForceExport ForceOutput =
{
FileName = "Output\ForceL5.xml";
/*NumberFormat = thats fine t
{
Digits = 15;
Width = 22;
Style = ScientificNumber;
FormatStr = "";
};*/
AllSegmentsInStudyOnOff = Off;
XMLformatOnOff = On;
UseRefFrameOnOff = Off;
AnySeg &L5Seg = Main.HumanModel.BodyModel.Trunk.SegmentsLumbar.L5S eg;
AnyRefFrame &L5RefFrame = Main.HumanModel.BodyModel.Trunk.SegmentsLumbar.L5S eg;
};

AnyMechOutputFileForceExport FE_out =
{
FileName = "files_in/ForceL5.xml";
UseRefFrameOnOff = On;
AnyRefFrame &L5RefFrame = Main.HumanModel.BodyModel.Trunk.SegmentsLumbar.L5S eg;
AllSegmentsInStudyOnOff = Off;
XMLformatOnOff = On;
//AllSegmentsInStudyOnOff = Off;
AnySeg &L5 = Main.HumanModel.BodyModel.Trunk.SegmentsLumbar.L5S eg;
};

//include the next line to have a camera in the model

}; // End of study

// Include an operation sequence to run all required steps of your application (see Operations tab)
#include "<ANYBODY_PATH_TOOLBOX>\Operations\RunAppSequence. any"

}; //Main
#7
02-25-2015, 01:04 PM
 aalmunajjed Senior Member Join Date: Mar 2011 Posts: 633

The error message means that AMS cannot find a muscle activation to deal with the motion. I would suggest to keep 51 steps if that runs.
__________________
Best regards, Amir

__________________
Amir Al-Munajjed, AnyBody Support

Please provide AMMR and AMS version numbers in case you send a debug model. The folder structure should follow the standard in the AMMR. This makes it a lot easier for us to answer your questions faster.

Consider to subscribe to a forum, click the 'ForumTools' link above the list of threads then select 'Subscribe to Forum'.

 Thread Tools Display Modes Linear Mode

 Posting Rules You may not post new threads You may not post replies You may not post attachments You may not edit your posts BB code is On Smilies are On [IMG] code is On HTML code is Off Forum Rules
 Forum Jump User Control Panel Private Messages Subscriptions Who's Online Search Forums Forums Home Professional Forum     AnyBody Managed Model Repository     Gallery of user models and videos     AnyGait     AnyBody Exporter for SOLIDWORKS     Debug model General Forum     AnyBody Modeling System     Wish list for AMS and AMMR     Announcements Self-Supported Forum     AnyBody Model Repository     Debug model Archive     AnyScript Message Archive

All times are GMT +2. The time now is 02:47 AM.