Angular positons are wrong how to correct them ?

2 views (last 30 days)
This is the 3d animation secreenshot of my triple pendulum.
I have oriented them as such, so that when i put 0 degree to 'Specify position target' on revolute joint blocks seen below, they would make 0 degree with respect to +x direction.(CCW-positive and CW-negative). I have made new frames (F1-F2) on tips of each rods and connect them with point masses, instead of translating the frames.
But when i am trying to obtain theta values only theta_1 comes up with correct values. Theta_2 and Tehta_3 are false.( I am compering the results with an already derived graph in an academic study).
Also trying to get the coordinates (x2 y2 ,x3 y3) of 2nd and 3rd point mass is again gives wrong results. Only theta_1 and x1 y1 values are correct. I think its about the orientation of frames, first revolute joint is connetted to the ground so values are gained according to ground but the other frames are giving theta and positions with respect to the frame that they connected i think, or something like that i am not sure. How can i get theta1-2-3 as degrees with respect to +x direction (CCW-positive CW-negative).
Here is my theta 1-2-3 graph (Yellowline-theta1,Blue-theta2,Orange-theta3)
And how it should be.

Accepted Answer

Les Beckham
Les Beckham on 1 Jan 2022
Edited: Les Beckham on 1 Jan 2022
I believe that the angles are the angular displacements of the individual joints. If you wish to plot the total angular displacement you will need to add them together before your graph block. Add Sum blocks to the theta2 and theta3 lines before the Mux block. The inputs to the first one will be theta1 and theta2 (thus giving you theta1+theta2). The inputs to the second one will be the output of the first Sum (theta1+theta2) and theta3 (thus giving you theta1+theta2+theta3).
Theta1 will need to connect both to the first port on the Mux block and one of the inputs of the first Sum block. Similarly, the output of the first Sum block will need to connect both to the second port on the Mux block and to one of the inputs on the second Sum block. The output of the second Sum block will connect to the third port on the Mux block.
This should give you the total angular displacement at each of the three joints.
I don't have Simulink right now or I would show this.

More Answers (0)

Categories

Find more on General Applications in Help Center and File Exchange

Products

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!