NAT L INST. OF STAND & TECH R.I.C.

A 11 ID 4 b 2 7 3 7

INSTITUTE OF STANDAMS

technology

Research Information Center

Gaithersburg, MD 20890 ,c-

NAT l INST. OF STAND & TECH R.I.C.

A 11 ID 3 M 5 2 3 h

IV 1 1 United States Department of Commerce

I XJ I National Institute of Standards and Technology

NIST

PUBLICATIONS

NISTIR 3950

DATA-REDUCTION AND

ANALYSIS PROCEDURES USED

IN NIST's THERMOMECHANICAL

PROCESSING RESEARCH

Yi-Wen Cheng

Christian L. Sargent

-QC

100

. U56

#3950

1990
NATIONAL INSTITUTE OF STANDARDS &

TECHNOLOGY

Research Mormatsc® Caster

Gaithersburg, MD 20899
NISTIR 3950

DATA-REDUOTION AND

ANALYSIS PROCEDURES USED

IN NIST's THERMOMECHANICAL

PROCESSING RESEARCH

Yi-Wen Cheng

Christian L. Sargent

Materials Reliability Division

Materials Science and Engineering Laboratory

National Institute of Standards and Technology

Boulder, Colorado 80303-3328

August 1990

U.S. DEPARTMENT OF COMMERCE, Robert A. Mosbacher, Secretary

NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY, John W. Lyons, Director

CONTENTS

Page

ABSTRACT vii

I. INTRODUCTION 1

II. DATA REDUCTION AND ANALYSIS 1

CoolRate.Y 3

D/dTAnal.Y 3

StrStrn.Y 4

StrnRate.Y 6

III. EXAMPLE OF PROGRAM EXECUTION 6

Input Data Files 6

Running of the Programs 6

Output Data File 8

Graphics 8

IV. SUMMARY AND CONCLUDING REMARKS 8

V. ACKNOWLEDGMENTS 8

VI. REFERENCES 9

APPENDIX 1 - Computer Program for Cooling-Rate Analysis 18

APPENDIX 2 - Computer Program for

Temperature-Dilation Analysis 28

APPENDIX 3 - Computer Program for

True Stress-True Strain Analysis 40.

APPENDIX 4 - Computer Program for Strain-Rate Analysis 52

in

LIST OF FIGURES

Page

1. Results of dT/dt vs. T. The graph shows the actual cooling rate

during the experiment and gives the indications of phase

transformation 10

2. Results of d//dT vs. T. The graph is used to determine the phasetransformation temperatures and to estimate the thermal expansion

coefficients 11

3. Specimen’s length changes due to temperature changes and phase

transformations. The percentages shown on the figure are the

indication of progression of phase transformation in volume

fraction 12

4. Example of a true stress-true strain curve at high temperature and

high strain rate 13

5. Results of t vs. total e during an experiment 14

6. Partial list of a temperature data file in ASCII format after the

raw data were processed with the software listed in reference 2.

Temperatures are given in voltages 15

7. Example of an input data file 16

8. Example of an output data file 17

v

DATA-REDUCTION AND ANALYSIS PROCEDURES USED

IN NIST’S THERMOMECHANICAL PROCESSING RESEARCH

by

Yi-Wen Cheng

Christian L. Sargent

Materials Reliability Division

National Institute of Standards and Technology

Boulder, Colorado 80303-3328

This report described the data-reduction procedures and computer programs used to

reduce and analyze the data obtained with a hot-deformation apparatus. The measured raw

data with the apparatus include temperature vs. time, specimen’s relative length (dilation)

vs. time, actuator movement (stroke) vs. time, and load vs. time. Four computer programs

were written for data reduction and analysis to determine the cooling rates, the true stresstrue strain curves, the true strain rates, and the phase-transformation temperatures. Local

averaging techniques were used to smooth the data of temperature, dilation, stroke, and

load. Source codes for the computer programs are included. Example results of the

analyses are presented and an example of the program execution is given.

Key words: cooling rate; data averaging; data reduction and analysis; hot deformation;

phase-transformation temperatures; thermomechanical processing; strain rate; true stresstrue strain curves.

Vll

I. INTRODUCTION

This report describes the data-reduction procedures and computer programs used to

reduce and analyze the data obtained with a hot-deformation apparatus [1]. The measured

raw data include temperature, T, vs. time, t (during cooling); specimen’s relative length, /,

vs. t (during cooling); machine’s actuator (stroke) movement, D, vs. t (during compression);

and load, P, vs. t (during compression). These data were initially recorded on a digital

storage oscilloscope and then saved onto a floppy disk with a recorder equipped with the

oscilloscope.

The data are reduced and analyzed to determine the cooling rates, dT/dt, the true

stress-true strain, a-e, curves, the true strain rates, £, and the phase-transformation

temperatures in an experiment using a personal computer (PC). Four separate programs,

CoolRate.Y, D/dtAnal.Y, StrStrn.Y, and StrnRate.Y, were written to perform the analyses

of dT/dt, / vs. T, d//dT vs. T, a vs. e, and £. Phase-transformation temperatures are

determined from the analyses of dT/dt and d//dT vs. T.

The data saved on the oscilloscope’s disks cannot be retrieved directly by a PC

because of differences in disk formats. Digital-processing software [2] must be used to

enable the PC to read the data from the disks. Source codes for the computer programs

are included in the Appendixes. Example results of the analyses are presented and an

example of the program execution is given.

II. DATA REDUCTION AND ANALYSIS

Computer programs were written in an interactive mode with a commercially

available software package [3], which uses reverse Polish notation. This software package

was also used in the programs for apparatus control and data acquisition [1]. All programs

for data reduction and analysis accept input files in the ASCII format. Because the raw data

saved with the oscilloscope’s recorder cannot be retrieved directly by a PC due to differences

1
in disk formats, suitable input data files have to be created from the raw data with digitalprocessing software [2]. The outputs of the analysis programs, such as dT/dt vs. T, / vs. T,

d//dT vs. T, £ vs. total e, and a vs. e are plotted on the monitor and saved on a hard disk

as ASCII files, which can be retrieved and replotted using different graphics packages, if

desired.

High levels of random noise are commonly found in the raw data. Thus, it is difficult

to draw conclusive trends from the raw data without data averaging. One of the common

ways for performing data averaging is to fit all of the data with a single polynomial. This

practice is sometimes not adequate because a single polynomial may not fit the whole range

of a data set, and a polynomial may also smooth out some details in a data set, such as

abrupt changes in slopes. Alternatively, an incremental polynomial method can be used to

fit a least-squares polynomial locally. This is the technique we have used here.

The data-averaging technique involves fitting a second-order polynomial to sets of

(2N +1) successive data points, where N is a natural number. The technique works best

in data sets with equally spaced points. Because all of the raw data are acquired in equal

time intervals, the incremental polynomial method is well suited to our needs. All four

programs, CoolRate.Y, D/dTAnal.Y, StrStrn.Y, and StrnRate.Y, contain data-averaging

routines to smooth data of T, d/, D, and P. The routines include N varying from 0 (no

smoothing) to 9 (maximum smoothing) to perform different degrees of smoothing. The

formula and coefficients used for the smoothing routines are listed as follows [4].

Ysmoothcd — (C.nY.n + C.N + ,Y n + ! + ... + C.jY.j + C0Y0 + C,Yj + ... 4- Cj»j . !Yn . j + CnYn),

where C, are the coefficients listed below,

Yi are the actual data points, and

2N + 1 is the number of points used for the smoothing.

2
N C0 Cw C^-2 Cj,-3 C4-4 C5.-5 Cm C^-7 0,-8 C^-9 Cio.-io

1 1 0

2 17 12 -2

35 35 21

3 7 6 3 -2

21 21 21 21

4 59 54 39 14 -21

231 231 231 231 231

5 89 84 69 44 -9 -36

429 429 429 429 429 429

6 25 24 21 16 9 0 -11

143 143 143 143 143 143

7 167 162 147 122 87 42 -13 -78

1105 1105 1105 1105 1105 1105 1105 1105

8 43 42 39 34 27 18 7 -6 -21

323 323 323 323 323 323 323 323 323

9 269 264 249 224 189 144 89 24 -51 -136

2261 2261 2261 2261 2261 2261 2261 2261 2261 2261

10 329 324 309 284 249 204 149 84 9 -76 -171

3059 3059 3059 3059 3059 3059 3059 3059 3059 3059 3059

Note: Q = Cj

CooIRate.Y: This program takes inputs of t vs. T and outputs results of dT/dt vs. T. The

value of (dT/dt)j is calculated as (T; - Ti. 1 )/(ti -

t

i4) with Tj equal to (T; + Tw)/2. An example

of the results is presented in figure 1, from which phase-transformation temperatures can

be determined. As shown in figure 1, the first peak, starting at 415 and finishing at 295°C,

represents the bainitic transformation, and the second peak, starting at 295 and finishing at

140°C, is the martensitic transformation.

D/dTAnaLY: This program takes input of T vs. / and outputs results of d//dT vs. T. The

