Frequency analysis

About the development of the FEM module/workbench.

Moderator: bernd

Post Reply
User avatar
PrzemoF
Veteran
Posts: 3520
Joined: Fri Jul 25, 2014 4:52 pm
Contact:

Frequency analysis

Post by PrzemoF »

I need some help with interpreting CalculiX fdr file with frequency analysis. There seem to be some scaling involved ad displacement vaues are reaching values like 2.8E+02 for a small 10x10x100 beam. The section that I need help with:

Code: Select all

    1PSTEP                         1           1           1
    1PGM                1.000000E+00             
    1PGK                3.973327E+08             
    1PHID                         -1             
    1PSUBC                         0             
    1PMODE                         1             
  100CL  101 3.17247E+03         559                     2    1MODAL      1
 -4  DISP        4    1
 -5  D1          1    2    1    0
 -5  D2          1    2    2    0
 -5  D3          1    2    3    0
 -5  ALL         1    2    0    0    1ALL
for normal analysis it looks like this:

Code: Select all

    1PSTEP                         1           1           1
  100CL  101 1.000000000         559                     0    1           1
 -4  DISP        4    1
 -5  D1          1    2    1    0
 -5  D2          1    2    2    0
 -5  D3          1    2    3    0
 -5  ALL         1    2    0    0    1ALL
I tried to treat 3.17247E+03 as a scale factor (it's 1.0000000 for normal analysis), but that doesn't seem to be the case.

Attached a zip with the model file, modified .inp file (overwrite after "Write Calculix Input File") and frd. file.
Attachments
frequency_analysis.zip
(81.77 KiB) Downloaded 142 times
User avatar
sgrogan
Veteran
Posts: 6499
Joined: Wed Oct 22, 2014 5:02 pm

Re: Frequency analysis

Post by sgrogan »

PrzemoF wrote:I need some help with interpreting CalculiX fdr file with frequency analysis. There seem to be some scaling involved ad displacement values are reaching values like 2.8E+02 for a small 10x10x100 beam.
In my experience with other solvers (SW Simulation for example) displacement values for a basic frequency analysis are "un-calibrated".
We are solving for resonance frequencies, so if the system is lossless (ie. no damping factor) the amplification at resonance is infinite at steady state.

The typical output is a table of resonance frequencies (with an advanced option to include mass participation factors) and an animation to visualize the mode shape. Usually the animation has a displacement slider and speed slider.
"fight the good fight"
fandaL
Posts: 440
Joined: Thu Jul 24, 2014 8:29 am

Re: Frequency analysis

Post by fandaL »

1)
Deformations are needed to visualise mode shapes as sgrogan wrote, but I don't know how to interpret such a high values. Values of deformation are the same in .frd file and in .dat file if I read it correctly.

2)
Modal analysis is often done without loading. In the task above Calculix will ignore loading. For finding natural frequencies of preloaded model, it must be static analysis done in first step

Code: Select all

*STEP
*STATIC

*DLOAD
** Load on face Face2
1219,P2,0.01
1220,P3,0.01
1221,P2,0.01
1224,P4,0.01
1309,P4,0.01
1325,P2,0.01
1326,P4,0.01
1332,P4,0.01
1333,P2,0.01
1335,P1,0.01
1342,P4,0.01
1345,P3,0.01
1346,P3,0.01
1347,P3,0.01
1349,P2,0.01
1395,P2,0.01

*END STEP
After this the modal analysis step is done (in the same .inp file), which uses preloaded model from the last static step thanks to parameter PERTURBATION

Code: Select all

*STEP, PERTURBATION

*FREQUENCY
10

** Outputs --> frd file
*NODE FILE
U
*EL FILE
S, E
** outputs --> dat file
*NODE PRINT , NSET=Nall 
U 
*EL PRINT , ELSET=Eall 
S 

*END STEP 
When I tried it, the difference was very small using prescribed pressure.

