Alternating Stress in ANSYS (Part 1: Principal Stress) : We Make Innovation Work

Download as pdf or txt
Download as pdf or txt
You are on page 1of 38

Alternating Stress in ANSYS

(Part 1: Principal Stress)

We Make Innovation Work


www.padtinc.com
Harmonic Response Analysis: An Overview
• A harmonic response analysis is the simplest type of structural dynamic behavior
• ANSYS allows users to solve the structural response to loads which have the following form:
A 𝑒𝑒 −𝑖𝑖𝜔𝜔𝑡𝑡 , where A is a constant and ω is a constant frequency
• The response at any node has the same form, but possibly with different phase, ϕ
(A 𝑒𝑒 −𝑖𝑖(𝜔𝜔𝑡𝑡+𝜑𝜑) )
• Since users are most typically interested in extreme response, amplitude plots are common.
• A critical feature of a harmonic response is that no system response can exceed the
magnitude, Ai at any location, i (same as 𝑥𝑥 in the ANSYS documtation shown below)
• From the 2020R1 documentation:

We Make Innovation Work


www.padtinc.com
Harmonic Response Analysis: Amplitude and Phase Response (Continued)

• Users may also ask for phase angle, φ associated with any result as follows:

• From section 15 of the


MAPDL Theory Reference

• Calculating amplitudes and phases of solution quantities at nodes is a very fast and efficient
post-processing step.
We Make Innovation Work
www.padtinc.com
Harmonic Response Analysis: Amptlitude and Phase Response
• We’re going to focus on just the Full method in this discussion (although the same issue may
be extended to the mode-superposition case as well)
• So, ANSYS solves the equation below(15-67 from section 15 the MAPDL Theory Reference)...

• The complex results {u1}+i{u2} are stored in the result file for all result quantities, u. In other
words, a given result quantity will stored as a unique complex number at each node.
• After a run is complete, ANSYS calculates amplitudes according to the equations on slide 2.
But as we’ll see, certain complications appear to arise when calculating principal stress.

We Make Innovation Work


www.padtinc.com
Harmonic Response Analysis: An Overview (Continued)
• This seems simple enough until we read a rather cryptic disclaimer:

• In what follows, we
want to explore what
ANSYS might mean
by this in some detail
• Is the rule we
underlined in slide 2
being violated?

We Make Innovation Work


www.padtinc.com
Harmonic Response Analysis: A Problem with Principal Stress Amplitude
• Following what we’ve seen so far, users may notice that Principal stresses are also stored in the
results file after a harmonic response run. So, if we want (for example) a maximum Principal
stress amplitude, it should be as simple as applying equation (2) or (15-68) to the real and
imaginary values found on the results file (and of course: ANSYS will helpfully do this for us)
• The values obtained this way are represented in Workbench by specifying a frequency (by ‘set’
or ‘frequency’), and then the “Amplitude” option to “yes”

We Make Innovation Work


www.padtinc.com
Harmonic Response Analysis: A Problem with Principal Stress Amplitude
• So, in the example model below, we show a maximum
principal stress amplitude of 3.9578 MPa

0.254 mm constant amplitude


base excitation: 700 – 900 Hz

We Make Innovation Work


www.padtinc.com
Harmonic Response Analysis: A Problem with Principal Stress Amplitude
• We can check this amplitude by expanding the stress result at 0 and 90 degrees. This should
give us the real and imaginary s1 components.
• In Workbench, we do this by setting the “Amplitude” option to “no” for a given frequency
result, and then speicfying the “Sweeping Phase” (0 and 90 in our case)

0 degrees S1 90 degrees S1

We Make Innovation Work


www.padtinc.com
Harmonic Response Analysis: A Problem with Principal Stress Amplitude
• We must be careful when doing this, because we generally want to perform such checks on a given
node, and the maximum at 0 degrees may be at a different node than at 90 degrees. We got lucky
in this case
• In any case, we calculate s1 = sqrt(3.6505^2+3.9453^2) = 5.375 MPa
• But this is far from the amplitude result we plotted earlier (3.9578) – on slide 7, shown again below
• In fact the plotted amplitude result is rather close to the purely imaginary s1 value. What’s going
on?

