Originally Posted by: SteelCat I also was looking for a suitable discrete approach
Hi SteelCat,
Last night I was deeply trying to solve that double integral of discontinuous functions whose conditions depend both on the integral dummy variables and the unknown variables...I never had such a hard system of equations to solve.
I followed the suggestions -thanks to Alvaro and Martin- of translating the boolean conditions into unit_step() functions, that Maxima handles..the problem is that, since your conditions depend on the unknowns..complicated equations are transferred to Maxima, and solving with mnewton() goes for about 7 min.
Here is an example (Maxima handles unit_step() and converts it into abs() and signum() functions).
I estimate that other non-linear solvers will also be time-consuming, that does not worth it for this problem.
Before my suggestion, I want to clearly understand:
1. I did not see strain limits in concrete (~3.5%%) nor in steel (~10%%), thus, I thought, you want to have a result of the equations, and then evaluate if this result is real? (I have seen in your Excel-like worksheet that you had for example concrete strains of about one percent, which is not possible).
2. Those observations lead me to ask...you have external forces acting in a defined concrete section, so, I understand you do not want to design, nor check the ultimate resistances..what you want is to describe the section's tensional state, right? This last being a problem of SLS...not ULS.
I have never dealt with this problem, but knowing that R and P-R diagrams are constitutive equations simplified for the design, I would use Sargin equations (EC2-3.1.5), which are a more realistic description of concrete stress-strain relations.
Now, I would suggest you to re-model your approach, in a manner that you will stay continuous..but not solving for a unique solution, rather trying all the possible solutions in a while loop (in this approach, there is a definite range to search the solution).
solution.png (607kb) downloaded 17 time(s).This approach simplifies:
1. You have as input data Mx and My..the neutral axis will have the same direction as M, no need to have curvatures in two directions as unknowns.
2. You can make an Area function (that green trapezoid) that you would use to compute differential forces (sigma*dA)..those forces being integrated (single integral, not double) in the orthogonal direction to the neutral axis.
3. You can make a while loop that stops when a tolerance for equilibrium is reached. The loop variable will be your N.A. position..will vary from A to B.
4. These tasks are rapidly computed...the while loop will run very fast, as you will define in each loop a tensional state for your PR
Now, the problem..
I did not see your strain limitations..and putting these limitations in the problem, is a very hard task, since you have to rotate your plane always remaining in the regions defined by EC2-6.1
This is a very nice problem, I am dealing with it in my concrete volume interaction (for rectangular sections).
But all these suggestions I am giving to you, work for me since I am applying them in my worksheet. I cannot share it because now it's a mess, but hopefully will end in June.
As a simple demonstration of the while loop varying neutral axis, here I attach a rectangular section beam designer according to EHE-08 (Spanish code).
F-S-R-SR-D.sm (129kb) downloaded 19 time(s).You can "show inputs" in "acero requerido" to view the while loop.
I hope it can help you with your project and please let us know here of your advance.
Regards,
Alvaro.