cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
Showing results for 
Search instead for 
Did you mean: 

Community Tip - Want the oppurtunity to discuss enhancements to PTC products? Join a working group! X

Translate the entire conversation x

Symbolic solver unit conversion with further substitution

Ivan_Pat
12-Amethyst

Symbolic solver unit conversion with further substitution

Dear PTC Mathcad Community,

I want to ask for clarification on the behaviour of units and symbolic substitution in Mathcad Prime (similar topics have already been raised, but I still haven't found an appropriate answer for my issue).

 So I try to find a symbolic expression for epsilon_c2, which is a parameter of the equation N.

Solver succeeded with the issue, but with incompatible units (see picture)

Ivan_Pat_0-1765875279227.png

So, I have tried to find out the solution in the community, but the advice of @Werner_E  with calculation options didn't resolve the issue (see the picture)

Ivan_Pat_1-1765875431392.png

So my issues are: 

1. How to make the symbolic solving more "seamless" with appropriate units' manipulation in the solutions?

2. Why does Mathcad not see the assigned values of the  epsilon_c2 obtained in the previous solution?

Ivan_Pat_2-1765875677338.png

 

After some time, when the file has been refreshed, some magic happened, and now I can use the roots of epsilon c1 and c2 in a "normal" manner.

Ivan_Pat_1-1765882285970.png

But the next issue is that it doesn't let me substitute the obtained symbolic solution into the following step calculation for the moment M calculation.

Ivan_Pat_0-1765882122108.png

As it can be seen, the factual equation is real, with proper units,

Nevertheless, Mathcad is still not satisfied with...

 

I am still convinced of Mathcad's power, but each time I get stuck with such a misunderstanding of Mathcad logic, I feel broken, exhausted and unable to continue to the next step - automation of my manual solution.

 

Any clarification, examples, or references to documentation would be greatly appreciated.
I am trying to align my workflow with my Mathcad Prime 10.0.0.0 internal logic rather than fight against it.

Thank you very much for your time and support.

 

The file with the manual calculation of M is attached.

 

37 REPLIES 37

Hi Ivan

Version 4 of the file.  Have found a couple of issues on checking my work.  First to answer your questions.

 

"h" is not used in my worksheet.  d is indeed h-as.  the depth from top compression fiber to bottom steel layer.

The curvature is derived from e/kd not (ec1-ec2)/h.  It is the same result.

 

Calculations for ecu1_cd/2 are an example only, I used as a check.  they could be taken out and the sheet would still work.

 

The steel grade chosen like A400C is applied to both layers of steel.  In practice it would not be a good idea to mix grades as errors on site of misplacing grades in wrong positions could occur.

 

I have found some errors in my sheet upon checking.  That is why version 4.

Used the wrong column of DBN for fcd.  This is corrected.

Used fyk and Es to set the max yield strain, then wound back the resulting stress by gamma s.

This means the steel stress strain diagram is altered.

 

Changes in yellow.

Capture.JPG

Results in very close answers to MQN.com. 383 to 385.

Capture3.JPG

Capture4.jpg

For some reason not getting the same stress values for the reinforcement?

 

Have corrected the stress calculations with s1 being the top reinforcement and s2 being the bottom reinforcement as per MQN.com.

 

Will continue to look for errors.

 

Do not be put of by the numeric integral calculus it gets the same result for compressive force in concrete as equation 4.3 is the mathematical equivalent:

Using the calculus it is easy to swap to Eurocode stress block.

Capture2.JPG

I do not understand the second integration of compressive block in equation 4.4?  If you take moments about the centroid of compressive force you eliminate that force from the moment calculation.  What is X1 in equation 4.4?

 

I am checking for more errors as time permits so be prepared for version 5.

 

Not sure why your system does not find the text files.  Try using the full path in Prime READFILE statements.

 

Cheers

Terry

@terryhendicott  I am really impressed by your level of understanding and MathCAD mastery, Terry.
It'll help me a lot.
Trying to digest the material...

Regarding your question about X1

X1=ec1/א, where the א - curvature =1/h*(ec1-ec2)

 

 I still can't get from the formula why do you put plus after the first member As*fs*(d-kd)...

Ivan_Pat_0-1766436573837.png

The "+" sign depends on the distance d' from the most compressed part of the beam and comparison with kd. Whether the d ' is bigger than kd - the reinforcement is situated in the tensile zone, and the total moment will be equal to the lever arm (d-Centroid) produced by the sum of the reinforcement, which is in the tensile zone.

 

Ivan_Pat
12-Amethyst
(To:Werner_E)

@Thank you for the clarification and the script modification, Werner.

 

I modified your script a little to include ORIGIN :0 in the hope that it'll give me zero values on the first iteration step, like here.

Ivan_Pat_2-1766333832581.png

by providing a conditional statement and counting a coefficient from  zero to four:

Ivan_Pat_0-1766333608189.png

But somehow MathCAD do see the error still:

Ivan_Pat_1-1766333683698.png

(((

Prime 10.0.0.0 is attached.

Can you explain why MathCAD sees it as an error?

As well as a few questions in the script, highlighted in colour.

 

Werner_E
25-Diamond I
(To:Ivan_Pat)

i <- 0 is a local assignment!

In a conditional you have to use the comparison equal (Boolean equal)

Werner_E_0-1766343066256.png

See modifications in attached sheet.

If you just wanted all values to be zero in front it would have been easier to work from the previous sheet and simple add the zero values on top 😉

 

According your comments in the sheet - I don't see what you seemed to have seen. I only see errors because ec2 is not defined, etc.

 

You changed ORIGIN from 1 to it default value 0.

When you had a sum running from 1 to rows(...) it will not work that way, because vector indexing start with 0 now.

You are better of letting the sum run from ORIGIN to last(...). That way you are independent from the setting of ORIGIN.

 

 

Ivan_Pat
12-Amethyst
(To:Werner_E)

@Werner_E Thank you for correcting the code, Werner.😁

Now, I really have the perspective to move forward to upgrade the code ))🙏

Werner_E
25-Diamond I
(To:Werner_E)

To make clear what I meant with my remark

"If you just wanted all values to be zero in front it would have been easier to work from the previous sheet and simple add the zero values on top"

You simply have to replace the bottom line of the program

Werner_E_1-1766402940795.png

with

Werner_E_2-1766402964039.png

to get

Werner_E_3-1766402997540.png

and

Werner_E_4-1766403125339.png

ORIGIN was not changed, its still 1..

 

I also noticed that the variables sigma_s1_2 and also x1 which you calculate are never used !?? So these calculations

Werner_E_5-1766404372265.png

and

Werner_E_6-1766404969177.png

could be deleted.

Ivan_Pat
12-Amethyst
(To:Werner_E)

@Werner_E Yes, it will be more considerable!))

Thanks for your desire to help, Werner!!!

Werner_E
25-Diamond I
(To:Werner_E)

I played around a little bit and turned the calculations into individual functions rather than just working with vectors.

I had hoped that the maximum Moment value could be calculated with more precision using the derivative. Unfortunately Prime chokes on that - probably because of the if-statements and the resulting discontinuities in the derivative.

Nonetheless it may be useful. I also made all calculations ORIGIN-independent.

Prime 10 sheet attached

Announcements

Top Tags