We Make Innovation Work


www.padtinc.com
Harmonic Response Analysis: A Problem with Principal Stress Amplitude
• Before proceeding, let’s plot another s1 contour plot. This time, under “definition” in the
details view of the max principal stress result, we’ll specify “Maximum Over Phase”, at the
same frequency.
• And behold! This result seems match our amplitude estimation rather well.

We Make Innovation Work


www.padtinc.com
Harmonic Response Analysis: A Problem with Principal Stress Amplitude

• Let’s review the situation:


• Workbench allows us to create contour plots of amplitude two different ways:
1. By “set” or “frequency”, and then setting the “amplitude” option to “yes”. But this
result doesn’t agree with what we get when set the “amplitude” option to “no”, and
then specify 0 and 90 degrees (we assume that the latter operation should be
returning the real and imaginary s1 values)
2. By “Maximum over Phase”. This DOES appear to be giving us the amplitude result
we’re looking for.
• This poses a problem because of what we said on slide 2 (reprinted below)
• How do we resolve this? Which “amplitude” can we trust?
• Before continuing, we should also assure readers that this issue (of obtaining two different,
seemingly incompatible amplitude results) ONLY exists for principal stress results

We Make Innovation Work


www.padtinc.com
Harmonic Response Analysis: A Problem with Principal Stress Amplitude

• A usual in situations like this, it’s helpful to go into MAPDL and have a look at the results file
directly. Let’s focus on our node of interest in WB (node number 2777)....
• One way to do this is to simply drag-and-drop a Mechanical APDL object from the toolbox
onto the setup cell of the harmonic analysis in the Project Schematic.
• Make sure to update both cells. Then right-click on the new Mechanical APDL Analysis cell

We Make Innovation Work


www.padtinc.com
Harmonic Response Analysis: A Problem with Principal Stress Amplitude

• Now, we want to review the stress results at the first stored frequency (set,,1, or 727.86 Hz)
• With the MAPDL gui: General Postproc->Read Results->By Time/Freq as shown below

• Then select node 2777 by typing


‘nsel,s,,,2777’ into the command
window, followed by <enter>
• Print the component stresses by typing
‘prnsol,s,comp’ <enter> into the
command window
• Print the principal stresses by typing
‘prnsol,s,prin’ <enter>
• Repeat these listings for the imaginary
components. This is done by reading
the results again. But this time,
specifying ‘Imaginary part’ in the
appropriate list menu…

We Make Innovation Work


www.padtinc.com
Harmonic Response Analysis: A Problem with Principal Stress Amplitude

• Below is what the listings should look like…

• Real stress components and Principals (set,,1,,real)

• Imaginary stress components and Principals (set,,1,,imag)

• Component and Prnicipal amplitude (set,,1,,ampl)

We Make Innovation Work


www.padtinc.com
Harmonic Response Analysis: A Problem with Principal Stress Amplitude

• Summarizing these findings in a spreadsheet: We input all the component and principal
stress values as output in MAPDL, but the spreadsheet is calculating its own amplitudes
according to sqrt(Re(s1)^2+Im(s1)^2)
• The goal is to compare our amplitudes with what ANSYS is calculating

Spreadsheet estimates
match ANSYS

• But there’s still a problem with Principal stress amplitudes...

Spreadsheet estimates
DON’Tmatch ANSYS

We Make Innovation Work


www.padtinc.com
Harmonic Response Analysis: A Problem with Principal Stress Amplitude

• However, there is a familiar-looking amplitude. Notice that the s3 amplitude matches


exactly (to four decimal places) what Workbench reports as the maximum principal
amplitude. Also note that I switched units mid-stream. Slide 14 is in Pa and what I compare
below is MPa

• So, we’re getting close to understanding at


