Professional Documents
Culture Documents
March 1991
THE TRANSACTIONS
OF THE SOUTH AFRICAN INSTITUTE OF ELECTRICAL ENGINEERS
DIE HANDELINGE
VAN DIE SUID-AFRIKAANSE INSTITUUT VAN ELEKTRIESE INGENIEURS
SPECIAL ISSUE:
SOFTWARE ENGINEERING/EXPERT SYSTEMS
SPESIALE UITGAWE:
PROGRAMMATUUR-INGENIEURSWESE/KUNDIGESTELSELS
CONTENTS/INHOUD
PAPERS/REFERATE
An S-parameter model for the design of arrays of inclined strip dipoles proximity coupled to a microstrip
feedline1
W. George, J.H. Cloete
Specular reflection of plane waves by a planar conductor coated with lossy layers9
L.J. du Toit, J.H. Cloete
Research issues in computer aided process modelling and control systems design22
A.L. Stevens, I.M. MacLeod
An exploratory investigation into the state of software systems renewal in South Africa28
J.D. A moils
The back propagation algorithm for information transformation and pattern sequencing69
V. Lun, I.M. MacLeod
Experimental and simulation facility of a wind power converter, utilising an over-synchronous electronic
scherbius cascade73
J.H.R. Enslln, J.D. van Wyk
The influence of the arc root in flashover models of polluted insulators with practical shapes88
J.P. Holtzhausen, L.P. du Toit
THE TRANSACTIONS OF THE SOUTH AFRICAN INSTITUTE OF ELECTRICAL ENGINEERS
(FOUNDED JUNE 1909 — INCORPORATED DECEMBER 1909)
AN OFFICIAL JOURNAL OF THE INSTITUTE
Editorial Board/Redaksieraad
Chairman/Voorsitter
J D van Wyk, Randse Afrikaanse Universiteit 1 M MacLeod, University of the Witwatersrand
W A Brading, STC J P Reynders, University of the Witwatersrand
E J Davison, Consultant A J Walker, University of the Witwatersrand
H J Geldenhuys. CSIR I E Lane
H O Broschk, AEG
Associate Editors/Mederedakteurs
Copy ight in all malerials appearing in this pubiieation may vest in the South Afriean Institute Kopiereg oor ai die inatcriaa! wat in hierdie tydskril verskyn mag by the Stud Alrikaunse
if El etrieal Engineers All rights reserved. No part of this puhlieation may be reprodueed. Instituut van Elektriese ingenieurs berus. Alle regie word voorbehou Geen deed van hierdie
,tore< a retrieval system or transmitted in any form or by any means, eleetronie. magnetie pubiikasie mag geproduseer word, in 'n herkrygingstelsel bewaar word of in enige verm of
ipc. lhanieal. photoeopying. reeording or otherwise without permission in writing from the enige wyse versprei word nic, hetsy elektronies. met magnetiese bande. megames.
UStit Notwithstanding the foregoing permission is not required to make abstracts on gefotokopieer, deur n opname of andersins sondcr die skriftelike toesteninung van die
ond m that a full reference to the source is shown. Single copies of any material in which Instituut Ondanks die voorafgaande is toestemmittg nic noodsaaklik indien uittreksels geinaak
he 11 • holds copyright may be made for research or private purposes without reference word nie. mils 'n voile verwysing na die bron aangedui word Enkel afskrifte mag sir
navorsings of private doeleindes van enige materiaal gemaak word waaroor die Instituut die
kopiereg besit. sender dat daar na die Instituut verwys word
March 1991 THE TRANSACTIONS OF THE SA INSTITUTE OF ELECTRICAL ENGINEERS
Abstract
1 Introduction
The design of linear arrays of strip dipoles placed are located at intervals along a continuous microstrip
sequentially near a microstrip feedline is considered. feedline [4, 5]. As mentioned, the common choice
In previously published work [l]-[6] the orientation of dipoles oriented perpendicular or parallel to the
of the dipoles in the plane of the substrate is re feedline simplifies the array design problem, but con
stricted to be parallel or perpendicular to the feed- strains the choice of antenna polarization.
line. Arbitrary dipole orientation complicates the
design problem but gives freedom regarding antenna
The assumption that each radiator can be accu
polarization. The antenna shown in Fig. 1 illustrates
rately modeled by a single lumped-element equiva
the point. It creates a linear array with 45 slant
lent circuit on the feedline is central to the Elliott-
linear polarization, without the use of an external
Stern method. The lumped-element model is good
polarizer. Another example is the excitation of a cir
for end-coupled dipoles, and for sequentially-coupled
cularly polarized wave using a linear array of dipoles
dipoles oriented perpendicularly or parallel to the
inclined alternately at +45 and -45 to the feed-
feedline. However it is invalid for arbitrarily oriented
line, and with appropriate phasing [7, pp. 766 and
dipoles.
820].
The Elliott-Stern method [2, 3] was developed for
arrays of end-coupled strip dipoles excited by a cor This paper solves the more general problem by
porate feed, but is easily adapted to sequentially fed introducing a new three-port scattering parameter
dipole arrays. In sequentially fed arrays the dipoles model for inclined proximity-coupled dipoles. The
model is used in a new design procedure to find the
*This paper was presented at the Second Joint Sympo physical layout of a linear inclined dipole array which
sium on Antennas & Propagation and Microwave Theory &
Techniques held in August 1988. Submitted: September 1988. corresponds to a specified set of normalized radiating
Accepted: December 1989. currents.
THE TRANSACTIONS OF THE SA INSTITUTE OF ELECTRICAL ENGINEERS March 1991
Dipoles
;
A strip dipole, located in the proximity of a continu point
ous microstrip transmission line, may be modeled as -n Xg 0 -nX
g
a reciprocal two-port waveguide discontinuity1. In
(a) Plan vt e^
general the equivalent circuit for such discontinuities
contains three independent complex parameters [8, ©
p. 108]. Radiation is represented by resistive ele
1
Radiated
Incident ! Transmitted
ments. Although an unique equivalent does not ex wve(o,) ^ >rave(b2)
ist, the T or Pi circuits2 [8, p. 118] are convenient <^- e reflected from
Reflected j | I
for narrowband modeling. The T or Pi network of nex . obsteclela2)
-nig 0
a physically symmetrical obstacle has only two inde g
pendent complex parameters. Dipoles oriented par (b) Side view
allel or perpendicular to the feedline are special cases
which comply with the symmetry requirement. For
these the symmetric T or Pi equivalent is often ap
©
1I
<i 3
1 (-0)
l|
proximated by a single lumped-circuit element. This
-^> b2
model fails for the asymmetrical obstacles presented
^ai
- bT
I^ Lb2
by inclined dipoles. enerator j Load
The failure of the single lumped-circuit element
model for the inclined dipole can be established by (c) S—Parameter model
measurement or theoretical argument. The argu
Figure 2: The three-port S-parameter model.
ment uses the asymmetry of the obstacle presented
to the guided wave on the feedline by the presence
of the dipole. For example, it is evident that an in
research the reference point is defined as the inter
clined dipole, Fig. 2a, will scatter a wave incident
section of the transmission line axis with the vertical
from Port 1 quite differently compared to incidence
plane through the dipole axis, Fig. 3.
from Port 2. However, the single lumped element
It is necessary to discuss the choice of dipole dis
model incorrectly predicts identical amplitudes and
placement direction. There are two obvious ways of
phase for the two scattered waves.
varying the coupling between an inclined dipole and
Stern and Elliott [9] have also shown that simple
the transmission line, assuming that the dipole incli
equivalent circuits may fail for waveguide slots. They
nation angle is fixed. One is to displace the dipole
recommend the use of scattered waves in such cases.
in a lateral direction perpendicular to the transmis
This approach was taken for the inclined proximity-
sion line axis. For this choice the reference point, as
coupled dipole. The dipole is modeled as a three-
defined in the previous paragraph, shifts along the
port, Fig. 2b, instead of a two-port, to account ex
transmission line as the dipole is displaced. Hence
plicitly for radiation. The amplitudes, 61,62 and 63,
the reference planes for Ports 1 and 2, which are lo
of the scattered waves are linearly related to the am
cated a fixed distance from the reference point, also
plitudes, ai,a2 and a3, of the incident waves through
shift as the dipole is displaced laterally. The sec
the scattering matrix [8, pp.106-108]. Only dominant
ond choice is to move the dipole in the direction of
mode guided waves are associated with Ports 1 and
its own axis to keep the reference point fixed. Lat
2. Port 3 defines the interface between the dipole and
eral displacement is the obvious choice for parallel-
its environment. The reference plane for Port 3 can
coupled dipoles, and for perpendicular dipoles lateral
be arbitrarily chosen since the relative amplitude and
and axial displacement are the same.
phase of the radiated wave adequately characterize
Axial displacement was preferred here. Thus
the dipole for array design purposes [2, 3].
with the inclination angle and reference point on
The reference planes for Ports 1 and 2 are cho
the transmission line fixed, the dipole position is
sen an integer number of guide wavelengths from a
uniquely defined by the displacement, p, of its cen
reference point on the transmission line. For this
tre along the p-axis. The displacement variable, p,
1The end-coupled dipole, which may be modeled as a one- may assume positive or negative values as shown in
port circuit, is not considered here. Fig. 3, where p' is an arbitrary positive number.
2These models merely serve a mathematical purpose and
Port 3 defines the interface between a dipole and
are often not physically realistic.For example, a realistic model
for a parallel coupled dipole requires coupled transmission line space, as mentioned. The dipole radiates through
sections [l]. this port, and external obstacles may reflect the
March 1991 THE TRANSACTIONS OF THE SA INSTITUTE OF ELECTRICAL ENGINEERS
def
= 61/ai = Su + (5i51252i)/(l - S22SL), (2)
def
(3)
Reference Reference
point (p=0) polarization
direction
def l In SlS32S21/(1-S22Sl). (4)
31 = 63/ai = i31
^ p - Axis
The isolated dipole is completely characterized by
© © the three "derived scattering parameters", Sn,s2i.
and S31. The derived S-parameters, denoted by lower
case letters, are determined by six elements of the
scattering matrix, and the load reflection coefficient,
is defined as the amplitude ratio of the waves enter defined to be aligned in the positive p-direction for
ing and leaving the load side of the dipole model; waves incident from either of Ports 1 or 2. By this
thus a2 = 5/,62. The complex amplitudes of the convention the radiated wave excited from Port 2 is
reflected, transmitted and radiated waves are com out of phase with the wave excited from Port 1, since
pletely determined, from the amplitude of the wave the instantaneous dipole currents flow in opposite
incident from the generator side, a\, by the reduced directions.
with T= l-Sn(-p')SL.
Thus knowledge of Sn at -\-p' and —p'\ S2\ at +p';
and S'31 at +// and — p', i.e. five values but three S-
parameters, allows computation of the three derived
S-parameters which characterize the dipole at the
point p — p'. The fact that only three S-parameters
are needed makes data gathering by measurement
very practical, since they can all be measured at the
same time for each dipole position using a network
analyzer.
3 Measured S-Parameters of
Strip Dipoles
To establish the validity of the new model the scat -1.0
tering parameters of a set of five dipoles, each de
signed to be resonant near 3 GHz, were measured.
Figure 4: Measured scattering parameters Sn,S2i,
The dipoles were inclined at 45 to the feedline. The
and S'31 fr the 34,65mm dipole at 3 GHz. Dipole
substrate had relative permittivity 2,54 and thick
inclined at 45 to the feedline and moved in the p-
ness 1,122 mm. The superstrate had relative permit
direction. Displacement of the dipole center in mm.
tivity 2,33 and thickness 1,65 mm. The feedline was
copper of width 3,104 mm and thickness 0,036 mm
to give 50 f2 characteristic impedance. The dipoles
were brass with width 2,9 mm and thickness 0,5 mm.
Their lengths were 35,00 mm; 34,85 mm; 34,65 mm;
34,40 mm; and 34,20 mm. The groundplane was alu
minium with dimensions 300 mm x 200 mm.
S\\, S'21 and 531 were measured using a. 50 ^^ coax
ial network analyzer under computer control. For 531
the method of Stern and Elliott[3] was used. The
measurements were made with the center of each
dipole moved, in the p-direction, Fig. 3, in steps of 1
mm, from 20 mm on one side of the reference point,
to 20 mm on the other side. An example of the mea
sured scattering parameters is given in Fig. 4. From
these data the derived S-parameters were computed
-
using eqns. (2)-(8) to characterize the dipole at each
position in the same displacement range.
The validity of the S-parameter model was estab
lished as follows. The input reflection coefficient of a
single dipole terminated by a short circuit (Sl = — 1)
was computed from eqn. (2), and also measured di
rectly. The results are compared in Fig. 5 with good
agreement.
The marked asymmetry of the impedance locus in
Figure 5: The input impedance of the 34,65mm
Fig. 5, and of Sn and S31 in Fig. 4, demonstrates
dipole at 3 GHz by direct measurement, and com
the complete failure of the single impedance model
puted from the S-parameter model. The feedline
which predicts symmetric loci.
was short circuited and the reference point was an
The extent of mutual coupling between two dipoles
integer number of guide wavelengths from the short.
located one guide wavelength apart was investigated.
Displacement of the dipole center given in mm.
The S-parameters of a two dipole array were mea
sured directly. They were also computed using the
March 1991 THE TRANSACTIONS OF THE SA INSTITUTE OF ELECTRICAL ENGINEERS
der guided waves, or surface waves, is very low for 3. Guess the length, , 1, and displacement, plt
this case. This agrees with the finding of Das and of the first dipole. Compute the derived S-
Pozar[4] for perpendicularly coupled dipoles. parameters s\1, s2l, and Sgj, using eqns. (2)-
(4)-
Figure 7: The equivalent circuit, based on the three-port S-parameter model, for a linear array of inclined
proximity coupled dipoles.
the length of the dipole is changed incremen The array factor was chosen to be broadside Cheby-
tally and the process repeated. shev with sidelobe level -20 dB. The dipole spac
ing was chosen to be A^, which was 65 mm, or
6.Repeat Steps 4 and 5 for dipoles 3 to N until 0,65Aq, with Aq the free-space wavelength. This
the design is complete, or the procedure fails to spacing is small enough to suppress grating lobes
yield a solution. and large enough to ensure low mutual coupling be
tween dipoles. The termination was \g from the first
7.If the procedure fails4 choose a new starting
dipole. The suitability of short-circuit, open-circuit,
value for the first couplet, (/i,pi), and repeat
and 50 f2 terminations were investigated in turn.
Steps 4 to 6 until a solution is found.
The measured S-parameters for the set of dipoles
8.Analyze the network corresponding to the cou discussed in Section 3 were used as the data base for
plet solution set to check that the corresponding the design procedure of Section 4. Feedline attenua
radiating current set complies5 with those spec tion was taken into account. The data base consisted
ified. of 205 (l,p) couplets, comprising 5 dipole lengths and
41 positions. To study the complete solution set ev
9.Compute the array input reflection coefficient, ery couplet in the data base was used as a starting
and design the impedance matching network. value in Step 3 of the procedure.
Such an exhaustive search of the data base is not
As mentioned in a footnote the procedure does not computationally very expensive. For each choice of
yield a unique design, even for a fixed feedline termi termination and first dipole couplet the algorithm se
nation. Thus it is possible to produce numerous de lects a couplet for the second dipole which best sat
signs which comply with the radiation pattern spec isfies eqn. (10). The procedure is then repeated for
ifications, by making a computer search. The choice dipoles 3 to N. Thus for the 205 couplet data base,
between the various designs can be based on the in and a 6 dipole array, a total of 630375 possible de
put impedance, and by comparing the sensitivity of signs have to be evaluated. This number arises as fol
the various designs to manufacturing errors. lows: 3 choices for the termination; followed by 205
choices for the first dipole; followed by 5 successive
searches through the 205 element data base, yields
5 An Experimental Six Ele 3x205x5x205 combinations. Note that this number
ment Array is quadratically related to the number of data base
elements, but only linearly to the number of dipoles.
A six element antenna, with dipoles inclined at 45 A solution was defined as any set of couplets for
to the feedline, was designed for operation at 3 GHz. which the root mean square approximation to the de
sired radiating currents gave an error of 10% or less.
4A general statement, about convergence of the procedure
According to this criterion 65 solutions were found
can tiot be made. However, experience with six dipole arrays
has shown that many acceptable solutions may exist. This for the short circuit termination, 6 for the open cir
means that the search does not have to uncover a unique so cuit termination, and 31 for a 50 ^2 load. The rela
lution, and the procedure will not fail for a wide selection of tively few solutions for the open circuit termination
first dipole parameter choices.
5Compliance will normally not be exact due to the sam seems to confirm that the coupling is essentially mag
pled nature of the data base. An acceptable solution will be netic.
one for which the differences are less, according to a statisti The solutions were numerically examined for sensi
cal measure, than those expected due to manufacturing errors
tivity to manufacturing tolerances. The 50 2 termi
and substrate tolerances. If the data base is too coarse inter
polation may be used. nation arrays were found to be relatively sensitive,
March 1991 THE TRANSACTIONS OF THE SA INSTITUTE OF ELECTRICAL ENGINEERS
of mutual coupling in small microstrip arrays. [7] J.R. James and P.S. Hall (Eds.), Handbook of
Microstrip Antennas, London: Peter Peregri-
nus, 1989.
Acknowledgement
[8] N. Marcuvitz (Ed.), Waveguide Handbook, New
The results described here were extracted from a the York: McGraw-Hill, 1951. (Reprinted with Er
sis [12] for which the degree M.Eng.(Electronic Engi rata by Peter Peregrinus, London, 1986).
neering) was awarded to Ian George by the Univer
sity of Stellenbosch. [9] G.J. Stern and R.S. Elliott, "Resonant length
of longitudinal slots and validity of circuit rep
resentation: Theory and experiment", IEEE
References Trans. Antennas and Propagation, vol. AP-33,
no. 11, pp. 1264-1271, November 1985.
[1] H.G. Oltman and D.A. Huebner, "Electro-
magnetically coupled microstrip dipoles", IEEE [10] R.S. Elliott, Antenna Theory and Design, En-
Trans. Antennas and Propagation, vol. AP-29, glewood Cliffs: Prentice-Hall, 1981.
no. 1, pp. 151-157, January 1981.
[11] R.C. Hansen, Linear Arrays. Chapter 9 of:
[2] R.S. Elliott and G.J. Stern, "The design of A.W. Rudge, K. Milne, A.D. Olver, and P.
microstrip dipole arrays including mutual cou Knight, The Handbook of Antenna Design, Lon
pling, Part 1: Theory", IEEE Trans. Antennas don: Peter Peregrinus, 1986.
and Propagation, vol. AP-29, no. 5, pp. 757-760,
[12] W.I. George, An Electromagnetically Coupled
September 1981.
Dipole Array, University of Stellenbosch: Stel
[3] G.J. Stern and R.S. Elliott, "The design of lenbosch, 1987.
microstrip dipole arrays including mutual cou
pling, Part 2: Experiment", IEEE Trans. An
tennas and Propagation, vol. AP-29, no. 5, pp. Authors
761-765, September 1981.
John Cloete is a professor in the Department of Elec
[4] N.K. Das and D.M. Pozar, "Analysis and design trical and Electronic Engineering, University of Stel
of series-fed arrays of printed-dipoles proximity- lenbosch, Stellenbosch, 7600, South Africa.
coupled to a perpendicular microstripline", Ian George was with the Department of Electri
IEEE Trans. Antennas and Propagation, vol. 37, cal and Electronic Engineering at the University of
no. 4, pp. 435-444, April 1989. Stellenbosch before joining Plessey South Africa in
[5] H-V Yang, N.G. Alexopoulos, P.M. Lepeltier, January 1991. His research towards the Ph.D. de
gree, on the topic of microstrip dipole arrays, is at
and G.J. Stern,"Design of transversely fed EMC
an advanced stage.
•microstrip dipole arrays including mutual cou
pling", IEEE Trans. Antennas and Propagation,
Submitted October 1988
vol. 38, no. 2, pp. 145-151, February 1990.
Accepted December 1989
[6] D.R.Jackson, A.E. Dinbergs, and S.A. Long,"A
moment-method design procedure for an array
of EMC dipoles", IEEE Trans. Antennas and
Propagation, vol. 38, no. 5, pp. 766-770, May
1990.
March 1991 THE TRANSACTIONS OF THE SA INSTITUTE OF ELECTRICAL ENGINEERS
Abstract
Plane waves propagating in a stratified medium, con
sisting of lossy material layers between a conduct
ing plate and free-space, are considered. The layers
may be very thin resistive sheets as a special case.
The waves are inhomogeneous because the planes of
constant amplitude and phase do not coincide. A
solution of Maxwell's equations is presented which
can be used to compute the specular reflection prop
erties of lossy stratified media in general, and flat
plate microwave absorbing materials in particular.
The method can easily be adapted to compute the
transmissivity and reflectivity of radome materials
and optical windows. Frequency, incidence angle, or
polarization can be the independent variable in such
analyses.
with propagation constant Thus cos 9 must be restricted to the the fourth quad
rant. From the expanded form of eqn. 1 it can also be
(3) shown that the vector normal to the constant phase
planes makes an angle
and intrinsic wave impedance
Acos0; B cos 0;
Ccos9t A B ,.
— _t_ _i_ ( 1 (S1
medium 1 medium 2 0i0i02R R'
A+^^=C+ Arfi
nR cos @i
'-Bni
nR cos 0;,
'. (18),
6i = er,(12)
4 With k\ positive real the angle of incidence is restricted This case, applicable to radomes or optical windows, will
to 0 < $i < 7r/2 to ensure sin 9t non-negative. not be treated in detail.
12 THE TRANSACTIONS OF THE SA INSTITUTE OF ELECTRICAL ENGINEERS March 1991
interface; thus Dm+i = 0. Alternatively medium Reverse matrix: Multiply all the matrices to
N + 1 may be a totally reflective perfect conductor6 obtain a single 2x2 matrix which gives A\ and B\ in
for which C^v+i = Dm+i — 0. This case is of specific terms of Am and Bm-
interest here and the details are discussed below. Reflection coeff
icient: The electric field spec
For a coated metal plate the normalised ampli ular reflection coefficient is p = B\/A\ for the TE
tudes on the conductor surface are Am = +1, Bm = case, and p = —B\jA\ for the TM case.
-1 for TE waves, and AN = +1, BN = +1 for TM Kong [5, pp.120-132, 201-202] and Collin [9] de
waves. These are are the starting values in the fol scribe similar procedures for multilayer substrates
lowing method for computing the specular reflection and should be consulted if the method summarized
coefficient. here is not clear.
Forward procedure: For n from 2 to ^ deter
mine all the complex sines and cosines from Snell's
law, eqn. 13. 5Analysis of a Jaumann ab
Backwards procedure: For n from N to 2 exe sorber
cute the following steps.
1Compute Cn and Dn in layer n from An and A Jaumann absorber consists of a number of re
Bn using eqns. 1 and 2 for TE waves or their duals sistive sheets, separated by low loss, commensurate
for TM waves, and the thickness and propagation length dielectric or magnetic spacers and backed by
constant for medium n. a conductor [1]. To illustrate the use of the preced
2Apply the boundary conditions, eqns. 10 and 11, ing theory a 25 dB equiripple Jaumann absorber,
to obtain An_i,Bn-.\ in terms of Cn,Dn. consisting of 5 resistive sheets and lossless dielec
3From 1 and 2 find An_1,^n_1 in terms of tric spacers with er = 1,1 was analyzed. The sheet
An,Bn. surface resistivities, numbered sequentially from the
These steps can be summarized mathematically as conductor outward, are R\ = 279, 66; R'i ^ 566, 13;
R3 = 1022,26; RA = 1843,48 and R5 = 4763,61; all
An-1 Xi + X3 X2 + Xa in ^^ per square. They were found using an equiripple
Bn-\ X1-X3 X2-X4 design procedure [10].
The reflectivity versus normalized frequency is
rn o 1 r An
shown in Figure 3. The analysis confirms that the
\Bn I - (19)
design method yields the specified equiripple perfor
with mance, with frequency bandwidth of 5,7:1. At the
Fn = exp(+jkndn cos^^n). (20) centre frequency the spacers are each a quarter di
electric wavelength thick. Thus for 6 GHz centre
For TE polarization
frequency the total absorber thickness is approxi
mately 60 mm, and the specified > 25 dB absorption
Xi = X2 = 1,(21)
is achieved between 1,8 and 10,2 GHz.
References
ABSTRACT
2. CALCULATION OF TORQUE
An attempt to complete and computerize
the analytical methods of performance
calculation for small permanent magnet dc Three traditional methods Are employed
motors has been made. The two-segment for the calculation of developed torques:
construction of permanent magnets the Maxwell's stress tensor method, the
magnetized radially inside a machine has energy variation method, and the method
been considered. The leakage permeances, using experimental results of Ampere. The
the coordinates of the permanent magnet first two methods have found wide
operating point and the MMF of cross applications in numerical calculations
armature reaction have been analysed. A [1], while the third method is convenient
comparison of the computation with the in a circuital approach. From Ampere's
test results for a small 8-W two-pole experimental results (dF = I dl x B), the
motor has been included. torque on a current loop with its
vector AreA dS is
1. INTRODUCTION T = I dS x B (1)
0.4
30/16
2S/16'\^
^\ 0.3
' 24/16^Q^ ANtSOTROPlC/;
24723\\^
28/26X\^\^<
30/26^ \ ^ / 0.2
.m
iq V /y
8/22 y^
^ ISOTROPIC
0.1
-300 -200-100
-H, kA/m
(1)VICALLOY
1.2
(2)7Co-28Cr-Fe
1.0
l3H0.5Co-28Cr-Fc
(CHROMINDUR II!
(4) CUNIFE 3^
I
/ ^H y 0.8
0.6
CD
111 0.4
0.2
Fig. 3. Magnetic circuits and flux lines
of dc machines: (a) wound-pole
machine; (b) permanent-magnet
-50
/ 1 1
-40 -30 -20 -10 0
machine.
-H, kA/m
A A *
Small permanent magnet motors usually t 1 t
have no interpoles and iron pole shoes. a = —= 1+= — = 1 (10)
1 A A ^
A lumped parameter equivalent g g g
circuit per pole pair of a permanent
magnet machine is shown in Fig. 4. The which is usually in the range of 1.1 to
height of a permanent magnet is h and its 1.5. Eqns (4), (5), (8), (9), and (10)
cross section is S m' The following set of give
governing equations can be established:
H
^=BS=*+^(4)
t mm g 1 B = (^ ^ $)=- A — ) (11)
Sg 1 t S
A = A + A(5)
t g 1 where
F = H h(6) H = F /h (12)
o o m aam
Hh=F-^/A(7) isthemagneticfield intensity
mm o to corresponding to MMF of armature reaction.
H h = * / A(8) m m^ of
mm 1 1 given magnetic circuit. In general
16 THE TRANSACTIONS OF THE SA INSTITUTE OF ELECTRICAL ENGINEERS March 1991
H
m
B = -,\ — (H - — (13)
t Scr
m1
gm
B == - ,\ (H - H ) ( 14)
uSg Sma
mm
The above eqns. (11), (13), and (14)
express straight lines with slopes
tan a = ,\ h /S (15)
t t m m
and
tan cc = X h /S (16)
g m m Fig. 5. Demagnetization curve, permeance
lines and recoil line. Permanent
located in the second (upper left-hand) magnet is magnetized inside a dc
quadrant. motor.
B HB H B
1 n cr c r
+ 2 g +V +2V +V (17) b = - Z (—+ — - — —) ( 19)
p ym ly 2t 2y n i=l HB H B
o ii i i
Motors up to 100 W have usually the and i = 1, 2, 3,... n = number of points
airgap g^ = 0.04...0.10 mm. chosen arbitrarily on the measured
demagnetization characteristic.
The permeances Ag and X \ ar^ discussed
in Appendix 1. The maximum MMF F of armature
-
reaction ^i
takes i
placeamax .
during counter
—current braking (plugging). The line (13)
for F amax intersects the demagnetization
characteristic (18) at a point K with its
coordinates H .,, (Fig. 5), e.g.:
H = 0.5 [A
KK
t*.
i A2 + -(B /tan a - H
K b r t
/ tr ) H ]
amax 1 c
(20)
and
H = F /h (22)
amax amax m
The line (13) for H according to (12) the armature winding resistance R can be
and the recoil line a found immediately. The next stage is to
calculate the magnetic circuit, its
B = B + p M H (23) magnetization characteristic, and the
m o o c m transient characteristic (Appendix 2)
for different values of B 6" I he maxlmum
locate the operating point M for a MMF F of armature reaction determines
permanent magnet. Eqn (23) sterti5 from the values of HKand BK (Fig. 5). The no-
eqn (7) in which load magnetic flux densities B and B uas
well as the no-load magnetic flux S are
B =ppF/h =ppH (24) found in a straightforward manner since
oocomoco the no-load MMF of armature reaction F ~0.
F = H h(29)
m mm
5. LOAD CURVES
Number of poles2p = 2
12 16 20 24 28 32 36*1
TshfNm magnet circuits have been developed so
far, the accuracy of these methods is not
better than that of classical methods,
Fig. 7. Performance characteristics for particularly in application to predicting
8-W two-poie dc motor with the load curves. The author is in favour
segmental permanent magnets: of using the finite element technique for
optimization of permanent magnet circuits
measurements (see e.g. Figs. 3 and 6) but, on the
calculations other hand, he believes that analytical
methods ^rB not outdated and still
necessary in design processes.
6. CONCLUSIONS
APPENDIX 1. PERMEANCES
B k g
u m C
F = — = 2 — [
p X p a t L - L
g o m
+ a g ]k (31)
1 ym sat
Fig. 8. Dimensions and equivalent leakage
where the saturation factor for magnetic fluxes of two-pole dc motor with
circuit segmental permanent magnets.
k = F /(F -V - 2 V - V ) (32)
sat p p ly 2t
X = F = F F F (37)
l l •a aq ad aK
g
2[—ln(L /L) k g + a g Ik
L - L C S 1 ym sat holds three components: F = cross
ot r (quadrature) MMF, Fad = direct-axis MMF,
m
and FaK = direct-axis MMF of the coils
If L = L the eqn (33a) takes the sections being commutated. The sign "+"
form is for a generator, ana the sign "-" is
for a motor. In general, the MMF of
armature reaction is proportional to the
armature electric loading
X = p (33b)
g o N I
2 (k g + a g ) k A = A/m (38)
C 1 ym sat 2 Tt a D
2out
The nonlinearity of the rotor core and
stator yoke has been included since Xg is The point K (Fig. 5) which is given by
dependent on ksat. Although justified the intersection of the total permeance
theoretically, eqns (33a) and (33b) give line (13) and the demagnetization
too low value of the airgap permeance. characteristic (18), should be determined
for plugging. (sometimes under short
The leakage permeance for a segmental circuit). When plugging is initiated, the
magnet consists of two components: for a
flux between the yoke and lateral surface armature current can attain the following
value [8]:
h L
I = (0.6...0.^)(V + E )/R (39)
m m
X = P (34) max^
11 c
lav where E is the EMF for a given speed.
and for a flux between the yoke and Under the leading edge of the pole the
cylindrical surface armature field weakens the main field,
while under the trailing edge the armature
20 THE TRANSACTIONS OF THE SA INSTITUTE OF ELECTRICAL ENGINEERS March 1991
field strengthens the main field. If a where b j, = 0.8t(1 - a) is the width of the
machine has a saturated magnetic circuit, commutation zone, X' ^ = leakage permeance
the reduction of the field in the of a short—circuited coil section during
saturated portion is greater than its its commutation, n ~ speed in rev/s.
increase under the other pole edge. The
demagnetizing effect of the cross armature
reaction in a machine with a saturated
magnetic circuit is us ually investigated
with the aid of the transient
LIST OF PRINCIPAL SYMBOLS
characteristics B = f( F . ) [9], where
gt
A = armature electric loading
B
g a = number of pairs of current paths
F = gk + V (40) between armature terminals
gt p C 2t
B = airgap magnetic flux density
is the (IMF of the airgap and tooth in 9
B = magnetic flux density of the
axial pole plain. The equations m permanent magnet assumed to be
uniform throughout its volume
B
remanent magnetic flux density
F - 0.5b A= gk +V (B) (41)
useful magnetic flux density
gt P M C 2t g
o width of the commutation zone
total permeance
a = leakage factor
1
t = po1e pitch
22 THE TRANSACTIONS OF THE SA INSTITUTE OF ELECTRICAL ENGINEERS March 1991
The major stages of the design cycle for process control systems
are discussed and the tools used at each stage are analysed. Par
ticular emphasis is placed on the requirements of the modelling In classical feedback controller design, a great amount of effort
phase. A software structure for a system to implement com is expended on determining system models in the form of differ
puter aided process modelling and process control system design ential equations and transfer functions. This type of modelling
can be thought of as "deep" modelling. In almost all cases,
is proposed. This system is capable of handling the broader
a reduced-order simplified model is accepted and the required
issues of modelling and control system design and of incorporat
amount of robustness is designed into the controller to contend
ing recent methods from the field of Artificial Intelligence. Early
with the remaining plant process uncertainties and parameter
implementation results are presented.
variations (usually by arranging high loop gains in the frequency
ranges of interest). At this stage also, tests are carried out to de
termine the parameters of a plant model which has an assumed
structure, perhaps using sophisticated techniques of parameter
1 Introduction
estimation and identification. All this assumes a certain mini
mum amount of structural and dynamic information about the
process to be modelled.
Current research in Computer Aided Control System Design
(CACSD) has concentrated mainly on specific stages of the over
However, for a large process plant such as those found in the
all design cycle of process control systems, while other equally
petrochemical, chemical and mineral extraction industries, the
important stages have been neglected. For example, the research
number and variety of plant sub-assemblies and their interactions
effort expended on the development of advanced techniques for
are so complex, that it is usually impossible to model each sub-
the design of robust controllers in the final controller design
assembly with sufficient accuracy and in the form required for
phase is out of proportion to that for other important aspects
the application of robust control CACSD techniques. For this
of the design cycle. Also, research is usually concerned with the
reason, most plant process control engineers are satisfied with
techniques embodied within the CACSD system for the particu
crude on-line "tuning" of simple controllers. In other words, the
lar phase under consideration; for example, singular perturbation
goals are lowered until they are satisfied that a large complex
methods in the model reduction phase, and H optimal control
plant works, albeit suboptimally.
theory in the controller design phase.
A CAPMACD system therefore, should give the user a facility and allow him to select alternat^ve desiun options at < ich •"'
for constructing both qualitative and quantitative models to a every step of the design cycle. The "black box" design ; quo;.eh,
point where they are suitable for control systems design. however, usually contains only a single path from start to finish.
Such an approach severely limits the "what-if." question capa A computer system is potentially well suited to handling this
bility of the system. A designer would like to ask questions like type of information by warning the user of such types of prob
"If I use three small cascaded tanks, rather than one large one, lems. Other problems such as the existence of hidden positive
what will the effect be on the structural controllability[19] of the feedback loops due to bad structuring, can be picked up and re
system?" Answering such questions usually requires extensive ported to the user. It is very important that such problems are
calculation and data manipulation; a task which is well suited discovered as early as possible in the design cycle, because the
to a computer. cost of rectifying mistakes later can be very high.
Secondly, an indication of the robustness of the design due to The design of large-scale process plants can be broadly divided
modelling ignorance or parameter variations can often only be
into two main areas:
ascertained by running the algorithms again with a new set of
values. This defeats the whole object and will eventually require
the same amount of effort as if a systematic design procedure
was carried out initially. (A systematic design procedure can be 1.Structural modelling—modelling of connectivity, polarity,
regarded as one which includes design tolerances and parameter spatial relationships
variations from the very beginning of the design process. Un
2.Static and dynamic modelling of individual components
fortunately, such procedures are only known for certain problem
and their interrelationships.
domains, see [14], for example)
Computer aided design tools at the moment do not cater for Both of these can benefit from the results of AI research; search
the situation where some information is missing and require a techniques and algorithms are useful in analysing structural mod
rather high level of process design expertise to use properly. A els and qualitative reasoning methods can be used in building
CAPMACD system can provide some mechanisms to support static and dynamic models.
the reasoning process and allow the designer to treat only small
parts of the model at a time. At the same time it should allow
We therefore propose a simple, yet flexible database system with
the user to ask "what-if" questions.
program modules which enable the data to be manipulated and
used in a variety of different ways for analysis and design.
A good design philosophy should allow the designer to see rele
vant tradeoffs at each step along the way towards the final design
24 THE TRANSACTIONS OF THE SA INSTITUTE OF ELECTRICAL ENGINEERS March 1991
Models can be broadly divided into two types, namely formal and A large body of literature exists in this area, mainly in the arti
conceptual models [5], A formal model is the model description in ficial intelligence journals, where workers in the field have been
equation form, whereas the conceptual model is a mental model attempting to build programs which can imitate the common-
which the designer formulates about the formal model. sense reasoning about the physical world which humans appear
to be so good at. Research in this area tries to formalise com-
The conceptual model is that which is not expressible in formal monsense knowledge and reasoning about the physical world.
terms and involves such concepts as the quality or accuracy of
the formal model and its applicability. A child, for example, The reasons for this being such an important area of research
builds up a good conceptual model of the dynamic behaviour of
are:
a bouncing ball, without solving any differential equations or nu
merical algorithms. The child understands the ball's behaviour
to some extent, from observations that the height of successive
people are very good at functioning in the physical world
bounces diminishes to zero.
no theory of this human capability exists which can serve
as a basis for imparting it to computers
A heuristic process model, on the other hand, is a combination
of many different kinds of knowledge; cause-effect, spatial, tem
poral and taxonomic, i.e. "rich" knowledge.
Three basic approaches to qualitative model building are
6 The Structure and Use of the The amount of knowledge contained in the data structure for
each digraph line, determines the level of modelling detail and
CAPMACD System hence the level of sophistication of the analysis that can be car
ried out for that part of the plant. Each line in the database
has a header slot which contains information about the type of
We envisage the following mode of operation for the system: knowledge available, such as normal equations, constraint equa
The user identifies process model variables such as flowrates, tions or gain and sign only (see Figure 2). Before invoking any
temperatures, tank heights and assigns node numbers to them. analysis, this slot is interrogated to determine whether a par
Variables which influence one another are visualised by the user ticular analysis is feasible and if not, the analysis program tries
as lines joining the nodes corresponding to the variables, but are to advise the user of possible alternatives. For instance, if the
stored as pairs of nodes in the database. The interconnections equations of the lines describing a process are known except for
of nodes represent a graph and by considering the order of the a few which are unknown or vague, the system will indicate to
node numbers in a node pair, a directed line is effectively stored. the user where to focus his efforts to resolve the weakness.
The directed lines in this case constitute a directed graph or
digraph[ll].
(defstruct line
A digraph is a very general and flexible representation with (model-detail? Struc QSim Num) ;header.
which to both store and manipulate different types of informa (number 62)
tion about a plant. In its simplest form, basic connectivity or (node-pair '(4 7))
cause-effect relationships can be represented and used. If more (sign 'neg)
information is available about the interacting variables, the rep (gain 2.4)
resentation can include transfer function, QSIM constraint equa (operator 'sqrt))
tions or general differential equations. ( ) ;additional slots appended by other programs.
•The Controllability and Structural Analysis Programs Figure 2 The Digraph Data Structures.
•The Bond Graph Modelling Program
•The Qualitative Simulation Program (QSIM) I,, this \,...,, mere efficient use of the user's lirrv N '•'•"!< ;ni,i
tradeoffs will be highlighted as the design proceeds. For ojiii
•The Numerical Simulation Program (ACSL) pie, if only approximate d.c. gains and polarities for the branches
comprising a (perhaps hidden) loop are known, the program can
•The Computer Aided Controller Design Programs
warn the user of a possible unstable condition using a qualitative
stability analysis. If detailed transfer functions are known, how
ever, then a complete numerical simulation can be carried out.
The system guides the user through the analysis steps starting
Bond Graph with simple structural tests and ending with full numerical sim
QSIM
//
Analysis ulations if possible.
i
/
1 // After the user has entered the structural and any known rela
Digraph tionships between the process variables into the database, he can
Database
CACSD then proceed to use the analysis and design programs available.
A \\
T \ Controllability and
A typical scenario is as follows: Assume that a process is to
be modelled and controlled, but the user requires assistance in
ACSL Structural Analysis these tasks. If there are a large number of interacting variables,
the cause-effect relationships can be checked by a simple search
which will propagate trends (in the form of signs), through the
Figure 1 Proposed CAPMACD Structure. digraph. At this stage, the user may wish to test whether the
system is structurally controllable using the Controllability and
Structural Analysis Module[12] and if not, he may decide to
The user communicates with a facility via the digraph database. modify the overall structure of the system appropriately.
All knowledge about the process plant (spatial, numerical etc.)
resides here. Data required by a particular program is obtained
from the data slots reserved for it in the digraph data structures. For example, if it is known that an increase in flowrate in pipe
The data structures also have slots containing data (such as node 64 causes a decrease in temperature in vessel 103, this can be
numbers and process variable names) which are common to all checked by performing an analysis using the function (analyse
accessor programs. An important concept in this system is the 64 103) between nodes 64 and 103. If more knowledge is avail
ability to perform different analyses depending on the level of able, the user can then request an ACSL[1] file to be written for
information or knowledge available about the plant. numerical simulation, or a constraint model file for a qualitative
simulation.
26 THE TRANSACTIONS OF THE SA INSTITUTE OF ELECTRICAL ENGINEERS March 1991
In cases where the equations are not known, but the behaviour 10 References
of the process is well understood, the qualitative simulation op
tion using QSIM can be used to 'knowledge engineer' a dynamic
description by creating and debugging the constraint model to 1.ACSL User Guide
achieve a qualitative model which will yield the correct behaviour. Mitchell and Gauthier Assoc, Concord, Mass.
Alternatively, the bond graph modelling technique[15] can be
used to obtain the differential equations suitable for numerical 2.Dalle Molle D. T., "Qualitative Simulation of Dynamic
simulation. Chemical Processes"
PhD. Thesis, University of Texas at Austin, 1989.
The Bond Graph Analysis Module uses the digraph database, 3.Dalle Molle D.T., Kuipers B. J. and Edgar T.F. "Qualita
but lines joining nodes are interpreted as bonds in this case [10]. tive Modelling and Simulation of Dynamic Systems"
Computers and Chemical Engineering, vol. 12, no. 9/10.
pp 853-866, 1988.
Abstract: A broad review of software renewal as part of the 2. ISSUES AFFECTING SOFTWARE
overall software system life-cycle, software maintenance and
software reusability is undertaken. The results of an investiga RENEWAL
tion into the current state of software system renewal in South
Africa are presented and the implications discussed. A number of issues which affect software renewal will
be considered, including: programs as changing
Keywords: software engineering, software renewal, models of the real world, the influence of the software
software maintenance, software life-cycle, software life cycle, the architectural approach used for pro
reuse. gram design, and software reuse.
A common characteristic of computer-based, real Lehman [2] categorises programs into three different
time engineering systems is that the hardware chosen classes, namely: S, P, and E program types.
to support the system becomes obsolete and difficult
to maintain after a period of time. When the original Specifiable (S) types are programs whose function
hardware has to be upgraded, it is not always clear can be exactly defined by a formal specification. Some
what action should be taken with respect to the ap programming language compilers are good examples
plication software. Since software development costs of such programs. Such programs retain utility for as
represent a major outlay, it is evident that significant long as the language definition is stable.
cost savings can be made if a large component of the
P (programmable) and E (evolutionary) type
existing software can be reused.
programs are representative of a class of programs
Software renewal is the modification of an existing which are subjected to a process of continuous
system's software so that this software is usable in a new change. P-type programs represent a class of applica
or substantially changed hardware environment. There tions which model some aspect of the real world and
is a spectrum of software renewal possibilities, rang are characterised by a precise requirement specifica
ing from software translation, requiring modest tion but an approximate implementation. The large
modification, to a radical re-implementation of the majority of scientific and engineering simulation
software functionality within a new hardware ar programs are in this category. E-type programs, on
chitectural framework. the other hand, automate some aspect of human or
societal activity. In use, they become part of that real
This investigation was undertaken to determine how world, and in many instances, change the perception
local software practitioners involved in real-time en of the users of the system in such a way that pressure
gineering systems are approaching the problem of for change of the system emerges as a consequence of
software system renewal. A representative sample of its use. Such applications are therefore subject to an
real-time software systems from various vendors and endless cycle of change. If the custodians of the system
end-users were considered. This investigation is ex fail to respond to this pressure for change, the system
ploratory in that it was intended to identify the major becomes steadily less effective and acceptable to the
issues affecting software renewal. Rigid statistical end-users with the passage of time.
testing techniques were not applied. While it is
believed that the results of the survey of the sample is Real-time engineering systems are good examples of
representative of the state of South African software E-type applications since the behaviour of the ap
renewal in the limited domain of real-time engineer plication system, the demands on the user, and the
ing systems, these findings should be used as part of a support required will depend on program charac
further investigation in which a statistical hypothesis- teristics as experienced by the users. It is the users who
testing research methodology is used. will, after becoming familiar with the system, change
their attitudes and approach to the system in order to
obtain greater efficiency from this system. External
influences, which change the application environment
within which the system operates, will also bring about
Submitted April 1990 the need for system change. An example of one type
Accepted of external influence which would create pressure for
August 1990
change is the introduction of new hardware. It is this
March 1991 THE TRANSACTIONS OF THE SA INSTITUTE OF ELECTRICAL ENGINEERS 29
external influence, i.e. the introduction of new to impose standards on the industry indicates that the
hardware, which has motivated this investigation. 'top-down' approach will continue to exert a substan
tial influence on software design practices for the
Lehman [2] also offers some laws concerning pro
foreseeable future. (It is worth noting, however, that
gram evolution. One of these, the law of continuing
pressures for change away from the exclusive use of
change states: "A program that is used and that as an
this design philosophy are being recognised and ac
implementation of its specification reflects some other
commodated [17, 22]).
reality, undergoes continual change or becomes
progressively less useful. The change or decay process The validity of the top-down approach as a method
continues until it is judged more cost-effective to replace for developing large systems is being subjected to
the system with a recreatedversion." critical scrutiny. Allman and Stonebraker [17] have
noted that while the top-down philosophy offers the
2.2 Software Life-cycle Issues designer complete freedom in the initial design stage,
subsequent stages are increasingly constrained by the
According to Boehm [1] the classical life-cycle con previous stages of functional decomposition. This im
sists of a sequence of activities: systems requirements poses major constraints on the ability of the chosen
definition, software requirements specification, decomposition to be adapted to changes in software
preliminary design, detailed design, coding and system requirements.
debugging, testing and pre-operations, operation and
maintenance. These phases may be viewed as con In addition, an important underlying assumption of
stituting an individual release of a software system, the top-down approach is that the problem and sys
provided that "maintenance" in the seventh phase tem requirements are fully understood and that there
refers to on-site fixes and repairs implemented during are few external constraints to contend with. Since this
the use of the system. If maintenance is taken to refer is not always true, even less freedom is afforded the
to permanent changes effected through new releases system developer when it is later discovered that
by the system originator then the structure becomes (using the terms of Section 2.1 above) the initial per
recursive with each maintenance phase representing ception of the program in its real-world environment
all seven phases. The model implies that system is partially or wholly incorrect and there is pressure
renewal is part of the maintenance cycle. If this view for change. Lastly, according to Meyer [16] "top-down
is held then it may be argued that renewal is simply a design goes against the keyfactor ofsoftware reusability
recursive maintenance phase made up of all the pre because it promotes one-of-a-kind developments,
vious system development phases. (This view also rather than general-purpose, combinable software ele
tends to neglect the fact that maintenance work tends ments."
to lead to a general deterioration of the software
structure. Heroic measures are usually needed to 2.4 Software Reuse
reconstruct the system's current functional specifica
tions.) A recent estimate [21] indicates that the worldwide
software market is worth about $30 billion, covering
The necessity for renewal, however, is something not expenditures on general purpose and application
dealt with in the model and may be precipitated by specific software. The bulk of software required for
hardware obsolescence. The lifetime of computer industrial and military purposes is application-
hardware in a process control environment is typically specific, and expenditure on such software continues
8 to 10 years after which increasing hardware main to increase rapidly. Since the largest cost component
tenance costs dictate hardware replacement. If this in the development of software is skilled labour, con
figure is compared to the typical lifetime of the plant siderable effort is being expended towards improving
of about 25 years, then the issue of system renewal or software productivity. One concept which has the
replacement will arise at least twice. potential for substantially increasing software
productivity is reusable software.
23 Architectural Design Philosophy
Software reuse is any procedure that produces (or
The 'top-down' functional decomposition approach helps produce) a system by reusing something from a
to software design enjoys widespread support and previous development effort [14]. The need for
application among the computing community. Meyer software reuse is widely accepted and can be easily
[16] notes that the adjective 'top-down' is used almost justified by merely considering the potential
universally as a synonym for 'good' when speaking economic benefits. Jones [15] claims that of all code
about software system design. This observation be written in 1983, probably less than 15 percent was
comes even more credible when one notes that top- unique, novel and application specific while the
down design is an essential requirement in the US remaining 85 percent appeared to be common,
Department of Defense directive MIL-STD-2167. generic and concerned with putting applications onto
The immense size of this organisation and its ability computers.
30 THE TRANSACTIONS OF THE SA INSTITUTE OF ELECTRICAL ENGINEERS March 1991
Reusability has many aspects, which include reusable In general, the subjects representing vendors of
requirements specifications, reusable design, software systems reviewed their software renewal ex
reusable code, prototyping, application generators periences. It was not possible in the time that was
and formal specification and transformation available to discuss the various systems in detail.
mechanisms.
The subjects who represented end-users of software
In conclusion, each of the areas discussed above affect systems (i.e. ESCOM and SATS) were able to refer
software renewal in different ways. Since programs specifically (and in detail, in some cases) to systems
are changing models of the real world, software that were in their care. Although only two end-user
renewal is unavoidable. This renewal process is com organisations were consulted, the systems that were
plex and there are many issues that have an effect. As discussed covered a wide range and included Super
discussed above, the process is further complicated visory Control and Data Acquisition and telecontrol
by elements of incompatibility between a widely used systems [8, 9], Energy Management systems [10],
architectural design philosophy (top-down), and an measurement and monitoring systems, a railways sig
increasing desire to develop cost-effective systems nalling system [11, 12], and a power load dispatch
through software reuse. system [13]. (Table 1)
While it would not be possible to present the findings
3. LOCAL SURVEY OF SOFTWARE of all the interviews conducted in this survey in detail,
RENEWAL PRACTICES Table 2 lists some of the systems discussed in detail
and the essential features of renewal methodology. In
Individual interviews with 20 software practitioners
addition two case studies are reviewed.
from 10 organisations were undertaken as part of this
survey [23]. The systems discussed during the course
of the interviews all fall within the category of E-type 4. CASE STUDY ONE: PROCESS
real-time, engineering application systems. Vendors CONTROL
and end-users were consulted. Initially, the subjects
interviewed were chosen on the basis of personal AECI Process Computing (APC) is a company in
contacts, after which these subjects were able to refer volved in the development of process control systems
the author to other subjects involved with the type of for the chemical, mining and mineral processing in
real-time system under investigation. As the investiga dustries. APC had developed an RTL/2 based
tion was intended to be exploratory in that broad process management and control package (CYG-
issues relating to software system renewal were to be NUS). The evolution of this package and its im
identified, this sample selection method, even though plementation and use is an example of an approach
not done randomly, was considered to be satisfactory. to software system renewal and software reuse.
Table 1 lists the organisations consulted, the number A well-recognised trend in computer control systems
of people interviewed from within that organisation is that hardware is becoming cheaper, faster, and
and the number of systems discussed. The personal more reliable. In contrast, software has become more
interviews consisted of open-ended questions being complex, very expensive, and difficult to maintain. It
put to the respondent. The interview was tape- was against this background that APC considered that
recorded and then transcribed. Interviews varied it would be easier and cheaper in the long term to
from 45 minutes to 120 minutes in length. Most of the develop a generic, reusable software package of
interviews (15) lasted between 60 and 90 minutes. general application to real-time process control ap
plications. Consequently, a modular, reusable
software package was developed with carefully
defined intermodule interfaces. When configured
Table 1 Organisations Interviewed with application-specific modules, a software system
Organisation People Systems can be supplied at reasonable cost.
Inter Dis
APC have measured the benefits of this approach and
viewed cussed
claim to have achieved a saving of at least a factor of
Telkor 3 4 three [7] in the software effort required for the
Teklogic 1 4 development of new systems.
SATS 4 4
ESCOM 6 8 5. CASE STUDY TWO:
Infoplan 1 2
TELECONTROLSYSTEM
Bateman Process Instrumentation 2 5
AECI Process Computing 2 This case study reviews the Durban Witwatersrand
10
Petroleum Products pipeline telecontrol system. The
Murray & RobertsTechnologies 1 1
pipeline, between Durban and the Witwatersrand, is
TOTALS: 20 38
March 1991 THE TRANSACTIONS OF THE SA INSTITUTE OF ELECTRICAL ENGINEERS 31
Coal Line FORTRAN Nova 840 and This system was actually upgraded onto a
1979 Centralised Nova 2 Data General Eclipse S140 computer. The
bulk of the original application software
Traffic Control
(60 man years) was transported directly
system for onto the new system.
SATS
ESCOM's Na FORTRAN Xerox 550 A gradual evolution of subsystem
1979 tional Control and Xerox AP upgrades and module replacements using
languages such as C and Pascal as opposed
Energy Assembly lan
to a costly total replacement scheme,. Use
Management guage will be made of Energy Management Sys
System tem software packages as well.
Plant monitor Assembler and Honeywell While some of the systems installed in
A series of sys 1970 were still running the renewal
ing systems in FORTRAN
tems installed methodology consisted only of a function
stalled at
between 1970 al transfer from the old system to the new.
various Standard features were enhanced and
and 1978 ESCOM Power then reused. Only some plant perfor
stations mance calculation software written in
FORTRAN was reused.
Transmission FORTRAN Hewlett Pack Significant reuse of software is possible
1984 line tower test ard due to a highly modular approach taken
during the software development, which
station system
was accompanied by comprehensive and
for ESCOM well written software documentation.
32 THE TRANSACTIONS OF THE SA INSTITUTE OF ELECTRICAL ENGINEERS March 1991
a high volume pipeline with 12 pump stations on the 6.2 Static Applications
pipeline. The system was installed in 1977 by Telkor
In the systems considered in the static application
(Pty) Ltd and was based on the 16-bit Data General
category initial system specifications were sufficiently
Nova III mini-computer, which has a limited address
accurate to enable these systems to function effec
ing capability of 32 K words (64 K bytes).
tively for longer periods of time than those in which
Located at each station is a dual CPU-hot standby specifications changed substantially. Since user
computer system. The system constantly monitors specifications were largely correct there was no need
pipeline conditions (e.g. product pressure, tempera for system renewal due to software system aging.
ture, flow rate, density, tank volumes, and valve Some of these applications included power station
statuses) and facilitates control of the pipeline by monitoring, power network analysis, power system
controlling, among others, the pumps, valves and control, and other applications in which the domain
product deliveries. A more detailed description of was well-understood and correctly specified.
the pipeline system is given elsewhere [8].
In some of these cases, extraordinary effort was ex
The problems being experienced with the main pended in maintaining the system hardware for as
tenance of this system are largely due to the aging long as possible since the system software had suffi
Nova III computers. Although all the software for the cient functionality to serve for an extended period
system was developed in Nova III assembler language, without modification. At one power station a com
software maintenance is still feasible. Hardware puter served for 15 years before it finally became
maintenance, however, has presented a formidable unmaintainable.
problem. Repairs to the aging computer equipment
become increasingly costly, and ways of upgrading In other cases where the hardware was physically
unmaintainable, the system was renewed. The ap
the system were being studied.
proaches to renewal varied according to cir
The maintenance contract for this pipeline cumstance. If the initial system had been written in
telecontrol system was awarded to Telkor (Pty) Ltd assembly language (as most of these were) since the
and the personnel on the Telkor team, responsible for assembly language was machine-specific it was in
the contract, who were interviewed agreed that it was variably decided to discard all code and rebuild the
not feasible or practical to even try and reuse any of system from scratch, reusing the original functional
the existing software. A complete rewrite of all the specification.
software would have been required. The original sys
tems software capability was limited by the 32K word 63 Non-Static Applications
addressing capability. This hardware limitation re
quired that much of the software code development Where the application was non-static (E-type), the
effort was directed to achieving a usable system within initial functional specification from which the system
those memory constraints. was developed became progressively more outdated
with time. This was brought about by various fac
With reference to the software life cycle discussed in
tors.
Section 2.2 above, it can be argued that a major part
of the results of the software development effort in In some instances the plant or process was not well
vested in the original system, (lifecycle phases 1, 2, 3, understood at the time that the functional specifica
and 4) could be reused. In this case, this would not be tion was developed. As the system was used, and as
practical since the system operating philosophy and the user's operating philosophy changed, the system
requirements had undergone substantial change since tended to satisfy less of the user's requirements with
the system was first specified. time. While software maintenance was able to rectify
these problems in the short to medium term, it be
came increasingly difficult and cumbersome to do so
6. DISCUSSION OF RESULTS in the long term. An aggravating factor was that, since
The survey results cover many aspects of software many of these systems were written more than 10 years
engineering as well as software renewal. Some of ago, modern software engineering techniques were
these results are discussed here: not applied either to the design or the construction of
the software.
8.Hallas J M, A Telecontrol system for a multi- Joel Amoils is presently employed by Protea International, P
O Box, 91325, Auckland, 2006.
products pipeline. Elektron, 4, (9), 5-7, 1987.
This area is known as polymorphism [3], dynamic binding As each different drive is encountered, which differs
[8] or commonality [4]. The advantage of this occurs slightly from the superclass, a new subclass can be created
where a new data manipulation procedure needs to be to cater for that type of drive and its associated extra logic.
added to a program. Simply defined the area of dynamic
binding allocates responsibility. "An object decides, at
run-time, what to do with the message you've (sic) sent Assume for the purposes of example that there exists a
it." [4] drive which when a request to start signal is received will
March 1991 THE TRANSACTIONS OF THE SA INSTITUTE OF ELECTRICAL ENGINEERS 37
RUNNING
& 4. SIMPLE
OBJECT-ORIENTED
IMPLEMENTATION
>••] 4.1 Physical Input and Out
put
START
One of the major areas of
STOPS HEALTHY 8 i I
consideration must be the
comparison of the object-
oriented software to the
physical PLC. All PLC sys
TRIPS HEALTHY
timT B
m
START
tems work on the principle
of having a series of
Input/Output (I/O) racks.
Each of these makes a
SIREN
physical connection to the
pieces of equipment to be
controlled. Previously when
Figure 2 Drive with Siren the input signals (field start,
38 THE TRANSACTIONS OF THE SA INSTITUTE OF ELECTRICAL ENGINEERS March 1991
definition of a new variable of the class lOrack. The code is used to distinguish the different classes from each
segment of this function is empty, as when an lOrack is other. This is primarily used in creating drives at run
called it creates all the variables which initialize themsel time. The function is to eliminate the hard-wired code
ves. generally associated with the selection of different types
from a list of choices. The member function status is
The variable localstart is used as a temporary carrier of
required to generate output to the screen of the status of
information between the super- and subclasses. The base
all the input and output variables associated with a drive.
type of lOrack contains the most basic of 10 and does not
This is used in a number of instances where a display of
cater for any new types of drive IO. These would be made
this nature is required. This is also defined as a virtual
local variables within the new class itself.
function, and therefore it allows a new subclass to
redefine it's member function called status.
4.2 Generaldrive Class
Addtolist is a function that is used in fundamentally dif
Since the simplest classes necessary have been defined, ferent ways by each subclass. It's prime function is to add
the basic electric drive operations can now be defined. a new drive of a specific type to the linked list of drives.
These are contained in the class Generaldrive. The struc Setrunning is a member function common to all subclasses
ture of the code is such that the class of Generaldrive forms and is used to determine whether the drive is running.
the heart of all the drive related operations. All the basic Rack is a variable of type lOrack. It contains the basic IO
10, procedures and operations are defined within this defined for a particular class. All IO operations are car
class. All actual operating drive classes are derived from ried out using this lOrack. This is a sound form of protec
this base class. tion in PLC programming as often the programmer
enters the incorrect mnemonic for a variable and thus
Certain functions are defined as virtual, and this allows
struggles to find an error. The fact that the IO associated
for operator overloading. This is perhaps one of the most
with a drive is only accessible to that drive makes it
significant benefits of using object-oriented design and
impossible to access the IO associated with another drive.
associated languages. The same operator may be used to
The additional benefit is that when programming all the
denote a number of different operations. The language
names of the variables are the same, unlike conventional
will determine at run-time which of the operations to use.
This allows each of the subclasses to behave in fundamen programs where variables are addressed by their position
on the physical IO card.
tally different ways. The listing of the definition of the
class is given below. Following this is a brief description The two member functions operate and operatel form the
of each of the lines in the class definition. heart of the drive operation. Operate is a common func
tion that defines all the necessary basic drive operations.
class Generaldrive
Operatel is specific to each drive type and is called from
{ operate. The same effect could have been achieved using
public:
char namestr[20]; only one virtual function, and defining unique opera
chartypename[30]; tions for each drive type. It was decided to use a common
Generaldrive * nextptr; operating core and allow each drive to configure it's own
interlock inter-lock;
specific parameters Thus when a drive is passed the
addinterlocksO;
delinterlocksO; message operate it calls operatel which then peeerforms
int type; the fundamental drive operation. This will be further
virtual statusO; discussed in the descriptions of the various drive types.
virtual addtolist(char name[20]); The IO point localstart is used as a transfer mechanism
setrunningO; between the procedures. The last member function of the
lOrack rack; class Generaldrive is the constructor function. This is
virtual operate( int value, int error =0);
operatel (int value, int error =0); /* basic called each time a drive is created and is used for internal
operations*/ memory allocation.
GeneraldriveO;
}; 43 Additional Derived Classes
The two character strings namestr and typename are used
The basic classes have been defined and it is at this point
to define the uniqueness of the drive. The type name is
that the benefits of object-oriented design become ap
applied principally in the definition of new drive types,
parent. The previous section discussed a number of
where a list of drives is formed and the types are listed for
variants on the basic drive class. Object-oriented design
the user. The pointer to the class called nextptr is the
allows for these to be implemented with little additional
pointer that forms the heart of a linked list of drives. The
code. The class of Generaldrive was defined in such a
interlock refers to the safety features in the plant and
manner that additional logic is placed in the subclass's
unless the interlock conditions are met the drive will not
operate function. The new class then calls operatel, and
be allowed to start. The member functions add-interlaock
then incorporates additional logic into it's own operate
and delinterlocks are used within the program to set and
delete interlocks associated with a drive. The integer type
40 THE TRANSACTIONS OF THE SA INSTITUTE OF ELECTRICAL ENGINEERS March 1991
function. This is demonstrated using a number of ex It can be seen that the definition of the subclasses is
amples. almost identical in all cases. They all have the same
member functions and these contain all the differences in
4.3.1Drive with no features
the operation.
There may seem to be little reason for defining a new
subclass that behaves identically to the superclass. It was 4.4 Interlocks
used in the present context to maintain continuity in the
method of defining new drive types. These are all defined An interlock comprises a number of conditions and not
by subclassing of the class Generaldrive. It was logical to merely a one to one relationship between the current
subclass a drive of the most basic class in this fashion. This drive and another piece of equipment. The list of inter
could also be compared to the situation where the most locks is often large anddepends upon the type of drive.
Generaldrive class is compiled into a library and users
The interlocks were implemented as a linked list of inter
needing to develop programs would define the new class lock nodes. The variable associated with each drive is of
as a subclass of the predefined class. the class interlocknode. This has a pointer to the first of
4.3.2Drive with start siren the nodes in the list. Each node consists of a pointer to
the name of the drive to which it is pointing, as well as a
The class of drive with start siren works on the principle pointer to the running status of that drive. This does not
that upon start-up of the drive, a siren is sounded to warn necessarily have to be a running signal, it could be a high
personnel of the impending start. level alarm or another digital signal.
class Drivesiren : public Generaldrive The definition of the interlock classes is given below :
which is held by a global anchor called first sequence. the I/O from another drive. The second area where this
There are more global procedures related to sequences was used, was in the definitions of local functions and
than for interlocks. The reason is the relative inde procedures. This ensured that an object, not of that class,
pendence of the sequences from the actual drives. Thus did not have access to that function.
all the manipulation procedures are independent and a
drive that is part of a sequence has no indication thereof. The principles of dynamic binding was exploited in the
The class definitions follow : drive definitions. Here each subclass had a number of
member functions declared, in the superclass and the
class sequencenode subclass. This concept of operator overloading allowed
the different objects to behave in fundamentally different
public: ways to the same message being passed to them. This is
sequencenode * next;
sequencenode * previous; perhaps one of the most powerful of the features of
Generaldrive * drive; object-oriented programming languages.
These efforts in FORTRAN package renewal have been ing the program because without knowing how and why
formalised and are outlined in Section 2. The rewards of it works it is not possible to correct errors, extend its
the renewal effort are reviewed in Section 3. functionality or maintain the package.
The first step towards understanding the program is to The major data objects are located in FORTRAN COM
identify any available program documentation. These MON block statements in the main program and are
documents are, however, frequently out of date, incom included in several subroutines. They are usually large
plete or non-existent. This is often the rational for renew- arrays. The size, type, and interrelationships must be
March 1991 THE TRANSACTIONS OF THE SA INSTITUTE OF ELECTRICAL ENGINEERS 45
clearly identified. The physical interpretation in the data branches 1 to N, each branch L identified by a unique
dictionary must be expanded to include the intention of node pair JN(L), KN(L). The size of the arrays JN, KN
array subscripts in terms of the physical modelling. This and CAP (60 in Figure 1) then represents the "maximum
is best illustrated by two examples one from LJNSIM, the number of branches that can be accommodated in a
other from HEX. network". The intended physical representation of a
branch in the electrical network of components is shown
In LINSIM several groups of disjoint arrays are logically
in Figure 2. The resistor, capacitor, inductor, voltage,
related and combine to represent the information about
current and voltage controlled current sources all appear
a network component in an electrical circuit. They are
between nodes 1 and 2, forming branch 1 of the network.
declared in an include file LINCOM.FOR and are in
This would be stored in LINSIM by assigning, for ex
cluded in all other LINSIM modules. Arrays JN(L) and
ample:
KN(L) store the nodal information for simple general
components (JN the higher and KN the lower node) while JN(1)=1
CAP(L) stores the component value (CAPacitance). KN(1)=2
This is illustrated in Figure 1. CAP(l)=luF
HENRI(1)=1H
IMPLICIT REALB(A-H,O-Z) YR(l)=lSiemen
IMPLICIT INTEGER*2(I-N) ER(1)=1V
COMMON YI(60),ER(60)>XIR(BO),YR(BO),CAP(BO),HENHI(60),EI(BO) XIR(1)=1A
COMMON XII(60),YGM(60).FGM(60) YGM(l)=lMho
COMMON NJJ(60),NJ(60),NK(60),NlCK(B0),JN(60)lKN(80)
Coupled components (mutual inductance and voltage
controlled current sources) require two node pairs for
CAP 1 2 60
the node data NJ(L), NK(L) and NJJ(L), NKK(L). The
array alignment feature in Figure 1 is not evident for
JN 1 2 60 coupled components and are therefore clearly in a dif
ferent class to the general components. The two derived
component classes are shown in Figure 3.
KN 1 2 60
2.6Implementing and testing objects for the presentation of results, a small menu screen, a
defaults fine for displaying simulation or analysis infor
The objects were implemented in Turbo Pascal 5.5. It
mation which remains pertinent over the course of several
was selected for the following reasons:
processes and overlapping status, error-message, func
•It has the fine program structure inherent to Pascal tion key and prompt lines at the bottom of the physical
screen. The interface is object-oriented in the sense that
•Object support (as per C++) [7] each logical screen has its own associated screen opera
tions. The entire screen-management code is self-con
•An excellent program development environment
tained and encapsulated in a single unit.
(editor, compiler, linker and debugger (integrated,
remote and virtual)) including utilities such as
GREP, TOUCH, MAKE and BUILD 3. A COMPARISON OF RENEWED
•It is supplied with units of code for operating system
AND ORIGINAL PACKAGES
interfacing, graphics and overlays A comparison of the original and renewed programs,
•It produces efficient code (optimised with support ELECSIM (formerly LINSIM) and WITS-HEX
for co-processors and emulation
(formerly HEX) is presented in Table 1. Both HEX and
LINSIM required improved user-interfaces.
Each object is tested individually by small test processes
HEX is batch-orientated using a command file, data
which simply execute object operations.
input files and finally spooling results to the output files.
To process a given set of data the user often had to run
2.7Implementing and testing individual processes
the program several times to debug erroneous commands
It is important to decouple the identified processes. This and incorrect input data formats. The reason for this was
leads to a broad flat program architecture as shown in the lack of interaction with the user during processing.
Figure 9 that can easily be rearranged. The volume of LINSIM has a command line user-interface. The
source code will increase: a small price to pay for the FORTRAN format of command lines is awkward to
flexibility provided. remember and is exacerbated by command lines which
require three or more parameters. The error message
Main "Unknown Command" is wholly inadequate.
1
1 Both ELECSIM and WITS-HEX use a menu-based
user-interface. This both reduces the user-memory load
A B C D E and affords an appropriate mechanism for feeding back
status and error messages. The interface is object
Figure 9 The Hierarchy of a Program With a Flat oriented. This effectively isolates (by encapsulation) the
Structure inevitable environment specific input/output code from
(A to E are Individual Processes) other objects.
The user-interface (Figure 10) treats the physical screen Figure 10 Screen Layout in ELECSIM and
as a series of logical screens; a large central main screen WITS-HEX
March 1991 THE TRANSACTIONS OF THE SA INSTITUTE OF ELECTRICAL ENGINEERS 49
•the high resolution colour graphics The documentation currently available for ELECSIM
•the user-interface
includes papers [2,3] and a high quality, 100 page user
manual. The user manual required the development of a
extensive input/output error-protection code suitable style and layout which is to be reused for future
manuals. The production of this manual was undertaken
Overlays were used for both ELECSIM and WITS-HEX
as a seperate task. Five individuals contributed to this
due to the limitations of the target DOS operating system task, and consumed an estimated 600 hours.
(640 Kb barrier). This introduces a minimal overhead
when either of the renewed programs is used on personal The user manual for WITS-HEX is still under develop
computers with either extended or expanded memory ment and will therefore increase the development effort
systems configured as disk-caches. The overlay file will listed in Table 2. The style, layout, description of the
be loaded into the respective extended or expanded user-interface and experience gained in producing the
memory when first called and is sufficiently small (less ELECSIM manual will be reused, reducing production
than the nominal minimum standard of 384 Kb) to remain costs and improving productivity.
there.
Fifty percent of the time expended on the initial renewal
The 1.68x and 1.60x improvement in executional speed phase of LINSIM was consumed by manual, static source
between ELECSIM and LINSIM, WITS-HEX and HEX code analysis due to the lack of suitable CASE tools. This
respectively relates to the clearer unscrambled code in was a strong motivating factor for investigating and sub
the processes of WITS-HEX and ELECSIM. sequently acquiring suitable CASE tools.
•Identify other CASE tools and environments that 9.Boehm B.W., Software Engineering Economics,
may improve the productivity of software renewal. Prentice-Hall, 1981.
to customize and enhance the executive gradually which could be required to do background computation such
will ensure that only the necessary features and options as planning or optimization. It can therefore be seen
are included. With this in mind, we have opted for a that a real-time program represents an enormous
basic design that uses only non-preemptive scheduling increase in complexity over a simple sequential program.
and inter-task state message passing. We have delayed
incorporating other features commonly found in other Research into real-time programming over the last 20
systems, such as preemptive scheduling, task priorities, years has evolved techniques for designing such real-time
and event message passing, to a later development stage programs. The accepted approach follows three steps:
because they increase the non-determinism and •Think of the different system activities as separate
complexity of the operation of the system executive programs which logically run in parallel and which
considerably. will often need to access common data and other
shared resources. These logically separate and
The paper begins by examining some of the fundamental parallel (or concurrent) programs are called tasks.
issues pertaining to the design of the system executive. •Assume a conceptually separate processor for each
We discuss our method for extending the C language to task.
support task concurrency. A library of C functions which •Provide an underlying system executive or operating
supports real-time programming is also described. An system to run the tasks in shared memory on a single
example is used to show the functionality and flexibility processor and provide a programming language with
of the resulting system executive. special additional constructs to allow access to
shared data and resources.
REAL-TIME PROGRAMMING
DESIGN CONSIDERATIONS
Real-time programming applies to the situation where
multiple programs which share storage within a single In the design of system executives, the requirements of
processor must respond to external events. It is therefore real-time programming are traditionally addressed under
applicable to the internal operation of every computer a number of sub-headings. These include maintaining
making up a distributed computer system (DCS). It is the state or context for a number of different tasks, task
also relevant to individual embedded control computers synchronization, intertask communication and task
and to the larger centralized computers that co-ordinate scheduling.
subsystems in some present-day automation systems.
Multiple tasks
In conventional calculation or data processing, a In a multi-tasking environment, the system must
sequential program running alone on a dedicated maintain and support the coexistence of several tasks.
processor runs to completion as quickly as the processor Each task can be divided into several distinct sections.
allows. Personal computer programs are a good example These are the program code section, the data area, the
of this. The computer is in charge and there is no task stack and the task context. The program code
interference from the outside world. The program section contains the instructions that must be executed.
dictates when input from the user is required. The The data area contains static data such as initialized data,
essence of real-time programming, on the other hand, is global variables and constants. The task stack is used to
that the computer must act in response to asynchronous store dynamic or temporary data such as local variables
events in the outside world. These events could, for used in functions or subroutines and.parameters that are
example, be the reaching of a particular time, the passed between functions or subroutines. The task
change of an input value or the closing of an electrical context controls the task execution state by maintaining
contact. Inputs are therefore forced on the program by pointers to the code, data and stack areas and the
external events rather than the program demanding contents of the CPU registers. This task context is usually
input at its convenience. The computer is no longer in stored in a data structure called a task control block
charge, but is the slave of the outside world [9]. (TCB). Context switching refers to the process of
suspending one task and resuming another one. This
A typical real-time system is required to do several things. involves saving the current task context and restoring
For example, it may need to check cettain input values at the next task context. Figure 2 shows the structure of a
regular intervals to see if they are within an allowed typical task.
range. It may have to control some outputs. It may have
to update a display at regular intervals. It may have to In some systems, each task also has a heap area for
respond to one of several possible requests from the dynamic memory allocation, in others, there is a general
human operator and finally, in any remaining time, it heap area that is managed by the operating system.
54 THE TRANSACTIONS OF THE SA INSTITUTE OF ELECTRICAL ENGINEERS March 1991
cause the starvation of low priority tasks. Generally, to create a new task must:
priorities should be avoided except for fine tuning the •Allocate a stack area using the C memory allocation
responsiveness of the system [9]. function, malloc.
•Allocate a task control block, a data structure that
Our system executive employs cooperative, round-robin contains all the information pertinent to that task.
scheduling. This implies that no task can interrupt (This includes the task context using the jmpbnf
another task. When a task yields to the system, the next data structure.)
task in the circular task list will be given control of the •Set the instruction pointer to point to the function
CPU. Our strategy is to keep the executive as simple as address.
possible and resort to more sophisticated algorithms and •Set the stack pointer to point to the new stack area.
techniques only when the need arises.
Note that the function that creates the new task will
contain system dependent code. However, it is the only
EXTENDING THE C LANGUAGE TO SUPPORT function that has such dependencies. The system
CONCURRENCY dependency relates mainly to initializing the internal
structure of the jmpjntf data structure. For example, for
One of the most portable methods of achieving the Intel 80xxx CPU family, the instruction pointer is a
concurrency in C is by using the setjmp and longjmp combination of a code segment (CS) and the instruction
functions because they are standard ANSI C functions. pointer (IP). The stack pointer is a combination of the
Parker [11] adopts the same technique in his stack segment (SS), the stack pointer (SP) and the base
multitasking system executive. Setjmp and longjmp are pointer (BP). The contents of the jmpbuf data structure
generally used to trap errors and exceptions in C are normally documented in the setjmp.h include file.
programs. We will use it to jump between functions and
thereby effect task concurrency. When setpnp is first
called, it saves the complete task context in a jmp tmf X.LIB - A SYSTEM EXECUTIVE FUNCTION LIBRARY
data structure. The task context or state consists of the
CPU registers, the stack and base pointers and CPU flags. General philosophy
The function returns a 0 on completion. When longjmp The foremost consideration in the development of the
is called later, it restores the task state previously saved system executive was to create an environment that was
and returns in such a way that setjmp appears to have highly portable and flexible. No assembly language
returned with a positive integer value. programming was required in our particular
implementation. System dependent routines were
Figure 3 shows the basic mechanism to switch between localized to a small set of functions. Most of the source
tasks using the yield function. If all the task contexts are code for the system executive functions was written in
saved in a circular linked list, each time a task yields, the ANSI C. We believe that the system executive could be
next task will take control. This will result in ported easily to different platforms when the need arises.
cooperative, round-robin scheduling.
The IBM-compatible personal computer was chosen as
Since the tasks are concurrent, each one must have its the target system for several reasons. Firstly, such
own stack. The task context must also be initialized so machines were readily available to researchers and
that when a longjmp is issued, it will jump to the students. Secondly, the DOS environment is essentially a
beginning of the function and will also use the stack single user and in most cases a single process machine.
associated with that particular task. The function called Support for concurrent programming using C was
U 1)
=0 =0
SETJMP SETJMP
TASK1 TASK 2 yield ()
I 4 {
if (!setjmp(currenf7as/c)
>0 >0 longjmp (nextTask);
LONGJMP LONGJMP return;
TASK 2 ~* TASK1 }
II It
t
u II
considered to be a significant addition to our set of circular linked list for scheduling purposes. A typical
programming tools. TCB stores the following information as part of its data
structure :
Our system executive consists of a set of functions in a C •the task description or name
library called X.Lib as well as a collection of header files •the address of the C function
to be included with a user program. The executive can •a pointer to the stack memory
therefore be considered to be an embedded miniature •the stacksize
operating system. The following sections cover the main •the context of task (CPU registers, etc. usingjmpjntf)
aspects of the library. A summary of the major data •a task window data structure (if a window is defined)
structures and available functions is included in •a task error code
Appendix A. All the source code was implemented in •the intertask communication links
Turbo C, a C compiler from Borland International [12, •the command line parameters
13]. The huge memory model was chosen to allow for •the backward and forward links to other TCBs.
multiple code and data segments.
Three functions are used to create, destroy and control
Task control tasks. Tasks are created by calling the function,
As mentioned previously, the system executive uses xjhread, to create an execution thread. The parameters
cooperative, round-robin task scheduling. The task required include the function name, the task name or
control mechanism is shown in figure 4. description, the stack size, the maximum number of time
frames (see later under Intertask Communication) and
Each task consists of a task control block (TCB), a stack the command line string. Control is returned to the
area and a pointer to the function that represents the system executive by calling the function, x^yield. The
task source code. Since each task has its own stack, all function, x terminate, removes a task from the system.
the source code is re-entrant provided they do not make The use of a global pointer X CURRENT TCB, which
use of global variables. Local variables are allocated on points to the active task in the task list, obviates the need
the stack. Re-entrancy also implies that several identical to pass parameters to xjyield and x terminate.
tasks (i.e. same function) can be spawned and can
coexist with each other. Each task must however have a Input and output functions
unique name for identification purposes. These tasks are Since each task is capable of individually reading from
analogous to the concept of threads in OS/2 [14]. and writing to the terminal, the system executive must
Correspondingly, the different task paths are referred to control the input and output. To facilitate this, a window
as threads of execution. and menu system has been developed specifically to
coordinate this activity. Each task can create one
The TCB table uses hashing techniques so that each task window. All subsequent input and output will be routed
can also be referred to by its task name in intertask to this window. The window can be made visible or
communication. The TCB's themselves are arranged in a hidden. It can be voluntarily removed or automatically
destroyed when the task is terminated. Windows may
overlap each other. The system executive updates the
11 visible parts of the window when necessary. Pop-up and
tt STACK CODE pull-down menus are available in each window.
T TASK 1 &
C 1 DATA Concurrent output to the various windows is easily
B - ft - implemented because the tasks themselves are
II
concurrent. Each task writes to a logical window which
H tt STACK is then mapped onto the physical screen. Keyboard input
A TASK 2
is more complicated. The physical keyboard input must
S - 2
be mapped to one task at a time. This is achieved by
H tt
designating one of the windows as the active window.
It
The active window is shown with a double border as
T tt
A (I opposed to the single border of a non-active window. All
B It keyboard input is buffered by the system manager, a
STACK
L TASK background task whose responsibility is to re-route the
n
E n input to the task whose window is active and to trap
tt special key combinations. The key combinations Ctrl-
It LeftArrow and Ctrl-RightArrow make the previous
window or the next window the new active window. The
Figure 4 Controlling tasks within the system executive active window only determines which task will receive
March 1991 THE TRANSACTIONS OF THE SA INSTITUTE OF ELECTRICAL ENGINEERS 57
the keyboard input and does not affect the window variable. The loading operations are transparent to the
output. user who perceives only the sending and receiving of
messages. The unloading of a time frame into the local
The need to address input and output of each task variable only succeeds if the time frame is time valid. The
individually means that standard C input and output syntax for the loading and unloading of variables is based
functions such as print/ and scan/ cannot be used. on the programming constructs proposed by Kopetz
Instead a set of input/output functions have been [15]. The C preprocessor is used extensively to translate
developed as replacements. These functions are similar the intertask and real-time programming constructs/
in name, operation and calling convention as their syntax into standard C source code.
standard counterparts. Extra functions have also been
added to enhance the window I/O. Although the system executive allows any task to read
and write to any time frame, this is not desirable. In a
Intertask communication distributed environment there is no guarantee that two
Although all the tasks shared one processor and a writers will reside on the same computer. The
common memory, a virtual intertask communication philosophy adopted is that the programmer must enforce
medium had to be created so that tasks would the rule that each time frame will have only one writer
communicate to one another using messages to maintain (the owner) but may have many readers.
the assumption that each task had its own processor. A
novel approach taken to intertask communication was to To provide for distributed blackboards, any time frame
use a distributed blackboard that stores a defined set of name consists of four parts: system id, group id, owner
state messages slots called time frames. When one or name and variable name. This allows a blackboard
more tasks subscribe to a time frame, an instance of that manager to service remote subscriptions from managers
time frame is created on the blackboard. Any number of residing on other computers. Using this naming
tasks may subscribe to any number of time frames. structure, active data redundancy schemes can be
Subscription reverses the conventional philosophy that developed easily, since only the compound time frame
the sender determines the receivers i.e. whether it is name must be unique e.g. two identical time frames will
one-to-one, multi-cast or broadcast. Instead, the differ only in the system id or group id.
receivers decide whether they wish to read a state
message. Therefore, broadcast and multi-cast are Each time frame contains a start and end validity time.
automatic consequences of the number of tasks that These two validity times determine the time window
decide to subscribe to a particular time frame. during which the contents of the frame or state message
are valid, hence the name 'time frame'. Outdated
To subscribe to a time frame, a task first declares a state messages are overwritten by new messages. The
variable. This makes provision for a local variable and its programmer must decide whether to wait until a state
pointer to a time frame (see figure 5) The task then message becomes time invalid before overwriting it with
subscribes to the time frame through a function call. a new one or to overwrite immediately. The concept of a
Messages are sent by unloading the contents of the local message queue at the receiver does not exist. The writer
variable into the time frame. Correspondingly, messages task must implement a queue if one is required or spawn
are received by loading the time frame into local a task for queue control.
TF POINTER TF POINTER
STATE VARIABLE STATE VARIABLE
LOCAL VARIABLE LOCAL VARIABLE
TASK 1 • •• TASKn
of some of the space at the top of the stack. To allow one of the bins before another one is allowed to cross
the system executive to emulate floating point the light beam.
operations, under the Turbo C compiler, the top 256
bytes of the original program stack must be copied to An alternative is to use two light beams to determine the
the top of each stack that is subsequently created. size of the box. If both beams are broken, the box is
large, otherwise the box is small. Although this means
that the determination of the size of the box is now
AN EXAMPLE USING THE SYSTEM EXECUTIVE independent of the speed of the conveyor, the flexibility
of the system is lost. The light beams must be physically
The example chosen is similar to the one proposed by repositioned if the sizing criteria is changed.
Kopetz [15] to illustrate the concepts of distributed real Furthermore, such a system can at most differentiate
time computer control. The example uses real-time between two sizes. By using a single light beam and
intertask communication primitives which are keeping the conveyor speed constant, the exact size of
summarized in Appendix B. These primitives facilitate : any box can be determined because it is directly
•The subscription to a state message (time frame). proportional to the time during which the light beam is
•The input and output of time-valid messages within a broken. The system can be made more robust and
task. reliable by employing an extra light beam for
•Taking alternative action when a timeout occurs due redundancy and by monitoring the conveyor speed. The
to the non-receipt of messages. modular approach and loose coupling between the tasks
•The addition of conditional filters to message input. facilitate such enhancements.
•Performing periodic actions.
•Delaying task execution for specified intervals. An examination of the problem reveals that the two
critical components to control the sorting system are the
Description of the problem light beam and the lever. Each component is represented
A conveyor transports boxes to two collection bins. by a control task. We assume that suitable device drivers
Boxes are sorted according to two sizes, namely, small are available to interface to the light beam and the lever.
and large. A light beam determines that size of the box by The light beam device driver reads the photocell and
the length of time the beam is broken by the box. If a sends a message every second when the beam is
small box is detected, a lever is activated to reroute the interrupted. The lever device driver reads a message
box to bin 2. If a large box is detected, the box is allowed indicating a the desired position and instructs the
to continue to the end of the conveyor where it is physical device to change position. Note that the
deposited in bin 1. A diagram of the problem is shown in appropriate device drivers could be embedded into the
figure 6. light beam and lever control tasks. However, by
separating them from the control tasks, the system can
To keep the example simple, we will make the following be transparently interfaced to a physical system or a
assumptions. The conveyor speed is essentially constant. simulated environment as shown in figure 7. This
Any variation in speed will not be sufficient to cause the example uses the operator and display tasks to simulate
light beam to misinterpret the size of the box. If the the physical system. The following sections describe the
conveyor stops, the box in transit must be manually control tasks. Source listings are included in Appendix C.
cleared from the system. A box must be deposited into
SMALL
BIN BOXES
2
n
. / CLOSE
BOX l BIN
^, . CONVEYOR 1
n I OPEN l^rge
LIGHT BEAM
LJ LEVER BOXES
u input(interrupt beam)
yes MSG EXISTS no perform {
11 & TIME-VALID? 11 box size = small;
wait(2);
WAIT 2 SEC TIMEOUT? yes input(interrupt beam)
1 perform
yes MSG EXISTS no no box size = large;
U & TIME-VALID? 11 11 11 with validity(5)
output(box size);
| box = large box = small | box = none wait (5);
}
U
OUTPUT OUTPUT on timeout(timer1, 1)
MESSAGE MESSAGE perform {
box size = none;
with validity(1)
r CONTINUE output(box size);
l }
Figure 9 Logic diagram and source code corresponding to the light beam control task
u
yes VALID MSG & no input(box size) filter (box size = = small)
U box size = = small? 11 perform {
lever position = close;
yes VALID MSG & no with validity(1)
II box size = = large? U output(lever position);
}
lever position lever position
= close = open
or (box size) filter (box size = = large)
OUTPUT OUTPUT perform {
MESSAGE MESSAGE lever position = open;
with validity(1)
output(lever position);
CONTINUE }
U
Figure 10 Logic diagram and source code for lever control task
11
yes MESSAGE EXISTS no input(stop system) perform
U AND TIME-VALID? 11 x terminatef);
TERMINATE CONTINUE
Figure 11 Logic diagram and corresponding source code for system termination
62 THE TRANSACTIONS OF THE SA INSTITUTE OF ELECTRICAL ENGINEERS March 1991
[12] Turbo C 2.0 - Reference Guide, Borland IANMacLEOD received his B.Sc (Eng) and Ph.D degrees
International, 1988. from the University of the Witwatersrand in 1973 and
[13] Turbo C 2.0 - User's Guide, Borland International, 1983 respectively. He is Fuchs Professor of Control
1988. Engineering in the Department of Electrical Engineering
[14] Letwin, G. : Inside OS/2, Microsoft Press, 1988. and has teaching and research interests in the fields of
[15] Kopetz, H., Lohnert, F., Merker, W. and Pauthner, digital control, distributed computer control systems,
G. : A message based DCCS, IFAC Distributed real-time programming and engineering applications of
Computer Control Systems Workshop, Sabi-Sabi artificial intelligence.
South Africa, 1983, pp. 59-70.
[16] Mirecki, T. : Tech notebook, PC Tech Journal,
August 1988, pp. 137-138. AUTHORS
APPENDIX A A SUMMARY OF THE MAJOR FUNCTIONS AND DATA STRUCTURES AVAILABLE IN X.LIB
This summary shows the main data structures and functions available to X.Lib user. The various options, constants,
defines etc. are found in the header files supplied with X.Lib. The puipose of this summary is to illustrate the typical data
structures and functions required to support a system executive. The #define directive in C has been liberally used to
increase the readability of the source code. This can be considered a form of syntactic sugar.
TASK FUNCTIONS
voidxjnitializesystem(void);
XTCBPTR x_thread(void (*^uncf/o/?)(void), BYTE *description, UWORD stacksize,
UWORD maxTimeFrame, BYTE *commandLine);
voidx_yield(void);
voidx_terminate(void);
voidx_create_window_name(BYTE *windowName, BYTE *prefix);
voidx_create_task_name(BYTE *uniqueName, BYTE *prefix);
voidx initialize user(void);
MENU FUNCTIONS
WORDx_create_menu(WORD height, WORD width, BYTE borderAttribute, BYTE textAttribute,
BYTE*header, BYTE **stringArray, WORD numOfltems, X_MENU_PTR menuPointer);
voidx_remove_menu(void);
voidx_destroy_menu(X_MENU_PTR menuPointer);
WORDx_pulldown_menu(X_MENU_PTR menuPointer, WORD row, WORD column);
WORDx_popup_menu(X_MENU_PTR menuPointer, WORD row, WORD column);
INPUT/OUTPUT FUNCTIONS
voidx_clear_row(WORD row, WORD startColumn);
voidx_write(WORD row, WORD column , BYTE attribute, BYTE *sthng);
voidx_write_char(WORD row, WORD column, BYTE attribute, BYTE character);
voidx_writef(WORD row, WORD column, BYTE attribute, BYTE *formatString,...);
voidx_printf(BYTE *formatString,...);
voidx_write_vertical(WORD row, WORD column, BYTE attribute, BYTE *string);
voidx_read(BYTE *string);
voidx_read_noecho(BYTE *string);
BYTEx_read_char(void);
BYTEx_get_char_echo(void);
BYTExgetchar(void);
BYTEx_get_special_char(void);
WORDx_get_keyscan(void);
BYTEx_keypressed(void);
voidxwaitforkeypress(void);
WORDxgetkey^void);
WORDx_pushback_keyscan(X_KEYSCAN key);
voidx_row_column(WORD row, WORD column);
voidx_cursor_on(void);
voidxcursoroff(void);
66THE TRANSACTIONS OF THE SA INSTITUTE OF ELECTRICAL ENGINEERSMarch 1991
DEFINITION STATEMENTS:
state_variable(variab/eType, variableName)
NAMING STATEMENTS:
set_path(sysfem/d, groupld, ownerld)
set_system (systemld)
set_grou p (groupld)
setowner (ownerld)
OUTPUT STATEMENTS:
with_validity_interval(sfartVa//y/<yr/me, endValidityTime)
output (variableName);
withvalidity^du/af/on)
output(var/ab/eName)
INPUT STATEMENTS:
input (variableName 1) and (variableNameZ) filter (logicalExpression)
perform
program statement block
or (variableNameS) and (variableName4) filter (logicalExpression)
perform
program statement block
on_timeout(f/mer, timeDelay)
perform
program statement block
with_validity(1)
box.c output(boxsize); /* msg every 1 sec */
#include "x.h"
#include "xtime.h" input(stop_system) perform
xjerminate();
#define none x end
#define small
#define large
#define open X_TASK leverfvoid)
#deflne close {
state_variable(WORD, boxsize);
void main(void); statevariable (WORD, leverposition);
XTASK light_beam(void); state_variable(WORD, stop_system);
XTASK lever(void);
XTASK operator(void); initialize Jilackboard;
X_TASK display(void); initializejime;
reset Jimer(timer1);
X_TASK display(void)
while (1) {
xbegin timej timerJ;
input(interrupt_beam) perform { timet timer_2;
box_size = small; /* default is small */ timet timer_3;
wait (2); timet timer_4;
WORD count = 0;
input(interrupt_beam) perform state j/ariable (WORD, boxsize);
box_size = large; state_variable(WORD, lever_position);
with_validity(5) state_variable(WORD, stopsystem);
output (box_size); state_variable(WORD, interruptbeam);
reset_timer(timer_2);
reset_ti mer (ti mer_3); x end
reset_timer(timer_4);
Initial investigation into the application of neural A full mathematical derivation of the back propagation
networks in engineering reveals that the back (BP) algorithm can be found in [2,3]. We proceed to
propagation algorithm can be used for symbolic-numeric outline the basic algorithm below. The BP algorithm is
mapping and for pattern sequencing. We describe the essentially one of error minimization through gradient
implementation of the algorithm in a distributed real descent. Given a set of input patterns, the errors between
time test-bed called ADROIT. Some major features of the each pair of desired and actual output patterns can be
system include the ability to accommodate several neural computed. The weights connecting the layers in the
networks executing concurrently, the flexible neural network are adjusted to minimize the sum of the
interconnection of neural inputs and outputs and the squares of these errors. The weights are altered
imposition of temporal constraints through validity iteratively until the network converges to a predefined
times. minimum error.
u
A y \ T
P y f-1
transformation and pattern sequencing using multiple
u 2 V7v AAA y " \ r Y2 p
interconnected neural networks. It is important to note t ^\ AAA ^ : U
that we are not prescribing neural networks as the only y T
or even the best means for such activities. However, we
believe the experiments show that neural networks may
be instrumental in coupling symbolic and numerical
s l_
^_y
Layer 1
v_^
Layer 2
K
\
^
Layer p
J n
Our experience has shown that these limitations are less Figure 2 The ADROIT architecture.
relevant provided we follow several maxims. The number
of input and output units should be kept in the order of
10s rather than 100s or 1000s. For large systems, network the basic architecture of neural networks operating
partitioning is useful for keeping the individual networks under ADROIT.
computationally manageable. Continuous pattern
adaptation can often be avoided by ensuring that a full •Several neural networks can run concurrently.
set of training patterns exists at the time of training. By •Once a neural network has been taught, ADROIT
careful selection of initial ranges of random weights and can create multiple instances of the network
the use of a momentum term as suggested by McClelland dynamically.
and Ruinelhart [3], local minima do not present serious •Neural outputs of each network can be mapped
problems. dynamically to the neural inputs of other networks
or to the inputs of the same network.
Note that the scaling problem associated with the BP •The signals for neural input can be generated
algorithm applies only to the training phase. When an continuously by simulators or other applications
input pattern is presented to a trained network, an that run concurrently with the neural networks.
output pattern is generated by propagating the •The inputs and outputs of all the neural networks
activations of the layers starting from the input layer. are subject to real-time constraints as well as start
There is no iteration or convergence involved. and end validity times. For example, a pattern
sequencer can be constrained to change its output
Many neural networks, such as those based on the BP patterns once per second.
algorithm, have an important property that makes them
highly suited to real-time applications. Since patterns are
evoked and not searched, as is often the case in most A NUMERIC-SYMBOLIC CONVERTER
artificial intelligence paradigms, the time required to
recognize and match an input pattern to an output One of the most important tasks in sensor interpretation
pattern is independent of number of patterns stored. is the qualitative mapping of numeric values into
This, in turn, implies that the response of a trained symbolic ones. For example, the level of a tank can be
neural network is predictable and deterministic. interpreted in terms of qualitative values such as low,
normal and high. A neural network can be taught to
map specific numerical values into separate symbolic
IMPLEMENTATION states. Thus a set of values for a single input can be
mapped into a set of discrete states as shown in figure 3.
The back propagation algorithm is incorporated as pan For example, the set {0.2, 0.5, 0.8} can be mapped into
of ADROIT, a distributed real-time object-oriented the set of output states {Si, S2, S3} which corresponds to
intelligent test-bed [7,8]. Consequently, it inherits many low (L), normal (N) and high (H). An interesting
of the features of the test-bed which we enumerate outcome of this learning procedure is the ability of the
below. Currently, ADROIT has been implemented under neural network to extrapolate values that have not been
the PC-DOS and OS/2 operating systems. Figure 2 shows learnt. As the input moves away from 0.2, the output
March 1991 THE TRANSACTIONS OF THE SA INSTITUTE OF ELECTRICAL ENGINEERS 71
A MULTI-BIT ADDER
level of 57 decreases from 1 to 0. At the same time the
output level for S2 increases from 0 to 1. An input of 0.3 A neural network was trained as a full binary adder. The
results in a partial activation of both SI (0.5) and S2 (0.6) input bits consisted of two input data bits and a carry-in
indicating a partial membership to both the low and bit. The output bits consisted of one data output bit and
normal states. This is analogous to the notion of a carry-out bit. After training, a multi-bit adder could be
membership in fuzzy logic. While the states themselves configured in ADROIT by creating multiple instances of
are discrete, the transition is essentially continuous due the neural network. The carry-out bit of each adder
to the partial membership. Under ADROIT, it is possible serves as the carry-in bit of the next adder and so on.
to train an arbitrary number of neural networks to Figure 5 shows the organization of the multi-bit adder.
perform numeric-symbolic conversion for several real- By instantiating the network 16 times, a 16-bit adder can
valued (analogue) inputs. The outputs of the converters be created, namely, it allows two numbers, each with a
can be used as inputs to higher level networks or word length of 16 bits to be added together to give a 16-
intelligent symbolic manipulators such as expert systems. bit result with an additional carry flag. While such a
system is of limited practical value since hardware bit
adders are commercially available, it does illustrate two
A SYMBOLIC-NUMERIC CONVERTER of ADROIT's capabilities, namely, multiple instantiation
of neural networks and the dynamic mapping of I/O
When controlling any automation system, such as a through the global shared name-space. Teaching a
process control plant, it is invariably necessary to set neural network in this exercise is analogous to
parameters and variables to desired setpoints based on programming a programmable logic array, except that
some decision-making process. This can be viewed as a the neural network can be reprogrammed for different
conversion of symbolic results to numeric values. Figure mappings.
4 shows the neural network to achieve this. Based on the
input states, a real-valued output can be produced. The
error output signal is used to teach the system which A PATTERN SEQUENCER
combinations of input states are inadmissible. This
prevents the neural network from generating an By mapping the outputs of a neural network to the
inputs dynamically, a pattern sequencer can be created
(refer to figure 6). During learning, the set of training
EXAMPLE
data is constructed so that every output pattern of a
Input Output
particular training pair is also the input pattern of
sss RV ERROR another training pair. When the neural network is run,
123
LMH
1 00 0.1 0
REAL 0 1 0 0.6 0 0 Cn-1 carry bit C1 ^arry bit CO
Symbolic-Numeric VALUE 001 0.8 0 t *l If t I f t
Converter ERROR 000 0.0 1 Neural Neural Neural
STATE N 1 1 0 0.0 1
Network I| Network 1 Network
101 0.0 1
t ? Lud t t
|An-1
111 0.0 1 Bn-1 carry bit A1 B1 carry bit AO BO 0
TRAINING PATTERNS
A + B = C WORD LENGTH OF n BITS
—
[1] Lun, V. and MacLeod, I.M. : The challenge of
Pattern - PATTERN 0 - PATTERN 1
h
intelligent computing, Trans, of the South African
Sequencer
f- PATTERN 1 - PATTERN 2
PATTERN 2 - PATTERN 3
Institute of Electrical Engineers, vol. 81, no. 2, June
POWE
The conversion of wind energy into electricity on a large
MAX
scale raises the problem of energy storage. Although POWER
work is in progress on various other storage systems [19],
the electrical supply grid is a convenient absorber of
electricity generated from wind on a large scale, provided
the capacity of the wind generation equipment is still
small in relation to the total generating capacity coupled
to the supply grid. Coupling the wind generating equip
ment to the supply grid at constant frequency, immedi
ately raises the problem of converting the power at
variable wind speeds found in practice. It has been shown
by investigations in the past that for constant speed con
stant frequency systems (CSCF-systems) the energy cap Fig 1-.Power available from wind with VSCF/CSCF
ture capability per year is smaller than for variable speed
systems
constant frequency systems (VSCF-systems), see Fig 1.
In CSCF-systems the electromechanical energy conver In this paper this system is compared to other pos
sion is done by means of some type of synchronous sibilities, and then the investigations, conducted both in
generator, so that variation in wind speed conditions has the laboratory and on a practical wind tower system are
to be accommodated by pitch control of the wind turbine described. The experimental results of these investiga
itself, referring the primary power flow control function tions are evaluated and discussed.
to the mechanical side of the system. In VSCF-systems
the wind turbine operates at variable speed, and when
74 THE TRANSACTIONS OF THE SA INSTITUTE OF ELECTRICAL ENGINEERS March 1991
CONVERTER SYSTEMS FOR VARIABLE teristics have been discussed in detail previously [6] and
it has been pointed out that when the system is rated in
SPEED CONSTANT FREQUENCY such a way that maximum power operation (Fig 1) cor
OPERATION responds to rated torque at twice synchronous speed, the
power electronic sub-system will be rated at 50% of that
necessary for the synchronous generator system in the
As indicated in Fig 2, four possibilities maybe considered same application [6,14,15]. This would then indicate that
to operate over a wide speed range for conversion of wind the electronic Scherbius system can be installed at an
energy and supply to the power grid. In all systems the appreciable saving in capital investment. The subsequent
selection criteria to be applied should be: work described has been directed at a scale model
evaluation of this system concept in order to appreciate
(i) Reliability and maintenance
the advantages and difficulties the application of this
(ii) Minimum number of components and cost system might involve.
laboratory, and a similar generator installed on a practi In view of the rather stringent assumptions, this propor
cal wind tower. The wind turbine simulator would enable tionality was carefully checked for the present system,
the laboratory system to be operated under conditions and found to hold accurately between 1600 r/m and 3000
that duplicate reliably the practical operation, as the wind r/m, twice the 50 Hz synchronous speed [6,8,15]. As will
tower experiment is instrumented in such a way that these be discussed subsequently, this enables simplification in
conditions would be known. the maximum power controller to be obtained, since the
dc link current have to be measured in any case as input
to the current-loop of the supply commutated inverter
Laboratory Wind Converter System [16,18].
KT = — sin(7r/mb) (2)
ws
and is independent of the operating conditions of the (b)
generator or it's circuit parameters. Fig 4: The turbine simulator
76 THE TRANSACTIONS OF THE SA INSTITUTE OF ELECTRICAL ENGINEERS March 1991
Figure 4(a) shows a schematic diagram of the simulating total eight data channels from the wind tower facility are
facility, while Fig 4(b) shows a photograph of the facility captured and sequentially sampled at a rate of 8,8 kHz,
in the laboratory. A schematic arrangement of the tur in the multiplex unit. It is transmitted over a few hundred
bine simulating facility may also be seen in the left-hand meters to the laboratory, processed and stored, with hard
part of Fig 3. The field of the DC machine is controlled copy facilities available if needed. The system stores
via a half-controlled thyristor bridge while the armature some 10 hours of preprocessed data of the tower per
of the dc machine is controlled via a fully-controlled magnetic cassette.
thyristor bridge. These control functions are done in
such a way that wind speed variations are modelled by
armature current (due to the smaller time constant of the
armature circuit for fast wind speed variations) and the
field current is controlled to obey the same functions of
speed as the wind turbine that is being modelled. As the
mechanical inertia of the wind turbine system comes into
play when the system changes its operating point along
the torque-speed curve, the long field time constant does
not present a difficulty. To obtain the correct program
mable characteristics, two function generators control
the dc machine in such a way that the simulated wind
turbine torque is given by:
Tt = Km.T(Qt,
(3)
The input function to the field current controller, is given
as the tip-speed-ratio Ap, (Ap = Qt/Vw), following the
power coefficient Cp curve of the chosen wind turbine.
As shown in Fig 4, the function generators are
preprogrammed, so that the necessary characteristics for
every wind turbine to be simulated, correspond to that
which is to be tested on the wind tower facility. The
function generator for the torque-speed relationship via
the field current of the dc machine also takes the wind
speed control for the armature into account, in order to
produce the correct relationship as shown in Fig 4. The
wind speed generation WSG may be derived from any (a)
type of signal generator
As may also be seen from the Fig 5(a), the wind turbine
is passively direction controlled, while the wind vane
shown, brings in a hydraulically operated disc brake at (b) MASS MEMORY
excessive wind speeds to protect the system. Fig 5(b) AND HARD COPY
indicates the instrumentation and data capture as Fig5: (a) Wind tower (b) Instrumentation on wind
sociated with the tower facility. Wind speed and wind
tower
direction are measured on two sides of the tower, and
generator speed and direction are also monitored. In
March 1991 THE TRANSACTIONS OF THE SA INSTITUTE OF ELECTRICAL ENGINEERS 77
/READ
/FROM Tml nm GRAPH OF TORQUE AND POWER V/S
/AD1.AD2 GENERATOR SPEED
CALCULATE
Pml=Tml-fim, 2 gf
INCREASE nml
BY AC j
READ
P— P
ml ~ rm!
CALCULATE
COMPARE
Pml AND Pm2 17 IS 19 29 21 22 23 24 26 27 29
SPEED * 100 r/ir.)
INCREMENT
(1 WITH A0 Fig 7: Operation of the MPPT controller
(b)
Fig 6:(a) MPPT power controller (b) MPPT algorithm
78 THE TRANSACTIONS OF THE SA INSTITUTE OF ELECTRICAL ENGINEERS March 1991
SELECTED EXPERIMENTAL RESULTS speed and torque as stored in EPROM, shown in Fig
8(b), can also be seen in the actual turbine simulator
armature current (proportional to torque at constant
field current) in response to linearly increasing wind
speed. The simulation of the wind turbine characteristics
Vn: 100 V/div are shown in Fig 8(c) with a linear variation of generator
speed at a constant wind speed.
In: 5A/div
The data from the experimental tower in Fig9(a), (b), (c)
t: 5 ms/div indicate that the passive direction control is only partly
successful. Although it will not be analyzed further here,
other results in the same series have shown that this is a
Qm: 1900 r/m
definite problem area for further investigation. Although
the generator speed also appears to follow the wind
speed relatively well in Fig 9(d), (e) and (f), the captured
data has again illustrated that the interaction between
(a) directional control and maximal power control is too
complicated to be handled by a single adaptive maximal
power controller, and multi-level control should be im
plemented.
50
N -
| 30 W
'-5 S
g
i ' E
0
50
el
(b) N
1 30
U-I ^5
a.
Iv: 0,2 A/div I
"i
* E
0 1 1 1 1 !
Ev: 2 V/div N II
I 30
CD W
t: 0,5s/div CD
5
Qt: 1600-3100 I' 01 E
r/m 0 i i i i i
0 5 2 3
time (mini
vw: Constant
a lot of attention should still be given to the efficiency of has been established that a multi-level MPPT controller
the induction machine and the necessity of the trans is necessary to operate successfully on this system. Large
former. The power factor of the system is also very low, wind speed variations can occur in practice, and this can
espesially at lower wind speeds, as shown in Fig 8 and 10. only be handled by a self-structuring adaptive controller.
The generator loads the supply network with reactive
power [12,13,14,15] and characteristic and non-charac
teristic distortion due to the stochastic variations in wind
speed [13]. This problem is not unique to the present
system, but common to all VSCF systems indicated in Fig
2. Normal compensation is not suited to this type of
distortion generation systems and future work have been
directed towards fast dynamic power compensation [13].
REFERENCES
11.Schoeman, JJ, JD van Wyk. A simplified maximal 19. De Goederen, AC. Geen groot wind turbinepark
power controller for terrestrial photovoltaic panel zonder passende opslagsysteem. De Ingenieur, Vol
arrays. Proceedings of IEEE Power Electronics 94, NO 2, pp 5-9, Jan 1982.
Specialist Conference, PESC-82, pp 361-367,1982.
This paper discusses the use of the body of revolution conditions and to reduce the mathematical difficulties.
moment method formulation to predict the radiation patterns Calculations based on these analyses are laborious, and the
of biconical antennas, and describes a novel and practical development of computer codes for one specific geometry is
feed point arrangement for fine-tuning the antenna reflection seldom warranted. On the other hand, the moment method
Biconical antenna, feeding mechanism, radiation pattern the method is general, the same computer code can be used
Biconical antennas [1] have been employed for many years traditional biconical geometry of Fig.l. Figs. 2(a) and 2(b)
in the microwave frequency range because of their compare measured and computed BOR radiation patterns
broadband characteristics. When designing such antennas for the antenna in Fig.l (0O = 6O, D=55mm). Fig.3 shows
one is concerned with minimising the input reflection computed patterns of a similar biconical antenna (0O = 6O',
coefficient and obtaining suitable radiation pattern D = 147mm) for increasing frequency. It is possible through
performance over the frequency band of interest. This paper such an exercise to determine the pattern bandwidth, outside
discusses the use of the body of revolution (BOR) moment which unacceptable "pattern breakup" occurs.
reflection coefficient. Impedance data for biconical antennas, derived mainly from
experimental studies, is available in some detail in [6] and
[1]. From these results it is known that the input impedance
RADIATION PATTERNS is reasonably constant over a wide frequency range for cone
The biconical antenna is one of the canonical boundary half angles 30 <_®o<J0. In practice the input impedance is
value problems of electromagnetic theory. The vast amount dependent on the cone spacing as well as th^ cone angle. At
of work published since Barrow et. al. [3] in 1939 has been microwave frequencies it is common practice to support the
summarised by Kraus [4] and Wait [5]. All these theoretical cones using a spacer and it is not possible when producing
treatments involve simplifying assumptions and biconicals in quantity to perform any fine-tuning by altering
the cone spacing. Since a fine-tuning capability is desirable
the feed-point geometry shown in Fig.l was devised. In this
Copyright c 1984 IEEE. Reprinted, with permission, way the antenna can be assembled with the foam spacer
from IEEE AP-S International Symposium Digest,
Boston, USA, June 1984, pp. 173-176. providing the best nominal spacing and the tuning slug (item
4 of Fig.l) adjusted to obtain the optimum reflection
coefficient over the whole frequency band. By using the
tuning mechanism a reflection coefficient of -20dB (VSWR
Submitted November 1989
Accepted August 1990 of 1.2:1) on a 50Q line was obtained in the 2 to 12 GHz
82 THE TRANSACTIONS OF THE SA INSTITUTE OF ELECTRICAL ENGINEERS March 1991
REFERENCES
AUTHORS
[1] H.Jasik, Antenna Engineering Handbook, McGraw-
Hill, New York, 1961. Prof DA McNamara
B.Sc.(Eng.)(Cape Town), M.Sc.(Eng.)(Ohio State Univ.),
[2] J.R.Mautz and R.F.Harrington, "Radiation and Ph.D.(Cape Town), SMIEEE, MSAIEE, Department of
scattering from bodies of revolution", Appl.Sci.Res., Electronic and Computer Engineering, University of
Vol.20, pp.405-435,1969. Pretoria, Pretoria, South Africa.
distance): Items#l are the spun cones. Item#3 fits through the blunted cone apex
and screws into nut Item#2. Item#4 (a threaded insert) screws into Item#3, and
screws down over the centre conductor of coaxial connector (Item#7). It provides
the tuning capability. Item#5 fits through blunted cone apex and screws into nut
Item#6. The central portion of Item#7 (connector) fits through Item #5
(unthreaded) and Item#6, and is then fixed to nut Item#6 which holds Item#5
in place.
March 1991 THE TRANSACTIONS OF THE SA INSTITUTE OF ELECTRICAL ENGINEERS 83
CQ
0*
Pi
270
270
Fig.3 Computed E-plane patterns for a biconical antenna (0O = 6O*, D = 147mm) for
increasing frequency. (Amplitude scale lOdB per division).
84 THE TRANSACTIONS OF THE SA INSTITUTE OF ELECTRICAL ENGINEERS March 1991
1 Introduction 2 Instrumentation
In the 1970's and early 1980's a considerable effort A special purpose instrument was built to make these
was expended in the development of techniques to as measurements. Partial discharge activity is detected
sess ageing effects in the insulation of high voltage ro using a parallel RLC resonant circuit. This is the
tating machines. In general the measurement of bulk standard ERA discharge detector input unit No.2
properties such as dielectric loss per cycle, tan-delta with a resonant frequency in the range 10 - 80 kHz
and capacitance change were the most useful pointers depending on the series capacitance used. The out
to the condition of the insulation [1], [2]. Despite the put of the resonant circuit is stored in a high speed
extensive use of partial discharge measurement at the memory for subsequent processing and analysis. The
terminals of the stator windings very little correlation instrument uses three identical channels and by con
was found with these measurements and the condition necting these channels, as shown in Figure 1, it is
of the insulation [2]. Bulk insulation properties will possible to distinguish between external noise, slot
change when there is widespread degradation of the discharges and overhang discharges. The principles
insulation system. Partial discharge activity would used to achieve this discrimination are similar to the
be expected to be identified with localized defects as pulse discrimination technique used by Black and his
well as general insulation deterioration. Bulk mea colleagues [5], [6], [7], [8] and Kurz [9].
surements, such as those mentioned above, will not The test circuit is illustrated in Figure 1. The over
be sensitive to a local defect until this defect reaches hang is separated from the rest of the insulation by
very major proportions. It has been found that typ making a conducting ring around each coil approxi
ical partial discharge activity in rotating machines mately lcm away from the core or corona shield if, one
March 1991 THE TRANSACTIONS OF THE SA INSTITUTE OF ELECTRICAL ENGINEERS 85
is present. These conducting rings are all connected 3.1 Observations Prior to Damage
together and form the low voltage side of the overhang
The observations are displayed in Figures 2 to 5. Fig
capacitance. Discharges in the overhang will termi
ures 2 and 3 show the total discharge per cycle and
nate on this connection rather than on the core. The
the peak discharge measured in the overhang while
core of the machine forms the low voltage connection
Figures 4 and 5 show the same parameters for the
for the slot capacitance.
slot. The total discharge per cycle was determined
by adding all the discharges recorded during one mea
JL „ JL surement period and dividing by the number of cycles
of the power frequency wave that occurred during the
e Det 1 Det 2
^overhang
Det 3
measurement period. The peak partial discharge was
the largest partial discharge recorded during the mea
surement period.
It is noteworthy that in a healthy winding the
peak partial discharge magnitude is roughly one or
der greater in the overhang than it is in the slot. The
Figure 1: Test circuit total discharge per cycle in the overhang is almost
two orders greater than that in the slot.
To conserve memory each partial discharge is spec
pCxlO3
ified in terms of its time of occurrence, polarity and
100 .. . _
the peak magnitude of the output of the resonant de
tector. This peak output is directly proportional to 80
^-j-—!-
- 11
the apparent charge present in the partial discharge
60
1
[10]-
Localization of discharge activity is achieved by 40
considering discharges detected in all three channels 1^ -
3 Measurements on a Stator 0 ¥ i i 1
0 1 2 3 4 5 6 7
A stator was equipped with five coils wound for a ser kV
Figure 3: Peak partial discharge in the overhang
vice voltage of 6,6 kV between phases. The coils were
equipped with a corona shield. In order to isolate dis
charges in the overhang of the winding, tinned cop pC
per wire strips were bound to each of the coil sides 1200
PC
1600 than that occurring in the healthy overhang.
1200
PC
120
800
400 4-
100
0
01234567
kV
Figure 5: Peak partial discharge in the slot 40 i-t
2.Eriksson A.J. "Insulation assessment of high 8.Black LA. "Noise suppression techniques in par
voltage motors". Electrical Engineer, June 1980. tial discharge measurement circuits". Proceed
ings of the 5th International Electrical Insulation
3.Jackson R.J., Wilson A. "Slot discharge activ
Conf. Brighton, May, 1986 pp. 214-219.
ity in air- cooled motors and generators". IEE
Proceedings V 129, Pt B, Number 3, 1982, pp 9.Kurz M., Stone G.C., Daeschel P., Gupta B.K.
159-167. "Fault anticipation for substation equipment".
IEEE Trans on Power Delivery, V PWRD-2, No
4.Sedding H.G., Bogg W.K. "The initiation me
3, 1987, pp 722-724.
chanics of slot and end winding discharges in
high voltage power electrical machines". Fifth 10.Kreuger F.H. "Discharge detection in high volt
International Conference on Dielectric materials age equipment". Heywood, 1964.
measurements and applications, IEE Conference
Publication 289, 1988, pp 27-30. 11.ERA Discharge Detector Mk III Manual. Robin
son Electronics, UK.
5.Black LA. "The pulse discrimination system for
partial discharge measurements under noisy con Authors:
ditions" . CIGRE Study Com. 15, Liege, Sept. S.A. Higgins
1981. Research Officer
Department of Electrical Engineering
6.Black I.A., Leung N.K. "The application of the
University of the Witwatersrand
pulse discrimination system to the measurement
of partial discharges in insulation under noisy
J.P. Reynders
conditions". IEEE Insulation Symp. Boston,
Chair Power Engineering
June, 1980.
Department of Electrical Engineering
University of the Witwatersrand.
GLASS
SIMULATED INSULATORS
n LAYER
DRY BAND —
The results are shown in figure 5, together Circuit model for polluted insulators
with theoretical predictions based on the
finite element program for various values of
arc radius. The circuit equation for the series
connection of the layer resistance and the arc
as shown in fiqure 1 is given by
From these curves it appears that a radius
between 5 and 10 mm seems appropriate. A value V = 10 xa/7l - F(L-xb)I/a (6)
of 10 mm was chosen. This value may appear
excessive, but should be regarded as an where xa: total arc length
equivalent radius to represent the extended xb: total dry band length
nature of the arc due to streamer effects as L : total insulator creepage laigth
well as the decrease of conductivity due to F(L-xb): layer resistance function
heating of the layer in the immediate vicinity a : surface conductivity
of the arc root.
This equation is solved numerically for I
Based on this radius and using finite with various values of a and xa. In the case
element analysis the layer resistance function of the cylinder, xa is made equal to , but in
curves for the various insulators can be the case of the long rod and the cap and pin
drawn as a function of layer length as insulators xa is made 75 per cent of xb to
shown in figure 6. The resistance function allow for the fact that the arc does not
F(L-xb) is related to the resistance R(L-xb) by follow the insulator contours exactly.
the following equation:
The results of the solution of the arc
R((L-xb) = F(L-xb)/a (5) circuit equation is presented in figure 7,
together with the following equation which is
based on the reignition criterion for AC arcs
(eq. 2):
CONCLUSION
a) Cylinder
The developed model gives reasonable values
of I-max for insulators with practical shapes.
The corresponding critical surface
conductivity values appear to be about 4 to
6 times the withstand salinity quoted for
clean fog tests [ 9 ] . Apart from the fact that
the withstand conductivity is of necessity
some orders of magnitude lower than the
critical value, a reason for the high
conductivities predicted in the case of the
long rod insulators, may be the excessive
voltage drops at the arc roots. The partial
arc model may be different from that assumed
here, in that fewer arcs may occur by
bridging some sheds. The occurrence of
multiple parallel arcs were investigated and
does not seem to affect the total current
characteristics to a large extent.
REFERENCES
1.Claverie, P.
b) Long rod insulotor Predetermination of the behaviour of
polluted insulators,
1970, IEEE Transactions PAS-101.
2.Rizk, F.
Mathematical models for pollution flashover
Electra,no 78,1981,pp 71-103.
3.Verma, P.
Highest Leakage current impulse as criterion
for the insulation performance of polluted
insulators
CIGRE 33-73 (WG 04) (6) IWD.
7.Swift D. A.
Flashover across the surface of an
electrolyte: arresting arc propagation. PROC.
IEE,1980, Vol 127 A, pp 553-564.
AUTHORS: '
Figure 7: Leakage and reignition current
curves for a) Cylinder, b) Long rod c) Cap Mr JP Holtzhausen and Mr LP du Toit
and pin insulators. Department of Electrical and Electronic
Engineering
University of Stellenbosch
Stellenbosch 7600.
THE TRANSACTIONS OF THE SA INSTITUTE OF ELECTRICAL ENGINEERS
THE TRANSACTIONS OF THE SOUTH AFRICAN INSTITUTE OF DIE HANDELINGE VAN DIE SUID-AFRIKAANSEINSTTTUUT VAN
ELECTRICAL ENGINEERS ELEKTRIESE INGENIEURS
All contributions are reviewed with the aid of appropriate review Alle bydraes word beoordeel deur gepaste beoordelaars. 'n Ef-
ers. A slightly simplified review procedure is used in the case of fens vereenvoudigde beoordelingsprosedure word gevolg vir teg
technical notes and correspondence, to minimise publication delay. niese notas en korrespondensie, ten einde vertragings in publikasie
No maximum length for a paper is prescribed; however, authors te vermy.
should keep in mind that a significant factor in the review of the Daar word geen maksimumlengte vir 'n referaat voorgeskryf nie,
manuscript will be its length relative to its content and clarity of maar outeurs moet egter in gedagte hou dat 'n betekenisvolle fak-
writing. tor by die beoordeling van die manuskrip sy lengte in verhouding
Authors may submit articles in either English or Afrikaans. Mem tot die inhoud en duidelike skryfstyl sal wees.
bership of the SAIEE is not required. Outeurs mag artikels in Engels of Afrikaans indien. Lidmaatskap
van die SAIEI is nie 'n vereiste nie.
Process for initial submission of manuscript
Submit six copies of your manuscript to the Secretary, South Prosedure vir die aanvanklike voorlegging van 'n manuskrip
African Institute of Electrical Engineers, PO Box 93541, Yeoville Stuur ses afdrukke van u manuskrip aan die Sekretaris, Suid-
2143, RSA. These copies will be used in the review process. Once Afrikaanse Instituut van Elektriese Ingenieurs, Posbus 93541,
accepted for publication, you will be notified of acceptance and Yeoville 2143, RSA. Die afdrukke word in die beoordelingsproses
of any alterations necessary. You will then be requested to prepare gebruik. Sodra die referaat aanvaar is vir publikasie sal u in kennis
and submit the final manuscript. gestel word dat dit aanvaar is, asook van enige veranderings wat
Initial manuscript should be on A4 paper and structured as nodig mag wees. U sal dan versoek word om 'n finale manuskrip
follows: voor te berei en voor te le.
•TITLE in capitals, not underlined. Die aanvanklike manuskrip moet op A4-papier wees en soos volg
•Author's name: First name(s) or initials, surname (without aca saamgestel wees:
demic title or preposition 'by'). •TITEL in blokletters, nie onderstreep nie.
•Abstract, in single spacing, not exceeding 20 lines. •Outeur se naam: Voorname of voorletters, van (sonder
•Text in l''2 spacing. akademiese titel of die voorsetsel 'deur').
•List of References (References to published literature should be •'n Uittreksel, in enkelspasiering, van hoogstens 20 reels.
cited in the text using Arabian numericals in square brackets and •Teks in 1''2 spasiering.
arranged in numerical order in the List of References). •Bronnelys (Verwysings na gepubliseerde werke moet aangedui
•Author's affiliation and postal address. word in die teks met Arabiese syfers in vierkantige hakies en
Footnotes, if unavoidable, should be typed in single spacing. numeries gelys word in die bronnelys).
•Outeur se affiliasie en posadres,
Format of the final manuscript Indien voetnotas onvermydelik is, moet hulle in enkelspasiering
Final manuscripts will be reproduced directly by a photographic getik word.
reduction process and must be typed on the A3 blanks supplied by
the Secretary. The Secretary will also provide you with instruc Formaat van die finale manuskrip
tions for preparation of the final manuscript and sample pages il Finale manuskripte sal regstreeks deur 'n fotografiese reduk-
lustrating the required format. sieproses gereproduseer word en moet op A3-velle wat deur die
Sekretaris verskaf word, getik word. Die Sekretafis sal u ook voor-
Additional copies sien van instruksies vir die voorbereiding van die finale manuskrip
Additional copies of the issue in which articles appear will be en voorbeeldbladsye om die vereiste formaat te illustreer.
provided free of charge to authors by the Secretary.
Addisionele eksemplare
Copyright Addisionele eksemplare van die uitgawe waarin die artikels ver-
Copyright in all contributions accepted for publications is vest skyn sal gratis deur die Sekretaris aan outeurs verskaf word.
ed in the SAIEE, from whom permission should be obtained for
the publication of whole or part of such material. Kopiereg
Die kopiereg vir alle bydraes wat aanvaar word vir publikasie word
voorbehou deur die SAIEI en toestemming moet van hulle verkry
word vir die publisering van sodanige materiaal of gedeeltes
daarvan.