value of (d//dT)j is calculated as (/j - /u)/(Tj - T^) with T} equal to (T; 4- YjJ/2. An example

of the results is presented in figure 2, from which phase-transformation temperatures can

be determined. As shown in figure 2, the first peak, starting at 425 and finishing at 295°C,

represents the bainitic transformation, and the second peak, starting at 295 and finishing at

140°C, is the martensitic transformation. The figure can also be used to estimate the

3
thermal expansion coefficients of austenite and ferrite (in the case of figure 2, it is

martensite) by dividing d//dT by the specimen’s length. The thermal expansion coefficients,

estimated from figure 2 are 25 x Id6 and 11 x lO^C (at 140°C) for austenite and martensite,

respectively. The T-vs.-/ curve is given in figure 3, which is needed to determine the

progression (in volume fraction) of transformation from austenite to its transformation

products, such as ferrite, bainite, or martensite, during continuous cooling. The details of

determining the progression of transformation are explained in reference 5 of this report.

The determination of phase-transformation temperatures is based on the results of dT/dt vs.

T, d//dT vs. T, and the metallographic examinations.

StrStrn.Y: This program requires the input information of D vs. P, specimen’s original

length, /c, specimen’s original diameter, dQ (the specimen is a cylinder), and the exact

position, D0, at which the machine’s actuator touches the specimen (the actuator is retracted

away from the specimen before the test). The output of the program is a cr-e curve, as

shown in figure 4. Three simplifications are made in the calculation of a and e. First, we

have not considered the dimensional changes due to temperature increases and use the

dimensions (length and area) measured at room temperature for calculations. Using the

results of thermal linear expansions compiled in reference 6, we estimate the increases in

specimen’s length from room temperature to 900, 1000, and 1100°C are 1.1, 1.3, and 1.5

percent, respectively. The values of 1.1, 1.3, and 1.5 percent are approximately the values

overestimated in true strain if the length corrections were to be made. The increases in area

will be 2.2, 2.6, and 3.0 percent, and the overestimation in true stresses will be 3.3, 3.9, and

4.5 percent, accordingly. At present, we have not attempted to correct the dimensional

changes due to temperature increases because the available information about the thermal

expansion characteristics of steels are not sufficient for accurately making the corrections.

The thermal expansion characteristics of steels depend on composition and the initial

condition of a steel.

4
Second, we have not considered the nonuniform strain distribution during

compression within a specimen. Because of barreling arising from friction between the

specimen, and the die, the strains within the specimen are not uniform. The strains are

highest at the center of a specimen and lowest near the surface. With the specimen

geometry under consideration (a cylinder with a 2-to-l ratio), taking into account of the nonuniformity of strain distribution has little effect on the calculated a-e results [7,8].

Third, strains are not calculated from measurements made directly on the specimen.

Instead, they are calculated from the actuator’s displacement which is measured away from

the specimen. The displacement consists of the compliances (displacement divided by load)

of the specimen plus the load train. Because the compliance of the specimen is much

greater than that of the load train due to the difference in cross-sectional areas of the

specimen and the load train, we assume the measured actuator’s displacement is due to the

compliance of the specimen alone. This assumption is not adequate in areas of small strains

because the value of Young’s modulus calculated from the a-e curve is about 50 percent

low. Attempts have been made to correct the compliance due to the load train.

Unfortunately, no satisfactory results have been obtained.

The values of stress and strain are calculated using the following equations [9]:

e = in(e + 1), (1)

a = s (e + 1), (2)

e = AW* (3)

^ - P/A* (4)

where e, s, A,,, and A/ are the engineering strain, the engineering stress, the specimen’s

original cross-sectional area, and the specimen’s length change during compression,

respectively. The values of A/ are computed from the machine’s actuator movement.

5
StrnRate.Y: This program takes inputs of D vs. t, /OJ and the exact position at which the

machine’s actuator touches the specimen. The output is a e -vs. -total e curve, as shown in

figure 5.

III. EXAMPLE OF PROGRAM EXECUTION

Input Data Files: Each of the four programs described in the previous section takes input

data files in the ASCII format. As previously mentioned, the recorded raw data cannot be

read by a PC and have to be processed with digital-processing software [2]. The software

is menu-driven, so the details of running the software are not described in this report.

Figure 6 shows a partial list of a temperature data file in the ASCII format right after the

raw data were processed. The first 13 lines in figure 6 are comments, which are deleted

using a full-screen editor. An actual input data file has the exact form as that shown in

figure 7.

Running of the Programs: The programs were written in the interactive mode. An example

of the prompts for running the program, D/dTAnal.Y, is shown in the next paragraph. The

prompts for running the other three programs are similar and are not shown in this report.

In the following example, italicized bold letters are the operator’s responses to the computer’s

prompts. There are two input files. One contains temperature data which are stored in

QTEMP.DAT. The other contains specimen’s relative length data which are stored in

C:DILATION.DAT.

After the program is loaded into the computer, the computer screen prompts OK and

the program waits for "WORDS" to perform tasks. Currently, there are 9 options

(WORDS) in the program of D/dTAnal.Y:

6
Proceed: This option simply converts the data from voltages to temperature in

degree centigrade and to specimen’s length in micron. No smoothing

is done in this option.

ProceedO: This option calculates d//dT vs. T with no smoothing on either / or T.

Proceeds: This option calculates d//dT vs. T with 5-point smoothing on both / and

T.

Proceedl7: This option calculates d//dT vs. T with 17-point smoothing on both /

and T.

At the OK prompt, the operator types in one of the above options. In the following

example, we will use Proceed?.

OK Proceed7 <Enter>. The screen will show

. . . Enter the Exact Filename Containing Temperature Data in ASCII . . . CiTEMPDAT <Enter>

. . . Enter the Exact Filename Containing Dilation Data in ASCII . . . C:DILATIONJ)AT <Enter>

The screen shows a graph of T vs. di/dT and the program waits for a further command with

the prompt of "Hit Any Key to Continue.” After the operator presses any key, the screen

prompts

Type in a Filename for ASCII Output

That Will Contain Temp-vs.-d/dT Data (7-point Smoothed)

.... CidldT- T7DAT <Enter>

1
This completes the calculation of T vs. d//dT with 7-point smoothing on both / and T.

Output Data file : The output data file is dldT-T7.DAT, which is in the ASCII format. A

partial listing of the file is presented in figure 8.

Graphics: Currently, we use a commercial graphics package listed in reference 10. The

package is menu-driven, and the details of running the software are not described in this

report. Figures 1 through 5 were plotted with this package.

IV. SUMMARY AND CONCLUDING REMARKS

This report described the data-reduction procedures and computer programs used to

reduce and analyze the data obtained with a previously described hot-deformation apparatus.

The measured raw data include temperature vs. time, specimen’s relative length (dilation)

vs. time, machine’s actuator movement (stroke) vs. time, and load vs. time. Four computer

programs were written for data reduction and analysis to determine the cooling rates, the

true stress-true strain curves, the true strain rates, and the phase-transformation

temperatures. Local averaging was used to smooth the data of temperature, dilation, stroke,

and load.

Currently, four separate programs were written to perform the tasks. The programs

use the same averaging techniques. Thus, if desired, the four programs can be consolidated

and integrated into one program. This is being pursued at the present in our laboratory.

V. ACKNOWLEDGMENTS

The authors thank A. Massihzadeh for developing portions of the computer

programs.

8
VL REFERENCES

[1] Y. W. Cheng, Y. Rosenthal, and H. I. McHenry, "Development of a ComputerControlled Hot-Deformation Apparatus at NIST," NISTIR 89-3925, National Institute

of Standards and Technology, Boulder, CO (1989).

[2]

* Vu-Point, S-Cubed: A Division of Maxwell Laboratories, Inc., P.O. Box 1620, La

Jolla, CA 92038.

[3]

* ASYST Software Technologies, Inc., 100 Corporate Woods, Rochester, NY.

[4] C. VanTyne, Colorado School of Mines, Golden, CO, private communication.

[5] M. Atkins, Atlas of Continuous Cooling Transformation Diagrams for Engineering

Steels. American Society for Metals, Metals Park, OH, 1980.

[6] Thermophysical Properties of Matter-Metallic Elements and Alloys, the TPRC Data

Series, Vol. 12, p. 1166.

[7] J. C. Gelin, J. Oudin, and Y. Ravaland, "Determination of the Flow Stress-Strain

Curves for Metals from Axisymmetric Upsetting," J. of Mechanical Working

Technology, 5, (1981), pp. 297-308.

[8] D. L. Baragar, "The High Temperature and High Stain-Rate Behavior of a Plain

Carbon and an HSLA Steel," J. of Mechanical Working Technology, 14 (1987), pp.

295-307.

[9] G. E. Dieter, Mechanical Metallurgy. 2nd edition, McGraw-Hill Book Company,

1976.

[10]

* Grapher, Golden Software, Inc., P. O. Box 281, Golden, CO 80402.

These are commercial systems that are mentioned for identification only; no

endorsement is intended.

9
1141d0\46

O

o• o © O q o O o q

o id © id d id d id d

I Cvi CM CO CO

1 I 1 1 1 1 1 s/D„ ‘1P/XP

10

Figure

1.

Results

of

dT/'dt

vs.

T.

The

graph

shows

the

actual

cooling

rate

during

the

experiment

and

gives

the

indications

of

phase

transformation.
1141d0\46

O

o

oa

o

o

eo

o

o

O

o

CO

o

o

iO

o

o

o

o

CO

o

o

CQ

o

o

o

o

0)

Sm

S3

cd

0

ft

a

0) H

h n m

I I I ojuni ‘IP/IP

1

Figure

2.

Results

of

d//dT

vs.

T.

The

graph

is

used

to

determine

the

phasetransformation

temperatures

and

to

estimate

the

thermal

expansion

coefficients.
1141d0/46

O

0)

u

cd

j-i

0)

S

0) H

3o

/uir/ ‘uor*ena

1 2

Figure

3.

Specimen’s

length

changes

due

to

temperature

changes

and

phase

transformations.

The

percentages

shown

on

the

figure

are

the

indication

of

progression

of

phase

transformation

in

volume

fraction.
o

05

©

CO

©

2>

©

©• © cd

u

lO

• c/3

©

0)

Tf<

• £

© H

CO

©

01

©

vH

©

© OOOOOOOOOOOOOOOOOO ©O ©^C\2OSQ©^C\J©Q0©^C\2©Q0©^C\2

TBdK 6 SS9J^S 9IIJX

13

Figure

4.

Example

of

a

true

stress-true

strain

curve

at

high

temperature

and

high

strain

rate.
14

Figure

5.

Results

of£

vs.

total e

during

an

experiment.
"Data Set # 1 File:TEMP.ad(lJul90 @ 20:55:08)"

" Name:Set 1, 1A ,Q1 "

" Units:VOLTS"

" Source:4094 Rec#2"

" Created: 1Ju190 @ 20:53:08"

" Last-Modified:4094 Rec#2;lJul90 @ 20:53:08"

" Sample Interval:500.0ms"

" Start Time:210.0s"

" End Time:225.0s"

" # of Data Points:31"

" Time is IMPLICIT:See header above."

" Set #1"

!•***********«

1.016687E+00

1.012625E+00

1.008125E+00

1.004000E+00

9.991875E-01

9.945000E-01

9.898750E-01

9.852500E-01

9.803750E-01

9.757500E-01

9.711875E-01

9.667500E-01

9.623125E-01

9.578750E-01

9.533750E-01

9.490625E-01

9.448750E-01

9.413750E-01

9.375625E-01

9.335625E-01

9.295000E-01

9.255000E-01

9.216250E-01

9.178125E-01

9.139375E-01

9.101250E-01

9.065000E-01

9.026250E-01

8.988750E-01

8.951250E-01

8.917500E-01

Figure 6. Partial list of a temperature data file in ASCII format after the raw data were

processed with the software listed in reference 2. Temperatures are given in

voltages.

15
1.016687E+00

1.012625E+00

1.008125E+00

1.004000E+00

9.991875E-01

9.945G00E-01

9.898750E-01

9.852500E-01

9.803750E-01

9.757500E-Q1

9.711875E-01

9.667500E-01

9.623 125E-01

9.578750E-01

9.533750E-01

9.490625E-01

9.448750E-01

9.413750E-01

9.375625E-01

9.335625E-01

9.295000E-01

9.255000E-01

9.216250E-01

9.178125E-01

9.139375E-01

9.10125QE-01

9.065000E-01

9.026250E-01

8.988750E-01

8.951250E-01

8.917500E-01

Figure 7. Example of an input data file.

16
Temp. d//dT

<°C\ (um/°C

)

1035.99 3.921000E-001

1032.07 3.799000E-001

1028.14 3.920000E-001

1024.15 3.881000E-001

1020.13 3.935000E-001

1016.13 4.015000E-001

1012.22 4.062000E-001

1008.38 4.223000E-001

1004.58 3.942000E-001

1000.77 3.792000E-001

996.949 3.731000E-001

993.21 4.289000E-001

989.679 4.565000E-001

986.359 4.831000E-001

983.096 4.623000E-001

979.749 4.319000E-001

976.332 4.218000E-001

972.909 4.361000E-001

969.532 4.398000E-001

966.188 4.306000E-001

962.875 4.170000E-001

959.603 4.260000E-001

956.388 4.446000E-001

953.127 4.250000E-001

949.833 4.656000E-001

946.589 4.294000E-001

943.505 4.568000E-001

Figure 8. Example of an output data file.

17
APPENDIX 1

- Computer Program for Cooling-Rate Analysis