least one part of the principal stress amplitude
mystery. It appears that Workbench sorts
principal stress by the as-stored amplitude in
descending order (we’ll explain that
terminology in a moment). In other words, the
“maximum principal stress” amplitude in this
case appears to be max(|s1|,|s2|,|s3|)
We Make Innovation Work
www.padtinc.com
Harmonic Response Analysis: A Problem with Principal Stress Amplitude
• To test this hypothesis, we’ll check the other two stress magnitudes. If we’re right, the middle principal
stress should equal 3.6763 MPa, and the minimum principal stress should equal 0.8965 MPa
(according to our spreadsheet results on the previous slide)
• Note that when doing this comparison, we’re being careful to pick just our node of interest (2777)
• It looks like the hunch was correct!
Max Principal stress amplitude Middle Principal stress amplitude Minimum Principal stress amplitude

We Make Innovation Work


www.padtinc.com
Harmonic Response Analysis: A Problem with Principal Stress Amplitude
• So, why is there such disagreement between the MAPDL principal stress amplitudes at node 2777 (the
last listing on slide 14) and what Workbench (and we) have been calling the principal stress amplitudes?

• These are amplitude we’ve just


confirmed in WB...

• These are amplitudes at node 2777


reported by MADPL (set,,1,,ampl)

• To begin a lengthy discussion, we’ll fast-forward and show you where we think the larger amplitudes
come from
• s2 amplitude remains unchanged (sort of)

• s1 amplitude is close to sqrt(Re(s3)**2+Im(s1)**2)

• s3 amplitude is close to sqrt(Re(s1)**2+Im(s3)**2)

We Make Innovation Work


www.padtinc.com
Harmonic Response Analysis: A Problem with Principal Stress Amplitude
• So, MAPDL appears* to be swapping the positions of the s1 and d3 real and imaginary components
before calculating the amplitude!
• Before describing why this might be a sane thing to do, let’s verify that these ‘swapped’ amplitudes
match what WB reports as the ‘Maximum over phase’ result (again, at our node of interest :2777)

Max Principal stress amplitude Middle Principal stress amplitude Minimum Principal stress amplitude

Notice: We’ve switched back to MPa. All WB


results will be reported in MPa units

We Make Innovation Work *that’s actually NOT the procedure ANSYS is using. But we’re arguing it comes out the same
www.padtinc.com
Harmonic Response Analysis: A Problem with Principal Stress Amplitude

• Ok. We’re making progress, but we’re begging more questions


• At least for node 2777 (in this one model!) we’ve shown that the ‘max over phase’ principal stresses
seem to agree rather well with what MAPDL calls the amplitude result
• So, in Workbench, it’s possible to view two different versions (don’t know of another way to
characterize this) of a harmonic response quantity: One is the amplitude result of the quantity of
interest at a particular result set or frequency. The other is the same quantity plotted in terms of
“maximum over phase”
• First, readers should verify that the two types of quantity only differ when plotting principal stress
quantities!
• In the previous slides, we have seen that the two amplitude representations of principal stress
quantities in Workbench can be reproduced by simply re-ordering the principal stress real and
imaginary values. We will say more about this in a moment…
• Although we may know how to calculate each of the two amplitude representations, we still don’t
know WHY there are two. Which is the ‘correct’ one (one is certainly larger than the other) ?
• To get a grip on what’s going on, we’ll keep focusing on our node 2777 and see if we can solve the
problem from scratch...

We Make Innovation Work


www.padtinc.com
Harmonic Response Analysis: Principal Stress as Eigenvalues
• During a harmonic response analysis, once we’ve calculated all the real and imaginary component
stresses, the principal stresses are calculated according to the eigenvalue prolem:

𝝈𝝈 � 𝒆𝒆𝒊𝒊 = 𝜆𝜆𝒊𝒊 𝒆𝒆𝑖𝑖 (I)

