This is cool, it is good to see other people who are familiar with Kane's method, there aren't many of us :)
Are you familiar with Autolev? With PyDy, I am working to achieve some of the same behavior as Autolev, but make it even better, and have a lot more features. I'd love to hear your input on design choices for PyDy if you have the time. Right now I'm working on extending it to allow for the 12 different Euler angles, and the 12 different space fixed angles, Euler parameters, Rodrigues parameters, and axis/angle rotations. The major work to take care of kinematics automatically is in place, but there is definitely more to do in regards to how to deal with constraints, definitions of generalized speeds, etc... What sort of systems do you use Kane's method to study? My own area of research is two wheeled vehicle (bicycle/motorcycle) dynamics and control. ~Luke On May 23, 6:06 am, "2006.uchida" <2006.uch...@gmail.com> wrote: > I made a small script in MuPAD few years ago but I had to say goodbye > to MuPAD last November, so I found Sympy and have translated it into > Sympy now. I want to share it and I'm happy if I get some comments. > > What I made is the small script that generates motion equations for > multibody dynamics by using Kane's method. It handles multibody > dynamics, the dynamic behavior created with several rigid bodies that > are interconnected, for instance, double pendulum, robot arms, crank > mechanism, etc. The script allows you to get the equation easily by > setting some information of masses, positions, forces, etc. > > available for download from > here:http://www.esnips.com/doc/0960cb0a-8820-4169-b582-d58a2d6c5f28/MoEqGe... > > Here is a sample code and results. More details, please see the file > "smple.py" which you can download above. > > [Code] > import sympy > import motionequation > > def main(): > > # Sample for Newton's second law > > mat = sympy.Matrix > t, x, m, f = sympy.symbols( > "t, x, m, f") > > pos_vec = mat([x(t),0,0]) > force_vec = mat([f(t),0,0]) > I_mat = sympy.zeros(3) > ome_vec = sympy.zeros([3,1]) > torque_vec = sympy.zeros([3,1]) > > result = motionequation.get_withKane( > t, [x(t).diff(t)], [m], > [pos_vec], > [I_mat], > [ome_vec], > [pos_vec], [force_vec], > [ome_vec], [torque_vec]) > > print "Newton's second law: " > sympy.pprint(result) > > main() > [/Code] > > [Console] > Newton's second law: > 2 > d > [m*-----(x(t)) = f(t)] > dt dt > [/Console] > > You can use the feature by calling the function get_withKane in the > module motionequation. I tried and confirmed that it will return > several kinds of the motion equations, for example, Newton's second > law, Euler's equations of rigid body, etc. > > ondrej.certik provided me with useful information on the project for > such a feature which is found at:http://code.google.com/p/pydy/ > > I'm going to write more about how to specify the arguments of the > function to use for your own project. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "sympy" group. To post to this group, send email to sympy@googlegroups.com To unsubscribe from this group, send email to sympy+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/sympy?hl=en -~----------~----~----~----~------~----~------~--~---