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
> > > > > > > > > > > > >
> > > > > > > > > > > > > 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]
> > > >
> > >
> >
>