• But here, σ is the full complex stress tensor (or at least it should be), and ei are the corresponding
three column eigenvectors
𝝈𝝈 = 𝝈𝝈𝑅𝑅 + 𝒊𝒊 𝝈𝝈𝐼𝐼 (II)
where 𝝈𝝈𝑅𝑅 = Re(𝛔𝛔)
𝝈𝝈𝑰𝑰 = Im(𝛔𝛔)
• Fortunately, σR and σI are uncontroversial (our problem doesn’t lie there) and helpfully stored for us on
the result file. For node 2777, we’ve already obtained these components on slide 12
• We’re going to calculate the eigenstresses (I) ourselves –outside of ANSYS.
• Users can do this without too much trouble in a spreadsheet, using Cardano’s method or Vieta’s
substitution (see https://en.wikipedia.org/wiki/Cubic_equation )
• However, it’s even simpler in numerical software such as MATLAB, NumPy, or Mathematica. We’ll use
the latter
We Make Innovation Work
www.padtinc.com
Harmonic Response Analysis: Principal Stress as Eigenvalues

• Writing the full the complex stress tensor (II) for the real and imaginary stress components at node
2777 in Mathematica (using MPa units now) yields:

σ=

• And applying Mathematica’s built-in eigenvalue function to solve (I) yields:

𝜆𝜆1 𝜎𝜎1
𝜆𝜆2 = = 𝜎𝜎2
𝜆𝜆3 𝜎𝜎3

• The correspondong amplitudes are:


𝜎𝜎1
𝜎𝜎2 =
𝜎𝜎3
We Make Innovation Work
www.padtinc.com
Harmonic Response Analysis: Principal Stress as Eigenvalues

• So, just solving the eigensystem (I) outside of ANSYS seems to verify the MAPDL amplitude result and
the Workbench “maximum over phase” result!
• This certainly is progress!
• But look carefully. Mathematica has reached this result with a different sorting scheme for the
eigenvalues than we appear to be using in ANSYS. It is a common mathematical convention to sort
eigenvalues by descending magnitude
ANSYS (MAPDL) principal stress values (MPa) principal stress values calculated in Mathematica (MPa)

• What’s happening here is that ANSYS is instead using the usual engineering convention to sort
principal stress components (real and imaginary values). Recall from your Solid Mechanics texts that
principal stresses are sorted according to numeric value (most tensile –or positive –to least)
• But when dealing with complex (oscillating) principal stresses, this leads to incorrect results!

We Make Innovation Work


www.padtinc.com
Harmonic Response Analysis: Principal Stress as Eigenvalues

• First, let’s state the convention clearly to see what’s wrong with it:
Principal stress are defined as the eigenstress values, sorted from most tensile to least, or
σ1>σ2>σ3
• The problem is that if we follow this convention meant for static systems (note that no mention of real
or imaginary values is made) with the complex components, we can’t ensure that the amplitudes also
follow the same convention --which is precisely what we’re seeing in the previous slide. But that last
condition is what we want for oscillating stresses
• So, it appears that in Workbench, when we plot principal stress by ‘set’ or ‘frequency’ set to ‘yes’ (see
slide 15), we’re getting the amplitude of the pre-sorted (according to the convention above) principal
stress components –only now sorted by descending amplitude (this is why plotting s1 this way is
actually giving us the s3 amplitude)!
• Now, the previous slide states that this is incorrect. How so?
• Well, the s1 and s3 solutions reported in this way are not eigenvalues of the complex stress tensor as
expressed by (I)!
• A quick way to show this is with the following check (ensuring the characteristic polynomial is zero):

det 𝝈𝝈 = det(𝑰𝑰 � 𝛌𝛌) (III)


We Make Innovation Work
www.padtinc.com
Harmonic Response Analysis: Principal Stress as Eigenvalues

• So, for node 2777 we have:


det 𝝈𝝈 =

• For the Mathematica result, we have:

det 𝑰𝑰 � 𝛌𝛌 = det

det 𝑰𝑰 � 𝛌𝛌 = 3.64974 − 3.94452𝑖𝑖 0.50631 − 0.740995𝑖𝑖 0.31445 − 0.4346𝑖𝑖 = 2.38155 − 1.0118𝑖𝑖

• But, for the ANSYS (as-stored) result, we have:

det 𝑰𝑰 � 𝛌𝛌 = det

det 𝑰𝑰 � 𝛌𝛌 = 3.6505 − 0.43459𝑖𝑖 0.50561 − 0.74031𝑖𝑖 0.31439 − 3.9453𝑖𝑖 = 11.05 − 6.93135𝑖𝑖

We Make Innovation Work


www.padtinc.com
Harmonic Response Analysis: Principal Stress as Eigenvalues

• Now, the fact that one of the amplitude results has been disqualified (is not an actual solution) is a
good thing. We need to have one and only one unambiguous solution, and if we simply change the
convention articulated on slide 24, we have it.
• So, here’s the new principal stress convention (correct for oscillating systems) :

Principal stresses are defined as those eigenstresses which solve the eigensystem (I) and whose
magnitudes (amplitudes) are as follow: |σ1}>|σ2|>|σ3|