18
yiitttt**^************************^  ** ********************* ******^******

\ CoolRate.Y

exp.mem> system.buffer 65280. system.buffer.size \ To set system buffer size and put the buffer into

expanded memory

real dim[ 4000 ] array Temp

real dim[ 4000 ] array dTdt

real dim[ 4000 J array Time

integer scalar g

integer scalar dg

integer scalar k

real scalar cO

real scalar cl

real scalar c2

real scalar c3

real scalar c4

real scalar c5

real scalar c6

real scalar c7

real scalar c8

real scalar dTemp

real scalar dTirne

0. temp

0. time :=

. gQ QH ^ ******************************************************************

cr Hit Any Key" cr to Continue" Key Drop ;

* read temp \ **************************************************************

screen.clear cr cr cr cr cr cr

... Enter the Exact Filename Containing Temperature Data in ASCII ..." cr cr ." " "input defer > basic.open

0g:=

begin

g 1 + g :=

basic.read drop temp [ g j ?basic.eof

until basic.close g .

. j*02d time \ **************************************************************

cr cr cr cr cr cr

." .... Enter the Time Per Point in Second ..." cr cr ." " #input dtime

0 time [ 1 j :~

19
g

1 + 1 do

Time [i ] dtime + Time [

i 1 + ] :=

loop ;

: calculate.temp \

temp 10. * temp :=

g

1 + 1 do

temp [i ] 3. ** 0.104154 * temp [

i ] 2. ** -3.8403 * +

temp [i

| 130.286 * +

11.7469 +

temp [i ] := loop ;

****************^************************* *****************

: 5point.smoothing \

2 k :=

17. 35. /c0: =

12. 35. / cl :=

-3. 35. / c2 :=

***********=(«******************************>******

g

3 - 3 do

k 1 + k :=

temp [ k 2 + ] c2 * temp [ k 1 + ] cl * +

temp [ k ] cO * +

temp [ k 1 -

] cl * +

temp [ k 2 -

] c2 * +

temp j k ]

: =

loop ;

: 7point.smoothing \

3 k :=

7. 21. / cO :=

6. 21. / cl :=

3. 21./c2:=

-2. 21. /c3

g

4 - 4 do

k 1 + k :=

temp [ k 3 + ] c3 * temp [ k 2 + ] c2 * +

temp [ k 1 + ] cl * +

temp [ k ] cO * +

temp [ k 1 -

] cl * +

temp ( k 2 -

] c2 * +

temp [ k 3 -

] c3 * +

temp [ k j :=

20
loop ; : 9point.smoothing \ 4 k:—

59. 231. /cO :=

54. 231. /cl :=

39. 231. / c2 :=

14. 231. / c3 : =

-21. 231. /c4:= g 5 - 5 do k 1 + k :-

temp [ k 4 + ] c4 * temp [ k 3 + ] c3 * +

temp [ k 2 + ] c2 * 4- temp [ k 1 + ] cl * +

temp [ k ] cQ * +

temp [ k 1 - ] cl * +

temp [ k 2 - ] c2 * +

temp [ k 3 - ] c3 * +

temp [ k 4 - ] c4 * +

temp j k ] :=

loop ; : llpoint.smoothing \ 5 k :=

89. 429. / cO :=

84. 429. /cl

69. 429. / c2 :=

44. 429. / c3

9. 429. / c4 :=

-36. 429. / c5 := g 6 - 6 do k 1 + k :=

temp [ k 5 + ] c5 * temp [ k 4 + ] c4 * +

temp [ k 3 + ] c3 * +

temp [ k 2 + ] c2 * +

temp j k 1 4- ] cl * +

temp [ k ] cO * +

temp [ k 1 - ] cl *

-f iemp [ k 2 - ] c2 * +

temp [ k 3 - ] c3 * +

temp [ k 4 - j c4 * +

temp [ k 5 - ] c5 * +

temp [ k ] :=

21
loop ;

: 13point.smoothing \

6 k :=

25. 143. /cO : =

24. 143. / cl :=

21. 143. /c2 :=

16. 143. / c3 :=

9. 143. /c4: =

0. c5 :=

-11. 143. / c6 :=

g

7 - 7 do

k 1 4- k :=

temp [ k 6 + ] c6 * temp [ k 5 4-

] c5 * 4- temp [ k 4 + j c4 * 4- temp [ k 3 + ] c3 * 4- temp [ k 2 4-

] c2 * 4- temp [ k 1 4- ] cl * +

temp [ k ] cO * +

temp [ k 1 -

J cl * +

temp [ k 2 -

] c2 * +

temp [ k 3 -

] c3 * +

temp [ k 4 -

] c4 * +

temp [ k 5 -

] c5 * +

temp [ k 6 -

] c6 * +

temp [ k ] :=

loop ;

: 15point.smoothing \

7 k:-

167. 1105. / cO :=

162. 1105. / cl :=

147. 1105. /c2

122. 1105. / c3 : =

***********************ii<***j|!**************************

87. 1105. /c4:=

42. 1105. /c5 :=

-13. 1105. /c6:=

-78. 1105. /c7 :=

g 8 - 8 do

k 1 + k :=

temp [ k 7 4-

] c7 * temp [ k 6 4-

] c6 * 4- temp [ k 5 4-

j c5 * 4- temp [ k 4 4-

] c4 * 4- temp [ k 3 4-

J c3 * 4-

22
temp [ k 2 + ] c2 * +

temp [ k 1 + ] cl * +

temp [ k ] cO * +

temp [ k 1 - ] cl * +

temp [ k 2 -

] c2 * +

temp [ k 3 -

j c3 * +

temp [ k 4 -

] c4 * +

temp [ k 5 -

] c5 * 4- temp [ k 6 -

] c6 * +

temp [ k 7 -

] c7 * +

temp [ k j

loop ;

: 17point.smoothing \

8 k

43. 323. /c0:=

42. 323. / cl

39. 323. / c2

34. 323. / c3 :=

27. 323. / c4 : =

18. 323. / c5 :=

7. 323. / c6 :=

-6. 323. / c7 :=

-21. 323. /c8:=

g 9 - 9 do

k 1 + k : =

temp [ k 8 + ] c8 * temp [ k 7 + ] c7 * +

temp [ k 6 + j c6 * +

temp [ k 5 + ] c5 * +

temp [ k 4 + ] c4 * +

temp [ k 3 + ] c3 * +

temp [ k 2 + ] c2 * +

temp [ k 1 + ] cl * +

temp [ k ] cO * +

temp [ k 1 -

] cl * +

temp [ k 2 -

] c2 * +

temp [ k 3 -

] c3 * +

temp [ k 4 -

] c4 * +

temp [ k 5 -

] c5 * +

temp [ k 6 -

] c6 * +

temp [ k 7 -

] c7 * +

temp [ k 8 -

] c8 * +

temp [ k j :=

loop ;

• TVmrs fitd T \ ***********************************************************
ldg:=

g

1 + 1 do

Temp [i 1 + ] temp [

i

] - dTemp := dTcmp ABS 0.00001 > if dtime ABS 0.00001 > if dtemp dTime / dtdT [ dg ] := Temp [

i 1 + ] Temp [

i ] + 2. / Temp [ dg ] := dg 1 + dg :=

thee then loop ;

: plot.Temp.vs.dtdT \ *** temp subf 1 , dg 2. / , 2 ] dtdT sub[ 1 graphics.display solid xy.auto.plot

;

****************************************************

2. / , 2 ]

: plot.time.vs.temp \

time sub[ 1 , g 2. / , 2 ] temp sub[ 1 , g 2. / , 2 ] graphics.display solid xy.auto.plot

*****************************************************

* output to ASCII file \ ******************************************************

screen.clear normal.display cr cr cr cr cr cr

." Type in a Filename for ASCII Output" cr That Will Contain Temp-vs.-time (Nonsmoothed) Data"

cr cr . . . . " "input defer > out > file comole off

g 1 + 1 do

time [i ]

. , " temp [

i ]. cr loop

out>fi!e.close ;

* outputO to ASCII file \ *****************************************************

screen.clear normal.display cr cr cr cr cr cr Type in a Filename for ASCII Output" cr That Will Contain Temp-vs.-dtdT (Nonsmoothed) Data"

cr cr ." . . . . " "input defer> out>file

console.off

dg l-i-l do

temp [

i ]. ."

,

dtdT [i ]

. cr loop

out>file.close ;

’ outputs to ASCII file \ *****************************************************

screen.clear normal.display cr cr cr cr cr cr Type in a Filename for ASCII Output" cr That Will Contain Temp-vs.-dtdT (5-Point Smoothed) Data"

cr cr . . . . " "input defer> out>file

console.off

dg 1 + 1 do

temp [i J

. , " dtdT [

i J. cr loop

out>file.close ;

24
***************** ************************************

: output7.to.ASCII.file \

screen.clear normal.display cr cr cr cr cr cr Type in a Filename for ASCII Output" cr That Will Contain Temp-vs.-dtdT (7 Point Smoothed) Data"

cr cr . . . . " "input defer > out >file console.off

dg 1 + 1 do

temp [

i

]

. " dtdT [

i

]

. cr loop f*out>file.close ;

*****#********!!:********:*****************************

: output9.to.ASCII.file \

screen.clear normal.display cr cr cr cr cr cr

." Type in a Filename for ASCII Output" cr

." That Will Contain Temp-vs.-dtdT (9-Point Smoothed) Data"

cr cr ." . . .

.

" "input defer > out > file console.off

dg 1 + 1 do

temp [i ]

. ."

,

dtdT [i ]. cr loop

out>file.close ;

* output 1 1 to ASCII file \ ****************************************************

screenxlear normal.display cr cr cr cr cr cr

." Type in a Filename for ASCII Output" cr

." That Will Contain Temp-vs.-dtdT (11-Point Smoothed) Data"

cr cr ." . . . . " "input defer > out > file console.off

dg 1 + 1 do

temp [i ]. ."

,

dtdT [i

]

. cr loop

out>file.close ;

. outputl3 to ASCII file \ ****************************************************

screen.clear normal.display cr cr cr cr cr cr

." Type in a Filename for ASCII Output" cr

." That Will Contain Temp-vs.-dtdT (13-Point Smoothed) Data"

cr cr ." . . . . " "input defer > out > file console.off

dg 1 + 1 do

temp [i

]

. " dtdT [

i ]

. cr loop

out>file.close ;

* output 15 to ASCII file \ ****************************************************

screenxlear normal.display cr cr cr cr cr cr Type in a Filename for ASCII Output" cr

." That Will Contain Temp-vs.-dtdT (15-Point Smoothed) Data"

cr cr ." . . . . " "input defer > out > file console.off

dg 1 + 1 do

25
temp [ i

]

. " dtdT f

i ]. cr loop

out>file.close ;

* outputl7 to ASCII file \ ****************************************************

screen.clear normal.display cr cr cr cr cr cr Type a Filename for ASCII Output" cr That Will Contain Temp-vs.-dtdT (17-Point Smoothed) Data"

cr cr ." . . . . " "input defer > out > file console.off

dg 1 + 1 do

temp [i ]

. , " dtdT [

i J

. cr loop

out>file.close ;

. p

rocee(j \ ****************************************************************

read.temp calculate.temp

read,time

plot.time.vs.temp go.on output.to.ASCII.file ;

: proceedO \

read.temp calculate.temp

read, time

Temp.vs.dtdT plot.Temp.vs.dtdT go.on

outputO.to.ASCII.file ;

: proceeds \

read.temp calculate.temp

read.time

5point.smoothing Temp.vs.dtdT plot.Temp.vs.dtdT go.on

output5.to.ASCII.file ;

***************************************************************

: proceed7 \

read.temp calculate.temp

read.time

7point.smoothing Temp.vs.dtdT plot.Temp.vs.dtdT go.on

output7.to.ASCII.file ;

***************************************************************

: proceed9 \

read.temp calculate.temp

read.time

9point.smoothing Temp.vs.dtdT plot.Temp.vs.dtdT go.on

output9.to.ASCII.file ;

**************************************************************

: proceed 11 \

read.temp calculate.temp

read.time

llpoint.smoothing Temp.vs.dtdT plot.Temp.vs.dtdT go.on

output ll.to.ASCII.file ;

: proceed 13 \ **************************************************************

26
read.temp calculate. temp

read.time

13point.smoothing Temp.vs.dtdT plot.Temp.vs.dtdT go.on

outputl3.to.ASCII.file ;

. proceed 15 \ **************************

read.temp calculate.temp

read.time

15point.smoothing Temp.vs.dtdT plot.Temp.vs.dtdT go.on

outputl5.to.ASCII.file ;

************************************

. proceed 17 \ **************************************************************

read.temp calculate.temp

read,time

17point.smoothing Temp.vs.dtdT plot.Temp.vs.dtdT go.on

outputl7.to.ASCII.file ;

27
APPENDIX 2 - Computer Program for

Temperature-Dilation Analysis

28
y* ************************************************************************

\ d/dTAnal.Y

^* ************************************************************************

echo.off

exp.mem> system.buffer 65280. system.buffer.size \ To set system buffer size and put the buffer into

expanded memory

real dim[ 4000 ] array temp

real dim[ 4000 ] array dil

real dim[ 4000 ] array dldT

integer scalar g

integer scalar dg

integer scalar k

real scalar cO

real scalar cl

real scalar c2

real scalar c3

real scalar c4

real scalar c5

real scalar c6

real scalar c7

real scalar c8

real scalar dTemp

real scalar dDil

0. temp :=

0. dil :=

* go on \ ******************************************************************

cr Hit Any Key" cr to Continue" Key Drop ;

* read temp \ **************************************************************

screen.clear cr cr cr cr cr cr

." ... Enter the Exact Filename Containing Temperature Data in ASCII ..." cr cr ." " "input defer > basic.open

0g: =

begin

g 1 + g

:=

basic.read drop temp [ g ] :=

?basic.eof

until basic.close g .

* read dilation \ ************************************************************

cr cr cr cr cr cr

." .... Enter the Exact Filename Containing Dilation Data in ASCII ...." cr cr ." " "input defer > basic.open

29
0 g :=

begin

g

1 + g

:=

basic.read drop dil [ g ] :=

?basic.eof

until basic.close g . ;

: calculate.temp \

temp 10. * temp

g

1 + 1 do

********************************#******$*******************

temp [i ] 3. ** 0.104154 * temp [

i ] 2. ** -3.8403 * +

temp [

i

] 130.286 * +

11.7469 +

temp [ i

J :=

loop ;

: calculate.dilation \

g

1 + 1 do

dil [

i 1 92.8878 *

dil

[

i J :=

loop ;

: 5point.smoothing \ ********************************************************

2 k :~

17. 35. / cO :=

12. 35. / cl :=

-3. 35. / c2 :^=

g

3 - 3 do

k 1 + k :=

temp [ k 2 + j c2 * temp [ k 1 + ] cl * +

temp [ k j cO * +

temp [ k 1 -

] cl * +

temp [ k 2 -

] c2 * +

temp [ k ] :=

dil { k 2 + ] c2 *

dil [ k 1 + j cl * +

dil

[ k ] cO * +

dil[kl-]cl* +

dil

[ k 2 -] c2 * +

dil

[ k ] :=

loop ;

: 7point.smoothing \

3 k :=

********************************************************

30
7. 21. /cO:=

6. 21. / cl :=

3. 21. /c2 :=

-2. 21. / c3 :=

g 4 - 4 do

k 1 + k :=

temp [ k 3 + ] c3 * temp [ k 2 + ] c2 * +

temp [ k 1 + ] cl * +

temp [ k ] cO * +

temp [ k 1 -

] cl * +

temp [ k 2 -

] c2 * +

temp [ k 3 -

] c3 * +

temp [ k ] :=

dil [ k 3 + ] c3 *

dil [ k 2 + ] c2 * +

dil

[ k 1 + ] cl * +

dil [ k ] cO * +

dil[kl-]cl* +

dil

[ k 2 -

] c2 * +

dil [ k 3 -

] c3 * +

dil

[ k ] := loop ;

: 9point.smoothing \

4 k :=

59. 231. / cO :=

54. 231. /cl :=

39. 231. / c2 :=

14. 231./c3:=

********************************************************

-21. 231. /c4:=

g

5 - 5 do

k 1 + k :=

temp [ k 4 + ] c4 * temp [ k 3 + ] c3 * +

temp [ k 2 + ] c2 * +

temp [ k 1 + ] cl * +

temp [ k ] cO * +

temp [ k 1 -

] cl * +

temp [ k 2 -

] c2 * +

temp [ k 3 -

] c3 * +

temp [ k 4 -

] c4 * +

temp [ k ] :=

dil

[ k 4 + ] c4 *

dil [ k 3 + ] c3 * +

31
dil [ k 2 + ] c2 * +

dil [ k 1 + ] cl * +

dil [ k ] cO * +

dil [ k 1 - ] cl * +

dil [ k 2 - ] c2 * +

dil [ k 3 - j c3 * +

dil [ k 4 - ] c4 * +

dil [ k ] :=

loop ; : llpoint.smoothing \ 5 k :=

89. 429. / cO :=

84. 429. / cl :=

69. 429. / c2 :=

44. 429. / c3 :=

9. 429. / c4 :=

-36. 429. / c5 : = g 6 - 6 do k 1 + k :=

temp [ k 5 + ] c5 * temp [ k 4 + ] c4 * +

temp [ k 3 4-

J c3 * +

temp [ k 2 + ] c2 * +

temp [ k 1 + ] cl * +

temp [ k j cO * +

temp [ k 1 - ] cl * +

temp [ k 2 - ] c2 * +

temp [ k 3 - ] c3 * +

temp [ k 4 - ] c4 * +

temp [ k 5 - ] c5 * +

temp [ k

J : =

dil [ k 5 + ] c5 * dil[k4 + ]c4* +

dil [ k 3 + j c3 * +

dil [ k 2 + ] c2 * +

dil[kl + ]cl* +

dil [ k ] cO * +

dil [ k 1 - ] cl * +

dil [ k 2 - ] c2 * +

dil [ k 3 - ] c3 * +

dil [ k 4 - j c4 * +

dil [ k 5 - j c5 * +

dil [ k ] :=

loop ; : 13point.smoothing \ 6 k:—

32
25. 143. /cO:=

24. 143. / cl :=

21. 143. / c2 :=

16. 143. / c3. :

9. 143. / c4

0. c5 :=

-11. 143. / c6

g

7 - 7 do

k 1 + k :=

temp [ k 6 + ] c6 * temp [ k 5 + ] c5 * +

temp [ k 4 + ] c4 * +

temp [ k 3 + ] c3 * +

temp [ k 2 + ] c2 * +

temp [ k 1 + j cl * +

temp [ k ] cO * +

temp [ k 1 -

J cl * +

temp [ k 2 -

] c2 * +

temp [ k 3 -

] c3 * +

temp [ k 4 -

j c4 * +

temp [ k 5 -

] c5 * +

temp [ k 6 -

] c6 * +

temp [ k j :=

dil [ k 6 + ] c6 *

dil

[ k 5 + ] c5 * +

dil

[ k 4 + j c4 * +

dil | k 3 + ] c3 * +

dil [ k 2 + ] c2 * +

dil

[ k 1 + ] cl * +

dil

[ k ] cO * +

dil[kl-]cl* +

dil [ k 2 -

J c2 * +

dil

[ k 3 -

] c3 * +

dil

[ k 4 -] c4 * +

dil

[ k 5 -] c5 * +

dil

[ k 6 -

] c6 * +

dil

[ k ] :=

loop ;

: 15point.smoothing \

7 k :=

167. 1105. /c0:=

162. 1105. /cl :=

147. 1105. / c2 :=

122. 1105. / c3 :=

87. 1105. /c4:=

42. 1105. / c5 :=

j**# #** ****#**:*****#***:}:***** ************&*#*******=!<

-13. 1105. /c6:=

33
-78. 1105. / c7

g 8 - 8 do

k 1 + k :=

temp [ k 7 + ] c7 * temp [ k 6 4- j c6 * +

temp [ k 5 + J c5 * +

temp [ k 4 + j c4 * 4- temp [ k 3 + ] c3 * 4

- temp [ k 2 4- ] c2 * +

temp [ k 1 + ] cl * +

temp [ k ] cO * +

temp [ k 1 -

] cl * 4- temp [ k 2 -

] c2 * 4

- temp [ k 3 -

] c3 * +

temp [ k 4 -

j c4 * +

temp [ k 5 -

] c5 * +

temp j k 6 -

] c6 * +

temp [ k 7 -

j c7 * +

temp [ k ] :~

dil

[ k 7 -f

] c7 *

dil

[ k 6 + ] c6 * +

dil

( k 5 -t-] c5 *

-f dil [ k 4 -f

] c4 * +

dil[k3 + ]c3* +

dil

[ k 2 + j c2 * +

dil[kl + ]cl* +

dil

[ k ] cO * +

dil f k 1 -

] cl * +

dil

[ k 2 -

] c2 * +

dil ( k 3 -

] c3 * +

di! | k 4 -

J c4 * +

dil

[ k 5 -j c5 * +

dil

j k 6 -] c6 * +

dil [ k 7 -

] c7 * +

dil

[ k j :=

loop ;

: 17point.smoothing \

8 k :=

43. 323. / cO

42. 323. / cl

39. 323. / c2

34. 323. / c3

27. 323. / c4

18. 323. / c5

7. 323. / c6 :=

-6. 323. / c7 :=

-21. 323. / c8 :=

*******************************************************

34
g 9 - 9 do

k 1 + k :=

temp [ k 8 + ] c8 * temp [ k 7 + ] c7 * +

temp [ k 6 + ] c6 * +

temp [ k 5 + ] c5 * +

temp [ k 4 + ] c4 * +

temp [ k 3 + ] c3 * +

temp [ k 2 + ] c2 * +

temp [ k 1 + ] cl * +

temp [ k ] cO * +

temp [ k 1 -

] cl * +

temp [ k 2 -

] c2 * +

temp [ k 3 -

] c3 * +

temp [ k 4 -

] c4 * +

temp [ k 5 -

] c5 * +

temp [ k 6 -

] c6 * +

temp [ k 7 -

] c7 * +

temp [ k 8 -

j c8 * +

temp [ k ] :=

dil

dil

dil

dil

dil

dil

dil

dil

dil

dil

dil

dil

dil

dil

dil

dil

dil

dil

k 8

k 7

k 6

k 5

k 4

k 3

k 2

k 1

] c8 *

] c7 *

] c6 *

] c5 *

] c4 * ]c3 *

] c2 *

] cl *

+

+

+

+

+

+

+

+

k ] cO * +

k 1 -

] cl * k 2 -

] c2 * k 3 -

] c3 * k 4 -

] c4 * k 5 -

] c5 * k 6 -

] c6 * k 7 -

] c7 * k 8 -

] c8 * k] :=

+

+

+

+

+

+

+

+

+

+

+

+

+

loop ;

*********************************************************** : Temp.vs.dldT \ 1 dg :=

g

1 + 1 do

Temp [

i 1 + ] temp [

i ]

- dTemp :=

Dil [

i 1 + ] Dil [i

] - dDil : =

dTemp ABS 0.00001 > if dDil ABS 0.00001 > if dDil dTemp / dldT [ dg ] := Temp [

i 1 ,+ ] Temp [ i

] + 2. / Temp [ dg ] :=

35
dg 1 -§- dg :=

then then loop ;

« plot Temp vs didT \ ************************************** ***************** temp sub[ 1 , dg 2. / , 2 ] dklT sub[ 1 , dg 2. / , 2 ] graphics.display solid xy.auto.plot

;

* plot temp vs dilation \ ***************************************************** temp sub[ 1 , g 2. / , 2 ] dil sub[ 1 , g 2. / , 2 ] graphics.display solid xy.auto.plot

;

* output to ASCII file \ *****************************************************

screen.clear normal.display cr cr cr cr cr cr Type in a Filename for ASCII Output" cr That Will Contain Temp-vs.-Dilation (Nonsmoothed) Data"

cr cr ." . . . . " "input defer> out>file

console.off

g

1 + 1 do

temp [i dil [

i ]. cr loop

out>file.close ;

* outputO to ASCII file \ ****************************************************

screen.clear normal.display cr cr cr cr cr cr Type in a Filename for ASCII Output" cr That Will Contain Temp-vs.-dldT (Nonsmoothed) Data"

cr cr . . . . " "input defer> out>file

console.off

dg 1 + 1 do

temp [

i ]

.

, " didT [

i

]

. cr loop

out>file.close ;

* outputs to ASCII file \ ****************************************************

screen.clear normahdisplay cr cr cr cr cr cr Type in a Filename for ASCII Output" cr That Will Contain Temp-vs.-dldT (5-Point Smoothed) Data"

cr cr ." . . . . " "input defer> out>file

console.off

dg 1 + 1 do

temp [i

]

. " didT [

i ]. cr loop

ouOfile.close ;

* outputT to ASCII file \ ****************************************************

screen.clear normal.display cr cr cr cr cr cr Type in a Filename for ASCII Output" cr That Will Contain Temp-vs.-dldT (7-Point Smoothed) Data"

cr cr . . . . " "input defer > out > file console.off

36
dg 1 + 1 do

temp [

i

]

. , " dldT [

i ]

. cr loop

out>file.close ;

* output9 to ASCII file \ ****************************************************

screen.clear normal.display cr cr cr cr cr cr

." Type in a Filename for ASCII Output" cr That Will Contain Temp-vs.-dldT (9-Point Smoothed) Data"

cr cr . . . . " "input defer> out>file

console.off

dg 1 + 1 do

temp [i ] .

,

dldT [

i ]. cr loop

out>file.close ;

. output 1 1 to ASCII file \ ***************************************************

screen.clear normal.display cr cr cr cr cr cr Type in a Filename for ASCII Output" cr

." That Will Contain Temp-vs.-dldT (11-Point Smoothed) Data"

cr cr ." . . .

.

" "input defer > out > file console.off

dg 1 + 1 do

temp [i ]. " dldT [

i ]. cr loop

out>file.close ;

. output 13 to ASCII file \ ***************************************************

screen.clear normal.display cr cr cr cr cr cr

." Type in a Filename for ASCII Output" cr

." That Will Contain Temp-vs.-dldT (13-Point Smoothed) Data"

cr cr ." . . .

.

" "input defer > out>file

console.off

dg 1 + 1 do

temp [i ] . ."

,

dldT [ i ]. cr loop

out>file.close ;

. outputl5 to ASCII file \ ***************************************************

screen.clear normal.display cr cr cr cr cr cr

." Type in a Filename for ASCII Output" cr

." That Will Contain Temp-vs.-dldT (15-Point Smoothed) Data"

cr cr ." . . . . " "input defer> out>file

console.off

dg 1 + 1 do

temp [

i ]

. " dldT [

i ] . cr loop

out>file.close ;

* outputl7 to ASCII file \ ***************************************************

screen.clear normal.display cr cr cr cr cr cr

37
Type in a Filename for ASCII Output" cr That Will Contain Temp-vs.-dldT (17-Point Smoothed) Data"

cr cr . . . . " "input defer > out > file console.off

dg 1 + 1 do

temp li ]. " dldT [

i ]

. cr loop

out>fi!e.close ;

***#***$**#*** r^**#**#**#****^*##***#*#***#*#*#*;!!**:}:*#****#*

: proceed \

*

read.temp calculate.temp

read.dilation calculate.dilation

plottemp.vs.dilation go.on output.to.ASCII.file ;

: proceedO \

read.temp calculate.temp

read.dilation calculate.dilation

Temp.vs.dldT plot.Temp.vs.dldT go.on

outputO.to.ASCII.file ;

* proceeds \ ***************************************************************

read.temp calculate.temp

read.dilation calculate.dilation

Spoint.smoothing Temp.vs.dldT plot.Temp.vs.dldT go.on

output5.lo.ASCII.fiie ;

proceedT \ ***************************************************************

read.temp calculate.temp

read.dilation calculate.dilation

7point.smoothing Temp.vs.dldT plot.Temp.vs.dldT go.on

output7.to.ASCII.file ;

* proceed9 \ ***************************************************************

read.temp calculate.temp

read.dilation calculate.dilation

9point.smoothing Temp.vs.dldT plot.Temp.vs.dldT go.on

output9.to.ASCII.file ;

* proceed 11 \ **************************************************************

read.temp calculate.temp

read.dilation calculate.dilation

llpoint.smoothing Temp.vs.dldT plot.Temp.vs.dldT go.on

outputll.to.ASCII.file ;

* proceed 13 ^ **************************************************************

read.temp calculate.temp

read.dilation calculate.dilation

13point.smoothing Temp.vs.dldT plot.Temp.vs.dldT go.on

output 13. to.ASCII.fiie ;

: proceed 1 5 \ ** $ £ * £ £ # ^ * * # & % * # * # * # * $ -t # # * £ * ^ * * '£ * £ £ * & £ * £ £ * * + * # £ £ * 4: £ * £ # £ £ £

38
read.temp calculate.temp

read.dilation calculate.dilation

15point.smoothing Temp.vs.dldT plot.Temp.vs.dldT go.on

output15.to.ASCII.file ;

. p

roceedl7 \ **************************************************************

read.temp calculate.temp

read.dilation calculate.dilation

17point.smoothing Temp.vs.dldT plot.Temp.vs.dldT go.on

outputl7.to.ASCII.file ;

39
APPENDIX 3 - Computer Program for

True Stress-True Strain Analysis

40
yt ************************************************************************

\ StrStrn.Y ************************************************************************

echo.off

exp.mem> system.buffer 65280. system.buffer.size \ To set system buffer size and put the buffer into

expanded memory

real dim[ 1500 ] array Loadd

real dim[ 1500 ] array Stroke

real dim[ 1500 ] array tSTRS

real dim[ 1500 ] array tSTRN

real dim[ 1500 ] array eSTRS

real dim[ 1500 ] array eSTRN

integer scalar g

integer scalar dg

integer scalar kk

real scalar cO

real scalar cl

real scalar c2

real scalar c3

real scalar c4

real scalar c5

real scalar c6

real scalar c7

real scalar c8

scalar LoadFactr

scalar StrokeFactr

scalar Length

scalar Diameter

scalar Area

scalar StrokeO

scalar MTSComplys

0. Loadd := 0. Stroke := 0. tSTRS := 0. tSTRN := 0. eSTRN := 0. eSTRS :=

vuport vul 0 0.21 vuport.orig 1 0.79 vuport.size 20 0 25 80 window vu2

. gQ Q ^ ******************************************************************

cr ." Hit Any Key" cr

." to Continue" Key Drop ;

. read load \ ***************************************************************

41
screen.clear cr cr cr cr cr cr

... Enter the Exact Filename Containing Load Data in ASCII ..." cr cr ." " "input defer > basic.open

Gg:=

begin

g 1 + g

:=

basic.read drop Loadd [ g ] :=

?basic.eof

until basic.close g . ;

* read load factor \ *********************************************************

cr cr cr cr cr cr

.... Enter the Load Calibration Factor in Newton/Volt ...." cr cr ." " #input Loadfactr := ;

* read stroke \ *************************************************************

screen.clear cr cr cr cr

.... Enter the Exact Filename Containing Stroke Data in ASCII ...." cr cr ." " "input defer > basic.open

0 g :=

begin

g

1 + g :=

basic.read drop Stroke [ g ] :=

?basic.eof

until basic.close g .

;

. stroke factor \ ********************************************************

cr cr cr cr

." .... Enter the Stroke Calibration Factor in mm/Volt ...." cr cr ." " #input StrokeFactr :=

cr cr cr cr

." .... Enter the Exact Voltage When Actuator Touches Specimen ...." cr cr ." " #input StrokeO :=

y

. c^flculstc Loaci and Stroke \ *************************************************

g

1 + 1 do

Loadd [

i ] LoadFactr * Loadd [

i ] :=

19.4701e-6 Loadd [ i

] * MTSComplys :=

Stroke [

i ] StrokeO - \ Convert stroke to

StrokeFactr * \ displacement regardless whether

MTSComplys - \ it is tension or compression

Stroke [

i

]

: =

loop ;

• specimen mfonuHtioii \ ************************************************

screen.clear cr cr cr

." .... Enter the Specimen Length in mm"

cr cr ." " #inpuf length : =

cr cr cr cr cr

.... Enter the Specimen Diameter in mm"

42
cr cr

.

#input diameter := ;

: 5point.smoothing \

2 kk :=

17. 35. / cO :=

12. 35. /cl :=

********************************************************

-3. 35. / c2 :=

g

3 - 3 do

kk 1 + kk :=

loadd [ kk 2 + ] c2 * loadd [ kk 1 + ] cl * +

loadd [ kk ] cO * +

loadd [ kk 1 -

] cl * +

loadd [ kk 2 -

] c2 * +

loadd [ kk ] :=

stroke [ kk 2 + ] c2 * stroke [ kk 1 + ] cl * +

stroke [ kk ] cO * +

stroke [ kk 1 -

] cl * +

stroke [ kk 2 -

] c2 * +

stroke j kk ] :=

loop ;

: 7point.smoothing \

3 kk :=

********************************************************

7. 21. /c0:=

6. 21. /cl :=

3. 21. /c2:=

-2. 21. /c3:=

g 4 - 4 do

kk 1 + kk :=

loadd [ kk 3 + ] c3 * loadd [ kk 2 + ] c2 * +

loadd [ kk 1 + ] cl * +

loadd [ kk ] cO * +

loadd [ kk 1 -

] cl * +

loadd [ kk 2 -

] c2 * +

loadd [ kk 3 -

] c3 * +

loadd [ kk ] :=

stroke [ kk 3 + ] c3 * stroke [ kk 2 + ] c2 * +

stroke [ kk 1 + ] cl * +

stroke [ kk ] cO * +

stroke [ kk 1 -

] cl * +

stroke [ kk 2 -

] c2 * +

43
stroke [ kk 3 -

J c3 * +

stroke [ kk ] :=

loop ;

: 9point.smoothing \

4 kk :=

**********************************111*********************

59. 231./c0:=

54. 231. /cl :=

39. 231. / c2

14. 231. /c3

-21. 231./c4:=

g

5 - 5 do

kk 1 + kk :=

loadd [ kk 4 + ] c4 * loadd [ kk 3 + ] c3 * +

loadd [ kk 2 + ] c2 * +

loadd [ kk 1 + ] cl * +

loadd [ kk ] cO * +

loadd [ kk 1 -

] cl * +

loadd [ kk 2 -

] c2 * +

loadd [ kk 3 -

] c3 * +

loadd [ kk 4 -

] c4 * +

loadd [ kk ] :=

stroke [ kk 4 + J c4 * stroke [ kk 3 + ] c3 * +

stroke [ kk 2 + ] c2 * +

stroke [ kk 1 + ] cl * +

stroke [ kk ] cO * +

stroke [ kk 1 -

] cl * +

stroke [ kk 2 -

J c2 * +

stroke [ kk 3 -

] c3 * +

stroke j kk 4 -

j c4 * +

stroke [ kk ] :=

loop ;

: llpointsmoothing \

5 kk :=

ft******************************************************

89. 429. / cO :=

84. 429. / cl :=

69. 429. / c2 :=

44. 429. / c3 :=

9. 429. / c4 : =

-36. 429. / c5 :=

g 6 - 6 do

kk 1 + kk :=

loadd [ kk 5 + J c5 *

44
loadd [ kk 4 + ] c4 * +

loadd [ kk 3 + ] c3 * +

loadd [ kk 2 + ] c2 * +

loadd [ kk 1 + ] cl * +

loadd [ kk ] cO * +

loadd [ kk 1 -

] cl * +

loadd [ kk 2 -

] c2 * +

loadd [ kk 3 -

] c3 * +

loadd [ kk 4 -

] c4 * +

loadd [ kk 5 -

] c5 * +

loadd [ kk ] :=

stroke [ kk 5 + ] c5 * stroke [ kk 4 + ] c4 * +

stroke [ kk 3 + ] c3 * +

stroke [ kk 2 + ] c2 * +

stroke [ kk 1 + ] cl * +

stroke [ kk ] cO * +

stroke [ kk 1 -

] cl * +

stroke [ kk 2 -

] c2 * +

stroke [ kk 3 -

] c3 * +

stroke [ kk 4 -

] c4 * +

stroke [ kk 5 -

] c5 * +

stroke [ kk ] := loop ;

: 13point.smoothing \

6 kk :=

25. 143. / cO :=

24. 143. / cl :=

21. 143. / c2 :=

16. 143. / c3 :=

9. 143. / c4 :=

0. c5 :=

*******************************************************

-11. 143. /c6:=

g 7 - 7 do

kk 1 + kk :=

loadd [ kk 6 + ] c6 * loadd [ kk 5 + ] c5 * +

loadd [ kk 4 + ] c4 * +

loadd [ kk 3 + ] c3 * +

loadd [ kk 2 + ] c2 * +

loadd [ kk 1 + ] cl * +

loadd [ kk ] cO * +

loadd [ kk 1 -

] cl * +

loadd [ kk 2 -

] c2 * +

loadd [ kk 3 -

] c3 * +

loadd [ kk 4 -

] c4 * +

loadd [ kk 5 - ] c5 * +

45
loadd [ kk 6 - ] c6 * 4

loadd [ kk ] :=

stroke [ kk 6 4 J c6 * stroke [ kk 5 4 ] c5 * 4

stroke [ kk 4 4 ] c4 * 4

stroke [ kk 3 4- ] c3 * +

stroke [ kk 2 4 ] c2 * 4

stroke [ kk 1 + ] cl * 4

stroke [ kk ] cO * 4

stroke [ kk 1 - ] cl * 4

stroke [ kk 2 - ] c2 * 4

stroke [ kk 3 - ] c3 * 4

stroke [ kk 4 - j c4 * 4

stroke [ kk 5 - ] c5 * 4

stroke [ kk 6 - ] c6 * 4

stroke [ kk

J :=

loop ; : ISpoint.smoothing \ 7 kk :=

167. 1105. / cO : =

162. 1105. /cl :=

147. 1105. /c2

122. 1105. /c3 :=

87. 1105./C4 :=

42. 1105. /c5 :=

-13. 1105. / c6 :~

-78. 1105. /c7 : = g 8 - 8 do

kk 1 4 kk :=

loadd [ kk 7 4 ] c7 * loadd [ kk 6 4 ] c6 * 4

loadd [ kk 5 4 j c5 * 4

loadd [ kk 4 4 ] c4 * 4

loadd [ kk 3 4 ] c3 * 4

loadd [ kk 2 4 j c2 * 4

loadd [ kk 1 4 J cl * 4

loadd [ kk ] cO * 4

loadd [ kk 1 - ] cl * 4

loadd [ kk 2 - ] c2 * 4

loadd [ kk 3 - j c3 * 4

loadd [ kk 4 - ] c4 * 4

loadd [ kk 5 - ] c5 * 4

loadd [ kk 6 - ] c6 * 4

loadd [ kk 7 - ] c7 * 4

loadd [ kk

J :=

stroke [ kk 7 4 ] c7 *

46
stroke [ kk 6 + ] c6 * +

stroke [ kk 5 + ] c5 * +

stroke [ kk 4 + j c4 * +

stroke [ kk 3 4- ] c3 * +

stroke [ kk 2 + ] c2 * +

stroke [ kk 1 + ] cl * +

stroke [ kk ] cQ * +

stroke [ kk 1 - ] cl * +

stroke [ kk 2 - ] c2 * +

stroke [ kk 3 - ] c3 * +

stroke [ kk 4 - ] c4 * +

stroke [ kk 5 - ] c5 * +

stroke [ kk 6 - ] c6 * +

stroke [ kk 7 - ] c7 * +

stroke [ kk ] :=

loop ; : 17point.smoothing \ 8 kk :~

43. 323. /c0:=

42. 323. / cl :=

39. 323. / c2 :=

34. 323. / c3 :=

27. 323. / c4 :=

18. 323. / c5 :=

7. 323. /c6:=

-6. 323. / c7 :=

-21. 323. / c8 := g 9 - 9 do

kk 1 + kk :=

loadd [ kk 8 + ] c8 * loadd [ kk 7 + ] c7 * +

loadd [ kk 6 + ] c6 * +

loadd [ kk 5 + ] c5 * +

loadd [ kk 4 + ] c4 * +

loadd [ kk 3 + ] c3 * +

loadd [ kk 2 + ] c2 * +

loadd [ kk 1 + ] cl * +

loadd [ kk ] cO * +

loadd [ kk 1 - ] cl * +

loadd [ kk 2 - ] c2 * +

loadd [ kk 3 - ] c3 * +

loadd [ kk 4 - ] c4 * +

loadd [ kk 5 - ] c5 * +

loadd [ kk 6 - ] c6 * +

loadd [ kk 7 - ] c7 * +

loadd [ kk 8 - ] c8 * +

loadd [ kk ] :=

47
stroke [ kk 8 + ] c8 * stroke [ kk 7 + ] c7 * +

stroke [ kk 6 + j c6 * +

stroke [ kk 5 + ] c5 * +

stroke [ kk 4 + ] c4 * +

stroke [ kk 3 + ] c3 * +

stroke [ kk 2 + ] c2 * +

stroke [ kk 1 + j cl * +

stroke [ kk ] cO * +

stroke [ kk 1 -

] cl * +

stroke [ kk 2 -

] c2 * +

stroke [ kk 3 -

] c3 * +

stroke [ kk 4 -

] c4 * +

stroke [ kk 5 -

] c5 * +

stroke [ kk 6 -

] c6 * +

stroke [ kk 7 -

] c7 * +

stroke [ kk 8 -

] c8 * +

stroke [ kk ] :=

loop ;

* calculate eSTRN eSTRS \ ************************************************** Diameter 2. ** pi * 4. / Area :=

g

1 + 1 do

Stroke [ i

] Length / eSTRN [

i

] := Loadd [

i

J Area / eSTRS [

i ] :=

loop ;

* calculate tSTRN tSTRS \ **************************************************

g

1 + 1 do

eSTRN [

i ] 1. + Ln -1. * tSTRN [ i

] := eSTRN [ i

] 1. + eSTRS [

i ] * -1. * tSTRS [i ] := loop ;

. pjQj eSTRN eSTRS \ *******************************************************

g

1 + 1 do

eSTRN [i ] -1 * 100 * eSTRN [i

]

: =

eSTRS [i

] -1 * eSTRS [

i ] := loop

eSTRN eSTRS xy.auto.plot

;

* plot tSTRN tSTRS \ *******************************************************

screen.clear tSTRN tSTRS xy.auto.plot

;

. outputO to ASCII file \ ****************************************************

screen.clear normal.display cr cr cr cr cr cr Type in a Filename for ASCII Output" cr That Will Contain True Stress-vs.-True Strain (Nonsmoothed) Data"

cr cr ." . . . . " "input defer > out > file console.off

g

1 + 1 do

tSTRN [

i

]

. " tSTRS [

i ]. cr

48
loop

out>file.close

I****************************************************

: output5.to.ASCII.file \

screen.clear normal.display cr cr cr cr cr cr Type in a Filename for ASCII Output" cr That Will Contain True Stress-vs.-True Strain (5-Point Smoothed) Data"

cr cr . . . . " "input defer > out >file

console.off

g

1 + 1 do

tSTRN [

i ]

. , " tSTRS [

i ]. cr loop

out>file.close

. outputT to ASCII file \ ****************************************************

screen.clear normal.display cr cr cr cr cr cr Type in a Filename for ASCII Output" cr That Will Contain True Stress-vs.-True Strain (7-Point Smoothed) Data"

cr cr . . .

.

"input defer > out>file

console.off

g

1 + 1 do

tSTRN [i

]

. ."

,

tSTRS [i

]

. cr loop

out>file.close ;

. to ASCII file \ ****************************************************

screen.clear normal.display cr cr cr cr cr cr Type in a Filename for ASCII Output" cr That Will Contain True Stress-vs.-True Strain (9-Point Smoothed) Data"

cr cr ." . . .

.

"input defer > out > file console.off

g 1 + 1 do

tSTRN [

i ]

. ."

,

tSTRS [i ]. cr loop

out>file.close

* outputll to ASCII file \ ***************************************************

screen.clear normal.display cr cr cr cr cr cr Type in a Filename for ASCII Output" cr That Will Contain True Stress-vs.-True Strain (11-Point Smoothed) Data"

cr cr . . .

.

"input defer > out >file console.off

g

1 + 1 do

tSTRN [

i

]

. , " tSTRS [

i ]. cr loop

out>file.close

• output13 to ASCII file \ ***************************************************

screen.clear normal.display cr cr cr cr cr cr Type in a Filename for ASCII Output" cr That Will Contain True Stress-vs.-True Strain (13-Point Smoothed) Data"

49
. . . . " cr cr "input defer > out > file ." console.off

g

1 + 1 do

tSTRN [i

]

. , n tSTRS [

i

]

. cr loop

out>file.close ;

* outputlS to ASCII file \ ***************************************************

screen.clear normal.display cr cr cr cr cr cr Type in a Filename for ASCII Output" cr

." That Will Contain True Stress-vs.-True Strain (15-Point Smoothed) Data"

cr cr . . . . " "input defer > out >file console.off

dg 1 + 1 do

tSTRN [ i

]

. " tSTRS [

i

]

. cr loop

out>file.close ;

* output 1 7 to ASCII file \ ***************************************************

screen.clear normal.display cr cr cr cr cr cr Type in a Filename for ASCII Output" cr

." That Will Contain True Stress-vs.-True Strain (17-Point Smoothed) Data"

cr cr ." . . . . " "input defer > out > file console.off

g

1 + 1 do

tSTRN [i

]

. " tSTRS [

i ]. cr loop

out>file.close ;

: proceedO \

read.Load read.load.factor

read.Stroke read.Stroke.Factor calculate.load.and.stroke

read.specimen.information

calculate.eSTRN.eSTRS calculate. tSTRN.tSTRS

plot.eSTRN.eSTRS go.on plot. tSTRN.tSTRS go.on

outputO.to.ASCII.file ;

fr**************************************************************

: proceed5 \

read.Load read.load.factor

read.Stroke read.stroke.factor calculate.load.and.stroke

read.specimen.information

Spoint.smoothing calculate.eSTRN.eSTRS calculate.tSTRN.tSTRS

plot.eSTRN.eSTRS go.on plot.tSTRN.tSTRS go.on

output5.to.ASCII.file ;

. p

roceed7 \ ***************************************************************

read.load read.load.factor

read.stroke read.stroke.factor calculate.load.and.stroke

read.specimen.information

7point.smoothing calculate.eSTRN.eSTRS calculate. tSTRN.tSTRS

plot.eSTRN.eSTRS go.on plot.tSTRN.tSTRS go.on

50
output7.to.ASCII.file ;

. \ ***************************************************************

read.load read.load.factor

read.stroke read.stroke.factor calculate.load.and.stroke

read specimen.information

9point.smoothing calculate.eSTRN.eSTRS calculate.tSTRN.tSTRS

plot.eSTRN.eSTRS go.on plot.tSTRN.tSTRS go.on

output9.to.ASCII.file ;

* proceed11 \ **************************************************************

read.load read.load.factor

read.stroke read.stroke.factor calculate.load.and.stroke

read.specimen.information

llpoint.smoothing calculate.eSTRN.eSTRS calculate.tSTRN.tSTRS

plot.eSTRN.eSTRS go.on plot.tSTRN.tSTRS go.on

output 11.to.ASCII.file ;

* proceed 13 \ **************************************************************

read.load read.load.factor

read.stroke read.stroke.factor calculate.load.and.stroke

read.specimen.information

13point.smoothing calculate.eSTRn.eSTRS calculate.tSTRN.tSTRS

plot.eSTRN.eSTRS go.on plot.tSTRN.tSTRS go.on

output 13. to.ASCII.file ;

* proceed 15 \ **************************************************************

read.load read.load.factor

read.stroke read.stroke.factor calculate.load.and.stroke

read.specimen.information

15point.smoothing calculate.eSTRN.eSTRS calculate.tSTRN.tSTRS

plot.eSTRN.eSTRS go.on plot.tSTRN.tSTRS go.on

outputl5.to.ASCII.file ;

* proceed 17 \ **************************************************************

read.load read.load.factor

read.stroke read.stroke.factor calculate.load.and.stroke

read.specimen.information

17point.smoothing calculate.eSTRN.eSTRS calculate.tSTRN.tSTRS

ploteSTRN.eSTRS go.on plot.tSTRN.tSTRS go.on

output 17.to.ASCII.file ;

51
APPENDIX 4 - Computer Program for Strain-Rate Analysis

52
\* ************************************************************************

\ StmRate.Y

^* ************************************************************************

echo.off

exp.mem> system.buffer 65280. system.buffer.size \ To set system buffer size and put the buffer into

expanded memory

real dim[ 1500 ] array Stroke

real dim[ 1500 ] array tSTRN

real dim[ 1500 ] array eSTRN

real dim[ 1500 ] array eSTRNdt

real dim[ 1500 ] array tSTRNdt

integer scalar g

integer scalar dg

integer scalar kk

real scalar cO

real scalar cl

real scalar c2

real scalar c3

real scalar c4

real scalar c5

real scalar c6

real scalar c7

real scalar c8

real scalar StrokeFactr

real scalar Length

real scalar StrokeO

real scalar dtime

0. Stroke : =

0. tSTRN :=

0. eSTRN :=

0. eSTRNdt :=

0. tSTRNdt :=

0. dtime :=

vuport vul 0 0.21 vuport.orig 1 0.79 vuport.size 20 0 25 80 window vu2

• gQ QJJ ^ ******************************************************************

cr Hit Any Key" cr to Continue" Key Drop ;

* read time \ **************************************************************

cr cr cr cr cr cr

... Enter the Time Per Point in Second ..." cr cr ." " #input dtime :=

53
' read stroke \ *************************************************************

screen.clear cr cr cr cr

.... Enter the Exact Filename Containing Stroke Data in ASCII ...." cr cr ." " "input defer > basic.open

0 g :=

begin

g 1 + g

:=

basic.read drop Stroke [ g ] :=

?basic.eof

until basic.close g . ;

: read.stroke.factor \ cr cr cr cr

.... Enter the Stroke Calibration Factor in mm/Volt ...." cr cr " #input StrokeFactr : =

cr cr cr cr

." .... Enter the Exact Voltage When Actuator Touches Specimen ...." cr cr ." " #input StrokeO :=

J

• cjilculstc Stroke \ *********************************************************

g

1 + 1 do

Stroke [i

] StrokeO - \ Convert stroke to

StrokeFactr * \ displacement regardless whether

Stroke [ i

] := \ it is tension or compression

loop ;

. j-g'id specimen information \ ************************************************

screen.clear cr cr cr

.... Enter the Specimen Length in mm"

cr cr ." " #input length := ;

: Spoint.smoothing \

2 kk :=

17. 35, /cO :=

12. 35. /cl :=

-3. 35. / c2 :=

g

3 - 3 do

kk 1 + kk :=

stroke [ kk 2 + ] c2 * stroke [ kk 1 + ] cl * +

stroke [ kk ] cO * +

stroke [ kk 1 -

] cl * +

stroke [ kk 2 -

j c2 * +

stroke [ kk ] :=

loop ;

: Vpoint.smoothing \

3 kk

54
7. 21. / cO :=

6. 21. /cl :=

3. 21. /c2:=

-2. 21. / c3 :=

g

4 - 4 do

kk 1 + kk :=

stroke [ kk 3 + ] c3 * stroke [ kk 2 + ] c2 * +

stroke [ kk 1 + ] cl * +

stroke [ kk ] cO * +

stroke [ kk 1 -

] cl * +

stroke [ kk 2 -

] c2 * +

stroke [ kk 3 -

] c3 * +

stroke [ kk ] :=

. loop ;

: 9point.smoothing \

4 kk :=

59. 231./c0:=

54. 231. /cl :=

39. 231. / c2 :=

14. 231. /c3:=

********************************************************

-21. 231. /c4:=

g

5 - 5 do

kk 1 + kk :=

stroke [ kk 4 + ] c4 * stroke [ kk 3 + ] c3 * +

stroke [ kk 2 + ] c2 * +

stroke [ kk 1 + ] cl * +

stroke [ kk ] cO * +

stroke [ kk 1 -

] cl * +

stroke [ kk 2 -

] c2 * +

stroke [ kk 3 -

] c3 * +

stroke [ kk 4 -

] c4 * +

stroke j kk ] :=

loop ;

* 1

1 point smoothing \ *******************************************************

5 kk :=

89. 429. / cO

84. 429. / cl

69. 429. / c2

44. 429. / c3

9. 429. /c4:=

-36. 429. / c5 :=

g 6 - 6 do

55
kk 1 + kk :=

stroke [ kk 5 + J c5 * stroke [ kk 4 + ] c4 * +

stroke [ kk 3 + ] c3 * +

stroke [ kk 2 + ] c2 * +

stroke [ kk 1 + j cl * +

stroke [ kk ] cO * +

stroke [ kk 1 - ] cl * +

stroke [ kk 2 - ] c2 * +

stroke [ kk 3 - J c3 * +

stroke [ kk 4 - j c4 * +

stroke [ kk 5 - ] c5 * +

stroke [ kk ] :=

loop ; : 13point.smoothing \ 6 kk :=

25. 143. / cO :=

24. 143. /cl :=

21. 143. / c2 :=

16. 143. / c3 :=

9. 143. / c4 :=

0. c5 :=

-11. 143. /c6 := g 7 - 7 do

kk 1 + kk

stroke [ kk 6 + ] c6 * stroke [ kk 5 + J c5 * +

stroke [ kk 4 + ] c4 * +

stroke [ kk 3 4- ] c3 * +

stroke [ kk 2 + j c2 * +

stroke [ kk 1 + ] cl * +

stroke [ kk ] cQ * +

stroke [ kk 1 - ] cl * +

stroke [ kk 2 - ] c2 * +

stroke [ kk 3 - ] c3 * +

stroke [ kk 4 - ] c4 * +

stroke [ kk 5 - ] c5 * +

stroke [ kk 6 - ] c6 * +

stroke [ kk ] :=

loop ; : 15point.smoothing \ 7 kk :=

167. 1105. / cO :=

162. 1105. / cl :=

147. 1105. /c2

56
122. 1105. / c3 :=

87. 1105. /c4:=

42. 1105. /c5 :=

-13. 1105. /c6:=

-78. 1105. / c7 :=

g 8 - 8 do

kk 1 + kk :=

stroke

stroke

stroke

stroke

stroke

stroke

stroke

stroke

stroke

stroke

stroke

stroke

stroke

stroke

stroke

stroke

loop

kk 7 + ] c7 * kk 6 + ] c6 * +

kk 5 + ] c5 * +

kk4 + ]c4* +

kk 3 + ] c3 * +

kk2 + ]c2* +

kkl + ]cl* +

kk]c0* +

kkl-]cl* +

kk 2 -

] c2 * +

kk 3 -

] c3 * +

kk 4 -

] c4 * +

kk 5 -

] c5 * +

kk 6 -

] c6 * +

kk 7 -

] c7 * +

kk] :=

* 17point smoothing \********** :* !''****** :'

i ****** i', ** i'i,*[ ** ,*i * :'E3'!:'i * !,i,<,,', ’it:*i:*E * :<, * i',!iEii‘* :*i:<1 ** 8 kk :=

43. 323. / cO

42. 323. / cl

39. 323./C2

34. 323. / c3

27. 323. / c4

18. 323. /c5

7. 323. /c6 :=

-6. 323. / c7 :=

-21. 323. / c8 :=

g 9 - 9 do

kk 1 + kk :=

stroke

stroke

stroke

stroke

stroke

stroke

stroke

stroke

stroke

kk 8 + ] c8 * kk 7 + ] c7 * kk 6 + ] c6 * kk 5 + ] c5 * kk 4 + ] c4 * kk 3 + ] c3 * kk 2 + ] c2 * kk 1 + ] cl * kk ] cO * +

+

+

+

+

+

+

+

57
stroke [ kk 1 -

] cl *

-f stroke [ kk 2 -

] c2 * +

stroke [ kk 3 -

] c3 * +

stroke [ kk 4 -

] c4 * +

stroke [ kk 5 -

] c5 * +

stroke [ kk 6 -

] c6 * +

stroke [ kk 7 -

] c7 * +

stroke [ kk 8 -

] c8 * +

stroke [ kk ] :=

loop ;

* calculate eSTRN \ ********************************************************

g

1 + 1 do

Stroke [i

] Length / eSTRN [

i

] :-

loop ;

* calculate tSTRN \ ********************************************************

g

1 + 1 do

eSTRN [ i

J 1. + Ln -1. * tSTRN [

i

] :=

loop ;

* calculate eSTRNdt tSTRNdt \ **********************************************

g

1 + 1 do

eSTRN [i 1 + ] eSTRN [i ] - dtime / eSTRNdt [

i

] := tSTRN [ i 1 + j tSTRN [

i

] - dtime / tSTRNdt [

i ] := loop ;

* plot eSTRN eSTRNdt \ ****************************************************

g

1 + 1 do

eSTRN [ i

] -1 * 100 * eSTRN [

i

] := eSTRNdt [

i j -i * eSTRNdt [i

] :=

loop

eSTRN eSTRNdt xy.auto.plot

;

. plot tSTRN tSTRNdt \ ****************************************************

screen.clear tSTRN tSTRNdt xy.auto.plot

;

* outputO to ASCII file \ ****************************************************

screen.clear normal.display cr cr cr cr cr cr

." Type in a Filename for ASCII Output" cr That Will Contain True Straindt -vs.-True Strain (Nonsmoothed) Data"

cr cr ." . . . . " "input defer> out>file

console.off

g

1 + 1 do

tSTRN [

i

]

. ."

,

tSTRNdt [i ]

. cr loop

out>file.close ;

: output5.to.ASCII.file \ ****************************************************

58
screen.clear normal.display cr cr cr cr cr cr Type in a Filename for ASCII Output" cr That Will Contain True Straindt-vs.-True Strain (5-Point Smoothed) Data"

cr cr . . .

.

"input defer > out >file

console.off

g

1 + 1 do

tSTRN [

i

]

. , " tSTRNdt [

i ]

. cr loop

out>file.close

. output7 to ASCII file \ ****************************************************

screen.clear normal.display cr cr cr cr cr cr Type in a Filename for ASCII Output" cr That Will Contain True Straindt-vs.-True Strain (7-Point Smoothed) Data"

cr cr ." . . .

.

"input defer > out>file

console.off

g 1 + 1 do

tSTRN [i

]

. , " tSTRNdt [

i

]

. cr loop

out>file.close

* output9 to ASCII file \ ****************************************************

screenxlear normal.display cr cr cr cr cr cr Type in a Filename for ASCII Output" cr That Will Contain True Straindt-vs.-True Strain (9-Point Smoothed) Data"

cr cr ." . . .

.

"input defer > out >file

console.off

g 1 + 1 do

tSTRN [i

]

.

, " tSTRNdt [

i ]. cr loop

out>file.close

. output1 1 . to.ASCII.file \ ***************************************************

screenxlear normal.display cr cr cr cr cr cr Type in a Filename for ASCII Output" cr That Will Contain True Straindt-vs.-True Strain (11-Point Smoothed) Data"

cr cr . . .

.

"input defer > out>file

console.off

g 1 + 1 do

tSTRN [ i

]

.

, " tSTRNdt [ i ] . cr loop

out>file.close

. outputl3.to.ASCII.file \ ***************************************************

screenxlear normal.display cr cr cr cr cr cr Type in a Filename for ASCII Output" cr

." That Will Contain True Straindt-vs.-True Strain (13-Point Smoothed) Data"

cr cr ." . . .

.

"input defer> out>file

console.off

g 1 + 1 do

tSTRN [

i ]

. " tSTRNdt [

i ]

