All about Muscles
From AnyScript.org - Wiki
Muscle recruitment
Understanding the settings of the optimization
The problem we are solving goes like this:
- Minimize
- Equilibriumequations
- e1 * e2 = 0
The last conditions expresses that either e1 or e2 must be zero. The quadratic optimizer can solve any of the problems while the simplex optimizer can only solve the
problem where e2 = 0. But the simplex optimizer is more efficient and more robust.
As you can see, with e1 = e2 = 0 we have the pure min/max problem. When you increase either e1 and e2 from zero towards infinity, the problem slowly becomes more like either a minimization of the sum or squared sum of muscle stresses. But mathematically it is neither of these, unless e1 or e2 has gone to infinity.
Very small values of e1 might stabilize an ill-conditioned problem somewhat. So we often use a value of e1 = 1e-5 or thereabout just for stabilization. The right size depends a bit on the overall activation level. The problem converts rather rapidly to minimizing the sum of muscle stress when you increase e1. Usually at e1 = 1.0 the problem is converted completely.
The effect of e2 is different and actually better from a physiological perspective. Small values of e2 usually stabilize the problem. But even e2 = 1 will usually not make the problem completely quadratic. It will typically act like a quadratic problem for small activations levels and like a min/max problem for larger activations. This makes a lot of physiological sense. To convert the problem completely to quadratic form you typically need e2 > 10 something like e2 = 1000 to be sure.
Note that the e2 terms only has an effect if the quadratic solver is being used and the e1 term do not have effect if you are using a quadratic solver.
If you are more interested in this please try to go though the tutorial
A Study of studies: Inverse Dynamic Analysis http://www.anybodytech.com/691.0.html
Is muscle activation in your model the same as EMG? Is muscle activation calculated by the AnyBody system is a % of isometric MVC? Can EMG become an input into the model?
The model predicts muscle activations that are mathematically defined as the muscle force divided by the strength of the muscle. We use the current strength of the muscle, which depends on the muscle model you apply in the muscle definition. The simplest muscle model use isometric MVC for all configurations of the muscle, but we also have a more complex 3-element Hill-type muscle model, where the strength depends on muscle length and contraction velocity. From this mathematical definition of Muscle Activation, it is obvious that it is not equivalent to EMG, though their variation patterns must be alike You can import EMG data for visualization along with computed data. You can also use EMG data to apply forces on the model, which will be a kind of prescribed muscle forces. But you cannot drive the model completely by EMG since it is an inverse dynamics model. To make an EMG driven model, you must apply a forward dynamics simulation, which is currently not available in AnyBody.
Which kind of inverse dynamics equation do you use? Kane or Lagrange, or Euler? Where do I find more detailed information about the dynamics equations you are using?
The kernel of AnyBody's mechanical module uses what we often refer to as a Full Cartesian Formulation using a rigid-body set of coordinates for each segment (rigid body). The dynamic equations are basically the Newton-Euler equations, but they are transformed during the analysis. We believe that any approach for setting up the equations should produce the same results; efficiency and flexibility are the main issues here. Our approach largely follows the textbook of Nikravesh (University of Arizona).
Can this software be used in forward dynamics calculation?
Forward dynamics simulations are not possible in AnyBody (yet). It is our hope to be able to include it at some point in the future. We have the whole mechanical engine but still there is some way to go. The requirements for making good inverse and forward dynamic solutions are somewhat different.
How is time varying activation dynamics included in the analysis?
It is not. The muscle activation is allowed to change instantaneously, so we are assuming - like most other inverse dynamics approaches - that the activation dynamics is "fast enough".
Does AnyBody include activation dynamics in the muscle modeling?
No. AnyBody is based on inverse dynamics, so it computes the movement first and afterwards recruits the muscle forces to realize it. Inherent to this process is the assumption that muscle forces are available as quickly as they are needed. AnyBody also assumes that the body recruits muscles "optimally". More precisely, this means that AnyBody makes the muscles cooperate maximally in such a way that fatigue is postponed as far as possible.
Muscles/Ligaments
Can I include elastic elements such as cartilage and ligaments in my model?
The short answer is no. AnyBody is a rigid body dynamics system, and the basic assumption is that all elements are non-elastic. However, the system's muscle model does include the effects of the serial-elastic and parallel-elastic elements of the muscles. Ligaments can in principle be modeled as muscles with no active element, but this is very difficult, and the model will be extremely sensitive to small variations in length of these ligament elements. AnyBody Technology is investigating better methods for modeling of such passive elastic elements.
How does the system incorporate any forces imposed by a muscle interacting with a bone (i.e. wrapping)?
Muscles can interact with bones at fixed points (so-called via-points) and by wrapping surfaces. Currently, muscle lines can wrap over primitives such as spheres, ellipsoids, and cylinders. You can make any set of primitives for a given muscle.
Can you get stress data for bones and color stress distribution like FEA software?
No not directly. AnyBody is not a FEA code. You can export force data from AnyBody which you may be able to apply to a FE model.
HOWEVER, Ozen Engineering, an AnyBody distributor located in the United States, has worked with the AnyBody developers in creating an interface that allows for the results from an AnyBody model to be used with commercial FEA software. An associated wiki-page regarding the Any2Ans software can be found here: Link To Any2Ans Wiki Page
Are the material properties of the muscles, tendons, and bones included in the software?
The user can change all model properties. Typically, we operate with more general properties than actual material properties since we are not modeling the material itself as in a FE model. The muscle properties (and the properties of all other objects in the models) are in the (open) AnyScript text files. The software itself does not contain a fixed model, neither parameters nor topology.
Why should I run a calibration when using the 3 elements muscle model? And how does it work?
One of the challenges in working with the detailed 3 elements muscle model is the dependency on defined tendon length, Lt0. The model is very sensible to this elastic element and a small variation in the length can be significant for the muscle activity. So how to find the right tendon length? The calibration study will do it for you. We believe that humans are equipped with tendons whose lengths are advantageous for our normal activities. We can use this knowledge to calibrate the tendon lengths for an individual of a certain size. Quite simply, we shall presume that the tendon lengths are calibrated by nature to provide the muscles with optimum fiber lengths at certain postures. And so does the calibration sequence in AnyBody: each group of muscle is associated with a certain set of joint postures for which the muscle is presumed to be at its neutral position and the tendon length is adjusted to give this muscle its optimal fiber length.
What if a muscle model does not converge?
When using the 3 elements muscle model you might get an error stating that "Muscle model 'Main...' did not converge. Please check muscle length parameters." This is typically a calibration problem. The 3 elements model has to solve an internal kinematic between the tendon and the contractile element, depending on the length of each of them. An initial length is defined in the code for the tendon and the contractile element but it is not meant to be the optimal one and a calibration is needed to give those elements their optimal length in function of the model anthropometry. If the calibration is not run then problems can occur such as, for example, the tendons being too long and not leaving any space for the muscle between them. This problem will be solved by running the calibration sequence.
User defined muscle
This is a small model made to illustrate a user defined muscle model (AnyMuscleModeUsr1) which is dependent on muscle lenght and velocity. The active part is dependent on length and velocity and there is a passive element added as well. Please note that this way of creating muscle models neglects the effect of the internal dof inside the muscle which is part of the three element muscle model AnyMuscleModel3E. This means for example that the passive element will not stretch the tendon etc. On the other hand this model is very flexible in terms of input, since this can be interpolation curves or expressions.
Change the color of the muscles
When you have a model with many muscle fascicles it can be difficult to determine exactly which of the fascicles are the anterior one or similar, if this is not directly reflected in the muscle name. The quick fix to this is to simply colour the muscles differently this allows you distinguish them from each other.
Here is a stepwise procedure on how to do this: 1 Find the muscle file of interest typically named “mus.any” in the bodypart folder like “arm” or “leg” 2 find the muscle of interest and replace the include statement "#include "../drawSettings/¬MusDrawSettings.¬any" with for example “RGB={0,0,1};” this will create a blue muscle in this case, differentiating it from the others.