• But there’s a more immediate practical question: Can the ‘correct’ principal stress solution (according
to the convention above) always be recovered from the principal stresses found on the result file, or do
we have to calculate our own eigenstresses?
• We learned that the incorrect result followed from a mis-ordering of the principal stress components
according to a convention which only works in static situations. We fixed this simply by swapping the s1
and s3 imaginary components.
• Will it always be that easy*?

• Well, almost...

We Make Innovation Work *easy in the sense that we can easily obtain correct results in a macro
www.padtinc.com
Harmonic Response Analysis: Principal Stress as Eigenvalues
• If all we care about is the maximum principal stress, then the answer to the last question is “yes”.
• As we’ll see in a moment, we have a little more work to do if we care about ALL the principal stress values
• A simple fix for maximum principal stress (a macro) –one that at once reconciles the two methods of principal stress amplitude
evaluation, avoids re-calculating eigenstresses, AND avoids ‘sweeping’ to the find maximum values --involves simply re-ordering
the principal stress components of σ1 and σ3 (Re(σ1)>Re(σ3), Im(σ1)>Im(σ3)) such that their combined magnitude (|σ1| >|σ3|).
This is shown below for the example we’ve been using, and compared with the correct solution at right (the full complex
solution found externally)
• This swapping of the s1 and s3 values may be stated as an algorithm:
• Re(s1) = Max(wAbs(Re(s1)),wAbs(Re(s3))) and Im(s1)=Max(wAbs(Im(s1)),wAbs(Im(s3))) where wAbs is an absolute value
function which retains the sign of its argument (typically accomplished by tracking the index of the max element)

ANSYS principal stresses @ max. s1 node location in original ordering Typical eigenvalue solution of the complex stress tensor @ max s1
from left to right (descending value of components) node location, ordered correctly from left-to right (descending
amplitude magnitude)

ANSYS principal stresses @ max s1 node location in new


ordering (after applying green arrows) from left to right
(descending amplitude value)

We Make Innovation Work


www.padtinc.com
Harmonic Response Analysis: Principal Stress as Eigenvalues
• It is worth pausing for a moment to discuss WHY we can be sure that re-ordering the
principal stress components such that |σ1| >|σ3| will always guarantee that σ1 has the
largest principal stress amplitude
• Specifically, how can we be sure that |σ2| ≯ |σ1|?
• The answer lies in the fact that the principal stress components (both real and imaginary)
are already stored by descending value:
𝜎𝜎1 >𝜎𝜎2 >𝜎𝜎3
• This leads to the following four possibilities for the real and imaginary values of σ1, σ2, and σ3.

1. 𝜎𝜎1 >0, 𝜎𝜎2 <0, 𝜎𝜎3 <0. (|σ2| may be >|σ1|. But |σ3|>|σ2|)
2. 𝜎𝜎1 >0, 𝜎𝜎2 >0, 𝜎𝜎3 >0. (|σ1|> |σ2|>|σ3|)
3. 𝜎𝜎1 >0, 𝜎𝜎2 >0, 𝜎𝜎3 <0. (|σ1|>|σ2|, but |σ3| may be >|σ1|)
4. 𝜎𝜎1 <0, 𝜎𝜎2 <0, 𝜎𝜎3 <0. (|σ3|> |σ2|>|σ1|)
• In the above, |σi| is the absolute value of the real and imaginary components –not necessarily the
entire complex eigenvalue (the implication being that sorting by absolute value of the components
is sufficient to guarantee a consistent sorting of the entire complex value)
• Thus, it’s clear that simply evaluating Re(σ1), Im(σ1)and Re(σ3), Im(σ3) is sufficient to ensure that the
algorithm outlined on the previous slide will always yield the maximum principal stress
We Make Innovation Work
www.padtinc.com
Harmonic Response Analysis: Principal Stress as Eigenvalues

