Thanks for the follow up, sorry for my bad understanding of the method, I'm not a mechanics guy...

Here is the notebook without defining any dependent coordinates. This yields the same equations, so it's fine.

http://nbviewer.ipython.org/github/glyg/Notebooks/blob/master/kt_sim/minimum%20Linear%20Force%20Velocity.ipynb?flush_cache=true

The only thing that is puzzling me is that the linearization doesn't correspond the equations of motion (because as F=1-u, it can't be written in the form M*[dq, du] = A*[q, u], the constant term is dropped. I - wrongly - thought that defining dependent speeds would get around that.


Thnaks for the help any way, I'll cook something up from here.

Best,

Guillaume

Le 13/01/2015 19:43, Jason Moore a écrit :
I think you are using a velocity constraint when it is not needed. You have your generalized coordinates: q1 and q2. L is simply sqrt(q1**2 + q2**2), right? I think you need to define ell = sqrt(q1**2 + q2**2). The velocity constraint functionality of KanesMethod is primarily in place to deal with non-holonomic constraints, which you don't have. It can probably be manipulated to be used for other things, but I don't think it is useful for this problem.


Jason
moorepants.info <http://moorepants.info>
+01 530-601-9791

On Tue, Jan 13, 2015 at 2:48 AM, Guillaume Gay <[email protected] <mailto:[email protected]>> wrote:

    A follow up:

    I believe this comment in kanes.py (l. 206) is related. In my
    case, the constant is not negligeable.

                 # Form of non-holonomic constraints is B*u + C = 0.
                 # We partition B into independent and dependent columns:
                 # Ars is then -B_dep.inv() * B_ind, and it relates dependent 
speeds
                 # to independent speeds as: udep = Ars*uind, neglecting the C 
term.
                 B_ind = self._k_nh[:, :p]
                 B_dep = self._k_nh[:, p:o]
                 self._Ars = -B_dep.LUsolve(B_ind)


    Best,

    Guillaume

    Le 13/01/2015 09:45, Guillaume Gay a écrit :
    Hi Jason, thanks a lot for the help.

    I simplified a lot the definitions, and used directly the
    velocities in the definitions.

    So the KanesMethod class can be instanciated, and the
    `to_linearizer` method works. The only issue I'm left with is
    that the M, A, B matrices output by the `linearizer.linearize()`
    are not consistent with the equations of motion - when you
    compare the f_3 equation with the uquations from M[dot q, dot u]
    = A[q, u]: the constant term is droped - compare cells In [8] and
    In [10] & In [11] on the notebook bellow:

    
http://nbviewer.ipython.org/github/glyg/Notebooks/blob/master/kt_sim/minimum%20Linear%20Force%20Velocity.ipynb


    I'm not sure if this is my fault, or just that the linearizer
    wont work in my case because of the form of the contraint...

    Best,

    Guillaume


    Le 12/01/2015 19:10, Jason Moore a écrit :
    I meant: p1.set_vel(N, u1 * N.x)


    Jason
    moorepants.info <http://moorepants.info>
    +01 530-601-9791 <tel:530-601-9791>

    On Mon, Jan 12, 2015 at 10:08 AM, Jason Moore
    <[email protected] <mailto:[email protected]>> wrote:

        Some notes:

        - Since you specified your kinematic relations as u = q',
        then you should set your velocities with u instead of q, for
        example: p1.set_vel(N, u1d * N.x)
        - I doubt that you need to specify any velocity constraints
        and thus you will not have any dependent speeds. You've
        defined ell as some new coordinate, but do not add it as an
        independent coordinate. I don't think this is correct. It
        will likely work if you just remove the coordinate
        constraint stuff.


        Jason
        moorepants.info <http://moorepants.info>
        +01 530-601-9791 <tel:530-601-9791>

        On Mon, Jan 12, 2015 at 5:12 AM, Guillaume Gay
        <[email protected] <mailto:[email protected]>> wrote:


            Hi,

            I'm trying to use sympy KanesMethod to model biological
            assemblies (i.e. the mitotic spindle).

            Molecular motors in biology follow linear force velocity
            relationships, such that F = F_max(1 -ld/V_max) where ld
            is the relative speed of the two points on which the
            force is applied (distant of l).

            I strugle to implement this in the Kanes formalism... I
            tried various things:
            * constraint the generalized speed  as u = (V_max - ld)
            * declare the above relation in the kinetic differential
            equation

            In both cases, the `to_linearizer` method rises a:

            ValueError: Cannot have dynamicsymbols outside dynamic
            forcing vector.

            * use directly ld as the speed, and declare it as auxiliary

            Then I have a shape mismatch when I try to linearize.

            Bellow is a notebook with the code:

            
