shoulder 2D model

Hi Pierre,

I’m glad you found what you wanted.

I am not an expert user of Matlab but I guess it might be possible to
recreate forward dynamic. We have been thinking on including forward
dynamic in AnyBody but nothing has been really decided yet.

Best regards,
Sylvain, AnyBody Support.

— In anyscript@yahoogroups.com, “Pierre-Olivier Lemieux”
<pothekid@…> wrote:
>
> Hi Sylvain,
> I’ve found what I was searching for in the Nikravesh
> textbook (Planar multibody dynamics) that you have put the reference
> under FAQs in the publications section.
>
> This book explain how to apply joint coordinate method works and
also
> the kinematic equations. It also explain how to apply the forward
and
> inverse dynamic.
>
> Do you think that is feasible to create a 2D model in Matlab that
work
> in forward dynamic ? Do you work on that for further version ?
>
> My idea is to find a movement for the shoulder that rely upon the
> deltoid activity, knowing that this muscle is the only one that
makes
> the movement in case of a massive rotator cuff tear.
>
> Thank you for you support
>
> Pierre
>
>
> — In anyscript@yahoogroups.com, “AnyBody Support” <support@>
wrote:
> >
> > Hi Pierre,
> >
> > There is a good explanation of how AnyBody perform the muscle
> > calculation in this tutorial:
> > http://www.anybodytech.com/691.0.html
> >
> > Hope you will find there what you want.
> >
> > Best regards,
> > Sylvain, AnyBody Support.
> >
> >
> >
> >
> > — In anyscript@yahoogroups.com, “Pierre-Olivier Lemieux”
> > <pothekid@> wrote:
> > >
> > > Hi Soren,
> > > there is no change of geometry during abduction. It’s
surely
> > > just a codec differences or the video encryption method in
Matlab.
> > The
> > > geometry changes only during the parameters study.
> > >
> > > My question was more about how Anybody do the calculations.
Does it
> > > make a static calculation or a dynamic one ? I mean, does the
> > program
> > > compute the minimal force to have equilibrium or a more complex
> > > calculation ?
> > >
> > > I ask this question because I have to understand how the
program
> > works
> > > in order to be able to explain it in my paper.
> > >
> > > Maybe you can refer me to an article in the Documentation
repository
> > > of Anybody that explain how AnyBody perfom the muscle
calculation. I
> > > know about the muscle recruitment, but not about the force
itself.
> > >
> > > I hope that is more clear for you.
> > >
> > > Thank you again
> > >
> > > Pierre
> > >
> > > — In anyscript@yahoogroups.com, “AnyBody Support” <support@>
> > wrote:
> > > >
> > > > Hi Pierre
> > > >
> > > >
> > > >
> > > > I have seen the video and have a question about the GH head
> > shape.
> > > I do not
> > > > understand why the GH head changes its shape while the
analysis is
> > > running,
> > > > initially it has a long narrow shape and in the end it looks
more
> > > compressed
> > > > in shape. Could it be graphic related and just something seen
on
> > > this video?
> > > >
> > > >
> > > >
> > > >
> > > > In AnyBody such a change in the shape is not possible while
the
> > model is
> > > > running, there would have to be several segments to replicate
> > this.
> > > >
> > > >
> > > >
> > > > I understand your point of not replicating the same
optimization
> > in
> > > AnyBody
> > > > and Matlab, but if you plan to impose the results found in
matlab
> > on the
> > > > AnyBody model it will be important that the models gives the
same
> > > results.
> > > >
> > > >
> > > >
> > > > Please write again if you have further questions, I was a bit
> > unsure
> > > if the
> > > > last part of your posting was a question.
> > > >
> > > >
> > > >
> > > > Best regards
> > > >
> > > > Søren, AnyBody Support
> > > >
> > > >
> > > >
> > > >
> > > >
> > > > _____
> > > >
> > > > From: anyscript@yahoogroups.com
[mailto:anyscript@yahoogroups.com]
> > > On Behalf
> > > > Of Pierre-Olivier Lemieux
> > > > Sent: 19 March 2008 19:22
> > > > To: anyscript@yahoogroups.com
> > > > Subject: [AnyScript] Re: shoulder 2D model
> > > >
> > > >
> > > >
> > > > Hi Soren,
> > > > the Matlab routine (which I’ve created entirely) is pretty
> > > > simple. For each positions, it perform a calculation of the
lever
> > arm
> > > > and the angle of the upper part of the muscle to separate the
X
> > and Y
> > > > direction of the muscle force. When the contact between the
> > prosthesis
> > > > and the acromion occurs, the acromial reaction is possible
and is
> > > > drawn on the figure. There is no recruitment muscle because
there
> > is
> > > > only one muscle in my routine (deltoid).
> > > >
> > > > The strength model is a constant force model. Like you can
see,
> > the
> > > > muscle wrapping is done by using a thin rope between the
origin
> > and
> > > > insertion point.
> > > >
> > > > I send you a little video of all that under (GH_Movement.zip).
> > > >
> > > > I understand your idea about creating the same routine in
> > Anybody, but
> > > > I don’t see any interest about doing that if the results
between
> > > > AnyBody and Matlab are the same.
> > > >
> > > > My idea was rather to find the correct movement pattern in
term of
> > > > prosthetic dimensions in Matlab and then put this movement
into my
> > > > AnyBody model, to find the deltoid forces. By obtaining the
same
> > > > results in AnyBody and Matlab, I think this is a way to
verify the
> > > > accuracy of my findings… What do you think about that ?
> > > >
> > > > I have try to get the same models between AnyBody and Matlab.
To
> > do
> > > > so, I’ve put the static friction coefficient to 0 and put a
> > constant
> > > > force model for the deltoid. Thus, I think that the
differences
> > are
> > > > just in the WeakMuscle definition. In my Matlab routine,
there is
> > no
> > > > WeakMuscle because the acromion force give us a hint that
> > something
> > > > don’t work during the first abduction degrees (check the
> > results.jpg).
> > > >
> > > > I hope that was more clear for you.
> > > >
> > > > Thank you very much.
> > > >
> > > > Pierre
> > > >
> > > > — In anyscript@yahoogrou <mailto:anyscript%
40yahoogroups.com>
> > ps.com,
> > > > “AnyBody Support” <support@> wrote:
> > > > >
> > > > > Hi Pierre
> > > > >
> > > > >
> > > > >
> > > > > I think I understand what your algorithm is doing, it finds
the
> > > minimum
> > > > > deltoid force and if there is a force unbalance it moves
the
> > humeral
> > > > until
> > > > > balance is obtained.
> > > > >
> > > > >
> > > > >
> > > > > Using the build in optimizer in AnyBody something similar
> > should be
> > > > possible
> > > > > I guess, but it will be a slightly differently approach.
> > Basically
> > > > you will
> > > > > need a model that will always be able to balance itself
through
> > > > artificial
> > > > > joint reactions, but through the optimization you can
change the
> > > > motion so
> > > > > that it tries to minimize those reactions.
> > > > >
> > > > >
> > > > >
> > > > > 1 you will need the extra muscle that ensures that a force
> > balance can
> > > > > always be obtained.
> > > > >
> > > > > 2 a design variable has to be defined, this is the
translation,
> > > > maybe this
> > > > > should be done using an interpolation function…
> > > > >
> > > > > 3 an objective function has to be setup, here I would
choose to
> > > > minimize the
> > > > > forces in the artificial muscles which you did not want to
> > become
> > > > active. So
> > > > > you will be minimizing these reaction forces by moving the
> > humeral
> > > > head to
> > > > > another position.
> > > > >
> > > > >
> > > > >
> > > > > There is a tutorial of parameter and optimization studies
it
> > might be
> > > > > helpful.
> > > > >
> > > > >
> > > > >
> > > > > I can not judge if the MatLab code is ok sorry, I can think
of
> > the
> > > > following
> > > > > questions
> > > > >
> > > > > 1 Are there any differences in the models, that in anyway
could
> > > justify
> > > > > these differences?
> > > > >
> > > > > 2 What about muscles wrapping, how is this done in MatLab…
> > > > >
> > > > > 3 Muscles strength models
> > > > >
> > > > > 4 Recruitment criteria?
> > > > >
> > > > > Etc…
> > > > >
> > > > >
> > > > >
> > > > >
> > > > >
> > > > > Best regards
> > > > >
> > > > > Søren, AnyBody Support
> > > > >
> > > > >
> > > > >
> > > > >
> > > > >
> > > > > _____
> > > > >
> > > > > From: anyscript@yahoogrou <mailto:anyscript%
40yahoogroups.com>
> > ps.com
> > > > [mailto:anyscript@yahoogrou <mailto:anyscript%
40yahoogroups.com>
> > ps.com]
> > > > On Behalf
> > > > > Of Pierre-Olivier Lemieux
> > > > > Sent: 18 March 2008 19:18
> > > > > To: anyscript@yahoogrou <mailto:anyscript%
40yahoogroups.com>
> > ps.com
> > > > > Subject: [AnyScript] Re: shoulder 2D model
> > > > >
> > > > >
> > > > >
> > > > > Hi Soren,
> > > > > thank you for your support. Now I have a model that
represent
> > > > > more my pathology and I have also created a Matlab
algorithm
> > that find
> > > > > the movement of the humeral head and import it into my
AnyBody
> > model.
> > > > >
> > > > > My Matlab algorithm compute the minimum force in the
deltoid to
> > > > > perform an increment of abduction with a moment balance
> > (constant
> > > > > velocity). If there is a non-equilibrium of the forces and
a
> > degree of
> > > > > freedom in the direction of the force, there is
automatically an
> > > > > increment of displacement. This is the case for the vertical
> > > > > displacement in my model.
> > > > >
> > > > > Now, I want to know how Anybody solve a problem. I know
that
> > for each
> > > > > step time, it use the min/max criterion to find the minimum
> > muscle
> > > > > activity. Does it works like my Matlab routine ?
> > > > >
> > > > > I have compared the Matlab results from those obtained in
> > Anybody from
> > > > > the same movement and in a lot of situation it gives me
similar
> > > > > results. However, there is some differences that I’m not
able to
> > > > > explain. Do you think that my Matlab routine is well made ?
> > > > >
> > > > > I send you my results (Matlab & AnyBody) for a particular
case
> > under
> > > > > (PO_Lemieux_shoulder_model_March_18). Just take a look and
give
> > me
> > > > > your idea about it.
> > > > >
> > > > > Thank you again.
> > > > >
> > > > > Pierre
> > > > >
> > > > > — In anyscript@yahoogrou <mailto:anyscript%
40yahoogroups.com>
> > > ps.com,
> > > > > “AnyBody Support” <support@> wrote:
> > > > > >
> > > > > > Hi Pierre
> > > > > >
> > > > > >
> > > > > >
> > > > > > The contact force you have applied works on the contact
> > segment.
> > > This
> > > > > > element will need to be carried by the driver otherwise
the
> > model
> > > > > will be
> > > > > > unbalanced and unable to solve; it can not be left
unbalanced.
> > > > > >
> > > > > > The contact force you have applied can only do a pushing
> > force,
> > > so the
> > > > > > reactions you will see in this contact driver will only
be in
> > one
> > > > > direction.
> > > > > >
> > > > > >
> > > > > >
> > > > > > The weak muscles also need to be there, there can not be
dof
> > in the
> > > > > model
> > > > > > which are unbalanced. Even if these are supposed to have
> > force, it
> > > > > will lead
> > > > > > to numeric problems if they are left unbalanced.
> > > > > >
> > > > > >
> > > > > >
> > > > > > The reason why the weak muscles are needed must be a
moment
> > balance
> > > > > issue
> > > > > > there appears to be situation where the deltoid muscle it
self
> > > can not
> > > > > > balance the upper arm. To me it sounds reasonable, these
weak
> > > muscles
> > > > > > replicated the joint reactions up/down and these would
always
> > be non
> > > > > zero.
> > > > > > In you had more muscles in the model these might be able
to
> > > > control this
> > > > > > up/down dofs., and the weak muscles could be excluded.
> > > > > >
> > > > > >
> > > > > >
> > > > > > Best regards
> > > > > >
> > > > > > Søren
> > > > > >
> > > > > > _____
> > > > > >
> > > > > > From: anyscript@yahoogrou <mailto:anyscript%
40yahoogroups.com>
> > > ps.com
> > > > > [mailto:anyscript@yahoogrou <mailto:anyscript%
40yahoogroups.com>
> > > ps.com]
> > > > > On Behalf
> > > > > > Of Pierre-Olivier Lemieux
> > > > > > Sent: 20 February 2008 03:31
> > > > > > To: anyscript@yahoogrou <mailto:anyscript%
40yahoogroups.com>
> > ps.com
> > > > > > Subject: [AnyScript] Re: shoulder 2D model
> > > > > >
> > > > > >
> > > > > >
> > > > > > Hi again Sylvain,
> > > > > > my model works well now with the Reaction.Type turned
> > > > > > on within the Contact driver. However, it makes this
reaction
> > > able to
> > > > > > pull or push. For some set-up of the parameters of the
> > ellipse,
> > > I got
> > > > > > negative forces for the Contact driver. It tells me that
the
> > > permanent
> > > > > > contact with the acromion is not valid in all the case.
Maybe
> > I
> > > should
> > > > > > know the real displacement in term of the elliptic shape,
> > prior to
> > > > > > proceed to the inverse analysis.
> > > > > >
> > > > > > Also, it is not only the deltoid that pulls on the
humeral
> > head,
> > > it is
> > > > > > also the WeakMuscles. These muscles are not there
normally and
> > > when I
> > > > > > comment them, it gives me a “Muscle recruitment” error if
the
> > tStart
> > > > > > is 0. Thus, I want to know why the deltoid can’t do the
> > complete
> > > > > > abduction by itself ?
> > > > > >
> > > > > > Thank you again.
> > > > > >
> > > > > > Pierre-Olivier
> > > > > >
> > > > > > — In anyscript@yahoogrou <mailto:anyscript%
> > 40yahoogroups.com>
> > > > ps.com,
> > > > > > “AnyBody Support” <support@> wrote:
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > Hi,
> > > > > > >
> > > > > > > The reason you cannot see the reaction force of
> > > > > > > ContactSurfaceLinPush is because the ContactSeg you
created
> > is
> > > not
> > > > > > > fully balanced. I was effectively talking about adding
some
> > > > > > > AnyReacForce between the ContactSeg and the humerus, so
> > that the
> > > > > > > ContactSeg is carried in all directions in term of
forces
> > and it
> > > > can
> > > > > > > transmit the reaction forces from the acromion point to
the
> > > humerus
> > > > > > > head.
> > > > > > > But it’s not the only way to do it: by adding a
prismatic
> > > joint you
> > > > > > > drive the ContactSeg in five directions, you just have
to
> > > switch on
> > > > > > > the ReactionType of the Ellipse2ContactDriver to carry
the
> > > load of
> > > > > > > the segment in the sliding direction also. Now you will
be
> > > able to
> > > > > > > see appear the reaction force at the contact point.
> > > > > > >
> > > > > > > Best regards.
> > > > > > > Sylvain, AnyBody Support
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > — In anyscript@yahoogrou <mailto:anyscript%
> > 40yahoogroups.com>
> > > > > ps.com,
> > > > > > “Pierre-Olivier Lemieux”
> > > > > > > <pothekid@> wrote:
> > > > > > > >
> > > > > > > > Hi Sylvain,
> > > > > > > > I’ve made the changes that you told me about, but I’m
> > > > > > > not
> > > > > > > > able to make my model works well. I don’t have any
> > > > > > > > “ContactSurfaceLinPush” reaction forces and friction
> > forces.
> > > > > > > >
> > > > > > > > In Excel, I’ve calculated the displacement of the
humeral
> > > head in
> > > > > > > term
> > > > > > > > of static equations for the abduction and put those
values
> > > in the
> > > > > > > > model (“SliderDriver” and “AbductionDriver”). With
these
> > > values,
> > > > > > > the
> > > > > > > > displacement is upward at the beginning of abduction
and
> > > downward
> > > > > > > at
> > > > > > > > the end. So, the contact between the acromion and
humeral
> > > head is
> > > > > > > not
> > > > > > > > always there. For this reason,
the “ContactSurfaceLinPush”
> > > is very
> > > > > > > > useful for me.
> > > > > > > >
> > > > > > > > I’m not sure to understand well when you talk about
> > adding some
> > > > > > > > reaction forces. Is it the “AnyReacForce” object ? If
it
> > is the
> > > > > > > case,
> > > > > > > > can you help me to write it correctly ?
> > > > > > > >
> > > > > > > > My new model is named “PO_Lemieux_shoulder_3”.
> > > > > > > >
> > > > > > > > thank you for your support.
> > > > > > > >
> > > > > > > > Pierre-Olivier
> > > > > > > >
> > > > > > > > — In anyscript@yahoogrou <mailto:anyscript%
> > 40yahoogroups.com>
> > > > > ps.com,
> > > > > > “AnyBody Support” <support@>
> > > > > > > wrote:
> > > > > > > > >
> > > > > > > > > Hi Pierre,
> > > > > > > > >
> > > > > > > > > In the file ContactSurfaceLinPush the object Base
> > define the
> > > > > > > node
> > > > > > > > > that is applying the force. The object Target
defines
> > the
> > > node
> > > > > > > where
> > > > > > > > > the force is applied to. So by switching Base and
Target
> > > object
> > > > > > > you
> > > > > > > > > are now applying the reaction forces from the
center of
> > the
> > > > > > > > > ellipsoid to p12. And the reaction forces are
displayed
> > in
> > > the
> > > > > > > Base
> > > > > > > > > frame (ellipsoid frame in this case) that’s why the
> > arrows
> > > > > > > follow
> > > > > > > > > the abduction angle.
> > > > > > > > >
> > > > > > > > > This can be improved by applying the reaction
forces
> > from
> > > > P12 to
> > > > > > > a
> > > > > > > > > floating point on the external shape of the
ellipsoid,
> > where
> > > > the
> > > > > > > > > contact really occurs. You can create a segment
(with no
> > > mass)
> > > > > > > that
> > > > > > > > > you drive to slide on the ellipsoid shape as you
did
> > with the
> > > > > > > > > AcromionDriver, and you set the distance between
one
> > point of
> > > > > > > this
> > > > > > > > > segment and P12 to 0. Then you have to create some
> > reaction
> > > > > > > forces
> > > > > > > > > between this segment and the ellipsoid to transmit
all
> > the
> > > > > > > forces.
> > > > > > > > > So you will now have a floating contact point on the
> > > ellipsoid
> > > > > > > > > shape. By setting the Base to the new segment you
> > should be
> > > > able
> > > > > > > to
> > > > > > > > > draw the reaction force vectors in the tangential
plane
> > of
> > > the
> > > > > > > shape.
> > > > > > > > >
> > > > > > > > > About the ContactRotPush, this applies a moment
between
> > two
> > > > > > > segments
> > > > > > > > > in contact. There are no friction forces, so this
may
> > not be
> > > > > > > what
> > > > > > > > > you need.
> > > > > > > > >
> > > > > > > > > For the external pushing force of
ContactSurfaceLinPush
> > you
> > > > talk
> > > > > > > > > about: this function actually use 5 muscles. One
pushing
> > > in the
> > > > > > > > > normal direction of the surface and 4 others
creating
> > the
> > > > > > > friction
> > > > > > > > > forces in the plane of the surface combined with
normal
> > > force;
> > > > > > > > > please see this link where there is a short
description
> > > > > > > > >
> > > > > > > > >
> > > > > > > > >
> > > > > > > > > http://www.anybodyt
> > > > > <http://www.anybodyt <http://www.anybodyt
> > > > <http://www.anybodytech.com/116.0.html?&tx_ttnews>
> > > > ech.com/116.0.html?&tx_ttnews>
> > > > > ech.com/116.0.html?&tx_ttnews>
> > > > > > ech.com/116.0.html?&tx_ttnews[backPid]
> > > > > > > > > =37&tx_ttnews[tt_news]=23&cHash=c92c2826e9
> > > > > > > > >
> > > > > > > > >
> > > > > > > > >
> > > > > > > > > I understand you would like to activate only the
> > friction
> > > > > > > muscles?
> > > > > > > > > That is not possible, the five muscles are linked
and
> > working
> > > > > > > > > together.
> > > > > > > > >
> > > > > > > > > And for the strange behaviour you noticed when you
> > change the
> > > > > > > > > deltoid origin, well i don’t think it’s so strange.
> > > Because by
> > > > > > > > > changing the origin of the muscle you change the
force
> > it
> > > will
> > > > > > > have
> > > > > > > > > to develop, you also change the reaction forces in
the
> > > contact
> > > > > > > > > point. But i think you don’t have a big interest in
> > changing
> > > > the
> > > > > > > > > muscle origin and you should just keep it in its
normal
> > value.
> > > > > > > > >
> > > > > > > > > It’s correct that you did not find repository 7, it
is
> > not
> > > > > > > public, I
> > > > > > > > > forgot this, sorry. You should look in the
repository
> > 6, here
> > > > > > > you
> > > > > > > > > will find the file PedalDemoConditional in
ARep\Aalborg.
> > > > > > > > >
> > > > > > > > > Best Regards
> > > > > > > > > Sylvain, AnyBodySupport
> > > > > > > > >
> > > > > > > > >
> > > > > > > > >
> > > > > > > > >
> > > > > > > > >
> > > > > > > > >
> > > > > > > > > — In anyscript@yahoogrou
> > > <mailto:anyscript%40yahoogroups.com>
> > > > > > ps.com, “Pierre-Olivier Lemieux”
> > > > > > > > > <pothekid@> wrote:
> > > > > > > > > >
> > > > > > > > > > Hi Sylvain,
> > > > > > > > > > thank you for your support. I’ve worked around
> > > > > > > > > > the “ContactLinePush” problem all the week-end
and
> > I’ve
> > > found
> > > > > > > that
> > > > > > > > > > by swithching the “Base” and “Target” objects,
the
> > friction
> > > > > > > > > appears.
> > > > > > > > > > However, it gives me too high results because the
> > switch
> > > > mixed
> > > > > > > up
> > > > > > > > > > all the calculations. For exemple, the resulting
> > friction
> > > > > > > force is
> > > > > > > > > > equal to the normal force, that is not correct.
Also,
> > the
> > > > > > > arrows
> > > > > > > > > > rotate following the abduction angle. Maybe a
> > > > “ContactRotPush”
> > > > > > > > > would
> > > > > > > > > > perform better ?
> > > > > > > > > > So, I guess that I’m on a good way to find a
solution,
> > > but I
> > > > > > > still
> > > > > > > > > > need to understand how this script works, and
what
> > are the
> > > > > > > > > > accepted “RefFrame” for the “Base” and “Target”
> > objects.
> > > > > > > > > >
> > > > > > > > > > Also, in the present case, there is an external
> > pushing
> > > force
> > > > > > > > > > (ContactLinePush) on the shoulder upward during
all
> > > abduction
> > > > > > > to
> > > > > > > > > > keep the contact between the acromion and the
> > ellipse.
> > > > > > > > > > However, in the real case, the deltoid, while
> > performing
> > > the
> > > > > > > > > > abduction alone, pulls on the humerus, instead
> > > > > > > > > of “ContactLinePush”,
> > > > > > > > > > and creates a contact force between the acromion
and
> > > humeral
> > > > > > > head
> > > > > > > > > > (that should be the ContactLinePush). I’ve made
an
> > > > > > > experimental
> > > > > > > > > set-
> > > > > > > > > > up that has shown me these results.
> > > > > > > > > >
> > > > > > > > > > Also, I’ve noticed another strange behavior. For
> > exemple,
> > > > when
> > > > > > > I
> > > > > > > > > use
> > > > > > > > > > the acromion contact point P12 : (0,0.039,0) and
> > deltoid
> > > > > > > origin
> > > > > > > > > > point P8 : (0,0.050,0) and use
the “ContactLinPush”
> > script,
> > > > > > > the
> > > > > > > > > > results are very different from using the same
P12,
> > but
> > > > > > > changing
> > > > > > > > > P8
> > > > > > > > > > to a closer distance (0,0.038,0) from P12. Note
that
> > the
> > > > first
> > > > > > > set
> > > > > > > > > > of values for P8 and P12 are the ones that I need.
> > > > > > > > > >
> > > > > > > > > > So, if you can help me understanding these
problems,
> > it
> > > would
> > > > > > > help
> > > > > > > > > > me a lot.
> > > > > > > > > >
> > > > > > > > > > Have a good week and thank you again.
> > > > > > > > > >
> > > > > > > > > > Pierre.
> > > > > > > > > >
> > > > > > > > > > P.S. : I’ve not found the repository 7, is it
normal ?
> > > > > > > > > >
> > > > > > > > > > — In anyscript@yahoogrou
> > > > <mailto:anyscript%40yahoogroups.com>
> > > > > > ps.com, “AnyBody Support” <support@>
> > > > > > > > > > wrote:
> > > > > > > > > > >
> > > > > > > > > > > Hi Pierre-Olivier
> > > > > > > > > > >
> > > > > > > > > > > I will try to give you some more information on
the
> > file
> > > > > > > > > > > ContactSurfaceLinPush, this file can create a
> > conditional
> > > > > > > > > contact
> > > > > > > > > > > with pushing muscles. If the two contact points
are
> > close
> > > > > > > enough
> > > > > > > > > > > (this distance is set by the user) then the
muscles
> > will
> > > > > > > have a
> > > > > > > > > > high
> > > > > > > > > > > strength and can create the contact force. If
the
> > two
> > > > > > > contact
> > > > > > > > > > points
> > > > > > > > > > > are to far from each other, the muscles will
have
> > no
> > > > > > > strength at
> > > > > > > > > > > all, and there can be no contact force.
> > > > > > > > > > > But I am not sure if this utility is useful for
your
> > > model
> > > > > > > > > because
> > > > > > > > > > > you want a permanent contact of the humerus
head?
> > > > > > > > > > >
> > > > > > > > > > >
> > > > > > > > > > >
> > > > > > > > > > > The file also holds another utility which is the
> > > ability to
> > > > > > > > > create
> > > > > > > > > > > normal reaction force and friction force at the
> > contact
> > > > > > > point.
> > > > > > > > > > This
> > > > > > > > > > > could maybe be interesting for your model. But
you
> > > have to
> > > > > > > take
> > > > > > > > > > care
> > > > > > > > > > > to apply those forces to the acromion contact
> > point. You
> > > > > > > > > actually
> > > > > > > > > > > applied them to the center of the humerus head
> > instead of
> > > > > > > the
> > > > > > > > > > > contact point.
> > > > > > > > > > >
> > > > > > > > > > > I tried running the files you uploaded and it
is
> > working
> > > > > > > with
> > > > > > > > > the
> > > > > > > > > > > elliptic shape without doing any changes.
However
> > the
> > > model
> > > > > > > is
> > > > > > > > > now
> > > > > > > > > > > fully balanced and it is not possible anymore
to
> > see that
> > > > > > > point
> > > > > > > > > > you
> > > > > > > > > > > was interested in the last time (where the
geometry
> > > cannot
> > > > > > > carry
> > > > > > > > > > the
> > > > > > > > > > > load) to plot the max abduction.
> > > > > > > > > > >
> > > > > > > > > > > So the solution of recreating the humeral
contact
> > > > depends on
> > > > > > > the
> > > > > > > > > > > simulation you want to perform
> > > > > > > > > > >
> > > > > > > > > > > An example of using ContactSurfaceLinPush is
> > available in
> > > > > > > the
> > > > > > > > > > > repository
> > 7/Application/Examples/PedalDemoConditional,
> > > > as I
> > > > > > > > > > recall
> > > > > > > > > > > it the contact muscles are defined in the
> > > > JointAndDriver.any
> > > > > > > > > file.
> > > > > > > > > > >
> > > > > > > > > > > Best regards,
> > > > > > > > > > > Sylvain, AnyBody Support
> > > > > > > > > > >
> > > > > > > > > > >
> > > > > > > > > > >
> > > > > > > > > > >
> > > > > > > > > > >
> > > > > > > > > > > — In anyscript@yahoogrou
> > > > > <mailto:anyscript%40yahoogroups.com>
> > > > > > ps.com, “Pierre-Olivier Lemieux”
> > > > > > > > > > > <pothekid@> wrote:
> > > > > > > > > > > >
> > > > > > > > > > > > Hi Soeren,
> > > > > > > > > > > > thank you for you recommendations. It seems
to
> > > > > > > works
> > > > > > > > > > now
> > > > > > > > > > > for
> > > > > > > > > > > > the abduction. The deltoid activity is not
what I
> > want
> > > > > > > most,
> > > > > > > > > so
> > > > > > > > > > > I’ve
> > > > > > > > > > > > just commented it out.
> > > > > > > > > > > > I have an other question now. When I went to
> > Aalborg,
> > > > John
> > > > > > > > > gave
> > > > > > > > > > me
> > > > > > > > > > > a
> > > > > > > > > > > > folder with some special scripts. One of these
> > > scripts is
> > > > > > > > > > > > “ContactSurfaceLinPush”. Like it says, it was
to
> > > create a
> > > > > > > > > pushing
> > > > > > > > > > > > force on a contact node (I guess). However, I
> > have some
> > > > > > > > > > > difficulties
> > > > > > > > > > > > to understand this script. Also, it works
with a
> > > constant
> > > > > > > > > radius
> > > > > > > > > > > > humeral head, but not for my elliptic shape.
Do
> > you
> > > think
> > > > > > > this
> > > > > > > > > is
> > > > > > > > > > > > possible ?
> > > > > > > > > > > >
> > > > > > > > > > > > You can check the
folder “AcromionHumerusContact”
> > in
> > > the
> > > > > > > > > bottom
> > > > > > > > > > of
> > > > > > > > > > > my
> > > > > > > > > > > > main script (The file is
> > > “PO_Lemieux_shoulder2D.zip”). I
> > > > > > > will
> > > > > > > > > > send
> > > > > > > > > > > you
> > > > > > > > > > > > the special script, because I don’t know who
has
> > > written
> > > > > > > it.
> > > > > > > > > > > >
> > > > > > > > > > > > Thank you again,
> > > > > > > > > > > >
> > > > > > > > > > > > Pierre-Olivier
> > > > > > > > > > > >
> > > > > > > > > > > >
> > > > > > > > > > > >
> > > > > > > > > > > > — In anyscript@yahoogrou
> > > > > <mailto:anyscript%40yahoogroups.com>
> > > > > > ps.com, “AnyBody Support”
> > > > > > > <support@>
> > > > > > > > > > > wrote:
> > > > > > > > > > > > >
> > > > > > > > > > > > > Hi Pierre
> > > > > > > > > > > > >
> > > > > > > > > > > > >
> > > > > > > > > > > > >
> > > > > > > > > > > > > I think there is a simple solution to your
> > problem….
> > > > > > > > > > > > >
> > > > > > > > > > > > >
> > > > > > > > > > > > >
> > > > > > > > > > > > > The reason why you are getting this strange
> > > solution is
> > > > > > > that
> > > > > > > > > > the
> > > > > > > > > > > > analysis
> > > > > > > > > > > > > has not been finished due to the inverse
> > analysis,
> > > this
> > > > > > > is
> > > > > > > > > as
> > > > > > > > > > you
> > > > > > > > > > > > expect.
> > > > > > > > > > > > > The abduction angle you find by taking the
max
> > > value of
> > > > > > > the
> > > > > > > > > > > > abduction angle
> > > > > > > > > > > > > function. This is fine if the analysis had
> > finished
> > > > > > > correctly
> > > > > > > > > > > > because then
> > > > > > > > > > > > > it would look at all the values in the
output
> > > function
> > > > > > > (nStep
> > > > > > > > > > > > values) and
> > > > > > > > > > > > > find the maximum one. When the analysis
stops
> > it will
> > > > > > > still
> > > > > > > > > > look
> > > > > > > > > > > at
> > > > > > > > > > > > these
> > > > > > > > > > > > > nStep values, but now some of these can
> > > > > > > contain “garbage”
> > > > > > > > > > > numbers.
> > > > > > > > > > > > >
> > > > > > > > > > > > >
> > > > > > > > > > > > >
> > > > > > > > > > > > > So the remedy in this case is to change the
> > output
> > > > > > > function
> > > > > > > > > in
> > > > > > > > > > > the
> > > > > > > > > > > > > parameterstudy to the following
> > > > > > > > > > > > >
> > > > > > > > > > > > >
> > > > > > > > > > > > >
> > > > > > > > > > > > > AnyDesMeasure AbductionMax = {
> > > > > > > > > > > > >
> > > > > > > > > > > > > Val = -Main.MyModel.GH.Pos[0];
> > > > > > > > > > > > >
> > > > > > > > > > > > > };
> > > > > > > > > > > > >
> > > > > > > > > > > > >
> > > > > > > > > > > > >
> > > > > > > > > > > > > This function do not take the max of any
values
> > it
> > > will
> > > > > > > just
> > > > > > > > > > > return
> > > > > > > > > > > > the last
> > > > > > > > > > > > > one … and this is what you would like in
this
> > case I
> > > > > > > guess.
> > > > > > > > > > > > >
> > > > > > > > > > > > >
> > > > > > > > > > > > >
> > > > > > > > > > > > > There will be the same kind of problems
with
> > your
> > > other
> > > > > > > > > output
> > > > > > > > > > > > function in
> > > > > > > > > > > > > the parameter study as I see it. The
Abduction
> > > angle is
> > > > > > > > > > reported
> > > > > > > > > > > ok
> > > > > > > > > > > > but if
> > > > > > > > > > > > > you did the same with the deltoid activity
it
> > > would not
> > > > > > > work
> > > > > > > > > I
> > > > > > > > > > > believe
> > > > > > > > > > > > > because this value is not calculated in the
> > last step
> > > > > > > > > because
> > > > > > > > > > it
> > > > > > > > > > > > fails in
> > > > > > > > > > > > > inverse analysis, it goes ok with the
abduction
> > angle
> > > > > > > > > because
> > > > > > > > > > the
> > > > > > > > > > > > kinematics
> > > > > > > > > > > > > has been solved ok.
> > > > > > > > > > > > >
> > > > > > > > > > > > >
> > > > > > > > > > > > >
> > > > > > > > > > > > > So using the function
> > > > > > > > > > > > >
> > > > > > > > > > > > >
> > > > > > > > > > > > >
> > > > > > > > > > > > > AnyDesMeasure DeltoidActivity = {
> > > > > > > > > > > > >
> > > > > > > > > > > > > Val = max(…Study.MaxActivity());
> > > > > > > > > > > > >
> > > > > > > > > > > > > };
> > > > > > > > > > > > >
> > > > > > > > > > > > >
> > > > > > > > > > > > >
> > > > > > > > > > > > > I am not really sure what you get since you
> > take the
> > > > max
> > > > > > > of
> > > > > > > > > > > values
> > > > > > > > > > > > which are
> > > > > > > > > > > > > initialized, and this may give strange
results.
> > So I
> > > > > > > think
> > > > > > > > > you
> > > > > > > > > > > should
> > > > > > > > > > > > > consider exporting these numbers using an
> > output file
> > > > > > > and
> > > > > > > > > then
> > > > > > > > > > > > process them
> > > > > > > > > > > > > externally.
> > > > > > > > > > > > >
> > > > > > > > > > > > >
> > > > > > > > > > > > >
> > > > > > > > > > > > > I hope this helps you move on.
> > > > > > > > > > > > >
> > > > > > > > > > > > >
> > > > > > > > > > > > >
> > > > > > > > > > > > > Otherwise please write again.
> > > > > > > > > > > > >
> > > > > > > > > > > > >
> > > > > > > > > > > > >
> > > > > > > > > > > > > Best regards
> > > > > > > > > > > > >
> > > > > > > > > > > > > Søren, AnyBody Support
> > > > > > > > > > > > >
> > > > > > > > > > > > >
> > > > > > > > > > > > >
> > > > > > > > > > > > > _____
> > > > > > > > > > > > >
> > > > > > > > > > > > > From: anyscript@yahoogrou
> > > > > <mailto:anyscript%40yahoogroups.com>
> > > > > > ps.com
> > > > > > > > > > > [mailto:anyscript@yahoogrou
> > > > > <mailto:anyscript%40yahoogroups.com>
> > > > > > ps.com]
> > > > > > > > > > > > On Behalf
> > > > > > > > > > > > > Of Pierre-Olivier Lemieux
> > > > > > > > > > > > > Sent: 07 February 2008 18:46
> > > > > > > > > > > > > To: anyscript@yahoogrou
> > > > > <mailto:anyscript%40yahoogroups.com>
> > > > > > ps.com
> > > > > > > > > > > > > Subject: [AnyScript] shoulder 2D model
> > > > > > > > > > > > >
> > > > > > > > > > > > >
> > > > > > > > > > > > >
> > > > > > > > > > > > > Hi guys,
> > > > > > > > > > > > > I’m still working with anybody to finish
the
> > first
> > > part
> > > > > > > of
> > > > > > > > > > > > > my simulations in 2 dimensions. After some
> > > revisions of
> > > > > > > the
> > > > > > > > > > > model,
> > > > > > > > > > > > > i’ve found a big error in it.
> > > > > > > > > > > > > If you don’t remember, I try to simulate the
> > > migration
> > > > > > > of
> > > > > > > > > the
> > > > > > > > > > > humeral
> > > > > > > > > > > > > head, in the case of a massive rotator cuff
> > tear.
> > > > So, my
> > > > > > > > > model
> > > > > > > > > > > allows
> > > > > > > > > > > > > a translation of the humerus upward and a
> > permanent
> > > > > > > contact
> > > > > > > > > of
> > > > > > > > > > > the
> > > > > > > > > > > > > prosthetic head on the acromion. This
contact is
> > > > allowed
> > > > > > > by
> > > > > > > > > a
> > > > > > > > > > > driver
> > > > > > > > > > > > > (acromion driver), related to mathematical
> > > > properties of
> > > > > > > the
> > > > > > > > > > > elliptic
> > > > > > > > > > > > > shape. Because this contact is between a
> > > prosthesis and
> > > > > > > a
> > > > > > > > > > bone,
> > > > > > > > > > > it
> > > > > > > > > > > > > can’t supply a pulling force (just pushing
> > force is
> > > > > > > allowed)
> > > > > > > > > > (It
> > > > > > > > > > > was
> > > > > > > > > > > > > the error !!). To correct that, I have
switched
> > > off the
> > > > > > > > > > reaction
> > > > > > > > > > > of
> > > > > > > > > > > > > the driver and put a general “only pushing”
> > muscle on
> > > > > > > it. So
> > > > > > > > > > > now, the
> > > > > > > > > > > > > abduction can goes until a certain degree
and
> > after
> > > > > > > that,
> > > > > > > > > the
> > > > > > > > > > > geometry
> > > > > > > > > > > > > is not able to carry the movement, and the
> > simulation
> > > > > > > stops.
> > > > > > > > > > It
> > > > > > > > > > > is
> > > > > > > > > > > > > exactly that I want because it directly
shows
> > if the
> > > > > > > > > geometry
> > > > > > > > > > is
> > > > > > > > > > > > > efficient or not.
> > > > > > > > > > > > >
> > > > > > > > > > > > > My problem is when I try to perform a
> > parametric
> > > > > > > simulation.
> > > > > > > > > I
> > > > > > > > > > > look on
> > > > > > > > > > > > > the maximum abduction reached during the
> > simulation
> > > > > > > > > (kinematic
> > > > > > > > > > > > > rotational measure). The results are very
> > strange
> > > and I
> > > > > > > > > think
> > > > > > > > > > > that
> > > > > > > > > > > > > they are not representative, probably
because
> > the
> > > > > > > simulation
> > > > > > > > > > > stops
> > > > > > > > > > > > > with an error. So, if I would get rid of
this
> > > error by
> > > > > > > > > changing
> > > > > > > > > > > > > something on the model, it would maybe
works.
> > > > > > > > > > > > >
> > > > > > > > > > > > > Maybe you have a little idea of what I
should
> > do (I
> > > > > > > > > hope …).
> > > > > > > > > > I
> > > > > > > > > > > send
> > > > > > > > > > > > > you my model and a picture of the results.
> > > > > > > > > > > > >
> > > > > > > > > > > > > Thank you in advance for your support and
say
> > > hello to
> > > > > > > > > > everyone
> > > > > > > > > > > of
> > > > > > > > > > > > > Anybody for me :wink:
> > > > > > > > > > > > >
> > > > > > > > > > > > > bye bye
> > > > > > > > > > > > >
> > > > > > > > > > > > > Pierre
> > > > > > > > > > > > >
> > > > > > > > > > > > >
> > > > > > > > > > > > >
> > > > > > > > > > > > >
> > > > > > > > > > > > >
> > > > > > > > > > > > > [Non-text portions of this message have
been
> > removed]
> > > > > > > > > > > > >
> > > > > > > > > > > >
> > > > > > > > > > >
> > > > > > > > > >
> > > > > > > > >
> > > > > > > >
> > > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > > [Non-text portions of this message have been removed]
> > > > > >
> > > > >
> > > > >
> > > > >
> > > > >
> > > > >
> > > > > [Non-text portions of this message have been removed]
> > > > >
> > > >
> > > >
> > > >
> > > >
> > > >
> > > > [Non-text portions of this message have been removed]
> > > >
> > >
> >
>