• But this is NOT sufficient to guarantee that the s2 and s3 are the correct eigenstresses
• Reviewing the results of node 1 in the very same model shows that s2 and s3 aren’t right
after an S1/S3 swap

ANSYS principal stresses for node 1 in original


ordering from left to right (descending value of
components)

ANSYS principal stresses for node 1 after the s1/s3


swap.

• Notice that |s3|>|s2|. This ordering violates both the static convention, and its
oscillatory counterpart
• But a similar comparison of s2 and d3 (and swap if necessary) will remedy this as well!

We Make Innovation Work


www.padtinc.com
Harmonic Response Analysis: Principal Stress as Eigenvalues

• Below, both the real and imaginary components s2 and s3 are swapped

ANSYS principal stresses for node 1 in original


ordering from left to right (descending value of
components)

ANSYS principal stresses for node 1 after the s1/s3


swap.

ANSYS principal stresses for node 1 after the s2/s3


swap.

• …and after the second swap |s1|>|s2|>|s3|.And this IS a solution of the eigensystem (I)
We Make Innovation Work
www.padtinc.com
Harmonic Response Analysis: Principal Stress as Eigenvalues
• For all the principal stresses to be correct, we have to re-order s1, s2, and s3 such that |s1|>|s2|>|s3|.
This can be achieved by sorting |Re(s1)|, |Re(s2)|,|Re(s3)|, and |Im(s1)|, |Im(s2)|, and |Im(s3)| in
descending order (and retaining their sign)
• Macros can be easily written to achieve this for a single nodal location
• There are only three values we must sort. This can be achieved by performing the swap operation twice
(ANSYS does not offer any functionality to efficiently sort rows of arrays)
• First swap s1 and s3 according to:
Re(s1) = Max(wAbs(Re(s1)),wAbs(Re(s3))) and Im(s1)=Max(wAbs(Im(s1)),wAbs(Im(s3)))
Re(s3) = Min(wAbs(Re(s1)),wAbs(Re(s3))) and Im(s3)=Min(wAbs(Im(s1)),wAbs(Im(s3)))
• Then swap s2 and s3 according to:
Re(s2) = Max(wAbs(Re(s2)),wAbs(Re(s3))) and Im(s2)=Max(wAbs(Im(s2)),wAbs(Im(s3)))
Re(s3) = Min(wAbs(Re(s2)),wAbs(Re(s3))) and Im(s3)=Min(wAbs(Im(s2)),wAbs(Im(s3)))
• Although simple in principle, the above algorithm can be somewhat cumbersome to write in APDL to
run efficiently for multiple nodal results (or an entire model). We therefore offer our own version to
readers as part of this blog article.

We Make Innovation Work


www.padtinc.com
Harmonic Response Analysis: Derived Stress Macros
• MAPDL macros for correctly sorting the complex principal stresses for the active node set –and
calculating their amplitude/phase counterparts are included with the 2020R1 Workbench archive
associated with this blog post (the archive is called “Harmonic_Test_Case”)
• There are four macros, which can be found in the user_files folder of the un-archived Workbench
project. Usage of these macros is documented in the commented header of each
• The four macros are:

• mk_ps.mac: macro for sorting the principal stresses real and imaginary values such that the total
complex amplitudes |s1|>|s2|>|s3|. The sorted complex values are stored in the nx6 array “cps”.
The amplitude/phase counterpart of this array is called “aps”. In addition to the sorting, this macro
also calculates the maximum s1, s2, and s3 amplitudes for the currently active node set
• mk_harmpost.mac: macro loops through harmonic response frequencies, invokes the macros
above, and writes out a comma delimited file summarizing the maximum principal stresses and von
Mises stress for active node set for all frequencies
• mk_ampcalc.mac: auxiliary macro for calculating amplitude/phase from a complex results

We Make Innovation Work