PERTURBATION parameter is mentioned here in first 3 paragraphs:
http://web.mit.edu/calculix_v2.7/Calcul ... de245.html
and example of .inp file is here:
http://web.mit.edu/calculix_v2.7/Calcul ... node8.html
User avatar
makkemal
Posts: 395
Joined: Wed Apr 29, 2015 12:41 pm
Location: South Africa
Contact:

Re: Frequency analysis

Post by makkemal »

A frequency analysis is merely a eigenvalue solution to the stiffness matrix.
The stiffness matrix is updated due to the constraints applied and the eigenvalue analysis applied to that matrix.
The actual magnitude of the displacements have no real value except for interpretation relative to each other. (Animation)
What is more important in a frequency analysis is the mass participation factors. (How much of the mass is excited at that frequency).
The frequency with the most mass exited at that frequency wil be the most problematic.

A very useful output from frequency analysis would be to list the frequencies form highest mass participation factor to lowest. (I don't know a commercial code that does this)

I hope this makes sense ?

Regards
Michael
Last edited by makkemal on Mon Aug 24, 2015 10:50 am, edited 1 time in total.
User avatar
PrzemoF
Veteran
Posts: 3520
Joined: Fri Jul 25, 2014 4:52 pm
Contact:

Re: Frequency analysis

Post by PrzemoF »

Thanks for the replies!
For now I just want to do natural frequancy analysis without pre-loading, so I can strip the .ip file. However I don't understand how to interpret the values in the .frd file.

@makkemal:
"The actual magnitude of the displacements have real value except for interpretation relative to each other. (Animation)"
Can you try to explain what do you mean here? If the values are relative it means that the calculated deformation is even bigger?
User avatar
PrzemoF
Veteran
Posts: 3520
Joined: Fri Jul 25, 2014 4:52 pm
Contact:

Re: Frequency analysis

Post by PrzemoF »

The code is alpha quality, no GUI yet to select analysis type. Selecting mode results with GUI is pending fix, so python only for now.
Deformations are way off, so attempt to show mesh deformation causes nice 'explosion' of the model.

Workflow:
1. open beam.FCStd (see my OP)
2. Double click MechanicalAnalysis to activate analysis/FEM wb
3. Python console:

Code: Select all

import FemTools
analysis = FemTools.FemTools()
analysis.set_analysis_type("frequency") <-- use 'static' or leave blank for normal analysis
analysis.run()
analysis.load_results()
[..] <-- frd loader output removed
analysis.use_results("Mode_6_results")
analysis.show_result("U1")
analysis.use_results("Mode_8_results")
analysis.show_result("U1")
analysis.use_results("Mode_10_results")
analysis.show_result("U1")
Example screenshot below.

The code: https://github.com/PrzemoF/FreeCAD/tree/frequency
Attachments
frequency_mode_10.png
frequency_mode_10.png (210.7 KiB) Viewed 5925 times
User avatar
makkemal
Posts: 395
Joined: Wed Apr 29, 2015 12:41 pm
Location: South Africa
Contact:

Re: Frequency analysis

Post by makkemal »

Sorry a typo from me, the displacement value has no real meaning
A friend of mine wrote this page to explain it to users of commercial software.
https://esteq.co.za/2014/11/25/modal/

Read the section of what a mode shape is and what it is not
What a mode is not:

As mentioned before, a mode has a shape, not a displacement. By this we mean that the magnitude of the mode shape is arbitrary. The aforementioned is however not the whole truth – There are a number of standard ways to scale the modes. Even so, this is still a scale factor chosen for mathematical reasons, not to try and represent anything real for the model. So from this perspective, the scale factor for each mode is still arbitrary.

There is a problem with a mode shape: A shape looks like a displacement. After all, both a displacement vector and a shape vector imply deformation of the structure. This means that it is entirely possible for the Finite Element solver to calculate all standard results for the mode shape. In other words, we can ask for stress or strain for each mode. These should be referred to as stress or strain shapes as they correspond to the mode shape.

These values are useless though. Wait. What?!? Yes, the values are nearly useless. Granted, the distribution is useful even if the values are useless. To see why: A mode is a shape, not a deformation. If you want, think of it as a displacement with a random scale-factor applied. The stress reported for each mode would be the stress you would obtain if the displacement of the structure is exactly the same as that of the displacement shape.

Think of it this way: If the maximum reported stress was 9 MPa, what is the stress state of the model? We don’t know yet – we have not applied any loads yet so why would we know what the stress in the structure is? The stress level would reach this value if (and only if) we deform the structure to the exact deformation level that the mode-shape has calculated, but the scale factor for the mode has been arbitrary.

As mentioned, the stress distribution is correct, even if the exact values are meaningless. We only need one measurement point to find the behavior of the complete structure if it oscillates at one frequency only.
I would suggest you scale the maximum "displacement" you obtain in all your modes to 1, then scale every other mode values relative to that value.
In the plot just call it "relative shape function"

I hope this makes it clearer
User avatar
PrzemoF
Veteran
Posts: 3520
Joined: Fri Jul 25, 2014 4:52 pm
Contact:

Re: Frequency analysis

Post by PrzemoF »

Definitely it helped me! :-) Thanks!

