★ wanayoo — archive 1999 http://www.maplesoft.com/apps/categories/engineering/model_simulation/html/metal1.htmlNouvelle 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.

[Maple OLE 2.0 Object]

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:

  1. an "Equilibrium model" - the simplest model for the process.
  2. the Equilibrium model that accounts for the friction that occurs between the rod and the dye.
  3. an "Upper Bound" model - based on an advanced "variational" formulation and the most complicated of these models.

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);

[Maple Math]

Model 2: Equilibrium-based Model with Coulomb Friction

> B := mu/tan(alpha);

[Maple Math]

> Model_EqF := ((1+B)/B)*(1-(1/R)^(2*B)) + (sigma[xb]/sigma[0])*(1/R)^(2*B);

[Maple Math]

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)))));

[Maple Math]

> 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));

[Maple Math]
[Maple Math]
[Maple Math]

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%

[Maple Math]

> m := 0.05867:
> mu := 0.0376:
> Eq10 := Model_Eq; # Equilibrium/no friction with 10% reduction

[Maple Math]

> EqF10 := Model_EqF; # Equilibrium/Coulomb friction with 10% reduction

[Maple Math]

> UB10 := simplify(Model_UB); # Upper-bound model with 10% reduction

[Maple Math]
[Maple Math]
[Maple Math]

Case 2: A 20% reduction in area

> r := .2; # reduction in area equal to 20%

[Maple Math]

> m := 0.06565:
> mu := 0.04266:
> Eq20 := Model_Eq; # Equilibrium/no friction with 20% reduction

[Maple Math]

> EqF20 := Model_EqF; # Equilibrium/Coulomb friction with 20% reduction

[Maple Math]

> UB20 := simplify(Model_UB); # Upper-bound model with 20% reduction

[Maple Math]
[Maple Math]
[Maple Math]

Case 3: A 30% Reduction in Area

> r := 0.3; # reduction in area equal to 30%

[Maple Math]

> m := 0.06428:
> mu := 0.04517:
> Eq30 := Model_Eq; # Equilibrium/no friction with 30% reduction

[Maple Math]

> EqF30 := Model_EqF; # Equilibrium/Coulomb friction with 30% reduction

[Maple Math]

> UB30 := simplify(Model_UB); # Upper-bound model with 30% reduction

[Maple Math]
[Maple Math]
[Maple Math]

Case 4: A 40% Reduction in Area

> r := 0.4; # reduction in area equal to 40%

[Maple Math]

> m := 0.05776:
> mu := 0.04479:
> Eq40 := Model_Eq; # Equilibrium/no friction with 40% reduction

[Maple Math]

> EqF40 := Model_EqF; # Equilibrium/Coulomb friction with 40% reduction

[Maple Math]

> UB40 := simplify(Model_UB); # Upper-bound model with 40% reduction

[Maple Math]
[Maple Math]
[Maple Math]

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;

[Maple Plot]

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`);

[Maple Plot]

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`);

[Maple Plot]

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.