Академический Документы
Профессиональный Документы
Культура Документы
2 Tools Required 2
3 Problem Definition 2
3.1 Model and loading conditions . . . . . . . . . . . . . . . . . . . . 2
3.2 Material Properties . . . . . . . . . . . . . . . . . . . . . . . . . . 3
4 Procedure 3
4.1 Starting with ABAQUS . . . . . . . . . . . . . . . . . . . . . . . 3
4.2 Creating Part . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
4.3 Defining Material and section properties . . . . . . . . . . . . . . 6
4.4 Assembly . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
4.5 Meshing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
4.6 Creating a Node set for source . . . . . . . . . . . . . . . . . . . 9
4.7 Step . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
4.8 Load . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
4.9 Job Creation and Submission . . . . . . . . . . . . . . . . . . . . 13
5 Appendix 15
5.1 Calculating the element size . . . . . . . . . . . . . . . . . . . . . 15
5.2 Calculating Step time . . . . . . . . . . . . . . . . . . . . . . . . 15
5.3 Creating Amplitude file . . . . . . . . . . . . . . . . . . . . . . . 16
1
ABAQUS Tutorial - Wave Propagation
1 Objective
To generate an ultrasonic wave propagation in an aluminium plate (2D Plain
strain).
2 Tools Required
ABAQUS version on 6.10 (FE package), MATLAB (scientific computation pack-
age), Text pad/Notepad, MS Excel
3 Problem Definition
3.1 Model and loading conditions
The bulk of a homogenous isotropic and elastic 1m × 1m plate is excited by the
application of a point force vibrating in a single direction, as shown in Figure
3.1. The input time pulse is a 5-cycle Hanning windowed toneburst with a
centre-frequency of 100 kHz.
2
3.2 Material Properties
Material : Aluminum
Density (ρ) : 2700kg/m3
Young’s Modulus (E) : 70 × 109 N/m2
Poisson’s Ratio (ν) : 0.33
4 Procedure
4.1 Starting with ABAQUS
1. Open ABAQUS CAE from Start menu.
3. Go to File Set Work Directory and select the folder where you want to
save all the data files.
3
Figure 3: Create Part
1. Select Part module. Click on the Create Part. A Create Part window
will pop up.
2. Fill the details of part like Modeling space (2D), Type (Deformable),
Base Feature (Shell) and approximate size (2) depending on the size of
the part being modeled.
4
Figure 4: Sketch
Figure 5: Model
5
4.3 Defining Material and section properties
1. Go to Property module. Click on Create Material. An Edit Material
window will pop up.
2. Enter necessary informations about the material. Assign a name (say
Aluminum) Brief description if needed.
3. To enter Density value click General-Density. Enter density value in
the Mass Density box.
4. Similarly, Enter Youngs Modulus and Poissons Ratio in Mechanical
Elasticity Elastic. After entering all these informations click OK.
5. Click Create Section. Enter section name, Category (Solid) and type
of section (Homogenous).Click Continue.
6. An Edit section Window pops up. Click OK.
7. Click Assign Section. Select the entire region. Click Done. Edit
Section Assignment window pops up. Click OK.
6
Figure 7: Create Section
4.4 Assembly
Click Instance Part. A Create Instance window pops up. Select the re-
quired part (Part-1)then select Independent in mesh type and click OK. We
can ignore the modules like Step, Interaction and Load since we need to mesh
the model before we can input many of the parameters.
7
Figure 9: Create Instance for assembly
4.5 Meshing
1. Go to Mesh module.
2. Click Seed Part Instance. A Global Seeds window will pop up. Enter
the Approximate global size based on the wavelength of excitation. It is
recommended to choose a resolution of /8 to /20. Enter 0.002 in this case.
Click OK. Once the seeding definition is complete, click Done.
8
Figure 10: Meshing Procedure
2. Click Tools Set Create. In the Create Set window, give a name to the
node (say Generator) and select Node in Type. Click Continue. Now
select the node we had located for excitation. Click Done.
9
Figure 11: Creating Nodeset
4.7 Step
Now we have to create a step specifying the analysis conditions. For this
1. Go to Step module. Click on Create Step. a Create Step window will
pop-up.
2. In the Create Step window, enter a suitable name for the step. then
select Procedure type as Dynamic,Explicit under the General category.
An Edit Step window will pop-up.
3. In the Basic tab, Type a suitable description and below that enter the
Time Period as required(250µs in this case). NOTE: Time Period is
the total time for which you want to do the analysis/run the
current step for. It is chosen according to the size of the domain
4. In the Incrementation tab, select Type as Fixed, Increment size se-
lection as User Defined Time Increment and enter the required time
increment in the corresponding box (1e-8 in this case).
10
NOTE:While choosing time period, one should be careful so as
to not select a value too high or too low. A high value will
lead to instability in analysis and a very low value will be waste
of computational resources. See Appendix for optimum time
period calculation
4.8 Load
Now we need to apply the excitation. This can be done either by giving a force
at specific nodes/edges or by specifying a displacement boundary condition to
the same nodes/excitation region. Here, We will see how to give excitation as a
force. Before we specify the loading parameters, we need to create an amplitude
data to define the varying part of the excitation pulse.
11
Figure 13: Create Amplitude
2. Now click on Create Load button. A Create Load window will pop-up.
Here, give a suitable name for the load,select the step in which the force
has to be applied and select Concentrated Force as the type. Click
Continue.
3. Now you will be prompted to select the region for excitation. Since we have
already selected the nodeset to be excited, we can specify the nodeset here.
Click on the Sets button at the bottom left of the viewport. A Region
selection window will pop-up listing all the sets that have been already
defined. Select Generator nodeset from the list and click OK. In the
Edit Load window that pops-up, Enter the load values in CF1 and CF2
(i.e., Fx andFy ). Enter 1 in this case.
4. Select the Amplitude that has already been created from the drop down
menu in Amplitude option. Click OK.
12
Figure 14: Create Load
13
Figure 15: Create Job
14
5 Appendix
5.1 Calculating the element size
While doing an FE Analysis, choosing the right element size is critical. In wave
propagation models, the element size is decided on the basis of wavelength(λ).
According to literature the optimum element size e is fixed according to the
following criteria
λ = c/f ; (2)
The purpose of doing this is to make the element small enough to accommodate
even the wave with the smallest wavelength. For eg: If we are exciting an alu-
minum plate with a 100 kHz excitation, we have c=3100 m/s. Therefore
λ = c/f (3)
= 0.031m (31mm).
So the optimum element size for this case is
∆t = ∆x/Cmax (4)
Where ∆x is the smallest dimension of the smallest finite element of the model
and Cm ax is the velocity of the wave that travels fastest through the material .
This limit represents the time of travel of a longitudinal wave across the element.
15
5.3 Creating Amplitude file
For the excitation Force/Displacement, we require a Amplitude vs Time table.
This can be generated by any method. Here I am giving a sample Matlab code
which will generate Hann windowed toneburst pulse for a specified frequency
and and cycles [Courtesy : Gopal Gantala and Dr. Prabhu Rajagopal].
function toneBurst_saveastxt
clear all;
clc;
%-----------------------------------------------------------------------
% This code generates a Hanning windowed toneburst input pulse
%-----------------------------------------------------------------------
% -------------------------Input parameters-----------------------------
%-----------------------------------------------------------------------
signal_freq = input(’centre-frequency of the signal in Hz\n’);
num_cycles = input(’\n number of cycles\n’);
delt = input(’\n Time increment\n’); %Step Time
total_time = input(’\n total signal duration in s\n ’);
offset_time = input(’\n Offset time-actual starting time for signal\n’);
%-----------------------------------------------------------------------
% -------------------------Pre-calculations-----------------------------
%-----------------------------------------------------------------------
signal_offset = round(offset_time/delt);
hanning_duration = 1/signal_freq*num_cycles;
hanning_width = round(hanning_duration/delt);
signal_length = round(total_time/delt);
if signal_length < signal_offset+hanning_width
signal_length = signal_offset+hanning_width;
end
%-----------------------------------------------------------------------
% -------------------------Main calculation-----------------------------
%-----------------------------------------------------------------------
hanning_window =hann(round(hanning_duration/delt));
%% uses the in-built Matlab function ’hann’
continuous_cosine=cos(2*pi*signal_freq*(0:length(hanning_window)-1)*delt);
time_vector=0:delt:delt*signal_length;
output_signal = zeros(1,length(time_vector));
output_signal(signal_offset+1:signal_offset+round(hanning_duration/delt))
= hanning_window.*continuous_cosine’;
%-----------------------------------------------------------------------
% ----------------------Visualization of result-------------------------
%-----------------------------------------------------------------------
figure; plot(time_vector,required_output_signal)
16
%-----------------------------------------------------------------------
%-------- Saving the amplitude values in the form of a csv file---------
%-----------------------------------------------------------------------
filename=char([’TB_’,num2str(num_cycles),’cycles_’,num2str(signal_freq/1000)
,’kHz.csv’]);
t = time_vector; rs = required_output_signal;
fid = fopen(filename,’w’);
% c1 and c2 are temporary count variables
c1=1;
while c1<length(t)-3
fprintf(fid,’%12.11f,%12.11f,%12.11f,%12.11f,%12.11f,%12.11f,
%12.11f,%12.11f\n’,t(c1),rs(c1),t(c1+1),rs(c1+1),t(c1+2)
,rs(c1+2),t(c1+3),rs(c1+3)); c1=c1+4;
end
for c2=c1:length(t)
fprintf(fid,’%12.11f,%12.11f’, t(c2),rs(c2));
if c2 < length(t)
fprintf(fid, ’,’);
end
end
dlmwrite(filename,fullsignal);
fclose(fid);
%----------------------------------------------------------------------------
17