So the actual description DISP created by CalculiX is misleading. Scaling to 1 is not any good - we can have elements ranging from single milimeters to tenths of meters. I have to find if there is a bounding box function in FreeCAD - I could use the diagonal of the object bounding box to scale the .frd values.
User avatar
makkemal
Posts: 395
Joined: Wed Apr 29, 2015 12:41 pm
Location: South Africa
Contact:

Re: Frequency analysis

Post by makkemal »

Now the only point of plotting a mode shape is to create a pretty animation that help you understand how the part is deforming.

If you use this analysis in a report you will only report the frequencies and mass participation factors.
All the mass participation factors will be smaller than one. If you add them up for an analysis (for all frequencies) they will add up to one.
So in a report you typically present the mass participation factors as a %, In most cases 3-5 of the modes will add up to ~=50% of the mass.
Those are the frequencies you are looking for and the reason you do a modal analysis.
Subsequently to turn this into a very useful feature I would suggest you add a function that creates a table listing the frequencies according to mass participation factor.

The only other use for a modal analysis is to do a check to see if you have added enough constraints to the model.
(with any model the first thing I do is a modal analysis just to check that it solves before I continue to the real analysis)

Hope everything is now clear.
Regards
Michael
User avatar
PrzemoF
Veteran
Posts: 3520
Joined: Fri Jul 25, 2014 4:52 pm
Contact:

Re: Frequency analysis

Post by PrzemoF »

