Community Tip - New to the community? Learn how to post a question and get help from PTC and industry experts! X
I'm trying to solve a system of equations for a 4 bar linkage for all the geometry and the forces. For some reason the comparitor functions are not actually constraining the system as they should. For example all angles inside a triangle should add to 180deg (pi). ProE does this. MathCad solve block allows this is float slightly off (therefore giving incorrect geometry).
I modeled it in ProE and locked down the geometry I wanted fixed. The main input is 1 of the angles and everything else should be solveable from that.
I've attached 2 MathCad files. 1 for the geometry (using law of cosines and basic trig). Another for the FBD using primarily law of cosines. And a 3rd trying to solve the geometry using only angles and basic trig.
I also attached the FBD sketched out...
Anyone have any advice (specifically on how to "lock down" constraints, if possible)?
Thanks,
Pete
Solved! Go to Solution.
Pete Johnson wrote:
I decided to put in the entire FBD and see if it could solve it (20 unknowns).
It worked and gives result similar to what we've measured in an actual machine.
Very good, but note that you have used 24 equations to solve for 20 unknowns. You can safely remove, say, the last two equations for theta12 and theta14, and the last two with theta 23 on the LHS (all in the 4 bar linkage section) and still get the same result.
Alan
Anyone have any advice (specifically on how to "lock down" constraints, if possible)?
Thanks,
Pete
Assign the angles to the solution vector! See attached.
Alan
Thanks Alan.
I'm still struggling with CTL_4_bar_FBD_solve6.mcdx
c+f should always equal 1019.6 but the solver allows it to change from it's constrained number.
likewise with a+d which I want to "lock down" at 800.24.
Maybe I should stop bothering to find the lengths of the triangles using law of cosines and just use the method I have in CTL_4_bar_dims_angles2.mcdx which you helped me with?
Thanks again!
Pete
Pete Johnson wrote:
Thanks Alan.
I'm still struggling with CTL_4_bar_FBD_solve6.mcdx
c+f should always equal 1019.6 but the solver allows it to change from it's constrained number.
likewise with a+d which I want to "lock down" at 800.24.
Pete
I don't know quite what's happening, but when I recalculate your sheet I get exactly the values you expect! See attached (All I've done in the attached is to use 'separate regions' to see things more clearly, and then recalculated!
Alan
I found an error in my FBD. I forgot to include Fcg in the sum of the y forces on Link 3!! Whoops! Big mistake.
I decided to put in the entire FBD and see if it could solve it (20 unknowns).
It worked and gives result similar to what we've measured in an actual machine.
Pete Johnson wrote:
I decided to put in the entire FBD and see if it could solve it (20 unknowns).
It worked and gives result similar to what we've measured in an actual machine.
Very good, but note that you have used 24 equations to solve for 20 unknowns. You can safely remove, say, the last two equations for theta12 and theta14, and the last two with theta 23 on the LHS (all in the 4 bar linkage section) and still get the same result.
Alan
Do you (or anyone else) know why some of the forces in the resultant matrix are in parentheses? And what that means?
I hope this Group about bar linkage
http://communities.ptc.com/groups/kinematic-models-in-mathcad
wil be interesting and usefuul to you.
Valery (or anyone else),
I would like to solve the FBD system of equations iteratively, changing some of the input constants (Fcg) over a range and plot the results.
I tried creating a For loop and mathcad doesn't allow a solve block inside a program.
I also tried simply making the input constant a range variable, i.e. Fcg:=10000..15000
Can someone point me in the right direction as to how to do this?
Thanks, Pete
Pete Johnson wrote:
I would like to solve the FBD system of equations iteratively, changing some of the input constants (Fcg) over a range and plot the results.
Solution(Fcg):=Find(...)
and you can use this function in your program with different values of Fcg
Pete Johnson wrote:
I also tried simply making the input constant a range variable, i.e. Fcg:=10000..15000
ORIGIN:=10000
Fcg:=10000,10001..15000
Do you mind attaching the modified files you got to work?
Thanks!
Pete