. cr

59
loop

out>file.close ;

* output 15 to ASCII flic \ ***************************************************

screen.clear normal.display cr cr cr cr cr cr Type in a Filename for ASCII Output" cr That Will Contain True Straindt-vs.-True Strain (15-Point Smoothed) Data"

cr cr . . . . " "input defer > out > file console.off

dg 1 4- 1 do

tSTRN [i

]

. " tSTRNdt [

i

]

. cr loop

out>file.close ;

* output 17 to ASCII file \ ***************************************************

screen.clear normal.display cr cr cr cr cr cr

." Type in a Filename for ASCII Output" cr

." That Will Contain True Straindt-vs.-True Strain (17-Point Smoothed) Data"

cr cr ." . . . . " "input defer > out > file console.off

g

1 + 1 do

tSTRN [i

]

. ."

,

tSTRNdt [i ]. cr loop

out>file.close ;

* proceed!Q \ ***************************************************************

read, time

read.Stroke read.Stroke.Factor calculate.stroke

read.specimen.information

calculate.eSTRN

calculate.tSTRN

calculate.eSTRNdt.tSTRNdt

plot.eSTRN.eSTRNdt go.on plot.tSTRN.tSTRNdt go.on

outputO.to.ASCII.file ;

° proceeds \ ***************************************************************

