Continue to Site

Eng-Tips is the largest engineering community on the Internet

Intelligent Work Forums for Engineering Professionals

  • Congratulations cowski on being selected by the Eng-Tips community for having the most helpful posts in the forums last week. Way to Go!

How to Implement Tension Only Members in a Matrix Stiffness Plane Frame Program 2

Status
Not open for further replies.

E720

Structural
Feb 20, 2018
71
I have written a plane frame program in c++ that I am relatively satisfied with. It allows the user to set some constraints on the members (max/min width and depth) creates different designs from the standard steel shapes and then runs a bunch of analyses corresponding to different load cases and checks max forces versus max capacities according to AISC 360. One capability that I would like to add is the ability to designate a member as tension only. The only way I can figure out how to do this is to run an analysis, check the tension only members, and if they are in compression set the stiffness to zero and rerun the analysis. I am just wondering if there is some other better way out there. I end up running a bunch of analyses, for linear, number of analyses = number of designs * number of load cases. For the scope of things that I am working on it usually takes a couple minutes to run all those. If I have to run each analysis twice then it will take twice as long. Is there a better way? If it is a symmetric structure then is there any downside to just not modeling the tension only members that I know a priori will be in compression. Any advice is welcome, thanks.
 
Replies continue below

Recommended for you

I think you are on the right track.

Here's the logic I would use:
1)Run an analysis
2)Check the tension only members
IF - they are in compression THEN set the stiffness to zero
3)Rerun the analysis
4)Re-check the same members net length and if it now is less than the original - re-set the stiffness to its original
5)Re-run the analysis
6)Repeat items 2) - 4) until no further change in stiffness is required.



Check out Eng-Tips Forum's Policies here:
faq731-376
 
I don't understand your #4. It seems like if the length of the tension only members is less than original then it is in compression and I would keep the stiffness at zero. Could you clarify?
 
Not 100% sure on this (perhaps someone else can comment), but the way I thought commercial software based on the direct stiffness method works was to incrementally increase the loads and check progressively for members in compression/tension at each step and remove as required/replace as required in an incremental fashion as they just start to take tension or compression to gain early convergence and redistribution of the deformations.

As opposed to smacking all the load on it at once and then cycling like JAE suggests, as I'd imagine you can get things flip flopping back and forth adding/deleting braces with no convergence (need brace, don't need brace, need brace, don't need brace,.... etc). Especially if there are lots of non-linear brace elements of varying stiffness with large shifts in the center of stiffness when a brace is removed that was previously active. Once you reach a state where there are no successive changes in members being added or removed you can scale up to the total loads.

Obviously you need to loop in any method adopted, so analysis times will obviously increase accordingly.

Another way to maybe do it for lateral load cases is simply is to have a case with a nominal lateral load only in the same principle direction as the final load cases lateral load vector. Run this first to determine which braces to eliminate without the complication of having all the gravity loads, etc (probably make things run faster without all the extraneous loads?). This should be a good gauge of what braces will be removed after addition of the gravity and full lateral loads are included. Then with the updated geometry with certain braces removed just run the full analysis once, and have a check to ensure the braces left are all in tension. Obviously for every lateral loadcase in a 3D structural analysis you need to do this exercise.
 
I will amend JAE's logic slightly....
1)Run an analysis
2)Check the tension only members
3)The ones that are in compression (i.e. the distance between their end nodes is less than the original length) should have their stiffness adjusted. I like to use something like 1.0E-6*initial stiffness. Though you might set this to a variable that you can change.
4)Rerun the analysis
5)Check the tension only members, the ones that are still in compression can be reduced in stiffness again (if compression force is above a certain tolerance).
6)If any of the tension only members that had gotten their stiffness reduced are now in tension (based on length not force), then re-set them to their initial stiffness.
7)Re-run the analysis.


My point for introducing tolerances and not setting stiffness to pure zero is that you want to avoid divergence. This still isn't a true "non-linear" solution. For that you would increment the load and adjust the stiffness before applying the next load increment. But, it's using a number of the same concepts to avoid divergence.
 
E720 I think the subsequent answers by others above may have answered your question about my #4.

Essentially the issue is that if you have multiple tension-only members in a model, and you find that all or many are in "compression" after the first iteration, and then you convert them to low stiffness - your second run may show that, with the NEW matrix and stiffness configuration, that one or more tension-only members are back in tension. So you may have multiple cycles where your model must converge.

Subsequent runs can cycle back and forth indefinitely, which is problematic....perhaps why JoshPlum suggests a less abrupt stiffness change.

I was trying to describe the process that I thought RISA uses, of which JoshPlum knows much better I'm sure.



Check out Eng-Tips Forum's Policies here:
faq731-376
 
Thanks for the replies. Although originally I was asking if there was a way to do this within a single analysis it sounds as if I will have to run multiple iterations. It shouldn't be hard to implement because I already have implemented mechanisms for geometric nonlinearity (ie Newton Raphson iterations, tangent stiffness matrices, etc,) so it shouldn't be difficult to adjust the stiffness within that framework.

AISC requires a nonlinear analysis (or other options) so I guess it's not a big deal to iterate a few times because you already have to anyway. I would guess that this sort of thing would converge super quickly (probably usually 1 iteration).

As a side note on the scale of projects that I am working on the increase in internal forces because of geometric nonlinearity is always insignificant. Has anybody else noticed this? Especially with steel that satisfies the ductile members provisions.

 
E720 said:
As a side note on the scale of projects that I am working on the increase in internal forces because of geometric nonlinearity is always insignificant. Has anybody else noticed this? Especially with steel that satisfies the ductile members provisions

I'd say that the P-Large delta effect can be significant, but the P-little delta effect is almost always insignificant unless you have really slender members.
 
I guess I'm missing something ('cause trusses generally need to have compression members). On further reflection, I think you want to have a special tension only element (representing a cable).

I wonder if removing the member completely is the most expedient thing to do ... maybe this is a drastic change to the structure's stiffness matrix, how will the loads redistribute ? I wonder, and maybe some testing shows the way to go, if you should reduce the stiffness significantly, like to 10% (1%?) and re-run.

Then maybe consider pre-tensioned cables, which can carry a small compression load ?

another day in paradise, or is paradise one day closer ?
 
rb1957 - the discussion is about precisely what you said "tension only elements". The application in my case is I want to be able to model tension only rod bracing and basically not worry if it buckles (elastically).
 
is an euler column allowable that difficult ? The FEA shows where the load wants to go, most efficiently for the structure given it. If it puts -1000 lbs down a "rod bracing" then size the rod for -1000 lbs. To do otherwise would be less efficient. And remember, the slender rod is still there in reality (even if you remove it from the model) and would look pretty awful if it buckled.

another day in paradise, or is paradise one day closer ?
 
Well rods put in tension simply buckle right away - with really zero compressive resistance. I'm referring to rod X-bracing in buildings for example - 3/4" diagonal rods with turnbuckles across a 25 ft. (7.6 m) bay.

Check out Eng-Tips Forum's Policies here:
faq731-376
 
Most tension-only members are pretensioned. As load is applied, the stiffness of these members should remain in the stiffness matrix until the pretension is relieved.
 
Yes - there's some nominal "pre-tension" put in the rods to get any sag out - but there's really not much in the way of quality control where I'd bank on that pre-tension in my design.

Check out Eng-Tips Forum's Policies here:
faq731-376
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor