×

Notice

The forum is in read only mode.

Tutorial: Dynamic analysis with load

More
14 years 10 months ago #4588 by JMB
Hello Kees,

Thank you for the excellent tutorial at:

www.caelinux.org/wiki/index.php/Contrib:KeesWouters/dynamicload

I have more questions regarding that study:

A ) Why do you change to QUAD9 from QUAD8?

B ) Have you run the model with an altered load to see if the results are different?

C ) Do you have any instructions on how to get a Bode plot in octave? I have not used it much at all and would like to know it better or use Python numpy as a substitute.

Your tutorials, comments and insight are much appreciated! Thank you.

Regards,
JMB<br /><br />Post edited by: JMB, at: 2010/08/24 19:44
More
14 years 10 months ago #4590 by kwou
Replied by kwou on topic Re:Tutorial: Dynamic analysis with load
Hoi JMB

the fem-element I use in the analysis is coque_3d that has 9 nodes: 4 at the vertices, 4 at the midsides of the connecting edges and 1 at the centre. Quad8 has the first 8 nodes and is available from Salome. Quad9 is not available in Salome. So we have to convert to quad9 in the command file.

The same is valid for tria6: available from Salome, convert to tria7 in the command file for coque_3d.

Some remarks regarding coque_3d:
- coque_3d can be either tria or quad.
- centre node (tria and quad) have only rotational degrees of freedom; other nodes have 6 dofs
- coque_3d has no excentrement (eccentricity). Although you can give it a value it does not work.

I used various load cases and the results do change ;-)

Octave file (oct_rs.m) to construct bode plot: basically the next lines plot an fft of the results by Octave (files see below):

[code:1]
inter = filname(:,i) %% read results from file (table from CA)
Tstart = to
Tend = te
dT = Tend - Tstart
N = max(size(inter))
Fo = N/dT
freq = linspace(0,Fo,N);
yy = abs(fft(inter)); %% perform FFT
[/code:1]

The file migth see a bit overwhelming at first; most of it is used to set up the graph. If you have any question, pls fire (not at me personally) your questions.


kind regards - kees<br /><br />Post edited by: Kees Wouters, at: 2010/08/24 21:03

Interest: structural mechanics, solar energy (picture at 'my location' shows too little pv panels)

--
kind regards - kees
Attachments:
More
14 years 10 months ago #4591 by kwou
Replied by kwou on topic Re:Tutorial: Dynamic analysis with load

Attachment cyldynload_res-8bfcee491b511e8132236ded275152e4.zip not found


Interest: structural mechanics, solar energy (picture at 'my location' shows too little pv panels)

--
kind regards - kees
Attachments:
More
14 years 10 months ago #4592 by JMB
Replied by JMB on topic Re:Tutorial: Dynamic analysis with load
Hello Kees,

Thanks for the explanation and the octave bits. I was trying the same thing but with CodeAster using:

[code:1]
import numpy as NP
import numpy.fft as FFT
import math

POURSUITE(PAR_LOT='NON');

# Extract the displacements into a table, then an array
TABe = TB_nodf.EXTR_TABLE();
DISPL = TABe.Array('INST','DZ');

# Arrange the time series into an array (list) too
abscissa = (NP.arange(tsteps/2)/te).tolist();

#=============================================================================================
# Calcululate the Fourier Transform
#=============================================================================================

FFT_DISP = FFT.fft(DISPL[:,1]);
Ampli = FFT_DISP*NP.conjugate(FFT_DISP);

IMPR_FONCTION(UNITE = 30,
FORMAT='XMGRACE',
PILOTE='POSTSCRIPT',
BORNE_X=(1.,1000.0),
GRILLE_X=100,
# GRILLE_Y=0.5,
# BORNE_Y=(0.,1.),
COURBE=( _F(ABSCISSE = abscissa,
ORDONNEE = Ampli.real[0:tsteps/2].tolist(),
MARQUEUR = 1,
COULEUR = 2,
STYLE = 1,
FREQ_MARQUEUR = 2,
LEGENDE = 'FFT of Displacement',
)
)
);

FIN();
[/code:1]

However, I get a bizzare plot. I pilfered bits of code from demo002a.comm (which is packaged in the standard CodeAster examples/tests suite). If you have the time could you test it please? Then it would make a nice addition to the tutorial you already have going. Notice that it uses 'POURSUITE' so you will have to set it up to use your existing 'base' files. I was trying to do everything in CodeAster / Python, so I don't have to learn and practice yet another musical note (octave)! Thank you.

Regards,
JMB
Moderators: catux
Time to create page: 0.127 seconds
Powered by Kunena Forum