read.time

read.Stroke read.stroke.factor calculate.stroke

read.specimen.information

5point.smoothing calculate.eSTRN

calculate.tSTRN

calculate.eSTONdt.tSTRNdt

plot.eSTRN.eSTRNdt go.on plot.tSTRN.tSTRNdt go.on

output5.to.ASCII.file ;

. p

r0ceed7 \ ***************************************************************

read.time

read.Stroke read.stroke.factor calculate.stroke

read.specimen.information

7point.smoothing calculate.eSTRN

calculate.tSTRN

calculate.eSTRNdt.tSTRNdt

60
plot.eSTRN.eSTRNdt go.on plot.tSTRN.tSTRNdt go.on

output7.to.ASCII.file ;

. p

r0ceed9 \ ***************************************************************

read.time

read.stroke read.stroke.factor calculate.stroke

read.specimen.information

9point.smoothing calculate.eSTRN

calculate.tSTRN

calculate.eSTRNdt.tSTRNdt

plot.eSTRN.eSTRNdt go.on plot.tSTRN.tSTRNdt go.on

output9.to.ASCII.file ;

* proceed 11 \ **************************************************************

read.time

read.stroke read.stroke.factor calculate.stroke

read.specimen.information

llpoint.smoothing calculate.eSTRN

calculate.tSTRN