http://nbviewer.ipython.org/github/glyg/Notebooks/blob/master/kt_sim/minimum%20Linear%20Force%20Velocity.ipynb



            Best,

            Guillaume

-- Guillaume Gay, PhD

            http://damcb.com

            43 rue Horace Bertin
            13005 Marseille

            +33 953 55 98 89 <tel:%2B33%20953%2055%2098%2089>
            +33 651 95 94 00 <tel:%2B33%20651%2095%2094%2000>

            n°SIRET 751 175 233 00020

-- You received this message because you are subscribed to
            the Google Groups "sympy" group.
            To unsubscribe from this group and stop receiving emails
            from it, send an email to
            [email protected]
            <mailto:sympy%[email protected]>.
            To post to this group, send email to
            [email protected] <mailto:[email protected]>.
            Visit this group at http://groups.google.com/group/sympy.
            To view this discussion on the web visit
            
https://groups.google.com/d/msgid/sympy/54B3C853.5090405%40gmail.com.
            For more options, visit https://groups.google.com/d/optout.



-- You received this message because you are subscribed to the
    Google Groups "sympy" group.
    To unsubscribe from this group and stop receiving emails from
    it, send an email to [email protected]
    <mailto:[email protected]>.
    To post to this group, send email to [email protected]
    <mailto:[email protected]>.
    Visit this group at http://groups.google.com/group/sympy.
    To view this discussion on the web visit
    
https://groups.google.com/d/msgid/sympy/CAP7f1AhCfvka0rhDA3%2BuboCbk-8e3eWF8yHQaJYUQZ%2B6w%3DV_jA%40mail.gmail.com
    
<https://groups.google.com/d/msgid/sympy/CAP7f1AhCfvka0rhDA3%2BuboCbk-8e3eWF8yHQaJYUQZ%2B6w%3DV_jA%40mail.gmail.com?utm_medium=email&utm_source=footer>.
    For more options, visit https://groups.google.com/d/optout.

-- Guillaume Gay, PhD

    http://damcb.com

    43 rue Horace Bertin
    13005 Marseille

    +33 953 55 98 89
    +33 651 95 94 00

    n°SIRET 751 175 233 00020


-- Guillaume Gay, PhD

    http://damcb.com

    43 rue Horace Bertin
    13005 Marseille

    +33 953 55 98 89
    +33 651 95 94 00

    n°SIRET 751 175 233 00020

-- You received this message because you are subscribed to the Google
    Groups "sympy" group.
    To unsubscribe from this group and stop receiving emails from it,
    send an email to [email protected]
    <mailto:[email protected]>.
    To post to this group, send email to [email protected]
    <mailto:[email protected]>.
    Visit this group at http://groups.google.com/group/sympy.
    To view this discussion on the web visit
    https://groups.google.com/d/msgid/sympy/54B4F7E7.6060909%40gmail.com
    
<https://groups.google.com/d/msgid/sympy/54B4F7E7.6060909%40gmail.com?utm_medium=email&utm_source=footer>.


    For more options, visit https://groups.google.com/d/optout.


--
You received this message because you are subscribed to the Google Groups "sympy" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected] <mailto:[email protected]>. To post to this group, send email to [email protected] <mailto:[email protected]>.
Visit this group at http://groups.google.com/group/sympy.
To view this discussion on the web visit https://groups.google.com/d/msgid/sympy/CAP7f1Ahf6KJfPpizu%2B3MnjS-Yi%3D2osT1LumONE%3DE4mgQj%2BgcLQ%40mail.gmail.com <https://groups.google.com/d/msgid/sympy/CAP7f1Ahf6KJfPpizu%2B3MnjS-Yi%3D2osT1LumONE%3DE4mgQj%2BgcLQ%40mail.gmail.com?utm_medium=email&utm_source=footer>.
For more options, visit https://groups.google.com/d/optout.

--
Guillaume Gay, PhD

http://damcb.com

43 rue Horace Bertin
13005 Marseille

+33 953 55 98 89
+33 651 95 94 00

n°SIRET 751 175 233 00020

--
You received this message because you are subscribed to the Google Groups 
"sympy" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/sympy.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/sympy/54B57ABB.7050005%40gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to