Hi Sylvain,
I understand why you are not sure to add forward dynamic in
AnyBody. After all, AnyBody is good to perform calculations of muscle
forces within a complex system of joints and segments. From what I
know, forward dynamic is used when you know the force and you want to
know the displacement. However, finding muscle forces can be done by
using EMG signal, but there are still some controverses about their
uses and their accuracy. Thus, AnyBody can be a good alternative

I think that the best way for me will be to create an experimental
set-up and find the displacement using cables instead of muscles.
Then, I will be able to import these displacements in AnyBody and
calculate and compare the numerical and experimental forces.

Have you worked on new muscle models recently ? I’ve read an article
that compare two muscle model that are not available in AnyBody :
(Ettema (2000) Muscle contraction history. Modified Hill type vs. an
exponential decay model).

Thank you for your support, it is very appreciated.

Pierre

— In anyscript@yahoogroups.com, “AnyBody Support” <support@…> wrote:
>
> Hi Pierre,
>
> I’m glad you found what you wanted.
>
> I am not an expert user of Matlab but I guess it might be possible to
> recreate forward dynamic. We have been thinking on including forward
> dynamic in AnyBody but nothing has been really decided yet.
>
> Best regards,
> Sylvain, AnyBody Support.
>
>
>
> — In anyscript@yahoogroups.com, “Pierre-Olivier Lemieux”
> <pothekid@> wrote:
> >
> > Hi Sylvain,
> > I’ve found what I was searching for in the Nikravesh
> > textbook (Planar multibody dynamics) that you have put the reference
> > under FAQs in the publications section.
> >
> > This book explain how to apply joint coordinate method works and
> also
> > the kinematic equations. It also explain how to apply the forward
> and
> > inverse dynamic.
> >
> > Do you think that is feasible to create a 2D model in Matlab that
> work
> > in forward dynamic ? Do you work on that for further version ?
> >
> > My idea is to find a movement for the shoulder that rely upon the
> > deltoid activity, knowing that this muscle is the only one that
> makes
> > the movement in case of a massive rotator cuff tear.
> >
> > Thank you for you support
> >
> > Pierre
> >
> >
> > — In anyscript@yahoogroups.com, “AnyBody Support” <support@>
> wrote:
> > >
> > > Hi Pierre,
> > >
> > > There is a good explanation of how AnyBody perform the muscle
> > > calculation in this tutorial:
> > > http://www.anybodytech.com/691.0.html
> > >
> > > Hope you will find there what you want.
> > >
> > > Best regards,
> > > Sylvain, AnyBody Support.
> > >
> > >
> > >
> > >
> > > — In anyscript@yahoogroups.com, “Pierre-Olivier Lemieux”
> > > <pothekid@> wrote:
> > > >
> > > > Hi Soren,
> > > > there is no change of geometry during abduction. It’s
> surely
> > > > just a codec differences or the video encryption method in
> Matlab.
> > > The
> > > > geometry changes only during the parameters study.
> > > >
> > > > My question was more about how Anybody do the calculations.
> Does it
> > > > make a static calculation or a dynamic one ? I mean, does the
> > > program
> > > > compute the minimal force to have equilibrium or a more complex
> > > > calculation ?
> > > >
> > > > I ask this question because I have to understand how the
> program
> > > works
> > > > in order to be able to explain it in my paper.
> > > >
> > > > Maybe you can refer me to an article in the Documentation
> repository
> > > > of Anybody that explain how AnyBody perfom the muscle
> calculation. I
> > > > know about the muscle recruitment, but not about the force
> itself.
> > > >
> > > > I hope that is more clear for you.
> > > >
> > > > Thank you again
> > > >
> > > > Pierre
> > > >
> > > > — In anyscript@yahoogroups.com, “AnyBody Support” <support@>
> > > wrote:
> > > > >
> > > > > Hi Pierre
> > > > >
> > > > >
> > > > >
> > > > > I have seen the video and have a question about the GH head
> > > shape.
> > > > I do not
> > > > > understand why the GH head changes its shape while the
> analysis is
> > > > running,
> > > > > initially it has a long narrow shape and in the end it looks
> more
> > > > compressed
> > > > > in shape. Could it be graphic related and just something seen
> on
> > > > this video?
> > > > >
> > > > >
> > > > >
> > > > >
> > > > > In AnyBody such a change in the shape is not possible while
> the
> > > model is
> > > > > running, there would have to be several segments to replicate
> > > this.
> > > > >
> > > > >
> > > > >
> > > > > I understand your point of not replicating the same
> optimization
> > > in
> > > > AnyBody
> > > > > and Matlab, but if you plan to impose the results found in
> matlab
> > > on the
> > > > > AnyBody model it will be important that the models gives the
> same
> > > > results.
> > > > >
> > > > >
> > > > >
> > > > > Please write again if you have further questions, I was a bit
> > > unsure
> > > > if the
> > > > > last part of your posting was a question.
> > > > >
> > > > >
> > > > >
> > > > > Best regards
> > > > >
> > > > > Søren, AnyBody Support
> > > > >
> > > > >
> > > > >
> > > > >
> > > > >
> > > > > _____
> > > > >
> > > > > From: anyscript@yahoogroups.com
> [mailto:anyscript@yahoogroups.com]
> > > > On Behalf
> > > > > Of Pierre-Olivier Lemieux
> > > > > Sent: 19 March 2008 19:22
> > > > > To: anyscript@yahoogroups.com
> > > > > Subject: [AnyScript] Re: shoulder 2D model
> > > > >
> > > > >
> > > > >
> > > > > Hi Soren,
> > > > > the Matlab routine (which I’ve created entirely) is pretty
> > > > > simple. For each positions, it perform a calculation of the
> lever
> > > arm
> > > > > and the angle of the upper part of the muscle to separate the
> X
> > > and Y
> > > > > direction of the muscle force. When the contact between the
> > > prosthesis
> > > > > and the acromion occurs, the acromial reaction is possible
> and is
> > > > > drawn on the figure. There is no recruitment muscle because
> there
> > > is
> > > > > only one muscle in my routine (deltoid).
> > > > >
> > > > > The strength model is a constant force model. Like you can
> see,
> > > the
> > > > > muscle wrapping is done by using a thin rope between the
> origin
> > > and
> > > > > insertion point.
> > > > >
> > > > > I send you a little video of all that under (GH_Movement.zip).
> > > > >
> > > > > I understand your idea about creating the same routine in
> > > Anybody, but
> > > > > I don’t see any interest about doing that if the results
> between
> > > > > AnyBody and Matlab are the same.
> > > > >
> > > > > My idea was rather to find the correct movement pattern in
> term of
> > > > > prosthetic dimensions in Matlab and then put this movement
> into my
> > > > > AnyBody model, to find the deltoid forces. By obtaining the
> same
> > > > > results in AnyBody and Matlab, I think this is a way to
> verify the
> > > > > accuracy of my findings… What do you think about that ?
> > > > >
> > > > > I have try to get the same models between AnyBody and Matlab.
> To
> > > do
> > > > > so, I’ve put the static friction coefficient to 0 and put a
> > > constant
> > > > > force model for the deltoid. Thus, I think that the
> differences
> > > are
> > > > > just in the WeakMuscle definition. In my Matlab routine,
> there is
> > > no
> > > > > WeakMuscle because the acromion force give us a hint that
> > > something
> > > > > don’t work during the first abduction degrees (check the
> > > results.jpg).
> > > > >
> > > > > I hope that was more clear for you.
> > > > >
> > > > > Thank you very much.
> > > > >
> > > > > Pierre
> > > > >
> > > > > — In anyscript@yahoogrou <mailto:anyscript%
> 40yahoogroups.com>
> > > ps.com,
> > > > > “AnyBody Support” <support@> wrote:
> > > > > >
> > > > > > Hi Pierre
> > > > > >
> > > > > >
> > > > > >
> > > > > > I think I understand what your algorithm is doing, it finds
> the
> > > > minimum
> > > > > > deltoid force and if there is a force unbalance it moves
> the
> > > humeral
> > > > > until
> > > > > > balance is obtained.
> > > > > >
> > > > > >
> > > > > >
> > > > > > Using the build in optimizer in AnyBody something similar
> > > should be
> > > > > possible
> > > > > > I guess, but it will be a slightly differently approach.
> > > Basically
> > > > > you will
> > > > > > need a model that will always be able to balance itself
> through
> > > > > artificial
> > > > > > joint reactions, but through the optimization you can
> change the
> > > > > motion so
> > > > > > that it tries to minimize those reactions.
> > > > > >
> > > > > >
> > > > > >
> > > > > > 1 you will need the extra muscle that ensures that a force
> > > balance can
> > > > > > always be obtained.
> > > > > >
> > > > > > 2 a design variable has to be defined, this is the
> translation,
> > > > > maybe this
> > > > > > should be done using an interpolation function…
> > > > > >
> > > > > > 3 an objective function has to be setup, here I would
> choose to
> > > > > minimize the
> > > > > > forces in the artificial muscles which you did not want to
> > > become
> > > > > active. So
> > > > > > you will be minimizing these reaction forces by moving the
> > > humeral
> > > > > head to
> > > > > > another position.
> > > > > >
> > > > > >
> > > > > >
> > > > > > There is a tutorial of parameter and optimization studies
> it
> > > might be
> > > > > > helpful.
> > > > > >
> > > > > >
> > > > > >
> > > > > > I can not judge if the MatLab code is ok sorry, I can think
> of
> > > the
> > > > > following
> > > > > > questions
> > > > > >
> > > > > > 1 Are there any differences in the models, that in anyway
> could
> > > > justify
> > > > > > these differences?
> > > > > >
> > > > > > 2 What about muscles wrapping, how is this done in MatLab…
> > > > > >
> > > > > > 3 Muscles strength models
> > > > > >
> > > > > > 4 Recruitment criteria?
> > > > > >
> > > > > > Etc…
> > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > > Best regards
> > > > > >
> > > > > > Søren, AnyBody Support
> > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > > _____
> > > > > >
> > > > > > From: anyscript@yahoogrou <mailto:anyscript%
> 40yahoogroups.com>
> > > ps.com
> > > > > [mailto:anyscript@yahoogrou <mailto:anyscript%
> 40yahoogroups.com>
> > > ps.com]
> > > > > On Behalf
> > > > > > Of Pierre-Olivier Lemieux
> > > > > > Sent: 18 March 2008 19:18
> > > > > > To: anyscript@yahoogrou <mailto:anyscript%
> 40yahoogroups.com>
> > > ps.com
> > > > > > Subject: [AnyScript] Re: shoulder 2D model
> > > > > >
> > > > > >
> > > > > >
> > > > > > Hi Soren,
> > > > > > thank you for your support. Now I have a model that
> represent
> > > > > > more my pathology and I have also created a Matlab
> algorithm
> > > that find
> > > > > > the movement of the humeral head and import it into my
> AnyBody
> > > model.
> > > > > >
> > > > > > My Matlab algorithm compute the minimum force in the
> deltoid to
> > > > > > perform an increment of abduction with a moment balance
> > > (constant
> > > > > > velocity). If there is a non-equilibrium of the forces and
> a
> > > degree of
> > > > > > freedom in the direction of the force, there is
> automatically an
> > > > > > increment of displacement. This is the case for the vertical
> > > > > > displacement in my model.
> > > > > >
> > > > > > Now, I want to know how Anybody solve a problem. I know
> that
> > > for each
> > > > > > step time, it use the min/max criterion to find the minimum
> > > muscle
> > > > > > activity. Does it works like my Matlab routine ?
> > > > > >
> > > > > > I have compared the Matlab results from those obtained in
> > > Anybody from
> > > > > > the same movement and in a lot of situation it gives me
> similar
> > > > > > results. However, there is some differences that I’m not
> able to
> > > > > > explain. Do you think that my Matlab routine is well made ?
> > > > > >
> > > > > > I send you my results (Matlab & AnyBody) for a particular
> case
> > > under
> > > > > > (PO_Lemieux_shoulder_model_March_18). Just take a look and
> give
> > > me
> > > > > > your idea about it.
> > > > > >
> > > > > > Thank you again.
> > > > > >
> > > > > > Pierre
> > > > > >
> > > > > > — In anyscript@yahoogrou <mailto:anyscript%
> 40yahoogroups.com>
> > > > ps.com,
> > > > > > “AnyBody Support” <support@> wrote:
> > > > > > >
> > > > > > > Hi Pierre
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > The contact force you have applied works on the contact
> > > segment.
> > > > This
> > > > > > > element will need to be carried by the driver otherwise
> the
> > > model
> > > > > > will be
> > > > > > > unbalanced and unable to solve; it can not be left
> unbalanced.
> > > > > > >
> > > > > > > The contact force you have applied can only do a pushing
> > > force,
> > > > so the
> > > > > > > reactions you will see in this contact driver will only
> be in
> > > one
> > > > > > direction.
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > The weak muscles also need to be there, there can not be
> dof
> > > in the
> > > > > > model
> > > > > > > which are unbalanced. Even if these are supposed to have
> > > force, it
> > > > > > will lead
> > > > > > > to numeric problems if they are left unbalanced.
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > The reason why the weak muscles are needed must be a
> moment
> > > balance
> > > > > > issue
> > > > > > > there appears to be situation where the deltoid muscle it
> self
> > > > can not
> > > > > > > balance the upper arm. To me it sounds reasonable, these
> weak
> > > > muscles
> > > > > > > replicated the joint reactions up/down and these would
> always
> > > be non
> > > > > > zero.
> > > > > > > In you had more muscles in the model these might be able
> to
> > > > > control this
> > > > > > > up/down dofs., and the weak muscles could be excluded.
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > Best regards
> > > > > > >
> > > > > > > Søren
> > > > > > >
> > > > > > > _____
> > > > > > >
> > > > > > > From: anyscript@yahoogrou <mailto:anyscript%
> 40yahoogroups.com>
> > > > ps.com
> > > > > > [mailto:anyscript@yahoogrou <mailto:anyscript%
> 40yahoogroups.com>
> > > > ps.com]
> > > > > > On Behalf
> > > > > > > Of Pierre-Olivier Lemieux
> > > > > > > Sent: 20 February 2008 03:31
> > > > > > > To: anyscript@yahoogrou <mailto:anyscript%
> 40yahoogroups.com>
> > > ps.com
> > > > > > > Subject: [AnyScript] Re: shoulder 2D model
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > Hi again Sylvain,
> > > > > > > my model works well now with the Reaction.Type turned
> > > > > > > on within the Contact driver. However, it makes this
> reaction
> > > > able to
> > > > > > > pull or push. For some set-up of the parameters of the
> > > ellipse,
> > > > I got
> > > > > > > negative forces for the Contact driver. It tells me that
> the
> > > > permanent
> > > > > > > contact with the acromion is not valid in all the case.
> Maybe
> > > I
> > > > should
> > > > > > > know the real displacement in term of the elliptic shape,
> > > prior to
> > > > > > > proceed to the inverse analysis.
> > > > > > >
> > > > > > > Also, it is not only the deltoid that pulls on the
> humeral
> > > head,
> > > > it is
> > > > > > > also the WeakMuscles. These muscles are not there
> normally and
> > > > when I
> > > > > > > comment them, it gives me a “Muscle recruitment” error if
> the
> > > tStart
> > > > > > > is 0. Thus, I want to know why the deltoid can’t do the
> > > complete
> > > > > > > abduction by itself ?
> > > > > > >
> > > > > > > Thank you again.
> > > > > > >
> > > > > > > Pierre-Olivier
> > > > > > >
> > > > > > > — In anyscript@yahoogrou <mailto:anyscript%
> > > 40yahoogroups.com>
> > > > > ps.com,
> > > > > > > “AnyBody Support” <support@> wrote:
> > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > > > Hi,
> > > > > > > >
> > > > > > > > The reason you cannot see the reaction force of
> > > > > > > > ContactSurfaceLinPush is because the ContactSeg you
> created
> > > is
> > > > not
> > > > > > > > fully balanced. I was effectively talking about adding
> some
> > > > > > > > AnyReacForce between the ContactSeg and the humerus, so
> > > that the
> > > > > > > > ContactSeg is carried in all directions in term of
> forces
> > > and it
> > > > > can
> > > > > > > > transmit the reaction forces from the acromion point to
> the
> > > > humerus
> > > > > > > > head.
> > > > > > > > But it’s not the only way to do it: by adding a
> prismatic
> > > > joint you
> > > > > > > > drive the ContactSeg in five directions, you just have
> to
> > > > switch on
> > > > > > > > the ReactionType of the Ellipse2ContactDriver to carry
> the
> > > > load of
> > > > > > > > the segment in the sliding direction also. Now you will
> be
> > > > able to
> > > > > > > > see appear the reaction force at the contact point.
> > > > > > > >
> > > > > > > > Best regards.
> > > > > > > > Sylvain, AnyBody Support
> > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > > > — In anyscript@yahoogrou <mailto:anyscript%
> > > 40yahoogroups.com>
> > > > > > ps.com,
> > > > > > > “Pierre-Olivier Lemieux”
> > > > > > > > <pothekid@> wrote:
> > > > > > > > >
> > > > > > > > > Hi Sylvain,
> > > > > > > > > I’ve made the changes that you told me about, but I’m
> > > > > > > > not
> > > > > > > > > able to make my model works well. I don’t have any
> > > > > > > > > “ContactSurfaceLinPush” reaction forces and friction
> > > forces.
> > > > > > > > >
> > > > > > > > > In Excel, I’ve calculated the displacement of the
> humeral
> > > > head in
> > > > > > > > term
> > > > > > > > > of static equations for the abduction and put those
> values
> > > > in the
> > > > > > > > > model (“SliderDriver” and “AbductionDriver”). With
> these
> > > > values,
> > > > > > > > the
> > > > > > > > > displacement is upward at the beginning of abduction
> and
> > > > downward
> > > > > > > > at
> > > > > > > > > the end. So, the contact between the acromion and
> humeral
> > > > head is
> > > > > > > > not
> > > > > > > > > always there. For this reason,
> the “ContactSurfaceLinPush”
> > > > is very
> > > > > > > > > useful for me.
> > > > > > > > >
> > > > > > > > > I’m not sure to understand well when you talk about
> > > adding some
> > > > > > > > > reaction forces. Is it the “AnyReacForce” object ? If
> it
> > > is the
> > > > > > > > case,
> > > > > > > > > can you help me to write it correctly ?
> > > > > > > > >
> > > > > > > > > My new model is named “PO_Lemieux_shoulder_3”.
> > > > > > > > >
> > > > > > > > > thank you for your support.
> > > > > > > > >
> > > > > > > > > Pierre-Olivier
> > > > > > > > >
> > > > > > > > > — In anyscript@yahoogrou <mailto:anyscript%
> > > 40yahoogroups.com>
> > > > > > ps.com,
> > > > > > > “AnyBody Support” <support@>
> > > > > > > > wrote:
> > > > > > > > > >
> > > > > > > > > > Hi Pierre,
> > > > > > > > > >
> > > > > > > > > > In the file ContactSurfaceLinPush the object Base
> > > define the
> > > > > > > > node
> > > > > > > > > > that is applying the force. The object Target
> defines
> > > the
> > > > node
> > > > > > > > where
> > > > > > > > > > the force is applied to. So by switching Base and
> Target
> > > > object
> > > > > > > > you
> > > > > > > > > > are now applying the reaction forces from the
> center of
> > > the
> > > > > > > > > > ellipsoid to p12. And the reaction forces are
> displayed
> > > in
> > > > the
> > > > > > > > Base
> > > > > > > > > > frame (ellipsoid frame in this case) that’s why the
> > > arrows
> > > > > > > > follow
> > > > > > > > > > the abduction angle.
> > > > > > > > > >
> > > > > > > > > > This can be improved by applying the reaction
> forces
> > > from
> > > > > P12 to
> > > > > > > > a
> > > > > > > > > > floating point on the external shape of the
> ellipsoid,
> > > where
> > > > > the
> > > > > > > > > > contact really occurs. You can create a segment
> (with no
> > > > mass)
> > > > > > > > that
> > > > > > > > > > you drive to slide on the ellipsoid shape as you
> did
> > > with the
> > > > > > > > > > AcromionDriver, and you set the distance between
> one
> > > point of
> > > > > > > > this
> > > > > > > > > > segment and P12 to 0. Then you have to create some
> > > reaction
> > > > > > > > forces
> > > > > > > > > > between this segment and the ellipsoid to transmit
> all
> > > the
> > > > > > > > forces.
> > > > > > > > > > So you will now have a floating contact point on the
> > > > ellipsoid
> > > > > > > > > > shape. By setting the Base to the new segment you
> > > should be
> > > > > able
> > > > > > > > to
> > > > > > > > > > draw the reaction force vectors in the tangential
> plane
> > > of
> > > > the
> > > > > > > > shape.
> > > > > > > > > >
> > > > > > > > > > About the ContactRotPush, this applies a moment
> between
> > > two
> > > > > > > > segments
> > > > > > > > > > in contact. There are no friction forces, so this
> may
> > > not be
> > > > > > > > what
> > > > > > > > > > you need.
> > > > > > > > > >
> > > > > > > > > > For the external pushing force of
> ContactSurfaceLinPush
> > > you
> > > > > talk
> > > > > > > > > > about: this function actually use 5 muscles. One
> pushing
> > > > in the
> > > > > > > > > > normal direction of the surface and 4 others
> creating
> > > the
> > > > > > > > friction
> > > > > > > > > > forces in the plane of the surface combined with
> normal
> > > > force;
> > > > > > > > > > please see this link where there is a short
> description
> > > > > > > > > >
> > > > > > > > > >
> > > > > > > > > >
> > > > > > > > > > http://www.anybodyt
> > > > > > <http://www.anybodyt <http://www.anybodyt
> > > > > <http://www.anybodytech.com/116.0.html?&tx_ttnews>
> > > > > ech.com/116.0.html?&tx_ttnews>
> > > > > > ech.com/116.0.html?&tx_ttnews>
> > > > > > > ech.com/116.0.html?&tx_ttnews[backPid]
> > > > > > > > > > =37&tx_ttnews[tt_news]=23&cHash=c92c2826e9
> > > > > > > > > >
> > > > > > > > > >
> > > > > > > > > >
> > > > > > > > > > I understand you would like to activate only the
> > > friction
> > > > > > > > muscles?
> > > > > > > > > > That is not possible, the five muscles are linked
> and
> > > working
> > > > > > > > > > together.
> > > > > > > > > >
> > > > > > > > > > And for the strange behaviour you noticed when you
> > > change the
> > > > > > > > > > deltoid origin, well i don’t think it’s so strange.
> > > > Because by
> > > > > > > > > > changing the origin of the muscle you change the
> force
> > > it
> > > > will
> > > > > > > > have
> > > > > > > > > > to develop, you also change the reaction forces in
> the
> > > > contact
> > > > > > > > > > point. But i think you don’t have a big interest in
> > > changing
> > > > > the
> > > > > > > > > > muscle origin and you should just keep it in its
> normal
> > > value.
> > > > > > > > > >
> > > > > > > > > > It’s correct that you did not find repository 7, it
> is
> > > not
> > > > > > > > public, I
> > > > > > > > > > forgot this, sorry. You should look in the
> repository
> > > 6, here
> > > > > > > > you
> > > > > > > > > > will find the file PedalDemoConditional in
> ARep\Aalborg.
> > > > > > > > > >
> > > > > > > > > > Best Regards
> > > > > > > > > > Sylvain, AnyBodySupport
> > > > > > > > > >
> > > > > > > > > >
> > > > > > > > > >
> > > > > > > > > >
> > > > > > > > > >
> > > > > > > > > >
> > > > > > > > > > — In anyscript@yahoogrou
> > > > <mailto:anyscript%40yahoogroups.com>
> > > > > > > ps.com, “Pierre-Olivier Lemieux”
> > > > > > > > > > <pothekid@> wrote:
> > > > > > > > > > >
> > > > > > > > > > > Hi Sylvain,
> > > > > > > > > > > thank you for your support. I’ve worked around
> > > > > > > > > > > the “ContactLinePush” problem all the week-end
> and
> > > I’ve
> > > > found
> > > > > > > > that
> > > > > > > > > > > by swithching the “Base” and “Target” objects,
> the
> > > friction
> > > > > > > > > > appears.
> > > > > > > > > > > However, it gives me too high results because the
> > > switch
> > > > > mixed
> > > > > > > > up
> > > > > > > > > > > all the calculations. For exemple, the resulting
> > > friction
> > > > > > > > force is
> > > > > > > > > > > equal to the normal force, that is not correct.
> Also,
> > > the
> > > > > > > > arrows
> > > > > > > > > > > rotate following the abduction angle. Maybe a
> > > > > “ContactRotPush”
> > > > > > > > > > would
> > > > > > > > > > > perform better ?
> > > > > > > > > > > So, I guess that I’m on a good way to find a
> solution,
> > > > but I
> > > > > > > > still
> > > > > > > > > > > need to understand how this script works, and
> what
> > > are the
> > > > > > > > > > > accepted “RefFrame” for the “Base” and “Target”
> > > objects.
> > > > > > > > > > >
> > > > > > > > > > > Also, in the present case, there is an external
> > > pushing
> > > > force
> > > > > > > > > > > (ContactLinePush) on the shoulder upward during
> all
> > > > abduction
> > > > > > > > to
> > > > > > > > > > > keep the contact between the acromion and the
> > > ellipse.
> > > > > > > > > > > However, in the real case, the deltoid, while
> > > performing
> > > > the
> > > > > > > > > > > abduction alone, pulls on the humerus, instead
> > > > > > > > > > of “ContactLinePush”,
> > > > > > > > > > > and creates a contact force between the acromion
> and
> > > > humeral
> > > > > > > > head
> > > > > > > > > > > (that should be the ContactLinePush). I’ve made
> an
> > > > > > > > experimental
> > > > > > > > > > set-
> > > > > > > > > > > up that has shown me these results.
> > > > > > > > > > >
> > > > > > > > > > > Also, I’ve noticed another strange behavior. For
> > > exemple,
> > > > > when
> > > > > > > > I
> > > > > > > > > > use
> > > > > > > > > > > the acromion contact point P12 : (0,0.039,0) and
> > > deltoid
> > > > > > > > origin
> > > > > > > > > > > point P8 : (0,0.050,0) and use
> the “ContactLinPush”
> > > script,
> > > > > > > > the
> > > > > > > > > > > results are very different from using the same
> P12,
> > > but
> > > > > > > > changing
> > > > > > > > > > P8
> > > > > > > > > > > to a closer distance (0,0.038,0) from P12. Note
> that
> > > the
> > > > > first
> > > > > > > > set
> > > > > > > > > > > of values for P8 and P12 are the ones that I need.
> > > > > > > > > > >
> > > > > > > > > > > So, if you can help me understanding these
> problems,
> > > it
> > > > would
> > > > > > > > help
> > > > > > > > > > > me a lot.
> > > > > > > > > > >
> > > > > > > > > > > Have a good week and thank you again.
> > > > > > > > > > >
> > > > > > > > > > > Pierre.
> > > > > > > > > > >
> > > > > > > > > > > P.S. : I’ve not found the repository 7, is it
> normal ?
> > > > > > > > > > >
> > > > > > > > > > > — In anyscript@yahoogrou
> > > > > <mailto:anyscript%40yahoogroups.com>
> > > > > > > ps.com, “AnyBody Support” <support@>
> > > > > > > > > > > wrote:
> > > > > > > > > > > >
> > > > > > > > > > > > Hi Pierre-Olivier
> > > > > > > > > > > >
> > > > > > > > > > > > I will try to give you some more information on
> the
> > > file
> > > > > > > > > > > > ContactSurfaceLinPush, this file can create a
> > > conditional
> > > > > > > > > > contact
> > > > > > > > > > > > with pushing muscles. If the two contact points
> are
> > > close
> > > > > > > > enough
> > > > > > > > > > > > (this distance is set by the user) then the
> muscles
> > > will
> > > > > > > > have a
> > > > > > > > > > > high
> > > > > > > > > > > > strength and can create the contact force. If
> the
> > > two
> > > > > > > > contact
> > > > > > > > > > > points
> > > > > > > > > > > > are to far from each other, the muscles will
> have
> > > no
> > > > > > > > strength at
> > > > > > > > > > > > all, and there can be no contact force.
> > > > > > > > > > > > But I am not sure if this utility is useful for
> your
> > > > model
> > > > > > > > > > because
> > > > > > > > > > > > you want a permanent contact of the humerus
> head?
> > > > > > > > > > > >
> > > > > > > > > > > >
> > > > > > > > > > > >
> > > > > > > > > > > > The file also holds another utility which is the
> > > > ability to
> > > > > > > > > > create
> > > > > > > > > > > > normal reaction force and friction force at the
> > > contact
> > > > > > > > point.
> > > > > > > > > > > This
> > > > > > > > > > > > could maybe be interesting for your model. But
> you
> > > > have to
> > > > > > > > take
> > > > > > > > > > > care
> > > > > > > > > > > > to apply those forces to the acromion contact
> > > point. You
> > > > > > > > > > actually
> > > > > > > > > > > > applied them to the center of the humerus head
> > > instead of
> > > > > > > > the
> > > > > > > > > > > > contact point.
> > > > > > > > > > > >
> > > > > > > > > > > > I tried running the files you uploaded and it
> is
> > > working
> > > > > > > > with
> > > > > > > > > > the
> > > > > > > > > > > > elliptic shape without doing any changes.
> However
> > > the
> > > > model
> > > > > > > > is
> > > > > > > > > > now
> > > > > > > > > > > > fully balanced and it is not possible anymore
> to
> > > see that
> > > > > > > > point
> > > > > > > > > > > you
> > > > > > > > > > > > was interested in the last time (where the
> geometry
> > > > cannot
> > > > > > > > carry
> > > > > > > > > > > the
> > > > > > > > > > > > load) to plot the max abduction.
> > > > > > > > > > > >
> > > > > > > > > > > > So the solution of recreating the humeral
> contact
> > > > > depends on
> > > > > > > > the
> > > > > > > > > > > > simulation you want to perform
> > > > > > > > > > > >
> > > > > > > > > > > > An example of using ContactSurfaceLinPush is
> > > available in
> > > > > > > > the
> > > > > > > > > > > > repository
> > > 7/Application/Examples/PedalDemoConditional,
> > > > > as I
> > > > > > > > > > > recall
> > > > > > > > > > > > it the contact muscles are defined in the
> > > > > JointAndDriver.any
> > > > > > > > > > file.
> > > > > > > > > > > >
> > > > > > > > > > > > Best regards,
> > > > > > > > > > > > Sylvain, AnyBody Support
> > > > > > > > > > > >
> > > > > > > > > > > >
> > > > > > > > > > > >
> > > > > > > > > > > >
> > > > > > > > > > > >
> > > > > > > > > > > > — In anyscript@yahoogrou
> > > > > > <mailto:anyscript%40yahoogroups.com>
> > > > > > > ps.com, “Pierre-Olivier Lemieux”
> > > > > > > > > > > > <pothekid@> wrote:
> > > > > > > > > > > > >
> > > > > > > > > > > > > Hi Soeren,
> > > > > > > > > > > > > thank you for you recommendations. It seems
> to
> > > > > > > > works
> > > > > > > > > > > now
> > > > > > > > > > > > for
> > > > > > > > > > > > > the abduction. The deltoid activity is not
> what I
> > > want
> > > > > > > > most,
> > > > > > > > > > so
> > > > > > > > > > > > I’ve
> > > > > > > > > > > > > just commented it out.
> > > > > > > > > > > > > I have an other question now. When I went to
> > > Aalborg,
> > > > > John
> > > > > > > > > > gave
> > > > > > > > > > > me
> > > > > > > > > > > > a
> > > > > > > > > > > > > folder with some special scripts. One of these
> > > > scripts is
> > > > > > > > > > > > > “ContactSurfaceLinPush”. Like it says, it was
> to
> > > > create a
> > > > > > > > > > pushing
> > > > > > > > > > > > > force on a contact node (I guess). However, I
> > > have some
> > > > > > > > > > > > difficulties
> > > > > > > > > > > > > to understand this script. Also, it works
> with a
> > > > constant
> > > > > > > > > > radius
> > > > > > > > > > > > > humeral head, but not for my elliptic shape.
> Do
> > > you
> > > > think
> > > > > > > > this
> > > > > > > > > > is
> > > > > > > > > > > > > possible ?
> > > > > > > > > > > > >
> > > > > > > > > > > > > You can check the
> folder “AcromionHumerusContact”
> > > in
> > > > the
> > > > > > > > > > bottom
> > > > > > > > > > > of
> > > > > > > > > > > > my
> > > > > > > > > > > > > main script (The file is
> > > > “PO_Lemieux_shoulder2D.zip”). I
> > > > > > > > will
> > > > > > > > > > > send
> > > > > > > > > > > > you
> > > > > > > > > > > > > the special script, because I don’t know who
> has
> > > > written
> > > > > > > > it.
> > > > > > > > > > > > >
> > > > > > > > > > > > > Thank you again,
> > > > > > > > > > > > >
> > > > > > > > > > > > > Pierre-Olivier
> > > > > > > > > > > > >
> > > > > > > > > > > > >
> > > > > > > > > > > > >
> > > > > > > > > > > > > — In anyscript@yahoogrou
> > > > > > <mailto:anyscript%40yahoogroups.com>
> > > > > > > ps.com, “AnyBody Support”
> > > > > > > > <support@>
> > > > > > > > > > > > wrote:
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > Hi Pierre
> > > > > > > > > > > > > >
> > > > > > > > > > > > > >
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > I think there is a simple solution to your
> > > problem….
> > > > > > > > > > > > > >
> > > > > > > > > > > > > >
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > The reason why you are getting this strange
> > > > solution is
> > > > > > > > that
> > > > > > > > > > > the
> > > > > > > > > > > > > analysis
> > > > > > > > > > > > > > has not been finished due to the inverse
> > > analysis,
> > > > this
> > > > > > > > is
> > > > > > > > > > as
> > > > > > > > > > > you
> > > > > > > > > > > > > expect.
> > > > > > > > > > > > > > The abduction angle you find by taking the
> max
> > > > value of
> > > > > > > > the
> > > > > > > > > > > > > abduction angle
> > > > > > > > > > > > > > function. This is fine if the analysis had
> > > finished
> > > > > > > > correctly
> > > > > > > > > > > > > because then
> > > > > > > > > > > > > > it would look at all the values in the
> output
> > > > function
> > > > > > > > (nStep
> > > > > > > > > > > > > values) and
> > > > > > > > > > > > > > find the maximum one. When the analysis
> stops
> > > it will
> > > > > > > > still
> > > > > > > > > > > look
> > > > > > > > > > > > at
> > > > > > > > > > > > > these
> > > > > > > > > > > > > > nStep values, but now some of these can
> > > > > > > > contain “garbage”
> > > > > > > > > > > > numbers.
> > > > > > > > > > > > > >
> > > > > > > > > > > > > >
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > So the remedy in this case is to change the
> > > output
> > > > > > > > function
> > > > > > > > > > in
> > > > > > > > > > > > the
> > > > > > > > > > > > > > parameterstudy to the following
> > > > > > > > > > > > > >
> > > > > > > > > > > > > >
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > AnyDesMeasure AbductionMax = {
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > Val = -Main.MyModel.GH.Pos[0];
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > };
> > > > > > > > > > > > > >
> > > > > > > > > > > > > >
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > This function do not take the max of any
> values
> > > it
> > > > will
> > > > > > > > just
> > > > > > > > > > > > return
> > > > > > > > > > > > > the last
> > > > > > > > > > > > > > one … and this is what you would like in
> this
> > > case I
> > > > > > > > guess.
> > > > > > > > > > > > > >
> > > > > > > > > > > > > >
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > There will be the same kind of problems
> with
> > > your
> > > > other
> > > > > > > > > > output
> > > > > > > > > > > > > function in
> > > > > > > > > > > > > > the parameter study as I see it. The
> Abduction
> > > > angle is
> > > > > > > > > > > reported
> > > > > > > > > > > > ok
> > > > > > > > > > > > > but if
> > > > > > > > > > > > > > you did the same with the deltoid activity
> it
> > > > would not
> > > > > > > > work
> > > > > > > > > > I
> > > > > > > > > > > > believe
> > > > > > > > > > > > > > because this value is not calculated in the
> > > last step
> > > > > > > > > > because
> > > > > > > > > > > it
> > > > > > > > > > > > > fails in
> > > > > > > > > > > > > > inverse analysis, it goes ok with the
> abduction
> > > angle
> > > > > > > > > > because
> > > > > > > > > > > the
> > > > > > > > > > > > > kinematics
> > > > > > > > > > > > > > has been solved ok.
> > > > > > > > > > > > > >
> > > > > > > > > > > > > >
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > So using the function
> > > > > > > > > > > > > >
> > > > > > > > > > > > > >
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > AnyDesMeasure DeltoidActivity = {
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > Val = max(…Study.MaxActivity());
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > };
> > > > > > > > > > > > > >
> > > > > > > > > > > > > >
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > I am not really sure what you get since you
> > > take the
> > > > > max
> > > > > > > > of
> > > > > > > > > > > > values
> > > > > > > > > > > > > which are
> > > > > > > > > > > > > > initialized, and this may give strange
> results.
> > > So I
> > > > > > > > think
> > > > > > > > > > you
> > > > > > > > > > > > should
> > > > > > > > > > > > > > consider exporting these numbers using an
> > > output file
> > > > > > > > and
> > > > > > > > > > then
> > > > > > > > > > > > > process them
> > > > > > > > > > > > > > externally.
> > > > > > > > > > > > > >
> > > > > > > > > > > > > >
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > I hope this helps you move on.
> > > > > > > > > > > > > >
> > > > > > > > > > > > > >
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > Otherwise please write again.
> > > > > > > > > > > > > >
> > > > > > > > > > > > > >
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > Best regards
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > Søren, AnyBody Support
> > > > > > > > > > > > > >
> > > > > > > > > > > > > >
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > _____
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > From: anyscript@yahoogrou
> > > > > > <mailto:anyscript%40yahoogroups.com>
> > > > > > > ps.com
> > > > > > > > > > > > [mailto:anyscript@yahoogrou
> > > > > > <mailto:anyscript%40yahoogroups.com>
> > > > > > > ps.com]
> > > > > > > > > > > > > On Behalf
> > > > > > > > > > > > > > Of Pierre-Olivier Lemieux
> > > > > > > > > > > > > > Sent: 07 February 2008 18:46
> > > > > > > > > > > > > > To: anyscript@yahoogrou
> > > > > > <mailto:anyscript%40yahoogroups.com>
> > > > > > > ps.com
> > > > > > > > > > > > > > Subject: [AnyScript] shoulder 2D model
> > > > > > > > > > > > > >
> > > > > > > > > > > > > >
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > Hi guys,
> > > > > > > > > > > > > > I’m still working with anybody to finish
> the
> > > first
> > > > part
> > > > > > > > of
> > > > > > > > > > > > > > my simulations in 2 dimensions. After some
> > > > revisions of
> > > > > > > > the
> > > > > > > > > > > > model,
> > > > > > > > > > > > > > i’ve found a big error in it.
> > > > > > > > > > > > > > If you don’t remember, I try to simulate the
> > > > migration
> > > > > > > > of
> > > > > > > > > > the
> > > > > > > > > > > > humeral
> > > > > > > > > > > > > > head, in the case of a massive rotator cuff
> > > tear.
> > > > > So, my
> > > > > > > > > > model
> > > > > > > > > > > > allows
> > > > > > > > > > > > > > a translation of the humerus upward and a
> > > permanent
> > > > > > > > contact
> > > > > > > > > > of
> > > > > > > > > > > > the
> > > > > > > > > > > > > > prosthetic head on the acromion. This
> contact is
> > > > > allowed
> > > > > > > > by
> > > > > > > > > > a
> > > > > > > > > > > > driver
> > > > > > > > > > > > > > (acromion driver), related to mathematical
> > > > > properties of
> > > > > > > > the
> > > > > > > > > > > > elliptic
> > > > > > > > > > > > > > shape. Because this contact is between a
> > > > prosthesis and
> > > > > > > > a
> > > > > > > > > > > bone,
> > > > > > > > > > > > it
> > > > > > > > > > > > > > can’t supply a pulling force (just pushing
> > > force is
> > > > > > > > allowed)
> > > > > > > > > > > (It
> > > > > > > > > > > > was
> > > > > > > > > > > > > > the error !!). To correct that, I have
> switched
> > > > off the
> > > > > > > > > > > reaction
> > > > > > > > > > > > of
> > > > > > > > > > > > > > the driver and put a general “only pushing”
> > > muscle on
> > > > > > > > it. So
> > > > > > > > > > > > now, the
> > > > > > > > > > > > > > abduction can goes until a certain degree
> and
> > > after
> > > > > > > > that,
> > > > > > > > > > the
> > > > > > > > > > > > geometry
> > > > > > > > > > > > > > is not able to carry the movement, and the
> > > simulation
> > > > > > > > stops.
> > > > > > > > > > > It
> > > > > > > > > > > > is
> > > > > > > > > > > > > > exactly that I want because it directly
> shows
> > > if the
> > > > > > > > > > geometry
> > > > > > > > > > > is
> > > > > > > > > > > > > > efficient or not.
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > My problem is when I try to perform a
> > > parametric
> > > > > > > > simulation.
> > > > > > > > > > I
> > > > > > > > > > > > look on
> > > > > > > > > > > > > > the maximum abduction reached during the
> > > simulation
> > > > > > > > > > (kinematic
> > > > > > > > > > > > > > rotational measure). The results are very
> > > strange
> > > > and I
> > > > > > > > > > think
> > > > > > > > > > > > that
> > > > > > > > > > > > > > they are not representative, probably
> because
> > > the
> > > > > > > > simulation
> > > > > > > > > > > > stops
> > > > > > > > > > > > > > with an error. So, if I would get rid of
> this
> > > > error by
> > > > > > > > > > changing
> > > > > > > > > > > > > > something on the model, it would maybe
> works.
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > Maybe you have a little idea of what I
> should
> > > do (I
> > > > > > > > > > hope …).
> > > > > > > > > > > I
> > > > > > > > > > > > send
> > > > > > > > > > > > > > you my model and a picture of the results.
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > Thank you in advance for your support and
> say
> > > > hello to
> > > > > > > > > > > everyone
> > > > > > > > > > > > of
> > > > > > > > > > > > > > Anybody for me :wink:
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > bye bye
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > Pierre
> > > > > > > > > > > > > >
> > > > > > > > > > > > > >
> > > > > > > > > > > > > >
> > > > > > > > > > > > > >
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > [Non-text portions of this message have
> been
> > > removed]
> > > > > > > > > > > > > >
> > > > > > > > > > > > >
> > > > > > > > > > > >
> > > > > > > > > > >
> > > > > > > > > >
> > > > > > > > >
> > > > > > > >
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > [Non-text portions of this message have been removed]
> > > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > > [Non-text portions of this message have been removed]
> > > > > >
> > > > >
> > > > >
> > > > >
> > > > >
> > > > >
> > > > > [Non-text portions of this message have been removed]
> > > > >
> > > >
> > >
> >
>