calculate.eSTRNdt.tSTRNdt

plot.eSTRN.eSTRNdt go.on plot.tSTRN.tSTRNdt go.on

outputll.to.ASCII.file ;

* proceed 13 \ **************************************************************

read.time

read.stroke read.stroke.factor calculate.stroke

read.specimen.information

13point.smoothing calculate.eSTRN

calculate.tSTRN

calculate.eSTRNdt.tSTRNdt

plot.eSTRN.eSTRNdt go.on plot.tSTRN.tSTRNdt go.on

output 13.to.ASCII.file ;

* proceed 15 y *******************************************************

read.time

read.stroke read.stroke.factor calculate.stroke

read.specimen.information

15point.smoothing calculate.eSTRN

calculate.tSTRN

calculate.eSTRNdt-tSTRNdt

plot.eSTRN.eSTRNdt go.on plouSTRN.tSTRNdt go.on

output 15.to.ASCII.file

*******

. proceed 17 \ **************************************************************

read.time

read.stroke read.stroke.factor calculate.stroke

read.specimen.information

17point.smoothing calculate.eSTRN

calculate.tSTRN

calculate.eSTRNdt.tSTRNdt

plot.eSTRN.eSTRNdt go.on plot.tSTRN.tSTRNdt go.on outputl7.to.ASCII.file ;

