| ★ wanayoo — archive 1999 http://www.maplesoft.com/apps/categories/engineering/model_simulation/html/metal1.html | Nouvelle recherche | Portail wanayoo |
Modelling of Metal Forming Processes
© 1998 Waterloo Maple Inc.
NOTE: This worksheet compares the predictions of mathematical models and experimental data in a metal drawing process.
Introduction
> restart:
The comparison of predictions from mathematical models and experimental data is one of the most important aspects of engineering analysis. In this worksheet we consider the process of pulling a metal rod through a cone shaped object (the dye). This process, called "drawing", is illustrated below and is one of the main forms of metal-forming.
The parameters for this process include: R0 and Rf, the initial and final radii for the rod, alpha, the severity of the angle of the cone shaped dye, and material properties for the rod. The radius parameters are ultimately converted to more meaningful area parameters.
Modelling the System
Researchers have developed three models for predicting the stresses resulting from the deformation of the metal:
Let us consider the equations which describe each model:
Model 1: Equilibrium-based Model with No Friction
> Model_Eq := sigma[xb]/sigma[0] + ln(R^2);
Model 2: Equilibrium-based Model with Coulomb Friction
> B := mu/tan(alpha);
> Model_EqF := ((1+B)/B)*(1-(1/R)^(2*B)) + (sigma[xb]/sigma[0])*(1/R)^(2*B);
Model 3: Upper-bound Variational Model
Upper bound model based on spherical velocity field and constant shear friction factor. This model requires the definition of a complex parameter called f[alpha].
> f[alpha] := (1/(sin(alpha)*sin(alpha))) * ( 1 - cos(alpha) * sqrt(1-(11/12) * sin(alpha)*sin(alpha)) + (1/sqrt(11*12))*ln((1+sqrt(11/12))/(sqrt(11/12)*cos(alpha) + sqrt(1-(11/12)*sin(alpha)*sin(alpha)))));
> Model_UB := sigma[xb]/sigma[0] + 2*f[alpha] *ln(R) + (2/sqrt(3)) * (alpha/(sin(alpha)*sin(alpha)) - cot(alpha) + m*cot(alpha)*ln(R) + m*(L/Rf));
Experimental Data
Typically, this information would be stored in a file and read into the session. For the purposes of illustration the data are presented as follows:
10% Reduction
> data10 :=
[[.04250,.2143],[.05750,.2235],[.07250,.2357],[.08875,.2235],
[.11375,.2388],[.12375,.2357],[.13125,.2633],[.175,.2633],
[.20875,.3122],[.245,.3612],[.28375,.3980]]:
20% Reduction
> data20 :=
[[.04250,.3827],[.05750,.3551],[.07250,.3612],[.08875,.3520],
[.11375,.3490],[.12375,.3520],[.13125,.3582],[.175,.3735],
[.20875,.4041],[.245,.4408],[.28375,.4592]]:
30% Reduction
> data30 :=
[[.04250,.5541],[.05750,.5112],[.07250,.5082],[.08875,.4959],
[.11375,.4776],[.12375,.4837],[.13125,.4837],[.175,.4959],
[.20875,.5143],[.245,.5347],[.28375,.5449]]:
40% Reduction
> data40 :=
[[.04250,.7347],[.05750,.6888],[.07250,.7010],[.08875,.6673],
[.11375,.6429],[.12375,.6429],[.13125,.6367],[.175,.6367],
[.20875,.6551],[.245,.6735],[.28375,.6827]]:
Specific Models
We generate the appropriate expressions and plots needed to compare the data to model equations.
Universal Parameter Definitions
Specify parameter values and definitions. Note, they can either be numerical or an expression. The main variable is reduction ( r ) defined as a percentage.
> R :=
1/sqrt(1-r): # define area reduction. "r" is a percentage
> sigma[xb] := 0: # no back
pull
> L := 0: # no dye land
> Digits := 4: # display 4
decimal places
Now we want to find expressions based on each model and other parameter values, eg the reduction in area.
Case 1: A 10% Reduction in Area
Note for the Upper Bound model, we have also used the Maple function simplify() in anticipation of a lengthy result. simplify() is one of many Maple functions that can eliminate the tedium in mathematical manipulations.
> r := .1; # reduction in area equal to 10%
> m := 0.05867:
> mu := 0.0376:
> Eq10 := Model_Eq; #
Equilibrium/no friction with 10% reduction
> EqF10 := Model_EqF; # Equilibrium/Coulomb friction with 10% reduction
> UB10 := simplify(Model_UB); # Upper-bound model with 10% reduction
Case 2: A 20% reduction in area
> r := .2; # reduction in area equal to 20%
> m := 0.06565:
> mu := 0.04266:
> Eq20 := Model_Eq; #
Equilibrium/no friction with 20% reduction
> EqF20 := Model_EqF; # Equilibrium/Coulomb friction with 20% reduction
> UB20 := simplify(Model_UB); # Upper-bound model with 20% reduction
Case 3: A 30% Reduction in Area
> r := 0.3; # reduction in area equal to 30%
> m := 0.06428:
> mu := 0.04517:
> Eq30 := Model_Eq; #
Equilibrium/no friction with 30% reduction
> EqF30 := Model_EqF; # Equilibrium/Coulomb friction with 30% reduction
> UB30 := simplify(Model_UB); # Upper-bound model with 30% reduction
Case 4: A 40% Reduction in Area
> r := 0.4; # reduction in area equal to 40%
> m := 0.05776:
> mu := 0.04479:
> Eq40 := Model_Eq; #
Equilibrium/no friction with 40% reduction
> EqF40 := Model_EqF; # Equilibrium/Coulomb friction with 40% reduction
> UB40 := simplify(Model_UB); # Upper-bound model with 40% reduction
Graphical Analysis
Generate the required plots of the theory and data.
> with(plots): # access special plotting routines
Generate Plots
For 10% reduction ( r = 0.1), plot the corresponding data. The following 4 lines generate 4 "plot structures" which are assigned names. The plot outputs are purposely supressed (using a semicolon at the end of the lines) to provide more flexibility later.
> p10_data :=
plot(data10, alpha=.02 .. .3, 0 .. 1, style=point, color=black):
> p10_Eq := plot(Eq10,
alpha=.02 .. .3, 0 .. 1, color=green, thickness=2):
> p10_EqF := plot(EqF10,
alpha=.02 .. .3, 0 .. 1, color=blue, thickness=2):
> p10_UB := plot(UB10,
alpha=.02 .. .3, 0 .. 1, color=red, thickness=2):
To view any of the plots, (e.g. p10_data), simply type in the name. The plot structure p10_data contains the experimental data points for r = 0.1 .
> p10_data;
We can automate the above process within a "for ... do" loop. The following generates all of the plot structures for r = 20%, r = 30%, and r = 40% (we already have r = 10%). Once done, we have a complete collection of graphs that we can then mix and match to compare the data to the model.
> for i from 2 to
4 do
p.i.0._data := plot(data.i.0,
alpha=.02 .. .3, 0 .. 1, style=point, color=black):
p.i.0._Eq := plot(Eq.i.0,
alpha=.02 .. .3, 0 .. 1, color=green, thickness=2):
p.i.0._EqF := plot(EqF.i.0,
alpha=.02 .. .3, 0 .. 1, color=blue, thickness=2):
p.i.0._UB := plot(UB.i.0,
alpha=.02 .. .3, 0 .. 1, color=red, thickness=2):
od:
Example Analysis 1
For 30% reduction, compare each model against data for each reduction value.
> data_vs_model :=
display([p30_data, p30_Eq, p30_EqF, p30_UB]):
> labels :=
textplot([[.1,.3,`Model Eq`], [.25,.45,`Model EqF`],[.2,.65,`Model UB`]]):
> display([data_vs_model,labels],
title=`Data vs. Models: 30% Reduction`);
Example Analysis 2
Compare upper bound model (Model_UB) to experimental data for all reduction values.
> data_vs_ub :=
display( [p10_data, p20_data, p30_data, p40_data, p10_UB, p20_UB, p30_UB,
p40_UB]):
> labels :=
textplot([[.1,.81,`40%`],[.1,.17,`10%`]]):
> display([data_vs_ub,labels],
title=`Data vs. upper bound model: 10%, 20%, 30%, 40% reductions`);
Conclusions
This worksheet illustrates how an engineer might use Maple's plotting facilities to compare the predictions of the 3 models against actual information obtained from an experiment.