Effettuiamo l'analisi del telaio mostrato in figura
> restart:read "beam2D_FEMpack.m";
Seguiamo lo schema della figura
> node := table ([seq( seq( 10*r+c = [ 0.8*(c-1) , 0.5*(r-1)] , r=1..3) , c=1..5) ]);
2. Definizione degli elementi della struttura
Proprietà della sezione:
>
mu1:=1; EJ1:=1e6; EA1:=1e5;
>
mu2:=1; EJ2:=1e6; EA2:=1e5;
Definamo gli elementi:
>
beam := table([
seq( seq( [ 10*r+c, 10*r+c+1, mu1,EA1,EJ1], c=1..4),r=1..3),
elementi orizzontali
seq( seq( [ 10*r+c, 10*r+c+10, mu2,EA2,EJ2], c=2..5),r=1..2)
]); elementi verticali
La struttura è incastrata in corrispondenza dei nodi 11, 21 e 31
> impl_constraint := [x11,z11,phi11, x21,z21,phi21, x31,z31,phi31 ];
4. Assemblaggio della struttura
> built_structure(node,beam,impl_constraint):
Warning, global variables 'NN','nix','coords' were been defined
Sono stati definiti 15 nodi:
n = [ X [m] Z [m] ]
--------------------------
11 = [ +0.000 +0.000 ]
12 = [ +0.800 +0.000 ]
13 = [ +1.600 +0.000 ]
14 = [ +2.400 +0.000 ]
15 = [ +3.200 +0.000 ]
21 = [ +0.000 +0.500 ]
22 = [ +0.800 +0.500 ]
23 = [ +1.600 +0.500 ]
24 = [ +2.400 +0.500 ]
25 = [ +3.200 +0.500 ]
31 = [ +0.000 +1.000 ]
32 = [ +0.800 +1.000 ]
33 = [ +1.600 +1.000 ]
34 = [ +2.400 +1.000 ]
35 = [ +3.200 +1.000 ]
--------------------------
Warning, global variables 'NE','bix' were been defined
Sono stati definiti 20 elementi di tipo trave:
m , ( i, j) = mu[kg/m] EA[N] EJ[Nm2] l[m] theta[rad]
--------------------------------------------------------------------
1 , (11 ,12) = 1.0 1.00e+05 1.00e+06 0.800 +0.000
2 , (12 ,13) = 1.0 1.00e+05 1.00e+06 0.800 +0.000
3 , (13 ,14) = 1.0 1.00e+05 1.00e+06 0.800 +0.000
4 , (14 ,15) = 1.0 1.00e+05 1.00e+06 0.800 +0.000
5 , (21 ,22) = 1.0 1.00e+05 1.00e+06 0.800 +0.000
6 , (22 ,23) = 1.0 1.00e+05 1.00e+06 0.800 +0.000
7 , (23 ,24) = 1.0 1.00e+05 1.00e+06 0.800 +0.000
8 , (24 ,25) = 1.0 1.00e+05 1.00e+06 0.800 +0.000
9 , (31 ,32) = 1.0 1.00e+05 1.00e+06 0.800 +0.000
10 , (32 ,33) = 1.0 1.00e+05 1.00e+06 0.800 +0.000
11 , (33 ,34) = 1.0 1.00e+05 1.00e+06 0.800 +0.000
12 , (34 ,35) = 1.0 1.00e+05 1.00e+06 0.800 +0.000
13 , (12 ,22) = 1.0 1.00e+05 1.00e+06 0.500 +1.571
14 , (13 ,23) = 1.0 1.00e+05 1.00e+06 0.500 +1.571
15 , (14 ,24) = 1.0 1.00e+05 1.00e+06 0.500 +1.571
16 , (15 ,25) = 1.0 1.00e+05 1.00e+06 0.500 +1.571
17 , (22 ,32) = 1.0 1.00e+05 1.00e+06 0.500 +1.571
18 , (23 ,33) = 1.0 1.00e+05 1.00e+06 0.500 +1.571
19 , (24 ,34) = 1.0 1.00e+05 1.00e+06 0.500 +1.571
20 , (25 ,35) = 1.0 1.00e+05 1.00e+06 0.500 +1.571
--------------------------------------------------------------------
Warning, global variables 'constraint','NC','dip','indip','NDOF' were been defined
La struttura possiede 36 gradi di libertà.
disegno la struttura al fine di verificarne la correttezza
>
blue :=COLOUR(RGB,0,0,1): red:=COLOUR(RGB,1,0,0): black:=COLOUR(RGB,0,0,0):
>
nlab := node_label(-0.05,-0.05):
>
P_undeformed := draw_beams(beam,0,0,2,red):
> PLOT(P_undeformed,nlab,SCALING(CONSTRAINED),AXESSTYLE(NONE),THICKNESS(2));
definisco un'unica forza verticale applicata nel nodo 15
> force := table([ 15 = [ 0 , 1e3 , 0.0 ] ]);
> static_analysis(beam,force,static_disp):
rappresento graficamente i risultati
>
scd:=50:
>
P_stat_def := draw_beams(beam,static_disp,scd,8,blue):
>
scf:=0.001:
scala delle forze
>
scm:=0.0005:
scala dei momenti
>
PP_force := draw_forces(force,scf,scm,static_disp,scd,black,THICKNESS(2)):
diagramma delle forze
> PLOT(P_undeformed, P_stat_def,PP_force,node_label(0.05,0.05),SCALING(CONSTRAINED),AXESSTYLE(NONE),THICKNESS(1));
6. Calcolo dei modi di vibrare
>
modal_analysis(beam, myomega, mymode):
Warning, pre-load conditions are not take into account in modal analysis
frequenze proprie
omega( 1) = 1.1060e+05 rad/s = 1.7602e+04 Hz
omega( 2) = 8.5944e+04 rad/s = 1.3678e+04 Hz
omega( 3) = 7.6200e+04 rad/s = 1.2128e+04 Hz
omega( 4) = 6.3132e+04 rad/s = 1.0048e+04 Hz
omega( 5) = 6.2237e+04 rad/s = 9905.2755 Hz
omega( 6) = 5.4100e+04 rad/s = 8610.3495 Hz
omega( 7) = 5.0753e+04 rad/s = 8077.6235 Hz
omega( 8) = 4.5421e+04 rad/s = 7229.0022 Hz
omega( 9) = 4.2572e+04 rad/s = 6775.58 Hz
omega(10) = 3.7200e+04 rad/s = 5920.523 Hz
omega(11) = 3.5858e+04 rad/s = 5707.0309 Hz
omega(12) = 2.6870e+04 rad/s = 4276.5586 Hz
omega(13) = 1.8195e+04 rad/s = 2895.8046 Hz
omega(14) = 1.6536e+04 rad/s = 2631.7629 Hz
omega(15) = 1.5803e+04 rad/s = 2515.1513 Hz
omega(16) = 1.4923e+04 rad/s = 2375.038 Hz
omega(17) = 1.1861e+04 rad/s = 1887.7348 Hz
omega(18) = 1.0694e+04 rad/s = 1702.0067 Hz
omega(19) = 1.0314e+04 rad/s = 1641.575 Hz
omega(20) = 9280.6001 rad/s = 1477.0534 Hz
omega(21) = 7757.4592 rad/s = 1234.638 Hz
omega(22) = 7595.2657 rad/s = 1208.8241 Hz
omega(23) = 6877.2435 rad/s = 1094.5473 Hz
omega(24) = 6153.9036 rad/s = 979.4242 Hz
omega(25) = 5807.5439 rad/s = 924.2993 Hz
omega(26) = 4014.1704 rad/s = 638.8751 Hz
omega(27) = 3521.8006 rad/s = 560.512 Hz
omega(28) = 2992.7742 rad/s = 476.3148 Hz
omega(29) = 1472.0386 rad/s = 234.2822 Hz
omega(30) = 1431.8723 rad/s = 227.8896 Hz
omega(31) = 975.4317 rad/s = 155.2448 Hz
omega(32) = 843.1647 rad/s = 134.1938 Hz
omega(33) = 640.4252 rad/s = 101.9268 Hz
omega(34) = 126.048 rad/s = 20.0612 Hz
omega(35) = 261.9721 rad/s = 41.6942 Hz
omega(36) = 383.0087 rad/s = 60.9577 Hz
rappresentazione grafica
> nn:=30:
myomega[nn]; scelgo
un particolare modo
> scd := 0.5:
fattore di amplificazione
degli spostamenti
> P_mode := draw_beams(beam,mymode[nn],scd,6,blue):
> PLOT(P_undeformed,P_mode,node_label(0,0),SCALING(CONSTRAINED),AXESSTYLE(NONE),THICKNESS(1));
modo di vibrare con pulsazione w = 640 rad/s
modo di vibrare con pulsazione w = 3512 rad/s
modo di vibrare con pulsazione w = 6153 rad/s