61
BH14A U.S. DEPARTMENT OF COMMERCE

(5-90) NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY

BIBLIOGRAPHIC DATA SHEET

1. PUBLICATION OR REPORT NUMBER

N1ST1R 3950

2. PERFORMING ORGANIZATION REPORT NUMBER

3. PUBLICATION DATE

August 1990

4. TITLE AND SUBTITLE

DATA-REDUCTION AND ANALYSIS PROCEDURES USED IN NIST'S THERMOMECHANICAL PROCESSING RESEARCH

5. AUTHOR(S)

Yi-Wen Cheng and Christian L. Sargent

6. PERFORMING ORGANIZATION (IF JOINT OR OTHER THAN NIST, SEE INSTRUCTIONS)

U.S. DEPARTMENT OF COMMERCE

NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY

BOULDER, COLORADO 80303-3326

7. CONTRACT/GRANT NUMBER

8. TYPE OF REPORT AND PERIOD COVERED

9. SPONSORING ORGANIZATION NAME AND COMPLETE ADDRESS (STREET, CITY, STATE, ZIP)

10.

SUPPLEMENTARY NOTES

11.

ABSTRACT (A 200-WORD OR LESS FACTUAL SUMMARY OF MOST SIGNIFICANT INFORMATION. IF DOCUMENT INCLUDES A SIGNIFICANT BIBLIOGRAPHY OR

LITERATURE SURVEY, MENTION IT HERE.)