I think that CalculiX does a good part of it - see example output .dat file (we don't use .dat in FreeCAD yet):

Code: Select all

    E I G E N V A L U E   O U T P U T

 MODE NO    EIGENVALUE                       FREQUENCY
                                     REAL PART            IMAGINARY PART
                           (RAD/TIME)      (CYCLES/TIME     (RAD/TIME)

      1   0.3973327E+09   0.1993321E+05   0.3172468E+04   0.0000000E+00
      2   0.3974089E+09   0.1993512E+05   0.3172772E+04   0.0000000E+00
      3   0.1097997E+11   0.1047853E+06   0.1667711E+05   0.0000000E+00
      4   0.1215603E+11   0.1102544E+06   0.1754753E+05   0.0000000E+00
      5   0.1218900E+11   0.1104038E+06   0.1757131E+05   0.0000000E+00
      6   0.2498636E+11   0.1580707E+06   0.2515774E+05   0.0000000E+00
      7   0.7196803E+11   0.2682686E+06   0.4269627E+05   0.0000000E+00
      8   0.7221129E+11   0.2687216E+06   0.4276837E+05   0.0000000E+00
      9   0.9928965E+11   0.3151026E+06   0.5015014E+05   0.0000000E+00
     10   0.2062795E+12   0.4541801E+06   0.7228500E+05   0.0000000E+00

     P A R T I C I P A T I O N   F A C T O R S

MODE NO.   X-COMPONENT     Y-COMPONENT     Z-COMPONENT     X-ROTATION      Y-ROTATION      Z-ROTATION

      1  -0.1578796E-06  -0.4911867E-02   0.1458111E-03   0.2528865E-01  -0.5334080E-02  -0.1796524E+00
      2  -0.2486552E-06  -0.1458064E-03  -0.4911330E-02  -0.2382806E-01   0.1796484E+00  -0.5331921E-02
      3  -0.4089284E-07  -0.1711478E-05  -0.5017833E-06   0.2308356E-01  -0.4489105E-06  -0.2619584E-04
      4   0.5628225E-06   0.2814088E-02  -0.2380085E-04  -0.1416973E-01   0.2427975E-03   0.2841939E-01
      5  -0.9333104E-06  -0.2358650E-04  -0.2807842E-02  -0.1391919E-01   0.2839261E-01  -0.2340880E-03
      6   0.5661010E-02   0.2474242E-07   0.2328902E-07   0.1014346E-07   0.2830468E-01  -0.2830436E-01
      7   0.7201752E-06   0.1662855E-02  -0.4961060E-04  -0.8564293E-02   0.2926964E-03   0.9642362E-02
      8   0.1748566E-05   0.4876073E-04   0.1671415E-02   0.8102447E-02  -0.9756290E-02   0.2747928E-03
      9   0.9741360E-07  -0.3870405E-05  -0.2031560E-06  -0.7679425E-02   0.1135642E-04  -0.7854953E-05
     10   0.2082757E-05  -0.1205412E-02   0.4336858E-04   0.6265838E-02  -0.1492251E-03  -0.4400679E-02

     E F F E C T I V E   M O D A L   M A S S

MODE NO.   X-COMPONENT     Y-COMPONENT     Z-COMPONENT     X-ROTATION      Y-ROTATION      Z-ROTATION

      1   0.2492595E-13   0.2412644E-04   0.2126087E-07   0.6395160E-03   0.2845241E-04   0.3227500E-01
      2   0.6182939E-13   0.2125950E-07   0.2412116E-04   0.5677765E-03   0.3227354E-01   0.2842938E-04
      3   0.1672224E-14   0.2929157E-11   0.2517865E-12   0.5328507E-03   0.2015206E-12   0.6862218E-09
      4   0.3167692E-12   0.7919090E-05   0.5664804E-09   0.2007813E-03   0.5895064E-07   0.8076616E-03
      5   0.8710683E-12   0.5563229E-09   0.7883975E-05   0.1937438E-03   0.8061401E-03   0.5479718E-07
      6   0.3204703E-04   0.6121875E-15   0.5423786E-15   0.1028898E-15   0.8011551E-03   0.8011368E-03
      7   0.5186523E-12   0.2765087E-05   0.2461211E-08   0.7334712E-04   0.8567117E-07   0.9297514E-04
      8   0.3057484E-11   0.2377609E-08   0.2793627E-05   0.6564964E-04   0.9518520E-04   0.7551111E-07
      9   0.9489410E-14   0.1498003E-10   0.4127235E-13   0.5897357E-04   0.1289682E-09   0.6170028E-10
     10   0.4337876E-11   0.1453018E-05   0.1880834E-08   0.3926073E-04   0.2226813E-07   0.1936597E-04
TOTAL     0.3204704E-04   0.3628785E-04   0.3482494E-04   0.2371899E-02   0.3400464E-01   0.3402470E-01

     T O T A L   E F F E C T I V E   M A S S

MODE NO.   X-COMPONENT     Y-COMPONENT     Z-COMPONENT     X-ROTATION      Y-ROTATION      Z-ROTATION

          0.3914369E-04   0.3914369E-04   0.3914369E-04   0.2603644E-02   0.3421762E-01   0.3421936E-01
Thanks again for help!
Post Reply