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

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].
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/54B4F7E7.6060909%40gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to