This update arrives a bit late because I was having some major problems with the MATLAB code that I've created. As I have already commented, I solved the non-linear using the Newton-Raphson method with success but I got some big errors after doing some tests changing mechanism's movement and cinematical parameters. First, I saw some strange values in both the thigh and shank angles caused by the periodicity of the trigonometrical functions. That was simple to solve but, just after that, I noticed that the mechanism was doing some strange things during the ascending portion of the crankarm motion but applying some trigonometrical relations that was also easy to solve. The big problem of that program was some strange things that happened with the residuals of the restriction equations after applying my Newton-Raphson algorithm. The minimal residual that I can achieve was dependent of the crankarm position, in certain positions the residuals went down to nanometers but in the "problematic positions", I can't achieve residuals lower than 0.035m. That clearly wasn't acceptable so I decided to try another option.
The option chosen was to use the matricial method for solving both the velocity and acceleration problems and use MATLAB's function fsolve in order to solve the position problem. This function uses a modified Powell's method to solve non-linear systems of equations. It worked flawlessly right from the first test and I even can change the maximal desired residuals for maximal accuracy. As I had got the position problem solved, I adapted the rest of the program to the new algorithm and I did some tests. It worked perfectly. Here you can see the parameters of a first example (COG distances measured from the lower joint: crankarm from the BB, shank from the ankle, e.g.):
And some plots of the variation of the position and cinematical parameters during a crankarm rotation of some natural coordinates chosen randomly:
And finally, a small study about the evolution of the position of the COG during the pedaling motion.I've to note that I have done this for the whole propulsive mechanism (both legs). As you can see, both x and y coordinates of the COG have a sinusoidal relation with the time:
As I have already commented, I will do some dynamical studies of bicycles using the program JBike6. For that reason, I have added the average position of the COG of the mechanism during the pedaling motion. Knowing this and the COG and weight of the upper body, I can determine the position of the COG of the whole body. I will try to do this later because I have to determine the position of the COG and also its inertia through 3D modelling.
That's all for today. Thanks for reading!
A very interesting read, I can't wait to see how your analogy develops.
ReplyDeleteIt would be very interesting to see how the respective COG of a cyclist would theoretically affect the optimal geometry of a bike given different speeds and terrain types.