Hi,
I build a model, but the force of output data plot like rectangle. What's wrong with my script? I think whether the element parameters have error? But I can't find out~~~ Please help me! Thanks everybody!
---------------------------------------------------------------------------------------------------------------------------
#Units: mm, N, ton, MPa, mm/s^2
model BasicBuilder -ndm 2 -ndf 3
file mkdir VBrace
set h 180 ;#mm
set b 170 ;#mm
set d 4 ;#mm
set t 5 ;#mm
set E 200000 ;# elasticity modulus of steel, MPa
set Fy 235 ;# yield strength of steel , MPa
set L 1800 ;#mm
set B 2700 ;#mm
set A [expr $h*$b-($b-$d)*($h-2*$t)] ;#mm^2
set I [expr ($b*pow($h,3)-($b-$d)*pow($h-2*$t,3))/12] ;#mm^4
set density [expr 7.8*pow(10,-6)] ;# Kg/mm^3
node 1 0 0
node 2 0 $L
node 3 $B $L
node 4 $B 0
node 5 [expr $B/2] $L
node 6 0 [expr 2*$L]
node 7 $B [expr 2*$L]
node 8 [expr $B/2] [expr 2*$L]
fix 1 1 1 1
fix 4 1 1 1
mass 2 [expr ($B/4+$L/2+$L)*$density*$A/1000] [expr ($B/4+$L/2+$L)*$density*$A/1000] 0
mass 3 [expr ($B/4+$L/2+$L)*$density*$A/1000] [expr ($B/4+$L/2+$L)*$density*$A/1000] 0
mass 5 [expr ($B/4+$B/4)*$density*$A/1000] [expr ($B/4+$B/4)*$density*$A/1000] 0
mass 6 [expr ($B/4+$L/2)*$density*$A/1000] [expr ($B/4+$L/2)*$density*$A/1000] 0
mass 7 [expr ($B/4+$L/2)*$density*$A/1000] [expr ($B/4+$L/2)*$density*$A/1000] 0
mass 8 [expr ($B/4+$B/4)*$density*$A/1000] [expr ($B/4+$B/4)*$density*$A/1000] 0
uniaxialMaterial Steel01 1 $Fy $E 0.01 0 1 0 1
geomTransf Linear 1
loadPackage OpenFresco
expControl SimUniaxialMaterials 1 1
expSetup OneActuator 1 -control 1 2 -sizeTrialOut 3 3
expSite LocalSite 1 1
expElement beamColumn 1 1 2 1 -site 1 -initStif [expr $E*$A/$L] 0 0 0 [expr 12*$E*$I/pow($L,3)] [expr -6*$E*$I/pow($L,2)] 0 [expr -6*$E*$I/pow($L,2)] [expr 4*$E*$I/$L]
element elasticBeamColumn 2 4 3 $A $E [expr $I/100] 1
element elasticBeamColumn 3 2 5 $A $E [expr $I/100] 1
element elasticBeamColumn 4 5 3 $A $E [expr $I/100] 1
element truss 5 1 5 996 1
element truss 6 5 4 996 1
element elasticBeamColumn 7 2 6 $A $E [expr $I/100] 1
element elasticBeamColumn 8 3 7 $A $E [expr $I/100] 1
element elasticBeamColumn 9 6 8 $A $E [expr $I/100] 1
element elasticBeamColumn 10 8 7 $A $E [expr $I/100] 1
element truss 11 2 8 996 1
element truss 12 8 3 996 1
set dt 0.02
set scale [expr 0.439] ;#150gal=0.439*MAX[GroundMotion Data]
timeSeries Path 1 -filePath ElCentro.txt -dt $dt -factor [expr $scale]
pattern UniformExcitation 1 1 -accel 1
recorder Node -file VBrace/Node2-6_Dsp.out -time -node 2 6 -dof 1 disp
recorder Node -file VBrace/Node2-6_Vel.out -time -node 2 6 -dof 1 vel
recorder Node -file VBrace/Node2-6_Acc.out -time -node 2 6 -dof 1 accel
recorder Element -file VBrace/Elmt1_Frc.out -time -ele 1 forces
recorder Element -file VBrace/Elmt1_ctrlDsp.out -time -ele 1 ctrlDisp
recorder Element -file VBrace/Elmt1_daqDsp.out -time -ele 1 daqDisp
set xDamp 0.05;
set nEigenI 1;
set nEigenJ 2;
set lambdaN [eigen [expr $nEigenJ]];
set lambdaI [lindex $lambdaN [expr $nEigenI-1]];
set lambdaJ [lindex $lambdaN [expr $nEigenJ-1]];
set omegaI [expr pow($lambdaI,0.5)];
set omegaJ [expr pow($lambdaJ,0.5)];
set alphaM [expr $xDamp*(2*$omegaI*$omegaJ)/($omegaI+$omegaJ)];
set betaKcurr [expr 2.*$xDamp/($omegaI+$omegaJ)];
rayleigh $alphaM $betaKcurr 0 0;
system UmfPack
numberer RCM
constraints Transformation
test EnergyIncr 1.0e-8 10
integrator AlphaOS 0.67
algorithm Linear
analysis Transient
analyze 1000 0.02
set pi [expr acos(-1.0)]
set lambda [eigen -fullGenLapack 2]
puts "\nEigenvalues at start of transient:"
puts "| lambda | omega | period | frequency |"
foreach lambda $lambda {
set omega [expr pow($lambda,0.5)]
set period [expr 2.0*$pi/$omega]
set frequ [expr 1.0/$period]
puts [format "| %5.3e | %8.4f | %7.4f | %9.4f |" $lambda $omega $period $frequ]
}
wipe
exit
Output data has something wrong
Moderators: silvia, selimgunay, Moderators
-
- Posts: 28
- Joined: Fri Aug 22, 2008 2:30 pm
- Location: UC Berkeley
- Contact:
Re: Output data has something wrong
First of all your periods seems very small. The first mode period is 0.0135 seconds. Please check your mass assignments and make sure they are correct.
Secondly, you are simulating the experimental beam column element using the SimUniaxialMaterials control in the shear direction. This means that the experimental column at the tip where you attach the actuator provides shear resistance but no moment resistance (you are not controlling the rotational DOF so it will return zero moment). So your column acts as a cantilever column. I am assuming that this was not your intention?
If you like to simulate both, the moment and shear resistance, please use the SimDomain experimental control. Please look at the LShapedColumn example in OpenFresco to see how to use the SimDomain exp control.
Finally, I like to suggest that you do not divide by integers when calculating parameters that should be floating point numbers. This is an easy source of errors because Tcl will return integer values unless one of the values in the formula is a float.
Secondly, you are simulating the experimental beam column element using the SimUniaxialMaterials control in the shear direction. This means that the experimental column at the tip where you attach the actuator provides shear resistance but no moment resistance (you are not controlling the rotational DOF so it will return zero moment). So your column acts as a cantilever column. I am assuming that this was not your intention?
If you like to simulate both, the moment and shear resistance, please use the SimDomain experimental control. Please look at the LShapedColumn example in OpenFresco to see how to use the SimDomain exp control.
Finally, I like to suggest that you do not divide by integers when calculating parameters that should be floating point numbers. This is an easy source of errors because Tcl will return integer values unless one of the values in the formula is a float.