This report described the da ta-reduction procedures and computer programs used to

reduced and analyze the data obtained with a hot-deformation apparatus. The measured

raw data with the apparatus include temperature vs. time, specimen's relative length

(dilation) vs. time, actuator movement (stroke) vs. time, and load vs. time. Four

computer programs were written for data reduction and analysis to determine the cooling

rates, the true stress-true strain curves, the true strain rates, and the phase-transformation temperatures. Local averaging techniques were used to smooth the data of

temperature, dilation, stroke, and load. Source codes for the computer programs are

included. Example results of the analyses are presented and an example of the program

execution is given.

12.

KEY WORDS (6 TO 12 ENTRIES; ALPHABETICAL ORDER; CAPITALIZE ONLY PROPER NAMES; AND SEPARATE KEY WORDS BY SEMICOLONS)

cooling rate; data averaging; data reduction and analysis; hot deformation;

phase-transformation temperatures; thermomechanical processing; strain rate; true

stress-true strain curves

13. AVAILABILITY 14. NUMBER OF PRINTED PAGES

X UNLIMITED

70 FOR OFFICIAL DISTRIBUTION. DO NOT RELEASE TO NATIONAL TECHNICAL INFORMATION SERVICE (NTIS).

ORDER FROM SUPERINTENDENT OF DOCUMENTS, U.S. GOVERNMENT PRINTING OFFICE,

WASHINGTON, DC 20402.

15. PRICE

X ORDER FROM NATIONAL TECHNICAL INFORMATION SERVICE (MTIS), SPRINGFIELD, VA 22161. ELECTRONIC FORM

u.S. GOVER-'iMENT PRINTING OFFICE: 1990 - S73-432/4S005