NAri INST OF STAND & TECH

A111Q7 310143 PUBLICATIONS

NBSIR 88-3089

AN AUTOMATED HIGH-TEMPERATURE

GUARDED-HOT-PLATE APPARATUS

FOR MEASURING APPARENT

THERMAL CONDUCTIVITY

Jerome G. Must

B. James Filla

James A. Hurley

David R. Smith

National Bureau of Standards

U.S. Department of Commerce

Boulder, Colorado 80303-3328

May 1988

100

.056

#88-3089

1988

C.2

"Stimulating America's Progress 1913-1988

NBSIR 88-3089

^ifonxiatlan P

cNatiofiaJ Buraea of SUjidards

GaitBtsfgburg, H0899

A

AN AUTOMATED HIGH-TEMPERATURE

GUARDED-HOT-PLATE APPARATUS

FOR MEASURING APPARENT

THERMAL CONDUCTIVITY

Jerome G. Must

B. James Filla

James A. Hurley

David R. Smith

Chemical Engineering Science Division

Center for Chemical Engineering

National Engineering Laboratory

National Bureau of Standards

Boulder, Colorado 80303-3328

May 1988

Funded in part by

Department of Energy

Oak Ridge National Laboratory

Oak Ridge, Tennessee 37830

U.S. DEPARTMENT OF COMMERCE, C. William Verity, Secretary

NATIONAL BUREAU OF STANDARDS, Ernest Ambler, Director
% ..% ;tjw , %v>

'

:>Hv TA CfaTAiVJOTtfA. WAP

c*'.’ iAHA^m irAJ<i^Vfi-V

TvH»F A:m^'ViiF'bcAB^Vj fiC^

' t'rm'muat^GO ‘5aM?k- jhm3Hf"

3

•sW«l'*!afrta',S(

tDjV0O 3

'4K^ ^

fip/iiWiCf ^J^mxsriQi;

• V cm

_

y<t ?ac»? ,ftj| {Q -i^?|irr;'.itQ^'3 -

^S . I'l ..'<i^'"/'*v» ’
CONTENTS

Page

Abbreviations and Symbols Used in This Report iv

List of Figures v

List of Tables vii

ABSTRACT 1 1. INTRODUCTION 2

2. DESCRIPTION OF APPARATUS ELEMENTS 3

2.1 Guarded-Hot-Plate Stack and

Environmental Control Elements 4

2.2 Mounting of Thermocouples and PRTs 6

2.3 System for Data Acquisition and Control 6

2.4 Specimen Thickness Spacers 8

3. OPERATION 9

4. PRIMARY MEASUREMENTS 11

5. ANALYSIS OF PRECISION AND BIAS 13

5.1 Analysis of Propagation of Errors 13

5.1.1 Rate of Heat Flow 14

5.1.2 Thickness and Area of Specimen 16

5.1.3 Mean Temperature of, and Temperature

Difference Across the Specimen 16

5.2 Error Analysis From Experimental Measurements 17

5.2.1 Experimental Reproducibility 17

5.2.2 Measurements on a Fibrous Glass Insulation

SRM 17

5.2.3 Experiments With Offsets in Temperature of

Guard Heaters 18

5. 2. 3.1 Outer-Guard Offsets 18

5. 2. 3.

2

Inner-Guard Offsets 19

5.2.4 Zero Gradient Measurements 20

5.2.5 Comparative Measurements 22

5. 2. 5.1 Comparison With Results From RoundRobin Measurement Programs 22

5. 2. 5.

2

Comparison With Measurements at an

Industrial Laboratory 22

6. SUMMARY 23

7. REFERENCES 25

Appendix A: BASIC-Language Computer Program, "HT.GHP",

for the High-Temperature Guarded-Hot-Plate

Apparatus A-1

Appendix B: "A Thermocouple Device for Determination

of Average Surface Temperature", J.G. Hust

and David R. Smith; Journal of Thermal

Insulation H, 96-101 (Oct. 1988) B-1

Appendix C: "A Modified Digital PID Temperature Controller for Thermal Properties Measurements", Jerome G. Hust, B. James Filla

and David R. Smith; Journal of Thermal

Insulation il, 102-107 (Oct. 1988) C 1

iii
Abbreviations and Sjnnbols Used in This Report

A Area of Metered Section

DTC Differential Thermocouple

DVM Digital Voltmeter

G Gap between Main Heater and Inner Guard

GHP Guarded Hot Plate

I Electric Current

IG Inner (Primary) Guard

k Thermal Conductivity

K PID Controller Gain

Kp Proportional Gain Function

Ki Integral Gain Function

Kd Derivative Gain Function

Kp 1 , Kp 2 Proportional Gain Parameters

MH Main Heater

PRT Platinum Resistance Thermometer

Q Heater Power

R Resistance

RTD Resistive Temperature Detector (Thermometer)

S Standard Deviation

Sp 1 , Sp 2 Proportional Gain Bellwidths

Si Integral Gain Bellwidth

Sd Derivative Gain Bellwidth

SRM Standard Reference Material

tc Control-cycle time interval

TC Thermocouple

Tc Temperature of Cold Surface of Specimen

Th Temperature of Hot Surface of Specimen

A Ti , AT2 Temperature Difference Across Each Specimen

ti Integral Time Constant

tn Derivative Time Constant

V Potential difference

AX Specimen Thickness

ZG Zero Gradient

iv
List of Figures

Page

Figure 1. Layout of thermal conductivity stack, guards,

shroud and environmental chamber of the NBS

high-temperature guarded-hot-plate apparatus 27

Figure 2. Block diagram of electronic system for control

of temperature and acquisition of data 28

Figure 3. Detailed block diagram of control and data

acquisition within the "main apparatus" block

of Figure 2 29

Figure 4. Output emf of gap thermocouple, between inner

guard and main heater, vs. time: behavior during

initial approach to set-point 30

Figure 5. Output emf of gap thermocouple, between inner

guard and main heater, vs. time: behavior during

stable operation at set-point 30

Figure 6. Temperature of outer guard, measured by resistance thermometer, vs. time: behavior during

initial approach to set-point 31

Figure 7. Temperature of outer guard, measured by resistance thermometer, vs. time: behavior during

stable operation at set-point 31

Figure 8. Temperature of top auxiliary heater plate,

measured by resistance thermometer, vs. time:

behavior during initial approach to set-point 32

Figure 9. Temperature of top auxiliary heater plate,

measured by resistance thermometer, vs. time:

behavior during stable operation at set-point 32

Figure 10. Temperature of bottom auxiliary heater plate,

measured by resistance thermometer, vs. time:

behavior during initial approach to set-point 33

Figure 11. Temperature of bottom auxiliary heater plate,

measured by resistance thermometer, vs. time:

behavior during stable operation at set-point 33

Figure 12. Temperature of main heater plate, measured

by resistance thermometer, vs. time: behavior

during initial approach to set-point i

V
Figure 13. Temperature of main heater plate, measured

by resistance thermometer, vs. time; behavior

during stable operation at set-point 34

Figure 14. Main heater power vs. time: behavior during

initial approach to set-point 35

Figure 15. Main heater power vs. time: behavior during

stable operation at set-point 35

Figure 16. Experimental thermal conductivity, calculated

from main heater power, specimen area and

temperature gradient, vs. time: behavior during

initial approach to set-point 36

Figure 17. Experimental thermal conductivity, calculated

from main heater power, specimen area and

temperature gradient, vs. time: behavior during

stable operation at set-point 36

Figure 18. Temperature of thermocouple reference block,

measured by resistance thermometer, vs. time 37

Figure 19. Thermal conductivity of fibrous glass insulation

SRM 1450b compared with certification function

for k(T) (solid line) 38

Figure 20. Relative deviations of thermal conductivity of

fibrous glass insulation SRM 1450b , compared with

certification function for k(T) 39

Figure 21. Main heater power supplied to specimens of fibrous

alumina-silica insulation board, for outer-guard

offsets of + 20 K 40

Figure 22. Main heater power supplied to specimens of fibrous

glass insulation board for inner-guard offsets of

+ 40 pV 41

Figure 23. Zero-gradient heat vs. temperature, for fibrous

glass insulation board 42

Figure 24. Zero-gradient heat vs. temperature, for fibrous

alumina-silica insulation board 43

Figure 25. Thermal conductivity round-robin test results for

fibrous alumina-silica. The solid curve is calculated from k(T) = 15.98+0.1003 T + 3.053x10-8 T^ . . . 44
Figure 26. Deviations of thermal conductivity round-robin test

results from values calculated for fibrous aluminasilica, using the relation given in caption to

Figure 25 45

Figure 27. Thermal conductivity round-robin test results for

calcium silicate. The solid curve is calculated

from k(T) 70.67 + 0.01878 T + 5.796x10-8 T3 46

Figure 28. Deviations of thermal conductivity round-robin test

results from values calculated for calcium silicate,

using the relation given in caption to Figure 27. . .

.

47

Figure 29. Thermal conductivity of refractory fibrous aluminasilica insulation board (circles), compared to

functional correlation of Mitchell [8] 48

Figure 30. Relative deviation of thermal conductivity

data from functional correlation of Mitchell 49

List of Tables

Table 1. Typical data summary as printed at end of a measurement sequence 50

Table 2. Estimates of random variations and systematic

uncertainties in measured quantities at room

temperature 51

vli
m

V. Jl^-'

I

.1?* .il^v M't: ,-*'4<(ts:'Mi‘«i '•V'^>' gfH

'

'’,; '.MJi; -V p dv r,' i;tVj4 \

:,j>C'-''" ' h.‘ 44^-'.. ..

Q’fr . - - , ../iijiMMKSHi " ST"

I ?

:.Uk. IN m.

M,y

mm. m-' ‘ * *-

;o 'j,. 3*'i^i!»^;:jjHf«fei^^

'

'

'

' '’ ''' ' - ' - - - y ^ i

’’

‘ ' nln. W-%- ^C'B!

'I-Jfe .;

•h3 w^

.K’

, '

1

; ^“15- t.^:-

..WJi

1i

^'M-Y'.
AN AUTOMATED HIGH-TEMPERATURE GUARDED-HOT-PLATE APPARATUS FOR

MEASURING APPARENT THERMAL CONDUCTIVITY

Jerome G. Hust, B. James Filla,

James A. Hurley, and David R. Smith

Chemical Engineering Science Division

National Bureau of Standards

Boulder, Colorado 80303-3328

An automated guarded-hot-plate apparatus was designed and

built to meet the requirements of ASTM Standard Test Method C-177

for measuring the thermal conductance of thermal insulation.

Apparent thermal conductivity has been measured with this apparatus in the range from 40 to 100 mW/(m.K) at mean temperatures from

300 to 750 K, in environments of air and helium, at pressures

ranging from atmospheric pressure to roughing-pump vacuum. The

apparatus is controlled by a desk-top computer. A thermocouple

device of novel design more accurately senses the average temperature over the surface of each heater plate. An improved algorithm

for the control sequence leads to more stable heater powers and

specimen temperatures. Initially it brings the system rapidly to

a temperature setpoint with minimal overshoot. It also permits

highly sensitive control of the plate temperatures in later phases

of the measurement sequence when thermal stability of the specimen

boundaries is very important in measuring the thermal conductivity

with high precision. This algorithm has enhanced the performance

of both the high-temperature and the low-temperature guarded-hotplate apparatus at this laboratory. The apparatus can be operated

at either constant hot-plate temperature or constant heater power.

Overall uncertainties of apparent thermal conductivities at

atmospheric pressure are 2% at 300 K and 5% at 750 K when measuring conductivities in the range from 40 to 100 mW/(m.K). The

apparatus will be valuable in development of new Standard Reference Materials of low conductivity and for higher temperature

ranges, and is being used in comparative interlaboratory measurement programs

.

Key words: automated control system; guarded-hot-plate apparatus;

high temperature; mean-temperature sensor; thermal conduct ivi.‘*‘y

;

thermal insulation; thermocouple device.

1
1. INTRODUCTION

The U.S. National Bureau of Standards (NBS) establishes Standard Reference Materials (SRMs) needed to improve accuracy in

measurement of physical properties. Within NBS the Center for

Chemical Engineering (CCE) has helped to develop SRMs of thermal

resistance for over twenty years. During the past ten years CCE

helped establish SRMs for thermal insulation at temperatures from

100 K to 330 K. As a result of this effort CCE established two

insulation SRMs, fibrous glass board SRM 1450b [1-5], and fibrous

glass blanket SRM 1451 [6], in cooperation with the NBS Center for

Building Technology. The low-temperature data for certifying

these SRMs from CCE were obtained with a guarded-hot-plate apparatus designed to be used at ambient and low temperatures. This

apparatus has been described by Smith, Bust, and Van Poolen [7].

Both industry and NBS have for several years recognized the

need for thermal insulation SRMs for use at higher temperatures,

but limited funds and manpower delayed the start of this effort

until insulation SRMs for the building industry were completed.

Several years ago CCE began to design and construct a guarded-hotplate apparatus capable of measuring materials having apparent

thermal conductivities in the range of about 20 to 200 mW/(m- K)

and for temperatures ranging from room temperature to about 750 K.

This apparatus has been completed and tested to establish its

precision and bias. The tests included determining the thermal

conductivity [8,9] of SRM 1450b fibrous glass insulation board at

temperatures from 300 to 350 K and measurement of two candidate

insulation SRMs for high temperatures. These measurements use

double-sided heat flow as well as single-sided [10] heat flow;

both small and large temperature gradients; runs with temperature

offsets on the primary and secondary guards; environments of different gases such as ambient air, dry air, dry nitrogen, argon or

helium; and investigations of the effect of drift of the specimen

temperature. The results of these measurements, along with

comparisons to previously published data, are used to assess the

precision and bias of the new apparatus.

Ideally a guarded-hot-plate (GHP) apparatus should produce

conditions of stable and straight-line flow of heat from a source

of known power. The entire output of this source should flow

through, and along a direction normal to, a known or "metered"

area of the surface of a specimen. For practical reasons a

matched pair of specimens is used, sandwiching the thermally

guarded, main heater plate, and equally sharing the power. Stably

controlled, cooled surfaces sink the heat energy. Measurement of

the temperature gradient along the direction of heat flow and

within the metered area of the specimen then allows one to compute

the thermal conductivity as the ratio of heat flux (time rate of

heat flow per unit area) to temperature gradient. Additional

heater plates permit changing the mean temperature of the specimen

independently of the temperature gradient, which is" established by

the main heater plate. The collection of heater plates, specimens

2
and cooling plates is called the "stack".

The major task of the designer of a GHP apparatus is to approach as closely as possible the ideal conditions described

above. Measuring the true gradient within the specimen, ensuring

straight-line flow of heat, and avoiding the loss of heat produced

by the metered heater or the introduction of extraneous heat flow

through the metered area of the specimen, can be particularly

challenging. When measuring rate of heat flow through a material

designed to be a good insulator, it is obviously difficult to

insulate such a specimen to prevent loss of heat! Establishing

within the specimen e mean temperature that is close to the ambient temperature will minimize errors in measuring the rate of heat

flow through the specimen. However, contact resistance between

the heater plates and the specimens is a source of error when

measuring specimens of relatively high conductance. While we may

consider avoiding this problem by mounting the thermocouples or

other temperature sensors directly on the surface of the specimen,

it is often desirable not to change the surface of the specimen by

making grooves for the sensors or introducing adhesive material to

hold the sensors.

The initial design of the high-temperature GHP apparatus was

guided by the following criteria: (a) the size of the hot plate

should be typical of those commonly in use, (b) the temperature

range of the apparatus should be large enough to satisfy a significant need but not so large as to delay its timely completion,

and (c) the apparatus should be totally automated both to control

the measurement process and to acquire the data. A logical extension of item (c) was to construct the system for control and data

acquisition in such a way that it could be used to operate the

previously described low-temperature GHP system. The low-temperature apparatus was rewired to exploit the advantages of the automated control apparatus. It has been operated successfully to

measure thermal insulation SPiM 1450b [3], having a thermal conductivity of 40 to 60 mW/(m‘K), while checking out the proper

operation of the automatic control system.

2 . DESCRIPTION OF APPARATDS ELEMENTS

This GHP apparatus is consistent with the specifications of

ASTM Standard Test Method for "Steady-State Heat Flux Measurements

and Thermal Transmission Properties by Means of the Guarded-Hot

Plate Apparatus" (C 177-85) [8]. It differs from the low-tempera

ture apparatus [7] only in the materials used in its construction

and in the diameter of its measurement stack. The stack elements

of the GHP apparatus and the associated environmental cont»-ol

components are illustrated in figure 1. Figures 2 and 3 sh' w block diagrams of the electronic system for control and ic*t acquisition. For those who may wish to take advantage o-*" th-^

developed program, written in BASIC language, Appendix A con*

a listing of the entire computer software package that compl*:t - the automation of the system.

3
2.1 Guarded-Hot-Plate Stack and Environmental Control Elements

The stack, shown in figure 1, consists of the following elements from the bottom to the top: bottom cold plate, bottom heater

offset insulation, bottom auxiliary heater plate, bottom specimen,

main and inner guard heater plate assembly, top specimen, top

auxiliary heater plate, top heater offset insulation, and top cold

plate. The inner guard heater plate, surrounding the main heater

plate, is also referred to as the primary guard. A cylindrical

outer, or secondary, guard surrounds the stack. Alumina, with its

high melting point and relatively high thermal conductivity for an

insulating material, was chosen as the material for the outer

guard and heater plates. The 25-mm thick sintered-alumina heater

plates, having masses of 3.2 kg, and the 6-mm thick copper cold

plates, are circular disks 25.4 cm (10.0 in) in diameter. A 25-mm

thickness of calcium silicate heater-offset insulation permits the

use of a wide range of specimen temperature differences within the

limitations of the power supplies.

The heater plates and outer guard were fitted with the necessary sensors to measure and control their temperatures. NicrosilNisil* thermocouples, resistant to the effects of high temperatures, are used to sense the temperatures of the heater surfaces

adjacent to the specimen surfaces and to control the temperature

difference across the gap between the metered region and the primary guard. The sensitivity of this alloy increases from 28 to 38

^V/K over the range from 300 to 800 K. Sensitive control of each

heater plate and each outer guard is achieved by mounting platinum

resistance thermometers (PRTs), encased in a refractory material,

on the heater assembly. Each of the wire leads for the heaters

and temperature sensors was thermally anchored to its associated

plate and was wrapped around and cemented to a thermal anchoring

post in the midplane of the vertical outer surface of the heater

plates. Each wire was then wrapped into a coil about 3 mm in

diameter between the edge of the plate and the base plate of the

stack. The base plate is water-cooled to keep it near room

temperature

.

Trade name is given here purely for identification purposes and

does not imply endorsement by NBS. Similar products of other

manufacturers may work as well or better.

4
Each cold plate comprises two copper disks soldered together.

Machined next to each other in the inner surface of each disk are

two symmetric spiral grooves, connected at the center. These form

a counterflow heat exchanger for the entering and exiting streams

of coolant, and minimize the temperature differences within the

cold plates induced by the temperature difference between the two

streams. The coolant lines were connected to the top and bottom

cold plates in a parallel arrangement so that the rate of flow can

be controlled by a separate valve for each plate. Water from the

domestic supply is the coolant, but any other suitable coolant

could be used, such as chilled alcohol from a refrigerated bath.

Each stack heater plate (top, main and bottom) was constructed from two alumina disks, one of which was grooved. The grooves

were cast as two adjacent spirals connected at the center of the

plate. This design is a convenient way to distribute the heating

power uniformly over the heater area. It also minimizes the area

enclosed between the two leads, which minimizes any inductive

coupling to nearby sensor circuits in case it is desired to power

the heater with ac power. Platinum heater wire was held within

the grooves with refractory cement, which also holds the two

plates together. The thicknesses of the disks and depth of the

grooves are such that the plane of the heater wire lies midway

between the top and bottom surfaces of the assembled heater plate.

To make the main heater-inner guard plate, the centers of two

plates identical to those used for the auxiliary heaters were cut

out, with diameters half of that of the whole plate. The central

core became the main heater, and the annulus, the inner guard.

The outer guard is a 4.6 kg circular, cylindrical shell of

cast alumina 6 mm in thickness and 20 cm in length surrounding

the stack from the level of the bottom auxiliary heater plate to

that of the top auxiliary plate. Its inner diameter is 2.5 cm

larger than the diameter of the stack plates. Platinum heater wire

was wrapped non-inductively on the outside of this guard and

cemented in place.

An aluminum shroud surrounds the stack and contains the

loose-fill insulation which limits the loss of heat from the

stack. The shroud is 46 cm high and 58 cm in diameter. Its

position on the water-cooled base plate helps keep it near ambient

temperature.

Surrounding the entire stack/shroud assembly is a stainless

steel environmental -control chamber with an 0-ring seal on its

bottom edge. This chamber allows us to introduce different gases

or to evacuate the space around the stack to a vacuum of about 7

Pa (50 pm). The type of loose-fill insulation (exfoliated mica)

used around the stack has a large surf ace-to-volume ratio and is

a good moisture adsorbent; this makes it difficult to achieve

pressures of less than 10 Pa in a short time.

5
2.2 Mounting of Thermocouples and PRTs

To sense the absolute temperature needed to obtain the

thermal conductivity, with minimum distortion of the isotherms and

heat flux lines within the specimens, thermocouples are used at

the centers of the heater plate surfaces. To control the desired

plate temperatures, four-lead PRTs are used as sensors in the

control circuits.

One PRT was cemented into a slot machined in the center of

the outer edge of each auxiliary heater plate. Another PRT was

similarly mounted on the metered (main) plate within the gap

between it and the inner guard. The PRT for the outer guard was

cemented to its outside surface.

A unique three-lead thermocouple combination was designed to

measure accurately the average temperature over the surface of

each heater plate. This three-lead device results in significantly more accurate measurements of the average temperature of a

surface compared to those obtained with a single thermocouple.

See Appendix B for a more detailed discussion of the theoretical

basis, construction and comparative performance of this device.

The temperature difference across the gap between the metered

plate and the primary guard is controlled with a twenty-element

thermopile. Ten thermopile elements (the first half) lie on the

top surface of the plate and the other ten (the second half) are

on the bottom. Control is exercised using the whole thermopile

but a third lead is connected to the junction between the two

halves so that the top and bottom thermopiles can be monitored

separately. The junctions of the thermopile are uniformly

distributed along the circumference of the gap at locations alternating between its opposite sides, approximately 4 mm from the

edges of the gap.

2.3 System for Data Acquisition and Control

The system for acquiring data and controlling temperature and

power is composed of two principal parts: (a) the computer (with

associated multiprogrammer, interface cards and software) and (b)

power supplies and digital voltmeters (DVMs). The schematic

arrangement of these components is shown in figures 2 and 3.

The system contains five power supplies for the heaters in

the five plates and guards, a single current supply for the five

PRTs on the heater units, and six digital voltmeters. Three DVMs

respectively read the potential differences across the PRTs

sensing the temperatures of the main heater plate and two

auxiliary heater plates. A fourth DVM monitors the emf from the

gap thermopile used to maintain equality of temperature between

the main heater and primary guard. The fifth DVM reads the emfs

for the thermocouples sensing various plate temperatures, as well

as the output from the PRT used to sense the temperature of the

outer guard.

6
Each thermocouple emf is selected for reading by the computer

through the use of two switching-relay modules having low levels

of parasitic thermal emfs. Each switching module has ten relays,

i.e., ten double-pole switch positions. These relays are also

used to determine the currents in the PRTs and main heater by

allowing the fifth DVM also to read the potential drop across a

standard resistor in each circuit. The power delivered to the

main heater is calculated from values of the current in and the

potential drop across the main heater resistance. This potential

difference is measured with the sixth DVM.

Four of the five power supplies for the heater plates are

capable of a maximum output of 55 V and 5 A (275 W)

.

For maximum

power transfer the optimum heater resistance is therefore 11 fb . The actual heater resistances, ignoring lead resistances, are:

(a) main heater, 3 . 7 Jb ; (b) top and bottom auxiliary heaters, 14.3 lb ; (c) inner guard, 10.2 ^ ; and

(d) outer guard, 11.9 -0. . The outer guard requires a power supply of at least 75 V to supply

the power needed at the highest temperatures of operation. The

low resistance of the main heater is not a problem, because it is

thermally well shielded against loss of heat and requires only a low power even at high temperatures.

The PRT current supply is manually set to the optimum current

as calculated by the computer for each set of runs. The optimum

current for the temperature range of this apparatus varies from

0.6 to 1.5 mA. At room temperature the resistance of each PRT is

100 II . Thermocouple emfs and the power to the main heater are measured by two DVMs having a precision of 6 1/2 digits (0.01 )

.

The four DVMs used to measure the gap thermopile emf and the PRT

voltages on the main heater and two auxiliary heaters have a precision of 5 1/2 digits (0.1 pV). The analog-to-digital

conversion card used to measure the outer guard PRT voltage has a precision of 3 1/2 digits. The heater control circuits for all

but the main heater provide for changes in power supply voltage as

small as 10 mV. The control circuit for the main heater can change

its output by values as small as 1 mV. The low-thermal -emf relay

modules are designed to provide selector switches free of spurious

emfs down to levels of 20 nV.

7
The core of the control system is a modified digital PID

(Proportional, Integral and Derivative) controller of novel design

and based in software residing in a scientific personal computer.

Its algorithm for control of the power supplied to the heater

plates provides for vigorous heating and rapid approach to the

desired temperature when the controlled temperature is far from

the set point, yet gives very sensitive control when the controlled temperature is near the set point. These features are a

result of variable controller gains. The control algorithm is

described in detail in Appendix C.

2.4 Specimen Thickness Spacers

Some specimens to be measured compress under the weight of

the overlying plates, the thickness of the specimens then varying

with time due to creep. To slightly compress these specimens, and

thereby assure good thermal contact between them and the adjacent

heater plates, the plates are held apart with rigid spacers cut

from stainless steel tubes. These spacers have walls 0.25 mm

thick and are shorter than the specimen thickness by about 0.2 mm.

Three equally-spaced notches are cut into the outer periphery of

each specimen to hold the spacers between the outer edges of the

inner guard and the auxiliary heaters. Each spacer is cut to the

desired length within a tolerance of 0.025 mm. The tubes are

filled with refractory fibrous insulation, to reduce the possibility of radiative and convective heat transfer within their

interiors. These modes of heat transfer would shunt the

conductive heat transfer through the specimens.

Although the tubes thermally connect the outer edges of the

inner guard and auxiliary heaters, their presence is necessary to

preserve constancy of the thickness of compressible specimens.

The shunting effect of the spacer tubes is minimized by their thin

walls, fibrous inner packing and poor (point) contact with the

ceramic plate surfaces. Their position at the outer margins of

the stack minimizes the effect of their shunting on the direction

of flow lines of the metered heat through the specimens.

8
3. OPERATION

After the specimens have been prepared and installed, flow of

coolant to the cold plates is initiated. The power supplies, DVMs

,

multiprogrammer and electronic relay modules are turned on and the

computer program started. During the initial part of the run the

computer prompts the operator for the time and date, identification and characteristics (mass and thickness) of the specimen, the

environmental gas, and run information. This last item includes

the values of temperatures to be maintained at the surfaces of the

specimens, and whether flow of heat is desired to be single-sided

(through either specimen, as selected) or double-sided (through

both specimens). The operator may choose whether the system

should be controlled at constant temperature or at constant power.

Up to nine runs can be programmed at one time, each with unique

conditions of operation.

After the operator has keyed in the information, the computer

begins automatically controlling the experimental conditions and

acquiring data. During this automated sequence, the operator may

view on the computer monitor various plots showing the behavior of

any of the controlled circuits as a function of time. In addition, the operator may change setpoint temperatures and other

control parameters during the run.

Each measurement sequence is divided into three phases.

During phase I, the desired temperatures are established at the

surfaces of the heater plates facing the specimens, using for

temperature control the temperatures sensed by the PRTs. These

temperatures are compared to the thermocouple temperatures of the

main and auxiliary heater plates during Phase I. If a difference

of more than 10 mK exists, the control setpoints are adjusted so

that the desired temperatures are obtained as sensed by the thermocouples on the plate surfaces. When these temperatures and the

main heater power have stabilized within preset limits, the

sequence enters Phase II.

During this second phase thermal conductivity is computed

every three minutes. After the first thirty minutes of Phase II

the main heater power and the calculated thermal conductivity are

examined for stability within specified limits, allowing entry

into the third phase if the stability criteria are met.

In Phase III the operator is allowed to plot on a dot-matrix

printer a permanent record of the history of the various plate

temperatures, the power to the metered heater, or the thermal

conductivity calculated as successive 3-minute time averages.

Then, if the operator does not intervene the computer automat

ically averages the last 30 minutes of data for storage on disk.

Data from any longer interval may be averaged if the operator so

chooses. All of the data from Phase II is saved to disk for later

re-analysis as desired.

9
Table 1 shows the data printed out at the end of a typical

experimental sequence, using a specimen of microporous fumed

silica insulation board. A summary of the conditions of the

experiment is given. Also included are final values of measured

temperatures and temperature differences, heater power, and

thermal conductivity for the experiment. Statistical measures of

the random variations of these quantities, averaged over the

interval of stability at the end of the run, are listed.

Corrected data for sample thickness and main plate area result

from considering thermal expansion of these elements resulting

from heating them from room temperature to the temperature of

measurement; the main plate area is also adjusted to include half

the gap area.

Both Phase I and Phase II have predetermined maximum time

limits. The maximum time limit for Phase I is 5 hours and that

for Phase II is 10 hours. The combined maximum time limit for the

whole experiment is 11 hours. These limits force the run to be

completed after a definite time interval in cases where the

stability requirements are too stringent in the control software.

Typical graphical outputs that may be viewed during the

measurement sequence and printed at the end of the run are given

in figures 4 through 18. They illustrate conditions during

measurement of (arbitrarily chosen) microporous fumed silica

insulation board and correspond to the information given in Table

1. The even-numbered figures 4 through 16 show the behavior of

the system during the initial approach to the respective setpoints

of the various heater plates. The odd-numbered figures 5 through

17 depict the behavior of the system during final stable operation

at the respective setpoints. Figure 18 gives the temperature

history of the thermocouple reference block.

The even-numbered figures 4 through 16 illustrate several

noteworthy aspects of the operation of the control system using

the PID algorithm described in Appendix C. For example, figure 12

shows that the temperature of the main heater was raised by about

110 K in less than 30 min without overshooting the setpoint. Figure 4 shows that during the same interval the output emf of the

gap thermocouple went to zero in about 35 min, also without overshoot. (As the emf of this differential thermocouple went to

zero, the inner guard temperature caught up with that of the main

heater. ) The temperatures of the top and bottom auxiliary heater

plates took a little longer to reach their setpoints, about 55 min

(figs . 8 and 10 )

.

Figure 7 reveals that a less-sensitive level of control was

used for the outer guard: the fluctuations in its temperature are

about +0.3 K. This is quite acceptable since the temperature of

the outer guard is only relatively loosely coupled to that of the

measurement stack.

10
Figure 14 shows that the power to the main heater plate

initially called for by the control algorithm was about 60 W for

the first 25 min, and then dropped rapidly down to about 4 W.

Thereafter the power decreased gradually to the final stable value

of 2.4 W (fig. 15). This represents a range of about one and a

half orders of magnitude of power. In about 60 min a value of

heater power very near the final stable value is reached (a

considerably longer time is of course needed for the whole

experimental stack to come to its stable state). It is also

noteworthy that the power fluctuation amplitude gradually decayed

to relatively small values (± 0.2 W) near the end of the trace in

figure 15. This bbhavior is a direct result of the PID control

algorithm, when operating in the constant-temperature mode.

Figure 13 depicts typical behavior of the final temperature

of the main heater plate during stable operation at the setpoint.

The amplitude of the temperature fluctuations is about + 5 mK.

According to figure 16, the experimental thermal conductivity

is determinable to within about + 10% after about 35 min. This is

cited not to claim any ability to determine thermal conductivity

accurately within this short an interval of time, but rather to

illustrate how rapidly the control algorithm brings the system to

the setpoints desired.

The data illustrated in figure 17, averaged every three

minutes over the last sixty minutes of the run, gave a value for

thermal conductivity of 22.07 mW/(m.K), with a standard deviation

of 0.028 mW/(m.K). This represents a relative deviation of 0.12%,

which is typical behavior for most temperatures of operation.

4. PRIMARY MEASUREMENTS

The measurements required for the computation of average

thermal conductivity k at a temperature T are governed by the

defining equation,

k(T) = Q AX/(A AT)

,

( 1 )

where Q is the rate of flow of heat through the metered portion of

a single specimen, AX is the average thickness of the specimen, A

is the metered area and AT is the mean temperature difference

across the specimen. The value of T associated with the computed

value of k must be carefully defined, as will be discussed below.

The normal mode of operation of the GHP apparatus involves

flow of heat through two sides of the main heater plate through

two matched specimens. This is referred to as the double-sided

mode and results in an average value of k for the two specimens.

We can also adjust the temperature of one of the auxiliary heaters

to match closely that of the main heater, thus minimizing the flow

of heat through the specimen in that direction. This is referred

11
to as the one-sided mode [10] of operation and results in the k

value for the other specimen, through which most of the heat

flows. To accommodate both modes of operation, the following

equation is used to calculate thermal conductivity:

k = Q ^X/(A(^Ti +b.T2 )), (2)

where Q is the total power generated by the metered heater,

flowing through both specimens, and ATi and AT2 are respectively

the temperature differences across the two specimens. In the

special case where either ATi is zero, this reduces to eq(l).

When both AT's are equal we obtain the same expression as that for

the case of one specimen of area 2A, conducting a power Q.

For the one-sided mode either ATi or A

T

2 is small but this

small value can be either positive or negative. The specimen with

the smaller AT is sometimes referred to as the "back" specimen

because its purpose is to minimize the flow of heat from the main

heater plate in the "back" direction, away from the specimen being

measured

.

The term "average thermal conductivity" has been used here to

denote two types of averaging. First, in the double-sided mode

the arithmetic average value of k for the two specimens is

obtained. No information on either specimen individually can be

calculated from measurements in this mode. Second, the value of

k averaged with respect to temperature from the cold-face

temperature, Tc , to the hot-face temperature, Th

,

is obtained in

either the single- or double-sided mode. As a rule of thumb, if

this temperature difference AT between the two faces is less than

10% of the absolute mean temperature of the specimen, (Tc+Th)/2,

the value of k can be assigned to the mean temperature with an

error of less than 0.1%. This is immeasurable, given the current

state of the art in measuring thermal conductivity. If AT is

signif icantly larger, the k value obtained may be measurably

different from the true k value corresponding to that mean temperature. In such cases, the integral method of analysis as described

by Bust and Lankford [11] is used to obtain k as a function of

temperature

.

There is also a third type of averaging involved in the

calculation of k using this apparatus, i.e., an average over time.

This is done to reduce the effect of the imprecision of the

individual readings. The minimum time interval for this averaging

process, occurring in Phase II, has been set to 30 min. During

this period values of temperature are obtained every 3 min; thus

the time-averaged value of T involves a minimum of 10 readings.

The values of potential difference and current needed to obtain

the power, Q, are read every 5s, so the time-averaged value of

power involves a minimum of 360 readings.

12
5. ANALYSIS OF PRECISION^ AND BIAS

The apparatus is designed to determine heat flow through the

specimens under a prescribed set of boundary conditions; from the

heat flow one can subsequently calculate the apparent thermal

conductivity, k, when applicable. The analysis of errors (uncertainties) will be directed toward determining the imprecision and

systematic uncertainty (bias) of k. Errors due to the inapplicability of the definition of k for a particular material and to inhomogeneity within the material will be ignored. Only uncertainties in experimental control and measurement will be considered.

The imprecision and bias of this apparatus were analyzed by

two methods: (a) from a propagation-of -error analysis of the

imprecision and bias inherent in the measurement of each primary

variable, and (b) from the measurement of standard reference

specimens. The propagation-of -error analysis requires detailed

knowledge of the potential errors of each measuring instrument as

well as knowledge of any existing deviations from unidirectional

heat flow and from stability over time. It requires a vast amount

of experimental effort to produce estimates of imprecision and

bias that are reliable. The measurement of standard reference

specimens for estimating imprecision and bias is easier, but for

temperatures above 350 K, no standard reference specimens of

thermal insulation exist at the present time.

5.1 Analysis of Propagation of Errors

The error-propagation formula for the defining equation takes

the form

S.2 = + (||se)2 + (|^Sa)2 + (g^SDX)2 (^SDT)2. (3)

In this relation, S is a standard deviation, the subscript k

represents thermal conductivity, Tm is mean specimen temperature,

Q is heater power, A is area of the metered (main) heater, DX is

the specimen thickness, and DT is the temperature difference

through the specimen. The heater power Q is obtained from the

product of potential difference and current through the main

heater. Strictly speaking only normally distributed errors

(including imprecisions ) propagate according to this formula but

the errors due to biases will be propagated using the same formula

for simplicity. That is, each term of the form of S2 in eq(3)

will represent either S2imp or S2bias. The imprecisions and bias

es of the primary variables are estimated using 95% confidence

intervals (two standard deviations) in the sections below. These

estimates and the resulting estimated imprecision and bias for k

are summarized in Table 2.

13
5.1.1 Rate of Heat Flow

The heat power Q through the specimen(s) is equal under

conditions of stable and unidirectional flow to the power P = Vh Ih

supplied by the heater to the metered area. The potential

difference across the main heater is Vh and the main heater

current is Ih . The uncertainty in Q is the most difficult

uncertainty to estimate of all those for factors determining k.

This difficulty arises not so much through inaccurate measurement

of Vh and Ih as through establishing a flow of heat through the

specimens that is both stable and unidirectional along the

longitudinal axis of the stack.

The value of Vh is measured directly but Ih is obtained from

a measured potential difference Vstd across a standard resistance

Rstd in series with, and carrying the same current as, the main

heater resistance: Ih = Vstd/Rstd. Thus the uncertainty in Q

depends on the uncertainty in the values of Vh , Vstd and Rstd.

The uncertainty in the value Rstd of the standard resistance

is stated in its certificate of calibration and is of the order of

parts per million. The two values Vh and Vstd have negligible

instrumental bias because the DVM’s used to measure them are

calibrated. The instrumental imprecision of these potential

differences is estimated as or 0.001%, when measuring power,

values of potential typically ranging from 0.1 to 6 V. For

thermocouple emfs of 10 pV the imprecision is 0.2%.

One possible systematic error in Vh depends on where the

potential leads are attached to the main heater resistance; for

the corresponding potential difference to be correct the heat

flowing through the metered area must be precisely the energy

dissipated in that portion of the heater resistance wire between

the potential taps. If for example the potential leads were

attached too close to the center of the metered resistance wire

then more heat would be dissipated within the metered area than

would be calculated from the measured potential difference between

the leads. This error (bias) is estimated to be less than 0.13%.

In practice a far more serious error in determining Q lies

in the assumption of unidirectional heat flow from the main heater

through the metered areas of the specimens. If the metered area

were surrounded by a guard area at exactly the same temperature

then no heat would be lost from the metered area to the guarded

area, along the radial direction. The flow of heat would be unidirectional, and along the direction of the symmetry axis of the

stack ( axial )

.

Obtaining this condition is attempted by controlling the

heater power for the metered area with the output of the

differential thermocouple (DTC) bridging the gap between the

metered area and the primary guard, as described earlier in Sect.

2.1. This DTC contains twenty pairs of junctions to increase its

sensitivity to temperature imbalances. The control circuitry

14
attempts to regulate the guard heater power so that the output of

the DTC is zero. In practice this output randomly deviates from

zero with an imprecision of about + 2 mK.

An estimate of the effective thermal conductance across the

gap yields a value of 85 mW/K of imbalance due to conduction

through air in the gap. An estimate of the effective radiant heat

transfer gives a value of about 40 mW/K of imbalance at room

temperature, and a worst-case value of about 600 mW/K due to

radiation (at a mean temperature of 750 K, the highest temperature

usable in this apparatus). Convection is made negligible by the

use of mineral fiber insulation in the gap. Conduction through

the thermocouple wires bridging the gap is also negligible due to

their resistivity and small diameter.

For a total value of about 125 mW/K of imbalance at room

temperature, and a value of 690 mW/K at 750 K, the random

temperature fluctuation of + 2 mK is found to lead to random heat

power fluctuations across the gap of 1.4 mW at 750 K. For these

worst-case conditions of high temperatures and high radiative

transfer across the gap as assumed here, powers are at least 2.5 W

even for very good insulators, so these random fluctuations are

less than 0.1% of the heater power. This represents an

imprecision of 0.1% in the apparent thermal conductivity

.

There is some evidence for a systematic unbalance of temperature between different points on the main heater, based on

information (Table 1) on the emfs from the "top" and "bottom"

halves of the control thermopile, each half containing ten elements. These emfs often differ by about 1.0 (0.004 K) when

operating at temperatures near 300 K and by about 25 pV (0.07 K)

when operating at 750 K. The temperature differences across the

gap can be assumed to be nearly equal to these temperature

differences, 0.004 K and 0.07 K. These would indicate, from the

sensitivities of 125 mW/K at 300 K and of 690 mW/K at 750 K,

imbalances in the heater power of 500 mW at room temperature, and

50 mW at 750 K, due to loss across the gap.

Typical metered powers are at least 1 W at room temperature

and 2.5 W at 750 K; the estimated systematic error in power could

then be 0.05% at room temperature and 2% under worst-case

conditions at 750 K. The typical systematic error in power at 750

K is estimated to be 1.5%.

From data such as those shown in Table 1, under dynamic

control the imprecision in power Q is found to be typically 0.2%,

and seldom worse than 0.5%, at room temperature. At 750 K the

imprecision in power rises to typically about 0.5% and is seldom

worse than 0.7%.

15
5.1.2 Thickness and Area of Specimen

For a given assembly of the stack, the thickness and metered

area of the specimen do not vary with time except as they are

affected by thermal expansion. Compression of the specimen is

limited by the use of spacers. For the conditions of thermal

stability under which data are obtained, any thermal expansion

taking place within the stack is negligible. Thus the

imprecisions of the thickness and of the area are taken to be

negligible

.

The bias, however, is affected by length measurements performed at room temperature and by the degree of validity of the

thermal expansion corrections. Changes in spacer lengths and in

the diameter of the metered area are allowed for as the stack is

heated to the temperature of measurement. The specimen thickness

is estimated to be correct to within 0.08 mm as determined by the

spacer thicknesses, whose lengths are nominally 25 mm. This

yields a relative error (bias) of 0.3%. The area of the specimen,

including the gap correction, is estimated to be correct to within

1 cm2. For a total metered area of 128.9 cm2 this represents a

relative error of 0.8%.

5.1.3 Mean Temperature of, and Temperature Difference Across

the Specimen

The precision and bias of the temperature difference across

each specimen is affected somewhat by instrumentation read-out

errors and calibration errors, but primarily by effectiveness of

thermal anchoring of the thermocouples, uncertainty in the

location and orientation of the effective plane containing the

thermocouple beads, and deviations from planarity of the isotherms

within the specimen, or equivalently, deviations from rectilinearity of the heat flux lines. Dynamically the imprecision in

temperature is affected by the quality of control maintained by

the control system.

The domestic water supply is varies by about 0.7 K during the

course of a given experiment, and causes fluctuations of about

+ 10 mK at the surface of the specimen. This is acceptable.

The instrumentation bias is negligible due to calibration of the

instruments. It is estimated to be less than 0.01% of the

temperature. Since the thermocouple calibration is based on an

equation the calibration imprecision is negligible. Calibration

bias is estimated to be less than 0.04%. Errors in the

temperature difference caused by inadequate thermal anchoring of

the thermocouples are difficult to assess analytically . This bias

is difficult to separate from errors caused by heat loss as

described in the next section. The bias caused by uncertainty of

the thermocouple measurement plane is estimated to be 0.6% of the

temperature difference. Thus the total bias in mean temperature,

and also of the temperature difference through the specimen.

16
summed in quadrature, is estimated to be 0.85%. From data such as

that shown in Table 1, summarizing the experimentally observed

data and their statistical variation under dynamic control over

the time used to calculate the thermal conductivity, the

imprecisions due to dynamic variations in T and in AT are found to

be 0.02%. Combined with the imprecision in reading the TC emfs,

this yields 0.1%.

Combining in quadrature the dynamic imprecisions in temperature, power, thickness, area (the last two having negligible

imprecision) and temperature difference, we find the imprecision

in thermal conductivity to be 1% at 300 K and 5% at 750 K.

5.2 Error Analysis from Experimental Measurements

Several different experimental comparisons have been made to

assess the experimental imprecision and bias of this hightemperature GHP apparatus

.

5.2.1 Experimental Reproducibility

Thermal conductivities were repeatedly measured for a claybonded fibrous alumina-silica thermal insulation board under consideration for adoption as a high-temperature SRM. The imprecision of these results with removal and re-installation of the

specimens in new orientations is 0.5% at 300 K.

5.2.2 Measurements on a Fibrous Glass Insulation SFiM

One series of comparison measurements of thermal conductivity

was made on a pair of specimens of SRM 1450b fibrous glass

insulation board from a lot certified in 1982 [3]. This thermal

resistance SRM has a nominal thickness of 2.54 cm and a density

of 137 kg/m3 . This SRM was established on the basis of

measurements made here in 1980 using the earlier low-temperature

guarded-hot-plate apparatus as well as those made at ambient

temperature by NBS in Gaithersburg [1,2, 4, 5]. The experimental

data obtained for thermal conductivity as a function of temperature was compared with values obtained from the polynomial

published in the SRM certification document [3].

Figure 19 shows thermal conductivity data obtained with the

high-temperature guarded-hot-plate apparatus and at temperatures

from 300 to 345 K, compared with the functional dependence from

the fibrous glass SRM certificate. The deviation plot for these

data, shown in figure 20, reveals a slight systematic bias between

the data points and the thermal conductivity function, but ^he

agreement between data and function is better than 1.8%, about the

same as the imprecision projected from the above error-propagation

analysis

.

17
5.2.3 Experiments with Offsets in Temperature of Guard Heaters

Experiments were performed in which the temperature of either

the outer guard or the inner guard was deliberately controlled at

a setpoint different from the normal one. This condition of

operation is called a guard offset. It allows us to assess the

effects on measured thermal conductivity of small random or

systematic deviations of a guard from its setpoint, which may

occur during a normal experiment.

5. 2. 3.1 Outer-Guard Offsets

In the course of experiments on fibrous alumina-silica

insulation board, the outer guard was controlled at offsets of

+ 20 K while operating at a mean specimen temperature of 573 K.

The power supplied to the main heater, which is proportional to

the thermal conductivity, is plotted in figure 21 for each outerguard offset.

When the outer guard is lower in temperature than the mean

specimen temperature (-20 K offset), under stable control the main

heater is required to supply slightly more power in response to

the resulting loss from the stack, and conversely. For this

effect the sensitivity coefficient is -0.02 mW/K. Thus if the

outer guard temperature were not equal to the mean specimen

temperature, the error in metered power passing through the

specimens would be 0.02 mW/K of offset. This offset would produce

an error of 0.05% in the value of k for a 1 K offset when

measuring a low-conductivity insulation having a (typical) k-value

of 40 mW.

For insulation materials of higher conductivity, requiring

higher heating power to maintain the desired gradient, the error

due to such an outer guard offset would be less at the same mean

temperature. In this case the temperature distribution within the

elements of the stack would still be the same, and so conductive

losses from the stack to the surroundings would be unchanged,

while being a smaller fraction of the required increased power.

Figure 7 shows that the random fluctuations in temperature of

the outer guard under stable control are ± 0.4 K. If the main

heater could follow the outer guard temperature as rapidly as the

fluctuations occur, the resulting power fluctuation would be

+ 0.01 mW. The heat capacity of the heater plate however does not

allow it to fluctuate at the frequency observed in figure 7.

We believe that any outer-guard offsets occurring during

normal operation at temperatures near room temperature are much

less than the deliberately produced offsets. However, at

temperatures near the upper end of the range of operation of this

apparatus, it is possible that there could be offsets in the

temperature of the outer guard of about 10 K. This is based on

the observation of differences between the temperature of the

18
controlling PRT and the measuring thermocouple of the top and

bottom auxiliary heater plates, when operating at 750 K.

5. 2. 3. 2 Inner-Guard Offsets

During experiments on fibrous alumina-silica, and at a mean

specimen temperature of 573 K, offsets were made to occur in the

output emf of the gap thermocouple between the main heater plate

and the inner-guard heater (inner-guard offset). This was done by

altering the control software so as to shift the inner-guard

setpoint from its usual value of 0 p.W

.

The power supplied to the

main heater for each of the two inner-guard offsets is plotted in

figure 22, along with the zero-offset value.

Consider the case when the inner guard has a lower

temperature than the main heater (-40 pV offset). Then under

stable control the main, metered heater is required to supply

slightly more power in response to its loss to the guard.

Conversely, if the inner guard is higher in temperature than the

main heater, the main heater will consume less power as it gains

power from the guard. The sensitivity coefficient for this effect

is -0.6 mW/|iV, for the twenty- junction differential thermocouple

used, having a twenty-fold amplified sensitivity. Thus the

sensitivity per junction is -0.03 mW/;aV, equivalent to 0.9 mW/K.

If the inner guard tempera-ture were not equal to the temperature

of the main heater, the error in metered power passing through the

specimens would be 0.9 mW/K of offset in the differential control

thermocouple. This offset would produce an error of 2% in the

value of k for a one kelvin offset, but only 0.1% in the value of

k for a one microvolt offset in the emf of the control

thermocouple, when measuring a low-conductivity insulation having

a (typical) k-value of 40 mW.

From figure 5 it is noted that the random fluctuations in

temperature of the inner guard under stable control are ±1.5 pV.

If the main heater could follow the inner guard temperature as

rapidly as the fluctuations occur, the resulting power fluctuation

would be +0.05 mW. This fluctuation amplitude, if realized, would

be equivalent to a fluctuation of + 0.1% in the value of the

thermal conductivity. The heat capacity of the main heater plate,

however, does not allow it to fluctuate at the frequency observed

in Figure 6.

We think that any inner-guard offsets occurring during normal

operation at temperatures near room temperature are much less than

the above deliberately produced offsets.

No information on the acually existing offsets is avaiiabji-^

at present. The temperature difference in the specimen must bgreater than or equal to 10% of the absolute temperature to av- i other instrumental errors. Thus the effect of errors in me'*'‘ r’ '. power due to biases in controlling the inner guard is believed t be negligible, for operation at room temperature, and of the rd' r of 1% at 750 K.

19
5.2.4 Zero-Gradient Measurements

Inspection of the defining equation (1) for thermal

conductivity shows that k is determined from the ratio of Q to AT.

A 1% error in either Q or AT would propagate a 1% error into k.

Using only one kind of specimen (fixed thermal conductivity), it

is impossible to separate experimental errors in measuring Q from

errors in measuring AT by examining the experimental thermal

conductivity. In order to judge whether the present apparatus

suffers predominantly from experimental errors in Q, or in AT, or

in both, "zero-gradient" measurements on different pairs of

specimens of widely different thermal conductivity can however be

very informative.

These zero-gradient measurements are made with the control

system programmed to keep the two opposite surfaces of the specimens at the same temperature. Under dynamic control the thermal

gradient in the specimen under these operating conditions is not

exactly zero, so the system may call for a small amount of power

to the main heater. From conventional measurements performed

separately, the thermal conductivity of the specimen is known as a function of temperature. This knowledge allows us to compute the

amount of heat required to flow by thermal conduction from the

main heater through the specimens at the given gradient and mean

temperature for the conditions of operation.

We could then assume that any difference between this heat

and that actually supplied by the main heater is due to errors in

determining the true temperature difference in the specimens. On

the other hand, we can assume that any difference between this

heat and that supplied by the main heater is a measure of the heat

loss from the main heater due to experimental error in meeting the

conditions of stable, unidirectional flow of heat along the

longitudinal axis. It could possibly be due to conduction of heat

from the metered heater out of the stack along thermocouple or

heater leads, for example. This difference is called the zerogradient heat.

Figure 23 shows the zero-gradient heat for specimens of

fibrous glass SRM insulation board at temperatures from 293 K to

343 K. The line was fitted to the points by a linear least-squares

routine

.

The intersection of the line with the abscissa at T = 290 K

was forced, for the following reason. The electrical leads into

the thermal conductivity stack lie near a large baseplate which is

water-cooled to about 290 K and cools the leads. Thus 290 K is a

"best estimate" of the temperature of the leads, and is consistent

with the behavior shown by the data points. At the conditions of

zero gradient, there should be no exchange of heat between the

stack and the surroundings for a stack temperature of about 290 K.

For higher stack temperatures it should be necessary to supply

20
heat to the stack. This is illustrated by figure 23. The slope

of the fitted line is found to be b = 97 mW/K.

Figure 24 shows the zero-gradient heat for specimens of

fibrous alumina-silica insulation board, having approximately the

same thermal conductivity as the previously mentioned fibrous

glass board. The intersection of the fitted line with the

temperature axis at T = 290 K was also forced, as explained above.

The slope of this fitted line is found to be b = 87 mW/K, in good

agreement with that of the data for the fibrous glass board. Thus

both materials have approximately the same sensitivity to rise in

mean temperature above T :: 290 K.

Both figures consistently indicate the presence of a small

but measurable loss of heat from the stack, or apparatus error,

increasing in direct proportion to the difference between the mean

temperature of the stack and the surroundings.

Additional light is shed by measurements in which the temperature difference £ikT is varied, holding the mean temperature

constant. Such data were obtained on a pair of specimens of

microporous fumed silica insulation board. At a mean specimen

temperature of 673 K consistent values for the thermal conductivity could be obtained only for AT ^ 80 K. For AT less than this

value, the experimental thermal conductivity increased roughly

hyperbolically as AT was reduced. Similar behavior was observed

for a mean temperature of 523 K.

The asymptotic value of thermal conductivity at a given mean

temperature for large AT is independent of AT and is therefore

the more reliable estimate of the true value. We can calculate

the difference between the experimental value of k at low AT and

the constant value at large AT. This is an error in measurement

of k for that mean temperature. If we assume that this error is

due entirely to error in measuring Q, we can then calculate this

value of power corresponding to the error in k, from knowledge of

T and AT, for each AT.

In so doing, for all values of AT used we found a roughly

constant value of Q = 29 ± 4 mW for T = 673 K, and a roughly

constant value of Q = 6 + 2 mW for T = 523 K. Under the

assumption that this error in Q is the sole contributor to error

in measuring k, we can compare it to the values of zero-gradient

heat (Qzg ) from figure 24. This was assumed to be due to loss of

heat from the stack by conduction along leads, and therefore

independent of specimen conductivity.

Figure 24 shows that at T = 523K, Qzg is 20 mW, with an

uncertainty from the figure of + lOmW; extrapolating to T := 673,

Qzg is 33 + 10 mW. These values lie in rough agreement, within

experimental error, with the values found above from thexperiments with decreasing AT. Thus both experiments ar-- consistent with the assumption that there is a small heat

from the stack to the surroundings, that is greater as the mean

21
stack temperature is increased, and that contributes to error in

determining k accurately. Experimentally it was determined that

values of T of at least 10% of the absolute mean temperature must

be used to minimize the error due to this heat leak.

5.2.5 Comparative Measurements

5. 2. 5.1 Comparison With Results From Round-Robin Measurement

Programs

During the summer of 1987 an interlaboratory comparative

measurement program was organized which involved participation by

NBS-Boulder and six industrial laboratories [12]. Thermal conductivity was measured for specimens of fibrous alumina-silica insulation board, and for specimens of calcium silicate insulation

board, both types having a nominal thickness of 2.5 cm. For the fibrous alumina-silica insulation the standard

deviation of 58 test results from the seven labs was 9.3%. The

data from the apparatus described in this report (X’s) lay within

7% of the group mean over a range of temperature from 300 K to 770

K (figures 25 and 26). Since the specimens were different, no

great weight should be placed on the 7% difference.

For the calcium silicate insulation board the standard

deviation of 48 test results from the seven labs was 9.1%. The

data from this apparatus lay within 5% of the group mean over the

same range of temperature, 300 K to 770 K (figures 27 and 28).

Little weight should be given to the 9% difference, for different

specimens

.

5. 2. 5.

2

Comparison With Measurements at an Industrial Laboratory

In an in-house calibration and standardization program at an

industrial research and development laboratory, measurements of

thermal conductivity were made on refractory alumina-silica

fibrous insulation board similar to that used in the round robin

measurement program described above. Data over a range of

temperature from 300 K to 1150 K were found to fit the following

correlation by Mitchell [13], to within + 3.5%:

ka = 0.0142 + 9.167 TxlO- 5 + 2.776 T3xl0-n W/(m.K). (4)

Figure 29 shows measurements on this apparatus (circles)

compared with the above correlation relation (solid line). Figure

30 gives the relative deviation between the experimental data for

this apparatus and the correlation equation. There is a systematic difference between the two of approximately 4%.

22
6. SUMMARY

This report describes the design and performance of an automated guarded-hot-plate apparatus built to meet the requirements

of ASTM standard test method C-177 for measuring the thermal

conductance of thermal insulation. The apparatus is capable of

measuring thermal conductivity over a range of temperatures from

ambient up to 750 K.

Important features of the design and construction of this

apparatus are the following:

(1) An improved algorithm for the control sequence leading to

stable heater powers and specimen temperatures was developed.

Initially it rapidly approaches the temperature setpoint with

minimal overshoot. It also permits very sensitive control of the

plate temperatures in later phases of the measurement sequence

when thermal stability of the specimen boundaries is very

important in measuring the thermal conductivity with high

precision. This high precision of control in turn leads to very

good reproducibility of measurements under the same nominal

conditions, as has been verified experimentally.

(2) A novel thermocouple design is used which more accurately

senses the average temperature over the surface of each heater

plate in the apparatus. This design leads to greater accuracy

because more points of the surface are sampled. This in turn

leads to more accurate control of the absolute temperature of the

plate surfaces and of the adjoining surfaces of the specimens.

Consequently the measurement of thermal conductivity with this

instrument is also more accurate. The arrangement also leads to

greater precision in measuring temperature because the design

incorporates a thermopile arrangement which multiplies the effect

of any temperature differences across the area sampled by the

sensor

.

Measurements are described which help to assess the precision

and bias of the apparatus. These measurements involve the use of

standard reference materials and participation in round-robin

measurement programs . Data from this apparatus are compared with

measurements on similar materials reported in the literature.

23
Error-propagation analysis suggests the estimated imprecision

in measurement of thermal conductivity is 0.6%. The

experimentally observed imprecision under dynamic control of the

automated system is 1% near room temperature, rising to 5% at the

upper end of the temperature range. The reproducibility of the

apparatus is found experimentally to be about 1.2%. Participation

in a round-robin measurement program on fibrous board insulations

showed results from this apparatus to lie within 5% and 7% of the

means of all participating laboratories for two different

materials. No great weight should be given to this deviation

since specimens measured by the round-robin participants were

different from the ones we measured. Measurement by an industrial

laboratory on one similar material agreed within 4% of the

results from this apparatus.

24
7 . REFERENCES

[1] Siu, "Fibrous Glass Board as a 'Standard Reference

Material for Thermal Resistance Measurement Systems", Symposium on Thermal Insulation Performance , ASTM STP 718, pp. 343-

360 (ASTM, 1980).

[2] Smith, D.R. and Hust, J.G., "Effective Thermal Conductivity

of a Glass Fiber-Board Standard Reference Material", NBSIR

81-1639, (U.S. National Bureau of Standards, 1981).

[3] Siu, M.C.I. and Hust, J.G., "Standard Reference Material

1450b, Thermal Resistance-Fibrous Glass Board", National

Bureau of Standards Certificate (Office of Standard Reference

Materials, NBS, Gaithersburg, MD, 1982).

[4] Smith D.R. and Hust, J.G., "Effective Thermal Conductivity of

Glass-Fiber Board and Blanket Standard Reference Materials",

Thermal Conductivity 17: Proceedings of the 17th International Conference on Thermal Conductivity . Hust, J.G., Ed.,

pp. 408-410 (Plenum, NY, 1983).

[5] Hust, J.G., "Standard Reference Materials-' Glass Fiberboard

SRM for Thermal Resistance", NBS Special Publication 260-98

(U.S. National Bureau of Standards, Aug. 1985).

[6] Hust, J.G., "Standard Reference Materials: Glass Fiberblanket

SRM for Thermal Resistance", NBS Special Publication 260-103

(U.S. National Bureau of Standards, Sep. 1985).

[7] Smith, D.R., Hust J.G. and Van Poolen, L.J., "A Guarded-hotPlate Apparatus for Measuring Effective Thermal Conductivity

of Insulations Between 80 K and 360 K" , NBSIR 81-1657 (U.S.

National Bureau of Standards, 1982).

[8] Standard Test Method C 177 for "Steady-State Heat Flux Measurements and Thermal Transmission Properties by Means of the

Guarded-Hot-Plate Apparatus", 1986 ANNUAL BOOK OF ASTM STANDARDS . Vol. 04.06, pp. 21-36, (ASTM, Philadelphia, 1986).

[9] Standard Practice C 1045-85 for "Calculating Thermal Transmission Properties from Steady-State Heat Flux Measurements",

1986 ANNUAL BOOK OF ASTM STANDARDS . Vol. 4.06, pp. 689-696,

(ASTM, Philadelphia, 1986).

[10] Standard Practice C 1044-85 for "Using the Guarded-Hot-Plate

Apparatus in the One-Sided Mode to Measure Steady-State Heat

Flux and Thermal Transmission Properties", 1986 ANNUAL BOOK

OF ASTM STANDARDS . Vol. 4.06, pp. 685-688 (ASTM, Philadelphia,

1986)

.

25
[11] Hust, J.G. and Lankford, A.B., "Comments on the Measurement

of Thermal Conductivity and Presentation of a Thermal Conductivity Integral Method", Int. J. of Thermophysics 3/1 . 67-77

(1982)

.

[12] Hust, J.G. and Smith, D.R., "Round-Robin Measurements of the

Apparent Thermal Conductivity of Two Refractory Insulation

Materials Using High-Temperature Guarded-Hot-Plate Apparatus"

NBSIR 88-3087, (U.S. National Bureau of Standards, May 1988)

[13] Mitchell, H. , "The Development of a Refractory Fiber Insulation for Use As a High Temperature Thermal Transmission

Calibration Sample". In press: Proceedings of the 19th International Conference on Thermal Conductivity . Yarbrough, D.

,

Ed. (Plenum, N. Y.

,

1988) .

26
zo

3

CO

ENVIRONMENTAL CHAMBER

LIQUID COOLED SHROUD

OUTER GUARD

INSULATION FILL

TOP COLD PLATE

TOP AUXILIARY HEATER PLATE

SPECIMEN

SPECIMEN

BOTTOM AUXILIARY HEATER PLATE

BOTTOM COLD PLATE

HEATER OFFSET INSULATION

INNER GUARD

HEATER

PLATE

MAIN HEATER PLATE

(METERED SECTION)

HEATER OFFSET INSULATION

zo

3

00Z

— INSULATION FILL —

BASE

Figure 1. Layout of thermal conductivity stack, guards. shroud and environmental chamber of the NBS

high temperature guarded~hot ~plate apparatus

27
MRIN

nPPnRflTUS

ELECTRONICS

RRCK o

Shcoo

^4 <T5 O 4^ «H <0 T3 e

0) <H P O

(0>»

C

W

O

•H

O 4J •H -H C in O -HD

+3 D< O O

<D (Q

(D T3a

<0

<DU3P

bO (0

(0

U

-H <D T3 ftB(1) -PO O6duoo

r—I m

d)3

•H

28
LINE KEY : POWER LINES : DATA LINES :

TO

POWER

PLUG

TO

ZONE

30X

Figure 3. Detailed block diagram of control and data

acquisition within the "main apparatus" block

of Figure 2

29
tc

EMF

CtnIoroV)

FILE me I FGiLeoa HUN DATE I 13 Mow 1917 eai34i96

TIME CriENUTES)

Figure 4. Output emf of gap thermocouple, between inner

guard and main heater, vs. time: behavior during

initial approach to set-point

Figure 5. Output emf of gap thermocouple, between inner

guard and main heater, vs. time: behavior during

stable operation at set-point
r\U

Q.U

I-Q

(-

ft:

o

FILE me I roLeoa

nUN DRTE I 13 Nov 1917 89i34ia6

TIME CniNUTES)

Figure 6. Temperature of outer guard, measured by resistance thermometer, vs. time: behavior during

initial approach to set-point

u

0.

z;

o

o

27C

275.5

jr 275 n

Iq: 274.5

274

273.5

180 200

FILE me I FEILe94 RUN H)TE I 13 Mov 1817 rei3Si25

220 240 260

TIME (MINUTES)

280 300

Figure 7. Temperature of outer guard, measured by resistance thermometer, vs. time: behavior during

stable operation at set-point

31
3HB

U

Q.

z:u

n

to;

Q.

IE

9.P. (d«BC> - 285 , 3. (UyOfTSCTl - 285 , 0FFSET - 0

0 20 40 60 80 100 120

FILE WK I roLeea

HIM onn: ii Ww isi? eai34i»

TIME CniNUTES)

Figure 8. Temperature of top auxiliary heater plate,

measured by resistance thermometer, vs. time:

behavior during initial approach to set-point

r nx wy I FEa.eM^_^

ijviik iS •ov ISS7 iSiZSiA

TIME (MINUTES)

Figure 9- Temperature of top auxiliary heater plate,

measured by resistance thermometer, vs. time:

behavior during stable operation at set-point

32
u

D.

z:uiQ

tCt

E

m

FILE me • FERjeoa HIM imrE i II Mw t«i7 eaiB4i8*

TIME (MINUTES)

Figure 10. Temperature of bottom auxiliary heater plate,

measured by resistance thermometer, vs, time:

behavior during initial approach to set-point

u

E

ru

n

ct

n_E

m

225. ttd

225.025

225.02

225.015

225.01

225.005

225

224.333

224.33

224.335

224.38

224.375

224,37

180 200 220 240 260 280 300

FILE WME • rE3LeS4 HUN DfirE I la Hov LSI? 10f26f25 TIME (MINUTES)

Figure 11. Temperature of bottom auxiliary heater plate,

measured by resistance thermometer, vs. time:

behavior during stable operation at set-point

33
Q.E

n

(-

or

CLI

C

0 20

rnx WK • rEiLesa RIM Dnix I t3 Mov 1917 eSi34taS

40 60 80

time; (MINUTES)

100 120

Figure 12. Temperature of main heater plate, measured by

resistance thermometer, vs. time; behavior

during initial approach to set-point

u

a.

71U

Q

(E

0.X

r:

22G. IBS

a2B.l7S

22S. I?

2ZE.LB3

22E. 16

2Z6. LSS 300 320 340 360 380 400 420

PILE NHC I rOLllB

onrc • 29 Hp*- 94i24f37

TIME (MINUTES)

Figure 13. Temperature of main heater plate, measured by

resistance thermometer, vs. time: behavior

during stable operation at set-point

34
80

i/> (-Ia:3

o:o

Q-Z

M

IEE

rnx MME • roLen

RUN SHTE • II Hmt tM7 ORiKiW

TrnE cniNUTES)

Figure 14. Main heater power vs. time: behavior during

initial approach to set-point

1.13

in

a:Z

X

Ulzo

Q.z

M

IT

1 . 12S

1 . 12

1 . 1 IS

1 . 1 I

1 . IBS 350 360 370 380 390

FILE r«K I (^ILna

PUN DRTE I Hpr im Mt24i37

TIME (MINUTES)

400 410

Figure 15. Main heater power vs. time: behavior during

stable operation at set-point

35
7BB

690

^ 5B0

£\^ 4B0

b

P

3B0 z

O

2BB r

a:^

IBB

tB

0 20 40 60 80 100 120

file; wk I FEiijeBa RUN sun; • la mw i9i? eai34i36

TIME (MINUTES)

Figure 16. Experimental thermal conductivity, calculated

from main heater power, specimen area and

temperature gradient, vs. time: behavior during

initial approach to set-point

350 360 370 380 390

file; WRK FE1L119 RUN DHTE ai Hpr- 1919 a«ia4t37 TTMC (MINUTES)

400 410

Figure 17. Experimental thermal conductivity, calculated

from main heater power, specimen area and

temperature gradient, vs. time: behavior during

stable operation at set-point

36
RET.

BLOCK

TENP,(C)

19.7

i9.es

19.

C

19.5S

19.5

19.45

!9.4

19.33

19.3

19. S5

19.

Z

19. 15

19. I 180 200 220 240 260 280

1 Siwt u*iit I LS MOV 19S7 leiSSif?

TIME (MINUTES)

300

Figure 18. Temperature of thermocouple reference block,

measured by resistance thermometer, vs. time

37
Thermal

Conductivity^

mN/m.

Temperature, K

Figure 19. Thermal conductivity of fibrous glass insulation

SRM 1450b compared with certification function

for k(T) (solid line)

38
VOOI (

Temperoture, K

Figure 20. Relative deviations of thermal conductivity of

fibrous glass insulation SRM 1450b, compared with

certification function for k(T)

39
MAIN

HEATER

PONER,

mW

OUTER GURRD OFFSET, DEGREES GELSIUS

Figure 21. Main heater power supplied to specimens of fibrous

alumina-silica insulation board, for outer-guard

offsets of + 20 K

40
MRIN

HERTER

PONER,

mN

INNER GURRD OEESET, uV

Figure 22. Main heater power supplied to specimens of fibrous

glass insulation board for inner-guard offsets of

+ 40 uV

41
ZERO-GRADIENT

HEAT,

mW

Figure 23. Zero-gradient heat vs. temperature, for fibrous

glass insulation board

42
ZERO-GRADIENT

HEAT

Figure 24. Zero-gradient heat vs. temperature, for fibrous

alumina-silica insulation board

43
Thermal

Conductivity,

mN/m.

Temperature, K

Figure 25. Thermal conductivity round-robin test results for

fibrous alumina-silica. The solid curve is calculated from k(T) = 15 . 98+0 . 1003T + 3.053x10-8 T3

44
)

100/x

Figure 26. Deviations of thermal conductivity round-robin

test results from values calculated for fibrous

alumina-silica, using the relation given in caption

to Figure 25

45
Thermal

Conductl

vt ty

,

mN/m.

Temperature, K

Figure 27. Thermal conductivity round-robin test results for

calcium silicate. The solid curve is calculated

from k(T) = 70.67 + 0.01878 T + 5.796x10-8 T3

46
VOOl (

Temperoture, K

Figure 28. Deviations of thermal conductivity round-robin

test results from values calculated for calcium

silicate, using the relation given in caption to

Figure 27

47
Figure 29. Thermal conductivity of refractory fibrous aluminasilica insulation board (circles) compared to

functional correlation of Mitchell [8]

48
OOOO

O®

ODOOOOOO

oo

6 I

' i-r

(0 -8 3.5

2.5

8

o

o 8

8

o o

o

o

o o o

OOqO

o o

\ \ s ... A ... s \ 300 350 400 450 500 550 600 650 700 750

Temperature, K

Figure 30. Relative deviation of thermal conductivity data

from functional correlation of Mitchell

49
Table 1 . Typical data summary as printed at end of a

measurement sequence

FILE NAME : FSIL094

13 Nov 1987 10:26:25 OPERATING MODE : DOUBLE SIDED

USER DETERMINED STABILITY AT : 1 .3 min. ; TOTAL RUN TIME : 293 min.

SRM CANDIDATE: FUMED SILICA

GENERAL FILE SPECIFICATIONS:

SAMPLE THICKNESS (cm) ; UNCORRECTED= 2.523 , CORRECTED^ 2.533

MAIN PLATE AREA <cm^2) ; UNCORRECTED= 123.505 , CORRECTED= 128.909

AREA DENSITY <kg/m"2)= 7.70A , CORRECTED BULK DENSITY <kg/m"3>= 304.06^

PLATE SPACER MATERIAL : STAINLESS STEEL

FILL GAS : AIR , PRESSURE (romHg) = 629

SPECIMEN AND SPECIMEN GUARD CODES : TOP SPECIMEN CODE : FUSIL-1

TOP GUARD CODE : NONE

BOTTOM SPECIMEN CODE : FUSIL-2

BOTTOM GUARD CODE : NONE

CORRECTED AVERAGE PLATE TEMPERATURES (degC) AND TEMP. CORRECTIONS:

UPPER AUX. PLATE TEMP.= 226.983 , STD. DEV. = .007

TEMP. CORRECTION=-.0971 , dT/dt <deg/hr)= .0326

UPPER MAIN PLATE TEMP.= 324.5048 , STD. DEV. = .0056

TEMP. C0RRECTI0N=-.1753 , dT/dt <deg/hr)= .0318

LOWER MAIN PLATE TEMP.= 324.3238 , STD. DEV. = .0058

TEMP. CORRECTION=-.0876 , dT/dt(deg/hr)= .0339

LOWER AUX. PLATE TEMP.= 226.587 , STD. DEV. = .0045

TEMP. CORRECTION=-1 .2749 , dT/dt (deg/hr)= .0016

UPPER delta T= 97.5217 , STD. DEV. OF MEAN= .0027

LOWER delta T= 97.7368 , STD. DEV. OF MEAN= .0022

TOTAL delta T (T2-T1 +T3-T4)= 195.2586

STD. DEV. OF DelT = .0117 , 7. STD. DEV. OF DelT = 0

STD. DEV. OF THE MEAN= .0035 , 7 STD. DEV. OF THE MEAN = .0018

AVG. MAIN HEATER PLATE POWER (mW>= 2398.518

STD. DEV. OF Q = 13.354 , 7 STD. DEV. OF Q = .55

STD. DEV. OF THE MEAN = .702 , 7 STD. DEV. OF THE MEAN = .029

dP/dt(mW/hr)=-6.977

DATA AVERAGING INTERVAL : 30 MINUTES

START POINT OF INTERVAL : 262.1 MINUTES

FINAL HEATER RESISTANCE : 5.1361 OHMS

IG THERMOPILE FINAL READINGS : UPPER PILE : 11.5 microvolts

LOWER PILE : -9 microvolts

TOTAL PILE : 2.1 microvolts

Thi (degC) = 324.4143 , Tlo (degO = 226.785 , delT= 97.6293

AVG. TEMP.(C) IS : 275.600 , THERMAL COND. (k) = 24.14 mW/(m»K

STD. DEV. OF k = .134 , 7 STD. DEV. OF k = .55

50
Table 2. Estimates of random variations and systematic uncertainties in measured quantities at room temperature.

A. Measurements at 325 K (52°C)

(Rh = 3.73 ohm; TC sensitivity: 29 |iV/K)

Primary Variable Value Uncertainty Imprecision

V 2. 38 V 10 pV 10-3 %

I 0.63 A 1 jaA 10-3 %

TC emf 836.0 juV 1 pV 0.1 %

Q 1.50 W 0.07 W 0.5 %

A 129.1 cm2 1 . cm2 0.0 %

2.61 cm 0.01 cm 0.0 %

LT 29.00 K 0.005 K 0.02 %

T 325.00 K 0.05 K 0.02 %

k 52.6 mW/m- K 0.25 mW/(m- K) 0.5 %

>. Measurements at 750 K (477oC)

(RH = 5 .71 ohm; TC sensitivity: 38 .4 pV/K)

Primary Variable Value Uncertainty Imprecision

V 6.48 V 10 pV 10-3 %

I 1. 14 A 10 pA 10-3 %

TC emf 15.9 mV 1 pV 0.01 %

Q 7.40 W 0.05 W 0.7 %

A 129.1 cm2 1 . cm2 0.0 %

2.61 cm 0.01 cm 0.0 %

tXT 75.00 K 0.015 K 0.02 %

T 750.00 K 0.15 K 0.02 %

k 100.0 mW/m- K 0.7 mW/(m- K) 0.7 %

Bias

0.1

10-3

0.9

0.1

0.8

0.3

0.9

0.9

1.5 %

Bias

0 . 1 %

10-3 %

0.02 %

2 %

0 . 8 %

0.3 %

0.9%

0.9 %

2.5%

51
"•t*

«

-\ TP

‘ i.’tii-'iVjitfi'ii '»' -v.^ ,il®. #iri' 'ifWt£^"- V •-+" --. >*: M;at*^^ iv.'

' i,i''«> .- ;-^ -

; «. .,JC ''. '-'" :*^V-:;'r ' .^iri -J y-'r.is. CJJ!_..

^ e»

"

.-e«w«, (SBasrTSBaifiJI^ -f:H»ItV r«fa/a'«i*w;§ft

. ,.

. , :‘,0i*'’

'“

fi^LfcWL * !( r
Appendix A: BASIC -Language Computer Program, "HT_GHP" , for the

High-Temperature Guarded-Hot-Plate Apparatus.

10 1 PROGRAM ‘HT GHP’ LAST REVISION DATE : 8-12-87

15 1 THIS PROGRAM OPERATES THE HIGH TEMPERATURE GUARDED HOT

20 1 PLATE THERMAL CONDUCTIVITY APPARATUS.

25 1 TEMPERATURES OF VARIOUS PARTS OF THE APPARATUS WILL

30 1 BE PRINTED OUT ON THE THERMAL PRINTER DURING THE SYSTEM’S

35 1 EQUILIBRATION PROCESS. TC TEMPERATURE DATA WILL BE PRINTED OUT

40 1 AFTER THE DATA ACQUISITION PHASE IS COMPLETE AND WILL THEN BE

45 1 STORED ON FLOPPY DISK.

50 1 ABBREVIATIONS USED: tc = thermocouple

55 1 RTD = platinum resistance thermometer

60 1 MH = MAIN (METERED) HEATER PLATE

65 1 IG = INNER GUARD HEATER PLATE

70 1 OG = OUTER GUARD HEATER PLATE

75 ! T/BAH = TOP / BOTTOM HEATER PLATES

80 1 HP IB ADDRESS LIST: 85 ! PRINTER 701

90 1 DVM 195 (IG) 706

95 1 DVM 195 (OG) 707

100 1 DVM 195 (TAHP) 708

105 ! DVM 195 (BAHP) 709

110 1 DVM 181 (MEAS. SENSORS) 710

115 1 DVM 181 (MHP) 712

120 ! MULT I PROGRAMMER 723

125 ! MULT I PROGRAMMER CARD ADDRESSES;

130 ! DIGITAL OUTPUT CARD 00

135 ! DIGITAL INPUT CARD 01 140 ! HI SPEED A/D CARD 02

145 ! RELAY OUTPUT CARD 05

150 ! VOLTAGE D/A CARDS 07 ( METERED AREA HEATER ) 155 j 08 ( OUTER GUARD HEATER ) 160 ! 09 ( TOP AUXILIARY HEATER ) 165 j 10 ( BOTTOM AUXILIARY HEATER

170 j 11 ( INNER GUARD HEATER ) 175 ! SCAN CONTROL CARD 13 180 1 FET SCAN 16 15

185 ! PROGRAM SUBROUTINE LIST : 190 GOTO 1105 j (SKIP FOLLOWING LIST TO BEGIN AT MAIN PROGRAM)

195 GOTO 10360 j Adjust (GOTO’S HERE ENABLE AUTOMATIC

200 GOTO 16915 j * Atod_io RENUMBERING)

205 GOTO 15280 1 Chan_sw itch

210 GOTO 17085 ! Data_reod

215 GOTO 18505 j Er r_record

220 GOTO 7865 I F i no l_ave roges

225 GOTO 12620 1 FNChan_s i

g

230 GOTO 9020 I FNEmf_t c 235 GOTO 12525 i FNOhms_rtd

240 GOTO 7275 i FNTemp_rtd

245 GOTO 7445 1 FNTemp_tc

250 GOTO 13115 1 G_ 1 abe

1

255 GOTO 6740 j I n i t_run_vo rs 260 GOTO 17870 1 K_stor

265 GOTO 13745 ! K_ghp

270 GOTO 14480 ! L i neo r 275 GOTO 14690 ! Manuo

1

280 GOTO 14395 1 Out seven

285 GOTO 10115 j Pock_queue

290 GOTO 12215 ! Pb 1 ank

295 GOTO 11070 ! Pid

300 GOTO 15660 1 P 1 ot_prep

305 GOTO 11760 ! P 1 ot_sw i t ch

310 GOTO 10275 1 Powe rof f 315 GOTO 10245 1 Powe ron 320 GOTO 13255 1 * Reod_io

325 GOTO 15410 ! Reod_o 1 d_dato

330 GOTO 9155 ! Reco rd_data

335 GOTO 7690 ! Ref_rtd

340 GOTO 12740 ! Resca 1 e_p 1 ot 345 GOTO 18110 ! Rtd_tune

350 GOTO 18075 i Run_abort

355 GOTO 14090 i Set_pnt_ca 1

c

360 GOTO 5375 j * Sy s_ i n i t 365 GOTO 5235 1 Sys_shutdown

A1
370

375

380

385

390

395

400

405

410

415

420

425

430

435

440

445

450

455

460

465

470

475

480

485

490

495

500

505

510

515

520

525

530

535

540

545

550

555

560

565

570

575

580

585

590

595

600

605

610

615

620

625

630

635

640

645

650

655

660

665

670

675

680

685

690

695

700

705

710

715

720

725

GOTO 13515

GOTO 15545

GOTO 16610

GOTO 14210

Tc_store

T iine_set

Update_p I ot W r i t e_ i

o

NOTE 1 : FILES PREFACED WITH •'*" ARE FILES CONTAINING I/O

NOTE 2 : FOR ADDITIONAL VARIABLE DESCRIPTIONS SEE THE VARIABLE

DECLARATION SECTIONS IN THE P4AIN PROGRAM AND IN SUB 'Sys.inif

PARAMETER LIST: SIMPLE VARIABLES

Heote r_8 res

Ht r_res Htemp_l im Ltemp_l im Nexp

Ne

Nr

Nf

Rtdpwr_sres

Td0

T0

Ts

T I im

standord resistor in metered area heoter line

resistance of main heater

high temperature limit on main heoter plate

low temperature limit on moin heater plate

number of experiments

array index counters for the Edot and Pdot orrays

array index counter for the Rtdot orray

array index counters for Kdot, Fedot, Ftdot, k Tme stondard resistor in RTD current loop

time relative to T0 when f i no 1 data taking begins

absolute time (seconds) at start of controlled run time (seconds) between RTD data points

time limit (sec.) for system to reach equilibrium

and take required dota for colculotion of conductivity

ALSO SEE VARIABLE DECLARATION SECTION BELOW •** ARRAY VARIABLES : Atune(4) : Stores the tc temperatures used in phase 1 to calculate the RTD setpoint offsets in sub ’Rtd_tune’

Bod_i nst (100) : Holding array for addresses of instruments that

hove hod read errors Bod_read_t ime$( 100) : Stores the time at which instrument read errors hove occurred

Error/output array for 5 PID controllers

( IG, OG. TOP. BOTTOM and MAIN ) over three time intervals

High limit of the control voltoge for eoch

power supply

For the five PID controllers, respectively the

set point (1), gain (2), integrator time (3),

derivative time (4), integrator time bell width

(5), gain bell width (6), and gain reduction

factor (7)

Cold water inlet temperature record (temperature

in degrees Celsius and time in seconds)

CONTROL RTD-TEMP. (AND TC (VOLTS)) READINGS

ARRAY INDEX 1 holds IG tc READINGS (VOLTS)

ARRAY INDEX 2,3.4, AND 5 holds RTD TEMP. READINGS (C)

(OG, TAP, BAP. AND MAIN PLATE RESPECTIVELY)

tc EMF (volts) doto point storage (E AND delE)

ARRAY INDEX 1,3, 5, and 7 hold EMF readings of 4 meas. tc’s (TAP.TMP.BMP.BAP RESPECTIVELY)

ARRAY INDEX 2. 4. 6, and 8 hold EMF dev. of the 4 meas. tc’s (TAP.TMP.BMP.BAP RESPECTIVELY)

tc TEMP.(C) DATA POINT STORAGE

ARRAY INDEX 1,3, 5, and 7 hold TEMP, of the 4 meas. tc’s (TAP.TMP.BMP.BAP RESPECTIVELY)

ARRAY INDEX 2, 4, 6, and 8 hold Delta T’s of the 4 meas. tc’s (TAP.TMP.BMP.BAP RESPECTIVELY)

Fd(30) : Misc. data stored on disk file

Cdata(5,2.3)

Cnt r l_v I im( *

)

Cset(5,7)

Cwater(2, 150)

Edat(5,8000)

Fedot (8 .Nfmax)

Ftdat (8 .Nfmax)

ARRAY INDEX 01 - ave rage run temperature

ARRAY INDEX 02 - t he rma

1

conduct i V i ty (w/( m*K)

)

ARRAY INDEX 03 - samp 1

e

thickness (m)

ARRAY INDEX 04 - sample area dens i ty (kg/( mt2))

ARRAY INDEX 05 - chambe r gas pressure (mm Hg)

- ARRAY INDEX 06 - em i ss i V i ty of the pi ote material

ARRAY INDEX 07 - chombe r gos code

ARRAY INDEX 08 - metered area diameter (m)

ARRAY INDEX 09 - ave rage heoter power (m)

ARRAY INDEX 10 - f i no 1 heater resistance (ohms)

ARRAY INDEX 11 - Bot . oux . plate avg

.

T ARRAY INDEX 12 - Bot . ma in p 1 ote avg

.

T

A2
730

735

740

745

750

755

760

765

770

775

780

785

790

795

800

805

810

815

820

825

830

835

840

845

850

855

860

865

870

875

880

885

890

895

900

905

910

915

920

925

930

935

940

945

950

955

960

965

970

975

980

985

990

995

1000

1005

1010

1015

1020

1025

1030

1035

1040

1045

1050

1055

1060

1065

1070

1075

1080

1085

ARRAY INDEX 13 -

ARRAY INDEX 14 -

ARRAY INDEX 15 -

2

> ^ s ARRAY INDEX 16 -

ARRAY INDEX 17 -

ARRAY INDEX 18 -

ARRAY INDEX 19 -

ARRAY INDEX 20 -

ARRAY INDEX 21 -

ARRAY INDEX 22 -

ARRAY INDEX 23 _

ARRAY INDEX 24 -

ARRAY INDEX 25 -

ARRAY INDEX 27 -

ARRAY INDEX 28 -

ARRAY INDEX 29 -

ARRAY INDEX 30 -

ARRAY INDEX 26 _

Thi

TIo

moin plate ovg. T aux. plate avg. T code for run mode (1 * double

sided: top; 3 •= single sided:

: avg. high temp, measured (C)

: avg. low temp, measured (C)

s i ded

;

bottom)

F i I e_num(Nexp)

Fi I e_specs$(5) [80]

IG bottom (volts)

IG combi ned (volts)

IG top (vo I ts) Dr : IG gop width (m)

Sc : Plote spacer code

(1 = quart 2 , 2 = stainless steel)

Dxc : Corrected sample thickness (m) Ts : Controller cycle time (seconds^

Acor: Corrected main plate area (mt2)

Td0 : Start time of data aquisition (sec)

Final averaging interval for data (sec)

Starting point for final averaging interval

Type of run code : 0 = normal or zero,

1 = OG offset. 2 = IG offset

spore array space

le number for each experimentol run

: string array stored on disk file

ARRAY INDEX 1 HOLDS THE FILENAME. RUN DATE, AND OPER. MODE

ARRAY INDEX 2 HOLDS HI AND LO TEMP. SETPOINTS AND THE MAIN HEATER OPERATING MODE

ARRAY INDEX 3 HOLDS THE TIME TO EQUILIBRATION AND HOW IT WAS DETERMINED, AND TOTAL RUN TIME

ARRAY INDEX 4 CHAMBER GAS, SPECIMEN CODE (TOP AND BOTTOM),

GUARD CODE (TOP AND BOTTOM)

ARRAY INDEX 5 MATERIAL DESCRIPTION/USER COMMENTS ON THE RUN

Htemp(Nexp) : High temp, for each experiment

Ht_mode (Nexp) : Main heater plate cantrol mode indicator

1 = constant temperature mode

power mode

Data point store for ’run time’ cole, of k

: Records last V on JRL channel ’Indx’ Low temperature for each experiment

string vector for operating modes

stability flag for RTD setpoint offsets

; Operation mode for each of the experiments

s i ded ope rat i on sided operation (top)

sided operation (bottom)

Heoter power dato storage orroy (these data ore

2 = constant

Kdat(Nfmax)

Last_reod i ng( I ndx)

Ltemp(Nexp)

Mode$(4)[34]

Ok_f I ag(4)

Op_mode (Nexp)

0 = doub I e

1 = single

2 = single

Pdat(2,8000)

sampled every Ts seconds)

ARRAY INDEX 1 Main heater current (amps)

ARRAY INDEX 2 Main heater voltage (volts)

Queue (Nq)

Oseql (Nqsl

)

Qseq2(Nqs2)

Qseq3(Nqs3)

Qseq4(Nqs4)

0seq5(Nqs5)

Oseq6(Nqs6)

Rtdot (2 .Nrrnox)

Holds scanner relay §'s (to be scanned

Holds the scanner sequence (s.c.) for

in sequence)

the t c

’

s

iso— block temp, reoding

three IG ports

main htr. current reading

DVM zero reoding updotes

Holds the s.c. for the

Holds the s.c. for the

Holds the s.c. for the

Holds the s.c. for the

Holds the s.c. for phase 1 tc measurements

: TEMP. (C) AND TIME (seconds) data point

for the isothermal reference block RTD ARRAY INDEX 1 Holds the temperature data

ARRAY INDEX 2 Holds the time dota

Run_errors$(Err_max) : Record of errors occurring during

Sd I im(5)

Sp_corr(5) : Sp_e r r I im(5)

st oroge

0 run

2 std.dev. limit for phase 1 RTD temp, stobility

RTD temp, setpoint corrections for phose 1 control

: Temp, deviation from setpoint; limit for phase 1 stobi I i ty

.

Splosl(5,2): holds the previous and current RTD temp, setpoint

cor rect i ons

.

Tme(Nfmax) : TIME (sec) arroy for the dota in Fedot . F t dat , AND

Kdot (one to one orroy index correspondence)

Zhi story(3,2) : this holds the dvm zero values ot the beginning

and end of phase 2 NOTE : FOR ADDITIONAL VARIABLE DESCRIPTIONS SEE THE VARIABLE DECLARATION

A3
1090 I SECTIONS IN THE MAIN PROGRAM AND SUB 'Sys.inif

.

1095 1 1100 1 MAIN PROGRAM

1105 OPTION BASE 1 1110 I COMMON DECLARATIONS

1115 COM /Ad j ust I oco 1/ Surtmi(5)

1120 COM/Adjloc2/ Last_reod i ng(0 ; 1 9)

1125 COM /loscan/ Queue(30) ,Nq .Oseql (20) ,Nqs1 ,Qseq2(2) ,Nqs2,Qseq3(4) ,Nqs3,Q8eq4(2) ,Nqs4

,Oseq5(2) ,Nqs5,Qseq6(9) ,Nqs6

1130 COM /Ctrl/ Cdata(5.2,3).Cset(5,7),Cntrl_vl im(5),Loop_label$(5)[14].C8tr$(7)[l4].Mh

vtnax 1135

1140

1145

1150

1 155

1160

1165

1170

1175

1180

1185

1190

1195

.250)

1200

1205

1210

1215

1220

1225

1230

1235

1240

1245

1250

1255

1260

1265

1270

1275

1280

1285

1290

1295

1300

1305

1310

1315

1320

1325

1330

1335

1340

1345

1350

1355

1360

1365

1370 DE

1375

1380

1385

1390

1395

1400

1405

1410

1415

1420

1425

COM /Constpwr/ Esum ,Tsum , Tsutn2 , Et sum ,P2n ,Nt p2

COM /Dri/ Bod_curr

COM /Dtl/ F i I e_specs$(5) [80] ,Mode$(4) [34] ,Gos$(4) [ 10]

COM /FI/ Flag$[l20]

COM /Fid/ Disp_flog

COM /Figs/ Igf lag,Prev_ne

COM /Gri/ P I ot_v i ew,P I ot_type ,P i ndex

COM /Gr2/ XI ,X2,Xinc,Y1,Y2,Yinc,Xtit$[40].Ytit$[40]

COM /Htrl/ Htr_res

COM /Instr/ Mhl 81 . J r 1 1 81 ,Mh195 . Top195 ,Bap1 95 , 1 g1 95

COM /Jrichan/ Chan .Tchon , Dvm_cmmd$[40] ,Def au I t_chon

COM /Manual/ Powerf I ag .Vread i ng(5)

COM /Mcl/ Ts,Ne.Edat(5,8000) . Pda t (2,8000) .Nr .Rtdat (2.2500) ,Nf . Fedat(8,250) .Ftdat (8

. Kda t (250) , Tme (250) , Nrmax , Nfmax ,T I i

m

COM /Mc2/ Heater_sres

COM /Mc3/ Rtdpwr_sres

COM /Mc5/ Op_mode ( 1 0) . Ht emp( 1 0) , Lt emp( 1 0) , Ht_mode ( 10) , Fi le_num(10) ,Set_tcmp(5)

COM /Mc6/ Ntm.Nt r.Ntp.Ntz

COM /Readi/ Io_error ,Bad_i nst r(l00) ,Bad_read_t ime$(100) [40]

COM /Rn/ Run

COM /Rtd_corr/ Tco r r_r t d , Rt d_ad j _f I ag . Sp_co r r (5)

COM /Run_err/ Rt e r r ,Run_e r ro rs$( 1 00) [80] , Er r_max COM /Sbl/ T0,Td0

COM /Sb2/ I_r t d , Tref , Emf_ref

COM /Sb3/ Fd (30) . Tavg_ i nte rva

I

COM /Sdisp/ Screen_prnt

COM /Stable/ Sd I im(5) . Sp_e r r I im(5) ,Pnze . Ksd ,Ks I p , Knze

COM /Tcsti/ Store_flag

COM /Tunel/ At une (4) , Ok_f I ag (4) . Sp I as t (5 , 2)

COM /Water/ New , Cwo t e r (2 , 1 50)

COM /Zeros/ Z j r 1 1 81_200 . Z j r 1 1 81_20 . Zgapi 95 . Zh i s t o ry (3 , 2)

! ARRAYS

DIM St r1$[20] .St r2$[20] ,Ans$[l0] ,Ans2$[l0] .Lng_st r$[l60]

! VARIABLE DECLARATIOf

I CONSTANTS

Nq=30

Nqs1=20

Nqs2=2

Nqs3=4

Nqs4=2

Nqs5=2

Nqs6=9

De f au I t_chan=1

8

Sc reen_p rn t=0

Ts=5

Ntm=36

Ntp=72

Ntp2=240

Nt r=24

Ntz=240

Nrmax=2500

Nfmax=250

T I im=7990 . *T s Tavg_interva 1=30*60

Heate r_s res= . 0100008

Rtdpwr_sres=99 .994

Er r_max=1 00

Htemp_ I i m=500

Lt emp_ I i m=0

I QUEUE ARRAY SIZE USED IN THE COMMON ’loscan’

1 RTD CURRENT CHANNEL

I 1 = PRINTOUT TO CRT . 0 = NO PRINTOUT

I CONTROLLER CYCLE TIME (seconds)

! I OF CYCLES BETWEEN tc MEASUREMENT READINGS

! § OF CYCLES BETWEEN POWER CURRENT READINGS

! # OF CYCLES USED IN SLOPE CALCULATION IN CONSTANT POWER MO

! # OF CYCLES BETWEEN REFERENCE BLOCK READINGS

! # OF CYCLES BETWEEN EACH DVM ZERO READING

I MAX. NUMBER OF REF. READINGS

I MAX. NUMBER OF tc DATA POINTS

! 11.1 HOURS ( ~8000 DATA POINTS O 5 SEC/PT.)

! LENGTH OF THE DATA AVERAGING INTERVAL (SECONDS)

I SERIAL NUMBER 91023

I SERIAL NUMBER 1550680

! MAXIMUM NUMBER OF ERRORS TOLERATED DURING A RUN

A4
1430

1435

1440

1445

1450

1455

1460

1465

1470

1475

1480

1485

1490

1495

1500

1505

1510

1515

1520

1525

1530

1535

1540

1545

1550

1555

1560

1565

1570

1575

1580

1585

1590

1595

1600

1605

1610

1615

1620

1625

1630

Fd(6)

1635

1640

1645

1650

1655

1660

1665

1670

1675

1680

1685

1690

1695

1700

1705

1710

1715

1720

1725

1730

1735

1740

1745

1750

1755

1760

1765

1770

1775

1780

I PRINTER IS 1

I SET THE DATE

CALL Time_3et

I INITIALIZE THE SYSTEM

Flog$='‘OK"

CALL Sys_ i n i

t

IF Flag$O"0K" THEN Err_chk

I

I GENERAL SYSTEM SPECIFICATION INITIALIZATION SECTION

PRINT USING "0,15/"

PRINT " WOULD YOU LIKE TO READ THE GENERAL SPECIFICATIONS FOR THIS"

PRINT " RUN (OR SERIES OF RUNS) FROM A DISK FILE?"

Ans$=""

LINPUT " (Y/N)?",Ans$

IF Ans$0"Y" AND Ans$0"N" THEN GOTO 1500

IF Ans$="Y" THEN CALL Read_ol d_dato

IF Fd(3)=0 THEN

PRINT USING "0,15/"

PRINT " INPUT THE FOLLOWING GENERAL SPECIFICATIONS FOR THIS SET OF RUNS"

Samp_dx=0

INPUT " WHAT IS THE SAMPLE THICKNESS (cm)?" ,Samp_dx

IF Fd(3)<=0 AND Samp_dx<=0 THEN GOTO 1535

IF Somp_dx>0 THEN Fd(3)=Somp_dx/100. ! STORE PLATE THICKNESS IN METERS

INPUT " WHAT IS THE SAMPLE AREA DENSITY ( kg/mt2)?" . Fd(4)

IF Fd(4)<=0 THEN GOTO 1550

PRINT USING "0.5/"

PRINT " THE FOLLOWING GASES ARE USED IN THE CHAMBER

FOR 1=1 TO 4 PRINT " ";I : ";Gos$(I)

NEXT I INPUT " INPUT THE NUMBER OF THE GAS USED IN THE CHAMBER ?",Gnum

IF Gnum<1 OR Gnum>4 THEN GOTO 1585

Fi I e_specs$(4) [ 1 ; 20]=Gos$(Gnum)

Fd(7)=Gnum

PRINT USING "O" INPUT " WHAT IS THE CHAMBER GAS PRESSURE (mm Hg)?",Fd(5)

IF Fd(5)<=0 THEN GOTO 1610

PRINT USING "10/"

PRINT " THE DEFAULT VALUE OF THE EMISSIVITY IS :";Fd(6)

INPUT " EMISSIVITY OF THE PLATE MATERIAL (JUST HIT ’ENTER' FOR THE DEFAULT) ?".

IF Fd(6)<=0 THEN GOTO 1630

PRINT USING "0,10/"

PRINT " ENTER THE PLATE SPACER CODE

PRINT " 1 = QUARTZ"

PRINT " 2 = STAINLESS STEEL"

INPUT " ENTER THE PLATE SPACER CODE NUMBER (1 OR 2)".Fd(22)

IF Fd(22)<1 OR Fd(22)>2 THEN GOTO 1660 END IF

IF Fd(22)=1 THEN Psm$="OUARTZ"

IF Fd(22)=2 THEN Psm$="STAINLESS STEEL"

PRINT USING "O,10/,40A,/"; " GENERAL

PRINT " SAMPLE THICKNESS (cm) : PRINT " SAMPLE AREA DENSITY (kg/mt2):

PRINT " TYPE OF GAS : PRINT " CHAMBER GAS PRESSURE (mmHg) : PRINT " EMISSIVITY OF THE PLATE

PRINT " PLATE SPACER MATERIAL

PRINT USING "3/"

Ans2$="N"

SPECIFICATIONS"

;Fd(3)*100

;Fd(4)

;Fi I e_specs$(4) [ 1 ;20]

;Fd(5)

;Fd(6)

; Psm$

INPUT " IS THIS INFORMATION CORRECT (Y/N)?" . Ans2$

IF Ans2$0"Y" THEN

PRINT " INPUT CORRECTIONS AS NECESSARY"

GOTO 1535

END IF PRINT USING "0,10/"

PRINT " THE MATERIAL DESCRIPTION/CURRENT USER COMMENT IS PRINT " "* 4TRIM$(Fi le_specs$(5))ft

LINPUT " IS THIS DESCRIPTION/COMMENT ACCEPTABLE (Y/N - DEFAULT IS Y)‘>" IF Ans$0"Y" AND Ans$0"N" AND Ans$<>"" THEN GOTO 1770

IF Ans$="N" THEN

Ans$

A5
1785

1790

1795

1800

1805

1810

1815

1820

1825

1830

1835

1840

1845

1850

1855

1860

1865

1870

1875

1880

1885

1890

1895

1900

1905

1910

1915

1920

1925

1930

1935

1940

1945

1950

1955

1960

1965

1970

1975

1980

1985

1990

1995

2000

2005

2010

2015

2020

2025

2030

2035

2040

2045

2050

2055

2060

2065

2070

2075

2080

2085

2090

2095

2100

2105

2110

2115

2120

2125

2130

2135

2140

LINPUT •' ENTER YOUR MATERIAL DESCRIPTION/COMMENT (80 CHARACTER MAX . ) " . Lng_st r$ IF LEN(Lng_st r$)>80 THEN

DISP •' YOU ARE TOO WORDY ... BE CONCISE (LESS THEN 80 CHARACTERS!)"

WAIT 2 GOTO 1785

END IF

Fi I e_9pecs$(5)=Lng_st r$ END IF

F i I e_specs$(4) [ 1 ]=Fi I e_specs$(4)ftRPT$( " " , 80— LEN(Fi I e_specs$(4) )

)

IF LEN(TRIM$(Fi Ie_spec9$(4)))<21 THEN

PRINT USING "O" LINPUT " ENTER THE TOP SPECIMEN CODE ( 10 CHAR. MAX. ) :",Lng_str$

IF LEN(Lng_st r$)>10 THEN GOTO 1840

IF LEN(Lng_st r$)>0 THEN F i I e_specs$(4) [21 , 30]-Lng_9t r$

LINPUT •' ENTER THE TOP GUARD CODE ( 10 CHAR. MAX. ) :",Lng_str$

IF LEN(Lng_st r$)>10 THEN GOTO 1855

IF LEN(Lng_st r$)>0 THEN Fi I e_specs$(4) [41 ,50]=Lng_st r$

LINPUT " ENTER THE BOTTOM SPECIMEN CODE ( 10 CHAR. MAX. ) :".Lng_str$

IF LEN(Lng_st r$)>10 THEN GOTO 1870

IF LEN( Lng_st r$)>0 THEN F i I e_specs$(4) [31 , 40]=Lng_st r$

LINPUT " ENTER THE BOTTOM GUARD CODE ( 10 CHAR. MAX. ) :",Lng_str$

IF LENf Lng_st r$)>10 THEN GOTO 1885

IF LEN(Lng_st r$)>0 THEN F i I e_specs$(4) [51 , 60]=Lng_st r$ END IF PRINT USING "0.5/"

PRINT " SPECIMEN AND SPECIMEN GUARD CODES :" PRINT USING "3/"

PRINT " TOP SPECIMEN CODE : " ; F i I e_specs$(4) [21 . 30] PRINT " TOP GUARD CODE : " ; F i I e_specs$(4) [41 . 50

J

PRINT

PRINT " BOTTOM SPECIMEN CODE : " ; F i I e_specs$ (4) [31 . 40]

PRINT" BOTTOM GUARD CODE : " ; F i I e_specs$(4) [51 . 60

J

Ans$="

INPUT " ARE THESE CODES CORRECT (Y/N) ?",Ans$

IF Ans$0"Y" AND Ans$0"N" THEN GOTO 1950

IF Ans$="N" THEN GOTO 1835

PRINT USING "0,10/"

INPUT " HOW MANY RUNS DO YOU WANT TO PERFORM (<=10)?" .Nexp

IF Nexp>10 OR Nexp<1 THEN 1970

PRINT USING "0.7/"

Fi I e_specs$( 1 ) [ 1 ]=" " INPUT " WHAT IS THE FILE NAME PREFIX (FOUR CHARACTERS)?" ,Ans$

IF LEN(Ans$)>4 THEN

PRINT USING "2/.50A.2/" ;" ILLEGAL FILE NAME : IT IS TOOO LONG!!"

GOTO 1985

ELSE

IF LEN(An3$)<1 THEN GOTO 1985

IF NUM(Ans$)<65 OR NUM(Ans$)>90 THEN PRINT USING "2/"

PRINT " THE FIRST CHARACTER OF THE FILE SPECIFIER MUST BE A LETTER!"

GOTO 1985 END IF

Fi le_specs$(1)[1 ,LEN(Ans$)]=Ans$

END IF PRINT USING "4/"

PRINT " THE FILE NAME PREFIX FOR THIS SERIES OF RUNS WILL BE ; " ; Fi ! e_specs$( 1

)

Ans$="

INPUT " IS THIS PREFIX CORRECT (Y/N)?".Ans$

IF Ans$0"Y" THEN GOTO 1980

Ans2$="N"

! IF THE RUN NUMBERS ARE SEQUENTIAL, INITIALIZE THE ENTIRE FILE NUM VECTOR

IF Nexp>1 THEN

Ans2$="

INPUT " WILL THE FILE RUN NUMBERS BE SEQUENTIAL (Y/N)?" . Ans2$

IF Ans2$="Y" THEN

INPUT " WHAT IS THE RUN NUMBER OF THE FIRST RUN (0 TO 990)?" . F i le_num( 1

)

IF Fi le_num(1)<0 OR F i I e_num( 1 )>990 THEN

DISP " ILLEGAL RUN NUMBER - TRY AGAIN " WAIT 3 GOTO 2110

END IF FOR 1=1 TO Nexp-1

A6
2145

2150

2155

2160

2165

2170

2175

2180 I 2185

2190

2195

2200

2205

2210

2215

2220

2225

2230

2235

2240

2245

2250

2255

2260

2265

2270

2275

2280

2285

2290

2295

2300

2305

2310

2315

(Isis)

2320

2325

2330

2335

2340

2345

2350

2355

UE! " 2360

2365

2370

2375

2380

2385

2390

2395

_mode

(

2400

2405

RE

2410

2415

2420

2425

2430

2435

2440

2445

2450

2455

2460

2465

2470

2475

2480

F i I e_num( 1+1 )=Fi I e_num( 1 )+I

NEXT I ELSE

IF Ans2$0"N" THEN GOTO 2100

END IF END IF INDIVIDUAL RUN INITIALIZATION SECTION

FOR I s i s=1 TO Nexp

IF Ans2$="N" THEN

PRINT USING "20/"

PRINT " WHAT IS THE FILE NUMBER FOR RUN NUMBER ";Isis:" (0 TO 990)?"

INPUT " " , F i I e_num( 1 5 i s) IF F i I e_num( I s i s)<0 OR H I e_num( I s i s)>990 THEN

DISP " FILE NUMBER OUT OF LEGAL RANGE !!" WAIT 3

GOTO 2195

END IF END IF PRINT

PRINT " INPUT THE FOLLOWING PARAMETERS FOR RUN NUMBER ";Isis;""

PRINT "

( FILE NUMBER : " ; Fi I e_num( I s i s)

; " )"

PRINT USING "//.50A";" A) OPERATING MODE " PRINT " 1 = DOUBLE SIDED OPERATION"

PRINT " 2 = SINGLE SIDED OPERATION - TOP"

PRINT " 3 = SINGLE SIDED OPERATION - BOTTOM"

PRINT

PRINT " B) HIGH TEMPERATURE (C) (" ; Ltemp_l im; " TO " ; Ht emp_ I i tn ; "

)

PRINT USING "/,28A./";" C) LOW TEMPERATURE (C) " PRINT " D) MAIN HEATER PLATE CONTROL MODE"

PRINT " 1 = CONSTANT TEMPERATURE MODE"

PRINT USING "50A,/":" 2 = CONSTANT POWER MODE"

INPUT " INPUT THE MODE NUMBER (1,2, OR 3) " . Op_mode ( I s i s

)

IF Op_mode ( I s i s )<>1 AND Op_mode ( I s i s)<>2 AND Op_mode ( I s i s )o3 THEN 2305

INPUT " WHAT IS THE HIGH TEMPERATURE (C) ( MAIN HEATER PLATE TEMP. )?".Htemp

IF Htemp( Is i s)<Ltemp_l im OR Ht emp( I s i s)>Ht emp_ I i m THEN

PRINT "HIGH TEMPERATURE CHOICE IS OUT OF RANGE!"

PRINT "THE RANGE IS " ; Lt emp_ I i m

; " TO " ; Ht emp_ I i m; " deg C" GOTO 2315

END IF INPUT " WHAT IS THE LOW TEMPERATURE (C) ?" , Lt emp ( I s i s

)

IF Ht emp( I s i s )<Lt emp( I s i s) THEN

PRINT USING "//.60A";" THE LOW TEMP. VALUE IS HIGHER THAN THE HIGH TEMP. VAL GOTO 2315

END IF

IF Ltemp( Is i s)<(Ltemp_l im— 10) THEN

PRINT USING "//.60A";" YOUR CHOICE OF LOW TEMPERATURE IS TOO LOW

PRINT " THE MINIMUM TEMPERATURE I S" ; L t emp_ I i m

; " DEG C" GOTO 2345

END IF INPUT " INPUT MAIN HEATER PLATE CONTROL MODE (1=CONST TEMP ., 2-CONST POWER)?". Ht Isis)

IF Ht_mode(Isis)ol AND Ht_mode ( I s i s)<>2 THEN GOTO 2395

PRINT USING "O, /////, 36A, D. 6A" ; " THE FINAL PARAMETERS FOR RUN NUMBER ";Isis;" A

PRINT "

( FILE NUMBER" ;Fi le_num(Isis) ;" )"

PRINT

PRINT " SYSTEM" ;Mode$(4) ;Mode$(Op_mode( Is i s)

)

PRINT USING "27A.DDDD.DD" HIGH TEMPERATURE IS : " ; Ht emp( I s i s

)

PRINT USING "27A.DDDD.DD" ;" LOW TEMPERATURE IS : " ; Lt emp( 1 s i s

)

SELECT Ht_mode( I s i s)

CASE 1 PRINT " MAIN HEATER PLATE CONTROL MODE : CONSTANT TEMPERATURE"

CASE 2 PRINT " MAIN HEATER PLATE CONTROL MODE : CONSTANT POWER"

END SELECT

Ans$="N"

INPUT " ARE THESE VALUES ACCEPTABLE (Y/N)?",Ans$

IF Ans$0"Y" THEN GOTO 2245

NEXT Isis

A7
2485 PRINT USING *’O,10/"

2490 Hi gh_temp*MAX(Hteinp(*) ) 2495 Hi gh r“FN0hm3_r t d (5 , H i gh_t emp)

2500 F I uke_cu r-INT( (. 180/Hi ghr) *10000. )/10-

2505 IF FI uke_cur>1 .5 THEN F I uke_cu r=1 .5 2510 IF Fluke_cur<.2 THEN Fluke_cur=.2

2515 PRINT " THE OPTIMUM CURRENT FOR THE FLUKE POWER SUPPLY IS : " ; F

I

uke_cur ; " mi I I ia mps

2520

2525

2530

2535

2540

2545

2550

2555

2560

2565

2570

2575

2580

2585

2590

2595

2600

2605

2610

2615

2620

2625

2630

2635

2640

2645

2650

2655

2660

2665

2670

PRINT " (THE ACCEPTABLE RANGE IS .2 TO Fluke cur;" mA)"

PRINT

PRINT " HIT ’CONTINUE’ WHEN POWER SUPPLY HAS BEEN SET."

PAUSE

PRINT USING "0,10/"

PRINT " WHEN YOU ARE READY TO BEGIN THE COMPUTER CONTROLLED"

PRINT " RUN ( OR SET OF RUNS ) HIT ’CONTINUE’"

PAUSE

PRINT USING "0"

I END OF USER INTERACTION INITIALIZATION SECTION

!

! MAIN PROGRAM LOOP

FOR Run=1 TO Nexp

CALL In i t_run_vars(Run)

THIS SECTION BRINGS THE GUARDED HOT PLATE APPARATUS TO

THERMAL EQUILIBRIUM. IT THEN CHECKS THE STABILITY OF THE MAIN HEATER POWER SUPPLY.

AFTER THE SYSTEM IS STABLE. READINGS ARE TAKEN FROM THE MEASUREMENT

THERMOCOUPLES UNTIL ENOUGH DATA HAS BEEN TAKEN.

IF Flog$o"OK" THEN Err_chk

GRAPHICS ON

ALLOCATE ARRAYS USED TO TEST THE SYSTEM FOR EQUILIBRIUM

Tst_size=INT(180/Ts)+1

Ktst_size=INT(Tavg_interval/(Ts*Ntm))+1

IF Tst_size>36 THEN Tst_size=36

ALLOCATE X(1 :Tst_size),Y(1 ;Tst_size),Sdset(1 ;5) ,Spdev_set (1 :5),Tcolm(1 :5)

Ptst_sz=48

ALLOCATE Xp(1 : Pt s t_sz) . Yp( 1 :Ptst_sz) ,Xk(1 : K t s t_s i ze) , Yk ( 1 :Ktst_size)

ON ERROR GOTO Sysequil_err

2675 ! 2680

2685

2690

2695

2700

2705

2710

2715

2720

2725

R CONTROL

2730

2735

PRINT HEADER FOR EQUIL. TEMPERATURE AND CONTROL OUTPUT

PRINTER IS 701 PRINT USING "e,2/" PRINT " FILENAME : " ; F i I e_specs$( 1 )

[ 1 . 7]

PRINT " ";Fi Ie_specs$(1)[l1 .80]

IF Ht_mode(Run)=1 THEN

Mhcd$="TEMP.

ELSE

Mhcd$="POWER"

END IF PRINT " HIGH TEMP. (C)=" ;Htemp(Run) ; " ; LOW TEMP . (C)=" ; Ltemp(Run) ;

; CONSTANT ";Mhcd$

PRINT USING "2/"

MAIN HEATE

PRINT TIME MHP TEMP OG TEMP TAHP TEMP BAHP TEMP IG DIFF

2740

)2745

2750

2755

2760

2765

2770

2775

2780

2785

2790

2795

2800

2805

2810

2815

2820

PRINT " (min) (C) (C) (C) (C)

PRINT

PRINTER IS 1 PRINT USING "O"

! DEFINE THE REQUIRED SOFTKEYS

FOR 1=0 TO 9 ON KEY I LABEL "" GOSUB 4990 ! (DUMMY RETURN)

NEXT I ON KEY 4 LABEL " ABORT RUN". 15 CALL Run_abort

ON KEY 2 LABEL "HIT IF STABLE" GOSUB 4990

ON KEY 12 LABEL "HIT IF STABLE" GOSUB Set_td_vars

ON KEY 7 LABEL " FINISH RUN" GOSUB 4990

ON KEY 17 LABEL " FINISH RUN" GOSUB Set_f i n i_vors

ON KEY 0 LABEL " CHANGE PLOT" CALL Plot_switch

ON KEY 3 LABEL " ALPHA TOGGLE" GOSUB Alpha_toggle

ON KEY 5 LABEL " PID ADJUST " CALL Manual

(mi croV

A8
2825

2830

2835

2840

2845

2850

2855

2860

2865

2870

2875

2880

2885

2890

2895

OUT

2900

2905

2910

2915

2920

2925

2930

2935

2940

2945

2950

2955

2960

2965

2970

2975

2980

2985

2990

RROR"

2995

MS"

3000

3005

3010

3015

3020

3025

3030

3035

3040

3045

3050

3055

3060

3065

3070

3075

3080

3085

3090

3095

3100

3105

3110

3115

3120

3125

3130

3135

3140

3145

3150

3155

3160

3165

IF Sc rcen_prnt=1 THEN

ON KEY 8 LABEL " ON" GOSUB 4990

ELSE

ON KEY 8 LABEL " OFF" GOSUB 4990

END IF

I TAKE INITIAL DATA FOR THE TEMPERATURE REFERENCE BLOCK

T0=TIMEDATE+5 I THE TRUE VALUE OF T0 WILL BE TAKEN IN ~5 SEC.

! DETERMINE THE RTD CURRENT

CALL Chan.swi tch(l8,"R3B1X") ! RTD CURRENT STD. RES. VOLTAGE

IF Screen_prnt THEN PRINT " ISO. BLOCK CURRENT MEASUREMENT"

WAIT 5 CALL Reod_i o(V,Timee , J r 1 181 , "R3B1X" , I_rtd*Rtdpwr_sres)

I_rtd>=V/Rtdpwr_sres

IF I_rtd>(Fluke_cur/1000.) OR I_rtd<.0002 THEN Flag$=" RTD CURRENT SETTING IS OF ACCEPTABLE RANGE! !

Lost_reoding(18)=V

IF Flag$O"0K" THEN GOTO Err_chk

I DETERMINE THE ISO-BLOCK INITIAL TEMPERATURE

CALL Chon_switch(1 ,"R3B1X") I RTD VOLTAGE (I SO. -BLOCK)

IF Screen_prnt THEN PRINT " ISO. BLOCK VOLTAGE MEASUREMENTWAIT 5 CALL Reod_i o(V.Timee,Jrl181, "R3B1 X" , I_r t d*Rt dpwr_s res* 1 .08)

Lost_reod i ng (

1 )=V

CALL Ref_rtd(V,T imee)

IF Flag$O"0K" THEN GOTO Err_chk

! DETERMINE INITIAL VALUE OF MAIN HEATER RESISTANCE

CALL Outseven( .01 )

i SET A TICKLER VOLTAGE

CALL Chon_swi tch(19, "R3B1X") I VOLTAGE ACROSS MAIN HTR. LINE STD. RES.

IF Screen_prnt THEN PRINT " HEATER RESISTANCE (INITIAL MEASUREMENT)"

WAIT 5 CALL Read_io(Vi . T i mee , J r 1 1 81 ,"R3B1X", .0001)

CALL Read_io(Vp,Timee,Mh195,"R0X", .01)

Ht r_res=Heoter_sres*Vp/Vi

IF Htr_res<2.5 OR Htr_res>6.5 THEN Flog$=" MAIN HEATER RESISTANCE MEASUREMENT E

IF Screen_prnt THEN PRINT " INITIAL MAIN HEATER RESISTANCE = ";Htr_res;" OH

CALL Outseven(0)

SET THE JRL RELAY TO A DEFAULT CHANNEL

CALL Chan_switch(Default_chon, "R3B1X")

WAIT 1

!

!

1

INIT Td0=0

Igf I ag=0

Store_f I ag=0

Use r_ove r r i de

Comp_f i n i $="N

F i n i $="N"

Stable$="N"

T_stab I e$="N"

P_stable$="N"

Check=0

Got_i t=0

T0=TIMEDATE

Rtd_odj_f I ag=

Bad_cu r r=0

ON CYCLE Ts,1

lALIZE LOOP COUNTERS AND SET ADJUST CYCLE

I TIME OF FINAL DATA AOUISITION (RELATIVE TO T0) END OF RUN FLAG TO MEASURE 3 IG tc’s

tc STORAGE FLAG (0=NOT READING DATA FOR A SET)

=0 I COMPUTER/USER CONTROL FLAG FOR DATA STORAGE

COMPUTER SIGNAL FLAG ('Y' WHEN IT THINKS IS DONE)

SET TO ’Y’ WHEN DATA TAKING DONE OR TLIM EXCEEDED

OVERALL STABILITY FLAG (TAKE FINAL DATA : PHASE 2)

TEMPERATURE STABILITY FLAG

POWER (VOLTAGE) STABILITY FLAG

K STABILITY FLAG

DATA RECORDING FLAG

ZERO TIME READING FOR RUN

0 I RTD RUNTIME CALIBRATION FLAG

I BAD RTD CURRENT READ COUNTER

0 CALL Adjust

EQUILIBRIUM TEST AND USER INTERACT LOOP ( PERFORMED BETWEEN CALLS TO

THE CONTROLLER SUB ’Adjust’ ) REPEAT

EXECUTE EVERYTHING WITHIN THIS IF BLOCK ONCE PER CONTROL CYCLE

IF Oueue(1)>0 THEN CALL Dota_read

IF NeONelost THEN

Ne 1 ast=Ne

IF NfO0 THEN

IF Tme(Nf)o0 AND Rt dot (2 . Nr )>Tme(Nf ) AND Kdot(Nf)-0 THEN CALL K_stor

END IF CALL Update_pl ot ("Y")

CHECK THE RTD TEMPERATURES UNTIL STABILITY IS REACHED

A9
3170 DO LIN. REG. TEST (USE EDATA ARRAY FROM POINT Ne 3175 1 BACKWARDS ON EACH RTD DATA SET -- TIME ft TEMP ) 3180 IF Ne>Tst_8 i ze+1 AND T stable$="N" AND Stable$="N" THEN

3185 Net=Ne

3190 FOR 1 = 1 TO 5 3195 FOR J=1 TO Tst_size

3200 X(

J )=(Net-Tst_s i ze+J)*Ts 1 X-AXIS (SEC.)

3205 Y(J)=Edat ( I .Net-Tst size+J) 1 Y-AXIS (degC)

3210 IF 1=1 THEN Y(J)=Y(J)*1 .E+6 ! Y-AXIS (microV)

3215 NEXT J 3220

3225

3230

3235

td_odj_f I ag 3240

3245

TABLE.

AND

CALL L i near (X( * ) . Y( * ) , Tst_s i ze ,D1 ,S I pe .Mean , St ddev)

Spdev_set ( I )=Mean-(Set_t emp( I )-Sp_cor r

( I ) )

I S.P. Sdset(I)«=2*Stddev

IF ( (ABS(Spdev_set ( I ) ) )<Sp_e r r

I

Tcalfti(l)=0 THEN

Tea lm( I )=1

OUTPUT 701;"

DEV.

2 STD. DEV. FROM THE MEAN

m(I)) AND (Sdset(I)<Sdl itn(I)) AND R

"tLoop_label$(I)ft" TEMPERATURE IS S 3250

3255

3260

set ( I )

) •

1

3265

3270

3275

3280

3285

3290

3295

3300

3305

3310

3315

3320 ! —

3325 ! 3330 I 3335

"N" THEN

END IF Ln=I NT ( 1 0000 . *Sd9e t ( I ) )/1 0000

.

IF Screen_prnt THEN PRINT " LOOP#"; I;" DEV. FROM S.P.=" ; INT( (Spdev_

0000. )/1 0000. ; " STD. DEV. =" ; Ln NEXT I IF SUM(Tcalm)=5 THEN

T_stable$="Y"

PRINT USING "O" PRINT " ALL TEMPERATURE LOOPS ARE STABLE."

END IF

IF TIMEDATE-Tcorr_rtd>5*60 AND Rtd_ad j_f I ag=0 THEN

CALL Pack_queue(Queue(*) ,Nq,Qseq6(*) ,Nqs6)

Tcorr_rtd=TIMEDATE

END IF END IF AFTER 50 POWER READINGS HAVE BEEN TAKEN. TEST FOR STABILITY USING THE THE LAST Ptst_sz=48 DATA POINTS

IF Ne>50 AND P_stab I e$="N" AND (Tcalm(5)=1 OR T_stab I e$="Y") AND Stable$=

3340

3345

3350

3355

3360

3365

3370

3375

3380

3385

3390

1000

3395

3400

3405

3410

3415

3420

3425

3430

3435

3440

3445

= "N"

Net=Ne

FOR 1=1 TO Ptst_sz

Xp(I)=Ts*(Net—Ptst_sz+I)

Yp( I )=Pdat (2 . Ne t-Pt s t_sz+I ) *Pda t

( 1

. Ne t-Pt st_sz+I

)

NEXT I CALL Linear(Xp(*).Yp(*).Ptst_sz.D1.Slpe .Meon . St ddev)

USE THE TIME/POWER CURVE SLOPE. % STD. DEV. . AND POWER NOISE

LIMIT ASSESS MAIN HEATER POWER STABILITY.

Pno i se=2*Stddev

IF Screen_prnt THEN PRINT " 2 STD. DEV. OF POWER : PNOISE (W)=" ; INT(Pno i se* 1 000 . )/ END IF

IF Pnoise<Pnze AND Rtd_adj_flag THEN P_stab I e$="Y"

OUTPUT 701;" MAIN HEATER POWER IS STABLE"

END IF END IF

! IF THE TEMP. LOOPS AND MAIN HEATER POWER ARE STABLE THEN

! BEGIN PHASE 2 (OR IF TIME LIMIT EXCEEDED; 5 Hrs.)

IGOTO 3395 !!! TO SKIP OVER TRANSITION TO PHASE 2 FOR TUNING OF PROGRAM

IF ( (T_stable$="Y" AND P_stab I e$="Y") OR TIMEDATE-T0>5*3600. ) AND Stable$

THEN

3450 Stable$="Y"

3455 IF T_stable$="Y" AND P_stab I e$="Y" THEN 3460 Fi le_specs$(3)[1 ]="COMPUTER DETERMINED STABILITY AT "tVAL$( INT( (TIM

EDATE-T0)/60))4" min. ; " 3465 ELSE

3470 Fi le_specs$(3)[1 ]="PHASE 1 TIME LIMIT EXCEEDED AT "4:VAL$( INT( (TIMED

ATE-T0)/60))4" min. ; " 3475 OUTPUT 701;" PHASE 1 TIME LIMIT EXCEEDED AT "4VAL$( INT( (TIMEDATE-T0

)/60))4" min. " 3480 END IF

AlO
3485 Td0=Ne*Ts 1 TIME AT WHICH WE BEGAN TAKING FINAL DATA

3490 1 ( RELATIVE TO T0 ) 3495 P2n=Ne

3500 Esum=0

3505 T sum=0

3510 Tsum2=0

3515 E t s um=0

3520 BEEP 83*5, .2 3525 PRINT USING " 0

" 3530 END IF 3535 IF Stable$="Y" THEN

3540 ON KEY 2 LABEL "" GOSUB 4990

3545 1 COMPUTER DATA TEST SECTION ON k 3550 1 IF DATA IS OK SET Check = 1 3555 IF Nf>Ktst_si 2e+1 AND Ne*Ts-Td0>3600 THEN

3560 Nf t=Nf

3565 IF Store_flagO0 THEN Nft=Nf-1

3570 FOR J=1 TO Ktst_size

3575 Xk(J)=Tme(J+Nf-Ktst_s i ze) ! X-AXIS (SEC.)

3580 Yk(J)=Kdat(J+Nf-Ktst_size) ! Y-AXIS (mW/M.K)

3585 NEXT J 3590 CALL Linear(Xk(*),Yk(») , Kt st_s i ze . D1 , S

1

pe ,Meon .Stddev)

3595 IF Meon<>0 THEN

3600 Kstddev=2*Stddev ! 2 STD DEV (SDEV)

3605 Ks 1 ope=S 1 pe*3600 ! k CHANGE PER HOUR

3610 END IF 3615 Net=Ne

3620 FOR 1=1 TO Ptst_sz ! FIND SDEV OF POWER

3625 Xp(I)=Ts*(Net-Ptst_sz+I)

3630 Yp(I)=Pdot(2,Net—Ptst_sz+I)»Pdot(1,Net—Ptst_sz+I)

3635 NEXT I 3640 CALL Lineor(Xp(*),Yp(»),Ptst_sz.D1 ,Slpe .Mean .Stddev)

3645 Ono i se=2*Stddev ! POWER NOISE

3650 IF ABS(Kslope)<Kslp AND ( (Kstddev<Ksd) OR (Ono i se<Knze) ) THEN Chi

3655 Ln=INT(1000*Qnoi se)/1000

3660 IF Screen_prnt THEN

3665 PRINT " KSLOPE=" ; INT(Ks 1 ope*1000)/1000; " 2SD=" ; INT(Kstddev

00)/1000;" NOISE=" : Ln 3670 END IF 3675 END IF 3680 IF Nf >=INT( (Tovg_ i nt e rvo 1 )/(Ts*Ntm)+1 ) AND1 Check=1 AND Comp_fini$0

3690

3695

3700

3705

3710

3715

3720

3725

3730

3735

3740 ! 3745 ! 3750

3755

3760

3765

3770

THE USER

3775

3780

3785

3790

3795

3800

3805

3810

3815

3820

OVERRIDES'

Tcompute r=TIMEDATE

END IF ON KEY 1 LABEL " FINISH MODE" GOSUB F i n i sh_mode

IF Use r_ove r r i de THEN

ON KEY 6 LABEL " MANUAL" GOSUB 5090

ELSE

ON KEY 6 LABEL " COMPUTER" GOSUB 5090

END IF END IF IF Comp_f i ni$="Y" AND Fini$="N" THEN

USER OVERRIDE SECTION FOR RUN TERMINATION

(IF NO RESPONSE IN 30 MIN., THEN STORE THE DATA)

IF NOT Use r_ove r r i de THEN

IF TIMEDATE-Tcompute r>1 800 THEN Fini$="Y"

IF Ne MOD 6=0 AND Queue (1)=-1 THEN BEEP 83*3,.5

IF Queue(1 )=-1 THEN

DISP " THE COMPUTER HAS A DATA SET IT WILL STORE (AT T-0) UNLESS

END IF

D i sp_f I ag=TIMEDATE

ON KEY 8 LABEL " DELAY CNTDWN" GOSUB Count_deloy

Tcont=INT(((1800-(TIMEDATE-Tcomputer))/60).10)/10

T count $=VAL$(Tcont

)

Tcount$="T-"4Tcount$t" MINUTES"

ON KEY 3 LABEL TcountS GOSUB 5090

ELSE

DISP "" ON KEY 8 LABEL "" GOSUB 5090

All
3825 ON KEY 3 LABEL "" GOSUB 5090

3830 END I

F

3835 IF Tcont<-0 THEN GOSUB Set_f i ni_vara

3840 END I

F

3845 IF Fini$="Y" AND Igflag-=0 THEN

3850 Igflag=1

3855 I ADD THE IG SCAN CHANNELS TO THE QUEUE

3860 CALL Pock_queue(Oueue(*) ,Nq,Qseq3(*) ,Nqs3)

3865 END IF 3870 IF Queue(l) —1 AND ChanODef ou I t_chon THEN

3875 CALL Chan_sw i t ch(De f au I t_chan , "R3B1 X"

)

3880 END IF 3885 END IF 3890 IF TIMEDATE-Disp_f log>10 AND Queuc(1)-=-1 THEN DISP "" 3895 IF (T1MEDATE-T0>TI im OR Nf-=Nfmax) AND Fini$="N" THEN GOSUB Set_f i n i_vars

3900 UNTIL (Fini$="Y“ AND Queue(1)<0) OR Flag$O"0K‘‘

3905 OFF CYCLE

3910 CALL Chan_sw i t ch(Def ou I t_chan , "R3B1X")

3915 DEALLOCATE X(*) ,Y(*) ,Sdset(*) ,Spdev_set(*) ,Xp(*) ,Yp(*) .Tcalm(*) ,Xk(*) ,Yk(*)

3920 IF Nf>0 THEN 3925 WHILE Kdat(Nf)-0 AND Nf>1

3930 Nf=Nf-1

3935 END WHILE

3940 END IF 3945 ! 3950 IF Set_temp(2)o(Htemp(Run)+Ltemp(Run))/2 THEN Fd(30)=1

3955 IF Set_temp(l)<>0 THEN Fd(30)=2

3960 IF Stable$="N" THEN F i I e_specs$(3) [

1 ]="SYSTEM STABILITY NOT ACHIEVED ; " 3965 Fi le_specs$(3)[l]=Fi le_specs$(3)[1 ;LEN(Fi le_specs$(3))]4"T0TAL RUN TIME : "4VAL

$ ( I NT (

( T I MEDAT E-T0 )/60 )

) ft" m i n

.

3970 ! PRINTOUT HEADER AND FDAT ARRAY (tc TEMPERATURES VS. TIME)

3975 IF Nf>0 THEN ! IF THERE IS FINAL DATA. . .PRINT IT OUT

3980 ON ERROR GOTO Prntr_err

3985 PRINTER IS 701 3990 PRINT USING "O , / . 1 6A . 8A ,/ , 8X , 72A . 2/" ; " FILE NAME : " , F i I e_spec9$( 1 ) [

1 , 7]

,

F i I e_specs$(3)

3995

4000

4005

PRINT

PRINT

PRINT

TABLE OF CORRECTED THERMOCOUPLE TEMPERATURES :"

4010

LATE POWER"

PRINT "TIME TOP AUX. PLATE TOP MAIN PLATE BOT. MAIN PLATE BOT. AUX. P

4015

T 4020

4025

(Watt)"

PRINT

PRINT

1 = 1

" (min) T(C) del T T(C) del T T(C) del T T(C) del

4030 WHILE Kdat ( I )<>0

4035 PRINT USING "X , DDD . 1 X ,; Tme ( I )/60

.

4040 FOR J=2 TO 8 STEP 2 4045 IF J=8 THEN PRINT USING "X.#"

4050 IF (Ftdot(J-1 ,I)+Ftdat(J,I))<10000. THEN

4055 PRINT USING "DDDD . DDD , 1 X , #

" ; Ft da t

( J-1 , 1 )+Ft dot ( J . I

)

4060 ELSE

4065 PRINT USING "5A , 4X .

; ">1 0t4"

4070 END IF 4075 Del tot=Ftdat(J, I) 4080 IF ABS(De I tat)<10 THEN

4085 PRINT USING "SD. DDD, IX,#" ;De I tat 4090 ELSE

4095 PRINT USING "4A , 3X .

; ">"ftVAL$(SGN(De I t a t ) )4" 1 0

" 4100 END IF 4105 IF J<>8 THEN PRINT USING "IX.#"

4110 NEXT J 4115 Nepp=INT(Tme(I)/Ts)

4120 IF Nepp>Ne OR Nepp<1 THEN 4125 IF Nepp>Ne THEN Nepp=Ne

4130 IF Nepp<1 THEN Nepp=1

4135 PRINT " TIME/DATA POINT ERROR FOR POWER CALC. AT " ;Tme( I )/60; " MINUTES

4140 CALL Err_record(" TIME/DATA POINT ERROR FOR POWER CALC. AT "4VAL$(Tme(

I)/60)4" MINUTES")

4145 BEEP 83*3, .

1

4150 END IF

A12
4155

4160

4165

4170

4175

4180

4185

4190

4195

4200

4205

• 1 . E+6

4210

• 1 . E+6

4215

• 1 . E+6

4220

4225

4230

4235

4240

4245

4250

4255

4260

4265

4270

4275

4280

4285

4290

4295

4300

4305

4310

4315

4320

4325

4330

4335

4340

4345 ! 4350 ! 4355

4360

4365

4370

4375

4380

4385

4390

4395

4400

4405

4410

4415

4420

4425

4430

4435

TS YOU

4440

4445

4450

4455

4460

4465

4470

4475

4480

4485

4490

Power»Pdat(1 , Nepp) *Pdot (2 , Nepp)

IF Power<1000 THEN

PRINT USING "DDD.DD" ; Power

ELSE

PRINT USING "1X,5A";">1000"

END IF

1 = 1 + 1 END WHILE

PRINT

PRINT DVM ZERO

PRINT " GAP 195

OFFSETS (microV) AT BEGINNING AND END OF PHASE 2 BEGIN=";2history(3.2)*1 .E+6 END=‘';Zhistory(3,1)

PRINT

PRINT

JRL181 (R3) : BEGIN=" ;Zh i st ory ( 1 . 2)* 1 . E+6 ; " , END=" ;Zhi story(1 . 1

)

JRL181 (R2) : BEGIN=" ; Zh i st ory (2 . 2) • 1 . E+6 ; " . END=" ;Zhi story(2 , 1

)

PRINT

PRINT

PRINT

PRINT

PRINT

PRINT

PRINT

PRINT

PLATE TEMPERATURE CONTROL SETPOINT OFFSETS ( T (tc) - T (RTD) ) " TOP PLATE =

" MAIN PLATE =

" BOTTOM PLATE =

USING "3/"

" ;Sp_corrf3)

" : Sp_cor r (5)

" ;Sp_corr(4)

K"K"

K"

INLET WATER TEMPERATURE HISTORY :

ALLOCATE Cwdum( 1 : 2*Ncw)

FOR Joy=1 TO New

Cwdum(Jay*2)=Cwater(1 , Joy) ! TEMPERATURE

Cwdum( Joy *2— 1 )=Cwo t e r (2 , Joy )

! TIME

NEXT Joy

PRINT Cwdum(*)

DEALLOCATE Cwdum(*)

IF Rterr<>0 THEN

PRINT USING "2/"

PRINT " ERRORS THAT OCCURRED DURING PROGRAM EXECUTION

FOR Isis=1 TO Rterr

PRINT " "&VAL$( I s i s)&" : "4:Run_e r rors$( I s i s)

NEXT Isis END IF ! +++ PRINTER IS 1 ON ERROR GOTO Sysequil_err

END IF

THIS SECTION GIVES THE USER 10 MIN. TO DISPOSE ANY PLOTS

PRINT USING "O" FOR 1=10 TO 20

BEEP 83*1 . .01 NEXT I BEEP 83*21 . .3 FOR 1=1 TO 9 ON KEY I LABEL "" GOTO 4420

NEXT I DISP "" ON KEY 4 LABEL " END RUN " GOTO 4455

ON KEY 0 LABEL " CHANGE PLOT" GOTO 4415

GOTO 4420

CALL Plot_swi tch

T pouse=TIMEDATE

LOOP

Tbusy=T IMEDATE—T pause

DISP " YOU HAVE " ; 10-( INT((TIMEDATE-Tpouse)/6) )/10; " MIN. TO DISPOSE ANY PLO

WANT .

IF TIMEDATE-Tpause-Tbusy>2 THEN Tpause=TIMEDATE

EXIT IF TIMEDATE-Tpause>600 ! EXIT LOOP AFTER 10 MIN. END LOOP

DISP ""

IF (Flag$="OK" OR Flog$="RUN ABORTED") AND Nf>0 THEN CALL F i no l_ove roges

IF Nf>0 AND Got_it=0 THEN

CALL Record_dota

Got_i t=1 END IF IF Flag$o"OK" THEN Err_chk

A13
4495 NEXT Run 4500 I END OF MAIN PROGRAM LOOP

4505 I 1

!

4510 1 —

4515 111 4520 IF Flog$-=*‘OK" AND ERRM$="" THEN

4525 CALL Sys_8hutdown

4530 GOTO End

4535 END I

F

4540 Err_chk: 1 4545 1 FATAL ERROR SECTION

4550 OFF CYCLE

4555 PRINTER IS 1 4560 CALL Sys_shutdown 1 ZERO OUT THE POWER SIGNALS

4565 IF Nf>0 AND Got_it=0 THEN

4570 CALL Record_data

4575 Got_it=1

4580 END I

F

4585 IF Flag$="RUN ABORTED" THEN

4590 PRINT USING "0,10/"

4595 PRINT " THE RUN HAS BEEN ABORTED I" 4600 GOTO End

4605 END I

F

4610 IF Flag$O"0K" THEN

4615 PRINT USING "0.5/"

4620 PRINT " THE FOLLOWING PROBLEM OR PROBLEM AREA CAUSED PROGRAM TERMINATION :" 4625 PRINT Flag$

4630 PRINT

4635 END IF 4640 IF ERRM$<>"" THEN

4645 PRINT " THE FOLLOWING ERROR WAS THE LAST TO OCCUR DURING PROGRAM EXECUTION :" 4650 PRINT ERRM$

4655 END IF 4660 1 END OF ERROR CHECKING SECTION

4665 IF Flag$O"0K" AND Run<=Nexp THEN

4670 ON KBD GOTO Rezume

4675 DISP "STRIKE ANY KEY TO END THE BEEPING"

4680 FOR 1=14 TO 28 STEP 2 4685 BEEP 81 .38*1 , .01 4690 NEXT I 4695 BEEP 81 .38»28. .4 4700 Tbeep=TIMEDATE

4705 IF TIMEDATE-Tbeep<.4 THEN GOTO 4705

4710 GOTO 4680

4715 Rezume: 1 4720 OFF KBD 4725 DISP " " 4730 END IF 4735 GOTO End

4740 1 4745 Prntr_err: ! ERROR TRAP SECTIONS FOR MAIN LOOP

4750 I TRAP PRINTER ERRORS AND RECOVER PROGRAM OPERATION

4755 PRINTER IS 1 4760 PRINT " ";ERRM$

4765 BEEP 83*10, .3 4770 ON ERROR GOTO Sysequil_err

4775 GOTO 4330

4780 Sysequi l_err: 1 ERROR TRAP SECTION FOR MAIN LOOP

4785 ON ERROR GOTO Sysequi l_err

4790 IF ERRL(2680) OR ERRL(2690) OR ERRL(2695) OR ERRL(2725) OR ERRL(2730) OR ERRL(2735

) OR ERRL(2740) OR ERRL(2745) THEN

4795 PRINTER IS 1 4800 PRINT USING "0.5/"

4805 PRINT " PRINTER ERROR ... CORRECT THE PROBLEM IF POSSIBLE"

4810 PRINT

4815 PRINT " ";ERRM$

4820 BEEP 83*15,-3

4825 GOTO 2750

4830 END I

F

4835 IF ERRL(3245) THEN GOTO 3250

4840 IF ERRL(3410) THEN GOTO 3415

4845 Er r l_f I og=0

A14
4850 IF ERRL(3475) THEN GOTO 3480

4855 I IF THE ERROR IS NOT A PLOTTER ERROR THEN SET 'FLAGS’ AND STOP EXECUTION

4860 IF Flog$-"OK" THEN Flog$=‘' MAIN LOOP ERROR "iERRMS

4865 PRINTER IS 1 4870 GOTO Err_chk

4875 I- 4880 Al pha_togg I e : 1 4885 IF Sc reen_prnt*1 THEN

4890 Sc reen_prnt=0

4895 PRINT USING "O" 4900 ON KEY 8 LABEL " OFF" GOSUB 4990

4905 ELSE

4910 Screen_prnt=1

4915 ON KEY 8 LABEL " ON" GOSUB 4990

4920 END IF 4925 RETURN

4930 I 4935 Set_td_vars ; 1 4940 Stoble$="Y"

4945 P_stable$="Y"

4950 T_stable$="Y"

4955 Fi le_specs$(3)[l]=" USER DETERMINED STABILITY AT : "&VAL$( INT( (Ne*Ts)/6+ . 5)/1 0)4"

min. ; " 4960 Td0=Ne*Ts

4965 P2n=Ne

4970 Esum=0

4975 Tsum=0

4980 Tsum2=0

4985 Etsum=0

4990 RETURN

4995 ! 5000 Set_f i n i_vars : ! 5005 ! COLLECT DATA FOR AT LEAST ' Tavg_ i n t e r va

I ' SECONDS BEFORE STORAGE

5010 IF (Nf>INT((Tavg_interval)/(Ntm*Ts)+1)) OR (TIMEDATE-T0>T I im) OR (Nf=Nfmax) THEN

5015 Fini$="Y"

5020 DISP " THE TERMINATION SEQUENCE HAS BEGUN ... DO NOT HIT ANY OTHER KEYS!!"

5025 ON KEY 7 LABEL "FINISHING RUN!" GOSUB 5090

5030 CALL Pack_queue (Queue (*), Nq . Qseq3( *), Nqs3)

5035 I gf I og=1

5040 ELSE

5045 IF Td0>0 THEN

5050 T_to_wai t=INT((Tavg_i ntervc l-(TIMEDATE-T0)+Td0+3*Ts*Ntm)/6)/10

5055 IF T_to_woit<.1 THEN T_to_wait=.1

5060 DISP " YOU DON’T HAVE ENOUGH DATA! YOU NEED " ;T_to_wo i t

; " MORE MINUTES OF

DATA"

5065 ELSE

5070 DISP " YOU DON’T HAVE ANY DATA YET" 5075 END IF 5080 END IF 5085 Disp_f lag=TIMEDATE

5090 RETURN

5095 ! 5100 Count_delay: ! 5105 Tcomputer=TIMEDATE

5110 RETURN

5115 ! 5120 Finish_mode: ! 5125 IF Use r_ove r r i de=1 THEN

5130 Use r_ove r r i de=0

5135 Tcompute r=TIMEDATE

5140 ELSE

5145 Use r_ove r r i de=1

5150 END IF 5155 RETURN

5160 !—— 5165 End: ! END OF THE MAIN PROGRAM

5170 PRINT USING "2/.50A";" END OF THE PROGRAM5175 IF lo_error>0 THEN

5180 PRINT

5185 PRINT " 10 ERRORS OCCURED DURING PROGRAM EXECUTION , THEY" 5190 PRINT " ARE LISTED IN THE ARRAYS : BAD_INSTR( •

)

5195 PRINT " AND BAD_READ_T IME$( •

)

A15
5200 PRINT

5205 END IF 5210 PAUSE

5215 END 5220 I 1 1 5225 ! I 1 5230 I ////////////////////////////////////////////////////////////////////////

5235 SUB Sys_shutdown

5240 1 TURN OFF ALL POWER SUPPLIES

5245 ON TIMEOUT 7,1 GOTO Shutdown_err

5250 ON ERROR GOTO Shutdown err 5255 PRINT

5260 FOR 1=7 TO 11 5265 Wr i t e_ i o(723 . "OP . "icVAL$( I )k" . 0 , T"

)

5270 NEXT I 5275 CALL Outseven(0)

5280 GRAPHICS OFF

5285 PRINTER IS 1 5290 PRINT USING "O,3/,30A";" ALL POWER SUPPLIES OFF"

5295 ! OPEN ALL JULIE RELAY CONTACTS

5300 Wri te_io(723,"OP,0.255T")

5305 CALL Chan_swi tch(2 , "R3B1X")

5310 PRINT USING "50A./";" JULIE RELAY SET TO REST STATE : CHANNEL 2 SHORT"

5315 SUBEXIT

5320 Shutdown_err

5325

5330

5335

5340

5345

5350

5355

5360

5365

5370

5375

5380

5385

5390

5395

5400

5405

5410

5415

5420

5425

5430

5435

5440

5445

5450

5455

5460

5465

5470

5475

5480

5485

5490

5495

5500

5505

5510

5515

5520

5525

5530

5535

5540

log$="SHUTDOWN_ERR - JULIE RELAY CONTROL PROBLEM"

ERROR IN ’Sys_shutdown ’

: "4ERRM$

IF ERRL(5265) THEN

IF Flog$="OK" THEN F I og$="SHUTDOWN_ERR - POWER SUPPLY CONTROL PROBLEM"

GOTO 5300

END IF

IF ERRL(5300) THEN

IF Flog$="OK" THEN

END IF

IF Flog$="OK" THEN Flog$="

SUBEND

////////////////////////////////////////////////////////////////////////

SUB Sy s_ i n i

t

THIS SUBROUTINE PROMPTS THE OPERATOR TO TURN ON ALL EQUIPMENT

AND WAIT A SPECIFIED LENGTH OF TIME (1 hr) FOR THE SYSTEM TO

WARM UP. AFTER THE WARMUP PERIOD IS COMPLETE THIS ROUTINE : 1) SETS ALL DVM’S TO INITIAL SETTINGS

2) ZERO’S OUT D/A SIGNALS TO THE KEPCO POWER SUPPLIES

AND 3) INITIALIZES ALL CONSTANT VALUE DATA ARRAYS

VARIABLES : Alpha(5) : Alpha values for the RTD calibrations

Delta(5) ; Delta values for the RTD calibrations

R0(5) : RTD resistance values at 0 deg C Tc_data(9) : NISI L-NICROSI L T.C. COEFFICIENTS FOR THE BASE

EQUATION OF EMF AS A FUNCTION OF TEMPERATURE.

( from NBS monograph 161, p.49, toble 7.3.2 ) Tc_correct ion(4) : COEFFICIENTS FOR ADJUSTMENT OF NISIL-NICRO.

TC BASE EQUATION TO FIT EXPERIMENTAL DATA FOR THE TC WIRE SPOOLS USED.

( curve fit to (experimental data - predicted data)

June 28,1984 NBS calibration of tc wire and NBS

monograph 161, p.133, table C2 ) Quart ic_dato(5,2) : COEFFICIENTS FOR NISI L-NICROSI L TC BASE

EQUATION OF TEMP. AS A FUNCTION OF EMF (USED AS

A FIRST APPROX. OF TEMP. IN A NEWTON-RAPHSON

ITERATION)

.

( from NBS monograph 161, p.106, table A9 ) COM /Ad j ust I oca 1/ Summ(*)

COM /Dtl/ Fi I e_specs$(*) ,Mode$(*) ,( COM /Conv_dat/ R0(1 :5) ,AI pha(1 :5) ,IGos$( •

)

Delta(1:5)

COM /Ctrl/ Cdata(* ) ,Cset(*),Cntrl_vl im(*), Loop_ la be !$(•), Cstr$(*) ,Mhvmax

COM /FI/ Flag$

COM /Htrl/ Htr_res

COM /Htr3/ Ht r label$(1 :5)[14]

COM /Instr/ Mh181 , Jr 1 181 ,Mh195,Tap195,Bap195, Ig195

COM /loscan/ Queue(*),Nq,0seq1(*),Nqs1,Qseq2(*),Nqs2,0seq3(*),Nqs3,0seq4(*),Nqs

4,0seq5(*) ,Nqs5,Oseq6(*) ,Nqs6

5545 COM /Jrichan/ Chan ,Tchan , Dvm_cmmd$ ,Def au I t_chan

5550 COM /Readi/ Io_er ror ,Bad_i nst r(*) ,Bad_read_t ime$(*)

A16
5555 COM /Rtd_corr/ Tcor r_rtd ,Rtd_odj_f I og ,Sp_corr(*)

5560 COM /Sb3/ Fd(*) ,Tavg_acan

5565 COM /Stable/ Sd I im( • ) , Sp_e r r I i m( • ) , Pnze , Ksd ,Ks I p , Knze

5570 COM /Tcdat/ Tc_dat o( 1 : 9) , Tc_cor reel i on( 1 : 4) .Qua rt i c_doto( 1 ; 5 , 1 : 2)

5575 COM /Zeros/ 2 j r 1 1 81_200 . Z j r M 81_20 , Zgapi 95 , Zh i story (•

)

5580 ALLOCATE Heoter_res(1 :5)

5585 Scuz—

1

5590 I ZERO OUT THE PID SUMM ARRAY

5595 MAT Summ= (0)

5600 I ZERO OUT PART OF THE SPECIFICATIONS STRING ARRAY

5605 F i I e_specs$( 1 ^»»RPT$( " ",80)

5610 F i I e_specs$(2 )=RPT$( " ",80)

5615 Fi le_specs$(3)=RPT$^’ ”,80)

5620 I DISPLAY SYSTEM POWER UP EQUIPMENT LIST AND TIME LIMIT 5625 T0_wormup=TIMEDATE

5630 PRINT USING " 0 ./"

5635 PRINT CHR$(129)

5640 PRINT II II 5645 PRINT M TURN ON THE FOLLOWING PIECES OF EQUIPMENT II 5650 PRINT II II 5655 PRINT II A) THE PRINTER II 5660 PRINT II B) THE MULT I PROGRAMMER II 5665 PRINT II c) THE SIX KEITHLEY DVM’S ( 4-195’S AND 2 181 ’S ) 5670 PRINT II D) THE FIVE KEPCO POWER SUPPLIES II 5675 PRINT II E) BOTH JULIE RELAYS II 5680 PRINT II F) THE FLUKE POWER SUPPLY ( BETWEEN 1 .5mA AND 0.5mA) " 5685 PRINT II G) THE WATER SUPPLY !

!

II 5690 PRINT II II 5695 PRINT II II 5700 PRINT II WHEN THE EQUIPMENT HAS BEEN TURNED ON, WAIT 1 HR. II 5705 PRINT It FOR THE SYSTEM TO COMPLETELY WARM UP. II 5710 PRINT II II 5715 PRINT CHR$(128)

5720 PRINT USING "9X. 1A.46A" ;CHR$(131 )

. " WHEN THE SYSTEM IS READY. HIT ’ CONT

5725

5730

5735

5740

5745

5750

5755

5760

5765

5770

5775

5780

5785

5790

5795

5800

5805

5810

5815

5820

5825

5830

5835

5840

5845

5850

5855

5860

5865

5870

5875

5880

5885

5890

5895

5900

5905

PRINT CHR$(128)

PAUSE

PRINT USING "0.5/"

GOTO 5800 !!! REMOVABLE SKIP

IF (TIMEDATE-T0_wo rmup)<3600 THEN

INPUT " HAS IT REALLY BEEN ON FOR

THEN

OK . IF Ans$="Y"

PRINT " WAIT 1.5

ELSE

PRINT " WAIT 1 .5 GOTO 5630

END IF END IF ASSIGN DVM

I g1 95=706

Mh195=707

Tapi 95=708

Bap195=709

J r 1181=710

Mh181=712

ONE HOUR (Y/N)??" .Ans$

I WAS JUST CHECKING!"

JUST AS I SUSPECTED! YOU MUST BE PATIENT!

ADDRESSES

INNER GUARD DVM

MAIN HEATER VOLTAGE DVM

TOP AUX. PLATE DVM

BOTTOM AUX. PLATE DVM

JRL DVM

MAIN HEATER DVM

SET THE RANGE AND DISPLAY VALUES OF ALL THE DVM’S

PRINT USING "0.5/"

PRINT " DVM’S ARE NOW BEING SET " ON TIMEOUT 7.1.0 GOTO Init_err

FOR J=1 TO 2 ! SEND OUT THE DVM SET COMMANDS TWICE

Scuz=0

FOR 1=706 TO 709

OUTPUT I;"R0X" ! SET THE 195’s TO THE AUTO RANGING MODE

WAIT .2 ENTER I;Du(ti WAIT .2 NEXT I Scuz=1

OUTPUT Mh181 ; "R3B1X" ! MAIN RTD

A17
5910 WAIT .2 5915 ENTER Mh181 ;Duin *^090 WAIT 9 5925 OUTPUT Jrl 181 ;"R3B1X"

5930 WAIT .2 5935 ENTER Jr 1 181 ;Dum 5940 WAIT .2 5945 NEXT J 5950 ! ZERO OUT ALL MULT I PROGRAMMER D/A SIGNALS TO THE KEPCO POWER SUPPLIES

5955 Scuz=2

5960 OUTPUT 723;"OP,7.0.8.0.9.0.10,0,11 ,0T"

5965 I ZERO OUT RELAY CARD SIGNAL TO THE 8 BIT D/A FOR THE MAIN POWER S. 5970 CALL Outseven(0)

5975 1 CYCLE THE JULIE RELAYS

5980 PRINT •• THE JULIE RELAYS ARE NOW BEING CYCLED"

5985 FOR 1=0 TO 19 5990 J r l_com=FNChan_s i g( I

)

5995 OUTPUT 723 ; "OP . 0

, "ftVAL$( J r l_com)t"T"

6000 WAIT .05

6005 NEXT I 6010 ! TAKE ZERO READINGS FOR THE JRL181 DVM (ACROSS A SHORT)

6015 PRINT " ZERO READINGS ARE BEING TAKEN OVER SEVERAL DVM RANGES"

6020 PRINT " (THIS TAKES APPROXIMATELY 1 MINUTE )"

6025 Scur=2

6030 J r l_com=FNChan_s i g(2)

6035 OUTPUT 723;"OP,0."4VAL$(Jrl_com)ft"T"

6040 Scuz=1

6045 Wri te_io(Jrl181 ,"R3B1X")

6050 PRINT " JRL DVM 181 200 rtiV SCALE ZERO READING"

6055 WAIT 15 6060 ENTER J r I 181 ;Zj r I 181_200

6065 PRINT " ZERO READING IS ; " ; Z j r 1 1 81_200* 1 . E+6 ; " microvolts"

6070 Write_io(Jrl181 ."R2B1X")

6075 PRINT " JRL DVM 181 20 mV SCALE ZERO READING"

6080 WAIT 15 6085 ENTER Jr 1 181 ;Zj r 1 181_20

6090 PRINT " ZERO READING IS : " ; Z j r 1 1 81_20* 1 . E+6 ; " microvolts"

6095 CALL Chon_swi tch(8,"R3B1X") ! SET JRL RELAY TO TOTAL GAP SIGNAL

6100 PRINT " GAP DVM 195 ZERO READING/CALCULATION"

6105 WAIT 15 6110 ENTER J r I 181 ;V01 6115 Scuz=0

6120 ENTER Ig195;V02

6125 Zgop195=V02-(V01-Zj rl 181_200)

6130 PRINT " ZERO READING IS : " ; Zgapi 95* 1 . E+6 ; " microvolts"

6135 ! SET THE JRL RELAY ON THE DEFAULT CHANNEL

6140 CALL Chon_swi tch(Defoul t_chan,"R3B1X") ! SET JRL RELAY TO DEFAULT

6145 Scuz=—

1

6150 ! 6155 PRINT " THE CONSTANT DATA ARRAYS ARE NOW BEING INITIALIZED"

6160 ! LOAD THE CONSTANT DATA ARRAYS

6165 MAT Cdoto= (0.

)

6170 MAT Bod_reod_t ime$= ("")

6175 MAT Bod_instr= (0)

6180 MAT Sp_corr= (0)

6185 lo_error=0

6190 ! LOAD OPERATING MODE STRING ARRAY

6195 Mode$(1)=" DOUBLE SIDED " 6200 Mode$(2)=" SINGLE SIDED - TOP " 6205 Mode$(3)=" SINGLE SIDED - BOTTOM " 6210 Mode$(4)=" OPERATING MODE

6215 ! LOAD CHAMBER GAS LIST

6220 DATA "HELIUM" . "NI TROGEN" . "AIR" , "ARGON"

6225 READ Gos$(*)

6230 ! LOAD HEATER LABEL ARRAY

6235 DATA "GAP(IG) HTR.","OG HTR.","TOP AUX. HTR.","BOT. AUX. HTR.","MAIN HEATER" 6240 READ Htrlobel$(*)

6245 ! LOAD STRING ARRAY FOR CONTROLLER ADJUST SOFTKEY LABELS

6250 DATA "SETPOINT "." GAIN (K)"," Ti (SEC)"," Td (SEC)","Ti BELL WIDTH"," K BEL

L WIDTH", "K REDUC. FACT."

6255 READ Cstr$(*) ! CONTROLLER PARAMETERS

6260 DATA " INNER GUARD"," OUTER GUARD". "TOP AUX PLATE". "BOT. AUX PLATE"," MAIN PLAT

A18
E"6265

6270

6275

6280

6285

6290

6295

6300

6305

6310

6315

6320

6325

6330

6335

6340

6345

6350

6355

6360

6365

6370

6375

6380

6385

6390

6395

6400

6405

6410

6415

6420

6425

6430

6435

6440

6445

6450

6455

6460

6465

6470

6475

6480

6485

6490

6495

6500

6505

6510

6515

6520

6525

6530

6535

6540

6545

6550

6555

6560

6565

6570

6575

6580

6585

6590

6595

6600

6605

6610

6615

READ Loop_ I abe I $( *

)

I ADD CONSTANT DATA TO THE FD(*) ARRAY AND CANCEL PORTIONS OF IT Fdf 1)-0.

Fd(2^0.

FOR 1-9 TO 20

Fd(I)-0.

NEXT I FOR 1=23 TO 30

Fd(I)=0.

NEXT I Fd(24)=Ts

)=.85

)=.i;

Fd(6

Fd(8

! CONTROL CYCLE TIME

1 PLATE EMISSIVITY

1 METERED AREA DIAMETER (m)

1 GAP WIDTH (m)

RESISTANCE VALUES OF THE PLATE HEATERS (USED TO CALC. Cnt r l_v I irti) NOTE: IF THE TOTAL RESISTANCE IS >11 THE CONTROL V-LIM. WILL BE 10v

= 10.2+. 9

1254

Fd(21)=.0024

Heater_res(

1

Heater_res(2^=1 1 .9 Heater_res(3)=14.

3

Heoter_res(41=14.3

Heater_res(5)=3.7+.9

Ht r_res=Heater_res(5)

INNER GUARD HEATER RESISTANCE + LEAD RES. OUTER GUARD HEATER RESISTANCE

TOP AUX. PLATE HEATER RESISTANCE

BOTTOM AUX. PLATE HEATER RESISTANCE

MAIN PLATE HEATER RESISTANCE + LEAD RES.

MAIN PLATE HTR . RES . (RE-MEASURED DURING RUN)

CALCULATE THE CONTROL VOLTAGE HIGH LIMITS FROM THE HEATER PLATE RES.

( BASED ON 5A - 55V MAX. OUTPUT FOR POWER SUPPLY AND A 0 TO 10 VOLT

CONTROLLER SIGNAL ) FOR 1=1 TO 5 Cntrl_vl im(I )=Heat e r_res ( I)*5./(55./10.)

IF Cnt rl_vl im(I)>10. THEN Cnt r l_v I im( I )=10

.

IF 1=5 THEN Mhvmax=Heate r_res( I ) *5 . ! M.H. v NEXT I ASSIGN VALUES OF STD. DEV. LIMIT AND SET POINT DEV. LIMIT FOR

STABILITY CRITERIA ON ALL PLATES ( TEMP. CONTROLLED LOOPS ). DATA 1.0, 1.0 ! INNER GUARD (MICROVOLTS; LINE 3145)

DATA 2. 0,0. 2 ! OUTER GUARD

DATA .01,. 005 ! TOP AUX. PLATE

DATA .01,. 005 ! BOTTOM AUX. PLATE

DATA .002,. 001 ! MAIN PLATE

FOR 1=1 TO 5

MAX. (BASED ON 5A)

READ Sd I im( I ) , Sp_e r r I i nt( I ) NEXT I ASSIGN VALUES OF SLOPE AND 2 STD. DEV. FOR POWER

AND 2 STD. DEV. AND SLOPE FOR k , AND 2 STD. DEV. FOR POWER

THE MAIN PLATE POWER AND THERMAL CONDUCTIVITY

DATA .003 ! POWER

READ Pnze

DATA 0.3,0.08, .0020 ! THERMAL CONDUCTIVITY (k)

READ Ksd , Ks I p , Knze

! DATA FOR THE RTD SERIAL NUMBERS Z603 , J57 , Z597 , Z602 , AND J52, RESPECTIVELY

! 1=REF. BLOCK, 2=OG , 3=T0P PLATE, 4=B0TT0M PLATE, 5-MAIN PLATE

DATA 100.059,99.63,100.269,100.049,99.977

READ R0(*)

R0(3)=R0(3)-.86 !!! SYSTEM DEPENDENT ’TUNING’ FACTOR (TAHP)

R0(4)=R0(4)+.052 !!! SYSTEM DEPENDENT ’TUNING’ FACTOR (BAHP)

R0(5)=R0(5)-.31 Ml SYSTEM DEPENDENT ’TUNING’ FACTOR (MAIN PLATE)

DATA .00389613, .00390382, .00390608, .00390002, .00390316

READ Al pha(*)

DATA 1 .310780,1 .501776,1 .456476,1 .398146,1 .510977

READ De I ta(*)

! DATA FOR NIS.-NICRO. T.C. TEMP. /VOLT CONVERSION EQUATION

! NBS MONOGRAPH 161 , PAGE 49 , TABLE 7.3.2 FOR AWG 14 WIRE

DATA 25.897798582,1 . 66561 2771 3E-2 , 3 . 1 234962101 E-5 ,-1 . 72481 30773E-7

DATA 3 . 6526665920E-1 0 ,-4 . 4390833504E-1 3,3.1 553382729E-1

6

DATA -1 .2150879468E-19, 1 . 95571 97559E-23

READ Tc_dato(*)

DATA 2 . 731 34350E2 , 2 . 94724845E2 , 3 . 87205729E-2 ,3.21321 378E-2

DATA -1 .09710024E-6,-2.89538382E-7,5.25218480E-1 1 , 5 . 021 1 4728E-1

2

DATA -1 .14636136E-15,-2.61445196E-17

READ Quart ic_data(*)

data -4. 069431 53E-1 , 3 . 1 4764457E-1 ,-1 . 07467859E-3 , 1 .29379614E-6

READ Tc_cor rect i on( •

)

! LOAD THE SCANNER QUEUES

A19
6620

6625

6630

6635

6640

6645

6650

6655

6660

6665

6670

6675

6680

6685

6690

6695

6700

6705

6710

6715

6720

6725

6730

6735

6740

6745

6750

6755

6760

6765

6770

6775

DATA 18,1.3.13.4.14,5,15,6.16.16.6.15,5.14.4,13,3.18.1

READ Qseql (•)

DATA 18,1

READ Q9eq2(*)

DATA 7. 8, 9.

2

READ 09eq3(*)

DATA 19,11

READ 09eq4(*)

DATA 2.8

READ Q9cq5(*)

DATA 2.3.13.4.14.5.15.6.16

tc CHANNELS FOR T AND DEL T OF THE PLATES

(AND REF. RTD CHANNELS AFTER Td0 IS ASSIGNED).

REF. RTD CHANNELS BEFORE Td0 IS ASSIGNED.

IG tc SEQUENCE (TAKEN AT END OF RUN).

MAIN HEATER CURRENT READING.

DVM ’ZERO' CHANNELS (JRL181 AND IG195)

READ Qseq6(*) I T.C. READ FOR RTD CALIBRATION IN PHASE 1

1 PAUSE FOR A FEW SECONDS TO ALLOW USER TO VIEW SCREEN

WAIT 3 SUBEXIT

I n i t_e r r : I Flag$="SYSTEM INITIALIZATION ERROR"

IF Scu2=0 THEN F I ag$="SYSTEM INITIALIZATION ERROR,

IF Scu2=1 THEN Flog$="SYSTEM INITIALIZATION ERROR,

IF Scu2=2 then F I og$=" system INITIALIZATION ERROR.

BEEP 81 .38*12.1 .5 SUBEND

! ////////////////////////////////////////////////////////////////////////

SUB I n i t_run_vQ rs (N)

THIS ROUTINE INITIALIZES VARIABLE ARRAYS THAT MUST BE RE-INITIALIZED

AT THE BEGINNING OF EACH RUN. PARAMETERS : N : CURRENT RUN NUMBER

KEITHLEY 195 PROBLEM"

KEITHLEY 181 PROBLEM"

MULT I PROGRAMMER PROBLEM"

ALLOCATE Dumm$[80] , DufTim4$ [80] ,Dumm5$[80]

COM /loscon/ Queue(*) .Nq.Oseql (*) ,Nqs1 ,09eq2(*) ,Nqs2 ,Oseq3(*) ,Nqs3.Qseq4(*) ,Nqs

4,Oseq5(*) ,Nqs5,Qseq6(*) ,Nqs6

6780 COM /Ctrl/ Cda t o( ) , Cse t (* ) .Cnt r l_v I irti( • ) , Loop_ I obe 1 $(* ) ,Cst r$( • ) .Mhvmox

6785 COM /Manual/ Powe rf I ag , Vread i ng(*

)

6790 COM /Mcl/ Ts.Ne.Edat(*),Pdat(*).Nr.Rtdat(*),Nf .Fedat(*).Ftdat(*),Kdat(*).Tme(*)

, Nrmax , Nfmax , T I im 6795 COM /Mc5/ Op_r!)ode ( • ) , Ht emp( • ) , Lt e(np( • )

, Ht_mode ( * ) , F i I e_num( • ) , Set_t emp( *

)

6800 COM /Dtl/ F i I e_specs$ ( * ) ,Mode$( • ) ,Gas$( *

)

6805 COM /FI/ Flag$

6810 COM /Gri/ P I o t_v i ew , P I o t_t y pe , P i ndex

6815 COM /Gr2/ XI . X2 , X i nc , Y1 , Y2 . Y i nc . Xt i t$ , Yt i t$

6820 COM /Run_err/ R t e r r , Run_e r ro r s$( * ) , Er r_max 6825 COM /Sb3/ Fd(*) ,Tovg_i nterva

I

6830 COM /Tcsti/ Store_flag

6835 COM /Tunel/ At une( * ) . Ok_f I ag (• ) , Sp I 09t (•)

6840 COM /Water/ Ncw,Cwater(*)

6845 ! ZERO THE DATA ARRAYS

6850 MAT Edat= (0.)

6855 MAT Ftdat= (0.

)

6860 MAT Pdat= (0.

)

6865 MAT Rtdat= (0.

)

6870 MAT Fedat= (0.)

6875 MAT Kdat= (0.)

6880 MAT Tme= (0.)

6885 MAT Queue= (-1)

6890 MAT Ok_flag= (0)

6895 MAT Cwater= (0)

6900 MAT Run_errors$= ("")

6905 Rterr=0

6910 Ncw=0

6915 Ne=0

6920 Nr=0

6925 Nf=0

6930 ! MISC. VARIABLE INITIALIZATIONS

6935 Store_flag=0 I THIS IS THE BEGIN STORE SEQUENCE FLAG ON tc’s 6940 I SET THE POWER ON/OFF FLAG

6945 Powerflog=1 ! 1=ON ; 0*OFF

6950 I SET FILE_SPECS ARRAY TO NULL STRINGS

6955 Dumm$=F i I e_9pecs$( 1 )

[ 1 , 4]

6960 Dumm4$=F i I e_9pecs$(4)

6965 Dumm5$=F i I e_specs$(5)

A20
6970

6975

6980

6985

6990

6995

7000

7005

7010

7015

7020

7025

7030

7035

70A0

7045

7050

7055

7060

7065

7070

7075

7080

7085

7090

7095

7100

7105

7110

7115

7120

7125

7130

7135

7140

7145

7150

7155

7160

7165

7170

7175

7180

7185

7190

7195

7200

7205

7210

7215

7220

7225

7230

7235

7240

7245

7250

7255

7260

7265

7270

7275

7280

7285

7290

7295

7300

7305

7310

7315

7320

7325

MAT File_specs$= (RPT$(" ",80)) FILL THE File_speca$ ARRAY WITH REFERENCE DATA ON THE CURRENT FILE

F i I e_spec8$(4) 1

\ =Dumm4$

Fi le_specs$(5^ 1 1 =Dutnm5$

Fi I e_specs$( 1 )

[

1 J=Dumm$

Dumm$=VAL$f F i le_num(N))

SELECT LEN(Dumm$)

CASE 1 D utnm$= " 00 " icD umm$

CASE 2 D umm$= " 0 " to umin$

CASE ELSE

END SELECT

I ZERO OUT PART OF THE FD(*) ARRAY

Fdf 1)=0.

Fd(2)=0.

FOR I»=9 TO 20

Fd(I)-=0.

NEXT I FOR 1=23 TO 30

Fd(I)=0.

NEXT I Fd(24)=Ts

Fd( 1 5)=Op_mode (N)

Dumm$=DufTtm$ic" “icDATE$(TIMEDATE)&" "4TIME$(TIMEDATE)

Fi I e_specs$( 1 ) [5]=Dumm$4" "4Mode$(4)4Mode$(Op_mode(N)

)

ASSIGN THE CONTROLLER TEMPERATURE SET POINTS (C)

Set_temp(5)=Htemp(N) ! MAIN HEATER TEMPERATURE SETPOINT

Set_temp(2)=(Htemp(N)+Ltemp(N))/2 ! OUTER GUARD TEMPERATURE SETPOINT

M=Op_mode(N) ! 1=DBLE SIDED, 2=T0P , 3=B0TT0M

IF M=1 OR M=2 THEN Set_temp(3)=Ltemp(N)

IF M=1 OR M=3 THEN Set_temp(4)=Ltemp(N)

IF M=2 THEN Set_temp(4)=Htemp(N)

IF M=3 THEN Set_temp(3)=Htemp(N)

Set_tefnp( 1 )=0

.

CALL Set_pnt_calc

IF N=1 THEN

ASSIGN VALUES OF K (GAIN), Ti, Td, Ti BELL WIDTH (TiBW), K BELL WIDTH

(KBW), AND K REDUCTION FACTOR (KRF) FOR EACH CONTROL LOOP ON FIRST RUN

TOP PLATE S.P. BOTTOM PLATE S.P. BOTTOM PLATE S.P. TOP PLATE S.P.

IG Delta T SETPOINT

CALCULATE SETPOINTS IN OHMS

(VALUES FOR TiBW AND Kbw ARE IN VOLT UNITS FOR IG)

DATA 180E3, 90, 0, 7E-5, 6E-8, .33 ! cont ro

1

1 e r #1 IG DATA 200, 400, 0, 1.0, .002, . 1 ! cont ro

1

1 e r #2 OG

DATA 600, 200, 0, 0.14, IE-4, .038 ! cont ro

1

1 e r #3 TOP PLATE

DATA 600, 200, 0, 0.14, IE-4, .038 ! control ler #4 BOTTOM PLATE

DATA 100, 4000, 0, 0.04, .007, .05 ! cont ro

1

1 e r #5 MAIN PLATE

FOR 1=1 TO 5 FOR J=2 TO 7 READ Cset(I . J)

NEXT J NEXT I END IF

! SET THE DEFAULT CRT PLOT PARAMETERS AND PLOT A BLANK GRAPH

Plot_view=0 ! FULL PLOT

Plot_type=1 ! RTD TEMPERATURES

Pindex=5 ! MAIN HEATER PLATE

CALL PI ot_prep(X1 , X2 , X i nc , Y1 . Y2 , Y i nc , Xt i t$ , Yt i t$)

CALL Pblonk(X1 ,X2,Xi nc,Y1 ,Y2,Yinc,Xt i t$,Yt i t$)

SUBEND

! ////////////////////////////////////////////////////////////////////////

DEF FNTemp_rtd(Rtd_num,Ohms)

! THIS ROUTINE CONVERTS OHMS TO TEMPERATURE (C)

! FOR THE ROSEMOUNT PLATINUM RTD’S USING THE ITPS-68 FORM OF THE

! CALLENDAR-VAN DUSEN EQUATION.

COM /Conv_dot/ R0(*) ,AI pho(*) ,De I ta(*)

ON ERROR GOTO Temp_rtd_err

R=R0(Rt d_num)

A=AI pha(Rtd_num)

D=De I to(Rtd_num)

A1=D/10000

B1=-1-D/100

A21
7330

7335

7340

7345

7350

7355

7360

7365

7370

7375

7380

7385

7390

7395

7400

7405

7410

7415

7420

7425

7430

7435

7440

7445

7450

7455

7460

7465

7470

7475

7480

7485

7490

7495

7500

7505

7510

7515

7520

7525

7530

7535

7540

7545

7550

7555

7560

7565

7570

7575

7580

7585

7590

7595

7600

7605

7610

7615

7620

7625

7630

7635

7640

7645

7650

7655

7660

7665

7670

7675

7680

7685

C1-(0htns-R)/(R*A)

Sq-=B1t2-4*A1*C1

T1-=(-B1-S0R(Sq))/(2*A1)

T2-T1

Cnt-0

REPEAT

Cnt->Cnt + 1 T3=T2

T2=T 1 + . 045* ( T2/1 00 ) •( T2/ 1 00- 1 ) • ( T2/4 1 9 . 58-1 ) *( T2/630 . 74-1

)

IF Cnt=11 THEN PRINT " RTD ITERATIONS >10"

CALL Er r_record( "SUB ’ FNTemp_rtd ’ ITERATIONS>10")

BEEP 83*15, .2 END IF UNTIL ABS(T3-T2)<.0001 OR Cnt>10

OFF ERROR

RETURN T2

Temp_rtd_e r r : ! PRINT " TEMP_RTD ERROR ";ERRM$

CALL Err_record(ERRM$)

GOTO 7405

FNEND

! ////////////////////////////////////////////////////////////////////////

DEF FNTemp_tc(Emf

)

! THIS SUBROUTINE CONVERTS tc EMF (VOLTS) TO TEMP. (C)

! USING CONVERSION CALIBRATIONS FROM THE MEASUREMENT THERMOCOUPLE

! THERMOPILES AND NBS MONOGRAPH 161 (see ’Sys.init’).

COM /S 52/ I_rtd,Tref ,Emf_ref

COM /Tcdat/ Tc_dot a( •), Tc_cor rect i on( •) .Quart i c_dota( •

)

ON ERROR GOTO Temp_tc_err

V=(1 .0E+6)*(Emf+Emf_ref )! CONVERT TO MICROVOLTS

SELECT V CASE <10592

R2=1

CASE >=10592

R2=2

END SELECT

T=0.

! FIRST TEMP. APPROX. (K)

IF V<>0 THEN

FOR 1=1 TO 5 T=T+Quo r t i c_dat a( I ,R2)*(Vt(I-1))

NEXT I ELSE

T=Oua rt i c_data( 1 ,R2) END IF T=T-273.15 ! CONVERT TO degrees Celsius

Cnt=0

REPEAT

M i cv=Tc_co rrect ion(1)

De r i v=T c_dot o (

1

)

FOR 1=1 TO 9 Mi cv=Mi cv+Tc_dat a( I ) * (Tt I

)

IF I>1 AND I<5 THEN M i c v=M i c v+Tc_co r rec t i on ( I ) * (Tt ( I— 1 )

)

IF I>1 THEN De r i v=De r i v+I *Tc_da ta( I ) • (Tt ( I— 1 )

)

NEXT I T2=T

IF De r i v<>0 THEN T=T+(V—M i c v)/De r i

v

Cnt=Cnt+1

IF Cnt=11 THEN PRINT " FNTemp_tc SUB T.C. ITERATIONS >10"

CALL Err_record("SUB ’FNTemp_tc’ ITERATIONS>10")

BEEP 83*15, .2 END IF UNTIL ABS(T2-T)<.0001 OR Cnt>10

RETURN T Temp_tc_err: ! OFF ERROR

PRINT " TEMP_TC SUBROUTINE ERROR ; "icERRM$

CALL Err_record(ERRM$)

FNEND

! ////////////////////////////////////////////////////////////////////////

A22
7690 SUB Ref_rtd(V.Tmr)

7695 I THIS SUBROUTINE TAKES THE REF. BLOCK DVM VOLTAGE READING (V) CONVERTS

7700 1 THE VALUE TO TEMPERATURE, AND THEN STORES IT IN THE Rtdat ARRAY.

7705 COM /FI/ Flag$

7710 COM /Sbl/ T0,Td0

7715 COM /Sb2/ I.rtd.Tref ,Etnf_ref

7720 COM /Mcl/ Ts.Ne.Edot (•) ,Pdot(*) , Nr , Rtdat (*) ,Nf , Fedot (•), Ftdat(*) ,Kdat (*) ,Ttne(*) .Nrmox .Nfmox ,T I im 7725 ON ERROR GOTO Ref_rtd_err

7730 Ohms=ABS(V/I_rtd)

7735 Nr*Nr+1

7740 Rtd_num=1

7745 T ref2*=FNTemp_rtd(Rtd_num,Ohms)

7750 IF ABS(Tref-Tref2)<10. OR Tref=0. THEN

7755 Tref=Tref2

7760 Emf_ref=«=FNEmf_tc(Tref ,1)

7765 ELSE

7770 PRINT " BAD READING FOR THE REFERENCE BLOCK TEMPERATURE !

!

7775 CALL Err_record("BAD READING FOR REFERENCE BLOCK TEMPERATURE")

7780 BEEP 83*5,.

3

7785 END IF 7790 IF Nr<=Nrmax THEN

7795 Rtdat(2.Nr)=Tmr

7800 RtdatO ,Nr)=Tref

7805 ELSE

7810 PRINT " ISO. BLOCK STORAGE ARRAY IS FULL"

7815 CALL Err_record("ISO. BLOCK DATA STORAGE ARRAY IS FULL")

7820 BEEP 83*5,.

1

7825 END IF 7830 SUBEXIT

7835 Ref_rtd_err: ! 7840 OFF ERROR

7845 PRINT " REF_RTD SUBROUTINE ERROR ; "4ERRM$

7850 CALL Err_record(ERRM$)

7855 SUBEND

7860 ! ////////////////////////////////////////////////////////////////////////

7865 SUB F i no l_ove rages

7870 ! THIS SUB CALCULATES THE AVERAGED VALUES FOR PLATE TEMPERATURES,

7875 ! POWER. AND THERMAL CONDUCTIVITY. THESE VALUES ARE THEN ASSIGNED

7880 ! TO THEIR CORRESPONDING DISK STORAGE ARRAY ELEMENTS.

7885 COM /Dtl/ F i I e_specs$( • ) , Mode$( • ) , Gos$( •

)

7890 COM /Mc1/ Ts , Ne , Edat (*) ,Pdat (•), Nr , Rtdat (*), Nf , Fedot (*), Ft dat (), Kdat (•), TfDe( •

)

, Nrmox , Nfmox ,T I im 7895 COM /Mc6/ Ntm , Nt r , Nt p , Nt

z

7900 COM /Sbl/ T0,Td0

7905 COM /Sb2/ I_rtd,Tref , Emf_ref

7910 COM /Sb3/ Fd(*) ,Tovg_scon

7915 IF Nf<1 THEN SUBEXIT

7920 ON ERROR GOTO Calc_err

7925 ALLOCATE Tl ims(1 :2)

7930 Tcolc=TlMEDATE ! RECORD WHEN THE SUB WAS ENTERED (TO TIME EXIT)

7935 WHILE Tme(Nf)=0

7940 Nf=Nf-1

7945 END WHILE

7950 Tlast=Tme(Nf

)

7955 Tend=1 ! INDEX FOR TLIMS(*) , BEGINNING k END OF AVG . SECTION

7960 Tstep=1 ! TIME TOGGLE SIZE (MIN.)

7965 Tl ims(2)=Tme(Nf

)

7970 T I ims( 1 )=T I ims(2)-Tavg_scon

7975 IF Tlims(1)<0 THEN TlimsO)=0

7980 IF Tl ims(2)-TI ims(1 )<=0 THEN SUBEXIT

7985 PRINT USING "0,10/"

7990 BEEP 83*1 1, .3 7995 DISP " SELECT THE TIME ENDPOINTS FOR THE FINAL DATA AVERAGING INTERVAL (BEFORE

T-0) " 8000 ! REDEFINE SOFTKEYS

8005 FOR 1=0 TO 9 8010 ON KEY I LABEL "" GOSUB 8970

8015 NEXT I 8020 ON KEY 9 LABEL "PERFORM AVGS. " GOTO Take_avg

8025 ON KEY 1 LABEL " CHANGE PLOT " GOTO 8055

8030 ON KEY 0 LABEL " SELECT TLIM. " GOTO 8070

A23
8035

8040

8045

8050

8055

8060

8065

8070

8075

8080

8085

8090

8095

8100

8105

8110

8115

8120 1 8125

8130

8135

8140

8145 ! 8150

8155

8160

8165

8170

8175

8180

8185

8190

8195

8200

8205

8210

8215

8220 ! —

8225 Tok

8230 ! 8235

8240

8245

8250

8255

8260

8265

8270

8275

8280

8285

8290

8295

8300 ! 8305

8310

pmt$[20]

8315

8320

8325

8330

8335

8340

8345

8350

8355

8360

8365

8370

8375

8380

8385 1

ON KEY 2 LABEL " SELECT T STEP” GOTO 8100

ON KEY 3 LABEL ” TOGGLE UP " GOTO 8115

ON KEY 8 LABEL ” TOGGLE DOWN " GOTO 8140

GOTO 8160

CALL P I ot_8wi tch

Tcalc-TIMEDATE

GOTO 8160

IF Tend=1 THEN I SELECT Tend (1-BEG. OR 2-=END OF THE RANGE)

Tend=2

ELSE

Tend=1

END IF GOTO 8160

Tstep=Tstep+1 I SELECT Tstep

IF Tstep>10 THEN Tstep=1

GOTO 8160

Tl ims(Tend)=TI inis(Tend)+Tstep*60

DON'T LET THE TEMP. SPAN FALL BELOW TAVG_SCAN SECONDS

IF T 1 ims(2)-T I ims( 1 )<Tavg_scan THEN T I ini9(Tend)>=T I ini3(Tend)-T9tep*60

IF Tl ims(2)>Tlost THEN T I ims(2)=T I ost GOTO 8160

Tl im9(Tend)=T I ims(Tend)—Tstep*60

DON’T LET THE TEMP. SPAN FALL BELOW TAVG_SCAN SECONDS

IF Tl ims(Tend)<Td0 THEN T I i ms(Tend)=T I ims(Tend)+Ts t ep*60

IF T I ims(2)-T I i ms( 1 )<Tavg_scon THEN T I ims(Tend)=T I ims(Tend)+Tstep*60

IF Tend=1 THEN

Te$=" LOWER"

ELSE

Te$="UPPER"

END IF ON KEY 5 LABEL " ”tTe$ GOSUB 8970

ON KEY 6 LABEL ” ”*VAL$( INT(T I ims(Tend)/60) )&" min." GOSUB 8970

ON KEY 7 LABEL " "*VAL$(Tstep)4" min" GOSUB 8970

LOOP

ON KEY 4 LABEL " T - "*VAL$(300-INT(TIMEDATE-Tca I c) ) GOSUB 8970

EXIT IF TIMEDATE-Tcalc>300

END LOOP

e_avg: ! PERFORM AVG . CALC. FIND THE END ARRAY INDEXES

GRAPHICS OFF

DISP " DATA AVERAGING NOW BEING PERFORMED " WAIT .2 Fd(28)=TI ims(2)-TI ims(1) ! AVERAGING INTERVAL (SEC.)

Fd(29)=TI imsO) ! START POINT FOR DATA AVERAGING INTERVAL

Nstart=1

WHILE (Tl ims(1)>Tme(Nstart)+30) AND NstarKNf

Nstort=Nstart+1

END WHILE

Nf i n i sh=1

WHILE (Tl im3(2)>Tme(Nf inish)-30) AND Nfinish<Nf

N f inis h=N f i n i s h+

1

END WHILE

AVERAGE THE TEMP'S FROM THE tc’s (WITH THE deItT CORRECTION)

Ns i ze=Nf i n i sh-Nstart+l

ALLOCATE Temp ( 1 :Nsize) ,Tsec(1 ;Nsize),SI ope( 1 ;5),Avg(1:5),Sd(1;5) , Avgcor r

( 1 : 4) ,S

FOR 1=1 TO 4 Cor rsum=0

FOR J=Nstort TO Nfinish

Temp( J—Ns t or t+1 )=Ftdot(I*2— 1 ,J)+Ftdot(I*2,J)

Tsec(J-Nstart+1 )=Tme(J)

Cor r9um=Cor rsum+Ftdot ( I *2 . J

)

NEXT J Avgcorr(I)=Corrsum/Nsize

CALL Lineor(T9ec(*) ,Temp( * ),Nsize,D1 .SIpe.Meon, St ddev)

AvgO)=Meon ! I = 1=UAP. 2=UMP, 3=LMP, 4=LAP

S I ope( I )=S I pe Sd(I)=Stddev

Fd( 15—1 )=Meon NEXT I COMPUTE POWER AVERAGE

A24
8390

8395

8400

8405

8410

8415

8420

8425

8430

8435

8440

8445

8450

8455

8460

8465

8470

8475

8480

8485

8490

8495

8500

8505

8510

8515

8520

8525

8530

8535

8540

8545

8550

8555

8560

8565

8570

8575

8580

8585

8590

8595

8600

8605

8610

8615

8620

8625

8630

8635

Nst-INT(TI ims(1 )/Ts)

IF Nst<1 THEN Nst=1

Nf in-=INT(TI ims(2)/Ts)

IF Nf in>Ne THEN Nf in=Ne

Npwr*Nf i r>—Nst+1

ALLOCATE Pwr(1 :Npwr) ,Ptfti(1 :Npwr)

FOR I-Nst TO Nf in=Pdot(1 . I)*Pdot(2, I)

= I*Ts

Pwrfl-Nst+1

Ptm(I-Nst+1

NEXT I CALL Linear(PttT)(*),Pwr(*) ,Npwr ,D1 ,Slpe,Mean,Stddev)

Avg(5)“Mean

S I ope(5)*=S I pe Sd (5l*=St ddev

Fd(9)=Mean

O=Fd(9)*1000.

T1=Fd(1 1

)

T2=Fd(12)

T3=Fd(13)

T4=Fd(14)

Dio-=Fd(8)*100.

Dx=Fd(3)*100.

Dr=Fd(21 )*100.

Sc=Fd(22)

Rc=Fd05)

POWER CONVERTED

LAP TEMP. LMP TEMP. UMP TEMP. UAP TEMP.

TO MILLIWATTS FOR THE SUB ’K.ghp’

PLATE SPACER CODE

RUN MODE (DBLE SIDED. TOP, BOT . ) CALL K_ghp(K .TIo.Thi .Dxc.Acor.TI ,T2,T3,T4,O,Dia,Dx.Dr,Sc,Rc,0)

Fd(1 )=(Thi+Tlo)/2

Fd(2)=K/1000.

Fd(16)=Thi

Fd(17)=Tlo

Fd(23)=Dxc/100.

Fd(25)=Acor/10000.

deg C THERMAL CONDUCTIVITY STORED IN W/(m*K)

deg C deg C CORRECTED SAMPLE THICKNESS Dx STORED IN meters

CORRECTED MAIN PLATE AREA (mt2)

CALC STD. DEV. OF K De I t_f roc=(SQR(Sd(1 )t2+Sd(2)t2+Sd(3)t2+Sd(4)t2))/(T2+T3-T1-T4)

Q_f roc=Sd(5)/Fd(9)

K_f rac=SQR(De I t_f ract2+Q_f roct2)

Kstd_dev=K_f rac*Fd(2)*1000. ! mW/m*K

PRINT OUT K CALC RESULTS

PRINTER IS 701

PRINT USING "0,2/"

PRINT

PRINT

PRINT

PRINT

PRINT

PRINT

PRINT

PRINT

FILE NAME ; F i I e_specs$( 1 )

[ 1 ,7]

F i I e_specs$( 1 )[ 1 1 , 80]

F i I e_specs$(3)

F i I e_specs$(5)

GENERAL FILE SPECIFICATIONS:"

SAMPLE THICKNESS (cm) ; UNCORRECTED=" ; Fd (3) • 1 00

.

; INT(Fd(23)*100000. )/1000.

8640 A r ea_u n c= I NT (( P I * Fd ( 8 ) 1 2/4 ) • 1 0000 . • 1 000 . ) / 1 000

.

8645 Area_cor=INT(Fd (25) *10000. *1000. )/1000.

8650 PRINT " MAIN PLATE AREA (cmt2) ; UNCORRECTED=" ; Areo.unc ; "

,

a_co r 8655 PRINT " AREA DENSITY (kg/mt2)=" ; Fd(4) ; " , CORRECTED BULK DENSITY (kg/mt3)-

INT(Fd(4)/Fd(23)*1000. )/1000.

CORRECTED^"

CORRECTED-"; Are

8660

8665

8670

8675

8680

8685

8690

8695

8700

8705

8710

8715

8720

8725

8730

IF Fd(22)=1 THEN

Spmt$="QUARTZ"

ELSE

Spmt$="STAINLESS STEEL"

END IF PLATE SPACER MATERIAL : ";Spmt$

FILL GAS : " ; Fi I e_specs$(4) [ 1 ;20]

SPECIMEN AND SPECIMEN GUARD CODES

TOP SPECIMEN CODE : " ; Fi I e_spec5$(4)

TOP GUARD CODE : " ; F i I e_specs$(4)

BOTTOM SPECIMEN CODE ; " ; F i I e_spec3$(4)

BOTTOM GUARD CODE : " ; F i I e_specs$( 4)

PRINT

PRINT

PRINT

PRINT

PRINT

PRINT

PRINT

PRINT

PRINT

PRINT

PRESSURE (mmHg) - ";Fd(5)

21

41

31

51

30

50

40

60

CORRECTED AVERAGE PLATE TEMPERATURES (degC) AND TEMP. CORRECTIONS

A25
8735 PRINT " UPPER AUX. PLATE TEMP lNT(Avg( 1 )* 1 0000 . )/1 0000 . STD. DEV.-";

INT(Sd(1)*10000. )/10000.

8740 PRINT " TEMP. CORRECT 1 0N=" ; I NT (Avgco r r

( 1 )* 1 0000 . )/1 0000 , dT/dt(de

g/hr)-" : INT(3600. *S I ope( 1 )• 10000. )/l 0000.

8745 PRINT " UPPER MAIN PLATE TEMP ; I NT(Avg (2) • 10000 . )/1 0000 .

; " , STD.DEV.-";

INT(Sd(2)*10000. )/10000.

8750 PRINT " TEMP. CORRECT ION-" ; INT (Avgcor r (2) * 10000 . )/10000 . dT/dt(de

g/hr)=" : I NT (3600. *S I ope (2) *10000. )/1 0000.

8755 PRINT " LOWER MAIN PLATE TEMP.=" ; INT(Avg(3)*10000. )/10000. ; " . STD.DEV.-";

INT(Sd(3)*10000. )/10000.

8760 PRINT " TEMP. CORRECT ION=" ; INT (Avgcor r (3) * 10000 . )/10000 . dT/dt(de

g/hr)="; INT(3600. *Slope(3)*10000. )/10000.

8765 PRINT " LOWER AUX . PLATE TEMP INT(Avg (4) * 1 0000 . )/1 0000 , STD.DEV.-";

INT(Sd(4)*10000. )/10000.

8770 PRINT " TEMP. CORRECT ION=" ; INT (Avgco r r (4) * 1 0000 . )/1 0000 , dT/dt(de

g/hr)=" : INT(3600. *Slope(4)*10000. )/10000.

8775 Sdmt=(SQR(Sd(1 )t2+Sd(2)t2))/SQR(Nsize)

8780 PRINT " UPPER delta T=" ; INT ( (Avg (2)-Avg( 1 ))• 1 0000 . )/1 0000 . STD. DEV. 0

F MEAN-": INT(Sdmt*10000. )/10000.

8785 Sdtnb=(SQR(Sd(3h2+Sd(4)t2))/S0R(Nsize)

8790 PRINT " LOWER delta T=" ; INT( (Avg(3)-Avg(4) )*10000. )/10000. ; " . STD. DEV. 0

F MEAN-" : INT (Sdmb*1 0000. )/1 0000.

Sdmtot=SQR(Sdfntt2+Sdmbt2)

Psdrntot-100. *SQR(Sdn)tt2+Sdtnbt2)/(T2-T1+T3-T4)

Sddel t=INT(Del t_f roc*(T2-T1+T3-T4)*10000. )/10000.

Psdde I t = INT(Del t_f rac* 1 00 . * 100 . )/1 00

.

PRINT " TOTAL delta T (T2-T1+T3-T4)-" ; INT( (T2-T1+T3-T4)* 10000 . )/10000

.

PRINT " STD. DEV. OF DelT =";Sddelt;", % STD. DEV. OF DelT -";Psddel

7. STD.D

8795

8800

8805

8810

8815

8820

t8825 PRINT " STD. DEV. OF THE MEAN-" ; INT(Sdmtot * 1 0000 . )/l0000

.

EV. OF THE MEAN ="; INT (Psdmt ot * 1 0000 . )/1 0000

.

8830 PRINT

8835 PRINT " AVG. MAIN HEATER PLATE POWER (mW) = " ; I NT ( 1 . E+6*Avg (5) )/1 000

.

8840 PRINT " STD. DEV. OF Q =" ; I NT ( 1 . E+6*Sd (5) )/1 000 .

; " . % STD. DEV. OF Q

= " ; INT(Q_f rac*10000. )/100.

8845 Sdqniean=INT((1 . E+6*Sd(5) )/SOR(Npwr ) )/1 000 . 8850 Psdqntean=INT((1 . E+8*Sd(5) )/SQR(Npwr)/( 1 . E+3*Avg (5) ) )/1 000

.

8855 PRINT , % STD. DEV. OF THE MEAN -

" STD. DEV. OF THE MEAN =":Sdqmea

" : Psdqmea n 8860 PRINT " dP/dt(mW/hr)=" ; INT(1 .E+6*3600.

8865 PRINT " DATA AVERAGING INTERVAL : ":INT(Fd(28

8870 PRINT " START POINT OF INTERVAL : ";INT(Fd(29

8875 PRINT

8880 PRINT " FINAL HEATER RESISTANCE : ";INT(Fd(10

8885 PRINT

8890 PRINT " IG THERMOPILE FINAL READINGS :" 8895 PRINT " UPPER PILE : " INT(Fd(20)*1

.

8900 PRINT " LOWER PILE : " INT(Fd(l8)*1

.

8905 PRINT " TOTAL PILE : " INT(Fd(19)*1

•

8910 PRINT

m i c rovo Its"

tn i c rovo Its" m i c rovo 1 1 s"

TIo (degC) = ";INT(Fd(

TH

THERMAL CON

% STD. DEV. OF

8915 Dtovg=INT((Fd(16)-Fd(17))*10000. )/10000.

8920 PRINT " Thi (degC) = " ; INT ( Fd ( 1 6) * 1 0000 . )/1 0000 .

;

17)*10000. )/10000. ;" . delT=";Dtavg

8925 IF Fd(2)<10 AND Fd(2)>-1 THEN 8930 PRINT USING "23A , 4D . DDD . 25A . 4D . DD . 8A" ; " AVG. TEMP.(C) IS :",Fd(1),"

ERMAL COND. (k) = " . Fd(2) • 1 000 .

. " mW/(m*K)"

8935 ELSE

8940 PRINT USING "23A . 4D . DDD . 40A” ; " AVG. TEMP.(C) IS :",Fd(1)."

D. (k) = 9999.99 mW/(in*K)"

8945 END IF 8950 PRINT " STD. DEV. OF k =" ; I NT (Ks t d_dev* 1 000 . )/1 000 .

; "

.

k =";INT(K_froc*100.*100.)/100.

8955 PRINTER IS 1 8960 OFF ERROR

8965 SUBEXIT

8970 Tcalc-TIMEDATE

8975 RETURN

8980 Co I c_e r r : ! 8985 PRINTER IS 1 8990 PRINT "SUB ’FINAL AVERAGES’ ERROR : "*ERRM$

8995 CALL Er r_record(ERRM$)

9000 BEEP 83*5,.

3

A26
9005 WAIT 2 9010 SUBEND

9015 1 ////////////////////////////////////////////////////////////////////////

9020 DEF FNEmf tc (Temp, OPTIONAL Ref flog)

9025 1 THIS SUBROUTINE TEMP.(C) TO EMF. (VOLTS)

9030 1 USING CONVERSION CALIBRATIONS FROM THE MEASUREMENT THERMOCOUPLE

9035 1 THERMOPILES AND NBS MONOGRAPH 161 (see ’Sys_init’)-

9040 1 IF A SECOND PARAMETER IS GIVEN TO THE SUB (ie. Ref..flag) THEN

9045 1 THE REF. EMF. IS NOT SUBTRACTED FROM THE CALC. EMF 9050 COM /Sb2/ I_rtd , Tref . Emf_ref

9055 COM /Tcdot/ Tc_do to(* ) , Tc_cor rec t i on(* ) ,Ouo r t i c_dota(*

)

9060 ON ERROR GOTO Emf_tc_err

9065 EtT)f=0. 9070 IF Temp<>0 THEN

9075 FOR 1=1 TO 9 9080 Emf=Emf+T c_dot o( I ) • (Tempt I

)

9085 IF I<5 THEN Emf=Emf+Tc cor rect i on( I ) • (Tempt ( 1-1 )

)

9090 NEXT I 9095 ELSE

9100 Emf=Tc cor rect i on( 1

)

9105 END IF 9110 IF NPAR=1 THEN Emf =Emf-Emf_ ref

1 . 0E+6 ! SUBTRACT REF. EMF 9115 Emf=Emf/(1 .0E+6) ! CONVERT TO VOLTS

9120 RETURN Emf

9125 Emf_tc_err: ! 9130 OFF ERROR

9135 PRINT " EMF_TC SUBROUTINE ERROR : "*ERRM$

9140 CALL Err_record(ERRM$)

9145 FNEND

9150 ! ////////////////////////////////////////////////////////////////////////

9155 SUB Record_data

9160 ! THIS SUBROUTINE STORES TEMPERATURE AND EMF. DATA FOR A RUN ON

9165 ! A FLOPPY DISK FILE. 9170 COM /Mcl/ Ts , Ne , Edo t

( )

, Pda t

( * ) , Nr , Rt dot ( * ) , Nf , Feda t (* ) , Ft da t

(

'

•) .Kdat (' .Nrtnax .Nfmax ,T 1 im 9175 COM /Dtl/ F i 1 e_specs$( • ) ,Mode$( • ) , Gas$( *

)

9180 COM /Me 5/ Op_mode (* ) ,Htemp(*),Ltemp(*) , Ht_mode (*),Fi le_num(*),Set_temp

9185 COM /Sbl/ T0.Td0

9190 COM /Sb2/ I_rtd,Tref ,Emf_ref

9195 COM /Sb3/ Fd( • ) , Tavg_scan

9200 COM /Rn/ Run

9205 D r i ve_change=0

9210 MASS STORAGE IS "

: I NTERNAL , 4 . 0"

9215 ON ERROR GOSUB Record_err

9220 F i 1 ename$=F i 1 e_specs$( 1 )

[ 1; 7]

9225 FI_orig$=Fi lename$

9230 Fi le_specs$(2)[1]="HIGH TEMP . (C)="4VAL$(Htemp(Run) )t" ; LOW TEMP. (C) = "i rnp(Run ))t" : MAIN HEATER CONTROL : " 9235 IF Ht_mode(Run)=1 THEN

9240 Fi le_specs$(2)[l]=Fi Ie specs$(2)4"CONST . TEMP."

9245 ELSE

9250 Fi le_specs$(2)[l]=Fi 1 e_specs$(2)t"CONST . POWER"

9255 END IF 9260 ! TRIM ARRAYS TO REQUIRED SIZE

9265 IF Nr=0 THEN Nr=1

9270 IF Nf=0 THEN

9275 Nf=1

9280 Nstart=1

9285 Npts=Ne

9290 ELSE

9295 Nstart=INT(Td0/Ts)

9300 Np t s=Ne-Ns t a r t+1 9305 END IF 9310 Fd(27)=Td0 1 TIME OF DATA RUN START

9315 ! STORE THE POWER DATA FROM TIME Td0

9320 ALLOCATE P(1 :2,1 :Npts)

9325 FOR 1=1 TO Npts

9330 FOR J=1 TO 2 9335 P( J , I )=Pdat (J,I-1+Nstart)

9340 NEXT J 9345 NEXT I 9350 ALLOCATE Tm( 1 : Nf )

. F t

( 1 : 4 . 1 : Nf ) . Fe ( 1 : 8 , 1 ; Nf ) . R t

(

1 ; 2

.

1 : N r

)

A27
9355

9360

9365

9370

9375

9380

9385

9390

9395

9400

9405

9410

9415

9420

9425

9430

9435

9440

9445

9450

9455

9460

9465

9470

9475

9480

9485

9490

9495

9500

9505

9510

9515

9520

9525

9530

9535

9540

9545

9550

9555

9560

9565

9570

9575

9580

9585

9590

9595

9600

9605

9610

9615

9620

9625

9630

9635

9640

9645

9650

9655

9660

9665

9670

9675

9680

9685

9690

9695

9700

9705

9710

FOR 1=1 TO Nf FOR J=1 TO 8 1 STORE CORRECTED T’s AND EMF’s

IF J<5 THEN Ft(J,I)=Ftdat(J*2-1 ,I)+Ftdat(J*2.I)

Fe(J,I)=Fedat(J,I)

NEXT J Tm(I)=Tme(I)

NEXT I FOR 1=1 TO Nr FOR J=1 TO 2 Rt(J,I)=Rtdat(J.I)

NEXT J NEXT I

! OPEN A FILE ON THE DISK

Nrec=INT((8.*(2*Npts+2*Nr+8*Nf+Nf+4*Nf+4+30)+5*84+4)/256.+1)

CREATE BOAT Fi lenome$,Nrec

ASSIGN Olo_path TO Filenames

PRINT " DATA IS BEING STORED ON THE DISK FILE NAME : "•.Filenames

PRINT USING "3/"

1 STORE THE DATA ON THE DISK FILE OUTPUT Ol o_pot h ; F i I e_specsS( * ),Fd(*),Nf,Tm(*),Ft(*),Fe(*),Nr,Rt(*),Npts,P(*)

ASSIGN OIo_path TO * IF F I _o r i gSoF i I enameS THEN

PRINTER IS 701 PRINT USING "2/"

PRINT " PRINT " THE FILE NAME HAS BEEN CHANGED!! *••*" PRINT "

( DUE TO FILENAME DUPLICATION ) PRINT " ***"

PRINT " *•** THE OLD FILENAME WAS : " ; F l_or i gS ; " •••*" PRINT " ••••" PRINT " •••• THE NEW FILENAME IS : " ; F i

I

enameS

:

" PRINT " »•*•****•••**•**•*»•****•***••*•*****••»*•**«•••*»•"

PRINT

PRINTER IS 1 END IF DISP " DATA STORAGE HAS BEEN COMPLETED."

OFF ERROR

WAIT 3 DISP " " MASS STORAGE IS " : I NTERNAL . 4 , 0" SUBEXIT

Record_err; ! BEEP 81.38*16,1

T_delay=TIMEDATE

! SET THE COMPUTER SELF ACTION (CSA) TIME DELAY VARIABLE (IN SEC.)

De I ay_ i nt = 1 80

! SET THE CSA TIME DELAY FLAG (1=DELAY ON, 0=DELAY DISABLE)

Do_ i t=1 ON ERROR GOSUB Record_err

SELECT ERRN CASE 54

PRINT "DUPLICATE FILE NAME ( " ; F i I ename$ ; "

)

PRINT " HIT 'CONTINUE'"

PRINT " THEN INPUT A NEW FILE NUMBER."

PRINT USING "10/"

ON KBD GOTO 9660

BEEP 81 .38*20, .8 WAIT 1 IF KBD$<>"" THEN GOTO 9660

IF Do_it AND TIMEDATE-T_de I ay>De I ay_i nt THEN GOTO Take_action

GOTO 9635

OFF KBD

INPUT " ENTER THE NEW FILE NUMBER : ",FI_num

Res$=VAL$( F l_num)

Fi I e_specs$( 1 )

[ 5 , 7]="000"

Fi le_specs$(1)[8-LEN(Res$) .7l=Res$

F i I enome$=F i I e_specs$( 1 ) [ 1 ,7]

GOTO 10100

CASE 64

PRINT "DISK IN DRIVE : I NTERNAL , 4

, " ; D r i ve_change ; " IS FULL ... REPLACE DISK

IF Dr i ve_chonge=1 THEN

MASS STORAGE IS " ; I NTERNAL . 4 . 0"

A28
9715 Do_it-0

9720 PRINT

9725 PRINT "THE DISKS IN BOTH DISK DRIVES ARE FULL!!"

9730 PRINT "THE MASS STORAGE DEVICE HAS BEEN RE-ASSIGNED TO THE RIGHT"

9735 PRINT "DISK DRIVE. SO REPLACE THE INTERNAL. 4. 0’ DISK!!"

9740 PRINT

9745 ELSE

9750 GOTO Take_action

9755 END IF 9760 CASE 80

9765 PRINT "NO DISK PRESENT OR DRIVE NOT CLOSED!"

9770 IF Dr i ve_chonge=1 THEN

9775 Do_it-=0

9780 MASS STORAGE IS ": INTERNAL. 4.0"

9785 PRINT

9790 PRINT "PLACE A DISK IN THE RIGHT DRIVE (OR CLOSE THE DOOR)!!"

9795 PRINT

9800 END IF 9805 CASE 85

9810 PRINT "DISK IS NOT INITIALIZED!!"

9815 PRINT "REPLACE IT WITH ONE THAT HAS BEEN INITIALIZED."

9820 PRINT " (OR INITIALIZE IT)"

9825 CASE ELSE

9830 PRINTER IS 1 9835 PRINT "YOU HAVE ENCOUNTERED ERROR NUMBER " ; ERRN 9840 PRINT " ";ERRM$

9845 Do_ i t=0

9850 END SELECT

9855 DISP " HIT ANY KEY TO TERMINATE THIS INFERNAL BEEPING!!"

9860 Sys_on=1

9865 ON KBD GOTO RezumeZ

9870 FOR 1=5 TO 50 STEP 5 9875 BEEP 81 .38*1 . .01 9880 NEXT I 9885 FOR 1=45 TO 20 STEP -5

9890 BEEP 81 .38*1 . .01 9895 NEXT I 9900 BEEP 81 .38*25. .5 9905 Tbeep=TIMEDATE

9910 IF TIMEDATE-Tbeep<.6 THEN GOTO 9910

9915 IF KBD$<>"" THEN GOTO RezumeZ

9920 IF Do_it AND TIMEDATE-T_de I ay>De I ay_i nt THEN GOTO Take_action

9925 IF Do_it=0 AND TIMEDATE-T_de I ay>De I ay_i nt AND Sys_on THEN

9930 CALL Sys_shutdown

9935 Sys_on=0

9940 END IF 9945 GOTO 9870

9950 RezumeZ: ! 9955 OFF KBD 9960 DISP " " 9965 PRINT

9970 PRINT " CORRECT THE ERROR. IF POSSIBLE " 9975 PRINT " THEN HIT ’CONTINUE’"

9980 PRINT

9985 PRINT " (IF THE ERROR IS IRRECOVERABLE ...STILL HIT ’CONTINUE’)"

9990 PRINT

9995 PAUSE

10000 INPUT " WAS THE ERROR RECOVERABLE (Y/N)?".Res$

10005 IF Res$="N” THEN

10010 Flag$="RECORD_DATA"

10015 SUBEXIT

10020 END IF 10025 GOTO 10100

10030 Toke_action: ! OFF KBD

DISP " " IF ERRN=54 THEN

F l_num=VAL(F i le_specs$(1)[5,7])

IF Fl_num<999 THEN F !_num=F l_num+1

FI le_specs$(l )[8-LEN(VAL$(FI_num)) .7]=VAL$(FI_num)

Fi lenome$=Fi I e_specs$( 1 )

[ 1 .7] END IF

10035

10040

10045

10050

10055

10060

10065

10070

A29
IF ERRN=64 OR ERRN«8C THEN

Dr i ve_chang«'=1

MASS STORAGE IS INTERNAL, 4. 1

END IF IF ERRN=85 THEN INITIALIZE INTERNAL- RETURN

SUBEND

! ////////////////////////////////////////////////////////////////////////

SUB Pock_queue(Q(* ) , Nq ,Qseq( • ) ,Nqs)

! THIS SUB LOADS THE QUEUE Q(*) WITH THE ARRAY OSEQ(*), ADDING IT

! AFTER ANY ENTRIES ALREADY PRESENT IN 0(*). AN ENTRY IN Q(*) THAT

I IS LESS THAN 0 IS CONSIDERED EMPTY (SINCE JULIE RELAY CHANNELS

! ARE NUMBERED 0 TO 19).

ON ERROR GOTO Pock_err

N=0

REPEAT

N=N+1

UNTIL (N=Nq) OR (Q(N)<0)

IF Nq-N<Nqs THEN

DISP "CHANNEL QUEUE OVERFLOW!"

END IF

IF N=Nq AND Q(N)>=0 THEN SUBEXIT

Fu I l=N+Nqs-1

IF Ful !>Nq THEN Ful l=Nq

FOR I=N TO Full

0( I )=Qseq( I—N+1

)

NEXT I SUB EX IT Pack_err: I OFF ERROR

PRINT " PACK_QUEUE SUBROUTINE ERROR : "*ERRM$

CALL Err_record(ERRM$)

SUB END

! ////////////////////////////////////////////////////////////////////////

SUB Poweron

I THIS SUB TURNS ’ON’ THE POWER FLAG

COM /Manuol/ Powe r f I og , Vread i ng( *

)

Powerf I og=1

SUBEND

! ////////////////////////////////////////////////////////////////////////

SUB Poweroff

I THIS SUB TURNS ’OFF’ THE POWER FLAG

COM /FI/ Flog$

COM /Manuol/ Powe r f I ag , Vread i ng ( *

)

ON ERROR GOTO Poweroff_err

FOR 1=7 TO 11 Wri te_io(723,"OP."4VAL$(I)4’’,0T")

WAIT .1 NEXT I CALL Outseven(0)

Powe r f I ag=0

SUBEXIT

10075

10080

10085

10090

10095

10100

10105

10110

10115

10120

10125

10130

10135

10140

10145

10150

10155

10160

10165

10170

10175

10180

10185

10190

10195

10200

10205

10210

10215

10220

10225

10230

10235

10240

10245

10250

10255

10260

10265

10270

10275

10280

10285

10290

10295

10300

10305

10310

10315

10320

10325

10330

10335 Powe rof f_e r r : I 10340 OFF ERROR

10345 Flag$="ERROR IN SUB ’POWEROFF’

10350 SUBEND

1 0355 I ////////////////////////////////////////////////////////////////////////

10360 SUB Adjust

10365 I THIS SUB IS CALLED EVERY CONTROL CYCLE BY THE ’ON CYCLE’ COMMAND.

10370 I IT READS THE TEMP. OF ALL THE CONTROL LOOPS AND SETS THE POWER

10375 I SUPPLY LEVELS.

10380 COM /loscan/ Queue(*) .Nq.Qseql (•) ,Nqs1 ,Qseq2(*) ,Nqs2,Qseq3(*) ,Nqs3,Qseq4(*) ,Nqs

4,Oseq5(*) ,Nqs5,Qseq6(») ,Nqs6

10385 COM /Ctrl/ Cdot a( • ) ,Cse t ( • ) ,Cnt r l_v I im(* ) , Loop_l abe !$(•) ,Cst r$(*) .Mhvtnax 10390 COM /Sdisp/ Screen_prnt

10395 COM /Manuol/ Powe rf I og , Vread i ng(*

)

10400 COM /Adjloc2/ Last_reod i ng(*)

10405 COM /Constpwr/ Esum , Tsum , Tsum2 , Et sum , P2n , Nt p2

10410 COM /FI/ Flog$

10415 COM /Figs/ I gf I ag , P rev_ne 10420 COM /Htrl/ Htr_res

10425 COM /Htr2/ New_htrcur

"icERRM$

A30
10430 COM /Instr/ Mh1 81 , J r M 81 ,Mh1 95 ,Tap1 95 , Bapi 95 , Igl 95

10435 COM /Mcl/ Ts ,Ne , Edot (•) .Pdflt (•) ,Nr .Rtdat (*) ,Nf , Fedat (•) , Ftdot (•) .Kdot (•) ,Tme(*) .Nrmax , Nftnox , T I i m 10440 COM /Mc2/ Heater_sres

10445 COM /Mc5/ Op_modc(* ) , Htemp(* ) , Lt cmp(* ) , Ht_mode (* ) , F i I e_num( •) ,Set_temp( •)

10450 COM /Mc6/ Ntm.Ntr.Ntp.Ntz

10455 COM /Rn/ Run

10460 COM /Sbl/ T0,Td0

10465 COM /Sb2/ I_rtd .Tref , Emf_ref

10470 COM /Sb3/ Fd(*) ,Tavg_scan

10475 DIM Power_prob(1 :5)

10480 ON KBD GOSUB Nothing

10485 ON KEY 0 LABEL "" GOSUB Nothing

10490 ON KEY 5 LABEL GOSUB Nothing

10495 ON ERROR GOTO Adj_error

10500 Todj=TIMEDATE

10505 Ne=Ne+1

10510 IF Ne>1 THEN Ov=Pdot (2 . Ne-1

)

10515 CALL Reod_i o(Vpwr , T read ,Mh1 95 . "R0X" ,Ov)

10520 Pdot(2,Ne)*»Vpwr

10525 IF New_htrcur THEN

10530 New_htrcur=0

10535 IF Pdat(1 ,Ne-1 )<>0 THEN Fd(10)=Vpwr/Pdat (1 ,Ne-1

)

10540 IF ABS(FdO0)-Htr_res)>.5*Htr_res THEN

10545 CALL Err_record(" HEATER RESISTANCE VARIATION TOO GREAT : OLD="ftVAL$(Ht r_ res)t" . NEW (IGNORED) = "4:VAL$ (Fd ( 1 0) )

)

10550 PRINT " HEATER RESISTANCE VARIATION TOO GREAT ; OLD="tVAL$(Ht r_res)4" . N EW (IGNORED) = "tVAL$(Fd(10)

)

10555 Fd(10)=Ht r_res 10560 BEEP 83*28, .

1

10565 END IF 10570 IF Screen_prnt THEN PRINT " HEATER RESISTANCE CALC. = ";Fd(l0);" OHMS"

10575 Ht r_res=Fd(10)

10580 END IF 10585 Pdat(1 ,Ne)=Vpwr/Htr_res ! FOR EACH PAIR OF IDENTICAL CURRENTS (Ne

10590 ! 4 Ne-1) A TRUE POWER CAN BE CALC. AT Ne

.

10595 MAT Power_prob= (0.)

10600 FOR 1=1 TO 5 10605 V i n=Vreod i ng (

I

)

10610 IF 1=1 THEN CALL Read_ i o(Vou t , T , I g 1 95 , "R0X" , V i n)

10615 IF 1=2 THEN CALL At od_ i o (Vou t , T . V i n )

! A/D CARD OUTPUT (FOR OG)

10620 IF 1=3 THEN CALL Read. i o (Vou t . T , Topi 95 . "R0X" . V i n

)

10625 IF 1=4 THEN CALL Read. i o (Vou t . T , Bapi 95 . "R0X" , V i n

)

10630 IF 1=5 THEN CALL Read. i o (Vou t . T , Mhl 81 . "R3B1 X" , V i n

)

10635 Vreod i ng( I )=Vout

10640 IF (I>1) AND (Vreadi ng(I)<(100. * .0001 )) THEN Powe r.p rob ( I )=1

10645 NEXT I 10650 IF SUM(Power.prob)=4 THEN Flog$="RTD POWER SUPPLY MALFUNCTION"

10655 IF Powerflag=1 THEN ! ADJUST HEATERS

10660 P i d( 1 , Vreod i ng( 1 ), Ot

)

10665 FOR 1=2 TO 5 10670 Pid(I,Vreading(I)/I.rtd,Ot)

10675 NEXT I 10680 IF ((Ne-P2n) MOD Ntp2=0) AND (Td0<>0) AND (Ht.mode (Run)=2) THEN

10685 P2n=Ne

10690 Ets lope=(Etsum*Ntp2-Esum*Tsum)/(Tsum2*Ntp2-Tsumt2) I K/SEC

10695 Esum=0

10700 Tsum=0

10705 Tsum2=0

10710 Etsum=0

10715 SI ope.co r=— ( 110*(.8+.006*Edat(5,Ne))T.5)*Etslope/Cdota(5.2,2)

10720 IF ABS(Slope.cor/Cdata(5,2.2))>.05 THEN

10725 PRINT " SLOPE CORRECTION OVER 5Z; CHANGE RESTRICTED TO 5Z"

10730 SI ope.cor=SGN(S I ope.cor ) • .05*Cdata(5,2,2)

10735 END IF 10740 Cdata(5.2.2)=Cdato(5.2,2)+Slope_cor

10745 END IF 10750 IF (Ht.mode(Run)=2) AND (Td0<>0) THEN Cdot o(5 . 2 . 1 )-Cdo t a(5 , 2 . 2)

10755 CALL Wri te.io(723, "0P,"4VAL$(1 1 )4" , "4VAL$(Cdoto( 1 .2. 1 ))4"T")

10760 CALL Wri te.io(723, "0P,"4VAL$(8)4" . "4VAL$(Cdot a (2 . 2 . 1 ) )4"T"

)

10765 CALL Wri t e. i o(723 , "OP , "4VAL$ ( 9 )4" , "4VAL$ (Cdo t a ( 3 . 2 . 1 ) )4"T"

)

10770 CALL Wr i te.io(723, "OP. "4VAL$(10)4" , "4VAL$(Cdota(4 . 2 . 1 h*"I")

A31
10775 Outseven(Cdata(5.2.1)) ! MAIN PLATE

10780 END IF 10785 ! STORE RTD TEMPERATURE DATA

10790 FOR 1=2 TO 5 10795 Edat ( I ,Ne)=FNTemp_rtd( I ,Vreading(I)/I_rtd)

10800 IF Edat(I ,Ne)-Set_temp(I)>100 OR Edot ( I

, Ne)>525 THEN Flag$=" PLATE TEMPERAT

URE OUT OF CONTROL ON CONTROL LOOP NUMBER "kVALSCl)

10805 NEXT I 10810 IF (Td0<>0) AND (Ht_mode(Run)=2) THEN

10815 Esum=rEdot (5,Ne)-Edat(5.P2n))+Esum

10820 Tsum=(Ne-P2n)*Ta+Tsum

10825 Tsufti2=( (Ne-P2n)*Ts)t2+Tsum2

10830 Etsum=(Edat(5,Ne)-Edat(5,P2n))*(Ne-P2n)*Ts+Etsum

1 0835 END I

F

10840 1 STORE IG EMF DATA

10845 Edat(1 ,Ne)=Vreading(1)

10850 ! PRINT TEMP. READINGS AND CONTROL OUTPUT ON CRT

10855

10860

10865

IF Screen

PRINT

PRINT

prnt THEN

LOOP 1 ; IG (microV) ;1 .E+6*Edot(1 ,Ne) " CONTROL OUTPUT ;";Cdot

o(1 .2,1)

10870

1)

10875

PRINT " LOOP 2 : OG TEMP. (C) ;Edat(2,Ne) CONTROL OUTPUT ;Cdato(2,2,

PRINT ” LOOP 3 : TAHP TEMP.(C) ;";Edat(3.Ne):" CONTROL OUTPUT : " ;Cdata(3

,

2.1)

10880 PRINT " LOOP 4 : BAHP TEMP.(C) :";Edat(4,Ne);" CONTROL OUTPUT :":Cdata(4,

2.1)

10885 PRINT " LOOP 5 : MHP TEMP. (C) : " : Edat (5 , Ne) ;CONTROL OUTPUT :":Cdato(5,

2.1)

10890

10895

END IF

IF (Ne MOD (INT(300/Ts)))=0 OR (Ne= 1) THEN ! PRINT OUT TEMPS.

10900

10905 T1=(Ts*

! EVERY

Ne)/60.

300 SECONDS

10910 Fmt1: IMAGE DDDDD . DD , 5X , DDDD . DDD . 5X , DDDD . DDD . 5X . DDDD . DDD , 5X .DDDD . DDD . 5X ,MDDDD .

D

10915 OUTPUT 701 USING Fmt 1

; T1 , Eda t (5 , Ne ) . Eda t (2 . Ne) , Eda t (3 , Ne ) , Edo t (4 , Ne) . Eda t ( 1 , Ne)*1 .E+6

10920 END IF 10925 ! UPDATE THE EXECUTION QUEUE (UNTIL THE ’FINISH’ DATA SEQUENCE STARTS)

10930 IF Igf I og=0 THEN

10935 ! MAIN HEATER CURRENT SCAN (PHASE 1 AND PHASE 2)

10940 IF (Ne MOD Ntp)=0 THEN CALL Pac k_queue (Queue (•), Nq , 0seq4( *), Nqs4)

10945 ! tc MEASUREMENTS * ISO. BLOCK TEMP. READING (PHASE 2)

10950 IF Td0>0 AND (Ne MOD Ntm)=0 THEN CALL Pock_queue (Queue (*), Nq , Qaeql (•), Nqsl

)

10955 ! DVM ZERO MEASUREMENTS (PHASE 1)

10960 IF (Ne MOD Ntz)=0 AND Td0=0 THEN CALL Pack_queue (Queue (*), Nq , Qseq5( •), Nqs5)

10965 ! ISOBLOCK TEMP. MEASUREMENT (PHASE l)

10970 IF ((Ne MOD Ntr)=0) AND (Td0=0) THEN CALL Pack_queue (Queue (•), Nq ,Qseq2( *). Nq

s2)

10975 END IF 10980 OFF TIMEOUT

10985 SUBEXIT

10990 Nothing: ! 10995 BEEP 83*23, .

1

11000 RETURN

1 1 005 Ad j_e r ror : ! 11010 IF ERRL(10915) THEN

11015 PRINTER IS 1 11020 PRINT •' PRINTER MALFUNCTION "

; ERRM$

11025 BEEP 83*30, .

1

11030 GOTO 10920

11035 END IF 11040 PRINT " ADJUST SUBROUTINE ERROR

11045 PRINT ERRM$

11050 CALL Err_record(ERRM$)

11055 BEEP 83*30, .2 11060 SUBEND

11065 ! ////////////////////////////////////////////////////////////////////////

11070 SUB Pid(M,Ein,Sout)

11075 ! THIS SUB IS A DIGITAL CONTROLLER. GIVEN AN INPUT SIGNAL (Ein) IT WILL

11080 ! COMPUTE AN OUTPUT RESPONSE (Sout) FOR A GIVEN SET OF PID SETTINGS.

11085 ! Cset(i,j) : CONTAINS CONTROLLER SETPOINT ,GAIN , T i ,Td , T i BELL WIDTH

11090 I K BELL WIDTH, AND K REDUCTION FACTORS ONDEXED BY j )

.
11095

11100

11105

11110

11115

11120

11125

11130

11135

11140

.Nrmax 11145

11150

11155

11160

11165

11170

11175

11180

11185

11190

11195

11200

11205

11210

11215

11220

11225

11230

11235

11240

11245

11250

11255

11260

11265

11270

11275

11280

11285

11290

11295

11300

11305

11310

11315

11320

11325

11330

11335

11340

11345

11350

11355

11360

11365

11370

11375

11380

11385

11390

11395

11400

11405

11410

11415

11420

11425

11430

11435

11440

11445

I THE INDEX i REFERS TO DIFFERENT CONTROL LOOPS.

I Cdata(i.j.k) : CONTAINS HISTORY OF CONTROL INPUT (j=1) AND

I OUTPUT (j=2) OVER THREE INTERVALS (k=1 TO 3).

I i HAS THE SAME MEANING AS IN Cset(*).

SYSTEM PRIORITY 0

COM /Ad j ust I oco 1/ Summ(*)

COM /Ctrl/ Cdoto(*) ,Cset ( *),Cntrl_vl im(*), Loop_ label$(*) ,Cstr$(*) .Mhvmax

COM /Sdisp/ Screen_prnt

COM /FI/ Flog$

COM /Mcl/ Ts ,Ne , Edot (• ) ,Pdat(*),Nr,Rtdat(*),Nf,Fedat(*),Ftdat(*) ,Kdot (• ) , Tme(*

)

, Nf max , T I im ON ERROR GOTO Pid_error

FOR 1=3 TO 2 STEP -1 Cdata(M,2, I)=Cdata(M,2, 1-1)

Cdota(M,1 . I)=CdQta(M, 1 ,1-1)

NEXT I Cdata(M,1 ,1)=Cset(M.1)-Ein ! MOST RECENT VALUE OF ERROR SIGNAL

I

I ****** MODIFIED PID CONTROL SCHEME ******

! GAIN BELL(1) IS THE WIDE BELL. BELL(2) IS THE NARROW (NOISE) BELL.

! 1 DEGREE = 0.6 mV (IG) = 0.375 OHM (MH, OG, T/BAH) = APPROX. 0.4 OHM

Sp1=10 I FOR RTD’s PROP. GAIN BELL(l) IS 25K =10 OHMS WIDE.

IF M=1 THEN Sp1=.006 ! FOR IG GAIN BELL(l) IS 10K = 6 mV WIDE. Ga i n=Cset (M,2)

Ti=Cset(M,3)

Td=Cset(M,4)

Ti bw=Cset (M.5)

Kbw=Cse t (M , 6)

Krf0=Cset(M,7)

T dbw= . 04

IF M=1 THEN Tdbw=6.E-5

! INTEGRATOR BELL(l) WIDTH

! GAIN BELL(2) WIDTH.

1 INITIAL GAIN REDUCTION FACTOR

! DERIVATIVE BELL WIDTH

! Tdbw IS 0.1 DEG FOR ALL PLATES

ADJUSTMENTS OF CONTROL PARAMETERS FOR SETPOINTS AND GAIN.

A1=0 ! SLOPE OF Ti DEPENDENCE ON T(R)

A2=0 ! SLOPE OF KRF DEPENDENCE ON T(R)

Del r1=Cset(M,1)-100 ! SIMPLIFIED REF. PT . (LIMIT RUNS TO 273 K)

IF M=1 THEN Del r1=Cset(5,1)-100

Del r2=Cset(5.1)-Cset(4.1)/2-Cset(3. 1 )/2 De I r0=7 .

5

SELECT M CASE 1 A1=.35

! IG CASE 2 De 1 r2=De 1 r1 A2=. 00067

Del r0=16

! OG

CASE 3 TO 4 A1=2.5

De 1 r2=De 1 r1 Del r0=12.3

! T/BAH

CASE 5 ! MH

A2=0

END SELECT

T i=T i+AI *De I r1 Krf=Krf0+A2*De I r1 IF Krf<1.E-10 THEN Krf=1.E-10

Ti bw=T ibw*Del r2*Krf0/(Krf*Del r0)

Krf2=Krf

IF M=5 THEN K r f 2=K r f 0-A2*De I r 1+ . 02

IF Krf2<0 THEN Krf2=0

!

! PROPORTIONAL GAIN TERM

! Vpg = VARIABLE PROPORTIONAL GAIN FACTOR; C0kl40N TO ALL GAIN TERMS

IFKbw<1.E-10 THEN Kbw=1.E-10

Arg1=(Cdota(M.1 ,1)/Sp1)t2

Arg2=(Cdata(M,1 ,1)/Kbw)t2

IF Arg1<20 THEN

Vpg=1-(1-Krf )*EXP(-Arg1

)

ELSE

Vpg=1 ! CORRECT TO WITHIN 2 ppb END IF
11450 Vpg1-Vpg*Goin I GAIN WITH BELL, WITHOUT FINGER; USED BELOW

11455 IF Arg2<20 THEN Vpg=Vpg* ( 1-( 1-K r f 2) *EXP(-Arg2)

)

11460 I OTHERWISE Vpg APPROACHES ZERO

11465 Vpg=Vpg*Gain

11470 Propv“Vpg*Cdato(M, 1 , 1

)

11475 1 11480 I INTEGRAL TERM

11485 I Vig = VARIABLE INTEGRATOR FACTOR

11490 IF Tibw<1.E-10 THEN Tibw=1.E-10

11495 Arg3=(Cdata(M,1 ,1)/Tibw)t2

11500 IF Arg3<20 THEN

11505 Vig=EXP(-Arg3)

11510 ELSE

11515 Vig=0

11520 END IF 11525 Vig=Vig*Vpg1 ! PROPORTIONAL GAIN TERM (WIDE BELL)

1 1 530 T p i dsum=Summ(M)+V ig*Ts*Cdata(M,1 ,1)/(Ti+1 .0E— 10)

11535 IF Tpidsum<(Cnt r l_v I im(M))t2 THEN Summ(M)=Tp i dsum

11540 IF Summ(M)<0 THEN Summ(M)=0

11545 Intv=Summ(M)

11550 ! 11555 ! DERIVATIVE TERM

11560 ! Vdg = VARIABLE DERIVATIVE GAIN FACTOR

11565 ! CHOOSE SMALLER DIFFERENCE TO AVOID DISTURBANCE BY CURRENT ADJ

.

11570 Cd12=Cdata(M, 1

. 1 )-Cdota(M, 1 ,2)

11575 Cd23=Cdata(M, 1 . 2)-Cdat a(M, 1 .3)

11580 Cd13=Cdota(M, 1

. 1 )-Cdata(M.1 .3)

11585 Diff0=.008

11590 Cdiff=Cd13/2

11595 IF (ABS(Cd12-Cd23)>Di f f0) AND (ABS(Cd1 2)>ABS(Cd23) ) THEN

11600 Cdiff=Cd23

11605 ELSE

11610 Cdiff=Cd12

11615 END IF 11620 Arg4=(Cdata(M, 1

. 1 )/Tdbw)t2

11625 IF Arg4<20 THEN

11630 Vdg=1-EXP(-Arg4)

11635 ELSE

11640 Vdg=1

11645 END IF 11650 Vdg=Vdg*Td*Cdi f f/Ts

11655 Deri v=Vdg*Vpg1 ! PROPORTIONAL GAIN TERM (WIDE BELL)

11660 IF Ne<3 THEN Deriv=-Propv ! AVOID SINGULARITIES ON START-UP

11665 ! TOTAL PID SIGNAL

11670 IF Screen_prnt THEN PRINT "LOOP=";M;" PROP=" ; Propv ; " INT=" ; I nt v

; " DERIV="

: De r i

V

11675 Cs=P ropv+I nt v+De r i

V

11680 ! 11685 I ».*•** END OF CONTROL SCHEME ***.*.

11690 IF Cs<0. THEN Cs=0.

11695 ! SQUARE ROOT TAKEN TO LINEARIZE OUTPUT TO POWER (IE. Vt2)

11700 Cs=SOR(Cs)

11705 IF Cs>Cnt r l_v I im(M) THEN Cs=Cnt r l_v I i m(M) ! LIMIT VOLTAGE OUTPUT

11710 Cdata(M.2,1)=Cs

11715 Sout=Cs

11720 SUBEXIT

1 1 725 P i d_e r ror : ! 11730 Cdota(M,2.1)=0

11735 PRINT " PID SUBROUTINE ERROR : "arERRMS 11740 BEEP 83*32, .2 11745 CALL Err_record(ERRM$)

11750 SUBEND

11755 1 ////////////////////////////////////////////////////////////////////////

11760 SUB Plot_switch

11765 ! THIS SUB ALLOWS THE USER TO PERFORM A RUNTIME ’SWITCH’ OF THE 11770 ! DISPLAYED PLOT AND ITS X-AXIS RANGE.

11775 COM /Mcl/ Ts , Ne , Edat (* ) ,Pdat (

• ) ,Nr , Rt dot ( • ) ,Nf , Fedat (• ) , Ftdot (•) ,Kdat (•) , Tme( •)

, Nrmax , Nfmax , T I im 11780 COM /Figs/ Igf I og ,Prev_ne

11785 COM /Gri/ P I ot_v i ew ,P I ot_type ,P i ndex

11790 COM /loscan/ Queue(* ) ,Nq ,Oseq1 ( • ) ,Nqs1 ,Qseq2( * ) , Nqs2 ,0seq3( •) ,Nqs3 ,0seq4( • ) ,Nqs

4 ,Oseq5(* ) ,Nqs5 ,Qseq6( • ) , Nqs6

A34
11795

11800

11805

11810

11815

11820

11825

11830

11835

11840

11845

11850

11855

11860

11865

11870

11875

11880

11885

11890

11895

11900

11905

11910

11915

11920

11925

11930

11935

11940

11945

11950

11955

11960

11965

11970

11975

11980

11985

11990

11995

12000

12005

12010

12015

12020

12025

12030

12035

12040

12045

12050

12055

12060

12065

12070

12075

12080

12085

12090

12095

12100

12105

12110

12115

12120

12125

12130

12135

12140

12145

12150

COM /Gr2/ XI .X2,Xinc.Y1 .Y2,Yinc,Xtit$,Ytit$

COM /Sbl/ T0.Td0

SYSTEM PRIORITY 0

ON ERROR GOTO P I ot_sw_e r ror

IF Oueue(1)>-1 THEN

BEEP 83*23, .

1

SUBEXIT

END IF DISP

Beot_i t“0

T p i nde x*P i ndex

Tp I ot_type«*P I ot_type

T p I ot_v i ew=P I ot_v i ew FOR 1=0 TO 9 ON KEY I LABEL "" GOTO 12135

NEXT I ON KEY 0 LABEL "SELECT DATA" GOTO 11945

ON KEY 2 LABEL "SELECT VIEW" GOTO 12050

ON KEY 8 LABEL " PLOT IT " GOTO 11910

ON KEY 9 LABEL " MAIN MENU " GOTO 11900

GOTO 12035

Beot_i t=1 GOTO 11925

P I ot_type=T p I ot_type

P i ndex=T p i ndex

P I ot_v i evir=T p I ot_v i ew CALL Plot_prep(X1 ,X2,Xi nc.YI ,Y2,Yirc,Xt i t$,Yt i t$)

CALL Resco I e_p I ot (X1+(X2-X1 )/2 , Y1+(Y2-Y1 )/2)

IF Beat_i t THEN SUBEXIT

GOTO 12035

Id=Id+1

IF Id>12 THEN Id=1

IF Tme(1)=0 AND ((Id>5 AND Id<10) OR Id=12) THEN GOTO 11945

T p i ndex=1

SELECT Id CASE 1 TO 5

T p I ot_type=1

T p i ndex=I

d

CASE 6 TO 9

T p I ot_type=2

T p i nde x=I d-5

CASE 10

T p I ot_type=3

CASE 11 T p I ot_type=4

CASE 12

T p I ot_type=5

END SELECT

CALL G_lobel (Glob$,Tplot_type,Tpindex)

ON KEY 5 LABEL Glab$ GOTO 12135

GOTO 12060

Tp I ot_v i ew=T p I ot_v i ew+1

IF Tplot_view>5 THEN Tplot_view=0

SELECT Tplot_view

CASE 1 Pv$="LAST 30 MIN."

CASE 0 Pv$=" FULL VIEW"

CASE 2 Pv$="LAST 60 MIN."

CASE 3 Pv$="LAST 120 MIN."

CASE 4 Pv$="LAST 240 MIN."

CASE 5 Pv$="LAST 480 MIN."

END SELECT

ON KEY 7 LABEL Pv$ GOTO 12135

Tp=TIMEDATE

LOOP

IF NeOPrev_ne THEN CALL Updote_pl ot ( "N") EXIT IF TIMEDATE-Tp>120

A35
12155 IF Quoue(1)>-1 THEN

12160 BEEP 83*23,.

1

12165 SUBEXIT

12170 END IF 12175 END LOOP

12180 IF Beat_it-0 THEN GOTO 11900

12185 SUBEXIT

12190

12195

12200

12205

12210

12215

12220

12225

12230

12235

12240

12245

12250

12255

12260

12265

12270

12275

12280

12285

12290

12295

12300

12305

12310

12315

12320

12325

12330

12335

12340

12345

12350

12355

12360

12365

12370

12375

12380

12385

12390

12395

12400

12405

12410

12415

12420

12425

12430

12435

12440

12445

12450

12455

12460

12465

12470

12475

12480

OFFSET

12485

12490

12495

12500

12505

P I ot_sw_e r ror : I PRINT "PLOT SWITCH ERROR " ; ERRM$

CALL Er r_record(ERRM$)

OFF ERROR

SUBEND

1 ////////////////////////////////////////////////////////////////////////

SUB Pblonk(X1 ,X2,Xinc,Y1 ,Y2.Yinc,Xtit$,Ytit$)

Pb

THIS SUB DRAWS A BLANK PLOT. WITH LABELED AXES AND A GRID

COM /Dtl/ Fi le_spocs$(*) ,Mode$(*) ,Gos$(*)

COM /Gri/ P I ot_v i ew ,P I ot_type , P i ndex

COM /Mc5/ Op_mode(* ) , Htemp(* ) , Ltemp( * ) ,Ht_tnode(* ) , Fi I e_num(* ) , Set_temp(*)

COM /Rtd_corr/ Tcorr_rtd,Rtd_adj_f I og,Sp_corr(*)

ON ERROR GOTO Pblank_error

GINIT

GRAPHICS ON

VIEWPORT 20,127,24,92

WINDOW XI ,X2,Y1 ,Y2

FRAME

LINE TYPE 4,5

GRID Xinc.Yinc.XI ,Y1 LINE TYPE 1 VIEWPORT 0,130,0,100

LORG 5 CSIZE 2.5

XI=X1-.06*(X2-X1

)

YI=Y1-.08*(Y2-Y1

)

FOR X=X1 TO X2+X inc/10. STEP Xinc

MOVE X.YI LABEL VAL$((INT(X/6))/10)

NEXT X FOR Y=Y1 TO Y2+Y inc/10. STEP Yinc

MOVE XI ,Y Yp=Y

IF ABS(Yp)<1 . E-10 THEN Yp=0

LABEL VAL$(Yp)

NEXT Y MOVE X1+(X2-X1 )/2,Y1-. 14*(Y2-Y1

)

CSIZE 3.2

LABEL Xt i t$

DEG

LDIR 90

MOVE X1-. 15*(X2-X1 ) ,Y1 + (Y2-Y1 )/2 LABEL Yt i t$ LDIR 0 LORG 2 MOVE X1-. 15*(X2-X1 ) .Y1-. 16*(Y2-Y1

)

CSIZE 2.2

LABEL "FILE NAME : "icF i I e_specs$( 1 ) [

1 . 10]

MOVE X1-. 15*(X2-X1 ) .Y1-. 19*(Y2-Y1

)

LABEL "RUN DATE : "icF i I e_specs$( 1 ) [

1 1 . 31 ] VIEWPORT 20,127.24,92

IF Plot_type=1 AND Pindex>2 THEN

MOVE X1+.02*(X2-X1 ) ,Y1+.02*(Y2-Y1

)

LORG 1 CSIZE 2.4

Cor rec=-INT(Sp_cor r (P i ndex'

Spoff*INT((Set_temp(P index,

Spunc=INT (Set_t etnp(P i ndex) • 10000 . )/1 0000

.

LABEL "S.P. (degC) = "ftVAL$(Spunc )4" . S.P. (W/OFFSET) = "ftVAL$(Spof f )ft" = "4VAL$(Correc)

END IF MOVE X1-. 18*(X2-X1 ) ,Y1+.5*(Y2-Y1

)

SUBEXIT

ank_e r ror

:

! PRINT "PBLANK ERROR " ; ERRM$

()

1 0000 . )/ 1 0000 . c)-Sp_cor r (P i ndex) ) • 1 0000 . ) /1 0000

.

A3 6
12510 CALL Err_record(ERRM$)

12515 SUBEND

12520 I ////////////////////////////////////////////////////////////////////////

12525 DEF FNOhtns_rtd(Rtd_num,T)

12530 I THIS ROUTINE CONVERTS TEMPERATURE (C) TO OHMS

12535 I FOR THE ROSEMOUNT PLATINUM RTD’S USING THE ITPS-68 FORM OF THE

12540 I CALLENDAR-VAN DUSEN EQUATION.

12545 COM /Conv_dat/ R0( * ) . A 1 pha(* ) ,De I to( *

)

12550 ON ERROR GOTO Ohms_rtd_error

12555 R“R0(Rt d_num)

12560 A=AI pho(Rtd_num)

12565 D=De I to(Rtd_num)

12570 I CONVERT TEMP. (C) TO RESISTANCE (OHMS)

1 2575 T2=T- . 045* (T/1 00) • (T/1 00-1 ) • (T/41 9 . 58-1 ) * (T/630 . 74-1

)

12580 Resistance=R*(1+A*(T2-D*(T2/l00)*(T2/100-1 )))

12585 OFF ERROR

12590 RETURN Resistance

12595 Ohms_r t d_e r ror : 1 12600 PRINT "RTD CONVERSION ERROR : ";ERRM$

12605 CALL Er r_record(ERRM$)

12610 FNEND

12615 1 ////////////////////////////////////////////////////////////////////////

12620 DEF FNChon_s ig(Ch)

12625 I THIS SUB CALCULATES AN INTEGER COMMAND FOR THE DIGITAL

12630 I OUTPUT CARD IN THE H.P. MULT IPROGRA»^ER THAT WILL SET

12635 ! THE JULIE RELAY TO THE CHANNEL ’Ch’.

12640 ON ERROR GOTO Chan_sig_err

12645 IF Ch<10 THEN

12650 N=240-I-Ch 12655 ELSE

12660 N=15+16*(Ch-10)

12665 END IF 12670 IF N<0 THEN

12675 N=0

12680 PRINT " REQUESTED JULIE RELAY CHANNEL IS OUT OF RANGE!!"

12685 END IF 12690 IF N>255 THEN

12695 N=255

12700 PRINT " REQUESTED JULIE RELAY CHANNEL IS OUT OF RANGE!!"

12705 END IF 12710 RETURN N 12715 Chon_s i g_e r r : ! 12720 PRINT " ERROR IN SUB •CHAN_SIG’"

12725 CALL Err_record(ERRM$)

12730 FNEND

1 2735 ! ////////////////////////////////////////////////////////////////////////

12740 SUB Rescale_plot(X.Y)

12745 ! THIS SUB RESCALES PLOTS THAT HAVE GONE OFFSCALE

12750 COM /Gri/ P I ot_v i ew , P I ot_ty pe , P i ndex

12755 COM /Gr2/ XI . X2 . X i nc , Y1 . Y2 . Y i nc , Xt i t$ , Yt i t$

12760 COM /Mcl/ Ts,Ne.Edat(*).Pdat(*).Nr,Rtdat(»),Nf ,Fedat(*),Ftdot(*),Kdat(*),Tme(»)

.Nrmax .Nfmax ,Tlim

12765

12770

12775

12780

12785

12790

12795

12800

12805

12810

12815

12820

12825

12830

12835

12840

12845

12850

12855

12860

ON ERROR GOTO Resca I e_e r ror

IF Y<Y1 THEN Y1=Y1-Yinc

IF Y>Y2 THEN Y2=Y2+Yinc

IF (Y2-Y1)/Yinc>10 THEN CALL P I ot_p rep(X1 , X2 . X i nc . Y1 , Y2 . Y i nc , X t i t $ , Y t i t $) IF X>(X1+.9»(X2-X1)) THEN

Xronge=X2-X1

IF Plot_view>=1 THEN

X2=X2+Xinc

X1=X2-Xronge

ELSE

X2=X2+Xrange

X i nc=X i nc*2

END IF END IF CALL Pbiank(X1 .X2.Xinc.Y1 ,Y2.Yinc.Xt i t$,Yt i t$)

SELECT Plot_type

CASE 1,3

IF Plot_view>=1 THEN Nstart=INT(X1/Ts)

IF Nstart=0 THEN Nstart=1

Nend=Ne
12865

12870

12875

12880

12885

12890

12895

12900

12905

12910

12915

12920

12925

12930

12935

12940

12945

12950

12955

12960

12965

12970

12975

12980

12985

12990

12995

13000

13005

13010

13015

13020

13025

13030

13035

13040

13045

13050

13055

13060

13065

13070

13075

13080

13085

13090

13095

13100

13105

13110

13115

13120

13125

13130

13135

13140

13145

13150

13155

13160

13165

13170

13175

13180

13185

13190

13195

13200

13205

13210

13215

13220

CASE 2 Nstart>=1

Nend=Nf

IF Tme(Nf)=0 THEN Nend=Nf-1

IF Nend<1 THEN Nend=1

CASE 4 Nstort=1

Nend=Nr

CASE 5 Nstart=1

Nend=Nf

IF Kdot(Nf)=0 THEN Nend=Nf-1

IF Nend<1 THEN Nend=1

CASE ELSE

END SELECT

FOR I=Nstart TO Nend

SELECT Plot_type

CASE 1 Xt=I*Ts

Yt=Edat (Pi ndex , I

)

IF Pindex=1 THEN Yt=Yt*1.E+6

CASE 2 Xt=Tme(I)

Yt=Ftdat (1+(Pindex-1 )*2. I)+Ftdat(2+(Pindex-1 )*2. I) CASE 3

Xt=I*Ts

Yt=Pdot(l , I)*Pdat(2, I) CASE 4 Xt=Rtdat(2, 1) Yt=RtdatO .1)

CASE 5 Xt=Tme ( I

)

Yt=Kdat(I)

CASE ELSE

END SELECT

IF (Plot_type=2 OR Plot_type=5) THEN

IF 1=1 THEN MOVE Xt ,Yt IF I>1 THEN

IF Ttne(Nf)<>0 THEN PLOT Xt.Yt END IF ELSE

PLOT Xt.Yt

END IF NEXT I SUBEXIT

Resca I e_e r ro r : ! PRINT " RESCALE PLOTTING ERROR ; ERRM$

CALL Err_record(ERRM$)

SUBEND

!////////////////////////////////////////////////////////////////////////

SUB G_lobel (G$,Plot_type,P)

! THIS SUB RETURNS A LABEL FOR THE CRT DATA PLOTS

ON ERROR GOTO G_labe

SELECT Plot_type

l_e r r CASE 1 IF P=1 THEN G$=" IG tc"

IF P=2 THEN G$=" OG RTD'

IF P=3 THEN G$=" TAP RTD'

IF P=4 THEN G$=" BAP RTD'

IF P=5 THEN G$=" MHP RTD' CASE 2 IF P=1 THEN G$=" TOP tc"

IF P=2 THEN G$=" U.MAIN tc"

IF P=3 THEN G$=" L.MAIN tc"

IF P=4 THEN G$=" BOTTOM tc" CASE 3 G$=" MAIN POWER"

CASE 4 G$=" REF. BLOCK"

CASE 5 G$=" THERM. COND."

END SELECT

A38
13225 SUBEXIT

13230 G lobel_err: I 13235 PRINT " ERROR IN SUB *G_ LABEL’"

13240 CALL Er r_r®cord(ERRM$)

13245 SUBEND

1 3250 1 ////////////////////////////////////////////////////////////////////////

13255 SUB Reod i o(V, Tread , I ns t rument , Dvm_cmd$ ,0 1 dvo 1 1

)

13260 1 ThTs sub takes AN INSTRUMENT READING 4 TRAPS INSTRUMENT READ

13265 I ERRORS.

13270 COM /Instr/ MhIBI . J r 1 181 .Mh195.Top195,Bop195. Ig195

13275 COM /Read 1/ Io_e r ror , Bad_i ns t r (• ) ,Bad_read_t ime$(*

)

13280 COM /Sbl/ T0,Td0

13285 COM /FI/ Flog$

13290 COM /Zeros/ Z j r I 181_200 , Z j r I 181_20 , Zgopi 95 , Zh i story ( •

)

13295 Error=0

13300 ON TIMEOUT 7.1. GOTO Reod_ i t_e r ror 13305 ON ERROR GOTO Reod_io_err

13310 Zero=0

13315 IF I nst rument=Ig1 95 THEN Zero=Zgop195

13320 IF Instrument=Jrl 181 THEN

13325 Zero=Zj rl181_200

13330 IF POS(Dvm_cmd$."R2")<>0 THEN Zero=Zj r 1 181.20

13335 END IF 13340 Tt=TIMEDATE

13345 ENTER Instrument ;V 13350 V=V-Zero

13355 Tread=TIMEDATE-T0

13360 OFF TIMEOUT

13365 SUBEXIT

13370 Read. i t.e r ror : I 13375 ON TIMEOUT 7.1. GOTO Read.! t.e r ror 13380 Er ror=Er ror+1

13385 I o.e r ror=I o.e r ror+1

13390 Bad. instr(I o.e rror)=Instrument

13395 Bod.read.t ime$( I o.e r ror )=DATE$(TIMEDATE)4" "4TIME$(T IMEDATE)

13400 PRINT " 10 ERROR IN SUB ’READ.IO”'

13405 BEEP 83*35. .

1

13410 IF Io.error=100 THEN

13415 Flog$="MAXIMUM NUMBER OF 10 ERRORS EXCEEDED !!" 13420 SUBEXIT

13425 END IF 13430 IF Error=1 THEN

13435 CLEAR Instrument

13440 WAIT .2 13445 BEEP 83. .

1

13450 OUTPUT Inst rument ;Dvm.cmd$

13455 WAIT .2

1 3460 GOTO 1 3300

13465 ELSE

13470 V=Oldvolt

13475 Tread=TIMEDATE-T0

13480 END IF 13485 SUBEXIT

13490 Read. io.err; ! 13495 PRINT " ERROR IN SUB ’READ.IO’ "&ERRM$

13500 CALL Err.record(ERRM$)

13505 SUBEND

13510 ! ////////////////////////////////////////////////////////////////////////

13515 SUB Tc.store(Chan0.V.Tm)

13520 ! THIS SUB STORES T.C. VOLTAGE DATA (PHASE 2)

13525 COM /Mcl/ Ts . Ne . Eda t ( • ) . Pdat (•) . Nr . Rt dot ( • ) . Nf . Feda t ( * ) , Ft da t ( • ) . Kda t

( • )

, Tme ( •

)

.Nrmax .Nfmax .T I im 13530 COM /Sb2/ I.r t d . T ref . Emf.ref

13535 COM /Sb3/ Fd( • ) . Tavg. i nte rva

I

13540 COM /Test 1/ Store.f lag

13545 ON ERROR GOTO Tc.store.e r ror 13550 IF Store.f I ag=0 THEN

13555 Nf=Nf+1

13560 IF Nf>Nfmax THEN

13565 Nf=Nfmax

13570 PRINT " DATA STORAGE ARRAYS ARE FULL!"

13575 BEEP 83*5..

1

A39
13580

135B5

13590

13595

13600

13605

13610

13615

13620

13625

13630

13635

13640

13645

13650

13655

13660

13665

13670

13675

13680

13685

13690

13695

13700

13705

13710

13715

13720

13725

13730

13735

13740

13745

13750

13755

13760

13765

13770

13775

13780

13785

13790

13795

13800

13805

13810

13815

13820

13825

13830

13835

13840

13845

13850

13855

13860

13865

13870

13875

13880

13885

13890

13895

13900

13905

13910

13915

13920

13925

13930

13935

Flog$=" OVERFLOW ON FINAL DATA STORAGE ARRAYS!"

SUBEXIT

END IF Store_f I og=1 END IF IF Chon0<10 THEN

! STORE THE EMF AND TEMP. DATA

I ndx=2*Chon0-5

IF Chan0=3 AND Fedat ( 1 . Nf )=0 THEN Store_f I ag=Tm

IF Chan0=3 AND Fedat ( 1 . Nf )<>0 THEN

Tme(Nf ) = (Store_f log+Ttn)/2

Store_f I og=0

END IF

IF Fedotnndx.Nf)=0 THEN

Fedot ( I ndx , Nf )=V

ELSE

Fedat(Indx,Nf)*=(Fedat(Indx,Nf)+V)/2

END IF ELSE

I STORE DELTA-EMF DATA

Indx=(Chon0-12)*2

IF Fedot(Indx,Nf )=0 THEN

Fedot ( I ndx ,Nf )=V

ELSE

Fedot(Indx,Nf)=(Fedot(Indx,Nf)+V)/2

END IF END IF SUBEXIT

Tc_store_e r ror ; I PRINT " TC_STORE ERROR " ; ERRM$

CALL Er r_record(ERRM$)

SUB END !////////////////////////////////////////////////////////////////////////

SUB K_ghp(K , TIo.Thi ,Dxc,Acor,T1 ,T2.T3,T4.Q,Dio,Dx,Dr,Sc,Rc,Ac)

THIS SUB COMPUTES THERMAL CONDUCTIVITY FOR A GUARDED HOT PLATE

SPECIMEN. VARIABLES ARE DEFINED AS FOLLOWS ; INPUT

T1T2

T3

T4

Q

D i o Dx

Dr

ScRc

Ac OUTPUT

AVG. LOWER AUX. PLATE TEMP. (C) AVG. LOWER MAIN PLATE TEMP. (C) AVG. UPPER MAIN PLATE TEMP. (C) AVG. UPPER AUX. PLATE TEMP. (C) AVG. POWER INPUT TO METERED AREA (mW)

MAIN PLATE DIAMETER (cm)

SAMPLE THICKNESS (cm)

MAIN-INNER GUARD GAP WIDTH (cm)

PLATE SPACER CODE (1=OUARTZ, 2=St.St.)

RUN MODE CODE (1=DBLE SIDED, 2=TOP, 3=B0T .

)

APPARATUS CODE (0=HIGH TEMP., 1=LOW TEMP.)

Acor = THERMAL EXPANSION AND GAP CORRECTED PLATE AREA (cmt2)

Dxc = CORRECTED SAMPLE THICKNESS (cm)

K = THERMAL CONDUCTIVITY (mW/(m*K))

TIo - AVG. LOW TEMP. OF THE PLATES (C)

Thi = AVG. HIGH TEMP. OF THE PLATES (C)

OTHER VARIABLES : Dioc = THERMAL EXPANSION CORRECTED PLATE DIAMETER (cm)

Diac_wg = T. EXPANSION AND GAP CORRECTED PLATE DIAMETER (cm)

ON ERROR GOTO K_ghp_error

CALCULATE TEMP. DIFF. ACROSS SPECIMEN

SELECT Rc CASE 1 Tlo=(T1+T4)/2

Thi=(T2+T3)/2

CASE 2

T I o=T4

Thi=T3+(T2-T1

)

CASE 3 Tlo=T1

Thi=T2+(T3-T4)

END SELECT

Tbar=(Tlo4Thi )/2+273.15

A40
13940

13945

13950

13955

13960

13965

13970

13975

13980

13985

13990

13995

14000

14005

14010

14015

14020

14025

14030

14035

14040

14045

14050

14055

14060

14065

14070

14075

14080

14085

14090

14095

14100

14105

14110

14115

14120

14125

14130

14135

14140

14145

14150

14155

14160

14165

14170

14175

14180

14185

14190

14195

14200

14205

14210

14215

14220

14225

14230

14235

14240

14245

14250

14255

14260

14265

14270

14275

14280

14285

14290

14295

De I t«T3-T4+T2-T1

Tp-=(T2+T3)/2

I ALUMINA THERMAL EXPANSION CORRECTION ON DIAMETER OF THE MAIN PLATE

D i oc»D i o» ( 1+7 . 5E—6* (Tf>—20)

)

I AREA CORRECTION FOR GAP

Dioc_wg*2*Dr*(1+7.5E-6*(Tp-20))+Dioc ! DIA. OF THE PLATE + GAP

Ap-PI*(Diact2/4) ! AREA OF THE PLATE

Agap*PI • (D i oc_wgt2/4)—Ap ! AREA OF THE GAP

Acor*»Af>+Agop/2 ! CORRECTED AREA

I THERMAL EXPANSION CORRECTION FOR THICKNESS SPACERS

SELECT Sc CASE 1 ! QUARTZ

Dxc=Dx*(1+1 .7E-5*(Tbor-20))

CASE 2 ! STAINLESS STEEL

Dxc=Dx+(Dx/1 00. )•(-. 358+9. 472E-4*Tbar+1 .031 E-6*Tbart2-2.978E-10*Tbort3)

CASE ELSE

Dxc=Dx

END SELECT

I IT MAY BE NECESSARY TO CORRECT FOR PLATE SAG IN THE SINGLE SIDE

I RUNS. Dxc IS LARGER FOR HEAT FLOW UP AND SMALLER FOR HEAT FLOW

! DOWN. NOT KNOWN AT THIS TIME - NOT NECESSARY FOR RIGID SPECIMENS.

1 CALCULATE THERMAL CONDUCTIVITY

K=100. •0*Dxc/(Acor*Del t)

SUBEXIT

K_ghp_error: ! K=^1

DISP •' CALCULATION ERROR "

; ERRM$

CALL Er r_record( ERRM$)

SUBEND

!//////////////////////////////////////////////////////////////////

SUB Set_pnt_colc

! THIS SUB RECALCULATES SETPOINTS FOR THE CONTROL LOOPS. THE VALUES

! OF TEMP. IN THE ’Set_temp’ ARRAY ARE USED AS TEMP. SETPOINTS.

COM /Ctrl/ Cdata(*),Cset(»),Cntrl_vlim(*),Loop_label$(»),Cstr$(»),Mhvmax

COM /Mc5/ Op_mode( • ),Htefnp(*),Ltemp(*) ,Ht_mode(»),Fi I e_nutn(* ) ,Set_temp(»)

COM /Rn/ Run

COM /Rtd_corr/ Tcor r_r t d , Rt d_ad j_f I og . Sp_co r r( •

)

ON ERROR GOTO Sp_err

! CALC SETPOINTS (IN OHMS)

FOR 1=2 TO 5 Cse t

( I , 1 )=FNOhms_r t d (I , (Set_temp(I )-Sp_co r r ( I ) )

)

NEXT I

! CALC IG SETPOINT (IN VOLTS)

Cset ( 1 ,1 )=Set_temp(1 )/1 . E+6

IF HtefT)p(Run)oSet_temp(5) THEN Htemp(Run)=Set_temp(5)

Lowest=Set_t emp(3)

IF Set_temp(4)<Lowest THEN Lowest=Set_temp(4)

IF Lowest<>Ltemp(Run) THEN Ltemp(Run)=Lowest

SUBEXIT

Sp_err: ! PRINT " ERROR IN SUB ’ SET_PNT_CALC ’ ; "4ERRM$

CALL Er r_record( ERRM$)

SUBEND

!////////////////////////////////////////////////////////////////////////

SUB Wr i t e_i o( I ns t r , Cmd$)

! THIS SUB OUTPUTS COMMANDS TO INSTRUMENTS ON THE HP IB BUS

COM /FI/ Flag$

COM /Instr/ Mhl 81 , J r 1 1 81 ,Mh1 95 . Topi 95 . Bopi 95 , 1 g1 95

COM /Jrlchon/ Chon , Tchon , Dvm_cmfnd$ , Def ou I t_chon

COM /Reodl/ Io_error ,Bod_i nst r(*) ,Bod_reod_t ime$(*)

Er ror=0

ON ERROR GOTO Write_err

ON TIMEOUT 7.1. GOTO Wrt_t ime_er

r

FOR Isis=1 TO 2 OUTPUT Instr;Cmd$

IF Instr0723 THEN ENTER I nst r ;Dummy

NEXT Isis

IF Instr=Jrl181 THEN Dvm_cmmd$=Cmd$

OFF TIMEOUT

SUBEXIT

Wrt_t inie_err : ! Er ro r=Er ro r+1

A41
14300 I o_e r ror=I o_e r ror+1

14305 Bad_ i nst r( I o_e r ror )=I nst

r

14310 Bad_reod_t ime$(Io_error)-DATE$(TIMEDATE)a:" "4TIME$(TIMEDATE)

14315 BEEP 83*35, .

1

14320 PRINT " OUTPUT ERROR OCCURED ON HPIB ADDRESS ";Insir

14325 IF Instr=Jrl181 THEN PRINT " JRL CHANNEL NUMBER '^Chan

14330 IF Instr=723 THEN F I og$="OUTPUT ERROR TO MULTIPROGRAMMER"

14335 IF Io_error=100 THEN FI og$="MAXIMUM NUMBER OF I.O. ERRORS EXCEEDED !!" 14340 IF Error=1 AND Instr<>723 THEN

14345 CLEAR Instr 14350 WAIT .2 14355 GOTO 14250

14360 END IF 14365 SUBEXIT

1 4370 Writ e_e r r : ! 14375 PRINT " ERROR IN SUB ’WRITE.IO’ : "4ERRM$

14380 CALL Err_record(ERRM$)

14385 SUBEND

1 4390 ! //////////////////////////////////////////////////////////////////////

14395 SUB Outseven(Vo) ts)

14400 ! THIS SUB SETS THE MAIN HEATER PLATE KEPCO POWER SUPPLY VOLTAGE

14405 ON ERROR GOTO Outseven_err

14410 Hvol ts=INT(204.7*Vol ts)/204.7

14415 Lvo I ts=Vo I t s-Hvo I t

s

14420 Digi t=INT(255-(255*Lvol ts/.005))

14425 IF Digit<0 THEN Digit=0

14430 IF Digit>255 THEN Digit=255

14435 CALL Wr i te_ i o(723 , "OP , 7 , "icVAL$(Hvo 1 1 s)4"T"

)

14440 WAIT .1 14445 CALL Wr i te_ i o(723 . "OP . 5

, "*VAL$(D i g i t )&"T"

)

14450 SUBEXIT

14455 Out seven_e r r : ! 14460 PRINT " ERROR IN SUB ’OUTSEVEN’ ; "JcERRM$

14465 CALL E r r_reco rd ( ERRM$)

14470 SUBEND

1 4475 ! ///////////////////////////////////////////////////////////////////////

14480 SUB Linear(X(*) ,Y(*) ,N,A,B.Mean,Sd)

14485 ! THIS SUB PERFORMS A LINEAR REGRESSION ON A PAIR OF DATA ARRAYS

14490 ! AND A MEAN AND STD. DEV. CALC. ON THE Y DATA ARRAY. 14495 ! X ond Y ARE THE ABSCISSA AND ORDINATE DATA ARRAYS

14500 ! N IS THE NUMBER OF DATA POINTS

14505 ! Mean IS THE MEAN VALUE OF THE Y DATA ARRAY

14510 ! Var IS THE VARIANCE OF THE Y DATA ARRAY

14515 ! Sd IS THE STANDARD DEVIATION OF THE Y DATA ARRAY

14520 ! A and B ARE THE INTERCEPT AND SLOPE OF THE LINEAR REGRESSION LINE. 14525 ! CURVE FIT MODEL : Y = A + B*X

14530 ! 14535 ON ERROR GOTO Lin_err

14540 ALLOCATE Tefn(N)

14545 X1=0

14550 X2=0

14555 Y1=0

14560 Y2=0

14565 Z1=0

14570 A=0

14575 B=0

14580 X1=SUM(X)

14585 Y1=SUM(Y)

14590 MAT Tem= X*X

14595 X2=SUM(Tem)

14600 MAT Tem= Y*Y

14605 Y2=SUM(Tem)

14610 MAT Tem= X*Y

14615 Z1=SUM(Tem)

14620 Mean-=Y1/N

14625 Var=(N*Y2-Y1t2)/(N*(N-1))

14630 Sd=SQR(ABS(Var))

14635 Xb=X1/N

14640 Yb=Y1/N

14645 B=(Z1-N*Xb*Yb)/(X2-N*Xb*Xb)

14650 A=Yb-B*Xb

14655 SUBEXIT

A42
14660 Lin_err: I 14665 IF B-0 THEN B=1 14670 PRINT " ERROR IN SUB ’LINEAR’ : "tERRM$

14675 CALL Er r_record(ERRM$)

14680 SUBEND

14685 I ///////////////////////////////////////////////////////////////////////

14690 SUB Manual

14695 ! THIS SUB ALLOWS THE USER TO PERFORM A ’RUN TIME’ ADJUSTMENT

14700 1 OF THE PID CONTROLLER PARAMETERS.

14705 OPTION BASE 1 14710 COM /Ctrl/ Cda ta(* ) ,Cset (* ) , Cnt r l_v I i m(* ) , Loop_ I abe I $( • ) ,Cst r$(*) .Mhvmax

14715 COM /Figs/ I gf I ag . Prev_ne

14720 COM /loscan/ Oueue(*) ,Nq,Oseq1 (•) ,Nqs1 ,Qseq2(*) ,Nqs2,Oseq3(*) ,Nqs3,Qseq4(*) ,Nqs

4,Qseq5(*) ,Nqs5,Oseq6(*) ,Nqs6

14725 COM /Manual/ Powe rf I ag , Vread i ng( •)

14730 COM /Mcl/ Ts.Ne,Edat(*),Pdat(*),Nr,Rtdat(*),Nf .Fedat(*).Ftdot(*),Kdat(*).Ttne(*)

, N rmax , Nf max , T I im 14735 COM /Mc5/ Op_mode( •) , Ht emp(* ) , Ltemp(* ) ,Ht_mode (•) , Fi I e_num(* ) . Se t_temp( •

)

14740 SYSTEM PRIORITY 0

14745 ON ERROR GOTO Monual_err

14750 IF Queue(1 )>-1 THEN

14755 BEEP 83*23, .1 14760 SUBEXIT

14765 END IF 14770 Ncpar=7 ! NLAtBER OF CONTROLLER PARAMETERS

14775 Ncloops=5 ! NUMBER OF CONTROL LOOPS

1 4780 ALLOCATE Ctemp( 1 : Nc I oops , 1 : Ncpar ) , Sptemp( 1 : Nc 1 oops) ,C( 1 : Ncpa r) 14785 MAT Ctemp= Cset

14790 FOR 1=1 TO Ncloops

14795 Ctemp(I ,1)=Set_temp(I)

14800 NEXT I 14805 CtempO ,5)=Cset(1 ,5)»1 .E+6

14810 Ctemp(1 ,6)=Cset(1 ,6)*1 .E+6

14815 Lindex=5

14820 Cindex=1

14825 lnc_pwr»0

14830 FOR 1=0 TO 9 14835 ON KEY I LABEL "" GOTO 15190

14840 NEXT I 14845 ON KEY 2 LABEL " STEP UP " GOTO 14950

14850 ON KEY 3 LABEL " POWER SUPPLY" GOTO 14875

14855 ON KEY 4 LABEL ” MAKE CHANGES" GOTO 14970

14860 ON KEY 7 LABEL " STEP DOWN " GOTO 14960

14865 ON KEY 9 LABEL " MAIN MENU " GOTO 15245

14870 GOTO 15020

14875 IF Powerflag=1 THEN

14880 CALL Poweroff

14885 ELSE

14890 CALL Poweron

14895 END IF 14900 GOTO 15020

14905 C i ndex=C i ndex+1

14910 IF Cindex>Ncpar THEN Cindex=1

14915 GOTO 15020

14920 L i ndex=Li ndex+1

14925 IF L i ndex>Nc I oops THEN Lindex=1

14930 GOTO 15020

14935 Inc_pwr=Inc_pwr+1

14940 IF Inc_pwr>10 THEN Inc_pwr=— 10 14945 GOTO 15020

14950 Ctemp(Lindex,Cindex)=Ctemp(Lindex,Cindex)+10tI nc_pwr

14955 GOTO 15020

14960 Ct emp( L i ndex ,C i ndex)=Ct emp( L index,Cindex)-10tI nc_pwr

14965 GOTO 15020

14970 FOR 1=1 TO Ncloops

14975 FOR J=2 TO Ncpar

14980 Cset(I , J)=Ctemp(I , J)

14985 NEXT J 14990 Set_temp( I )=Ctemp( I , 1

)

14995 NEXT I 15000 Cset(1 ,5)=Ctemp(1 ,5)*1 .E-6

15005 Cset(1 ,6)=Ctemp(l ,6)*1 .E-6

A43
15010 CALL Set pnt calc 1 INITIATE THE CONTROLLER CHANGES

15015 GOTO 15020

15020 IF Powerf lag=1 THEN

15025 ON KEY 8 LABEL " ON" GOTO 14875

15030 ELSE

15035 ON KEY 8 LABEL " OFF" GOTO 14875

1 5040 END I

F

15045 ON KEY 0 LABEL Loop_ I obe I $( Li ndex) GOTO 14920

15050 IF Lindex=1 AND Cindex=1 THEN

15055 ON KEY 5 LABEL Cst r$(C i ndex)4" (de I T) " GOTO 14905

15060 ELSE

15065 ON KEY 5 LABEL Cst r$(C i ndex) GOTO 14905

15070 END IF 15075 IF Cindex>1 THEN

15080 IF Cindex=3 OR Cindex-=4 THEN

15085 ON KEY 6 LABEL VAL$(Ctemp( Li ndex ,C i ndex) )t" sec." GOTO 15240

15090 ELSE

15095 ON KEY 6 LABEL VAL$(Ctemp( L i ndex ,C i ndex) ) GOTO 15240

15100 END IF 15105 ELSE

15110 IF Lindex=1 THEN

15115 ON KEY 6 LABEL VAL$(Ctemp( L i ndex . C i ndex) )*" microV" GOTO 15240

15120 ELSE

15125 ON KEY 6 LABEL VAL$(Ctemp( L i ndex ,C i ndex) )&" degC" GOTO 15240

15130 END IF 15135 END IF 15140 ON KEY 1 LABEL " Inc.= 10t"tVAL$( I nc_pwr) GOTO 14935

15145 C(1 )=Set_temp(Li ndex)

15150 FOR 1=2 TO Ncpar

15155 C(I)=Cset(Lindex,I)

15160 NEXT I 15165 IF Lindex=1 THEN

15170 DISP "SP=";C(1);" m i c roV,K=" ;C(2) ; " , T i=" ;C(3) ; " , Td=" ;C(4) ; " ,T iBW=" ;C(5) *1 . E+ 6;",KBW=";C(6)*1 . E+6 ; " . KRF=" ; C(7)

15175 ELSE

15180 DISP "SP=";C(1);" C ,K=" ;C(2) : " . T i=" ;C(3) ; " . Td=" ;C(4) ; " , T i BW=" ;C(5) ; " ,KBW=" ;C (6);",KRF=":C(7)

15185 END IF 15190 Tpouse=TIMEDATE

15195 LOOP

15200 Tbusy=TIMEDATE-Tpouse

15205 IF TIMEDATE-Tpouse-Tbusy>2 THEN Tpause=T IMEDATE

15210 IF NeOPrev_ne THEN CALL Update_p I ot ( "N"

)

15215 IF Oueue(l)>-1 THEN

15220 BEEP 83*23, .

1

15225 SUBEXIT

15230 END IF 15235 EXIT IF T IMEDATE-Tpause>1 20

1 5240 END LOOP

15245 DISP "" 15250 SUBEXIT

15255 Manual_err; 1 15260 PRINT " ERROR IN SUB ’MANUAL’ : "*ERRM$

15265 CALL E r r_reco rd ( ERRM$)

15270 SUBEND

1 5275 ! //////////////////////////////////////////////////////////////////////

15280 SUB Chon_swi tch(Nchon ,Dvm_cmd$)

15285 ! 15290 ! 15295 ! 15300 ! 15305 ! 15310

15315

15320

15325

15330

15335

15340

15345

15350

15355

THIS SUB SWITCHES RELAY POSITIONS ON THE JRL SCANNER AND SETS THE

181 DVM TO THE SPECIFIED RANGE

Nchan ; NEW JRL RELAY NUMBER

Dvm_cmd$ : COMMAND STRING OUTPUT TO THE JLR RELAY DVM 181 THIS SUB ASSUMES THAT THE MULT I PROGRAMMER IS SET TO THE ADDRESS 723

COM /FI/ Flag$

COM /Instr/ Mhl 81 , J r 1 1 81 ,Mh1 95 . Topi 95 , Bapi 95 . 1 g1 95

COM /Jrichon/ Chon .Tchan ,Dvtn_cmmd$ . Def au I t_chan

ON ERROR GOTO Ch_sw_error

Ch=FNChon_s i g(Nchan)

Write_io(723."OP.0,255T") ! OPEN ALL THE JRL RELAYS

Ch_short=FNChon_sig(2) ! JRL CHANNEL WITH SHORT = CHAN. 2 Wri te_io(723."OP.0,"ftVAL$(Ch_short)*"T") ! CLOSE JRL RELAY IF A SHORT

WAIT .1 Write_io(723."OP,0.255T") ! OPEN ALL THE JRL RELAYS

A44
15360

15365

15370

15375

15380

15385

15390

15395

15400

15405

15410

15415

15420

15425

15430

15435

15440

15445

15450

15455

15460

15465

15470

15475

15480

15485

15490

15495

15500

15505

15510

15515

15520

15525

15530

15535

15540

15545

15550

15555

15560

15565

15570

15575

15580

15585

15590

15595

15600

15605

15610

15615

15620

15625

15630

15635

15640

15645

15650

15655

15660

15665

15670

IF Dvm_cmd$ODvm_cmmd$ THEN CALL Wr i te_io(J r 1 181 ,Dvm_cmd$)

Write_io(723."OP.0."ftVAL$(Ch)ic"T") 1 CLOSE THE REQUESTED JRL RELAY

Chan>=Nchon

Tchan-=TIMEDATE

SUBEXIT

Ch_8w_error; 1 PRINT "ERROR IN CHANNEL_SWITCH SUB"

IF Flog$="OK" THEN Flog$=" CHANNEL SWITCH SUB ERROR"

SUBEND

I///////////////////////////////////////////////////////////////////////

SUB Read_o I d_data

I THIS SUB READS IN THE SETUP PARAMETERS FOR A PREVIOUS RUN

COM /Dtl/ Fi le_specs$(») ,Mode$(*) ,Gas$(*)

COM /Sb3/ Fd(*) ,Tavg_i nterva

I

ON ERROR GOTO Old_dat_err

PRINT USING "0,3/"

PRINT " INPUT THE NAME OF THE FILE FROM WHICH YOU"

PRINT " WOULD LIKE TO READ A SET OF EXPERIMENTAL RUN PARAMETERS"

PRINT " TO BE USED WITH THIS RUN."

PRINT

PRINT " PLACE THE DISK CONTAINING THAT FILE IN THE RIGHT DRIVE."

L INPUT " ENTER FI LENAME . " . F I n$

IF Fln$="" THEN GOTO 15465

ASSIGN 01 TO Fln$

ENTER 01 ;Fi le_specs$(*) ,Fd(*)

ASSIGN 01 TO • SUBEXIT

Old_dot_err: ! PRINT USING "0,5/"

PRINT " ERROR IN OLD DATA READ ATTEMPT"

PRINT " ";ERRM$

Ans$="

LINPUT " DO YOU WANT TO TRY AGAIN? (Y/N)",Ans$

IF Ans$="Y" THEN GOTO 15435

SUBEXIT

SUBEND

!////////////////////////////////////////////////////////////////////

SUB Time_set

! THIS SUBROUTINE SETS THE SYSTEM DATE AND TIME

LOOP

PRINT USING "0,5/"

PRINT "THE CURRENT TIME SETTING IS " ,DATE$(TIMEDATE) ,TIME$(TIMEDATE)

Ans$="N"

INPUT "IS THIS TIME VALUE APPROPRIATE (Y/N)?",Ans$

IF Ans$="Y" THEN SUBEXIT

PRINT USING "0,10/"

PRINT "INPUT THE DATE IN THE FOLLOWING FORMAT :" PRINT

PRINT " ’";DATE$(TIMEDATE);

St r1$=DATE$(TIMEDATE)

INPUT " DAY MONTH YEAR ",Str1$

IF LEN(Str1$)<10 THEN GOTO 15585

PRINT USING "O,10/,60A";"INPUT THE TIME IN 24 HOUR FORMAT :" St r2$=TIME$(TIMEDATE)

INPUT " HOURS .-MINUTES ",Str2$

IF LEN(Str2$)<4 THEN GOTO 15620

SET TIMEDATE DATE(St r1$)+TIME(St r2$) END LOOP

SUBEND

!//////////////////////////////////////////////////////////////////////

SUB Plot_prep(X1 ,X2,Xinc,Y1 ,Y2,Yinc,Xt i t$,Yt i t$)

! THIS SUB CALCULATES THE NECESSARY GRAPHICS LIMITS

COM /Mcl/ Ts,Ne,Edat(*) ,Pdat(*) ,Nr,Rtdot(*) ,Nf .Fedot (•), Ft dot (•) ,Kdat(*).Tme(»)

.Nrrnox , Nf mox , T I i

m

15675 COM /Gri/ P I ot_v i ew , P I ot_type , P i ndex

15680 COM /Mc5/ Op_mode(* ) , Ht emp( • ) , Ltemp( • ) ,Ht_mode( • ) , F i I e_num( • ) .Set temp(»)

15685 COM /Mc6/ Ntm . Nt r ,Nt p , Nt

z

15690 COM /Sbl/ T0,Td0

15695 ! THIS SUB SETS PARAMETERS FOR THE CRT PLOTTER

15700 ALLOCATE G$[20]

15705 ON ERROR GOTO P I ot_prep_e r ror 15710 CALL G_ I obe I (G$ ,P I ot_type , P i ndex)

A45
15715

15720

15725

15730

15735

15740

15745

15750

15755

15760

15765

15770

15775

15780

15785

15790

15795

15800

15805

15810

15815

15820

15825

15830

15835

15840

15845

15850

15855

15860

15865

15870

15875

15880

15885

15890

15895

15900

15905

15910

15915

15920

15925

15930

15935

15940

15945

15950

15955

15960

15965

15970

15975

15980

15985

15990

15995

16000

16005

16010

16015

16020

16025

16030

16035

16040

16045

16050

16055

16060

16065

16070

Xtit$="TIME (MINUTES)"

IF Plot_type«=3 THEN

Ytit$«G$ft" (WATTS)"

ELSE

Ytit$=G$4" TEMP.(C)"

IF Plot_type=2 THEN Yt i t$="CORRECTED "lcG$t" TEMP.(C)"

IF Plot_type=1 AND Pindex=1 THEN Yt i t$=G$*" EMF (microV)"

END IF

IF Plot_type=5 THEN Yt i t$=G$&" (mW/(m*K))"

1 DEFINE DEFAULT Y-AXIS VALUES FOR TEMP. BASED ON MAIN PLATE TEMP. Y1=0

Y2=0

Ym=Set_temp(5)

Y i nc=Ym/5

Yi nc=INT(Yi nc/10)*10

IF Yinc=0 THEN Yinc-10

REPEAT

Y2=Y2+Yinc

UNTIL Y2>Yinc+Ym

SELECT Plot_type

CASE 1 ! FULL

IF Pindex=1 THEN

Y1=-500

Y2*500

Yi nc=100

END IF CASE 2 ! FULL

Y1=Y2-5*Yi nc CASE 3 ! FULL

Y2=100

Y i nc=10

CASE 4 ! FULL

Y1 = 18

SCALE Y_AXIS DEFAULT VALUES FOR GAP tc

SCALE Y_AXIS DEFAULT VALUES FOR tc TEMPS.

SCALE Y-AXIS DEFAULT VALUES FOR MAIN HEATER POWER

SCALE Y-AXIS DEFAULT VALUES FOR REF. BLOCK

Y2=30

Yi nc=2

CASE 5 Y1=0

Y2=100

Y i nc=1

0

FULL SCALE Y-AXIS DEFAULT VALUES FOR THERM. COND . (mW/M*K)

CASE ELSE

END SELECT

Xrange=1800 ! 30 MIN. RANGE

X1=0

X i nc=300

Fact=INT(((Ts*Ne)/Xrange)+1

)

IF (Fact *X range—Ts*Ne)< . 2*Xrange THEN Fact=Fact+1

X2=Xrange*Fact

IF Plot_type=2 OR Plot_type=5 THEN

X1pt2=INT(Td0/Xinc)*Xinc

X1=X1 pt2

Fact=( INT( (Ts*Ne-X1 pt2)/Xrange)+1

)

IF ( Fac t *X range-Ts*Ne+Td0)< . 2*X

X2«=X1+Fact*Xrange

END IF IF Plot_view>0 OR Nf>2 THEN 1 IF Plot_view=0 THEN

Xi nc=Xi nc*Fact

ELSE

X range=X ronge*(2t(PI ot_v i ewX i nc=X inc*(2t(Plot_vi ew— 1 )

)

X1=X2—Xrange

IF XK0 THEN

X1=0

X2=X1+Xrange

END IF IF (Plot_type=2 OR Plot_type=

X1=X1pt2

X2*=X1+Xrange END IF WHILE Ne*Ts<X1+.8*Xrange I X1=X1-Xinc

END WHILE

ange THEN Fact=Fact+1

X-AXIS MODIFY k Y-AXIS AUTO SCALE

)) ! ADJUST XRANGE FOR PLOT_VIEW

! ADJUST XINC FOR PLOT_VIEW

5) AND XKX1pt2 THEN

SHOW 80% OF THE DATA IN LAST WINDOW

A46
16075

160B0

16085

16090

16095

16100

16105

16110

16115

16120

16125

16130

16135

16140

16145

16150

16155

16160

16165

16170

16175

16180

16185

16190

16195

16200

16205

16210

16215

16220

16225

16230

16235

16240

16245

16250

16255

16260

16265

16270

16275

16280

16285

16290

16295

16300

16305

16310

16315

16320

16325

16330

16335

16340

16345

16350

16355

16360

16365

16370

16375

16380

16385

16390

16395

16400

16405

16410

16415

16420

16425

16430

IF XK-0 THEN X1-0

X2=X1+Xrange

END IF SCALE Y AXIS

Nes-INT(X1/Ts)

IF Nes>Ne THEN Nes-Ne

IF Ne8<=0 THEN Nes=1

Nstp=1

WHILE (X1>Tme(Nstp)+30) AND Nstp<Nf

Nstp“Nstp+1

END WHILE

SELECT Plot_type

CASE 1 T op=Ne—Nes+1

ALL(XATE Arr(1 :Top)

FOR J=1 TO Top

Ar r ( J )<=Edat (P i ndex , Nes+J-1

)

NEXT J Stp=MIN(Arr(*))

Endp=MAX(Ar r ( • )

)

IF Pindex=1 THEN

Stp=Stp*1 .E+6 ! MICROVOLT CONVERSION

Endp=Endp*1 .E+6 END IF Tpstep=.001 ! MIN. DIFF. ACCEPTED FOR RTD TEMPS. (C) IF Pindex=1 THEN Tpstep=.1 ! MIN. STEP FOR MICROVOLTS

CASE 2 Top=Nf—Nstp+1

IF Kdat(Nf)=0 THEN Top=Top-1

IF Top<1 THEN Top=1

ALLOCATE Arr(1 ;Top)

FOR J=1 TO Top

Arr(J)=Ftdot(1+2*(Pi ndex-1 ) , Ns t p+J-1 )+Ft dot (2+2* (P i ndex-1 ) , Ns t p+J-1

)

NEXT J St p=MIN(Ar r ( • )

)

Endp=MAX(Ar r (* )

)

Tpstep=.0001 ! MIN. DIFF. ACCEPTED FOR T.C. TEMPS. (C)

CASE 3 Top=Ne—Nes+1

ALLOCATE Arr(1 :Top)

FOR J=1 TO Top

Ar r ( J )=Pdot ( 1 . Nes+J-1 ) *Pdot (2 , Nes+J-1

)

NEXT J St p=MIN(Ar r (• )

)

Endp=MAX(Ar r(* )

)

Tpstep=.001 ! MIN. DIFF. ACCEPTED FOR POWER (WATTS)

CASE 4 ALLOCATE Arr(1 :Nr)

FOR J=1 TO Nr Arr(J)=Rtdot (1 , J)

NEXT J S t p=M IN(Arr(*))

Endp*MAX( Ar r ( * )

)

Tpstep=.001 ! MIN. DIFF. ACCEPTED FOR REF. TEMP. PLOT (Y AXIS)

CASE 5 Top=Nf-Nstp+1

IF Kdot(Nf)=0 THEN Top=Top-1

IF Top<1 THEN Top=1

ALLOCATE Arr(1 :Top)

FOR J=1 TO Top

Arr(J)=Kdot ( Ns t p+J-1

)

NEXT J Stp=MIN(Arr(*)

)

Endp=MAX(Ar r(* )

)

Tpstep=.001 ! MIN. DIFF. ACCEPTED FOR K VALUE (Y AXIS)

CASE ELSE

END SELECT

IF Stp>Endp THEN

Lo=Endp

H i =Stp

ELSE

Lo=Stp

A47
16435

16440

16445

16450

16455

16460

16465

16470

16475

16480

16485

16490

16495

16500

16505

16510

16515

16520

16525

16530

16535

16540

16545

16550

16555

16560

16565

16570

16575

16580

16585 I 16590

16595

16600

16605

16610

16615

16620

16625

16630

16635

16640

16645

16650

16655

.Nrmax 16660

16665

16670

16675

16680

16685

16690

16695

16700

16705

16710

16715

16720

16725

16730

16735

16740

16745

16750

16755

16760

16765

16770

16775

16780

16785

Hi-=Endp END IF Pstep=ABS(St p-Endp)

IF Pstep=0 OR Pstep<Tpstep THEN Pstep>=Tpstep

DEALLOCATE Arr(*)

IF Pstep>1 THEN

Ex=0

WHILE Pstep>=10

Ex=Ex+1

Pstep=Pstep/10

END WHILE

ELSE

Ex=0

WHILE Pstep<1

Ex=Ex-1

Pstep=Pstep*10

END WHILE

END IF

Yi nc=10tEx

Y3f udge=1

IF Pstep<5 THEN

Yi nc=Yi nc/2

Y3f udge=2»Y3 fudge END IF

YI =I NT ( Lo/Y i nc ) *Y i nc-Y i nc Y2=I NT (H i /Y i nc+1 ) *Y i nc+Y i nc ELSE ! FULL TIME VIEW PLOT

X i nc=X i nc*Fact

END IF SUBEXIT

^ I ot_prep_er ror : ! PRINT "PLOT PREP ERROR " ; ERRM$

CALL Er r_record(ERRM$)

SUBEND

!////////////////////////////////////////////////////////////////////////

SUB Update_p I ot (Rsp$)

1 THIS SUB PLOTS THE MOST RECENT DATA POINT ON THE CRT PLOT

! CURRENTLY BEING DISPLAYED.

! INPUT VARS.

! Rsp$ = FLAG FOR PLOT RESCALE (’Y’ ALLOWS A PLOT RESCALE.

I IF NECESSARY; ’N’ DOES NOT PERMIT A PLOT RESCALE)

COM /Figs/ Igf I og ,Prev_ne

COM /Gri/ P I ot_v i ew , P I ot_t y pe ,P i ndex

COM /Gr2/ XI ,X2.Xinc,Y1 ,Y2,Yinc.Xti t$[40] ,Ytit$[40]

COM /Mcl/ Ts,Ne.Edat(*) .Pdot (*) .Nr,Rtdat(*) ,Nf . Fedot (*), Ft dot (*). Kdot (*). Tme(*

)

, Nf max , T I i

m

COM /Tcsti/ Store_flog

ON ERROR GOTO Upd.err

IF Ne<1 THEN SUBEXIT

! UPDATE CURRENT SCREEN PLOT

P re v_ne=Ne

SELECT Plot_type

CASE 1 Ypl=Edot(Pindex,Ne)

IF Pindex=1 THEN Yp l=Yp I * 1 . E+6

Xp I =Ne*Ts

CASE 2

IF Nf<>0 THEN

IF Kdot(Nf)<>0 THEN

Ypl=Ftdot(1+2*(Pi ndex-1 ) ,Nf )+Ftdot (2+2*(Pi ndex-1 ) ,Nf

)

Xp l=Tme(Nf

)

ELSE

SUB EX IT END IF END IF CASE 3 Ypl=Pdot (1 .Ne)*Pdot(2.Ne)

Xp I =Ne*T s CASE 4 Ypl=Rtdot (1 ,Nr)

Xpl=Rtdot(2.Nr)

CASE 5

A48
16790

16795

16800

16805

16810

16815

16820

16825

16830

16835

16840

S CALL

16845

16850

16855

16860

16865

16870

16S75

16880

16885

16890

16895

16900

16905

16910

16915

16920

16925

16930

16335

16340

16945

16350

16955

16960

16965

16970

16975

16980

16985

16990

16995

17000

17005

17010

17015

17020

17025

17030

17035

17040

17045

17050

17055

17060

17055

17070

17075

17080

17085

17090

17095

17100

17105

17110

17115

17120

17125

17130

17135

17140

IF Nfo0 THEN

IF Kdat(Nf)o0 THEN

Ypl«Xdct(Nf

)

Xpl=Tme(Nf

)

ELSE

SUB EXIT

ENO IF END IF CASE ELSE

END SELECT

IF Rsp$="Y" AND (Ypl>Y2 OR YpKYI OR Xp l>(X1+(X2-X1 ) »1 . 0) ) AND Store_flog=0 THE Rescole_plot(Xpl ,Ypl)

IF (Plot_type=2 OR Plot_tyDe=5) THEN

IF Nf=1 THEN MOVE XpI.YpI

IF Nf>1 THEN

IF Tme(Nf)o0 THEN P^OT XpI.YpI

END IF ELSE

Plot Xpl ,Ypl END IF SUB EX IT Upd_err; ! PRINT ' PLOTTING ERROR IN SUB ’ UPDATE_PLOT’ : "tERRMS

CALL Er r_reco rd(ERRM$)

SUB END !////////////////////////////////////////////////////////////////////////

SUB At od_ i o(V, Treoc .01 dvc I t

)

! THIS SUE TA.KES AND RETURNS AN AVERAGED A/D READING. THE VOLTAGE

! READING RETURNED t^ROM THIS SUB IS THE OUTER GUARD R~D VOLTAGE.

COM /Reodi/ Ic_error.Boa_i nst r(») .3ao_read_t ime$(»)

COM /SdI/ T0.Td0

COM /FI/ FlogS

ON TIMEOU* 7..1 GOTO Recd_i t_e - rc

r

ON ER-OR GCTC Reod_i t_e rro-2

Vt=0

FOR 1=1 TO 20

OUTPUT 723:"IP,2T"

ENTER 72301 ;V Vt=Vt+V

NEXT I V=Vt/20 ! CALCULA'E AVERAGE VALUE

V=V/10 ! SCA^E THE MU^T1PR0GRAW*,<ER OUTPUT

T reoc=TIMEDATE—T0

0F«^ TIMEOUT

SUB EX IT Read_ i t_e r ro r : !

I o_e r ro r=I o_e r ro r+1 Bad_i ns t r( I c_e r ror)=723

Clear 723

Bcd_''eoc_t i me$( Io_e r rc r)=DA’'E$(TlMEDATE)4" "4TIMES(TIMEDa~E)

BEEF 63*35. .

1

IF Io_error=100 THEN F I ag$="UAXI m:JM NUMBER OF 10 ERRORS EXCEEDED !:' V=0 I dvo I

t

T reod=TlMEDATE—T0

Reod_i t_e r ror2 : ! CALL Er r_reco rd ( ERRM$)

PRINT " ERROR IN ’Atod io’ SUB : "4ERRM$

BEEF 63*35. .1 SUB END !/////////////////////////////////////////////////////////////////////

SUB Dato_read

! THIS SUB TAKES JR^ CHANNEL NUMBERS PROM THE Queue :•) ARRAY.

1 INCREMEN'^S THE Queue(*) ARRAY. THEN DIRECTS THE JRL RELAY TO

! SVtITCH TO THAT CHANNEw. AFTER A DESIGNA-ED V^AITING PERIOD, A

! VOLTAGE READING IS TAKEN AND STORED IN ^he APPROPRIATE ARRAY

! STORAGE LOCATION.

! variables :

! Settle_time = TIME (SEC) BETWEEN THE CHANNEL Switch and READING

I COM /Adjloc2/ Lcst_reod i ng(»)

COM /Dri/ Bod_curr

COM /Dr2/ Rtdi_hist(1 :10)

A49
17145 COM /Fid/ Disp_flog

17150 COM /loscan/ Oueue(*) .Nq.Qseql (*) ,Nqs1 ,Qseq2(*) ,Nq82,Qseq3(*) ,Nq33,08eq4(*) ,Nqs

4,Q8eq5(*) ,Nq85,08eq6(*) ,Nq86

17155 COM /Htr2/ New_htrcur

17160 COM /Figs/ Igf I og , Prev_ne

17165 COM /Instr/ MhIBI , Jr 1 181 ,Mh195,Tap195,Bap195. Ig195"

17170 COM /Jrlchon/ Chan , Tchan ,Dvm_cmmd$ ,Def au I t chan

17175 COM /Mcl/ Ts,Ne,Edat(*).Pdat(*),Nr.Rtdat(*).Nf ,Fedat(*),Ftdat(*).Kdat(*).Tme(*)

, Nrtnax , Nf max ,T I im 17180

17185

17190

17195

17200

17205

17210

17215

17220

17225

17230

17235

17240

17245

17250

17255

17260

17265

17270

17275

17280

17285

17290

17295

17300

17305

17310

17315

17320

17325

17330

17335

17340

17345

17350

17355

17360

17365

17370

17375

17380

17385

17390

17395

17400

17405

17410

17415

17420

17425

17430

17435

17440

17445

17450

17455

17460

17465

17470

17475

17480

17485

17490

COM /Mc2/ Heater_sres

COM /Mc3/ Rtdpwr_sres

COM /Rn/ Run

COM /Sbl/ T0,Td0

COM /Sb2/ I_rtd ,Tref , Emf_ref

COM /Sb3/ Fd( • ) , Tavg_ i nte rva

I

COM /Sdisp/ Screen_prnt

COM /Water/ Ncw,Cwater(*)

COM /Zeros/ Z j r 1 1 81_200 ,Z j r 1 1 81_20 . Zgap195 . Zh i story (•)

ON KBD GOSUB NothingZ

ON KEY 0 LABEL "" GOSUB NothingZ

ON KEY 5 LABEL "" GOSUB NothingZ

ON ERROR GOTO Data_reod_err

DISP " JRL DVM READING IN PROGRESS ... DON’T TOUCH ANY KEYS!!"

Sett le_t ime=5 ! DVM SETTLING TIME (SECONDS)

Di sp_f I og=TIMEDATE+Set t le_t ime-9

Nchan=Queue ( 1

)

IF (Nchon>2 AND Nchon<7) OR (Nchan>12 AND Nchon<17) THEN

CALL Chan_sw itch(Nchan, "R2B1 X"

)

ELSE

CALL Chan_switch(Nchan, "R3B1 X"

)

END IF UPDATE THE QUEUE

FOR 1=1 TO Nq-1

Queue ( I )=Queue ( 1+1

)

NEXT I Queue (Nq)=—1

REPEAT

IF NeOPrev_ne THEN

CALL Update_plot("N")

T i nte rupt=T IMEDATE

END IF UNTIL T IMEDATE-Tchan>Set t I e_t ime

Vlast=Last_reading(Chan)

IF Chon=19 THEN

SYSTEM PRIORITY 15 WAIT 2-(TIMEDATE-Tinterupt)

END IF

IF (Nchan>2 AND Nchan<7) OR (Nchan>12 AND Nchan<17) THEN

CALL Read_io(V,Tmr,Jrl 181 . "R2B1 X" . VI os t

)

ELSE

CALL Read_i o(V,Tmr . Jr 1 181 , "R3B1X" ,VI ost

)

END IF IF Chan=8 THEN ! TO ZERO GAP DVM TAKE SIMULTANEOUS READ

CALL Read_io(Vg,Tt,Ig195, "R0X" , Las t_ read ing(Chan))

END IF Last_reading(Chan)=V

Chan0=Chan

STORE THE 181 READING IN THE APPROPRIATE PLACE

SELECT Chan0

CASE 1 CALL Ref_rtd(V,Tmr)

CASE 2 ! CORRECT JRL DVM ZEROS

Zh i story ( 1 , 2)=Zh i story ( 1 , 1

)

Zj rl 181_200=Zj rl 181_200+V

Zhi story(1 . 1 )=Zj r 1 181_200

CALL Chon_sw i tch(Nchon , "R2B1 X"

)

REPEAT

UNTIL TIMEDATE-Tchan>Set t I e_t ime

CALL Read_io(V,Tmr,Jrl181 ."R2B1X",0)

Zh i story (2 , 2)=Zh istory(2,1)

Zj r I 181_20=Z i r 1 181_20+V

Zhistory(2.1)=ZJrl181_20

A50
CASE 18 Loxcurr*>.00001/(1 + INT((TlMEDATE-T0)/( 60*50)))

IF TIMEDATE-T0<60*50 THEN Loxcur r=. 0001

td

0000001

)

17495

17500

17505

17510 IF Rtdi_hist(1)-0 THEN Rtdi_hist(1

17515 IF (ABS(Rtd i_h i st ( 1 )-V/Rtdpwr_8 res

( I_rtd-V/Rtdpwr_sres)<Loxcurr) THEN

)=I_M

)<. 00« OR (TIMEDATE-T0<60*150 AND ABS

17520

17525

17530

17535

17540

17545

17550

17555

17560

17565

17570

17575

17580

rtd

17585

. OLD

FOR Joy«=9 TO 1 STEP -1 Rtd i_h i st ( Joy+1 )*Rtd i_h i st ( Joy)

NEXT Jay

Rtdi_hist(1 )«=V/Rt dpwr_s res

IF ((TIMEDATE-T0>60*120) OR Run>1 ) AND Rtdi.hi st(10)<>0 THEN

I_rtd-(SUM(Rtdi_hist))/10

ELSE

I_rtd-=Rtdi_hist(1) END IF

IF Screen_prnt THEN PRINT " RTD CURRENT = ";I_rtd

ELSE

Bad_cu r r*Bod_cu r r+1 PRINT " BAD RTD CURRENT READING! V/R=" ; V/Rtdpwr_s res

; " , OLD I_rtd= I CALL Err_record("

I_rtd=‘‘a:VAL$(I_rtd))

BAD RTD CURRENT READING! V/R="tVAL$(V/Rtdpwr_sres)4‘'

17590 IF Screen_prnt THEN OUTPUT 701;" BAD RTD CURRENT READING! I_RTD=": I_rtd;

"

. V/R=" ;V/Rtdpwr sres 17595 BEEP 83. .2 17600 IF Bod_curr>3 THEN

17605 IF V/Rtdpwr_sres>.002 OR V/Rtdpwr_sres<.0001 THEN

17610 Flog$=" RTD CURRENT POWER SUPPLY PROBLEM (FLUKE)"

17615 ELSE

17620 FOR Jay=9 TO 1 STEP -1 17625 Rtdi_hist(Jay+1)=Rtdi_hist(Jay)

17630 NEXT Jay

17635 Rtdi_hist(l)=V/Rtdpwr_sres

17640 I_r t d=Rt d i_h i s t

( 1

)

17645 IF Rtdi_hist(10)<>0 THEN I_rtd=SUM(Rtd i_h ii st)/10

17650 Bad curr=0

17655 END IF 17660 END IF 17665 END IF 17670 CASE 19 17675 Pdat(1 , Ne)=V/Hea t e r_s res 17680 New htrcur=1

17685 CASE 3 TO 6,13 TO 16 17690 IF Td0=0 THEN

17695 CALL Rtd tune(Chan0,V)

17700 ELSE

17705 CALL Tc store(Chan0,V,Tmr)

17710 END IF 17715 CASE 7 17720 Fd(20)=V ! TOP IG 17725 CASE 8 17730 IF Igflag=1 THEN

17735 Fd(19)=V ! TOTAL IG 17740 2history(3,2)=Zhistory(3,1)

17745 Zhistory(3,1 )=Zgap1 95+(Vg-V)

17750 ELSE

17755 Zh i st ory (3 , 2)=Zh i s t o ry (3 , 1

)

17760 Zgap195=Zgap195+(Vg-V) ! CORRECT GAP DVM ZERO

17765 Zhistory(3,1 )=Zgap1 95

17770 END IF 17775 CASE 9 17780 Fd(18)=V ! BOTTOM IG 17785 CASE 11 17790 Ncw=Ncw+1

17795 Cwater(1 ,Ncw)=( INT( (FNTemp tc(V))*1000.))/1000-

17800 Cwater(2,Ncw)=1 .0* INT(Tmr/60)

17805 CASE ELSE

17810 END SELECT

17815 SUBEXIT

17820 Nothing2: ! 17825 BEEP 83*23, .1 17830 RETURN

A51
17835 Data_reod_err : I 17840 PRINT " ERROR IN THE SUB *DATA_READ*"

17845 PRINT ERRM$

17850 CALL Err_record(ERRM$)

17855 BEEP 83*25. .1 17860 SUBEND

17865 1 ///////////////////////////////////////////////////////////////////

17870 SUB K_stor

17875 ! THIS SUB COMPUTES THE RUNTIME VALUES OF T.C. TEMPERATURES (PHASE 2)

17880 ! AND THERMAL CONDUCTIVITY USED IN PLOTTING AND STAT . ANALYSIS.

17885 COM /Mcl/ Ts ,Ne . Edat (•), Pdat (*) .Nr . Rtdat (*) ,Nf , Fedot (•), Ftdot (•) .Kdat (•), Tme(*)

.Nrmox

17890

17895

17900

17905

17910

17915

17920

17925

17930

17935

17940

17945

17950

17955

17960

17965

17970

17975

17980

17985

1 7990

17995

18000

18005

18010

18015

18020

18025

18030

18035

18040

18045

18050

18055

18060

18065

18070

18075

18080

18085

18090

18095

18100

18105

18110

18115

18120

18125

18130

18135

. Nf max . T I im COM /Sb2/ I_rtd.Tref .Emf_ref

COM /Sb3/ Fd(* ) . Tovg_ i nt e rvo

I

ON ERROR GOTO K_stor_err

! RECOMPUTE THE PLATE TEMP. USING AVG. REF. BLOCK TEMP. Avg_t ref=(Rtdot(1 .Nr)+Rtdot(1 .Nr-1))/2

Emf_ref=FNEmf_tc(Avg_tref,1)

FOR 1=1 TO 7 STEP 2 Ftdot(I .Nf)=FNTemp_tc(Fedot(I .Nf )) Ft dot (1 + 1 .Nf )=FNTemp_tc(Fedot(I .Nf )-Fedot( 1 + 1 . Nf )/9)-Ft dot ( I .Nf

)

! NOTE: THE Del to T (STORED IN Ftdot) IS COMPUTED ABOVE BASED ON

! 1)9 ARMS OF THE STAR THERMOCOUPLE

! 2) A POSITIVE STAR tc SIGNAL CORRESPONDS TO

! PLATE CENTER BEING WARMER THAN THE EDGE.

I 3) Delta T IS DEFINED AS THE DIFFERENCE :

! AVERAGE PLATE TEMP. -CENTER PLATE TEMP. NEXT I

I ASSIGN VARIABLES USED IN THE SUB CALL FOR k CALC.

Ntme=INT(Tme(Nf)/Ts)

0=Pdot(1 .Ntme)*Pdot (2,Ntme)*1000 ! T1=Ftdot(7.Nf )+Ftdot(8.Nf )

! T2=Ftdot(5,Nf )+Ftdot(6.Nf )

! T3=Ftdot(3,Nf )+Ftdot(4.Nf )

! T4=Ftdot(1 .Nf )+Ftdot(2.Nf )

! Dio=Fd(8)*100.

Dx=Fd(3)*100.

Dr=Fd(21)*100.

Sc=Fd(22) ! Rc=Fd(15) ! RUN MODE (DBLE SIDED.

CALL K_ghp(K .TIo.Thi .Dxc.Acor.TI .T2,T

Kdot(Nf)=K ! SUBEXIT

CONVERTED TO MILLIWATTS

B.A.P. TEMP. (CORRECTED)

B.M.P. TEMP. (CORRECTED)

T.M.P. TEMP. (CORRECTED)

T.A.P. TEMP. (CORRECTED)

PLATE SPACER CODE

TOP. BOT.)

i.T4,O,Dia,Dx.Dr,Sc,Rc,0)

LOAD ARRAY IN mW/(m*K) UNITS

K_stor_err: ! PRINT " ERROR IN 'K_STOR’ SUB"

CALL Er r_record(ERRM$)

BEEP 83*3. .

1

SUBEND

!///////////////////////////////////////////////////////////////

SUB Run_obort

! THIS SUB SETS THE RUN ABORT VARIABLES

COM /FI/ Flog$

CALL Poweroff

Flog$="RUN ABORTED"

SUB END !///////////////////////////////////////////////////////////////

SUB Rtd_tune(Ch.V)

! THIS SUBROUTINE ADJUSTS A SETPOINT OFFSET THAT CALIBRATES

! THE RTD TEMPERATURE SETTING TO THE tc READING FOR EACH

! PLATE. COM /Conv_dot/ R0(*) ,AI pho(*) ,De I to(*)

COM /Mcl/ Ts,Ne,Edat(*).Pdot(*).Nr.Rtdat(*).Nf. Fedot (*).Ftdot(*).Kdat(*).Tme(*)

.Nrmox . Nf max . T I im 18140 COM /Mc5/ Op_mode ( * ) , Ht emp( • ) . Ltemp(* ) .Ht_mode(* ) . F i I e_num( * ) .Set_temp(*)

18145 COM /Rtd_corr/ Tcor r_rtd . Rt d_od j_f I og , Sp_cor r( •

)

18150 COM /Sdisp/ Screen_prnt

18155 COM /Tunel/ At une ( • ) ,Ok_f I og( • ) . Sp I os t( •

)

18160 ON ERROR GOTO Tune_err

18165 IF Ch<10 THEN

18170 Atune(Ch-2)=V

18175 ELSE

18180 Atune(Ch-12)=FNTemp_tc(Atune(Ch-12)-V/9)

A52
18185

18190

18195

18200

18205

18210

18215

18220

18225

18230

I og (3)-1

18235

18240

18245

18250

18255

,-RTD) - 18260

18265

N = " ; Tde

18270

18275

18280

18285

18290

18295

18300

18305

IF Atune(Ch-12)<0 THEN SUBEXIT

SELECT Ch

CASE 15 Avg=(Atune(2)+Atune(3))/2

Trtd-Edot(5.Ne-2)

Splastf5.2)-=Splost(5.1)

Sp I ost (5 , 1 ;=Avg-T rtd

Sp_cor r (5)=Sp lost(5,1)-(Splast(5,1 )-Sp_cor r (5) )• .

5

CALL Set_pnt_colc

IF ABS(Sp_corr(5)-Splast(5, 1 ))<.01 AND ABS(Set_tcmp(5)-Avg)<.05 THEN Ok_f

IF Screen_prnt THEN

T1=INT(Avg*10000. )/10000.

T2-=INT(Trtd*10000.)/10000-

Tdel=INT(Sp_corr(5)*10000. )/10000.

OUTPUT 701;" MAIN PLATE : T.C.=";T1;" . RTD=";T2;" . T diff. (T.C

T1-T2

New_sp=I NT ( (Se t_temp(5)-Sp_cor r (5) )• 10000 . )/10000

.

OUTPUT 701;" NEW SET POINT = ";New_sp;" . SET POINT CORRECTIO

END IF CASE 13

Trtd=Edat(3 ,Ne-1

)

Sp I Qst (3 , 2)=Sp I os t (3 . 1

)

Splost(3,l)=Atune(1)-Trtd

Sp_cor r (3)=Sp last(3.1)-(Splost(3,1 )-Sp_cor r (3) ) • .

5

CALL Set_pnt_colc

IF ABS(Sp_corr(3)-Splost(3,1))<.01 AND ABS(Se t_temp(3)-At une( 1 ) )< . 05 THEN

Ok_f log(1 )=1

18310

18315

18320

18325

18330

-RTD) = "; 18335

18340

N = ";Tdel

18345

18350

18355

18360

18365

18370

18375

18380

IF Screen_prnt THEN

T1=INT(Atune(1 )• 10000. )/10000.

T2=INT(Trtd*10000. )/10000.

Tde l=INT(Sp_cor r(3)*10000. )/l0000.

OUTPUT 701;" TOP PLATE : T.C.=";T1;" , RTD=";T2;" . T diff. (T.C.

T1-T2

New_sp=INT ( (Set_temp(3)-Sp_cor r (3) ) • 1 0000 . )/10000

.

OUTPUT 701;" NEW SET POINT = ";New_sp;" , SET POINT CORRECTIO

END IF CASE 16

Trtd=Edot(4.Ne-1)

Splast(4,2)=Splost(4,1)

Splost(4, 1)=A tune (4)-T rtd

Sp_co r r(4)=Splast(4,1)-(Splost(4,1 )-Sp_cor r (4) ) • .

5

CALL Set_pnt_colc

IF ABS(Sp_corr(4)-Sp!ost(4,l))<.01 AND ABS(Set_temp(4)-At une(4) )< . 05 THEN

Ok_f log(4)=1

18385 IF Screen_prnt THEN

18390 T1=INT(Atune(4)*10000. )/10000.

18395 T2=INT(Trtd*10000. )/10000.

18400 Tde l=INT(Sp_corr(4)*10000. )/10000.

18405 OUTPUT 701;" BOTTOM PLATE : T.C.=";T1;" , RTD=";T2;" . T diff. (T.C

.-RTD) = ";T1-T2

18410

18415

N = " 18420

18425

18430

18435

18440

18445

18450

18455

18460

18465

18470

18475

18480

18485

18490

18495

New_sp=I NT ( (Set_t emp(4)—Sp_cor r (4) ) *10000 . )/1 0000

.

OUTPUT 701;" NEW SET POINT = ";New_sp;" , SET POINT CORRECTIO

;Tdel END IF

IF SUM(Ok_f log)=3 THEN

Rtd_od j_f I og=1

BEEP 83*3, .2 OUTPUT 701;" ALL SETPOINT OFFSETS ARE STABILIZED TO .01 K" ELSE

MAT Ok_flog= (0) END IF CASE ELSE

END SELECT

END IF SUBEXIT

Tune_err: ! PRINT " ERROR IN THE ‘RTD.TUNE’ SUB ; "4ERRM$

CALL Er r_record(ERRM$)

SUBEND

A53
18500

18505

18510

18515

18520

18525

18530

18535

18540

18545

18550

18555

18560

18565

18570

18575

\////////////////////////////////////////////////////////////////

SUB Er r_record(M$)

1 THIS SUB RECORDS ALL NON-I.O. ERRORS IN THE STRING ARRAY ’ RUN_ERRORS$

COM /FI/ Flag$

COM /Run_err/ Rterr ,Run_errors$(*) ,Err_max

ON ERROR GOTO Err_err

Rterr=Rterr+1

IF Rt e r r>=Er r_mox THEN

Flog$=" THE MAXIMUM NUMBER OF PROGRAM ERRORS HAS BEEN EXCEEDED!!"

ELSE

Run_e rrors$(Rter r )»M$

END IF SUBEXIT

Err_err; I Flag$=" ERROR IN ’Err_record' SUB "*ERRM$

SUBEND

A54
Appendix B: A Thermocouple Device for Determination of

Average Surface Temperature

J. G. Must and David R. Smith

Chemical Engineering Science Division

National Bureau of Standards

Boulder, Colorado

Abstract

A thermocouple-based device for the measurement of average surface temperature

is described. The device requires the measurement of only two emfs and yields

the average temperature over the entire surface instrumented with the device.

It consists of a single (normal) thermocouple and a thermopile-like element

which performs the averaging. A particular use of the device is described to

illustrate its utility.

Key words: average temperature; thermocouple; thermopile; thermal properties.

INTRODUCTION

The determination of thermal properties of materials frequently requires the

measurement of the average temperature of a surface. This is usually done by

placing more than one temperature sensor on the surface and averaging the

resultant temperatures. The number of such sensors is usually small to

simplify wiring and reduce cost and complexity of instrumentation. As a result, the average temperature obtained is often based on an inadequate

sampling of the surface. Depending on the degree of temperature

nonuniformity, the error in such measurements may be a significant

contribution to the total error involved in thermal property determinations.

For example, the determination of surface temperatures for thermal

conductivity measurements using guarded hot plate or heat flow meter apparatus

can be significantly affected by such errors.

The device described here has only three leads but is capable of providing a much more accurate average temperature of the surface than that obtained with

two thermocouples.

PHYSICAL DESCRIPTION

The device is illustrated in Figure 1. It consists of a normal thermocouple

of alloys A and B that measures the temperature of point 0 of the surface. At

that point, a third wire consisting of a series of alternating thermocouple

elements (A,B,A...B) (similar to a thermopile) is attached. The points of

connection between the alternating thermocouple elements are labeled

*Contr ibution of the National Bureau of Standards, not subject to copyrigM in

the U.S.

B1
In this example, we have chosen 18 points for illustration, but the number. can

be any even number. The wire exits the surface from the last point, forming

with the original thermocouple a set of three measurement leads. From wires

Aj and B one obtains the temperature of point 0. From wires Aj and Aj one

obtains a measure of the average difference in temperature between the

even-numbered points and the odd-numbered points. By combining the two

results one obtains a measure of the average temperature of the surface.

MATHEMATICAL DESCRIPTION

The emf, e(Tp, Tq), produced by a single thermocouple at temperature, Tq. with

respect to a reference temperature, T^, can be expressed by eq. (1)

6 ( Tp ,

T

q

)

•To j-Tp j-To

. Sa dT + J SBdT = J SabcIT

Tp To Tp

(1)

where Sa is the thermopower of wire A, 85 is the thermopower of wire B, and

Sab ^A'^B* reference [1]. The emf ep produced by the thermopile-like

elements can thus be written as

®P^Tq, T-| 3)

Ti T2

SgdT+

ho

Ti7 Ti8

+ f SAdT+ f SgdT

•*Ti6 '*Tt7

(2)

where it is assumed that Tq = T-| g because of their physical proximity, and

thus the emf from the wires A-] and A2 (of the same material) between the

surface and reference temperature is zero. If, in addition, we assume that

the thermopowers are nearly constant over the temperature range of the

surface, we can approximate

®p (Tq.Tt 8)=Sa(T-i-To)+Sb(T2-Ti ) + .... +Sa(Tt y-T-] 6)+Sg(Ti 8“Ti 7) ( 3)

This, using To=T-|8» yields

9 9

®p(To.Ti8)=SAB ( I T2j-i - I T2j)

j=1 j=l

(^)

B 2
This can be rewritten as

®p(TOf Ti8)/(9 S^b) = Todd “ Teven

yielding the average temperature difference of the odd-numbered points with

respect to the even-numbered points. If the even-numbered points are placed

in proximity t-o each other, we can assume that their average temperature is

the same as Tq and can write

T = To + ep(To,Ti8)/(9 S^b). ( 6 )

where T is the average temperature of the surface as indicated by the

odd-numbered points.

EXPERIMENTAL VERIFICATION

A high-temperature guarded-hot-plate thermal conductivity apparatus that uses this device was recently completed at the National Bureau of Standards,

Boulder, Colorado [2]. The utility of this device is clearly demonstrated

from an analysis of surface temperature difference measurements used in the

calculation of thermal conductivity near ambient temperature as a function of

axial temperature difference across the specimens. Measurements were

performed both in the double-sided and single-sided mode of operation [2].

The axial temperature differences through the specimens ranged from those

typically used in a guarded-hot-plate apparatus, approximately 20°C, to very

small differences, I^C. The purpose of these measurements is to detect the

existence of systematic errors in the determination of the axial temperature

difference through the specimens. The presence of such systematic errors, if

they are not linearly dependent on axial temperature difference, will be

exhibited by an increasingly larger error in thermal conductivity as the axial

temperature difference approaches zero.

Figure 2 shows the results of our double-sided mode [2] thermal conductivity

measurements on a pair of insulation specimens. In addition, we have included

the results that were calculated from the temperatures of the plates as determined by the single thermocouple at point 0. As can be seen, the

temperature-averaging device produces thermal conductivities that are much

less dependent on axial temperature difference. This indicates that the

measurement technique using a single thermocouple has a significantly larg^"-

bias due to radial temperature variations.
Figures 3 and ^ show the same type of results for the single-sided mode of

operation in which the top and bottom specimens were measured separately.

Again the thermal conductivity results are less dependent on axial temperature

difference when average surface temperatures are used.

REFERENCES:

[1] Manual on the Use of Thermocouples in Temperature Measurement , ASTM STP

470B, (ASTM, Philadelphia, PA, 1981) p.4

[2] Must, J. G. ; Filla, B. James; Hurley, J. A. and Smith, David R. ; An

Automated High Temperature Guarded-Hot-Plate Apparatus for Measuring

Thermal Conductivity of Insulation Between 300 and 800 K, to be published

as an NBSIR.
List of Figures.

Figure 1

Figure 2

Figure 3

Figure ^

A thermocouple-*based device for the determination of average

surface temperature. Leads A], and A2 are of the same material as

A in the thermocouple.

Thermal conductivity of an insulating specimen versus temperature

difference as determined by the average surface temperatures

(circles) and the single thermocouple on each surface (squares) for

the double-*sided mode of operation.

Thermal conductivity of an insulating specimen versus temperature

difference as determined by the average surface temperature

(circles) and the single thermocouple on each surface (squares) for

the upper specimen in the single-sided mode of operation.

Thermal conductivity of an insulating specimen versus temperature

difference as determined by the average surface temperature

(circles) and the single thermocouple on each surface (squares) for

the lower specimen in the single-sided

on each surface (squares) for

mode of operation.
— nj

CE m tr

B6

Figure

1.

A

thermocouple-based

device

for

the

determination

of

average

surface

temperature.

Leads

A-|

and

A

2

are

of

the

same

material

as

A

in

the

thermocouple.
Thermal

ConduclL

vL

ty

,

mW/mFigure 2. Thermal conductivity of an insulating specimen versus temperature

difference as determined by the average surface temperatures

(circles) and the single thermocouple on each surface (s<iuare3) for

the double-sided mode of operation.

B7
Figure 3. Thermal conductivity of an insulating specimen versus temperature

difference as determined by the average surface temperature

(circles) and the single thermocouple on each surface (squares) for

the upper specimen in the single~sided mode of operation.

B8
Figure H. Thermal conductivity of an insulating specimen versus temperature

difference as determined by the average surface temperature

(circles) and the single thermocouple on each surface (squares) for

the lower specimen in the single-*sided mode of operation.

B9

Appendix C: A Modified Digital PID Temperature Controller

for Thermal Properties Measurements*

Jerome G. Hust, B. James Filla, and David R. Smith

Chemical Engineering Science Division

National Bureau of Standards

Boulder, Colorado

Abstract

A modified digital PID temperature controller for thermal properties

measurements is described. Data are presented to illustrate the approach

to equilibrium and the degree of stability at equilibrium. The controller is

being used to control the heating elements of a high temperature guarded hot

plate to within approximately 10 mK.

Key words: derivative control, digital computer control, integral control,

proportional control, thermal properties, temperature controller, digital PID

controller.

INTRODUCTION

Thermal properties testing often requires a high degree of temperature

stability over long periods of time to achieve accurate results. For example,

steady-state thermal conductivity guarded-hot-plate and heat-flow-meter

apparatus require stabilities in the 10 mK range to produce accuracies on the

order of one percent.

In the past these stabilities were obtained either by waiting long periods of

time with constant power input or with analog controllers. With the advent of

computerized automation, digital controllers were introduced. Digital

computer controllers allow considerably more flexibility in the design of

controller logic, because software can be used to perform complicated

functions that are virtually impossible to accomplish with hardware.

This paper describes a proportional-integral-der ivative (PID) controller that

is being used to control the temperature of the heating elements in a recently

completed high temperature guarded-hot-plate apparatus [1] at the National

Bureau of Standards, Boulder, Colorado.

*Contr ibut ion of the National Bureau of Standards, not subject to copyright in

the U.S.

Cl
GENERAL

The basic equation for a PID controller is

m=mo + K(e+ — t

edt+ td de/dt)

.o

( 1 )

where e is the controller input error signal, m is the controller output

signal, mo is the controller bias, t is time, K is the proportional gain,

is the integrator time constant, and xp is the differentiator time constant.

The latter three parameters are usually considered to be constants set by the

operator to optimize the controller operation for a specific application.

In a digital computer control system the input error signal is sampled at

discrete times rather than continuously as in an analog system. To

accommodate discretely sampled error signals eq (1) is replaced by the

approximation,

K(ei+— I tc6j + Ti)(ei-ei_i )/tc)

^ J = 1 (2)

where t^ is the time between sampled error signals and the subscript i denotes the current reading.

In addition, the operation of the controller can be improved by making the

control parameters dependent on the magnitude of the input error signal. For

example, with respect to the proportional gain, it is desirable to have a high

value of gain when the error signal is large and a smaller value of gain near

the set point. This allows a rapid approach to equilibrium with robust

control. Alternatively, the proportional control becomes more quiescent near

the setpoint, stabilizing the controlled output variable, m. This feature is

especially important on control loops where both the error signal fluctuation

and the controller output fluctuation must be minimized.

An approach opposite to that used for proportional gain adjustment is taken

with respect to the integral gain adjustment, where integral gain is defined

as I/tj. If a fixed integral gain adjustment, optimized near the setpoint, is

used in a digital controller it will work well near the setpoint. However, a large positive setpoint change will result in a large error signal and rapid

growth of the integrator sum. This reset windup can cause seve-re setpoint

overshoot and oscillation. The adverse effects of reset windup can be

minimized if integral gain is very small for large values of ej. As the

setpoint is approached, the value of integral gain is increased until it

reaches an optimum value. This run-time adjustment of conirol parameters

results in controller operation based primarily on proportional control when

ej^ is large and on integral control when e^ is small.

C2
The time required to achieve system stability can be reduced through the

addition of derivative control so long as the error signal is relatively

free of noise. Using this criterion, one can argue that derivative gain

should be zero when is within the noise band of the system and adjusted to

some optimized value when the error signal is sufficiently larger than the

noise band. This allows the derivative control to operate normally when the

system is approaching equilibrium, but prevents it from magnifying noise in

the error signal- during steady-state operation at the setpoint. As with each

of the other modifications, this allows the controller to operate with optimum

parameter settings both during the approach and at achievement of system

equilibrium. In a software-based control system such behavior is easily

incorporated into the control logic. These concepts, when incorporated into

eq (2), result in eq (3),

i m^ = KKpSi + I tcejKKj/Ti + KK[)Ti)(ei-ei_i ) /tc (3)

j = l

The digital controller used in the NBS guarded hot plate is based on

eq (3)with the following functional forms for Kp, Kj and Kp:

Kp = (1-(1-Kpi )exp(-(ei/Spi )2))(l-(l-Kp2)exp(-(ei/Sp2)2)) m)

Kj = exp(-(e^/Sj)2) (5)

Kp = -(1- exp(-ei/Sp)2)

)

( 6 )

where Kpi Kp 2 i Sp-| , Sp2 , Sj, and Sp are constants, along with K, tj, and Tp,

to be determined by optimizing the controller operation.

These functional forms are illustrated in Figure 1

.

OPTIMIZATION OF THE PARAMETERS

The optimization procedure for a control system involving a large number of

parameters can be frustrating unless a systematic approach la used. The

following approach has been found to simplify the optimization task:

C3
A. Using proportional control only, with Kp set equal to unity, find

1. the maximum value of K, that produces no overshoot in the

controlled variable. Also determine the stable value of the error

signal, Bq, at this gain.

2. the value of K, Kjnax* that produces constant amplitude oscillations.

Also determine the period of these oscillations, Xp.

3 . the standard deviation of the error signal, o^t at stability without

feedback control other than a bias to maintain stability.

B. Acceptable adjustment of the PID control can be obtained as follows:

1. Set Sp 2 and Sj) equal to four times the standard deviation 0^. and

Sj to 2bq.

2. Set K to Kjnax/2, Kpi to and Kp2 to 0.95.

3 . Set Tj to 1.2 xp.

Set xj) to produce an acceptable rate of change of the controlled

variable at the maximum error signal.

5. Set Spi such that the approach to the setpoint is as rapid as possible while maintaining acceptable overshoot.

RESULTS

To illustrate the characteristics of the modified digital controller, results

are presented as obtained from the bottom auxiliary heater of the NBS high

temperature guarded-hot-plate apparatus. This plate is constructed of alumina

with a thickness of 2.5 cm, a diameter of 25.^ cm, and a total mass of 3.2 kg.

The heater element is powered by a programmable 275 watt direct current power

supply. The control sensor, mounted on the outer edge of the heater plate, is

a platinum resistance thermometer with an ice point resistance of 100 ohms.

The thermometer current ranges from 0.5 to 1.5 milliarap depending on the set

point temperature. The sensor voltage and current are determined with a 5 1/2

digit DVM.

Figure 2 shows the initial approach to the setpoint, 356.15 K, for a large

initial offset signal. Note the rapid approach to equilibrium without

significant oscillation on the scale of this graph. Figure 3 shows the

control band as final equilibrium conditions are approached.

C4
Automation of the apparatus using this control algorithm has eliminated the

need for t ime- intensive operator interaction with the instrument.

Concurrently, system control is achieved that equals or exceeds the most

sensitive manual operation presently obtainable with this apparatus. Because

of the high degree of adaptability and the resulting robust yet delicate

control obtained with this algorithm we feel that it could be quite useful in

a variety of digital computer control applications.

REFERENCES

1. Must, Jerome G. ; Filla, B. James; Hurley, James A.; and Smith, David R.,

An automated High Temperature Guarded-Hot-Plate Apparatus for Measuring

Thermal Conductivity of Insulation Between 300 and 800 K, to be published

as a National Bureau of Standards Report.

C5
List of Figures

Figure 1

Figure 2

Figure 3

Graphical representation of the functional forms Kp, Kj and Kjj.

Typical initial approach to equilibrium after a step setpoint

change for the bottom auxiliary plate of the NBS high temperature

guarded hot plate apparatus.

Typical deviations from the set point following the initial

approach to equilibrium for the bottom auxiliary plate.

C6
GRIN

II

crz

(j

I—I

if)

q:o

cz

(Zu

C7

Figure

1.

Graphical

representation

of

the

functional

forms

Kp,

Kj

and

Kp
0 5 10 15 20 25 30 35 40 45 50

Time, mLnutes

Figure 2. Typical Initial approach to equilibrium after a sbep setpoint

change for the bottom auxiliary plate of the NBS high temperature

guarded hot plate apparatus.

C8
Figure 3. Typical deviations from the set point following the initial

approach to equilibrium for the bottom auxiliary plate.

C9
NBS-114A (REV.. 2-8C) U.S. DEPT. OF COMM.

4.

BIBLIOGRAPHIC DATA

SHEET (See instructions)

1. PUBLICATION OR 2 REPORT NO.

NBSIR 88-3089

. Performing Organ. Report No. 3.

TITLE AND SUBTITLE

Publication Date

May 1988

AN AUTOMATED HIGH-TEMPERATURE GUARDED-HOT-PLATE APPARATUS FOR MEASURING APPARENT

THERMAL GONDUCTIVITY

5. AUTHOR(S)

Jerome G. Hust, B. James Filla, James A. Hurley, and David R. Smith

6. PERFORMING ORGANIZATION (If joint or other than NBS, see in struction s) 7. Contract/Grant No. national bureau of STANDARDS

DEPARTMENT OF COMMERCE 8. Type of Report & Period Covered

WASHINGTON, D.C. 20234

9. SPONSORING ORGANIZATION NAME AND COMPLETE ADDRESS (Street. City. State, ZIP)

Department of Energy

Oak Ridge Operations

P.O. Box E

Oak Ridge, TN 37831

10. SUPPLEMENTARY NOTES

Document describes a computer program; SF-185, FIPS Software Summary, Is attached.

11. ABSTRACT (A 200-word or less factual summary of most significant information. If document includes a significant

bi bliography or literature survey, mention it here) An automated guarded-hot-plate apparatus was designed and built to

meet the requirements of ASTM Standard Test Method C-177 for measuring

the thermal conductance of thermal insulation. Apparent thermal con- ductivity has been measured with this apparatus in the range from 40 to

100 mW/(m.K) at mean temperatures from 300 to 750 K, in environments of

air and helium, at pressures ranging from atmospheric pressure to

roughing-pump vacuum. The apparatus is controlled by a desk-top

computer. A thermocouple device of novel design more accurately senses the average temperature over the surface of each heater plate. An

improved algorithm for the control sequence leads to more stable heater

powers and specimen temperatures. Initially it brings the system

rapidly to a temperature setpoint with minimal overshoot. It also permits highly sensitive control of the plate temperatures in later phases

of the measurement sequence when thermal stability of the specimen

boundaries is very important in measuring the thermal conductivity with

high precision. This algorithm has enhanced the performance of both

the high-temperature and the low-temperature guarded-hot-plate apparatus at this laboratory. The apparatus can be operated at either con- stant hot-plate temperature or constant heater power.

Overall uncertainties of apparent thermal conductivities at atmospheric pressure are 2 % at 300 K and 5% at 750 K when measuring conductivities in the range from 40 to 100 mW/(m.K). The apparatus will be

valuable in development of new Standard Reference Materials of low

conductivity and for higher temperature ranges, and is being used in

comparative interlaboratory measurement programs

.

12. KEY WORDS (S/x to twelve entries; alphabetical order; capitalize only proper names; and separate key words by semicolons)

automated control system; guarded-hot-plate apparatus; high temperature; meantemperature sensor; thermal conductivity; thermal insulation; thermocouple device

13. AVAILABILITY 14. NO. OF

PRINTED PAGES

Unlimited

1 1 For Official Distribution. Do Not Release to NTIS

1

1 Order From Superintendent of Documents, U.S. Government Printing Office, Washington, D.C. 134

20402. 15. Price

[XJ Order From National Technical Information Service (NTIS), Springfield, VA. 22161

*U.S. GOVERNMENT PRINTING OFFICE: 19 8 8-0-5 7 5-6 27/8 5154 134

USCOMM-DC 6043-P80