Hi,

The muscle model AnyMuscleModel3E we are working with is based on the
Hill type model. We are not planning to add new muscle models now,
but it is possible to build your own muscle model making it dependent
of some kinematics measures (like length and velocity). We uploaded a
demo of this in SmallExamples\UserDefinedMuscle.any.

Best regards,
Sylvain, AnyBody Support.

— In anyscript@yahoogroups.com, “Pierre-Olivier Lemieux”
<pothekid@…> wrote:
>
> Hi Sylvain,
> I understand why you are not sure to add forward dynamic
in
> AnyBody. After all, AnyBody is good to perform calculations of
muscle
> forces within a complex system of joints and segments. From what I
> know, forward dynamic is used when you know the force and you want
to
> know the displacement. However, finding muscle forces can be done by
> using EMG signal, but there are still some controverses about their
> uses and their accuracy. Thus, AnyBody can be a good alternative
>
> I think that the best way for me will be to create an experimental
> set-up and find the displacement using cables instead of muscles.
> Then, I will be able to import these displacements in AnyBody and
> calculate and compare the numerical and experimental forces.
>
> Have you worked on new muscle models recently ? I’ve read an article
> that compare two muscle model that are not available in AnyBody :
> (Ettema (2000) Muscle contraction history. Modified Hill type vs. an
> exponential decay model).
>
> Thank you for your support, it is very appreciated.
>
> Pierre
>
> — In anyscript@yahoogroups.com, “AnyBody Support” <support@>
wrote:
> >
> > Hi Pierre,
> >
> > I’m glad you found what you wanted.
> >
> > I am not an expert user of Matlab but I guess it might be
possible to
> > recreate forward dynamic. We have been thinking on including
forward
> > dynamic in AnyBody but nothing has been really decided yet.
> >
> > Best regards,
> > Sylvain, AnyBody Support.
> >
> >
> >
> > — In anyscript@yahoogroups.com, “Pierre-Olivier Lemieux”
> > <pothekid@> wrote:
> > >
> > > Hi Sylvain,
> > > I’ve found what I was searching for in the Nikravesh
> > > textbook (Planar multibody dynamics) that you have put the
reference
> > > under FAQs in the publications section.
> > >
> > > This book explain how to apply joint coordinate method works
and
> > also
> > > the kinematic equations. It also explain how to apply the
forward
> > and
> > > inverse dynamic.
> > >
> > > Do you think that is feasible to create a 2D model in Matlab
that
> > work
> > > in forward dynamic ? Do you work on that for further version ?
> > >
> > > My idea is to find a movement for the shoulder that rely upon
the
> > > deltoid activity, knowing that this muscle is the only one that
> > makes
> > > the movement in case of a massive rotator cuff tear.
> > >
> > > Thank you for you support
> > >
> > > Pierre
> > >
> > >
> > > — In anyscript@yahoogroups.com, “AnyBody Support” <support@>
> > wrote:
> > > >
> > > > Hi Pierre,
> > > >
> > > > There is a good explanation of how AnyBody perform the muscle
> > > > calculation in this tutorial:
> > > > http://www.anybodytech.com/691.0.html
> > > >
> > > > Hope you will find there what you want.
> > > >
> > > > Best regards,
> > > > Sylvain, AnyBody Support.
> > > >
> > > >
> > > >
> > > >
> > > > — In anyscript@yahoogroups.com, “Pierre-Olivier Lemieux”
> > > > <pothekid@> wrote:
> > > > >
> > > > > Hi Soren,
> > > > > there is no change of geometry during abduction.
It’s
> > surely
> > > > > just a codec differences or the video encryption method in
> > Matlab.
> > > > The
> > > > > geometry changes only during the parameters study.
> > > > >
> > > > > My question was more about how Anybody do the calculations.
> > Does it
> > > > > make a static calculation or a dynamic one ? I mean, does
the
> > > > program
> > > > > compute the minimal force to have equilibrium or a more
complex
> > > > > calculation ?
> > > > >
> > > > > I ask this question because I have to understand how the
> > program
> > > > works
> > > > > in order to be able to explain it in my paper.
> > > > >
> > > > > Maybe you can refer me to an article in the Documentation
> > repository
> > > > > of Anybody that explain how AnyBody perfom the muscle
> > calculation. I
> > > > > know about the muscle recruitment, but not about the force
> > itself.
> > > > >
> > > > > I hope that is more clear for you.
> > > > >
> > > > > Thank you again
> > > > >
> > > > > Pierre
> > > > >
> > > > > — In anyscript@yahoogroups.com, “AnyBody Support”
<support@>
> > > > wrote:
> > > > > >
> > > > > > Hi Pierre
> > > > > >
> > > > > >
> > > > > >
> > > > > > I have seen the video and have a question about the GH
head
> > > > shape.
> > > > > I do not
> > > > > > understand why the GH head changes its shape while the
> > analysis is
> > > > > running,
> > > > > > initially it has a long narrow shape and in the end it
looks
> > more
> > > > > compressed
> > > > > > in shape. Could it be graphic related and just something
seen
> > on
> > > > > this video?
> > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > > In AnyBody such a change in the shape is not possible
while
> > the
> > > > model is
> > > > > > running, there would have to be several segments to
replicate
> > > > this.
> > > > > >
> > > > > >
> > > > > >
> > > > > > I understand your point of not replicating the same
> > optimization
> > > > in
> > > > > AnyBody
> > > > > > and Matlab, but if you plan to impose the results found
in
> > matlab
> > > > on the
> > > > > > AnyBody model it will be important that the models gives
the
> > same
> > > > > results.
> > > > > >
> > > > > >
> > > > > >
> > > > > > Please write again if you have further questions, I was a
bit
> > > > unsure
> > > > > if the
> > > > > > last part of your posting was a question.
> > > > > >
> > > > > >
> > > > > >
> > > > > > Best regards
> > > > > >
> > > > > > Søren, AnyBody Support
> > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > > _____
> > > > > >
> > > > > > From: anyscript@yahoogroups.com
> > [mailto:anyscript@yahoogroups.com]
> > > > > On Behalf
> > > > > > Of Pierre-Olivier Lemieux
> > > > > > Sent: 19 March 2008 19:22
> > > > > > To: anyscript@yahoogroups.com
> > > > > > Subject: [AnyScript] Re: shoulder 2D model
> > > > > >
> > > > > >
> > > > > >
> > > > > > Hi Soren,
> > > > > > the Matlab routine (which I’ve created entirely) is pretty
> > > > > > simple. For each positions, it perform a calculation of
the
> > lever
> > > > arm
> > > > > > and the angle of the upper part of the muscle to separate
the
> > X
> > > > and Y
> > > > > > direction of the muscle force. When the contact between
the
> > > > prosthesis
> > > > > > and the acromion occurs, the acromial reaction is
possible
> > and is
> > > > > > drawn on the figure. There is no recruitment muscle
because
> > there
> > > > is
> > > > > > only one muscle in my routine (deltoid).
> > > > > >
> > > > > > The strength model is a constant force model. Like you
can
> > see,
> > > > the
> > > > > > muscle wrapping is done by using a thin rope between the
> > origin
> > > > and
> > > > > > insertion point.
> > > > > >
> > > > > > I send you a little video of all that under
(GH_Movement.zip).
> > > > > >
> > > > > > I understand your idea about creating the same routine in
> > > > Anybody, but
> > > > > > I don’t see any interest about doing that if the results
> > between
> > > > > > AnyBody and Matlab are the same.
> > > > > >
> > > > > > My idea was rather to find the correct movement pattern
in
> > term of
> > > > > > prosthetic dimensions in Matlab and then put this
movement
> > into my
> > > > > > AnyBody model, to find the deltoid forces. By obtaining
the
> > same
> > > > > > results in AnyBody and Matlab, I think this is a way to
> > verify the
> > > > > > accuracy of my findings… What do you think about that ?
> > > > > >
> > > > > > I have try to get the same models between AnyBody and
Matlab.
> > To
> > > > do
> > > > > > so, I’ve put the static friction coefficient to 0 and put
a
> > > > constant
> > > > > > force model for the deltoid. Thus, I think that the
> > differences
> > > > are
> > > > > > just in the WeakMuscle definition. In my Matlab routine,
> > there is
> > > > no
> > > > > > WeakMuscle because the acromion force give us a hint that
> > > > something
> > > > > > don’t work during the first abduction degrees (check the
> > > > results.jpg).
> > > > > >
> > > > > > I hope that was more clear for you.
> > > > > >
> > > > > > Thank you very much.
> > > > > >
> > > > > > Pierre
> > > > > >
> > > > > > — In anyscript@yahoogrou <mailto:anyscript%
> > 40yahoogroups.com>
> > > > ps.com,
> > > > > > “AnyBody Support” <support@> wrote:
> > > > > > >
> > > > > > > Hi Pierre
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > I think I understand what your algorithm is doing, it
finds
> > the
> > > > > minimum
> > > > > > > deltoid force and if there is a force unbalance it
moves
> > the
> > > > humeral
> > > > > > until
> > > > > > > balance is obtained.
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > Using the build in optimizer in AnyBody something
similar
> > > > should be
> > > > > > possible
> > > > > > > I guess, but it will be a slightly differently
approach.
> > > > Basically
> > > > > > you will
> > > > > > > need a model that will always be able to balance itself
> > through
> > > > > > artificial
> > > > > > > joint reactions, but through the optimization you can
> > change the
> > > > > > motion so
> > > > > > > that it tries to minimize those reactions.
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > 1 you will need the extra muscle that ensures that a
force
> > > > balance can
> > > > > > > always be obtained.
> > > > > > >
> > > > > > > 2 a design variable has to be defined, this is the
> > translation,
> > > > > > maybe this
> > > > > > > should be done using an interpolation function…
> > > > > > >
> > > > > > > 3 an objective function has to be setup, here I would
> > choose to
> > > > > > minimize the
> > > > > > > forces in the artificial muscles which you did not want
to
> > > > become
> > > > > > active. So
> > > > > > > you will be minimizing these reaction forces by moving
the
> > > > humeral
> > > > > > head to
> > > > > > > another position.
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > There is a tutorial of parameter and optimization
studies
> > it
> > > > might be
> > > > > > > helpful.
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > I can not judge if the MatLab code is ok sorry, I can
think
> > of
> > > > the
> > > > > > following
> > > > > > > questions
> > > > > > >
> > > > > > > 1 Are there any differences in the models, that in
anyway
> > could
> > > > > justify
> > > > > > > these differences?
> > > > > > >
> > > > > > > 2 What about muscles wrapping, how is this done in
MatLab…
> > > > > > >
> > > > > > > 3 Muscles strength models
> > > > > > >
> > > > > > > 4 Recruitment criteria?
> > > > > > >
> > > > > > > Etc…
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > Best regards
> > > > > > >
> > > > > > > Søren, AnyBody Support
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > _____
> > > > > > >
> > > > > > > From: anyscript@yahoogrou <mailto:anyscript%
> > 40yahoogroups.com>
> > > > ps.com
> > > > > > [mailto:anyscript@yahoogrou <mailto:anyscript%
> > 40yahoogroups.com>
> > > > ps.com]
> > > > > > On Behalf
> > > > > > > Of Pierre-Olivier Lemieux
> > > > > > > Sent: 18 March 2008 19:18
> > > > > > > To: anyscript@yahoogrou <mailto:anyscript%
> > 40yahoogroups.com>
> > > > ps.com
> > > > > > > Subject: [AnyScript] Re: shoulder 2D model
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > Hi Soren,
> > > > > > > thank you for your support. Now I have a model that
> > represent
> > > > > > > more my pathology and I have also created a Matlab
> > algorithm
> > > > that find
> > > > > > > the movement of the humeral head and import it into my
> > AnyBody
> > > > model.
> > > > > > >
> > > > > > > My Matlab algorithm compute the minimum force in the
> > deltoid to
> > > > > > > perform an increment of abduction with a moment balance
> > > > (constant
> > > > > > > velocity). If there is a non-equilibrium of the forces
and
> > a
> > > > degree of
> > > > > > > freedom in the direction of the force, there is
> > automatically an
> > > > > > > increment of displacement. This is the case for the
vertical
> > > > > > > displacement in my model.
> > > > > > >
> > > > > > > Now, I want to know how Anybody solve a problem. I know
> > that
> > > > for each
> > > > > > > step time, it use the min/max criterion to find the
minimum
> > > > muscle
> > > > > > > activity. Does it works like my Matlab routine ?
> > > > > > >
> > > > > > > I have compared the Matlab results from those obtained
in
> > > > Anybody from
> > > > > > > the same movement and in a lot of situation it gives me
> > similar
> > > > > > > results. However, there is some differences that I’m
not
> > able to
> > > > > > > explain. Do you think that my Matlab routine is well
made ?
> > > > > > >
> > > > > > > I send you my results (Matlab & AnyBody) for a
particular
> > case
> > > > under
> > > > > > > (PO_Lemieux_shoulder_model_March_18). Just take a look
and
> > give
> > > > me
> > > > > > > your idea about it.
> > > > > > >
> > > > > > > Thank you again.
> > > > > > >
> > > > > > > Pierre
> > > > > > >
> > > > > > > — In anyscript@yahoogrou <mailto:anyscript%
> > 40yahoogroups.com>
> > > > > ps.com,
> > > > > > > “AnyBody Support” <support@> wrote:
> > > > > > > >
> > > > > > > > Hi Pierre
> > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > > > The contact force you have applied works on the
contact
> > > > segment.
> > > > > This
> > > > > > > > element will need to be carried by the driver
otherwise
> > the
> > > > model
> > > > > > > will be
> > > > > > > > unbalanced and unable to solve; it can not be left
> > unbalanced.
> > > > > > > >
> > > > > > > > The contact force you have applied can only do a
pushing
> > > > force,
> > > > > so the
> > > > > > > > reactions you will see in this contact driver will
only
> > be in
> > > > one
> > > > > > > direction.
> > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > > > The weak muscles also need to be there, there can not
be
> > dof
> > > > in the
> > > > > > > model
> > > > > > > > which are unbalanced. Even if these are supposed to
have
> > > > force, it
> > > > > > > will lead
> > > > > > > > to numeric problems if they are left unbalanced.
> > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > > > The reason why the weak muscles are needed must be a
> > moment
> > > > balance
> > > > > > > issue
> > > > > > > > there appears to be situation where the deltoid
muscle it
> > self
> > > > > can not
> > > > > > > > balance the upper arm. To me it sounds reasonable,
these
> > weak
> > > > > muscles
> > > > > > > > replicated the joint reactions up/down and these
would
> > always
> > > > be non
> > > > > > > zero.
> > > > > > > > In you had more muscles in the model these might be
able
> > to
> > > > > > control this
> > > > > > > > up/down dofs., and the weak muscles could be excluded.
> > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > > > Best regards
> > > > > > > >
> > > > > > > > Søren
> > > > > > > >
> > > > > > > > _____
> > > > > > > >
> > > > > > > > From: anyscript@yahoogrou <mailto:anyscript%
> > 40yahoogroups.com>
> > > > > ps.com
> > > > > > > [mailto:anyscript@yahoogrou <mailto:anyscript%
> > 40yahoogroups.com>
> > > > > ps.com]
> > > > > > > On Behalf
> > > > > > > > Of Pierre-Olivier Lemieux
> > > > > > > > Sent: 20 February 2008 03:31
> > > > > > > > To: anyscript@yahoogrou <mailto:anyscript%
> > 40yahoogroups.com>
> > > > ps.com
> > > > > > > > Subject: [AnyScript] Re: shoulder 2D model
> > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > > > Hi again Sylvain,
> > > > > > > > my model works well now with the Reaction.Type turned
> > > > > > > > on within the Contact driver. However, it makes this
> > reaction
> > > > > able to
> > > > > > > > pull or push. For some set-up of the parameters of
the
> > > > ellipse,
> > > > > I got
> > > > > > > > negative forces for the Contact driver. It tells me
that
> > the
> > > > > permanent
> > > > > > > > contact with the acromion is not valid in all the
case.
> > Maybe
> > > > I
> > > > > should
> > > > > > > > know the real displacement in term of the elliptic
shape,
> > > > prior to
> > > > > > > > proceed to the inverse analysis.
> > > > > > > >
> > > > > > > > Also, it is not only the deltoid that pulls on the
> > humeral
> > > > head,
> > > > > it is
> > > > > > > > also the WeakMuscles. These muscles are not there
> > normally and
> > > > > when I
> > > > > > > > comment them, it gives me a “Muscle recruitment”
error if
> > the
> > > > tStart
> > > > > > > > is 0. Thus, I want to know why the deltoid can’t do
the
> > > > complete
> > > > > > > > abduction by itself ?
> > > > > > > >
> > > > > > > > Thank you again.
> > > > > > > >
> > > > > > > > Pierre-Olivier
> > > > > > > >
> > > > > > > > — In anyscript@yahoogrou <mailto:anyscript%
> > > > 40yahoogroups.com>
> > > > > > ps.com,
> > > > > > > > “AnyBody Support” <support@> wrote:
> > > > > > > > >
> > > > > > > > >
> > > > > > > > >
> > > > > > > > >
> > > > > > > > > Hi,
> > > > > > > > >
> > > > > > > > > The reason you cannot see the reaction force of
> > > > > > > > > ContactSurfaceLinPush is because the ContactSeg you
> > created
> > > > is
> > > > > not
> > > > > > > > > fully balanced. I was effectively talking about
adding
> > some
> > > > > > > > > AnyReacForce between the ContactSeg and the
humerus, so
> > > > that the
> > > > > > > > > ContactSeg is carried in all directions in term of
> > forces
> > > > and it
> > > > > > can
> > > > > > > > > transmit the reaction forces from the acromion
point to
> > the
> > > > > humerus
> > > > > > > > > head.
> > > > > > > > > But it’s not the only way to do it: by adding a
> > prismatic
> > > > > joint you
> > > > > > > > > drive the ContactSeg in five directions, you just
have
> > to
> > > > > switch on
> > > > > > > > > the ReactionType of the Ellipse2ContactDriver to
carry
> > the
> > > > > load of
> > > > > > > > > the segment in the sliding direction also. Now you
will
> > be
> > > > > able to
> > > > > > > > > see appear the reaction force at the contact point.
> > > > > > > > >
> > > > > > > > > Best regards.
> > > > > > > > > Sylvain, AnyBody Support
> > > > > > > > >
> > > > > > > > >
> > > > > > > > >
> > > > > > > > >
> > > > > > > > >
> > > > > > > > > — In anyscript@yahoogrou <mailto:anyscript%
> > > > 40yahoogroups.com>
> > > > > > > ps.com,
> > > > > > > > “Pierre-Olivier Lemieux”
> > > > > > > > > <pothekid@> wrote:
> > > > > > > > > >
> > > > > > > > > > Hi Sylvain,
> > > > > > > > > > I’ve made the changes that you told me about, but
I’m
> > > > > > > > > not
> > > > > > > > > > able to make my model works well. I don’t have any
> > > > > > > > > > “ContactSurfaceLinPush” reaction forces and
friction
> > > > forces.
> > > > > > > > > >
> > > > > > > > > > In Excel, I’ve calculated the displacement of the
> > humeral
> > > > > head in
> > > > > > > > > term
> > > > > > > > > > of static equations for the abduction and put
those
> > values
> > > > > in the
> > > > > > > > > > model (“SliderDriver” and “AbductionDriver”).
With
> > these
> > > > > values,
> > > > > > > > > the
> > > > > > > > > > displacement is upward at the beginning of
abduction
> > and
> > > > > downward
> > > > > > > > > at
> > > > > > > > > > the end. So, the contact between the acromion and
> > humeral
> > > > > head is
> > > > > > > > > not
> > > > > > > > > > always there. For this reason,
> > the “ContactSurfaceLinPush”
> > > > > is very
> > > > > > > > > > useful for me.
> > > > > > > > > >
> > > > > > > > > > I’m not sure to understand well when you talk
about
> > > > adding some
> > > > > > > > > > reaction forces. Is it the “AnyReacForce”
object ? If
> > it
> > > > is the
> > > > > > > > > case,
> > > > > > > > > > can you help me to write it correctly ?
> > > > > > > > > >
> > > > > > > > > > My new model is named “PO_Lemieux_shoulder_3”.
> > > > > > > > > >
> > > > > > > > > > thank you for your support.
> > > > > > > > > >
> > > > > > > > > > Pierre-Olivier
> > > > > > > > > >
> > > > > > > > > > — In anyscript@yahoogrou <mailto:anyscript%
> > > > 40yahoogroups.com>
> > > > > > > ps.com,
> > > > > > > > “AnyBody Support” <support@>
> > > > > > > > > wrote:
> > > > > > > > > > >
> > > > > > > > > > > Hi Pierre,
> > > > > > > > > > >
> > > > > > > > > > > In the file ContactSurfaceLinPush the object
Base
> > > > define the
> > > > > > > > > node
> > > > > > > > > > > that is applying the force. The object Target
> > defines
> > > > the
> > > > > node
> > > > > > > > > where
> > > > > > > > > > > the force is applied to. So by switching Base
and
> > Target
> > > > > object
> > > > > > > > > you
> > > > > > > > > > > are now applying the reaction forces from the
> > center of
> > > > the
> > > > > > > > > > > ellipsoid to p12. And the reaction forces are
> > displayed
> > > > in
> > > > > the
> > > > > > > > > Base
> > > > > > > > > > > frame (ellipsoid frame in this case) that’s why
the
> > > > arrows
> > > > > > > > > follow
> > > > > > > > > > > the abduction angle.
> > > > > > > > > > >
> > > > > > > > > > > This can be improved by applying the reaction
> > forces
> > > > from
> > > > > > P12 to
> > > > > > > > > a
> > > > > > > > > > > floating point on the external shape of the
> > ellipsoid,
> > > > where
> > > > > > the
> > > > > > > > > > > contact really occurs. You can create a segment
> > (with no
> > > > > mass)
> > > > > > > > > that
> > > > > > > > > > > you drive to slide on the ellipsoid shape as
you
> > did
> > > > with the
> > > > > > > > > > > AcromionDriver, and you set the distance
between
> > one
> > > > point of
> > > > > > > > > this
> > > > > > > > > > > segment and P12 to 0. Then you have to create
some
> > > > reaction
> > > > > > > > > forces
> > > > > > > > > > > between this segment and the ellipsoid to
transmit
> > all
> > > > the
> > > > > > > > > forces.
> > > > > > > > > > > So you will now have a floating contact point
on the
> > > > > ellipsoid
> > > > > > > > > > > shape. By setting the Base to the new segment
you
> > > > should be
> > > > > > able
> > > > > > > > > to
> > > > > > > > > > > draw the reaction force vectors in the
tangential
> > plane
> > > > of
> > > > > the
> > > > > > > > > shape.
> > > > > > > > > > >
> > > > > > > > > > > About the ContactRotPush, this applies a moment
> > between
> > > > two
> > > > > > > > > segments
> > > > > > > > > > > in contact. There are no friction forces, so
this
> > may
> > > > not be
> > > > > > > > > what
> > > > > > > > > > > you need.
> > > > > > > > > > >
> > > > > > > > > > > For the external pushing force of
> > ContactSurfaceLinPush
> > > > you
> > > > > > talk
> > > > > > > > > > > about: this function actually use 5 muscles.
One
> > pushing
> > > > > in the
> > > > > > > > > > > normal direction of the surface and 4 others
> > creating
> > > > the
> > > > > > > > > friction
> > > > > > > > > > > forces in the plane of the surface combined
with
> > normal
> > > > > force;
> > > > > > > > > > > please see this link where there is a short
> > description
> > > > > > > > > > >
> > > > > > > > > > >
> > > > > > > > > > >
> > > > > > > > > > > http://www.anybodyt
> > > > > > > <http://www.anybodyt <http://www.anybodyt
> > > > > > <http://www.anybodytech.com/116.0.html?&tx_ttnews>
> > > > > > ech.com/116.0.html?&tx_ttnews>
> > > > > > > ech.com/116.0.html?&tx_ttnews>
> > > > > > > > ech.com/116.0.html?&tx_ttnews[backPid]
> > > > > > > > > > > =37&tx_ttnews[tt_news]=23&cHash=c92c2826e9
> > > > > > > > > > >
> > > > > > > > > > >
> > > > > > > > > > >
> > > > > > > > > > > I understand you would like to activate only
the
> > > > friction
> > > > > > > > > muscles?
> > > > > > > > > > > That is not possible, the five muscles are
linked
> > and
> > > > working
> > > > > > > > > > > together.
> > > > > > > > > > >
> > > > > > > > > > > And for the strange behaviour you noticed when
you
> > > > change the
> > > > > > > > > > > deltoid origin, well i don’t think it’s so
strange.
> > > > > Because by
> > > > > > > > > > > changing the origin of the muscle you change
the
> > force
> > > > it
> > > > > will
> > > > > > > > > have
> > > > > > > > > > > to develop, you also change the reaction forces
in
> > the
> > > > > contact
> > > > > > > > > > > point. But i think you don’t have a big
interest in
> > > > changing
> > > > > > the
> > > > > > > > > > > muscle origin and you should just keep it in
its
> > normal
> > > > value.
> > > > > > > > > > >
> > > > > > > > > > > It’s correct that you did not find repository
7, it
> > is
> > > > not
> > > > > > > > > public, I
> > > > > > > > > > > forgot this, sorry. You should look in the
> > repository
> > > > 6, here
> > > > > > > > > you
> > > > > > > > > > > will find the file PedalDemoConditional in
> > ARep\Aalborg.
> > > > > > > > > > >
> > > > > > > > > > > Best Regards
> > > > > > > > > > > Sylvain, AnyBodySupport
> > > > > > > > > > >
> > > > > > > > > > >
> > > > > > > > > > >
> > > > > > > > > > >
> > > > > > > > > > >
> > > > > > > > > > >
> > > > > > > > > > > — In anyscript@yahoogrou
> > > > > <mailto:anyscript%40yahoogroups.com>
> > > > > > > > ps.com, “Pierre-Olivier Lemieux”
> > > > > > > > > > > <pothekid@> wrote:
> > > > > > > > > > > >
> > > > > > > > > > > > Hi Sylvain,
> > > > > > > > > > > > thank you for your support. I’ve worked
around
> > > > > > > > > > > > the “ContactLinePush” problem all the week-
end
> > and
> > > > I’ve
> > > > > found
> > > > > > > > > that
> > > > > > > > > > > > by swithching the “Base” and “Target”
objects,
> > the
> > > > friction
> > > > > > > > > > > appears.
> > > > > > > > > > > > However, it gives me too high results because
the
> > > > switch
> > > > > > mixed
> > > > > > > > > up
> > > > > > > > > > > > all the calculations. For exemple, the
resulting
> > > > friction
> > > > > > > > > force is
> > > > > > > > > > > > equal to the normal force, that is not
correct.
> > Also,
> > > > the
> > > > > > > > > arrows
> > > > > > > > > > > > rotate following the abduction angle. Maybe a
> > > > > > “ContactRotPush”
> > > > > > > > > > > would
> > > > > > > > > > > > perform better ?
> > > > > > > > > > > > So, I guess that I’m on a good way to find a
> > solution,
> > > > > but I
> > > > > > > > > still
> > > > > > > > > > > > need to understand how this script works, and
> > what
> > > > are the
> > > > > > > > > > > > accepted “RefFrame” for the “Base”
and “Target”
> > > > objects.
> > > > > > > > > > > >
> > > > > > > > > > > > Also, in the present case, there is an
external
> > > > pushing
> > > > > force
> > > > > > > > > > > > (ContactLinePush) on the shoulder upward
during
> > all
> > > > > abduction
> > > > > > > > > to
> > > > > > > > > > > > keep the contact between the acromion and the
> > > > ellipse.
> > > > > > > > > > > > However, in the real case, the deltoid, while
> > > > performing
> > > > > the
> > > > > > > > > > > > abduction alone, pulls on the humerus,
instead
> > > > > > > > > > > of “ContactLinePush”,
> > > > > > > > > > > > and creates a contact force between the
acromion
> > and
> > > > > humeral
> > > > > > > > > head
> > > > > > > > > > > > (that should be the ContactLinePush). I’ve
made
> > an
> > > > > > > > > experimental
> > > > > > > > > > > set-
> > > > > > > > > > > > up that has shown me these results.
> > > > > > > > > > > >
> > > > > > > > > > > > Also, I’ve noticed another strange behavior.
For
> > > > exemple,
> > > > > > when
> > > > > > > > > I
> > > > > > > > > > > use
> > > > > > > > > > > > the acromion contact point P12 : (0,0.039,0)
and
> > > > deltoid
> > > > > > > > > origin
> > > > > > > > > > > > point P8 : (0,0.050,0) and use
> > the “ContactLinPush”
> > > > script,
> > > > > > > > > the
> > > > > > > > > > > > results are very different from using the
same
> > P12,
> > > > but
> > > > > > > > > changing
> > > > > > > > > > > P8
> > > > > > > > > > > > to a closer distance (0,0.038,0) from P12.
Note
> > that
> > > > the
> > > > > > first
> > > > > > > > > set
> > > > > > > > > > > > of values for P8 and P12 are the ones that I
need.
> > > > > > > > > > > >
> > > > > > > > > > > > So, if you can help me understanding these
> > problems,
> > > > it
> > > > > would
> > > > > > > > > help
> > > > > > > > > > > > me a lot.
> > > > > > > > > > > >
> > > > > > > > > > > > Have a good week and thank you again.
> > > > > > > > > > > >
> > > > > > > > > > > > Pierre.
> > > > > > > > > > > >
> > > > > > > > > > > > P.S. : I’ve not found the repository 7, is it
> > normal ?
> > > > > > > > > > > >
> > > > > > > > > > > > — In anyscript@yahoogrou
> > > > > > <mailto:anyscript%40yahoogroups.com>
> > > > > > > > ps.com, “AnyBody Support” <support@>
> > > > > > > > > > > > wrote:
> > > > > > > > > > > > >
> > > > > > > > > > > > > Hi Pierre-Olivier
> > > > > > > > > > > > >
> > > > > > > > > > > > > I will try to give you some more
information on
> > the
> > > > file
> > > > > > > > > > > > > ContactSurfaceLinPush, this file can create
a
> > > > conditional
> > > > > > > > > > > contact
> > > > > > > > > > > > > with pushing muscles. If the two contact
points
> > are
> > > > close
> > > > > > > > > enough
> > > > > > > > > > > > > (this distance is set by the user) then the
> > muscles
> > > > will
> > > > > > > > > have a
> > > > > > > > > > > > high
> > > > > > > > > > > > > strength and can create the contact force.
If
> > the
> > > > two
> > > > > > > > > contact
> > > > > > > > > > > > points
> > > > > > > > > > > > > are to far from each other, the muscles
will
> > have
> > > > no
> > > > > > > > > strength at
> > > > > > > > > > > > > all, and there can be no contact force.
> > > > > > > > > > > > > But I am not sure if this utility is useful
for
> > your
> > > > > model
> > > > > > > > > > > because
> > > > > > > > > > > > > you want a permanent contact of the humerus
> > head?
> > > > > > > > > > > > >
> > > > > > > > > > > > >
> > > > > > > > > > > > >
> > > > > > > > > > > > > The file also holds another utility which
is the
> > > > > ability to
> > > > > > > > > > > create
> > > > > > > > > > > > > normal reaction force and friction force at
the
> > > > contact
> > > > > > > > > point.
> > > > > > > > > > > > This
> > > > > > > > > > > > > could maybe be interesting for your model.
But
> > you
> > > > > have to
> > > > > > > > > take
> > > > > > > > > > > > care
> > > > > > > > > > > > > to apply those forces to the acromion
contact
> > > > point. You
> > > > > > > > > > > actually
> > > > > > > > > > > > > applied them to the center of the humerus
head
> > > > instead of
> > > > > > > > > the
> > > > > > > > > > > > > contact point.
> > > > > > > > > > > > >
> > > > > > > > > > > > > I tried running the files you uploaded and
it
> > is
> > > > working
> > > > > > > > > with
> > > > > > > > > > > the
> > > > > > > > > > > > > elliptic shape without doing any changes.
> > However
> > > > the
> > > > > model
> > > > > > > > > is
> > > > > > > > > > > now
> > > > > > > > > > > > > fully balanced and it is not possible
anymore
> > to
> > > > see that
> > > > > > > > > point
> > > > > > > > > > > > you
> > > > > > > > > > > > > was interested in the last time (where the
> > geometry
> > > > > cannot
> > > > > > > > > carry
> > > > > > > > > > > > the
> > > > > > > > > > > > > load) to plot the max abduction.
> > > > > > > > > > > > >
> > > > > > > > > > > > > So the solution of recreating the humeral
> > contact
> > > > > > depends on
> > > > > > > > > the
> > > > > > > > > > > > > simulation you want to perform
> > > > > > > > > > > > >
> > > > > > > > > > > > > An example of using ContactSurfaceLinPush
is
> > > > available in
> > > > > > > > > the
> > > > > > > > > > > > > repository
> > > > 7/Application/Examples/PedalDemoConditional,
> > > > > > as I
> > > > > > > > > > > > recall
> > > > > > > > > > > > > it the contact muscles are defined in the
> > > > > > JointAndDriver.any
> > > > > > > > > > > file.
> > > > > > > > > > > > >
> > > > > > > > > > > > > Best regards,
> > > > > > > > > > > > > Sylvain, AnyBody Support
> > > > > > > > > > > > >
> > > > > > > > > > > > >
> > > > > > > > > > > > >
> > > > > > > > > > > > >
> > > > > > > > > > > > >
> > > > > > > > > > > > > — In anyscript@yahoogrou
> > > > > > > <mailto:anyscript%40yahoogroups.com>
> > > > > > > > ps.com, “Pierre-Olivier Lemieux”
> > > > > > > > > > > > > <pothekid@> wrote:
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > Hi Soeren,
> > > > > > > > > > > > > > thank you for you recommendations. It
seems
> > to
> > > > > > > > > works
> > > > > > > > > > > > now
> > > > > > > > > > > > > for
> > > > > > > > > > > > > > the abduction. The deltoid activity is
not
> > what I
> > > > want
> > > > > > > > > most,
> > > > > > > > > > > so
> > > > > > > > > > > > > I’ve
> > > > > > > > > > > > > > just commented it out.
> > > > > > > > > > > > > > I have an other question now. When I went
to
> > > > Aalborg,
> > > > > > John
> > > > > > > > > > > gave
> > > > > > > > > > > > me
> > > > > > > > > > > > > a
> > > > > > > > > > > > > > folder with some special scripts. One of
these
> > > > > scripts is
> > > > > > > > > > > > > > “ContactSurfaceLinPush”. Like it says, it
was
> > to
> > > > > create a
> > > > > > > > > > > pushing
> > > > > > > > > > > > > > force on a contact node (I guess).
However, I
> > > > have some
> > > > > > > > > > > > > difficulties
> > > > > > > > > > > > > > to understand this script. Also, it works
> > with a
> > > > > constant
> > > > > > > > > > > radius
> > > > > > > > > > > > > > humeral head, but not for my elliptic
shape.
> > Do
> > > > you
> > > > > think
> > > > > > > > > this
> > > > > > > > > > > is
> > > > > > > > > > > > > > possible ?
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > You can check the
> > folder “AcromionHumerusContact”
> > > > in
> > > > > the
> > > > > > > > > > > bottom
> > > > > > > > > > > > of
> > > > > > > > > > > > > my
> > > > > > > > > > > > > > main script (The file is
> > > > > “PO_Lemieux_shoulder2D.zip”). I
> > > > > > > > > will
> > > > > > > > > > > > send
> > > > > > > > > > > > > you
> > > > > > > > > > > > > > the special script, because I don’t know
who
> > has
> > > > > written
> > > > > > > > > it.
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > Thank you again,
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > Pierre-Olivier
> > > > > > > > > > > > > >
> > > > > > > > > > > > > >
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > — In anyscript@yahoogrou
> > > > > > > <mailto:anyscript%40yahoogroups.com>
> > > > > > > > ps.com, “AnyBody Support”
> > > > > > > > > <support@>
> > > > > > > > > > > > > wrote:
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > Hi Pierre
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > I think there is a simple solution to
your
> > > > problem….
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > The reason why you are getting this
strange
> > > > > solution is
> > > > > > > > > that
> > > > > > > > > > > > the
> > > > > > > > > > > > > > analysis
> > > > > > > > > > > > > > > has not been finished due to the
inverse
> > > > analysis,
> > > > > this
> > > > > > > > > is
> > > > > > > > > > > as
> > > > > > > > > > > > you
> > > > > > > > > > > > > > expect.
> > > > > > > > > > > > > > > The abduction angle you find by taking
the
> > max
> > > > > value of
> > > > > > > > > the
> > > > > > > > > > > > > > abduction angle
> > > > > > > > > > > > > > > function. This is fine if the analysis
had
> > > > finished
> > > > > > > > > correctly
> > > > > > > > > > > > > > because then
> > > > > > > > > > > > > > > it would look at all the values in the
> > output
> > > > > function
> > > > > > > > > (nStep
> > > > > > > > > > > > > > values) and
> > > > > > > > > > > > > > > find the maximum one. When the analysis
> > stops
> > > > it will
> > > > > > > > > still
> > > > > > > > > > > > look
> > > > > > > > > > > > > at
> > > > > > > > > > > > > > these
> > > > > > > > > > > > > > > nStep values, but now some of these can
> > > > > > > > > contain “garbage”
> > > > > > > > > > > > > numbers.
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > So the remedy in this case is to change
the
> > > > output
> > > > > > > > > function
> > > > > > > > > > > in
> > > > > > > > > > > > > the
> > > > > > > > > > > > > > > parameterstudy to the following
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > AnyDesMeasure AbductionMax = {
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > Val = -Main.MyModel.GH.Pos[0];
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > };
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > This function do not take the max of
any
> > values
> > > > it
> > > > > will
> > > > > > > > > just
> > > > > > > > > > > > > return
> > > > > > > > > > > > > > the last
> > > > > > > > > > > > > > > one … and this is what you would like
in
> > this
> > > > case I
> > > > > > > > > guess.
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > There will be the same kind of problems
> > with
> > > > your
> > > > > other
> > > > > > > > > > > output
> > > > > > > > > > > > > > function in
> > > > > > > > > > > > > > > the parameter study as I see it. The
> > Abduction
> > > > > angle is
> > > > > > > > > > > > reported
> > > > > > > > > > > > > ok
> > > > > > > > > > > > > > but if
> > > > > > > > > > > > > > > you did the same with the deltoid
activity
> > it
> > > > > would not
> > > > > > > > > work
> > > > > > > > > > > I
> > > > > > > > > > > > > believe
> > > > > > > > > > > > > > > because this value is not calculated in
the
> > > > last step
> > > > > > > > > > > because
> > > > > > > > > > > > it
> > > > > > > > > > > > > > fails in
> > > > > > > > > > > > > > > inverse analysis, it goes ok with the
> > abduction
> > > > angle
> > > > > > > > > > > because
> > > > > > > > > > > > the
> > > > > > > > > > > > > > kinematics
> > > > > > > > > > > > > > > has been solved ok.
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > So using the function
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > AnyDesMeasure DeltoidActivity = {
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > Val = max(…Study.MaxActivity());
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > };
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > I am not really sure what you get since
you
> > > > take the
> > > > > > max
> > > > > > > > > of
> > > > > > > > > > > > > values
> > > > > > > > > > > > > > which are
> > > > > > > > > > > > > > > initialized, and this may give strange
> > results.
> > > > So I
> > > > > > > > > think
> > > > > > > > > > > you
> > > > > > > > > > > > > should
> > > > > > > > > > > > > > > consider exporting these numbers using
an
> > > > output file
> > > > > > > > > and
> > > > > > > > > > > then
> > > > > > > > > > > > > > process them
> > > > > > > > > > > > > > > externally.
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > I hope this helps you move on.
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > Otherwise please write again.
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > Best regards
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > Søren, AnyBody Support
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > _____
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > From: anyscript@yahoogrou
> > > > > > > <mailto:anyscript%40yahoogroups.com>
> > > > > > > > ps.com
> > > > > > > > > > > > > [mailto:anyscript@yahoogrou
> > > > > > > <mailto:anyscript%40yahoogroups.com>
> > > > > > > > ps.com]
> > > > > > > > > > > > > > On Behalf
> > > > > > > > > > > > > > > Of Pierre-Olivier Lemieux
> > > > > > > > > > > > > > > Sent: 07 February 2008 18:46
> > > > > > > > > > > > > > > To: anyscript@yahoogrou
> > > > > > > <mailto:anyscript%40yahoogroups.com>
> > > > > > > > ps.com
> > > > > > > > > > > > > > > Subject: [AnyScript] shoulder 2D model
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > Hi guys,
> > > > > > > > > > > > > > > I’m still working with anybody to
finish
> > the
> > > > first
> > > > > part
> > > > > > > > > of
> > > > > > > > > > > > > > > my simulations in 2 dimensions. After
some
> > > > > revisions of
> > > > > > > > > the
> > > > > > > > > > > > > model,
> > > > > > > > > > > > > > > i’ve found a big error in it.
> > > > > > > > > > > > > > > If you don’t remember, I try to
simulate the
> > > > > migration
> > > > > > > > > of
> > > > > > > > > > > the
> > > > > > > > > > > > > humeral
> > > > > > > > > > > > > > > head, in the case of a massive rotator
cuff
> > > > tear.
> > > > > > So, my
> > > > > > > > > > > model
> > > > > > > > > > > > > allows
> > > > > > > > > > > > > > > a translation of the humerus upward and
a
> > > > permanent
> > > > > > > > > contact
> > > > > > > > > > > of
> > > > > > > > > > > > > the
> > > > > > > > > > > > > > > prosthetic head on the acromion. This
> > contact is
> > > > > > allowed
> > > > > > > > > by
> > > > > > > > > > > a
> > > > > > > > > > > > > driver
> > > > > > > > > > > > > > > (acromion driver), related to
mathematical
> > > > > > properties of
> > > > > > > > > the
> > > > > > > > > > > > > elliptic
> > > > > > > > > > > > > > > shape. Because this contact is between a
> > > > > prosthesis and
> > > > > > > > > a
> > > > > > > > > > > > bone,
> > > > > > > > > > > > > it
> > > > > > > > > > > > > > > can’t supply a pulling force (just
pushing
> > > > force is
> > > > > > > > > allowed)
> > > > > > > > > > > > (It
> > > > > > > > > > > > > was
> > > > > > > > > > > > > > > the error !!). To correct that, I have
> > switched
> > > > > off the
> > > > > > > > > > > > reaction
> > > > > > > > > > > > > of
> > > > > > > > > > > > > > > the driver and put a general “only
pushing”
> > > > muscle on
> > > > > > > > > it. So
> > > > > > > > > > > > > now, the
> > > > > > > > > > > > > > > abduction can goes until a certain
degree
> > and
> > > > after
> > > > > > > > > that,
> > > > > > > > > > > the
> > > > > > > > > > > > > geometry
> > > > > > > > > > > > > > > is not able to carry the movement, and
the
> > > > simulation
> > > > > > > > > stops.
> > > > > > > > > > > > It
> > > > > > > > > > > > > is
> > > > > > > > > > > > > > > exactly that I want because it directly
> > shows
> > > > if the
> > > > > > > > > > > geometry
> > > > > > > > > > > > is
> > > > > > > > > > > > > > > efficient or not.
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > My problem is when I try to perform a
> > > > parametric
> > > > > > > > > simulation.
> > > > > > > > > > > I
> > > > > > > > > > > > > look on
> > > > > > > > > > > > > > > the maximum abduction reached during
the
> > > > simulation
> > > > > > > > > > > (kinematic
> > > > > > > > > > > > > > > rotational measure). The results are
very
> > > > strange
> > > > > and I
> > > > > > > > > > > think
> > > > > > > > > > > > > that
> > > > > > > > > > > > > > > they are not representative, probably
> > because
> > > > the
> > > > > > > > > simulation
> > > > > > > > > > > > > stops
> > > > > > > > > > > > > > > with an error. So, if I would get rid
of
> > this
> > > > > error by
> > > > > > > > > > > changing
> > > > > > > > > > > > > > > something on the model, it would maybe
> > works.
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > Maybe you have a little idea of what I
> > should
> > > > do (I
> > > > > > > > > > > hope …).
> > > > > > > > > > > > I
> > > > > > > > > > > > > send
> > > > > > > > > > > > > > > you my model and a picture of the
results.
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > Thank you in advance for your support
and
> > say
> > > > > hello to
> > > > > > > > > > > > everyone
> > > > > > > > > > > > > of
> > > > > > > > > > > > > > > Anybody for me :wink:
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > bye bye
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > Pierre
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > [Non-text portions of this message have
> > been
> > > > removed]
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > >
> > > > > > > > > > > > >
> > > > > > > > > > > >
> > > > > > > > > > >
> > > > > > > > > >
> > > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > > > [Non-text portions of this message have been removed]
> > > > > > > >
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > [Non-text portions of this message have been removed]
> > > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > > [Non-text portions of this message have been removed]
> > > > > >
> > > > >
> > > >
> > >
> >
>