www.padtinc.com
Harmonic Response Analysis: Derived Stress Macros
Example Usage
• An example of how these files may be used is provided in a post-processing command object
• Line 8 quits all active command processing environments
• Line 9 resumes the saved database (under Analysis Settings->Analysis Data Management, “Save
MAPDL db” is set to “yes”)
• Line 10 searches the user files folder for available macros
• Line 11 invokes the mk_harmpost macro, which saves a comma delimited stress summary for each
frequency.

We Make Innovation Work


www.padtinc.com
Harmonic Response Analysis: Derived Stress Macros

Example Usage

• The summary file is stored in the Solver Files Directory and get re-created
every time a new solution is run

We Make Innovation Work


www.padtinc.com
Harmonic Response Analysis: Derived Stress Macros

Example Usage

• To provide another example of how these macros may be used, edit the Mechanical APDL
session created earlier (slides 12 -13. Right-click and ‘Edit in Mechanical APDL’ to launch a new
session)
• Cut and paste the following lines into the command window to prep the environment:
fini !exit current processor
/psearch,_wb_userfiles_dir(1) !search user files folder for macros
/post1 !switch processor to general post-processor
/graphics,full !use full graphics rendering

• Now invoke the mk_ps.mac (principal stress) macro by issuing the


following in the command window:

mk_ps,1 ! invoke mk_ps macro for the first substep (frequency) on the results file)

We Make Innovation Work


www.padtinc.com
Harmonic Response Analysis: Derived Stress Macros

Example Usage

• If successful, this should create two arrays (masked by active node number): One called
‘cps’, containing the complex principal stresses, in order of descending amplitude from left
to right
• The other is called ‘aps’, which contain the same quantities, but in amplitude/phase form
• To see these, go the top menu, Parameters->Array Parameters->Define/Edit…

• To list any of these


arrays, simply hit ‘Edit’…

We Make Innovation Work


www.padtinc.com
Harmonic Response Analysis: Derived Stress Macros
Example Usage
• Finally, we can visualize these results by mapping them onto the model by use of the *vput
command (these plots should be compared to the “Maximum over Phase” plots in
Workbench)
• Columns 1, 3, and 5 of the array ‘aps’ contain the s1, s2, and d3 amplitudes, respectively. To
view these, we just pass the appropriate arguments to *vput, as below:
σ1 σ2 σ3
*vput,aps(1,1),node,1,s,1 *vput,aps(1,3),node,1,s,2 *vput,aps(1,5),node,1,s,3
plnsol,s,1 plnsol,s,2 plnsol,s,3

We Make Innovation Work


www.padtinc.com
Conclusions
• This article reviews how the principal stress quantity is treated in an ANSYS harmonic response analysis
• In Workbench, for all quantities EXCEPT principal stress, plotting amplitude (by ‘set’ or ‘frequency’, with
‘Amplitude’ set to ‘yes’) is equivalent to plotting the ‘Maximum over phase’. For such cases, the relations
of slide 2 and 3 hold with no additional calculation or sorting
• But because the stress eigenvalue sorting convention for static stress cases appears to be used for the
complex (oscillating) quantities of a harmonic response analysis as well, ANSYS resorts to a different
algorithm for determining principal and von Mises stress amplitudes.
• An occasional objection is that what we’re calling the ‘correct’ principal stress sorting convention for
oscillating systems produces odd results. With this convention it is possible to have a real or imaginary
maximum principal stress < 0, while the minimum principal component > 0, and this seems counter-
intuitive
• Our reply to such objections is that the true eigenvalues are complex quantities. Recall that all harmonic
result quantities spend half of the period of response > 0, with the other half < 0. In order to sort such
quantities properly, the amplitude must be used to sort the entire complex eigenvalues.
• In this article, a simple sorting algorithm, along with macro implementations, has been provided that
allows one to restore the eigenvalue ordering above, and thereby treat these quantities like any other
result quantity (i.e. the relations on slides 2 and 3 may be used directly to determine the amplitude and
phase of these quantities, as also demonstrated by the macros). It has also been demonstrated that the
principal stresses recovered in this way are in fact eigenvalues of the complex stress tensor as required

We Make Innovation Work


www.padtinc.com

You might also like