You are on page 1of 94

VOL 82 1

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

Performance calculation for small DC motors with segmental permanent magnets.14


J.F. Gieras

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

Object-oriented design of control systems software35


R.I. Bricker

FORTRAN package renewal using object-centred design techniques43


A.D. Lipworth, A.J. Walker, H.J. Annegarn

A simple system executive for distributed real-time computing research52


V. Lun, I.M. MacLeod

The back propagation algorithm for information transformation and pattern sequencing69
V. Lun, I.M. MacLeod

TECHNICAL NOTES/TEGNIESE NOTAS

Experimental and simulation facility of a wind power converter, utilising an over-synchronous electronic
scherbius cascade73
J.H.R. Enslln, J.D. van Wyk

Some design considerations for biconical antennas81


D.A. McNamara, D.E. Baker, L. Botha

Enhanced diagnostic procedures for partial discharge measurements in rotating machines84


S.A. Higglns, J.P. Reynders

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

DIE HANDELINGE VAN DIE SUID-AFRIKAANSE INSTITUUT VAN ELEKTRIESE INGENIEURS


(GESTIG JUNIE 1909 - INGELYF DESEMBER 1909)
'n AMPTELIKE JOERNAAL VAN DIE INSTITUUT

President Immediate Past President/


E J Davison Pasuitgetrede President
R A Leigh
Vice-Presidents/Vise-Presidente
P R Rosen Hon Treasurer/Ere-Tesourier
D H Jacobson L H James
M A Crouch Secretary and Head Office/Sekretaris en Hoofkantoor
PO Box/Posbus 93541Tel: (Oil) 487-3003/4/5/6
YeovilleFax: (011) 487-3002
2143, RSATelegraphic address: FARAD

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

Aerospace/Lug- en Ruimtevaart High Voltage/Hoogspanning


E Kreindler, Technion-Israel Institute of Technology A J Eriksson, BBC Brown Boveri & Co, Baden
0Rubin, Kentron/University of Pretoria J P Reynders, University of the Witwatersrand
Biomedical Electrical Engineering/Biomediese Elektriese In- R Waters, University of Wales Institute of Science and Technology
genieurswese W Boeck, Technische Universitat Miinchen
G Jaros, University of Cape Town Instrumentation and Measurement/Instrumentasie en Meettegniek
D Kitney, Imperial College J O Gray, University of Salford
Circuits and Systems/Stroombane en Stelsels R Kitai, McMaster University
H J Carlin, Cornell University G Sommer, Council for Mineral Technology
H C Viljoen, Universiteit van Stellenbosch Power Conversion, Conditioning and Rotating Machines/
Components and Manufacturing Technology/Komponente en Drywingsomvorming en Roterende Masjiene
Vervaardigingstegniek R G Harley, University of Natal
P Meerholz, Barlows Electronic Holdings T A Lipo, University of Wisconsin
Computer Systems and Software/Rekenaarprogrammatuur H C Skudelny, Technische Hochschule Aachen
P F Elzer, Brown Boveri & Cie, A G Heidelberg J D van Wyk, Randse Afrikaanse Universiteit
A D Heher, AECI Process Computing (Pty) Ltd Power Generation, Transmission and Distribution/Kragopwekking,
C H Hoogendoorn, Siemens-AG Miinchen Transmissie en Distribusie
T J Williams, Purdue University C B Cooper, UMIST, Manchester
Computing Devices and Systems/Rekenaartoerusting en Stelsels G R Marshall, Merz and McLellan (SA)
M G Hartley, UMIST, Manchester Propagation and Antennas/Voortplanning en Antennes
M G Rodd, University College of Swansea D C Baker, Universiteit van Pretoria
Control/Beheer Signal Processing and Information/Seinprosessering en Informasie
J O Flower, University of Exeter H C Ferreira, Randse Afrikaanse Universiteit
J J Kriiger, Randse Afrikaanse Universiteit R M Kahn, M/A-COM Linkabit Inc. San Diego
1M MacLeod, University of the Witwatersrand G J Kiihn, Universiteit van Pretoria
Electromagnetic Compatibility/Elektromagnetiese Versoenbaarheid Solid State Circuits and Technology/Vastestofstroombane en
B A Austin, University of Liverpool Tegnologie
J J Whalen, State University of New York T C Verster, Wetenskaplike en Nywerheidnavorsingsraad
Electron Devices and Systems/Elektroniese Elemente en Stelsels H L Hartnagel, Technische Hochschule Darmstadt
C K Campbell, McMaster University Telecommunications and Systems/Telekommunikasie en Stelsels
K F Poole, University of Natal W A Brading, STC (SA) Limited
W M Portnoy, Texas Tech University J H Cloete, Universiteit van Stellenbosch
JAG Malherbe, Universiteit van Pretoria
G L Matthaei, University of California

Consulting Editor/Raadgewende Redakteur Published by/Uitgegee deur Printed by/Gedruk deur


J P Reynders Phase 4 (Pty) Ltd Phase 4 (Pty) Ltd
9 Charles Crescent, Eastgate, Sandton 9 Charles Crescent,
P.O. Box 784279, Sandton. 2146, Tvl Eastgate. Sandton
Tel: (011) 804-1566 (444-4566 from 29 May)
Fax: (011) 804-1588 (444-7888 from 29 May)

This journal is partially subvented by Department of National Education.


The following organisations have listed The Transactions for abstraction purposes: INSPEC (The Institution of Electrical Engineers,
London); 'The Engineering Index' (Engineering Information Inc)

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

An S-Parameter Model for the


Design of Arrays of Inclined Strip Dipoles
Proximity Coupled to a Microstrip Feedline
J.H. Cloete and W.I. George

Abstract

The single lumped-element equivalent circuit model


fails for inclined strip dipoles near a microstrip feed-
line. A new three-port S-parameter model for the iso
lated inclined dipole is introduced. The new model
is accurate, but simple, and is used in an iterative (a) Plan view
design procedure for linear arrays of strip dipoles
which are proximity-coupled to a continuous mi
crostrip feedline. Previously available design meth
ods are extended by allowing the dipoles to be in
clined in the plane of the substrate. This gives flex
ibility regarding polarization. The design procedure Groundplane ^
is accurate if mutual coupling via guided mode scat (b) Side view
tering dominates coupling via radiation and surface
waves. The important case of 45 inclination angle Figure 1: A linear array of proximity-coupled strip
is investigated in some detail. Arrays using dipoles dipoles inclined at 45 to a continuous microstrip
parallel or perpendicular to the feedline can be de feed line.
signed as special cases of the method.

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

2 The Derived Three-Port S-


Parameter Model for Strip © ®

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

the reflected, transmitted and radiated waves are ob


tained from eqn.(l).
p - Axis

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,

Odd-symmetry can be used to halve the number


of S-parameters required on the right hand side of
Figure 3: Dipole positions and incident wave direc
eqns. (2)-(4). In Fig. 3 a wave, incident from Port
tions for the S-parameter symmetry arguments.
1 upon the dipole with its center displaced from the
reference point by p' in the positive p-direction, is
dipole's own radiation back through the same port. scattered in exactly the same way as a wave incident
The common assumption that the dipole radiates from Port 2 upon the same dipole displaced the same
into a reflectionless free space will be made. Port distance in the opposite direction. Thus
3 may also receive radiation and surface waves from
other dipoles in the array, and higher order guided - S22(-p)(5)
waves scattered by the other dipoles3. These waves,
= 5i2(-p')(6)
which cause the effect loosely referred to in the lit
erature as mutual coupling, are assumed to be neg = -532(-p')-(7)
ligible; thus a3 = 0. The validity of this assumption
is discussed in Section 3. The negative sign in front of 532 in eqn.(7) arises
The reflection coefficient, Sl, at Port 2 of a dipole because the reference polarization vector at Port 3 is

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.

scattering matrix: The general reciprocity relationship

61 " Sn 5l2 S^ip) = 52i(p),


62 S2i 522 (1) used with p = — p' and eqn.(6) yields the important
63 531 532
non-obvious result
The complex S-parameters have the conventional
definition and a2 = 5k62 and a3 — 0 were used.
The assumption a3 = 0 allows the third column of
Eqn. (8) can be used to check the accuracy of
the matrix to be eliminated. Note that while ex
the 52i data and to reduce errors. For example,
ternal reflections and mutual coupling are neglected
the dipole S-parameters discussed below were ob
(03 = 0), the model fully incorporates coupling be
tained by measurement and the data for S21 (+p')
tween dipoles due to multiple scattering of the dom
and 52i(—p') were improved by replacing both with
inant guided wave.
the geometric mean, (52i(+p')52i(-p'))1/'2, to sat
Explicit expressions for the relative amplitudes of
isfy eqn.(8) exactly.
3 Strictly each of these modes should be assigned separate S22,Si2, and 532 can be eliminated from eqns.
ports. For this inodel one port suffi ces. (2)-(4) by using eqns. (5)-(8), leaving three isolated
THE TRANSACTIONS OF THE SA INSTITUTE OF ELECTRICAL ENGINEERS March 1991

dipole scattering parameters to fully characterize the


inclined proximity-coupled dipole. For example:

3i(p') = S3i(p') - SLS31(-p')S21(P')/T,

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

ment follows from Fig. 6 as


Table 1: Interaction Between Two Inclined Dipoles
Separated by \g Cti 4lf nn /Ln _ n-l
^>L — a2/2 — sll (9)
Configuration Sn 521 522 The ratio of the complex amplitudes of the waves
Isolated Dipole 1; 0,37 0,79 0,35 radiated by the nth and (n — l)th dipoles in Fig. 7
Measured Z178 Z20 Z51 can be shown to be
Isolated Dipole 2; 0,45 0,57 0,42
Measured Z - 153 Z19 Z67
Dipoles 1 and 2; 0,59 0,44 No Data
These are the key equations in the following design
Measured Z - 150 Z27 No Data
method:
Dipoles 1 and 2; 0,55 0,44 0,52
From Model Z-1560 Z31 Z69 1.Choose the termination for the feedline. For ex
ample a short or open circuit for a resonant ar
ray, or a matched load for a travelling wave ar
ray.
n 2.Choose the distance, z^o, of the first dipole from
bJLZo n the termination. Compute the reflection coeffi
n n y
ELg •
n-l
n cient presented by the termination at Port 2 of
V- -J the dipole. Measurements suggest that the dom
inant coupling between the 45 inclined dipole
and the feedline is by magnetic fields. Thus for a
Figure 6: The equivalent load for the nth dipole.
standing wave antenna using such elements the
distance z^o should be multiples of \g/2 from
a short circuit termination, or odd multiples of
measured isolated dipole S-parameters with 03 = 0
A<,/4 from an open circuit termination, with \g
assumed for each dipole, i.e. no mutual coupling
the guide wavelength. This ensures that the
taken into account. The last two rows of Table 1
dipoles are located in the vicinity of standing
show good agreement between the results. There
fore mutual coupling, via radiated fields, higher or wave current maxima.

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

4.Choose the distance, z2l, between the second


4 The Array Design Proce
and first dipoles. For a broadside array this
dure distance can be chosen to be \g with all the
dipoles offset to the same side of the feedline, or
The inclined dipole array is modeled in Figs. 6 and 7. A<,/2 with the dipoles alternating, so that they
The nth dipole is characterized by its derived S- are all excited with their currents essentially in
parameters, s"1, s21, an^ S31 which were defined in phase. For typical microstrip substrates \g is
eqns. (2)-(4). For each dipole the design procedure usually suffi ciently shorter than the free space
yields the length, ln, and displacement, pn, required wavelength to prevent the formation of grating
to realize the specified radiating currents at the array lobes. Compute the reflection coeffi cient, Sj , at
center frequency. It does not ensure a specified input Port 2 of the second dipole using eqn. (9).
impedance, but a narrowband matching network at
5.Search for a couplet (h^P2) which satisfies
the input port will usually suffi ce.
eqn. (10) with suffi cient accuracy. There are
The feedline characteristic impedance, Zo, and numerous numerical procedures which could be
propagation constant, 7 = 0 + j[3, dipole width and used to find a solution. A simple, and reason
thickness, and the substrate and superstrate param ably effi cient, procedure starts with the value of
eters must be selected before starting the procedure. the first dipole couplet. Next the value of the
A suitable data base of S-parameters for a range of displacement P2 is varied incrementally over a
couplets (/,p), with I the dipole length and p the practical range, and the derived S-parameters
dipole displacement, must be available from mea obtained for each new couplet, either theoreti
surements or computation. cally or from an experimentally determined data
The reflection coeffi cient at Port 2 of the nth ele- base. If a solution to eqn. (10) is not found,
THE TRANSACTIONS OF THE SA INSTITUTE OF ELECTRICAL ENGINEERS March 1991

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

possibly due to build up of the reflected wave am


plitude caused by the \g spacing between elements.
This is a well known effect with broadside travelling
wave slotted waveguide arrays [10, p.475]. The short
circuit termination solution in Table 2 was one of the ~ - 10 — tneor
n
most insensitive and was used to design an experi w - 13 - •
mental antenna. D -a0
The experimental antenna is shown in Fig. 1. Its
measured and theoretical principal plane patterns a
E -30
are compared in Fig. 8. Good agreement was ob
tained regarding the beamwidth and maximum side-
lobe level. The discrepancies in the detailed sidelobe
structure are attributed to the following causes, in (aeg)
decreasing order of significance:
Figure 8: Comparison between measured and theo
Pattern measurement errors. The radiation pat
terns measurements were made in an indoor cham retical co-polarized patterns of the experimental ar
ray in the principal plane through the axis of the
ber. Care was taken to minimize reflections from
walls etc. by placing microwave absorber blocks, feedline at 3 GHz.

with 460mm pyramids, around the measurement


area to create an anechoic volume. However, insuffi 6 Conclusions
cient blocks (50) were available at the time and some
spurious reflections at the -20 dB level, relative to the The single impedance model can not be used for the
peak of the beam, are thought to have been present. design of sequentially fed dipole arrays, if the dipoles
are inclined to the feedline.
Ground plane edge diffraction. In computing the
theoretical pattern an infinite ground plane was as To solve the problem a new three-port S-parameter
model has been introduced. The model has been
sumed. It is well known that diffraction by the
ground plane edges can contribute significantly to shown to characterize the proximity-coupled inclined
dipole with good accuracy.
the sidelobe structure of small arrays, especially in
the wide angle and backlobe regions. The three-port model plays the central role in a
new design procedure which is simple to use and
Dipole thickness. The data base was built up us computationally quite effi cient. It enables the design
ing measured data for 0,5 mm thick dipoles, but the of antennas with arbitrary dipole inclination angles,
experimental antenna was constructed using 0,035 giving the designer freedom to comply with polariza
mm printed dipoles. This may have altered the ex tion specifications. The procedure is also applicable
citation coefficients, from the design values, by more to inclined slot antennas.
than expected. Mutual coupling, via radiated, surface, and higher
order guided waves, is not accounted for in the design
Mutual coupling. As mentioned, the design proce
procedure. However, by experiment it was shown
dure does not account for mutual coupling between
to be low for two dipoles separated by \g and lo
the dipoles by radiated, surface and higher order
cated at two adjacent standing wave current max
guided waves. However, according to the results
ima. It is important to note that Das and Pozar[4]
shown in Table 1 this form of mutual coupling is
also found mutual coupling to be low for standing
very small for the chosen structure.
wave microstrip dipole arrays, even with A^/2 spac
The antenna was not well matched at 3,000 GHz ing, but not for travelling wave arrays.
but, without, using an impedance matching network, In principle the requirement for negligible mu
it had a reflection coeffi cient minimum of -24 dB at tual coupling can be eliminated by starting the de
3,015 GHz. At this frequency the radiation pattern sign with 03 = 0, and then iterating with 03 non
was still good[12]. In fact, the radiation pattern zero. However, this will significantly complicate the
bandwidth was at least 40 MHz, centered at 3,000 method and should only be done if mutual coupling
GHz. The -10 dB reflection coefficient bandwidth is expected to influence the pattern in a significant
was 21 MHz, or 0,7 % of the center frequency. Thus way. Thus the decision on whether or not to account
the antenna is bandlimited by impedance, not radia for mutual coupling depends on the stringency of the
tion pattern. The agreement between the predicted pattern specifications, and the level of the coupling
and measured reflection coefficients was not good; phenomena. The recent work of Das and Pozar [4],
the discrepancy being attributed to the discontinu Yang et al. [5], and Jackson et al. [6] should be con
ity at the coaxial to microstrip transition. sulted for assistance in deciding on the importance
THE TRANSACTIONS OF THE SA INSTITUTE OF ELECTRICAL ENGINEERS March 1991

Table 2: Particulars of the Experimental Array

Short circuit termination ( Sl = -1)


Dipole /„ (mm) pn (mm) Ideal Actual % Error
excitation excitation
1 35,00 19 1,000/0 1,000/0 0
2 34,85 11 1,437/0 1,511/- 1,5 5,8
3 34,85 8 1,845/0 1,906/6,4 11,8
4 35,00 11 1,845/0 1,804/5,7 10,2
5 35,00 16 1,437/0 1,434/3,2 5,5
6 34,85 18 1,000/0 1,090/1,0 9,2

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

Specular Reflection of Plane Waves by a Planar


Conductor Coated with Lossy Layers
L.J. du Toit and J.H. Cloete

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.

Figure 1: A plane wave.


1 Introduction
The paper shows how to do this, and gives the
Many planar microwave absorbing structures [1] like theory needed to compute the specular reflection co
the Dallenbach layer, Salisbury screen, and the Jau- efficients for multi-layer lossy media as a function of
mann absorber consist of material layers, possibly frequency and incidence angle. Typical results, ob
separated by thin resistive sheets, backed by a highly tained from a code which implements the analytical
conducting plate. method, are also given.
Their analysis is based on the theory of plane wave Since any arbitrarily polarized wave can be de
propagation in lossy, stratified media in which the composed into two orthogonal polarizations it is only
angles of refraction, obtained from Snell's law, may
necessary to consider waves in two polarization cat
be complex. Because the planes of constant ampli egories. Here the TE and TM polarization conven
tude and phase of the waves generally do not co tions, as defined by Naqvi [3], will be used.
incide [2] they are known as inhomogeneous plane
waves.
The theory which describes the behaviour of in- 2 The inhomogeneous plane
homogeneous plane waves in lossy media is quite
simple. However, care must be taken when using it
wave
to obtain numerical data because the wave is char A plane wave travelling in the positive ^-direction,
acterized by complex quantities, obtained from the is shown in Figure 1. The complex time-dependence
square-roots of complex numbers involving the ma exp(+j'a^) is assumed but suppressed throughout the
terial constitutive parameters. Thus the wave pa
paper.
rameters are double valued functions and, to prevent The normalized field equations for TE polarization
physical nonsense from being computed, it is essen are [4, p.57]1
tial that the branch of each function is correctly cho
E = yEy = e
sen. (1)
*This paper was presented at the Second Joint Sympo H = (-
sium on Anteimas & Propagation and Microwave Theory &; (2)
Techniques held in August 1988. Submitted: September 1988. 1Our coordinate system differs from Harrington's by a
Accepted: February 1990 quarter turn rotation about the z-axis.
10 THE TRANSACTIONS OF THE SA INSTITUTE OF ELECTRICAL ENGINEERS March 1991

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

(4) ipp = arctan


k'c' - k"c
(8)
The angular frequency is w, the permittivity of
with the z-axis. If either k, or 9, or both are com
the medium is c, and the permeability is //. Fol
plex, the wave is attenuated while propagating. The
lowing common convention any finite conductivity is
vector normal to the resulting planes of constant am
lumped with the imaginary part of the permittiv plitude makes an angle with the z-axis of
ity [4, p.27]. For a particular isotropic2 material the
macroscopic constitutive parameters, e and ^, are -fc'V + k's"
frequency dependent complex scalars. Let
ipa = arctan
-k"c' - k'c"
(9)
e = e' - je",(5) For TM polarization the normalized magnetic field
is given by the right hand side of eqn. 1. The cor
H -\iI'll/O\
- jfi .(6) responding electric field can be looked up in Har
Then from the complex form of Poynting's theo rington [4, p.57] or found directly from the appro
rem [4, pp.22-26] it follows that the imaginary parts, priate Maxwell's equation. The two sets of fields are
e" and /z", must be non-negative at all frequencies mathematically dual. However, the restrictions on
for passive materials. For most materials encoun the values of k, rj, s'm 9, and cos 6 apply without any
tered in common engineering practice the real parts, modification to the TM case.
e' and //', are positive. Thus, although positivity is It is stressed that all the restrictions stated in this
not a physical requirement [4, p.48], [6, Chapter 6], Section are for the assumed exp(+jtot) time depen
it will be assumed in the following. This means that dence. Their complex conjugates apply if exp(— juit),
f and fi are restricted to the fourth quadrant of the which is often found in the literature [5], is used.

complex number plane.


The choice of sign at the two square root radicals
3 Semi-infinite media sepa
in eqns. 3 and 4 is based on energy conservation,
and direction of energy flow for waves propagating rated by a resistive sheet
in passive, lossy media. Consideration of eqn. 1 for
9 real shows that k must be in the fourth quadrant Next consider the fields at the boundary between two
of the complex plane to yield a wave which propa homogeneous media, shown in Figure 2. There may
gates in the positive ^-direction without amplifica be a thin resistive sheet at the boundary. As already
tion. Similarly, the real part of rj must be positive to mentioned any incident polarization can be decom
ensure that the direction of the time-average Poynt- posed into two spatially orthogonal components, and
ing vector coincides with the direction of energy flow. for most isotropic media the TE and TM decompo
These conditions are compatible with the restrictions sitions, shown in Figure 2, are mathematically con
placed on //. and e [4, pp.48-50]. venient 3. The resulting equations for the two cases
Solution of Maxwell's equations for the boundary have similar forms.
value problem arising from waves incident at oblique If an incident wave illuminates the boundary, en
angles on lossy media, or lossless media at greater ergy will be partially reflected, and partially trans
than the critical angle, requires 9 to be complex. mitted. Let A, B and C be the complex field ampli
Physical considerations, discussed in Section 3, re tudes of the various plane waves at the origin of the
strict sin 9 to the first quadrant of the complex plane. coordinate system. They correspond to the complex
The value of cos 9 follows from amplitudes of the electric field in the TE case and
the magnetic field in the TM case.
cos 9 = V f — sin i (7) The boundary conditions are [7], [8]

with the sign chosen to prevent amplification as the pi F. R1flOl


wave propagates towards infinity.
Let sin(? = s' + js" and k = k' - jk", with zx(H2-Hi) = 3S,(11)
s', s", k', k" all non-negative. Then expanding eqn. 1. with E(n the tangential electric field vector and Hn
shows that cos I^ = c' — jc", with c',c" both non- the total magnetic field vector on the surface of
negative, satisfies the exponential decay requirement.
3Exceptions do occur. Due to a third constitutive param
Anisotropic materials are characterized by tensors and are eter the wave equation for isotropic chiral media has left- and
not. considered. right-hand circularly polarized waves as eigensolutions.
March 1991 THE TRANSACTIONS OF THE SA INSTITUTE OF ELECTRICAL ENGINEERS

For TE polarization these are


TE : E = yEy
TM : H = yHy A + B = C,(15)

Acos0; B cos 0;
Ccos9t A B ,.
— _t_ _i_ ( 1 (S1
medium 1 medium 2 0i0i02R R'

and for TM polarization they are

B Ar/i cos0j — .B771 cos 0j- = Cr\2 cos 9t, (17)

A+^^=C+ Arfi
nR cos @i
'-Bni
nR cos 0;,
'. (18),

The solution for reflection and refraction by a


semi-infinite lossy medium, possibly covered by a re
sistive sheet, is summarized below.
Known: w; A; 0,-; e and /t in both media; sheet
resistivity R in units of ft per square. With no sheet
resistive sheet R [ ft/ square ]
R= 00.
Restrictions: Medium 1 is lossless, thus ei, fii,
ki and rji are real. The incidence angle 0,- is real and
Figure 2: Boundary between two layers, and defini
taken to lie between 0 and 90.
tion of TE and TM polarizations.
Unknown: B; C\ 9t.
Procedure: Execute the following steps.
medium n;n = 1,2. Js is the vector surface current 1Compute k\, k2, 0i and 02 using eqns. 3 and 4.
density flowing in the resistive sheet with resistivity 2Compute sin 8t from Snell's law, eqn. 13.
R in units of ft per square. 3Compute cos 8t from eqn. 7.
Use of these yields the laws of reflection and re 4Compute B and C from the appropriate pair of
fraction, Fresnel equations.

6i = er,(12)

^,; = k2 s'm (13) 4 Multiple layers backed by a


In general all the angles and wavenumbers can
conductor
be complex, associating them with inhomogeneous
Medium n in a layered structure has finite thickness
plane waves as discussed previously. However, for
and usually supports two waves, one propagating
most reflection problems of practical interest medium
away from medium n — 1 and the other towards it.
2 is illuminated by a plane wave incident at a real
Medium 1, which supports the incident wave, will be
angle from an essentially lossless medium 1, namely
air. Thus k\ sin 0,- non-negative4 and real will be assumed to be semi-infinite and lossless. Then Snell's
law, eqn. 13, with 9i real, requires that the product
assumed, to considerably simplify the mathematical
kn sin 9n be real in any layer n. For multiple layers
treatment.
the symbol 0n is used to represent the propagation
Then by using Snell's law, eqn. 13, the previously
angle in medium n. Thus the symbols introduced in
mentioned restriction of sin 0f to the first quadrant
the preceding Section also have the meaning 0,- = 0i
can be derived. Since by assumption the left hand
and 8% — 82.
side of eqn. 13 is always real it also follows that
At the interface between media n— 1 and n the field
amplitudes of the waves in medium n — 1 will be de
— fC9 S^ — U, (14) noted An_i and Bn_i, and Cn and Dn in medium n.
using the notation of Section 3. Then eqn. 9 yields Neglecting subscripts the nomenclature is as for Fig
<pa = 0 which means that attenuation only occurs ure 2 with the addition of a fourth wave, travelling
in the -\-z direction; thus amplitude wavefronts are in medium n towards medium n — 1, with complex
always parallel to the interface, irrespective of the amplitude Dn at the interface.
incidence angle. The last layer of finite thickness will be denoted
Lastly, the two Fresnel equations, which give B N. It may be followed by a semi-infinite penetrable
and C in terms of A^ can be derived from eqns. 10 medium5, denoted N + 1, which supports a single
and 11. wave of amplitude Cjv+i travelling away from the

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.

r\n-\ The ability of the theory to deal with oblique in


X3 = (22) cidence angles bandwidth is illustrated in Fig. 4 for
Vn
the same Jaumann absorber, where the specular re
Vn-l COS 0n flection coefficient is shown as a function of both fre
Xa =
Vn
(23) quency and incidence angle for TM polarization.
while for TM polarization

r]n cos 0n 6Conclusion


X) = 1 + (24)
Aspects of inhomogeneous plane wave propagation
Vn COS Un in lossy stratified media have been discussed. The
X'2 = 1 ~
Rn-l,n
(25) purpose was to present a theoretical method for pre
dicting specular reflection of plane waves, incident
l]n COS 9n
X3 = 7,= -Xa- (26) at oblique incidence angles, by a conducting plate
covered by multiple lossy layers. The method is rig
In these equations f?,n_in is the resistivity of the orously based on Maxwell's electromagnetic theory.
sheet between layers n — 1 and n. If there is no sheet A typical application is the numerical analysis of mi
Rn-\,n — o. The thickness of layer n is dn. The crowave absorbers to check the performance of a par
remaining symbols are self explanatory. ticular design.
Another is the design of optimal absorbers; the ex
6 In this paper it is assumed that the conductor is per
fect. The theory can easily be extended to deal with finite act synthesis problem for practical absorbers is usu
conductivity. ally mathematically intractable, leaving numerical
March 1991 THE TRANSACTIONS OF THE SA INSTITUTE OF ELECTRICAL ENGINEERS 13

optimization as the only feasible method to achieve


specified absorber performance versus frequency or
incidence angle. The theory described here is well
suited to incorporation in such methods because they
usually rely on repeated analysis, coupled with an al
gorithm which changes the relevant parameters until
an optimum solution is approximated.
The reverse matrix of Section 4 can also be used
to analyze the transmissivity and reflectivity of mi
crowave and optical windows. Typical examples of
such windows are antenna radomes, and infra-red or
visible wavelength filters.

References

[1] G.T. Ruck, D.E. Barrick, W.D. Stuart, C.K.


0 Krichbaum, Radar Cross Section Handbook,
f/fo [%] New York: Plenum Press, 1970, pp. 611-640.

[2] J.A. Stratton, Electromagnetic Theory, New


York: McGraw-Hill, 1941, pp. 490-524.
Figure 3: Reflection coefficient of a 5 sheet Jaumann
[3] S.S.H. Naqvi, "A Comment on the Use of
absorber versus normalized frequency for normal in
TE/TM Polarization Notation'', IEEE Trans.
cidence.
Antennas Propagat., vol. 38, no. 4, p. 584, Apr.
1990.

[4] R.F. Harrington, Time-Harmonic Electromag


netic Fields, New York: McGraw-Hill, 1961.

[5] J.A. Kong, Electromagnetic Wave Theory, New


York: John Wiley, 1986.

[6] R.W.P. King and G.S. Smith, Antennas in Mat


ter, Cambridge: MIT Press, 1981.
Kiai.r. r iioN [.nil
[7] T.B.A.Senior, "Combined Resistive and Con
ductive Sheets", IEEE Trans. Antennas Prop
agat., vol. AP-33, no. 5, May 1985, pp.577-579.

[8] R.L.Fante and M.T.McCormack, "Reflection


properties of the Salisbury screen", IEEE Trans.
Antennas Propagat., vol. 36, no. 10, October
1988, pp.1443-1454.

[9] R.E. Collin, Field Theory of Guided Waves,


New York: McGraw-Hill, 1960, pp. 79-94.

[10] L.J. du Toit and J.H. Cloete, "Advances in


the Design of Jaumann Absorbers", IEEE An
tenna and Propagation Society Symposium Di
gest, Dallas, Texas, USA, 1990, pp. 1212-1215.
Figure 4: Reflection coefficient of a 5 sheet Jaumann
absorber versus both frequency and incidence angle
for TM polarization. Authors

Leendert du Toit is a Ph.D. candidate, and John


Cloete a professor, in the Department of Electrical
and Electronic Engineering at the University of Stel-
lenbosch, Stellenbosch, 7600, South Africa.

Submitted October 1988


Accepted February 1990
14 THE TRANSACTIONS OF THE SA INSTITUTE OF ELECTRICAL ENGINEERS March 1991

Performance Calculation for Small DC Motors with


Segmental Permanent Magnets
Jacek F. Gieras

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)

Permanent-magnet dc motors are used


extensively in industry, automobiles Eqn (1) leads to the following well
(windshield wipers, drive blowers for known scalar formula
heaters, radiator fans, air conditioners,
mechanisms for raising and lowering p N
windows), office machine-drives, medical T = I (2)
equipment (drug-injection devices,
medium-speed dental drilling handpieces),
and home appliances (hand tools, lawn which expresses the developed torque of a
mowers, toys, dryers, tooth brushes, dc machine. The airgap magnetic flux per
record players, tape decks, etc.) pole is

The fundamental difference between ^ = a t B L (3)


permanent magnet motors and wound-pole g g
motors is in the behaviour of the magnetic
flux: the flux per pole is not adjustable For small permanent magnet motors
in permanet magnet motors. It means that = 0.55...0.70.
speed and torque must be controlled by the
armature circuit, and the performance of
permanent magnet motors is thus quite 5. MAGNETIC CIRCUIT
similar to that of shunt motors.
There Are three classes of permanent
Although there is a wealth of magnet materials used for dc motors:
literature dealing with permanent magnet Alnicos, ferrites, and rare-earth
dc motors, uncertainties and doubts still materials. Ferrite magnets (Fig. 1) Are
exist. Amongst others, the calculation of most economical in small dc motors. The
armature reaction and its influence on the first practical rare-earth permanent
operating point of a permanent magnet has magnets, sintered SmCO-, became available
not yet been clarified. about 1970 in the USA [3]. The Fe-Cr-Co
permanent magnet alloys were discovered in
Numerical methods Are fashionable, but Japan in early 1970s and offer magnetic
their accuracy and flexibility do not properties (Fig. 2) comparable to those of
always fulfil the demands of the industry. Alnico alloys [4]. Being ductile and
The main goal of this paper is to develop containing less cobalt, the Fe-Cr-Co
the classical methods of performance alloys may be considered as substitutes
calculation for permanent magnet dc for the high-cobalt and brittle Alnico
motors, to computerize their calculation magnets. Permanent magnets based on rAre
process and to clarify the location of the earth-iron-borides (prototype Nd,Fe. B)
permanent magnet operating point. were developed by US and Japanese
Attention is paid to the armature reaction investigators and announced in 1983 [3J.
and a new relationship for the cross MMF The Ga addition can improve the thermal
has been presented. stability and other magnetic properties
C5].

Theflux distribution in the cross


Submitted March 1990 sectionof a wound-pole dc machine and
Accepted March 1991 similarpermanent magnet machine is shown
in Fig.3.
March 1991 THE TRANSACTIONS OF THE SA INSTITUTE OF ELECTRICAL ENGINEERS

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

Fig.l. Demagnetization characteristics of


barium ferrite magnets manufactured
by Magnetfabrik Schramberg GmbH &
Co [2].

(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

Fig. 2. Demagnetization characteristics of -Hh = * / A -F (V)


the 7 % and 10.5 % Fe-Cr-Co mm g g a
isotropic alloys along with those
of Vicalloy and Cunife [4]. The "goodness" of a magnetic circuit
can be expressed with the aid of the
leakage factor

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

The useful magnetic flux density can


be find from eqns (9), i.e.:

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.

In fact, the permeances X and A ^arB


functions of magnetic permeability 4. OPERATING POINT
dependent on magnetic field intensity, so
that the lines (11), (13) and (14) show a The demagnetizationcurve for majority
slight saturation. of hard magneticmaterials can be
described analyticallywith the aid of the
The permeance Ag can be find on the equation of hyperbola
basis of the total MMF per pole pair
B (H - H)
B S L kg r c
urn C (18)
F == H - b H
p X L — L
g m

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)

A=H /cr +H/b-B /(b tan a ) (21)


K amax 1 c rt

and
H = F /h (22)
amax amax m

Fig. 4. Equivalent magnetic circuit of dc


permanent-magnet motor.
reaction is discussed in Appendix 2.
March 1991 THE TRANSACTIONS OF THE SA INSTITUTE OF ELECTRICAL ENGINEERS 17

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.

and The load curves of a dc motor Are


understood as plots of n, I, Pjn> pout
X p p S /h (25) and r) against the shaft torque T^^j. The
o c m rr calculations should be performed for
different developed torques T, e.g.
where Po p c i^ is the recoil magnetic starting with a very small value of T up
permeability. The recoil line (23) to a value corresponding to n = 0 (E ^
replaces a subsidiary B-H loop and is 0). It is recommended to start with the
approximately parallel to the top of the torque equal to the predicted rotational
demagnetization characteristic. The value losses Prot divided by the rated angular-
of p c = 1.0 ... 3.5 is given in catalogues speed 2nn. Assuming a magnetic flux ^l
of permanent magnets. ,say, equal to B S m, the armature current
I stems from the eqn (2), the generated
The recoil line (23) intersects the EMF E =V -IZRa-^^Vbr and the
demagnetization characteristic at the rotational speed n = E a /(p N $^)• For
point K (Fig. 5). The quantities H and the given current I, the MMF F- of
Bo Are usually unknown, so it is better to armature reaction determines the operating
bring eqn (23) into more convenient form point M (Fig. 5), airgap magnetic flux
density B a and magnetic flux ^•• IT
B =B +pp(H -H) (26) calculated ^ is different than assumed
m k o c m K ^g, the calculation should be repeated for
the new value of flux ^ „. Such an
For B K the recoil field iteration process must be continued as
intensity H „ = 0. Eqns (11) and (26) give long as the convergence between ^* and ^„
the coordinates Hm and B ^ of the operating is satisfactory. The brush drop voltage
point M (Fig. 5), e.g.: z^Vbr = 1.0 ... 2.5 V is dependent on the
material of brushes. The terminal voltage
B - p p H - H tan a /a V > E is assumed to be equal to the
K o c K a t 1 rated voltage.
H = - (27)
tan a M M The input power = V I and the
o c losses Z P (armature copper, brush-drop,
armature core, stray—load and rotational
A point P corresponding to the useful
magnetic flux density B the efficiency r) The shaft torque is
intersection point of the line (14) and a expressed as T = P / ( 2ttn ) .
perpendicular to the axis OH through the shf out
point -H (Fig. 5). An example of such a calculation has
m been made for a small dc motor driving an
The useful magnetic flux is automobile blower [6]. The design data is
specified in Table 1 and the magnetic
$ = B S (28) circuit is sketched in Fig.6 . The
g u m segmental permanent magnets have been made
of the anisotropic barium ferrite FX 280
while the airgap magnetic flux density B for which Hc= -245 kA, Br =_0.35 T, b =
stems from eqns (3) and (28).^ 0.1311, and p pc= 1.429x10 H/m. The
comparison between calculations and
The MMF of permanent magnet laboratory tests is shown in Fig. 7.

F = H h(29)
m mm

must counterbalance the MMF F (17) per


pole pair, and the MMF of armature
reaction F , i.e.:
a
F = F • F(30)
m p a
At no load, the MMF of armature
reaction F ~ 0 and the lines (11) and
(14) Are araised from the origin of
coordinate system (Fig. 5).

5. LOAD CURVES

If the dimensions ofmagnetic circuit


and winding parametersAre known, the Fig. 6. Flux distribution in 8-W two-pole
permeances ^^e, '^3^ andX • (Appendix 1) dc motor with segmental permanent
without saturation takeninto account and magnets.
18 THE TRANSACTIONS OF THE SA INSTITUTE OF ELECTRICAL ENGINEERS March 1991

Table 1. Design data of small dc permanent


magnet motor driving an
automobile blower

Rated power P = 8.0 W


out
Rated voltage V = 24.0 V

Number of poles2p = 2

Number of pairs of current pathsa = 1

Number of armature conductorsN = 112 0

Diameter of armature conductor0.22 mm

Number of armature slots8

Number of commutator segmentsK = 8

Magnet overlap angle {$ = 1.832 rad

Length of magnetL = 25.0 mm


m
Height of magnet (two segments) h = 8.1 mm
m
Airgapg = 0. 6 mm

Length of armature core L = 12.0 mm

Outer diameter of armature D = 42.0 mm


core2out

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

A simple and efficient method of


performance calculation for segmental
permanent magnet dc motors has been REFERENCES
discussed. The location of the operating 1Marinescu M., and Marinescu N.:
point of a permanent magnet has been "Numerical computation of torques in
expressed analytically. New relationships permanent magnet motors by Maxwell's
for permeances and MMF F^Q of cross stress and energy method", IEEE Trans,
armature reaction have been found. The on Magnetics, MAG-24 (1988), Nol, pp.
calculated load curves 3,r& in good 463-466yy
agreement with the measured curves. The
calculation method can be easily adjusted 2"Permanent magnets", Magnetfabrik
to motors with other shapes of magnets, Schramberg GMBH & Co,Schramberq-Sulqen
e.g. flat magnets with pole—shoes or FRG, 1988
annular magnets by deriving appropriate
expressions for permeances (Appendix 1). 3Strnat K.J.: "Permanent magnets based
on 4f-3d compounds", IEEE Trans. on
Magnetics, MAG-23 (1987), No 5, pp
There is a discrepancy between the 2094-2099
calculated and tested results. The
considered motor is rated at 8 W {vBry 4Jin S., and Chin G.Y.: "Fe-Cr-Co
small machine). Generally, the convergence magnets", ibid., MAG-23 (1987), No 5,
between calculations and measurements for pp. 3187-3192
very small machines is much worse than
that for medium and large machines. One of 5Endoh M., Tokunaga M., and Harada H.:
the reasons is higher influence of the "Magnetic properties and thermal
boundary effects, not taken into account stabilities of Ga substituted
in one—dimensiona1 ar two-di^ensional Nd-Fe-Co-B magnets", IEEE Trans. on
analysis. However, for rated torque, the Magnetics,
2290-2292'HPMAG-23 (1987), No 5, pp
maximum discrepancy takes place in the
efficiency and is slightly less than 30 7..
6Gieras J., Frydrychowicz G., and
This is justified for an 8-W motor. For
Jdzefowicz W.: "Projektowanie silnikOw
output power the discrepancy is only 7 7.. pr^du stalego malej mocy o magnesach
trwalych wspomagane maszyna cyfrowa",
Although many numerical methods of Przeglad Elektrotechniczny, '54 (1978)"
performance calculation for permanent No 4, pp. 152-156
March 1991 THE TRANSACTIONS OF THE SA INSTITUTE OF ELECTRICAL ENGINEERS 19

7Ermolin N.P.: "Calculation of small 0.25 13 (D + 0.5h ) h


commutator machines", in Russian, 1 in m n
Energia, Moscow, 1973 X = p - (35)
lc o
8Balagurov V.A., Galtieyev F.F., and
Larinov A.N.: "Permanent magnet
electrical machines", in Russian,
Energia, Moscow, 1964 where: cav T,0-25 u hm = average
paths for " leakage fluxes.
9Kostenko M., and Piotrovsky L.:
"Electrical Machines", Vol.1, Mir Thus, the total leakage permeance is
Publishers, Moscow, 1974
X = k ( X X ) (36)
10Mohr A. : "Stressing and testing of 1 V 11 lc
permanent magnet segments", IEEE Trans,
on Magnetics, MAG-13 (1977), No 5, pp. where the coefficient including
1113-1115 magnetic voltage drop along the height hm
of the permanent magnet. According to [7]
11Odor F., and Mohr A.: "Two component k -0.5.
magnets for DC motors" ibid., MAG-13 V
(1977), No 5, pp. 1161-1162

APPENDIX 1. PERMEANCES

The eqn (20) can be brought to the form

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

The permeance X for 4> can be found


on the basis of the eqns (3) and (31) as APPENDIX 2. ARMATURE REACTION

p(33a) The MMF of armature reaction

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

b =width of the pole shoe (permanent


B
pmagnet)
F + 0.5b A = g k + V (B ) (42)
b ^brush shift
gt p p C 2t g
r
o D =inner diameter of the stator (see
linFig. 8)
allow to determine, by means of the
transient characteristic, the flux density
Bg at a distance -0.5b p and B+g at a D =outer diameter of the armature
g 2outcore
distance .5b p ffrom th
the pole
l axis
i under a
given load. The width of the pole shoe is
E =armature winding EMF
b p = aT The author ha^ derived the
following approximate formula for the MMF
F =MMF of armature reaction
of cross armature reaction:
a
F =direct-axis MMF of armature
F ^ b A (b -\b2-l) ad reaction
(43)
aq p g g = direct-axis MMF of the coils
aK sections being commutated
in which
= MMF of cross armature reaction
aq
b =(B -B)/(2B -B -B) (44)
g g g g g g = MMF of the airgap and tooth in
gt axial pole plain
There Are also other approximate
expressions for the cross armature = MMF of permanent magnet
reaction field, less or more theoretically
justified e.g. proposed by R. Bosch GmbH = "open circuit" MMF acting through
[10,11]. It is sometimes recommended to a permeance X (see Fig. 4)
made the trailing edge of segmental o
magnets of a material with high He and the = total MMF per pole pair
rema in ing portion of a material with high
Br [11]. = airgap between the stator and
rotor
The armature direct-axis MMF
g = airgap between the magnet and the
F = 2 b A (45) ym stator yoke
ad br
H = magnetic field intensity
depends on the arrangement of the brushes. a corresponding to MMF of armature
For small dc motors the brush shift h
react ion
= 0.15...0.3 mm.
H = coercive field strength
The MMF induced by the currents of the
coil sections being commutated can be c
estimated as [8] H = magnetic field intensity of the
m permanent magnet assumed to be
uniform throughout its volume
b N2 L n
K
>' A h = height of the permanent magnet
(46)
rn ( see Fig . 8 )
aK K R K
= armature current
March 1991 THE TRANSACTIONS OF THE SA INSTITUTE OF ELECTRICAL ENGINEERS 21

number of commutator segments


useful (airgap) magnetic flux
Carter's coefficient
= equivalent leakage magnetic flux
saturation factor for magnetic
sat circuit = total magnetic flux

coefficient including magnetic


voltage drop along the height of
the permanent magnet

effective length of the armature


core

length of the permanent magnet


JACEK F. GIERAS (SM
total number of armature IEEE) received the
conductors MSc degree in elec
trical engineering
speed from the Technical
University of ,0d,
input power the Dr.-Eng. and
Dr. habil. degrees,
output power also in electrical
ou t engineering, from
number of pole pairs the Technical
University of
Poznari, Poland, in
cross—section area of the 1971, 1975, and
permanent magnet 1980, respectively.
His research area
developed torque is electrical
machinery, electromagnetic devices, and
shaft torque electromagnetic field theory. The most
shf extensive research pertains to linear
magnetic voltage drop along the induction motors. He is an author or
It stator yoke co-author of 2 monographs, 1 textbook, 1
students' course manual, 4 patents and
magnetic voltage drop along the more than 100 scientific and technical
2t rotor tooth papers published in many countries
including USA, UK, Germany, and Japan. He
was teaching and doing research in Poland,
magnetic voltage drop along the Czechoslovakia, Canada and Jordan. In
2/ rotor yoke 1987 he was promoted in Poland to the rank
of Professor.
pole src to pole pitch ratio;
angle shown in Fig. 5 He joined the Department of Electrical
& Electronic Engineering at the University
magnet overlap angle (see Fig. 8) of Cape Town in September 1989.

path for the leakage flux

brush contact voltage drop


br
ef f i cien cy

permeance of the external magnetic


circuit for useful magnetic flux

permeance for leakage magnetic


flux

leakage permeance of a short-


circuited coil section

total permeance

recoil relative magnetic


permeabi1ity

p = magnetic permeability of free


o space
ZR = armature circuit resistance
a
SR = resistance of a short-circuited
K coil section plus contact
resistances of leading and
trailing edges of brushes

a = leakage factor
1
t = po1e pitch
22 THE TRANSACTIONS OF THE SA INSTITUTE OF ELECTRICAL ENGINEERS March 1991

Research Issues in Computer Aided Process


Modelling and Control Systems Design
A.L. Stevens and I.M. MacLeodf

Abstract The modelling phase of the design


cycle

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.

The classical way of modelling the dynamics of a process is to use


More attention should be paid to the broader issues of design,
some type of differential equation description. These equations
such as the philosophy and basic objectives of CACSD itself, in
are then simulated numerically and the resulting time histories
addition to improving existing algorithms. To do this, it is nec
are plotted. The behaviour of the process or device can then be
essary to consider what actually comprises the process of design.
inferred from the plots.
This makes it possible to identify the major stages of the design
process as well as the particular tools used at each stage. The
modelling phase is a particularly neglected research topic and is This differential equation approach is common and very useful,
of primary interest in our research. provided that numerical values (such as tank sizes, voltage levels
etc.) or at least their approximate ranges, are available.

In this paper, we propose a Computer Aided Process Modelling


And Controller Design (CAPMACD) program structure. It is For many processes, the task of obtaining an accurate mathemat
believed that this is the first computer aided design tool which ical model of the process is extremely difficult, time consuming
tackles the broader issues in the modelling and controller design or impossible. For these reasons, it is useful to have a heuris
of modern process plants. tic model of sufficient detail to give some appreciation of the
behaviour of the process.

To get a feeling for the dynamic response of a system, the de


signer needs to express the system's rates of change, absolute
i Department of Electrical Engineering, University of the Witwatersrand values and limit points (such as saturation values of variables).
Often, it is not possible to obtain the equation describing the pro
cess, so that it becomes necessary to look for qualitative ways of
Submitted January 1990 modelling the plant's dynamics.
Accepted March 1991
March 1991 THE TRANSACTIONS OF THE SA INSTITUTE OF ELECTRICAL ENGINEERS 23

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.

To solve complex engineering problems, a hybrid approach should


be used; part of the engineer's art is in correctly deciding which
The CAPMACD System Design tool to use for which aspect of the problem. For example, effi
ciently separating and matching the data, algorithms and rules
Philosophy
to the correct part of the problem, is an important design deci-

An important engineering tradeoff in the design of a CAPMACD


system is deciding which tasks the human must do and which The subject of artificial intelligence is very rich in ideas which
should be left to the computer. Computers are better than peo have not yet been applied to engineering situations. Likewise,
ple at certain tasks and vice versa (see [6]) and it is important cognitive science has something to offer in the quest to under
to allocate the correct tasks to each in a careful and responsible stand complex human thinking and our application of these tech
manner. Complex engineering decisions should be left to the hu niques to solve complex problems using computers (see [9]). The
man user and routine work such as the execution of algorithms, use of qualitative reasoning to computer aided process modelling
searching through rule and data bases, storing and correlating is an important contribution from the AI research community.
information and general 'housekeeping' duties, should be rele
gated to the computer. We believe that progress will be made in this field by combining
AI and traditional numerical programming techniques.
There is much evidence to suggest that designers of computer
aided design systems often yield to the temptation to try and
automate the design process so as to exclude the skill of the
3.1 Difficulties in Process Design
designer. This leads to a "black box" design approach (such
as LQG Optimal Control), where the input to the box is the
required specification in the form of some type of performance
index and the output is a completed design. A major problem in the design of large-scale plants, is the over
whelming number of design possibilities, component configura
tions, spatial, static, dynamic and other pieces of information
There are some objections to this approach. Firstly, the "design" which the plant designers have to keep track of. Unexpected
produced (via algorithms) by this type of system, is often in a design errors (such as two spatially adjacent components being
form (such as a matrix of feedback gains satisfying the design joined by an unnecessarily long pipe) can arise either from the
specification), which is very diffi cult to interpret in the sense sheer amount of information contained in the process flowsheets
that it obscures the design tradeoffs involved. or due to a lapse of communication between designers.

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

4 Types of models 5 Qualitative Modelling

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

A heuristic model is useful, because it is generally accepted that


complexity of the formal modelling approach when applied to a
1.de Kleer and Brown[4] use components and connec
large-scale system, exceeds the analytical capability of the hu
tions.
man mind. It is therefore not practical to attempt this in such
2.Kuipers[16,17,18] uses variables and constraints.

3.Forbus[7,8] uses individual-views and processes.


Zadeh[23], in his famous Principle of Incompatibility states:

All three approaches can be formulated as a set of constraint


"In general, complexity and precision bear an inverse rela equations and solved using the technique of constraint propaga
tion to one another in the sense that as the complexity of tion. Two particularly powerful techniques are Qualitative Simu
a problem increases, the possibility of analysing it in pre lation and Qualitative Process Theory. When only the structural
cise terms diminishes, until a threshold is reached beyond form of the equation describing a process is known, then it is fea
which precision and significance (or relevance) become al sible to analyse the dynamic behavior of chemical processes and
most mutually exclusive characteristics". their controllers using qualitative simulation, as shown by Dalle
Molle[3]. There are a number of qualitative simulation programs
in existence, the one considered here is that of Kuipers [16,17,18].
It is most usual to find that knowledge about a system is divided
up into various levels of detail. Thus for a simple tank, for exam
If the structural form of the equations describing the process
ple, we may know the dynamic behaviour in terms of a transfer
are known, but the actual parameter values and functions re
function or differential equation model as well as the required
parameter values such as the dimensions. At the other extreme, lating them are not, it is possible to obtain a description of the
however, there may be some components where not even the behaviour of the process or device (e.g. by using the monotoni-
cally increasing qualitative function Y = M+(X) for the actual,
form of the equations describing the process are available (e.g.
but unknown function y(x) = 4.76|x|2), in a qualitative form.
complex chemical reactions and biological processes.)
The power of this technique in solving complex problems is il
lustrated in [181. where it has been successfully used to derive a
It appears, therefore, that the static and dynamic modelling as dynamic model for the behaviour of the human kidney.
pects should be left to the human. As mentioned in [20] "Mod
elling has long been thought of as an 'art' and has only recently
For the case where no model is known for the process, it is nec
been subjected to a more detailed analysis. In fact model build
essary to investigate the laws of physics which describe it. This
ing is a very complex human skill. It is by no means certain, or
step is in fact the initial step undertaken in all mathematical
even probable, that the human modelling process, which relies
model building strategies. Qualitative Process (QP) Theory[7,8]
on a blend of logic, intuition, abstraction, association and skill,
can be regarded as a language in which certain commonsense
could be analysed in a systematic way."
physical models can be represented. The primitives of this lan
guage are individual-views and processes. In particular, it enables
We believe that rather than trying to automate model building, the various physical axioms (e.g. the axioms for liquids[13]) to be
the user should be provided with more versatile tools to assist manipulated in order to reason about the behaviour of physical
him in model development. processes.

An implementation of QP theory suitable for the CAPMACD


system may be investigated at a later date if needed, but will
not be considered further here.
March 1991 THE TRANSACTIONS OF THE SA INSTITUTE OF ELECTRICAL ENGINEERS 25

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 CAPMACD system presently consists of a number of mod (defstruct node


ules or facilities for assisting the user with various aspects of (number 4)
analysis and design. These modules (see Figure 1) are (name 'inflow-63)
(doc "acid inflow to tank 63")
( ) ;additional slots appended by other programs.
•The digraph database

•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

A general facility to automatically convert digraph model de 9 Acknowledgement


scriptions to forms suitable for either qualitative or numerical
simulations using QSIM or ACSL respectively, is currently un
der development and partially complete. At present, equations
The authors would like to thank Professor B. J. Kuipers of the
entered by the user into the digraph database as well as the out
put of the Bond Graph Analysis Module can be automatically University of Texas at Austin for use of the QSIM program.
converted into an ACSL input file.

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.

4.de Kleer J. and Brown J. S., "A Qualitative Physics Based


7 Current Status of Development on Confluences"
Artificial Intelligence, vol. 24, pp 7-83, 1984.

5.Denham M.J. "Design issues for CACSD systems"


The modules discussed are being developed by a number of
Proc. IEEE, vol.72, no.12, pp 1714 - 1731, Dec. 1984.
researchers[10,12,21] simultaneously, with each using the same
database. The research reported here, is still at a very early 6.Dreyfus H. and Dreyfus S., "Why Expert Systems Do Not
stage of development and only small example problems have Exhibit Expertise"
so far been attempted. However, as integration of the system IEEE Expert, 1986, pp 86-90.
proceeds, larger case studies will be undertaken to evaluate its
overall success. 7.Forbus K.D. "Qualitative Process Theory"
MIT Lab Memo No. 664, Cambridge MA 1982, revised
1983.

8.Forbus K. D., "Qualitative Process Theory"


8 Conclusions Artificial Intelligence, vol. 24, pp 85-168, 1984.

9.Gentner D. and Stevens A. L. (Eds.) "Mental Models"


Erlbaum, Hillsdale, N.J., 1983.
A structure for a computer aided process modelling and control
system design system has been proposed. It is believed that this 10.Grobbelaar G. B., "The Development of a Program for
system will enable process control system designers to tackle a Bond Graph Analysis"
much wider range of the overall design cycle than is possible with Research Progress Report, University of the Witwatersrand,
existing systems. 1990.

11.Harary F., Norman R.I. and Cartwright D. "Structural


The underlying philosophy is that design tradeoffs should be models - an introduction to the theory of directed graphs"
transparent to the user at each stage of the design. Also, the Wiley, New York, 1966.
system should highlight neglected aspects of the design (such as
part of the model being incomplete or vaguely known) as well as 12.Hartmann C. J., "Structural Controllability and Computer
possible unforseen structural or dynamical problems. Aided Design of Process Control Systems"
Research Progress Report, University of the Witwatersrand,
1990.
A very simple and flexible data structure is proposed to facilitate
storage and manipulation of different types of process informa 13.Hayes P.J. "The Naive Physics Manifesto"
tion. in Expert Systems in the Micro-Electronic Age, edited by
D. Michie, University Press, May 1979.
The work is still in the preliminary stages of development, but 14.Horowitz I. M., "Quantitative Feedback Theory"
the results of test problems using the individual modules have Proceedings of the IEE, vol. 129, Part D, no. 6, pp 215-
been satisfactory so far. As work proceeds, larger case studies 226, 1982.
will be tested to evaluate the system more fully when the system
integration is at a more advanced stage. 15.Karnopp D. C. and Rosenberg R. C. "System Dynamics:
a unified approach"
Wiley, New York, 1975.

16.Kuipers B., "Commonsense Reasoning about Causality:


Deriving Behaviour from Structure"
Artificial Intelligence, vol. 24, pp 169-203, 1984.
March 1991THE TRANSACTIONS OF THE SA INSTITUTE OF ELECTRICAL ENGINEERS27

17.Kuipers B., "Qualitative Simulation"


Artificial Intelligence, vol. 29, pp 289-338, 1986.

18.Kuipers B., "Qualitative Simulation as Causal Explana


tion"
IEEE Trans, on Systems, Man and Cybernetics, vol. SMC-
17, no. 3, pp 432-444, 1987.

19.Morari M. and Stephanopoulos G., "Control Structures for


Chemical Processes-Part II."
AIChE Journal, vol. 26, no. 2, pp 232-246, 1980.

20.Spriet J. A. and Vansteenkiste G. C. "Computer Aided


Modelling and Simulation" Academic Press, 1982.

21.Stevens A. L., "Computer Aided Process Modelling"


Research Progress Report, University of the Witwatersrand,
1989.

22.Stevens A. L., "Qualitative Reasoning in Process Mod


elling"
Proceedings of the RUGSA Symposium on Applications
of Knowledge-Based Systems in Engineering and Control,
October 1989.

23.Zadeh L. A. "A rationale for fuzzy control"


Journal of Dynamic Systems, Measurement and Control,
pp 3 - 4, March 1972.
28 THE TRANSACTIONS OF THE SA INSTITUTE OF ELECTRICAL ENGINEERS March 1991

An Exploratory Investigation into the State of


Software Systems Renewal in South Africa
JDAmoils

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.

1. INTRODUCTION 2.1 Programs as Changing Models of the Real World

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

Table 2 Systems Described

Original Instal System Original Im Original Sys UpgradeMethodology


lation Date plementation tem Hardware
Language

Petroleum Nova 3 As Data General A total Rewrite of the entire systems' ap


1976 plication software was undertaken.
pipeline for sembly Lan Nova 3 mini-
SATS guage corn puter

Harbour Nova 4 As Data General A total rewrite of the entire systems' ap


1976 Refrigeration sembly Lan Nova 4 mini plication software was undertaken.
System for guage computer
SATS
Automatic FORTRAN Since the software was developed in
1983 Fare Collection modules, just the modules requiring to be
changed need to be rewritten.
System for
SATS

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.

Computerised Selenia as Selenia This system was entirely rewritten and in


1973 Power System sembly lan stalled in 1984 on new Siemens R30 com
puters. The software was adapted from a
Load Dispatch guage similar system that had been installed in
Centre for Germany.
SATS
Furnace con IBM The system was upgraded in 1985 on a
1975/76 trol plant for Hitachi computer. There was no reuse of
software for various reasons which in
Iscor
cluded a different approach to the plant
and how it operates This was a result of a
greater understanding of the plant ac
quired over the ten year period.

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.

6.1 System Specifications


6.4 Software Reusability and Language Issues
If the issues raised in Section 2.1 are borne in mind
then a helpful perspective can be gained of one of the As mentioned previously, there was no code reuse in
major factors which precipitates the need for system those cases where the system was written in assembly
renewal i.e. changes in the user's perceptions of the language. Where the system was comprised of
system and its requirements. modules written in high level languages, significant
software savings were possible by reusing modules in
March 1991 THE TRANSACTIONS OF THE SA INSTITUTE OF ELECTRICAL ENGINEERS 33

the new system. One vendor of software systems 7. RECOMMENDATIONS FOR


achieved substantial savings by using a layered ap
proach to software development and developed a
SYSTEM RENEWAL IN THE FUTURE
generic package of reusable modules. (As discussed It has become essential to design systems with renewal
in Section 4) in view. This is the only viable solution to the problem
since hardware lifetime is less than that of the plant.
The choice of programming language used to develop
systems was a very important factor. The users who At the hardware level a judicious choice of hardware
chose to standardise on a specific high-level language (and associated operating system) would enable a
benefitted by being able to create libraries of reusable system to evolve with time. If a well-established
modules which were customised for each application. hardware product from a vendor (preferably multi-
The software saving that resulted helped in some sourced), who would support the product and offer
cases to substantially reduce system development a growth path by continuing to provide hardware and
costs. operating system support was chosen, then the prob
lem of hardware obsolescence will be reduced.
6.5Management Issues
At the software level, in order to contain costs,
The management of software systems was an issue software system vendors need to create libraries of
only really raised by the end-user of system category. reusable software. Although the top-down function
In general, whereas the engineers involved directly al approach is widely used there are significant
with the maintenance and operation of a software problems with this approach. Experience shows that
system understand the peculiarities of software in this approach to software design has not been par
terms of its life-cycle and associated costs, the ticular successfully in supporting the development of
management of the end-user organisations did not highly reusable software component libraries. While
understand the software engineering issues. Further the use of an object-oriented design approach to
more it was diff i cult for the eng^neers to persuade software systems is desirable on account of its supe
management to view a software system in terms of its rior capability of supporting the development of high
life-time cost as opposed to its installation cost. ly reusable class libraries, wide use of this approach
to software design could be problematical in the short
The importance of the user working very closely with term. The ideas of object-oriented design are new
the system vendor during the development stage so as and are only beginning to be used by software prac
to acquire a high degree of familiarity with the system, titioners. Since top-down design is more widely used
was considered to be an idea that should be imple among practitioners, it will take some time before the
mented by management. It was believed that this majority of these practitioners adopt a different
would then help to reduce dependence on the system design approach. What is more probable is that a
vendor and could save costs if, at a later stage, the mixture of the two approaches will be used in the short
user was able to renew the system without any assis term, with a migration to object-oriented design in the
tance from the vendor. medium to longer term.

6.6Human Resource Issues


8. CONCLUSIONS
In many of the interviews, frequent reference was
Since an increasing number of engineering processes
made to personnel turnover and its impact on system
have been automated over the years, the number of
maintenance and renewal.
systems that will require renewal or replacement will
There is no doubt that the practical knowledge of the also increase. In the short term, the older systems that
system and its operation which is acquired while were not designed using software engineering techni
working with a system greatly surpasses that which ques will typically be too difficult to renew and will be
can be acquired by reading system documentation. replaced. The systems that were installed in the last
Each time an individual leaves through resignation or few years, using more modern software engineering
transfer elsewhere in the organisation, there is a con techniques (e.g. top-down), will be easier to renew.
siderable loss of expertise on the system - formal In the long term, based on some of the opinions
documentation is a poor substitute. Since the lifetime expressed in the survey, existing software systems will
of a system is approximately 8 to 10 years, it cannot be gradually be replaced by systems that were designed
expected that a career-conscious individual will for renewal. Issues such as software reusability and
achieve job satisfaction working on one system for system requirements can be expected to influence
that duration of time. Most of those interviewed software design techniques in the future.
believed that ways of reducing staff turnover were
needed as this was perceived to be a major problem
facing those who wish to renew systems.
34 THE TRANSACTIONS OF THE SA INSTITUTE OF ELECTRICAL ENGINEERS March 1991

9. REFERENCES 17.Allman E, and Stonebraker M, Observations on


the Evolution of a Software System, Computer,
1.Boehm B W, SoftwareEngineering, IEEE Trans.
15, (6), 27-32, 1982
Computers, C-25, (12), 1266-1241, 1976.
18.Shumate K C, Understanding Ada, Harper and
2.Lehman M M, Programs, Life Cycles, and Laws Row Publishers Inc. 1984.
of Software Evolution,/ Proc., 68,(9), 1060-
1076,1980. 19.Boehm B W, Improving Software Productivity,
Computer, 20 (9), 43-57,1987
3.Schneidewind N F, The State of Software Main
tenance, IEEE Trans. Software Eng., SE-13, (3), 20.Ichbiah J D, On the Design of Ada, Information
303-310,1987. Processing, 1983

4.Bendifallah S, and Scacchi W, Understanding 21.The Economist, January 1988.


Software Maintenance Work, IEEE Trans.
22.DOD Gives Software Developers More Leeway in
SoftwareEng., SE-13, (3), 311-323,1987.
Writing Code, Electron. Wkly., June 11, 99,1987.
5.Parikh G, Software Maintenance: Penny Wise,
23.Amoils JD, An Exploratory Investigation into the
Program Foolish, ACM SIGSOFT, 10, (5), 89-
Current State of Software System Renewal in
98,1985.
SouthAfrica, MSc (Eng.) Project Report, Univer
6.Conning A J, Design Apsects of PLC-Supervisory sity of the Witwatersrand, December 1990
Systems for Sequence Control. Unpublished
paper, circulated internally at AECI Process Com
puting, South Africa. Joel Amoils graduated from the University of the Wit
watersrand in 1985 with a B Sc. (Eng.) in Electrical Engineer
7.Heher A D, and Dehning R W, CYGNUS Design ing. His studies towards the M Sc (Eng.) degree were
completed in December 1990. The project work undertaken
Philosophy. Based on a paper presented to the
towards this degree was undertaken during 1988 and 1989
RTL/2 User Group of South Africa, 2 September under the auspices of the Software Engineering Applications
1983. Circulated internally at AECI Process Com Laboratory in the Department of Electrical Engineering at the
puting, South Africa. University of the Witwatersrand.

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.

9.Carolin T N, RATEL - Escom 's New Telecontrol


System. Elektron, 4, (9), 18-19,1987.

10.Bell A, EVOLUTION versus REVOLUTION. (A


case study of a Mature EMS System Replacement
Plan), ESKOM Unpublished paper.
11.Swanepoel E, The Evolution of Process Control
in Signalling. Momentum , 1, (4), 6-11, 1985.

12.Grisdale B, Applications of Minicomputers in the


Field of Railway Signalling. Systems, 5, (10),
1975.

13.Martin A, New Computerized Load Dispatch


Centres for South African Railways. (Translation
of an article from Elelctrische Bahnen 83, (8), 252
- 259,1985.

14.Freeman P, Tutorial: Software Reusability, IEEE


Computer Society Press, 1-9,1987

15.Capers Jones T, Reusability in Programming: A


survey of the State of the Art, IEEE Trans.
SoftwareEng., SE-10, (5), 488-494,1984

16.Meyer B, Reusability: The Case for Object-


Oriented Design, IEEE Software, 4 (2), 50-64,
1987
March 1991 THE TRANSACTIONS OF THE SA INSTITUTE OF ELECTRICAL ENGINEERS 35

Object-oriented Design of Control System


Software
Rl Bricker
Abstract: Automation is currently being used to an ever increasing All have made rapid advancements in the last five years
degree in industrial plants. However most of these applications and the emphasis is towards software engineering not
require only a few basic control concepts repeated for each piece of control engineering.
equipment. There is often a fair degree of interaction between pieces
of equipment in terms of safety interlocking and sequencing. Despite
this each piece of software remains an autonomous entity receiving 1.2 Object-oriented Design and Programming
the necessary external commands and data it requires. The prin
ciples of object-oriented design are suited to the development of this Object-oriented design and programming has emerged
type of software. This paper will consider experiences using Zortech-
in the 1980's as a superior method of software design [11].
C++ and it's application in the control system software development
The emphasis, however, has been on the need for higher
arena.
The purpose of this paper is to demonstrate that the principles of levels of programming language to cope with the degree
object-oriented design can successfully be applied in the low level of abstraction required.
language environment of the PLC.
One of the first languages to evolve which incorporated
Keywords object-oriented design, programmable logic the principles of object-oriented design was Smalltalk.
controller, C++ The major problem with this was the inherent inefficiency
in the language. The ".... programs run a lot slower and
1. INTRODUCTION required a lot of computer resources. Also, you generally
needed the entire development environment loaded to
"Programmable controllers are being applied in ways never run the program." [4]. A number of these problems were
envisioned by the equipment 's original developers, who addressed by Stroustrup [10] in developing the C++
wereprimarily concernedwith the taskofrelay replacement" language. This used the run-time efficiency of a compiler
[1] combined with the advantages of object-oriented design.

"Object -oriented programmingwith its claims of improved


programmer productivity and easy program maintenance, 13 Basic Premise
is emerging as a vital force in the programming community.
The basic premise of this paper is that these two jux
This is despite the fact that object-oriented languages were
taposed concepts can merge into a single method for
not generally available until fairly recently."\11 ]
developing control system software. This paper will
demonstrate that the principles of object-oriented
1.1 Programmable Logic Controllers programming and software design can be effectively used
to design the software for PLC systems.
PLC languages have for a long time kept the emphasis on
software that is easily maintainable by plant personnel One of the major constraints of this work is that there
that do not have formal computer training. In addition, were no PLC languages which offered support for ob
three of the four major languages are graphically based. ject-oriented programming. The emphasis is that the con
It is for this reason that "software driven control systems cepts of object-oriented design can be applied to the
have been programmed by control engineers rather than development of software for PLC systems.
software engineers." [6] This is, however, changing rapid
ly as the large PLC has become a small industrial com The most fundamental question that must be answered is
puter and the "11 pin relay base has become a 20 word "Why object-oriented design as opposed to some other
software construct." [6] software development paradigm?" The answer must be
given in the light of a number of factors. At the most
One of the major problems faced by software engineers simplistic level, there is a major trend toward object-
designing PLC software is that the disciplines of the last oriented design principles. Object-oriented design
20 years of software engineering have not permeated the provides a number of benefits that are not available
PLC field. The major reason for this has been the through using the more familiar development paradigms
hardware constraints, the lack of programming languages (top-down design or hierarchical function decomposi
and the heavy emphasis on easy-to-use graphical lan tion). The major benefit that will be demonstrated is the
guages. application of the classing and subclassing (inheritance)
facility within the object-oriented environment. This
Submitted April 1990 provides for a fairly simple structure to be used as a
Accepted June 1990 starting point for any PLC program design. As the com
plexity increases the base classes of equipment within the
36 THE TRANSACTIONS OF THE SA INSTITUTE OF ELECTRICAL ENGINEERS March 1991

plant being controlled can be subclassed, and levels of 2.4 Inheritance


complexity added.
Bright [4] defines inheritance or "type derivation" as
"define a new class which is this old class here plus some
2. OBJECT-ORIENTED SOFTWARE additions and changes I want to make". Once again, this
DEVELOPMENT TECHNIQUES becomes relevant in the control system environment,
where aft types of electrical equipment may behave in the
"Object oriented development is an approach to software
same fundamental way. However, each may exhibit slight
design in which the decomposition of a system is based
ly different characteristics. Thus some of the classes may
on the concept of an object. An object is an entity whose
be derived from a base class.
behaviour is characterized by the actions it suffers and
requires of other objects." [3]
3. CONTROL SYSTEM SOFTWARE
The simplest definition of object-oriented languages is
that they allow the programmer the ability to define a new
DESIGN
class [4]. To be classified an object-oriented language a
language must, however exhibit four characteristics viz. 3.1Introduction
data abstraction, dynamic binding, information hiding It should be noted that PLC languages suffer from many
and inheritance [8]. A number of high level languages constraints when applied to pure object-oriented
have been mistakenly called object-oriented as they do development. Current trends in PLC languages have
not exhibit all four characteristics. been discussed by Nolett [7]. A few PLC vendors are
allowing software to be written in languages such as C and
2.1Data Abstraction Forth. There are C++ compilers that have an inter
mediate stage of compilation that generates a set of
The process of defining new data types or classes is
standard C procedures. These could then be down
referred to as data abstraction [8] or abstract data typing
loaded to a PLC that is capable of being programmed in
[4]. A programmer defines the class along with the inter
C. This will ease the burden of implementation and the
nal method of representing that class. This forms the basis
level of programming will be much higher.
of using these techniques for the development of control
system software. The fundamental reason for this is that
3.2Generalized Software Design
the classical control problem revolves around the con
trolling of a few fundamental types of equipment, an ideal Consider the design of a generalized control system.
situation for the classing of types. There will generally be an overall control philosophy that
will define the basic rules of operation of the major items
2.2Information Hiding of equipment and equipment types. This is often referred
to as the MCC (Motor Control Centre) philosophy which
Information hiding considers the aspect that the state of
does not cover each individual piece of equipment, but
a software module is only visible from within that module.
rather the control aspects of types of equipment and the
Thus data is manipulated only by internal procedures.
interactions between these. The control system
This feature allows for the efficient design of modules
philosophy will define the necessary classes and subclas
such that the internal variables within a module are not
ses for the programmer. The functional specification of
accessible from outside the module. In effect internal
the control system will define the specific requirements
data structures may be changed without affecting other
of each piece of equipment along with the physical data.
modules in that implementation. Information hiding
A simple operating philosophy can be summarized as
could play a vital role in the safety aspect of control
follows: Upon receiving a request to start signal the con
systems. All of the information regarding a piece of
trol system checks whether the drive's trips and stops are
equipment within a plant can be hidden, and only acces
in a healthy state and whether or not it is running. If these
sible to the piece of control code that deals with that
conditions are true then in the most basic case a signal is
equipment. This would ensure that each piece of code
sent to the drive to allow it to start. According to the
only deals with the sections of memory and variables
principles of object-oriented design, a superclass, per
associated with a particular object.
haps of the type "drive" could be created. This would be
the simplest form of logic. Figure 1 shows the logic of this
23 Dynamic Binding. simple "drive".

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

In most applications there


FIELD STAR! will also be numerous inter
locks between the drives.
These will prevent certain
areas of the system from
starting before it is safe to
do so, or in the event of a
device tripping then the as
sociated devices are re
quired to stop. The method
of coping with this is to have
an internal variable within a
class called interlock. This
START class of interlock can then be
created which will cater for
an open-ended number of
STOPS HEALTHY interlocks for each drive.
Each drive routine will have
a specific interlock object
TRIPS HEALTHY
passing, as it were, a
START
clearance signal to the con
trol module to allow it to
continue and start the drive.
Figure 1 Simple Logic Diagram of a Drive The logic diagram illustrat
ing this logic is shown in
sound a siren for a certain time period before starting. Figure 3.
This siren is called a safe start siren and is used to warn
personnel in the area of the impending start. In this case Each class and subclass of drive will respond in a different
a subclass of "drive with siren" could be created to cater way to the same message. The superclass of drive will
for this instance of drive. The logic diagram of this "drive merely start the drive. The "drive with siren" will sound
with siren" is shown in Figure2. A timer is used, that times the siren before starting the drive. The "Drive with inter
the siren. Upon completion of the timing period the timer locks" will first get a clearance before starting the drive.
output will be turned on, and paralleled with the rest of This action of eliciting differing responses to the same
the logic. command fulfils the object-oriented characteristic of
dynamic binding. By virtue of the definition attached to
the superclass of "drive", the
subclasses fulfil the re
FIELD START
quirements of inheritance.

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

This definition requires some explanation, as there are

DRIVE 1 RUN some areas where the principle of information hiding is


used. This is done in an attempt to map the somewhat
DRIVE 2 RUN contrived situation into the real world. The digital output
signals associated with a drive are public domain in most
DRIVE 3 RUN

DRIVE 4 RUN & INTERLOCK


PLC's. Thus they can be modified by any procedure
operating anywhere within the scope of the PLC. This
issue will be addressed later when the definition of the
LEVEL LOW IOrack is given. However, it suffices to note that the class
DigO (digital out) is made up of two member variables and
LEVEL HI a constructor function. The two member variables in
clude the state of that output signal and the address of
that digital output. The latter refers to the address that is
used by the PLC programmer to assign a physical IO
Figure 3 Interlock Module point to a memory location. Generally, the physical IO is
mapped into a segment of the PLC memory. This
trips healthy etc.) wer^ discussed, these referred to physi facilitates quick access to the value, rather that having to
cal signals coming into one of the I/O cards within an I/O read from the physical IO card. The constructor function
rack. The problem lies in defining I/O in the software is used to initialize the state of the objects of this class,
environment and then defining a method of mapping such when an object is defined.
I/O into the real world.
The definition of the digital input (Digl) is rather more
The solution to this is the creation of a number of classes complex. A large number of PLC's do not allow for easy
called IO. These represents the physical I/O points which access to digital input values. This implies that the pro
receive and send signals to and from the plant. gram as it stands cannot overwrite the input area of
memory. This serves to safeguard against the problem of
There are four common types of physical I/O associated
the PLC writing the wrong value in place of a physical
with a PLC. These are :
input. To cater for this feature, the state of the Digl has
Digital input (Digl) This would be a binary signal com been defined as private. If this program was being
ing into the PLC. developed for an actual PLC then there would be no
need to have all of the member functions that have been
Digital output (DigO) Similar to the inputs but being written. There is a void function called SetDI which is
sent from the PLC to the equipment being control used to force the input to a specific value. This is used as
led. there is no actual IO point available. The integer function
ReadDI is used to ascertain the value of the private vari
•Analog input (Anl) This is an analog signal (such as a
tank level) being sent to the PLC from the actual unit. able state. This function would also not normally exist as
the access to the input values would normally be un
•Analog output (AnO) These are analog signals sent by restricted in a reading mode.
the PLC to specific units. These could be used to
control the opening of a valve or the speed of a As previously stated, the IO signals to the PLC are
variable speed motor. grouped into IO cards and racks. Thus the next class
definition is that of an IOrack. This is merely a "holder" of
Thus at the most fundamental level there would be two IOs. The IOrack class serves as a type of interface to the
classes defined. These would be DigO and Digl. real world. It contains the most basic IO required for the
operation of a general electric drive.
The definitions (in C++) would be :
class IOrack
class DigO
{
public:
public: DigO start, localstart;
irrt state; Diglseqstart,fieldstart,tripshealthy,
char* address; stopshealthy, running;
DigOO; lOrackO;
}; };
class Digl
{ public:
The class defined by IOrack does not contain any logic. It
merely groups the IO together and is used to relate
intstate; specific IO points to a specific drive. When a variable of
char* address;
class IOrack is defined, the specified IO are defined. The
gO; definition section of the class definition calls the correct
void setDI(int value);
irrt readDIQ;}; IO types and initializes the IO accordingly. The construc
tor function lOrackQ required at start-up to facilitate the
March 1991 THE TRANSACTIONS OF THE SA INSTITUTE OF ELECTRICAL ENGINEERS 39

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 :

sirentimer(int period); class interlocknode


public:
DigO siren; public:
operate(int c, int d=0); interlocknode * next;
DrivesirenQ; int * runstate;
addtolist(char name[20]); char name[20];
/> }
This subclass has an additional IO point called siren. This class interlock
would be used to actuate the physical siren in the plant.
This is simulated using the C++ sound function in the public:
code. This simulation takes place in the private member interlocknode * firstnode;
function called siren timer. This function is only accessible interloc^;
to variables of this class type. This is an important safety
list(int * nooflines);
int setstatusO;
feature as there is no chance of the siren being sounded
accidentally as it can only be sounded by a drive of type
};
siren. The class interlock has two member functions. The first of
which is called list and is used to list all the drives that
The addition of the logic is achieved by use of the variable form part of the linked list of the interlock. This is neces
localstart. The function operatel does not actually send sary in order to be able to modify these interlocks. The
out a signal to the real world, it merely sets a flag called second is an integer function that computes the status of
localstart. This is then used as the basis for the additional the list of interlocked drives. It checks that all the inter
logic. The siren is now started before the start signal is lock signals are healthy and if so returns the value 1. This
set. This is also conditional on the localstart signal having value is used in the operatel function of the Generaldrive
been set. definition. If the state of this value is not 1 then the drive
is not permitted to start. These procedures select the
4.3.3Drive with Safety Timer
drive whose interlocks need to be modified and then calls
This type of drive is also derived from the base that drive and it executes it's own modification.
Generaldrive. The mode of operation here is to start a
timer if the conditions for starting are in order. If the 4.5 Sequences
drive starts within the timing period, then the timer is
stopped. If it fails to start then the start signal is removed As the trend towards automation increases there is a
and the drive returns to the ready-to-start position. The growing use of sequencing in industrial plants. This serves
start signal is removed as a safety precaution. to automates the sequence of events necessary to control
a section of a plant and replaces the need for an operator
class Drivetimer: public Generaldrive { to start a set of drives in a manual sequence.
public:
operate(int c, int d=0); Each sequence consists of a base node of the class se
DrivetimerO; quence and a series of finked nodes called seqencenodes.
addtolist(char name[20]);}; All the defined sequences are formed into a finked list
March 1991 THE TRANSACTIONS OF THE SA INSTITUTE OF ELECTRICAL ENGINEERS 41

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.

The final area, inheritance, has been covered to some


class sequence degree. In this arena, each subclass inherits the functions
and characteristics of the superclass, and adds some of
public: it's own features. This is used extensively in the definitions
char name[10]; of the drive classes.
sequencenode * firstnode;
sequence* next seq; There are a number of other features of object-oriented
sequenceO; design that need to be considered. The linked list used to
setupO; combine all the drives into one fist was not homogeneous,
}i but rather a heterogenous list. It was composed of fun
The difference between this list and all the other lists is damentally different classes, whose only commonality
that each node has both a backward and forward pointer. was their base of derivation. This is obviously an impor
The sequence itself has a pointer to it's first node as well tant aspect, as it allows for considerably easier manage
as a pointer to the next sequence in the list of sequences. ment of the data within the program infrastructure.
The function setupO is used to create a sequence and is
part of the class definition thereof. On the PLC side, each time a drive is called, the same
mnemonics are used i.e. start, trips healthy etc. The actual
I/O addresses are hidden. This leads to simplification as
5. CONCLUSION for each drive the signals related to that drive are all
The basic hypothesis of this paper was to demonstrate called the same name.
that the principles of object-oriented design can be ap The last aspect that is considered is the ability to define
plied to the development of control system software. The abstract classes. The drive classes each refer to a item of
basic four tenets of object-oriented design define the physical equipment, whereas sequences and interlocks
features of languages that will allow those languages to are abstract concepts. This ability is fundamental in
be defined as object-oriented. This paper commenced developing software of this nature.
with the basic premise that C++ is an object-oriented
language and that these four facets would demonstrate It should be noted that the more conventional approach
the basic hypotheses. to software design (hierarchical function decomposition)
cannot provide the necessary framework for the type of
The first of these is the principle of data abstraction. This software development presented in this contribution. In
was used extensively in the definition of the new classes fact, only languages that display the four basic charac
from the base class definition. It allowed a basic class to teristics of object-oriented languages allow for develop
be defined, and additional classes that shared the same ment of this nature.
basic behaviour to be subclassed from this basic class.
This has a substantial impact on the programming re
quired, and implications for software reusability. In the 6. REFERENCES
former case, the subclass definitions required far less
1.Ball K. and Maczka W.J.,C/Control Expo Report-
programming than if each was to be generated as an evolution of the Programmable Plant, InTech, July,
independent class. The worst case would be if each had
pp 16-20,1987
to be defined each time it was required, as is the case with
the majority of PLC systems. 2.Black J., PC Ladders versus Micro Languages, C &
I, November, pp 155-157,1985.
Information hiding has been applied in the safety aspects
of control systems. This was shown in the definitions of 3.Booch G. Object-oriented Development, IEEE
the I/O. The ideal situation would be that all I/O is Transactions on Software Engineering, Vol SE-12, No
defined at the start of the program and assigned to drives. 2,pp 211-221,1986
After that point, no other drive would be able to access
42THE TRANSACTIONS OF THE SA INSTITUTE OF ELECTRICAL ENGINEERSMarch 1991

4.Bright W., Zortech C++ MS DOS Compiler, Zor-


tech Limited, Arlington, 1988

5.Duff C.B., Designing an Efficient Language, Byte, Vol


11, No 8, August, pp 211-224, 1985

6.Jamsa K.A., Object-oriented Design vs Structured


Design, ACM Sigsoft, Vol 9, No 1, pp 43-49,1984

7.Nolett M., PLC Programming Languages: A Com


parison, / & C S, March, pp 57-70, 1986

8.Pascoe G.A., Elements of Object-oriented Program


ming, Byte, Vol 11, No 8, August, pp 139-144, 1986

9.Reeve A., PursuingAutomationwithProgrammable


Controllers, C&I, August, pp 46-47,1987

10.Stroustrup, B., The C++ Programming Language,


AT&T Bell Laboratories, Addison Wesley Publishing,
New Jersey, 1986

11.White E and Malloy R, Object-oriented Program


ming, Editorial Byte, Vol 11, No 8, August, pp 137,
1986
12.Programmable Controller Survey, C&I, January
1987

Rael Bricker graduated from the University of the Witwatersrand


in 1985 with a B Sc. (Eng.) in Electrical Engineering. His studies
towards the M Sc (Eng.) degree were completed in December
1990. The project work undertaken towards this degree was under
taken during 1988 and 1989 under the auspices of the Software
Engineering Applications Laboratory in the Department of
Electrical Engineering at the University of the Witwatersrand.

Mr Bricker recently started his own company - Innovative Mange -


ment Development. He may be contacted at P O Box 87182,
Killarney,2193
March 1991 THE TRANSACTIONS OF THE SA INSTITUTE OF ELECTRICAL ENGINEERS 43

FORTRAN Package Renewal using


Object-centred Design Techniques
AD Lipworth, AJ Walker and HJ Annegarn
Abstract: The functional top-down design approach and struc implementation techniques by examining the pro
tural deficiencies of FORTRAN are strong contributing causes to gram, its documentation and their conformance to
structural decay in engineering and scientific application packages.
standards.
Many programs become unmaintainable after several years of user-
requested developments and executional environment changes. This
A research project was initiated in 1987 to investigate
paper consideres how such packages may be practically and
economically renewed (instead of discarded) by recovering the whether software packages could be economically
original design information, respecifying and reimplementing using renewed by re-engineering using object-centred techni
object-centred design techniques. The approach will be described ques and implementing them in Pascal. Re-designing the
and illustrated with reference to experience acquired during the
original program using object-centred techniques is
renewal of LINSIM, an electrical network (circuit) design, simula
tion and optimisation package and HEX, a program for analysis of central to our approach to program renewal. Translating
PIXE X-Ray spectra. The impact of CASE tools on the design the source code from FORTRAN to Pascal would only
recovery stage, the need for on-hand application domain expertise serve to re-implement the original program's architec
and the rewards of software reuse, are all emphasized.
tural and design errors and ultimately offers little
Keywords: software engineering, software renewal, ob longterm advantage.
ject-centred design, object-oriented programming,
The object-centred design technique is multi-paradig
software reuse
matic. It differs from the pure object-orientated ap
proach by permitting the presence of procedures or
1. INTRODUCTION functions which are not methods or object-operations.
This can only be accomplished in programming lan
Large FORTRAN programs (those greater than 10000
guages which offer object-orientated extensions (C++
executable source code lines) designed using top-down
and Turbo Pascal 5.5 and 6.0 [12,13]) to the conventional
hierarchical methods are suitable candidates for program
procedural language (C and Pascal). The approach can
renewal. Few programs remain static and most undergo
not be used in a pure object-orientated language (e.g.
frequent modifications to correct errors and expand
Smalltalk). Object-centred design allows greater
capabilities.
flexibility than pure object-oriented design. It permits
Tracz [1] compares used cars to used programs. He the software engineer to create a process: a procedure or
poses several questions to aid the selection of programs function which essentially contains only method calls
for reuse. The majority of these are also applicable to (message passing) which would otherwise have been
identifying programs to be renovated. These questions designed as a clumsy or inappropriate method.
include:
The first program considered was LINSIM (an electrical
•Does the vehicle meet the customer's requirements? network simulation, design and optimisation pack-
The program under consideration must meet the age)[ll]. ELECSIM (the renewed version of LINSIM)
customer's basic requirements. was initially implemented using Microsoft Pascal Version
3.2. This compiler did not support graphics or an operat
•How much mileage has the car done? Unlike cars, ing system interface. It did not have an integrated pro
software does not suffer from fatigue - rather the gram development environment (editor, compiler
higher the level of usage the more desirable it is. linker). ELECSIM subsequently ported to Turbo Pascal
3.1,4.0,5.0 and finally 5.5. ELECSIM was however fully
•What is the reputation of the vehicle? Used cars
implemented prior to the release of Turbo Pascal 5.5. The
manufactured by high quality manufacturers are fre
separately compiled unit with a well defined interface and
quently purchased without reference to the main
private implementation was used to restrictively imple
tenance record. A software developer with a good
ment our object-centred technique.
track record for delivering high quality programs can
be trusted to have produced a reputable program. As a result of the successful renewal of ELECSIM [2,3],
a second renewal project was undertaken in collabora
•What is the internal appearance of the car? A skilled
tion with the Schonland Research Centre for Nuclear
mechanic can diagnose potential problems. A
Sciences to renew HEX, a program widely used for
software engineer can determine inferior design and
studies related to proton-induced x-ray emission
(PIXE).
Submitted: April 1990
Accepted: October 1990
44 THE TRANSACTIONS OF THE SA INSTITUTE OF ELECTRICAL ENGINEERS March 1991

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 second step is to produce specialised documenta


2. OBJECT-CENTRED RENEWAL tion. FORTRAN has been widely used for engineering
and scientific applications including simulation, design
Object-centred program renewal can be split into several
and analysis programs. This language hampers an under
phases:
standing the program. Early FORTRAN compilers
•Understanding the application domain (FORTRAN IV) enforced fixed format source code
preventing indentation and obscuring self-contained
•If necessary, porting the program in its original form blocks of code. The undisciplined use of the GOTO
to the new environment statement and lack of structured constructs (Repeat ..
•Comprehending the program (design recovery Until, While .. Do and Case) obscure the semantic be
haviour of a block of code. The CASE tools FOR-
phase)
CHECK and SPAG [5] have been effectively used for the
•Designing the objects (identifying, describing) design-recovery phase. FORCHECK is a FORTRAN
static source-code analyzer. SPAG[5] is a spaghetti code
•Designing the processes (identifying, describing)
unscrambler. They may be used to create a detailed
•Implementing and testing the objects annotated source code listing, describing the module
hierarchy and intercommunication, trapping non-ANSI
•Implementing and testing individual processes standard code, highlighting redundant modules and flag
ging data type inconsistencies.
•System integration
A data dictionary is manually developed from the FOR
•Overall testing
CHECK output. This dictionary must contain both dec
larative data (name, type, size, scope, aliases) and a
2.1Understanding the application domain
physical meaning in terms of the physical modelling of the
A clear understanding of the field of application is re application. This physical interpretation cannot be
quired at the outset. The behaviour of the physical models automated and may be compared to the construction of
undergirding the functionality of the package, the a jigsaw puzzle [6]. Once certain data items are identified
numerical solutions and approximations must be explicit in terms of their semantic meaning other important
ly identified. Considerable help towards this end can be details of data usage can be deduced. An effective ap
gained with reference to the published technical litera proach is to perform a series of scans over a sub
ture in the application domain. routine/module, adding interpretations until the
semantic behaviour of the code fragment is clearly under
stood. A severe problem is the occurrence of identical
2.2Porting to the new operational environment
names of data items in several modules each having dif
This phase is only necessary when moving the code to a ferent semantic meanings.
new target machine. It must be accomplished as rapidly
Thirdly, a module hierarchy chart is then deduced from
as possible. The original FORTRAN source code is
the program reference and derived documentation.
transferred from the mini or main-frame computer to the
Each subroutine name is coupled with a brief description
personal workstation. This move and change of compiler
of its behaviour. The chart is used to track the progress
may precipitate the need for minor modifications to the
of the renewalcycle. It also forms the basis for delegating
program in order to accommodate all non-standard
branches of the hierarchical tree to individual team mem
FORTRAN input/output code. Large data structures
bers, who may then proceed independently and in paral
(arrays) may also need to be dimensionally reduced. The
lel with each other.
temptation to enhance the ported code should be resisted
because later it will be discarded in favour of the renewed Fourthly, the design philosophy adopted by the original
code. The ported code does however provide statistics programmers has to be deduced. The following question
such as code volume, execution speed and memory re should be asked. What is the nature of the data objects
quirements (see Section 3). These attributes will be used represented by the data stored in the FORTRAN COM
to gauge relative improvements to the package. MON blocks?

23 Comprehending the program 2.4 Designing the objects

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

Figure 1 LJNSIM's Array Structure

The array subscript L denotes the network branch.


JN(L) and KN(L) are also used for the nodal information
wh^n C la capacitance, R raalata. no*. L Inductance
of several other general components (resistors, induc V independent voltage louroa, I Indapandant currant aoure*
tors, voltage and current sources). From this the design ^f mutual lnduotano*, K coupling faotor and
Voo* voltage controlled curr^nt -aouroa
philosophy is established: represent a network as a set of
Figure 3 The Component Classes in ELECSIM

C, R, L, V and I inherit the attributes of the General


Components (a component whose attributes are a higher
and lower node and a component value) while M, K and
Vccs inherit the attributes of Coupled Components (two
node pairs and a component value). This then formed
the basis of the net-list object in ELECSIM. It uses a
Pascal dynamic singly linked-list data structure as il
lustrated in Figure's 4 and 5 to represent the net-list
rather than aligned arrays of LINSIM (FORTRAN).
This eliminated several modules of LINSIM code which
compacted these arrays (JN, KN CN) and overcame its
static network size limitations.

A linked-list representation (Figure's 4 and 5) of the


net-list may at first sight seem inappropriate. After ex
amining all LINSIM code pertaining to the net-list it
became clear that a list structure would suffice and alter
native structures such as trees would yield little additional
Figure 2 A Typical Branch of an benefit.
ELECSIM/UNSIM Network
Net-list methods include:
46 THE TRANSACTIONS OF THE SA INSTITUTE OF ELECTRICAL ENGINEERS March 1991

The net-list object is re-instantiated in the Monte-Carlo


Branch Branch Branch process to provide several sub net-lists: net-lists which
Base — —
1 2 3 contain a sub-set of the entire net-list of components and
1 are varied in value during the Monte-Carlo analysis. This
greatly reduced the volume of the source code.
Ptr.
In contrast to LINSIM, HEX has two representations for
array data. The first type is similar to that in LINSIM and
is shown in Figure 6.
Figure 4 The Data Structure of the ELECSIM
Net-list Object Here we are dealing with data related to the periodic
table of elements. It was found that the index of the Z
array represented the atomic number of the element.
General Components Elements with Z greater than 92 (trans-uranic) are not
from
suitable for PIXE analysis. The range of Z is therefore
Coupled Components static. Other aligned arrays such as WGT store the
previous to
branch atomic weight of the element. This data is static in size.
Link
next The majority of the values remain constant during an
branch analysis.

The number of tabulated X-ray absorption coefficients


Figure 5 An ELECSIM Branch Record
and relative-peak-heights for each element is, however,
Initialise - to create the net-list variable. Heavy elements such as lead require many
more coefficients than the lighter elements (iron, cop
•Destroy - to destroy (destruct) an entire net-list per). The accuracy of the results and speed of computa
tion is significantly dependent.on these coefficients.
•Readnet - to extract component information from a
HEX uses large arrays ELB and RLB in common block
branch
XLB (Figure 7) to sequentially store the energies and
•Writenet - to insert a component into a branch of the associated relative peak heights respectively.
net-list
Each element occupies a discrete indexrange. The static
•FindBranch - to locate a component in the net-list array size limited the number of heavy atoms that could
be included in an analysis. Several integer "pointer" ar
•Countcomps - to determine the number of com rays (IPK, EPK) store the reference points of each block
ponents in the net-list of coefficients for a given element according to a
•ConvertAdm - to convert R. L and C components to predetermined sort strategy. One such strategy is to store
their admittance form at a specified frequency, the references in order of increasing energy of the relative
peak. Other integer "pointer" arrays act as pointers into
•Renumber - to renumber a net-list node the previous "pointer" array. A typical HEX code frag
ment of this type is of the form:
•Topology - to perform a topological check on the
net-list 1 PEAK=1.0644
2 SUM=0.0
•SaveNet - to save a net-list in a file on disk
3 DO 250 1=1 TO MRE
•RecovNet - to recover a net-list from a file on disk 4 J=IRX(I)
5 K=Z(J)
IMPLICIT REAL*B(A-H,O-Z) 6 M=IPK(K)

IMPLICIT INTEGER*2(I-N) 7 SUM=SUM+PEAK*RLB(M)


8 250 CONTINUE
COMMON /XRQ/MRE,IPX(93)
COMMON /ZED/Z(99),¥GT(99) where the integer "pointer" arrays are: IRX, Z and IPK
in lines 4,5 and 6 respectively.

This approach does not clearly convey the programmers


intent in terms of the physical modelling. In order to
Z 1 2 92 comprehend the code fragment the software engineer
must interpret the variables:

•MRE as the number of requested elements,


WGT 1 2 92
•IRX as an index into the list of requested elements,
Figure 6 HEX's Atomic Data Structure Array
March 1991 THE TRANSACTIONS OF THE SA INSTITUTE OF ELECTRICAL ENGINEERS 47

•Initialise - to create the atomic data object (construc


IMPLICIT REAL*B(A-H,O-Z)
tor)
IMPLICIT INTEGER*2(I-N)
COMMON /XLB/IPK(93),ELB(1500)1 RLB(1500) •Destroy - to destroy the atomic data object (destruc
tor)
•Readelement - to extract the static atomic data for a
specified element
RLB 1 2 3 4 1500
j-1 •Writelement - to modify the static data for a specified
element
ipk 1 2 3 4 03
^ j •Initsortpeaklist - to create a sort peak list for an
element
ELB 1 2 3 4 1500
•Readsortpeaklist - to determine the relative peak for
Figure 7 The Reference Array Structure in HEX a specified element and energy

•Writesortpeaklist - to insert the relative peak for a


• Z as the index into the atomic data, and IPK as a
specified element and energy
pointer to that atoms relative peak heights in array
RLB. •Readsortattenlist - to determine the X-ray absorp
tion coefficient for a specified element and energy
The overall effect is to obscure the representation of the
data. In addition the integer arrays must be continually •Initsortattenlist - to create a sorted attenuation list
resorted whenever an element is eliminated from the for a specified element
current analysis to prevent fragmentation of the arrays.
•Writesortattenlist - to insert the X-ray absorption
In WITS-HEX the coefficients are stored in dynamic coefficient for a specified element and energy
linked lists. The overall data structure for the atomic data
object is an array of linked lists as shown in Figure 8. This These two examples serve to illustrate how objects are
permitted the linked list object used in ELECSIM to be derived from existing FORTRAN code. Each object is
reused. then described in pseudo-code specifying the data struc
ture and associated methods. Several iterations may be
Each link in the X-ray absorption coefficient list contains necessary before a suitable objects models are defined.
the absorption coefficient, associated energy and a link
to the next node. Each link in the relative peak list
2.5 Designing Processes
contains the relative peak value, associated energy and a
link to the next node. The static atomic data for each The processes are identified by static analysis and execut
element (Z = 1 to 92) such as atomic weight and number ing the original program, noting the individual activities
are grouped together to form the ELEMENT record. (editing, types of analyses). Common algorithms such as
bubble-sorting an array can be identified and frequently
The methods which operate on the atomic data object
replaced with an equivalent module from a reusable
include:
software component library. The processes are
described in pseudo-code. They contain few data items
and coordinate the message passing amongst the objects.
Relative
They can be conceptualised as controller objects. It is
peaks
possible that object operations (methods) may be iden
list
tified that were not originally specified. These must be
added to the relevant objects. Enhanced processes (not
Absorption coef.
present in the original package) may also be designed and
list
added to enhance the overall performance of the pack
age. Each process must be totally independent of the
others. This is to ensure a flat program structure as
shown in Figure 9 with minimal hierarchy. This
eliminates side-effects due to the domino-effect of
modifications to a given process rippling through and
obstructing other seemingly unrelated processes.
Processes can be developed by individual members of a
92 team by enforcing the use of the objects designed in
Section 2.4.

Figure 8 The Atomic Data Structure in WITS-HEX


48 THE TRANSACTIONS OF THE SA INSTITUTE OF ELECTRICAL ENGINEERS March 1991

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.

2.8 System Integration The considerably larger executable source code of


ELECSIM and WITS-HEX is due to:
The individual processes are then coupled to a user-in
terface system to provide a mechanism for interaction • the additional processes added (functions not
between the user and the program. The user communi present in the original programs)
cated with LINSIM using an unforgiving command-line
with over 100 commands and incorporating FORTRAN
formatted I/O. This compelled the user to add blanks
between short options to prevent the parser from not
recognising the command. LINSIM's interface was dis Main screen for Menu
carded in favour of a menu-based high resolution colour graphical and numerical raaulta screen
graphic interface, with optional initial command line
parameters, mouse and co-processor support. This user-
interface is another example of reusable code. The same
interface code was used for the initial version of WITS-
HEX. HEX had minimal user-interface due to its batch
mode of operation. During the WITS-HEX project the Area reserved for information about the current simulation
user-interface was greatly enhanced. This enhanced ver A row for help, status and error mesaages
A row for prompt messages snd function—ke^ menus
sion was then reverse engineered back into ELECSIM.

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.

4. THE ECONOMICS OF SOFTWARE 5. DISCUSSION


RENEWAL The advantages of object-centred design methods for
The total effort expended on the ELECSIM and WITS- program renewal include:
HEX projects has been compared to the approximate
•Encapsulation: It achieves a high level of informa
period of time required to develop the LINSIM and HEX
tion hiding and protection which is important in
programs. The results are illustrated in Table 1.
managing the complexity of large programs and
The estimates for LINSIM and HEX are based on Chen's prevents future extensions to the package from cor
[8] estimate of 4.5 executable source lines per hour for rupting critical data by providing a layer of insulation
highly complex programs, and Boehm's [9] estimate of 3-4 between the data and the processes (eliminating the
executable source lines per hour for small production "domino effect").
teams in a familiar environment on limited duration
•Inheritance: The structuring of the problem domain
projects.
into a hierarchy of classes, each subclass inheriting
The total of 1907 hours for the ELECSIM project has two the properties of its parent class ensures an exten
significant components: the early documentation phase sible structure requiring the designer to devote more
of 396.5 hours and the porting phase of 542 hours. time to conceptualising the problem rather than

Table 1 A Comparison of UNSIM, ELECSIM, HEX and WITS-HEX

LINSIM ELECSIM HEX WITS-HEX


Design Approach Topdown Object-oriented Top-Down Object-oriented
Target machine VAX IBM PC Harris IBM PC
Source Language FORTRAN Pascal FORTRAN Pascal

Exec. Source line 8000 16539 3851 14738


Exec code (EXE) -460 Kb - 201 Kb -280 Kb - 147 Kb
(OVR) ~ 102 Kb 130 Kb
Rel. Exec. Speed 1.00 1.68 1.00 1.60

User-Interface Command Menu-base Batch Menu-based

Graphics Low resolution High resolution Low resolution High resolution


Maintainability poor good very poor good
50 THE TRANSACTIONS OF THE SA INSTITUTE OF ELECTRICAL ENGINEERS March 1991

Table 2 A Comparison of the Productivity Associated with


the Development of the LINSIM, ELECSIM. HEX and WITS-HEX Programs

Exec. Source Development Effort Productivity


(Code Lines) (Hours) (Lines/hour)
LINSIM 8000 (estimated) 2000 - 8000 4.0-1.5

ELECSIM 16539 1907 8.7

HEX 3851 (estimated) 963 - 2567 4.0-1.5

WITS-HEX 14738 482 30.6

methods of solution (functional decomposition) as in


7. REFERENCES
the standard top-down hierarchical approach.
1.Tracz W, Reusability Comes of Age, IEEE Software,
•Maintainability: The processes (effectively a collec
4, (4), 6-8,1987.
tion of calls to object methods) are far more
transparent to a software practitioner who may be 2.Lipworth A.D., Walker A.J., Renewing an Electrical
asked to enhance an unfamiliar package and there Network Simulator Package: Experience and Obser
fore needs to quickly, fully, comprehend it. vations. Trans. S. Afr. Inst. Electr. Eng, 79, (1), 25-37,
1988.
•Modularity: The package can be expanded without
endangering its architecture unlike its top-down 3.Lipworth A.D., Walker A.J., ELECSIM: An In
counterpart ensuring a long software lifetime. tegrated Tool for Linear Electrical Network Prob
lem Solving, Proc. National Workshop on Electronics
•Economic: It permits a scientific or engineering
Education for the 90 's, Univ. of the Witwatersrand,
FORTRAN application program to be economically
Johannesburg, 1 Feb. 1989
renewed so that the intellectual effort expended by
the original programmers can be recovered. 4 Lipworth A.D., Annegarn H.J., Bauman S.,
Molokomme T,Walker A.J., WITSHEX - A
•VerificationandValidation: It provides an economi
Renovated Code for Analysis of PIXE X-Ray Spectra,
cal approach to producing an application from exist Nuclear Instruments and Methods in Physics Re-
ing proven, freely available (public domain)
search,B49,173 -178,1990
programs without restarting from scratch.
5.PRISM - Programs for Programmers, Polyhedron
Current renewal studies are concerned with the gathering
Software, 1988.
of data from the renewal of larger programs of the order
of 32000 lines in the electrical engineering and scientific 6.Biggerstaff T.J., Design Recovery for Maintenance
domains. Techniques under investigation include those and Reuse, Computer, 22, (7), 36-49,1989.
to:
7.Stroustrup B., What is Object-Orientated Program
•Identify means to faciliate aprediction that a given ming?, IEEE Software, 5, (3), 10-20, 1988.
program can be economically renewed
8.Chen E.T., Program Complexity and Programmer
•Predict the cost of renewing the program from Productivity, IEEE Trans. Software Eng., SE-4, (3),
metrics derived from the source code 187-194,1978.

•Identify other CASE tools and environments that 9.Boehm B.W., Software Engineering Economics,
may improve the productivity of software renewal. Prentice-Hall, 1981.

10.Darzi M., Bauman S., Annegarn H.J., HEX User


6. ACKNOWLEDGEMENTS Manual, Internal report, Dept. Oceanography,

Financial support for the renewal projects described in


Florida State University, 1979
this contribution have been received from the Foundation 11.Edward LMN, LINSIM: An Electrical Network
for Research Development, the University Research Simulation and Optimisation Program, Int. J. Elec.
Council of the University of the Witwatersrand, the Eng. Educ., 20, (12), 151 -168,1983
Richard Ward Endowment Fund, and Rand Mines
Limited. Such support is gladly acknowledged. 12.Turbo Pascal 5.5 User and Reference Manual, Bor
land International, 1989
March 1991 THE TRANSACTIONS OF THE SA INSTITUTE OF ELECTRICAL ENGINEERS 51

13. Wiener RS, Pinson LJ, An Introduction to Object-


oriented Programming and C++, Addison Wesley
Pub. Co., 1988

Anthony Lipworth graduated from the University of the Wit-


watetsrand in 1986 with a B Sc. (Eng.) in Electrical Engineering.
His studies towards the M Sc (Eng.) degree were completed in
December 1989. He is currently engaged in fulltime research
studies in software renewal with a view to fulfilling the require
ments of a Ph D degree. These studies have been performed under
the auspices of the Software Engineering Applications Laboratory
in the Department of Electrical Engineering at the University of
the Witwatersrand.
Alastair Walker is an Associate Professor in the Department of
Electrical Engineering. His research interests lie in the field of
software engineering, with particular reference to developing
cost-effective techniques for software systems renewal. He has
been responsible for the formation of the Software Engineering
Applications Laboratory within the Department of Electrical En
gineering, University of the Witwatersrand.

Antony Lipworth and Professor Walker may be contacted at:


Department of Electrical Engineering, University of the Wit
watersrand, P O Wits, 2050, Johannesburg, South Africa.

Harold Annegarn holds a Ph D in Nuclear Physics from the


University of the Witwatersrand. He has specialised in the nuclear
analysis of materials and atmospheric environmental samples
using charged particle beams. He has a special interest in develop
ing compute codes for fitting spectra from proton- induced x-ray
emission analysis. He currently holds the position of Associate
Professor at the Schonland Research Instutite of Nuclear Sciences.

Professor Annegarn may be contacted at: Schonland Research


Centre for Nuclear Sciences, University of the Witwatersrand, P
O Wits, 2050, Johannesburg, South Africa.
52 THE TRANSACTIONS OF THE SA INSTITUTE OF ELECTRICAL ENGINEERS March 1991

A Simple System Executive for Distributed Real-time


Computing Research
V. Lun I.M. MacLeod

ABSTRACT • Various system executives have been built [1,2,3,4,5],


however most of them require extensive assembly
In real-time systems, computer programs must respond to language programming. Our approach has been to
external asynchronous events in an appropriate and base our system executive on a standard
timely manner. Real-time programming addresses the programming language, namely C, and to minimize
design and development of these programs. Our research the use of system-dependent software and assembly
into distributed real-time computing has identified a language programming.
need for a personal computer-based real-time system
executive to facilitate the simulation of distributed real A fundamental requirement for our system executive is
time processes. This paper describes our initial work that it must be able to support concurrent tasks.
towards building such a small and extensible non- Concurrency is an abstract notion which specifies the
preemptive system executive. We also discuss the possible coexistence of several tasks or programs, i.e.,
philosophy behind the design and implementation of tasks which logically execute in parallel. Therefore,
the system executive. The approach taken is to extend concurrent programming principles can be applied
the C language to support concurrency while equally to truly concurrent systems (multiple or
maintaining a high degree of portability. The library of C distributed processors) or to pseudo concurrent systems
functions which support the system executive is (interleaved task execution on a single processor) [6,7].
described. An example is used to illustrate some of the The problems and requirements of synchronization and
fundamental concepts of real-time concurrent communication are the same.
programming.
Strict adherence to the idea that there is a logically
separate processor for each task is an appropriate
INTRODUCTION one [8]. This approach enables the system executive to
be used to conduct distributed computing experiments.
In our research into distributed real-time computing for Intertask communication is via a virtual communication
industrial control and automation, we have identified a interface and shared memory. The mapping of a
need for a personal-computer-based multi-tasking system physically distributed computer system into a collection
executive. Such an executive forms the basis for studying of concurrent tasks is shown in figure 1.
and experimenting with real-time programming
techniques and programming primitives. It also allows us Our strategy has been to develop a system executive that
to simulate distributed real-time computer systems on a is simple, small and efficient. This allows us the flexibility
single computer. The rationale for developing our own a
system executive is:
•Generally, the overhead in terms of size and
PHYSICAL COMMUNICATION MEDIUM
efficiency of larger and more capable operating
t t t
systems is unacceptable in real-time applications. i i
Also, many popular operating systems are designed as
COMP. COMP. COMP.
multi-user systems and are inherently not suitable for
1 2 n
real-time applications.
•The lack of access to internal details and the primary
mechanisms of many existing real-time systems make
SHARED MEMORY
it extremely difficult to customize them and to extend VIRTUAL COMMUNICATION INTERFACE
their functionality. There is also the need to be able t
to determine and control the overheads imposed by a TASK TASK TASK
system executive. 1 1 1

Submitted October 1990


Accepted March 1991 Figure 1 Physical to logical mapping of a
distributed computer system
March 1991 THE TRANSACTIONS OF THE SA INSTITUTE OF ELECTRICAL ENGINEERS 53

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

message queue that contains a maximum of one message.


TASK CONTEXT This message is not consumed by reading but is
(TASK CONTROL BLOCK - TCB) overwritten by a new state message. We place an
STACK - additional requirement that only one task (the owner)
POINTERS may write to the queue, but many tasks (the subscribers)
DATA may read from it. Messages have validity time tags
POINTERS associated with them so that they only have relevance
CODE within a certain time frame. This prevents tasks from
POINTERS using data to early or too late.
- CPU
REGISTERS State messages have the disadvantage that they result in a
high (but steady) load on the communication subsystem.
- CODE - However, we argue that control environments, unlike
SECTION multi-user operating systems such as Unix, have well-
DATA defined and predictable intertask communication
SECTION requirements. Furthermore, to meet real-time demands,
STACK a system must be designed to handle the maximum
AREA message traffic.

Figure 2 A typical task structure


Task scheduling
Task scheduling is a system design and implementation
Synchronization issue that should be transparent to real-time
Synchronization is concerned with the problem of programming. Real-time programs that take into account
restricting the temporal behavior of several concurrent scheduling strategies invariably function incorrectly
tasks that wish to access common data or resources. A when the hardware configuration is changed or the
critical section or critical region is a section of program software is ported to other hardware platforms. Two
in which such accessing occurs. Synchronization important issues regarding task scheduling are pre
mechanisms, such as semaphores and monitors [10], emption and priorities [10].
ensure that no more than one task at a time is allowed to
execute in its critical section. They are essential for Pre-emptive scheduling allows a task to be interrupted
eliminating time-dependent errors in concurrent systems either because it has used up its CPU time-slice or
and for ensuring the correctness of the programs. because a task that has a higher priority is ready to run.
It is generally used in multi-user operating systems to
If the system executive is used to simulate distributed ensure fairness amongst tasks and to give critical tasks
computing, we must take cognizance of the fact that all priority over less-critical ones. Depending on the
the tasks are loosely coupled and synchronization and algorithm employed and the size of the time-slice, there
coordination can only occur via message passing. For can be significant non-productive operating system
example, to implement semaphores, Lamport^s overheads incurred by excessive task switching. Pre
algorithms [6, pg. 43] are preferred because they ensure emption results in non-deterministic behavior that can
that each task only writes to its own local variable make interacting tasks difficult to debug and to verify.
although it may read other variables which may reside
on different computing nodes. We strongly recommend Non-preemptive scheduling or cooperative scheduling
all synchronization mechanisms be implemented using does not allow a task to be interrupted once it has been
only intertask communication facilities. given control of the CPU. It must voluntarily release its
control of the CPU. While task management overhead is
Intertask communication minimal, an errant task may hold the CPU for far too
Message-passing is the only means of inter-task long, resulting in the starvation of other tasks. However,
communication in distributed systems. Messages can the simplicity of operation makes cooperative scheduling
either be state messages or event messages. The an attractive option in many situations.
difference between event messages and state messages is
that event messages are stored in queues at their Priorities can be applied to both pre-emptive and
destination and are consumed when processed by the cooperative systems. It determines the next task that
receiver task while state messages persist until they are should gain control of the CPU. The assignment of
overwritten by the next in-coming message. priority may be according to job size, the importance of
job, the user privilege or the order of arrival. In a pre
The system executive described in this paper only emptive system, a task may interrupt another one with a
supports state messages. Each state message has its own lower priority. Priorities, if incorrectly applied, can also
March 1991 THE TRANSACTIONS OF THE SA INSTITUTE OF ELECTRICAL ENGINEERS

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

Figure 3 Using setjmp and longjmp to implement co-routines


56 THE TRANSACTIONS OF THE SA INSTITUTE OF ELECTRICAL ENGINEERS March 1991

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.

BLACKBOARD OF TIME FRAMES (TF)


(VIRTUAL COMMUNICATION MEDIUM)

TF1 | TF2 • •• I • •• TFn


ft U
SEND (UNLOAD) RECEIVE (LOAD)
(I I)

TF POINTER TF POINTER
STATE VARIABLE STATE VARIABLE
LOCAL VARIABLE LOCAL VARIABLE
TASK 1 • •• TASKn

Figure 5 The intertask communication scheme


58 THE TRANSACTIONS OF THE SA INSTITUTE OF ELECTRICAL ENGINEERS March 1991

System management can lead to substantial computational overhead.


Basic system executive management is performed by a Disabling interrupts before making the DOS call only
background system manager. The system manager is no solves part of the problem because system libraries
different from any other task that the user may create included with the C compiler may also make similar
except it is the first task created by the system executive. calls and the user cannot anticipate when these may
Currently, the system manager performs four important occur.
tasks. Firstly, it checks for keyboard input and routes the •To implement pre-emptive scheduling or time-slicing,
input to the task with the active window. Secondly, it one must remember to save and restore the status of
detects the user request to change active windows (Ctrl- the math co-processor as part of the task switching
LeftArrow and Ctrl-RightAtrow). Thirdly, it invokes an operation. The setjmp and longjmp routines do not
interactive system status task when it detects the Ctrl- store or restore the math coprocessor registers.
FunctionKey_1 key combination. This is described in •It is important to keep in mind under which memory
further detail below. Fourthly, it reads the hardware model the system executive is developed. The Intel
clock and updates the global system clock, represented 80xxx CPU family uses a segmented memory
by the variable XjCLOCK. The default clock resolution is architecture. The physical address is a combination
one second. This can be changed by the user by of a segment address and an offset address. Different
specifying a positive number of clock ticks, using segment:offset combinations may map onto the same
XCLOCKTICK. The global clock is then advanced after physical address which can lead to problems when
the number of clock ticks specified have passed. On the performing pointer comparisons.
personal computer, there are approximately 18.2 clock •Some memory models and C compilers assume that
ticks per second. By manipulating XjOLOCKJHCK, the the data segment (DS) is the same as the stack
system can be made to run in real-time, accelerated or segment (SS). This is not always true. Under the huge
decelerated mode. memory model, every memory allocation using
tnalloc starts in a different segment. Since we
The system status task allows the user to perform several allocate new task stacks in this way, DS is never the
system-level functions. These include the ability to : same as SS. Program code that makes this assumption
•Terminate the system executive. will invariably cause the system to crash.
•Display the actual time and date. •Certain C compilers do not save and restore the extra
•Show the contents of each task control block and the segment (ES) register in the setjmp and longjmp
hash performance of the TCB table. functions. This can have dire consequences because
•Show the contents of each time frame and the hash tasks may point to different parts of the heap memory
performance of the time frame table. using the ES register.
•Show the worst case clock resolution (cooperative •Most C compilers have an option to check for stack
scheduling may violate the clock resolution because overflow. This is invoked at the beginning of every
one task may keep control for too long). function to ensure that enough space is available for
•Allow the user to change the clock resolution local variables. This code is normally not compatible
dynamically (i.e. number of clock ticks per second). with programs using multiple stacks. The user must
•Show the amount of computer memory available. substitute the stack-checking function with a custom
•Temporarily suspend the system executive and exit to function or disable stack checking altogether. The
the operating system. latter option does not eradicate the problem entirely
when the system libraries that accompany the
Limitations of the personal computer Disk Operating compiler have been compiled with the stack
System (DOS) checking enabled.
During the development of the system executive under •Some functions supplied with the system libraries are
DOS, several valuable lessons were learnt. The problems not re-entrant because they use global variables.
documented below are not insurmountable but can •It is important to remember that the stack grows
become time-consuming hurdles if the developer is not downwards, i.e. from high memory to low memory.
aware of them. These problems do not exist in X.Lib When stack space is allocated, the pointer returned
because of the design philosophy adopted. These points to the beginning of empty space which is in
problems can be summarized as follows: fact the top of the stack. The stack and base pointers
•DOS is essentially not re-entrant, i.e. a system call to must be adjusted to point to the top of the empty
DOS must be complete before another is issued [16]. space which is the bottom of the stack.
Therefore, a DOS system call must be treated as a •Finally, unless the system executive is run on a system
critical region. In a cooperative system executive this that contains a math coprocessor or only integer
does not represent a problem because the task arithmetic is performed, a further problem can
cannot issue a DOS call and yield at the same time. In occur. Most C compilers supply a math emulation
a pre-emptive system, the executive must check if a library which can be used in the absence of a math
DOS call has been issued prior to the interrupt which coprocessor. The emulation routines often make use
March 1991 THE TRANSACTIONS OF THE SA INSTITUTE OF ELECTRICAL ENGINEERS 59

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

Figure 6 Diagram of the box sort example


60 THE TRANSACTIONS OF THE SA INSTITUTE OF ELECTRICAL ENGINEERS March 1991

LIGHT BEAM LEVER PHYSICAL


DEVICE DRIVER DEVICE DRIVER SYSTEM
II It

OPERATOR DISPLAY SIMULATION


TASK TASK ENVIRONMENT
II (1

LIGHT BEAM LEVER CONTROL


CONTROL TASK CONTROL TASK MODULES
II U (1 U

INTERTASK TASK INTERFACE


COMMUNICATION

Figure 7 Task organization of the box sort example

System initialization periodically. The source code and logic diagram is


Tasks can be spawned or terminated dynamically once shown in figure 9.
the system executive has been initiated. Alternatively, the
user can specify some of the tasks before cooperative The lever
multitasking begins. The latter method is used in this The lever control task determines whether there is a
example. The user can also insert source code before the box_size message. In addition, a filter is applied to the
system executive is initiated. Figure 8 shows the contents of boxsize. A small box requires the lever to be
initialization phase of the program. in a close position. A large box requires the lever to be in
the open position. The leverJtosition message is sent
The light beam when the box size can be determined. The logic diagram
The light beam task cyclically tests for a interrupt_beam and source code is shown in figure 10.
message. If there is a time-valid message indicating that
the beam is broken, it waits for another two seconds. If System termination
there is another timevalid interrupt beam message, the Each task is essentially autonomous. To stop the system
task concludes it is a large box. Otherwise, the box size is in an orderly manner, a termination message is
determined to be small. A message containing the box broadcast to all tasks. Each task on receiving the
size is broadcast. The task waits for 5 seconds before stop system message will terminate when it is ready to
continuing. This represents the duration required for do so. The contents of the message are not important.
the box to be delivered to the correct bin. The time-out The existence of the message and the fact that it is time-
mechanism is used to broadcast a default message every valid is enough to inform the task that termination has
second indicating that no box has been detected. This is been requested. Typical source code to detect the
used to indicate the current status of the light beam task message and to terminate the task is shown in figure 11.

main() void main (void)


/* user-defined code */ {
/* user code before system executive is initiated */
x initialize system() x initialize system();
}
void x initialize user(void)
x initialize user() {
x_thread(light_beam, "LIGHT BEAM", 4096, 10,"")
/"user-defined code*/ xjhread(lever, "LEVER", 4096, 10,"")
x thread (display "DISPLAY", 4096, 10,"")
/* begin multitasking */ x thread(operator, "OPERATOR", 4096, 10, "")
/* code before multitasking begins e.g. spawn tasks*/
}
Figure 8 Initializing the system executive
March 1991 THE TRANSACTIONS OF THE SA INSTITUTE OF ELECTRICAL ENGINEERS 61

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

CONCLUSION of an operating system encompasses many diverese and


complex issues. No doubt the use of the system executive
Several important observations and conclusions will point to the need to add extensions and make
regarding the design of the system executive can be enhancements to the existing infrastructure which we
made. These are summarized as: hope to report in due course Some immediate
•The ability to provide a software structure which considerations include the incorporation of event
mirrors the physical configuration of the problem is messages, preemptive scheduling and support for task
important. This encourages object-oriented design priorities. While these capabilities are found in many
and modular problem decomposition. real-time system executives, we believe that they should
•The use of a high-level language such as C facilitates only be offered as options rather than as standard
the rapid development of applications and enhances features because they add to the complexity and non-
the readability and portability of the source code. determinism of the application.
•The determinism of programs using a cooperative
scheduler generally facilitates software debugging
and verification.
•State messages do not result in unrealistic intertask ACKNOWLEDGEMENTS
communication requirements since the tasks are
normally loosely-coupled withminimal The suggestions and recommendations of J.E. Cohen on
communication between them. various aspects of the system executive design are
•Cooperative scheduling does not prove to be a appreciated. The insightful comments of the referees
problem in our applications. We are typically which have helped to clarify many issues are gratefully
concerned with well-defined systems in which the acknowledged. This work would not have been possible
tasks, CPU loads and message bandwidths are known without the support of the Foundation for Research
in advance. Such systems must generally be designed Development (FRD).
for full-load conditions to meet stringent real-time
constraints.
•Access to the internal mechanisms of the system REFERENCES
executive allows us to customize and extend it to suit
real-time applications. This results in small and [I]Holub, A. : C chest - a preemptive multitasking
efficient programs that may be targeted for embedded kernel, Dr. Dobb's Journal, M&T Publishing Inc,
systems. December 1987, pp. 126-142
[2] Holub, A. : C chest - a preemptive multitasking
The system executive has facilitated our research into kernel continued, Dr. Dobb's Journal, M&T
distributed real-time computing. The experience gained Publishing Inc, January 1988, pp. 72-84
in its development has been invaluable and has given us [3] Krishnamoorthy, M.S. and Agnarsson, S. :
tremendous insight and appreciation into larger Concurrent programming in Turbo Pascal, Byte,
operating systems. To date, the system executive has also McGraw-Hill Inc., April 1987, pp. 127-133
been used to investigate and test the low-level and high- [4] Foard, R.M. : Multitasking methods, PC Tech
level time primitives required to support real-time Journal, March 1986, pp. 50-61.
intelligent systems. The system executive has enabled us [5] Heath, W.S. : A system executive for real-time
to construct specialized multi-level intertask microcomputer programs, IEEE Micro, June 1984,
communication mechanisms to address the problem of pp. 20-32.
coordinating distributed autonomous intelligent agents. [6] Ben-Ari, M. : Principles of Concurrent
Our neural network research also uses the system Programming, Prentice-Hall International Inc.,
executive for creating of multi-network systems. 1982.
[7] Wilson, C.R. : Coprocessing in Modula-2, Byte,
Although the system executive was built to aid our McGraw-Hill Inc., April 1985, pp. 113-117.
distributed real-time computing research, we believe it [8] Brinch Hansen, P. : Distributed processes : a
can be used in many applications. Firstly, it is an ideal concurrentprogrammingconcept,
vehicle to teach and study concurrent programming Communications of the ACM, November 1978, vol.
concepts. Secondly, it is small enough to be used as an 21, no. 11, pp. 934-941.
embedded real-time executive in specialized hardware. [9] Barnes, J.G.P. : Programming in Ada, 2nd edition,
Thirdly, it could be the basis for a small system for local Addison-Wesley Publishers Limited, 1984.
monitoring and control. Lastly, it is an ideal tool to [10] Peterson, J.L. and Silberschatz, A. : Operating
create simulations of physical systems. System Concepts, Addison-Wesley Publishing
Company, 1985.
This paper has only described a basic real-time system [II]Parker, M.B. : First come, first served, Byte, McGraw-
executive. It should be appreciated that the development Hill Inc., July 1988, pp. 259-270.
March 1991 THE TRANSACTIONS OF THE SA INSTITUTE OF ELECTRICAL ENGINEERS 63

[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

AUTHORS BIOGRAPHY V. Lun B.Sc (Eng), M.Sc (Eng),


Department of Electrical Engineering
VERNON LUN received his B.Sc (Eng) and M.Sc (Eng) University of the Witwatersrand
degrees from the University of the Witwatersrand in 1983 P.O. Wits, Johannesburg
and 1986 respectively. He is presently a research officer South Africa, 2050
in the Department of Electrical Engineering. He is
conducting Ph.D research in distributed real-time I.M. MacLeod B.Sc (Eng), Ph.D,
intelligence and teaches a postgraduate course in expert Department of Electrical Engineering
systems. His current interests include distributed University of the Witwatersrand
computer control, expert systems, neural networks and P.O. Wits, Johannesburg
real-time programming. South Africa, 2050

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.

GENERAL PORTABLE TYPE DECLARATIONS


typedef char BYTE; /* signed, 8 bits 7
typedef unsigned char UBYTE; /* unsigned, 8 bits 7
typedef int WORD; /* signed, 16 bits 7
typedef unsigned int UWORD; /* unsigned, 16 bits 7
typedef long DWORD; /* signed, 32 bits 7
typedef unsigned long UDWORD; /* unsigned, 32 bits 7
typedef BYTE STRING[81]; /* general string 7
THE MENU DATA STRUCTURE
typedef struct X_MENU_STRUCT {
WORDrow; /"window limits*/
WORDcol; /"window limits*/
WORDheight; /•window limits*/
WORDwidth; /* window limits*/
WORDminimum_row; /* mininum starting row*/
WORDminimum_col; /* mininum starting row*/
BYTEborderattribute; /* border attribute*/
BYTEtextattribute; /* character attribute*/
WORD^buffer; /* buffer pointer*/
BYTEheader[81]; /* window header*/
BYTE""contents; /* pointer to menu string*/
WORDmenujtems; /* number of menu items*/
WORDindex; /* current selection*/
BYTEstatus; /* visible or not*/
64 THE TRANSACTIONS OF THE SA INSTITUTE OF ELECTRICAL ENGINEERS March 1991

struct X_MENU_STRUCT "next; /* next window */


} X MENU, *X MENU_PTR;

THE WINDOW DATA STRUCTURE


typedef struct XWINDOWSTRUCT {
BYTE status; /?set if window req. 7
WORD start row; /? window limits 7
WORD start col; /* window limits 7
WORD height; /?window limits 7
WORD width; /?window limits 7
WORD cur row; /? current cursor 7
WORD cur col; /? current cursor 7
BYTE full screen; /? window is full screen 7
BYTE full width; /? window is full width 7
BYTE border attribute; /* border attribute 7
BYTE text attribute; /? character attribute 7
BYTE cursor on; /?cursor is visible 7
WORD page on; /? paging is required 7
WORD ?buffer; /* buffer pointer 7
BYTE header[81]; /?window header 7
X_MENU_PTR menu stack; /? top of menu stack 7
struct X WINDOW STRUCT *previous; /? previous window 7
struct X WINDOW STRUCT *next; /? next window 7
} XWINDOW, *X_WINDOW_PTR;

THE TASK CONTROL BLOCK (TCB) DATA STRUCTURE


typedef struct X TCB STRUCT {
BYTE description[17]; /* task description 7
void (*address)(); /? function address 7
BYTE ?stackmem; /? stack memory pointer 7
UWORD stacksize; /? size of stack 7
jmp but context; /* context of process 7
X WINDOW window; /? process window 7
UWORD error code; /? error code per task 7
void ??time frame ptr; /? list of time frames 7
UWORD max time frames; /* max. time frames allowed */
UWORD time frames used ; /? num. of time frames used ?/
BYTE ?command line; /?command line 7
struct X TCB STRUCT ?previous; /? previous tcb
struct X TCB STRUCT
7
?next; /* next tcb 7
struct X TCB STRUCT ?next table item; /? next item in tcb table 7
} X TCB, *X TCB PTR;

THE TIME FRAME STRUCTURE DATA STRUCTURE


typedef struct XTIMEFRAMEstruct {
BYTE ?system; /? physical system id*/
BYTE ?group; /? logical group id*/
BYTE ?owner; /? owner id*/
BYTE ?name; /? variable is?/
BYTE type[3]; /? data type?/
WORD size; /* data size in bytes*/
time_t start_validity; /?start data validity time*/
timet end_validity; /? end data validity time?/
UDWORD version; /? version number of frame?/
WORD links; /* num. of tasks linked to frame?/
UWORD hashjndex; /* hash index of time frame name?/
void ?data; /? points to contents of time frame?/
struct XJTMEFRAMEstruct ?previous_time_frame; /? previous time frame*/
struct X TIME FRAME struct ?next time frame; /? next time frame?/
} X_TIME_FRAME, *X_TIME_FRAME_PTR;

THE KEYSCAN DATA STRUCTURE


typedef union {
WORD c;
BYTE ch[2];
}XKEYSCAN;
March 1991THE TRANSACTIONS OF THE SA INSTITUTE OF ELECTRICAL ENGINEERS65

SYSTEM EXECUTIVE GLOBAL VARIABLES


extern UWORDX_TCB_MAX;/* maximum number of tasks*/
extern UWORDX_TIME_FRAME_MAX;/* maximum number of time frames*/
extern XTCBPTRX_CURRENT_TCB;/* pointer to current task*/
extern XWINDOWPTRX_CURRENT_WINDOW;/* pointer to current window*/
extern WORDX_GRAPHICS_WINDOW;/* active graphics window flag*/
extern WORDX_GRAPHICS_MAX_X;/* maximum graphics x axis*/
extern WORDX_GRAPHICS_MAX_Y;/* maximum graphics y axis*/
extern timetXCLOCK;/* global clock*/
extern BYTEXKEYBOARDENABLE;/* enable or disable keyboard input*/
extern clocktXCLOCKTICK;/* number of clock ticks per second*/

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

WINDOW FUNCTIONS (rows and columns start from 1)


voidx_attribute(WORD row, WORD col, WORD length, BYTE attribute);
WORDx_create_window(WORD row, WORD column, WORD height, WORD width,
BYTE borderAttribute, BYTE textAttribute,BYTE *header, BYTE visibleStatus);
voidx_clear_window(void);
voidx_page_on(void); /* pause for keypress when window is full */
voidxpageoff (void); /* do not pause for keypress when window is full */

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

TIME FRAME FUNCTIONS


X_TIME_FRAME_PTR x_subscribe_time_frame_name(BYTE 'frameName);
X_TIME_FRAME_PTR x_subscribe_time_frame_owner_name(BYTE 'owner, BYTE 'frameName);
X_TIME_FRAME_PTR x_blackboard(BYTE *systemld, BYTE *groupld, BYTE *ownerld, BYTE *nameld,
BYTE *type, WORD byteSize);
voidx_close_time_frame(X_TIME_FRAME_PTR framePointer);
BYTEx_load_time_frame(X_TIME_FRAME_PTR framePointer, void ^variable,
time_t startValidity, timej endValidity);
BYTEx_unload_time_frame(X_TIME_FRAME_PTRframePo/nfer, void 'variable);
time_tx_minimum(WORD numOfltems, timet firstltem, ...);
timetx_maximum (WORD numO^^tems, time_t f/rsf/fem, ...);
voidx_wait(time_t lengtOfTime);
BYTEx timerftime t 'timer, tirnet de/ay);

APPENDIX B EXAMPLES OF INTERTASK COMMUNICATION PRIMITIVES

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

GENERAL TIME STATEMENTS:


wait(f/meDe/ay)
after(f/mer, timeDelay)
perform
withj/alidityfdu/af/or))
output(variab/eA/ar77e)
March 1991 THE TRANSACTIONS OF THE SA INSTITUTE OF ELECTRICAL ENGINEERS 67

APPENDIX C SOURCE LISTING OF THE BOX SORTING EXAMPLE

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;

void main (void) { set_path(system_1, group 1, lightbeam);


xjnitializesystem (); timeframe(box_size, d);

setpath (system 1, group 1, lever);


void x_initialize_user(void timejrame(lever_position, d);
{
x_thread(light_beam, "LIGHT BEAM", 4096, 10, set_path(system_1, group 1, operator);
x thread (lever, "LEVER", 4096, 10,""); timeframe(stop_system, d);
xthread(display, "DISPLAY", 4096, 10,"");
xjhread (operator, "OPERATOR", 4096, 10,""); while(1)
xbegin
input(box_size) filter (box_size = = small)
XTASK light_beam(void) perform {
{ leverposition = close;
time t timeri;
state_variable(WORD, box_size); with_validity(1)
state_variable(WORD, interruptbeam); output(leverposition);
state_variable(WORD, stopsystem); }
or (box_size) filter (boxsize = = large)
initialize_blackboard; perform {
initializejime; lever j^osition = open;
with_validity(1)
setpath (system 1, group 1, lightbeam); output(leverposition);
time frame(box_size, d);

setpath (system 1, group 1, operator); input(stopsystem) perform


time framefinterruptbeam, d); xjerminatef);
time frame(stop_system, d); xend

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

wait (5); initialize_blackboard;


} initializejime;
onjimeout(timer1, 1) perform {
box size = none; reset timer(timer 1);
68 THE TRANSACTIONS OF THE SA INSTITUTE OF ELECTRICAL ENGINEERS March 1991

reset_timer(timer_2);
reset_ti mer (ti mer_3); x end
reset_timer(timer_4);

x_create_window(2, 1, 10, 80, 0, 0, "DISPLAY", XVISIBLE); X_TASK operator(void)


{
set_path(system_1, group_1, light_beam); X_MENU menui;
time_frame(box_size, d); time_t timer_1;
WORD select;
set_path(system_1, group_1, operator); state_variable(WORD, box_size);
time_frame(interrupt_beam, d); state_variable(WORD, stop_system);
time_frame(stop_system, d); state_variable(WORD, interrupt_beam);
char *menu_1[]= {"SMALL", "LARGE", "STOP SYSTEM"};
set_path(system_1, group_1, lever);
time_frame(lever_position, d); initialize_blackboard;
initializetime;
xwrite (2, 2, X_DEFAULT, "INTERRUPT BEAM : ");
xwrite (4, 2, X_DEFAULT, "BOX SIZE : "); set_path(system_1, group_1, operator);
xwrite (6, 2, XDEFAULT, "LEVER POSITION :"); time_frame(interrupt_beam, d);
xwrite (8, 2, X_DEFAULT, "STOP SYSTEM :"); time_frame(stop_system, d);

while(1) set_path(system_1, group_1, light_beam);


x_begin timeframefboxsize, d);
input (interrupt_beam) perform
x_write (2, 19, X_DEFAULT, "INTERRUPT"); x_create_window(13, 1, 10, 80, 0, 0, "OPERATOR",
on_timeout(timeM, 1) perform XVISIBLE);
x_write (2, 19, X_DEFAULT," ");
x_create_menu(5, 15, XNORMAL, XNORMAL,
input (box_size) perform { "CHOOSE OPTION", menu_1, 3, &menu 1);
switch (box_size) {
case none : reset_timer(timer_1);
x_write (4, 19, X_DEFAULT," ");
break; while(1)
case small : x_begin
xwrite (4, 19, X_DEFAULT, "SMALL"); input (box_size) filter (box_size ! = none) perform {
break; x_print (">");
case large : wait(1);
x_write (4, 19, X_DEFAULT, "LARGE");
}
break; or (interruptbeam) perform {
x_print ("-");
wait(1);
on_timeout(timer_2, 1) perform
}
x_write(4, 19, XDEFAULT," "); on_timeout(timer_1,1) perform {
x_clear_window ();
input (lever_position) perform { select = x_pulldown_menu(&menu1, 5, 5);
switch (lever_position) {
case close : /* note : sending a 1 second msg three times is the same as
x_write (6, 19, X_DEFAULT, "CLOSE "); sending a 3 second msg once */
break; switch (select) {
case open : case 1: withvalidity(i)
xwrite (6, 19, X_DEFAULT, "OPEN "); output(interrupt_beam);
break; break;
case 2: with_validity(3)
output(interrupt_beam);
on_timeout(timer_3, 1) perform break;
x_write(6, 19, X_DEFAULT," "); case 3: with_validity(10)
output(stop_system);
input(stopsystem) perform {
x_destroy_menu (&menu 1);
xwrite (8, 19, XDEFAULT, "SYSTEM STOPPED"); x_get_char();
wait(1);
x_terminate();
count+ +; break;
if (count > 5) /* wait 5 sec then terminate */
x_terminate(); x_remove_menu();
}
on_timeout(timer_4, 1) perform xend
x_write(8, 19, X_DEFAULT, "");
March 1991 THE TRANSACTIONS OF THE SA INSTITUTE OF ELECTRICAL ENGINEERS 69

The Back Propagation Algorithm for Information


Transformation and Pattern Sequencing

V. Lun I.M. MacLeod

ABSTRACT THE BACK PROPAGATION ALGORITHM

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.

The training procedure, as shown in figure 1, can be


KEYWORDS divided into two stages. Firstly, the input pattern is
presented to the network. The activations of the neural
Neural networks, information transformation, pattern units are propagated forward through the layers to
recognition, distributed systems, real-time. obtain the output pattern. Secondly, the desired output
pattern is compared to the actual output pattern to
determine the error in each unit in the output layer.
INTRODUCTION Starting with the output layer, these errors are
propagated backwards until all the weights have been
Our research into distributed real-time intelligence [1] adjusted. The weight changes can be made on a pattern
leads us to examine the applicability of neural networks by pattern basis or can be accumulated and applied only
as a suitable knowledge paradigm for automation when all the input patterns have been presented.
systems. This paper reports on some of our initial
investigative efforts in this regard. Firstly, we describe the
back propagation (BP) algorithm and explain why it was /- ^ y~ "^
chosen. Secondly, we discuss briefly, the implementation
of the algorithm in our testbed called ADROIT. Finally,
we describe several experiments in information
. X1 ^
^n X / ,X—^ YV X—x ky
_xX 1 0

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

computing. They have also served to provide valuable


TRAINING
insight into the capabilities and limitations of neural
PRESENT INPUT - PROPAGATE THE NEURAL COMPARE OUTPUT
networks in general. PATTERN TO DESIRED INPUT
ACTNATIONS THROUGH
THE NETWORK

PROPAGATE ERROR BACKWARD


Submitted BY MAKING THE APPROPRIATE
November 1990 ADJUSTMENTS TO THE WEIGHTS
Accepted March 1991
Figure 1 A typical multi-layer neural network.
70 THE TRANSACTIONS OF THE SA INSTITUTE OF ELECTRICAL ENGINEERS March 1991

One of the attractive features of the back propagation


algorithm is its ability to train multi-layer networks.
Lippman [4] shows that by increasing the number of PC-DOS AND OS/2 OPERATING SYSTEM PLATFORMS
layers in a network, more complex decision regions can
be learnt. For example, the exclusive-or truth table
I t I t I t i t 1 t i t
cannot be represented by a single layer network [5].
However, a two layer network overcomes this problem
easily. It can be shown that the algorithm also solves the
GLOBAL SHARED NAME-SPACE FOR
problems of orthogonality and linear independence that
DYNAMIC INTER-PROCESS COUPLING
besets many of the simpler neural network models [3]

Several limitations regarding the back propagation il It il It il It


algorithm should be noted. Firstly, the training times do
not scale linearly [6], Secondly, introducing a new set of NEURAL GENERIC
SIMULATORS
patterns can disrupt existing learnt patterns. Thirdly, NETWORKS APPLICATIONS
since the algorithm is one of gradient descent and error
minimization, the possibility exists that the network can
become trapped in local minima and cannot escape to ADROIT INFRASTRUCTURE
the global minimum.

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

incorrect default value based on states that may not be


EXAMPLE
allowed to coexist. In the example in figure 4, the input
STATE 1 Input Output
states correspond to temperature settings of low (L),
STATE 2 RV S1 S2 S3 medium (M) or high (H). Since the settings are mutually
REAL Numeric-Symbolic STATE 3 L N H exclusive, the neural network is trained to respond with
VALUE Converter 0.2 1 0 0 an error signal when more than one state is active at a
STATE N 0.5 0 1 0 time or when no states are active. The neural network
0.8 0 0 1 could be one of many interface modules that transform
symbolic data to numeric values for input into control
TRAINING PATTERNS
instrumentation.
Figure 3 Numeric value to symbol mapping

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

011 0.0 1 BITn-1 BIT1 BITO

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

Figure 4 Symbol to numeric value mapping


Figure 5 Multi-bit adder
72 THE TRANSACTIONS OF THE SA INSTITUTE OF ELECTRICAL ENGINEERS
March 1991

INPUTS OUTPUTS REFERENCES


[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

1 1990, pp. 7-12.


[2] Rumelhart, D.E. and McClelland, J.L. : Parallel
- PATTERN n -* PATTERN 0 Distributed Processing: Explorations in the
- Microstructure of Cognition, vol. 1 and 2, A
Bradford Book, The MIT Press, 1986.
Figure 6 Pattern sequencer [3] McClelland, J.L. and Rumelhart, D.E. : Explorations
in Parallel Distributed Processing: A Handbook of
Models, Programs atid Exercises, A Bradford Book,
the outputs are fed back to the inputs. A cyclic sequence The MIT Press, 1988.
of patterns can be observed. Since all neural inputs and [4] Lippmann, R.P. : An introduction to computing
outputs have validity times assigned to them, the timing with neural nets, IEEE ASSP magazine, April 1987,
of the pattern sequence can be controlled. For example, pp. 4-22.
pattern changes can be made to occur once a second or [5] Minsky, M. and Papert, S. : Perceptrons: An
some patterns may be valid for longer periods than Introduction to Computational Geometry,
others. This leads to the possibility of sequencing a series Cambridge, MIT Press, 1969.
of time-based actions such as processing recipes or [6] Hinton, G.E. .• Connectionist learning procedures,
batches in a process control plant. Artificial Intelligence, 40, Elsevier Science
Publishers B.V. (North Holland), 1989, pp. 185-234.
[7] Lun, V. and MacLeod, I.M. : Distributed intelligent
CONCLUSION objects in an architecture for real-time monitoring
and control, 2nd IEAC Workshop on Artificial
Our current view of neural networks is that they are Intelligence in Real-Time Control, People's
knowledge paradigms that complement other artificial Republic of China, Sept. 1989, pp. 54-59.
intelligence techniques such as expert systems. Neural [8] Lun, V. and MacLeod, I.M. : A testbed for distributed
networks are useful in situations where flexible input to real-time intelligent computing, South African
output mapping is required. They are especially Journal of Science, in press, 1991.
applicable when the input patterns are susceptible to
noisy conditions. Their learning capabilities are
important when no formal logic model can be AUTHORS
constructed to map input patterns to output patterns.
Since no searching is involved, the efficiency and
V. LunI.M. MacLeod
predictability of neural networks is significant, especially Dept. of Electrical Engineering Dept. of Electrical Engineering
if they are to be used in real-time applications.
University of the Witwatersrand University of the Witwatersrand
P.O. WITS, JohannesburgP.O. WITS, Johannesburg
We have found the back propagation algorithm to be a South Africa, 2050South Africa, 2050
good neural network model with a sound mathematical
basis. Its ability to train multi-layer networks allows it to AUTHORS BIOGRAPHY
accommodate decision regions that are much more
complex than those discussed in this paper. ADROIT has
VERNON LUN received his B.Sc (Eng) and M.Sc (Eng) degrees
shown to be an ideal platform for supporting multiple from the University of the Witwatersrand in 1983 and 1986
neural networks. Our experiments thus far indicate that
respectively. He is presently a research officer in the
neural networks are useful for coupling symbolic and
Department of Electrical Engineering. He is conducting Ph.D
numerical computing and for pattern sequencing. We research in distributed real-time intelligence and teaches a
believe that they are highly relevant in many engineering
postgraduate course in expert systems. His current interests
applications where different levels of information
include distributed computer control, expert systems, neural
abstraction often exist. Further investigation will yield
networks and real-time programming.
many other interesting application areas. We intend to
report on future developments in due course.
IAN MacLEOD received his B.Sc (Eng) and Ph.D degrees from
the University of the Witwatersrand in 1973 and 1983
respectively. He is Fuchs Professor of Control Engineering in
ACKNOWLEDGEMENTS the Department of Electrical Engineering and has teaching and
research interests in the fields of digital control, distributed
This work would not have been possible without the support of
computer control systems, real-time programming and
the Foundation for Research Development (FRD). engineering applications of artificial intelligence.
March 1991 THE TRANSACTIONS OF THE SA INSTITUTE OF ELECTRICAL ENGINEERS 73

EXPERIMENTAL AND SIMULATION FACILITY OF A WIND POWER


CONVERTER, UTILISING AN OVER-SYNCHRONOUS ELECTRONIC
SCHERBIUS CASCADE

JHR Enslin JD van Wyk


Dept of Electrical Engineering Energy Laboratory
University of Pretoria Rand Afrikaans University
PRETORIA, SOUTH AFRICA JOHANNESBURG, SOUTH AFRICA

ABSTRACT this variable speed region is made large enough, the


possibility arises to operate a fixed pitch wind turbine and
refer the entire power control function to the electrical
An experimental and simulation facility for the conver
side [15]. However, as only limited variable speed opera
sion of wind energy into electrical energy for feeding into
tion is possible with a conventional induction generator,
the supply grid is studied, by using an induction generator
since the efficiency becomes proportional to the speed,
with wound rotor and electronic rotor cascade with sup
it has led to the investigation of the oversynchronous
ply commutated inverter. An experimental setup, includ
operation of a slip ring induction generator with rotor
ing a laboratory system with extensive converter
power fed back to the supply [2,3,4,16,17] (electronic
controlled dc machine as simulated wind turbine, a prac
Scherbius cascade) for wind power conversion [6,15,18].
tical wind tower system with data capture facilities and a
In this case the variable speed is possible, with control on
maximal, self-adaptive power controller, is discussed.
the electrical side only. The system is suited for applica
Some results on all the systems are presented, the
tion to conventional horizontal-axis wind turbines, as well
feasibility of the system is established experimentally and as to vertical axis machines, such as Savonius or Darrieus
problem areas are pointed out.
types. For vertical axis machines that are not self-
starters, the system has the additional attraction that it
can be used to start the turbine in its motoring region
without any additional components.
WIND ENERGY CONVERSION

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.

(iii) Efficiency and applicability over power range


(iv) Supply interaction and contamination

The systems suggested in Fig 2 will all have approximately


the same supply interaction, as they use a supply com-
mutated converter as inverter to the supply system. Al
though the power factor for this type of converter as seen
Ir
by the supply system will be very low for low dc input
voltages to the inverter, these voltages will occur at low 1 -rt-
L't (b)
powers on all three systems, so that the power factor will
increase with increasing generator speed and power.
Ml' M2'
Forced commutated converters at higher switching fre
quencies are not discussed here, due to higher costs,
higher complexity and higher losses at larger power
ratings, compared to supply commutated converters.

The most important difference between the systems lies


in the considerations under (i) and (iii). Maintenance
and reliability, especially for equipment that should be
capable of working unattended for extended periods,
requires that mechanical commutators should be
avoided. However, the main limitation of the system
using a dc generator probably lies in the limitation on
building these machines for higher voltages, and this
would limit the power level of the system to some 500 kW
or below, due to the sharply increasing cost of building
inverters for very high currents, as well as the added cost
of additional transformers on the supply side to adapt the
system to the grid voltages at higher power levels. The
Fig 2: System configurations for VSCF wind energy
supply interaction of all these systems is nearly equivalent systems
and forced commutated converters which result in less
The generator system shown in Fig 2(d), uses a standard
supply contamination are currently not cost effective in
squirrel cage induction machine (SCM) of lower cost,
larger power ratings for these applications.
than the Scherbius cascade of Fig 2(c). Furthermore the
speed range is not limited to oversynchronous operation
With reference to Fig 2(b) and (c), it is known that but is limited by the capacitor bank for wide speed range
slip-ring induction machines and synchronous machines applications. The converters Ml'" and M2'" have to be
are built up to the highest powers [17], so that this should rated for the total power flow, similar to 2(b).
not impose any limitations on the system. Regarding
requirement (ii) stated above, there is an important fun
damental difference between these last two systems. The EXPERIMENTAL INVESTIGATION OF THE
rectifier Ml", dc link inductor Lx" and inverter M2" do ELECTRONIC SCHERBIUS CASCADE
not handle all the system power, but only that part that
does not pass through the stator of the induction gene FOR WIND ENERGY CONVERSION
rator to the supply.
In order to evaluate the electronic Scherbius cascade as
a generator for wind energy conversion under both
The rectifier Ml', inductor Lt' and inverter M2' always
laboratory and actual wind conversion conditions, a
handle the full system power. These power flow charac
simulated turbine driven system was set up in the
March 1991 THE TRANSACTIONS OF THE SA INSTITUTE OF ELECTRICAL ENGINEERS 75

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].

In the laboratory system a 5 kW, 220 V dc machine DCM,


is coupled to a 5 kW, 4 pole slip-ring induction machine
Turbine Simulating Facility
IM. This machine is mechanically strengthened to
operate up to double synchronous speed. The operation
and characteristics of oversynchronous electronic cas
cade systems are well known [2,3,4,16,18]. It should be
noted that two non-ideal characteristics affect the opera
nt A/D
tion of this system in an important way. Due to the "v. CONV
presence of the rotor rectifier Ml, characteristic har
monics at the rotor frequency occur, which are reflected vw
into the stator at variable frequency, dependent upon the
slip. Furthermore, due to the finite value of the inductor
Lt, supply frequency ripple is also introduced into the A/D (n)
v.
WSG
rotor currents. This limited size of the link inductor also CONV
introduces variable frequency ripple of the rotor currents
into the supply via the inverter M2, so that both the stator
current and the rotor inverter current will contain non- (a)
characteristic harmonics of line frequency and har
monics at totally unrelated frequencies [13].
RST

Fig 3: Wind converter system in the laboratory


Analysis of induction machines with rotor converters has
established theoretically and experimentally [5] that the
relationship between the electromagnetic torque and the
mean dc link current may be written as:
Te = Kt.It(1)

under the assumption that the dc link current has


negligible ripple and the influence of the rotor im
pedance on the rotor rectifier may be neglected. Under
these circumstances the constant is given by:

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

Practical Wind Tower Facility

A wound rotor induction generator with electronic


Scherbius cascade, identical to the unit described in the
previous paragraph, has been installed on a wind tower
with a horizontal axis wind turbine as shown in Fig 5(a).
The unit uses a 1:10 gearbox to change speed from the
specified range for the wind turbine (150 r/m to 300 r/m)
and has been operated with the 3 kW, three bladed unit
shown, as well as with other turbines. Turbine pitch is
fixed during conversion, and all control is done electri MULTIPLEX UNIT
cally. The wind tower is installed on a base six stories
above ground level on top of the laboratory building in a
free air zone. Unfortunately the adjacent structures,
although lower, still impart some turbulence to the air
flow.

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

MAXIMAL POWER CONTROL MPPT Controller

Maximisation of the power extracted from the wind im


The implementation of maximal power control in solar plies that the product of force and speed on each element
and wind energy systems is a fundamental requirement of the wind turbine blades should be maximised. As this
[9,10,11] to reduce the cost of electricity generated by is impractical, a next approximation would be to maxi
these systems. Due to the stochastic variation in energy mise the product of torque and speed on the wind turbine
flux from these sources, the controller should be self- shaft. As this would imply installation of additional
adaptive to follow the system operating conditions [9,18]. torque and speed sensors at this point, resistant to the
There are several possibilities to structure this controller severe ambient conditions the turbine is subjected to, it
[6,11], but for the present system it has been decided to is also considered impractical. From another point of
use microprocessor technology, since data processing view it could be attempted to maximise the power sup
capability is needed to handle higher level control func plied to the electric power system, necessitating accurate
tions. For control of solar power converters with tracking real time power measurement. With a view to the
of the sun and high level concentration it has already been proportionality between generator torque and dc link
shown [10,11] that the self-adaptive power controller current, as indicated in eq 1, the maximal power control
should be part of a self-structuring, multi-level system in ler maximises the product of this dc link current and the
order to decide the mode of operation. As a wind energy generator speed. The dc link current and generator
system shows similar characteristics, it is expected that speed have to be measured for protection purposes, and
this would also prove true in the case of the present therefore the power controller does not introduce any
system studied, therefore necessitating the use of a additional complications in this regard.
microprocessor in any case.
RST As shown in Fig 6(a), the signals proportional to Pm is
merely computed and compared to the previous value.
When the result is positive, the process is repeated for a
lower speed. The outcome of this next calculation then
decides whether the generator speed is again to be in
creased or decreased by decrease or increase of the dc
link current through setting the reference value of the
current loop CL of the inverter M2. Once started, the
controller continues to perturb itself by running through
the loop, tracking to a new maximum once the operating
point changes slightly. Figure 7 shows the operation of
the controller. The output power increases until a maxi
mum value is experienced. The controller then pertur-
bates on the maximum power level.

/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

Fig 9: Data captured on wind tower facility


(c)
Fig 8: Oscillograms of system behaviour
The power flow through the generation system was
measured and plotted in Fig 10. The input power Pdc, to
the dc-machine DCM, as shown in Fig 3, is plotted with
Some selected results are shown in Fig 8, 9 and 10. The a peak at 3000 rpm of around 4 kW. The output from the
total system supply current of Fig 8(a) in relation to the stator of the induction machine Ps is around a relative
system voltage indicates clearly the deterioration and constant, as a function of speed, while efficiencies of the
system power factor due to the reactive power [13,14] and inverter M2, the transformer between the rotor cascade
the associated harmonic distortion [13,14] at the speed of and the supply, the V-belt coupling and the machine used
1900 r/m. From Fig 8(a) the distortion is chiefly generated in the simulating facility, can easily be calculated from the
by the inverter, while the effect of the finite value of the figure. More elaborate discussions and experimental
dc inductor is also in evidence as has been pointed out in evaluations of the system can be found in reference 14.
previous paragraphs. The relationship between wind From these power measurements it can be gathered that
March 1991 THE TRANSACTIONS OF THE SA INSTITUTE OF ELECTRICAL ENGINEERS 79

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

1.Jayadev, TS; "Windmills stage a comeback. IEEE


Spectrum, pp 45-49, Nov 1976.

2.Stohr, M.. Elektrotechnik und Maschinenbau. Etz


Archiv, Vol 57, pp 581-591,1939.

3.Stbhr, M. Elektrotechnik und Maschinenbau. Etz Ar


chiv, Vol 58, pp 177-186,1940.

4.Meyer, M.. Ober die untersynchrone Stromrichter-


kaskade. Etz Archiv, Vol 82, pp 589-596,1961.

5.Van Wyk, JD. Variable speed ac drives with slip-ring


induction machines and a resistively loaded force
commutated rotor chopper. IEE Electric Power
Applications Journal, Vol 2, no 5, pp 149-160,1979.

6.Van Wyk, JD. Electro-wind energy system with over-


synchronous cascade and simple adaptive maximal
power control, in: SUN-II, Eds K W Boer, B H
Glenn, Vol III, Pergamon Press, pp 2291-2295,
Fig 10: Power measurements in the simulating 1979.
facility
7.Sato, N, Y Hayashi, H Umida. A system of induction
generator with static exciter and paralleled to ac
power lines. Conf Rec, IEEE/IAS, ISPCC, Orlan
do, pp 295 -305,1982.

CONCLUSIONS 8.Van Wyk, JD, H J le Roux. Progress on a practical


wind energy system with an induction generator,
oversynchronous electronic cascade and maximal
The experimental work reported has indicated that a power control. Proceedings, BWEA, International
wound rotor induction generator with electronic rotor Conf on Wind Energy, Grighton, UK, (LF Jesch
cascade (electronic Scherbius cascade) maybe employed Ed, published by BHRA Fluid Engineering,
over a wide speed range for constant pitch operation with (1981),pp 185-190, Aug 1981.
wind turbines. The turbine simulator developed by using
a controlled dc machine has enabled the testing to the 9.Boehringer, AF. Struktur und Regelung von Ener-
system under reproducible conditions in the laboratory, gieversorgungs- systemen in Satelliten. Etz Archiv,
while the capture of operational data from the practical vol 92, no 2, pp 114-119,1971
wind tower facility as described, enables the subsequent
testing of the laboratory system under the same condi 10.Swart, PL, JD van Wyk. Source tracking and power
tions. flow control of terrestrial photo-voltaic panels for
concentrated sunlight.Proceedings of the 13th
IEEE Photo-voltaic Specialists Conference,
The experimentael facility is thus adequate for capturing
Washington, pp 700-705,1978.
wind data which can be used for the simulation facility. It
80 THE TRANSACTIONS OF THE SA INSTITUTE OF ELECTRICAL ENGINEERS March 1991

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.

12.Harashima, F, H Inaba, K Tsuboi. A closed loop


control system for the reduction of reactive power SYMBOLS
required by electronic converters. IEEE Trans Ind
Electron Control Instrum, Vol IECI-23(2), pp 126,
1976. It mean dc link current (A)
AP Qt/Vw:tip-speed-ratio
13.Enslin, JHR, JD van Wyk. A new control
philosophy for power electronic converters as fic IA mean armature current, dc machine (A)
titious power compensators. Transactions on
Iv mean field current, dc machine (A)
Power Electronics, vol PEL-5, no 1, pp 88-97, Jan
1990. KT torque constant, induction generator
Km torque constant, dc machine
14.Enslin, JHR. Structure, behaviour and control of
systems for optimal utilization of electrical energy, Te torque, induction generator (N-m)
generated from the wind under dynamic condi Tm torque wind turbine shaft (N-m)
tions. Ming dissertation (in Afrikaans), Energy
Laboratory, Rand Afrikaans University, Johannes m number of machine phases
burg, Nov 1983 mb number of rotor rectifier phases

n number of pairs of poles, induction generator


15.Van Wyk, JD, JHR Enslin. A study of a wind power
converter with micro-computer based maximal Vro mean rectified rotor voltage at standstill
power control utilizing an oversynchronous
Qt angular speed, wind turbine (rad s" )
electronic Scherbius cascade. Proceedings of the In
ternational Power Electronics Conference, ^m angular speed, wind generator shaft (after
IPEC-88, pp 766-777, March 1983. gearbox) (rad s" )
CDs angular frequency, power supply, (rad s" )
16.Erlicki, MS. Inverter rotor drive of an induction
motor. IEEE Transactions on Power Apparatus Vw wind speed (ms" '
and systems. Vol PAS-84, no 11, pplOll-1016, Nov Pdc power input to DC machine for the simulating
1965 facility (W)
17.De Mello, FP. Large scale induction generators for Pt power output from rotor cascade before the
power systems. IEEE Transactions on Power Ap inverter (W)
paratus and systems.Vol PAS-100, no 5, Pr power output from rotor cascade (W)
pp 2610-2618, May 1981.
Ps power output from induction machine stator (W)
18.Tauchiya, T. Suboptimal control of a static Scher Pn total power output from induction machine via
bius induction motor system using a micro-proces transformers (W)
sor. IEEE Transactions on Industry Applications.
turbine power coefficient
Vol IA-16, no 5, pp 686-699, Sept/Oct 1980

Submitted November 1989


Accepted March 1991
March 1991 THE TRANSACTIONS OF THE SA INSTITUTE OF ELECTRICAL ENGINEERS 81

Some Design Considerations for Biconical Antennas


Derek A. McNamara, Dirk E. Baker and Louis Botha

ABSTRACT approximations in order to satisfy the required boundary

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

coefficient. techniques developed by Mautz and Harrington [2] for


bodies of revolution (BOR's) are ideally suited to

KEYWORDS symmetrical shapes such as the biconical antenna. Because

Biconical antenna, feeding mechanism, radiation pattern the method is general, the same computer code can be used

analysis. to study the radiation properties of variants of this antenna


(eg. biconical with end caps). The effect of the finite
groundplane of a discone can also be ascertained via these

INTRODUCTION BOR methods. We will confine our attention here to the

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.

method techniques of Mautz and Harrington [2] to predict


the radiation patterns of these antennas, and describes a
practical feed point arrangement for fine-tuning the antenna FEEDPOINT TUNING MECHANISM

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

frequency range for an antenna with 8o = 60and D = 147mm.


This is particularly advantageous when using the biconical
antenna with a polariser.

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.

[3] W.L.Barrow, L.J.Chu and J.J.Jansen, "Biconical Dr DE Baker


electromagnetic horns", Proc. IRE, Vol. 28, pp.769- B.Sc.(Hons)(Rhodes), M.Sc.(Rhodes), Ph.D.(Ohio State
779, Dec. 1939. (Correction in Vol.39, 1951) Univ.), Pr.Eng., SMIEEE, MSAIEE, EM-Lab (Pty) Ltd.,
Pretoria, South Africa.
[4] J.D.Kraus, Antennas, McGraw-Hill, New York, 1950
Mr L Botha
[5] J.R.Wait, "Electromagnetic radiation from conical B.Eng.(Pret), MIEEE, MSAIEE
structures", Chap.l in : R.E.Collin and F.J.Zucker DAST, CSIR, Pretoria, South Africa
(Edits.), Antenna Theory, Part I, McGraw-Hill, New
York, 1969.

[6] G.H.Brown and D.M.Woodward, "Experimentally


determined radiation characteristics of conical and
triangular antennas", RCA Review, Vol.13, No.4,
pp.425-452, Dec. 1952

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

Fig.2 Computed () and measured () E-plane patterns of a biconical


(©o = 60\ D = 55mm) at (a). 8GHz, and (b). 12GHz

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

Enhanced Diagnostic Procedures for Partial Discharge


Measurements in Rotating Machines
S.A. Higgins and J.P. Reynders

Abstract at service voltage is extremely high. Peak discharge


magnitudes of tens of thousands of picoculombs are
It is well known that partial discharge activity is re
frequently encountered.
sponsible for t-he deterioration of electrical insulation.
In very broad terms partial discharge activity can
In addition, partial discharge activity is also evidence
take place either in the overhang or in the cell insu
of a degraded insulation system. Despite these facts
lation in the slots of a machine. Discharges in the
no significant correlation has been found between par
overhang will tend to be concentrated in the high
tial discharge activity measured at the terminals of
and non-uniform fields adjacent to the magnetic core.
a rotating machine and the state of the insulation.
Much of the discharge activity in this area will be on
In this paper it is proposed that the anomaly occurs
the surface of the overhang windings. This is a well
because partial discharge measurements at the ter
ventilated space and despite the fact that the dis
minals of the machine are dominated by surface par
charges will probably be extremely large, it is unlikely
tial discharge activity in the overhang of the winding.
that they will result in any significant deterioration.
These overhang discharges are not very damaging and
In contrast to this, defects in the cell insulation in
mask the effects of small, but very damaging, dis
the slot section of the coils will result in relatively
charges within the cell insulation in the slot area of
small discharges, but with very deleterious effects [3],
the winding.
[4]. There is clearly a need for an on-line method to
An instrument is described which can distinguish
measure partial discharge activity in such a way that
between partial discharge activity in the slot and in
slot and overhang discharges can be distinguished. To
the overhang. This instrument is used to make mea
this end a special purpose instrument was built which
surements on a stator where the cell insulation in the
makes use of a discrimination technique to distinguish
slot area has been deliberately damaged. These mea
between discharges in these two particular areas.
surements vindicate the proposition made above.

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^ -

at a particular point in time, and their respective po 20 -—


larities. If all three channels have discharges with the ^" 1
0
same polarity, such a discharge can be assumed to 0 i :i 3 I 5 3 7 8
originate outside of the test circuit and be rejected as kV
noise. If the slot detector has one polarity and the
coupling capacitor and overhang detectors the oppo pCxlO3
site polarity, it can be assumed that the discharge 16
originates in the slot. In a similar way discharges
originating in the overhang can be identified. 12 -
The instrument is calibrated in situ using a small 'if
portable calibrator, positioning it, in turn, at each . f •- - —
channel.

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

at a position approximately 1.0 cm away from the


corona shield. These points were connected together 800
and formed the low voltage connection for the over
hang capacitance. The stator core was isolated from
400
earth and formed the low voltage connection for the
slot capacitance. A 1000 pF coupling capacitor was .-?'
used for the third channel. 01234567
A series of partial discharge measurements were kV
made on the coils and then a second series was made
Figure 4: Total discharge per cycle in the slot
after one the coils had been damaged by removing
some of the cell insulation between the conductor and
slot side.
THE TRANSACTIONS OF THE SA INSTITUTE OF ELECTRICAL ENGINEERS
March 1991

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

3.2 Observations with a Damaged -1 *L_LLJ


Coil 1 4 5
kV
Since no darqage was made to the overhang, no dif a.Before coil damage
ference in discharge activity in the overhang was ob
b.First run after damage
served.
Total partial discharge activity per cycle in the slot c.Second run after damage
before and after the damage is shown in Figure 6.
The damage was sufficiently severe to cause complete d.Third run- after damage
breakdown of the insulation at 4kV on the 4th ap
e.Fourth run after damage
plication of voltage. However, as will be seen from
Figure 6, the increase in discharge activity per cy Figure 7: Increase in peak slot partial discharge before
cle was clearly noticeable, but not as spectacular as breakdown
would be hoped. At 2kV where was little difference
between the measurements. While at 3kV and 4kV
the damaged coil produced roughly twice the level of 4Conclusions
activity that was found in the undamaged coil.
Partial discharge activity in the overhang and slot
portions of a high voltage motor winding can be
distinguished by using a multi-channel partial dis
charge detector and applying pulse discrimination
techniques.
Partial discharge activity in a healthy overhang of a
rotating machine will be much larger than partial dis
charge activity occurring in the slot of a machine even
in the presence of major defects. This means that par
tial discharge measurements made on the terminals of
a machine cannot be effectively used to identify local
damage in the slot section of the insulation unless
steps are taken to exclude partial discharge activity
12345678
in the overhang.
kV
a.Before coil damage
5Acknowledgements
b.After coil damage
The authors wish to acknowledge the support of the
National Energy Council and of the University of the
Figure 6: Partial discharge activity per cycle before and Witwatersrand in funding and supervising this re
after damage to the coil search.
This paper was first presented to the Sixth Interna
Figure 7 shows the increase in partial discharge ac tional Symposium on High Voltage Engineering New
tivity with repeated application of the voltage prior Orleans USA August 1989. It is published here with
to breakdown. The peak partial discharge shows a permission.
much greater increase in the presence of a damaged
coil than does the total discharge per cycle. However,
this level of activity in the slot is still much smaller
March 1991 THE TRANSACTIONS OF THE SA INSTITUTE OF ELECTRICAL ENGINEERS 87

6 References 7.Black LA. "The suppresion of noise in par


tial discharge measuring circuits with particu
1.Simons J.S. "Diagnostic testing of high voltage lar reference to the testing of cables and other
machine insulation - a review of ten years experi low- impedance components". Dielectric Materi
ence in the field". IEE Proceedings, Part B, Vol. als, Measurements and Applications Conf. Lan
127 No. 3, pp. 139-154, May 1980. caster, Sept. 1984.

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.

Submitted April 1990


Accepted March 1991
THE TRANSACTIONS OF THE SA INSTITUTE OF ELECTRICAL ENGINEERS
March 1991

The Influence of the Arc Root in Flashover Models


of Polluted Insulators with Practical Shapes
J.P. Holtzhausen and L.P. du Toit

ABSTRACT Both authors used an arc equation of the


following form:
A simple model for insulator flashover is Va = x A I"
developed to include the effect of the (2)
current concentration at the roots of the In addition the applied voltage V must
partial arcs that form on the insulator exceed the reignition value to ensure arc
surface. The resistance of the conducting reignition following a current zero. Claverie
layer on the surface of insulators with used an empirically derived relation of the
practical shapes is derived, using a finite following form
element approach. These resistance functions
are incorporated into existing flashover V >= x N I""
models to predict leakage currents and (3)
insulator flashover.' Rizk considered a thermal reignition
model, including all the conditions
affecting heat transfer from the arc
KEYWORDS: column. After some assumptions a
relationship including the same parameters
as equation (2) is obtained.
AC Insulator pollution, leakage current.
Verma's I-max theory is derived largely
from Claverie's model.
INTRODUCTION
The constants in (1) and (2) are given the
following values:
A study of all the models proposed since
1939 confirmed two basic models that are A = 10, N = 80 and n = a =0,5.
particularly useful for AC pollution
flashover, those due to Claverie [1] and Manipulation of equations (1) and (2) leads to
Rizk [2]. Both these models employ the a simple relation for the maximum current
equivalent circuit shown in figure 1 with above which flashover is inevitable [3].
the non linear arc resistance in series
with the linear pollution layer resistance. I-max = (53,3 L/V)2 (4)
with L : creepage path length in mm
DRY BAND LENGTH - X LAYER LENGTH - L-X V: voltage across insulator in
volt.

Verma measured this current in the half cycle


just before flashover when the salt fog
salinity is just above the withstand
value. Good correspondence with equation
(4) was obtained for different insulator
shapes [3]. Other researchers are also in
agreement that maximum leakage currents prior
V= 10 * X / J\+ R(L-X) I to flashover are in accordance with this
equation.
( ARC CIRCUIT EQUATION)
ALSO: V>=80*X/yr( REIGNITION VOLTAGE) The above mentioned correlation between
theory and experimental results is somewhat
surprising, considering the assumptions
Figure 1: Equivalent circuit of insulator underlying Claverie's model. In particular,
with arc of length x in series with pollution a pollution layer, varying linearly with
layer resistance of length L-x. distance is supposed. This assumption may be
approximately true for long rod insulators,
The pollution layer resistance R(L-x) is but for insulators like cap and pin
assumed to decrease linearly as the arc insulators, the current concentration at the
length x increases. The voltage equation for arc root plays an important role. Analysis of
this circuit is peak leakage currents, measured during salt
fog tests for varying salinity and voltage
V = V. +R(L-x) I (1) stress, indicate some deviation from the
simple Claverie model [4]. Claverie's
obtained an indication of a linear
relationship by indirect measurements on
energised insulators, but some of his
measurements have been questioned [2J. Khalifa
Submitted February 1990 [5] expanded Rizk's work to include a simple
Accepted May 1990 model of the surface layer of a cap and
March 1991 THE TRANSACTIONS OF THE SA INSTITUTE OF ELECTRICAL ENGINEERS

pin insulator, including the arc root.


Gopal [6] included a factor to allow for the
arc root, but his model did not include
reignition effects.

REVISED THEORETICAL MODEL

The procedure pursued in this research is


to develop a model that is based on the
the layer resistance of insulators with
practical shapes, while also including the
effect of the current concentration at the arc
root.

In an attempt to obtain a more accurate


representation of the surface resistance of (a)
practical insulators, a finite element program
was developed. This model approximates the
contours of the real insulator by planar,
cylindrical and conical surfaces. These
surfaces are opened-up and the current flow OUTER EDGE
field is solved in two dimensions while
enforcing continuity at the boundaries of the
separate regions. An efficient sparse matrix
method is used to allow solution of relatively BOTTOM
complex problems with up to 700 elements on
a XT personal computer. The finite element
program was used to obtain a resistance
model for a cylindrical, a long rod and a cap
and pin insulator. The following partial arc
models were assumed, based on video and
photographic records of flashover processes (b)
in a small clean fog tent:
Figure 3: Element subdivision and
equipotential plot for long rod insulator in
figure 2(b).
a)A 800 mm long, 100 mm diameter cylinder a)element sub-division
with a partial arc across a single dry band as b)equipotential lines.
shown in figure 2(a).

b)A porcelain long rod insulator, Choice of arc root radius


consisting of 7 sheds. Dry bands, spanned
by arcs terminating on the adjacent wet In modelling the layer resistance, it is
pollution layers, exist on the portions necessary to decide on a radius for the arc
with the smallest diameters. (See figure root radius. Swift [7] suggested a value of
more or less 1 mm for direct currents of the
order of 1 ampere. Various researchers [8,2]
c) Three standard glass cap and pin commented on the somewhat extended nature of
insulators with dry bands and associated arcs the arc root, due to corona along the
at the top and bottom of each disc as shown in pollution layer at the arc tip.
figure 2(c).
In order to establish some basis for the
By way of an example, the element subdivision choice of a value a test was conducted, using
and resulting equipotential plot for one shed a 150 by 150 mm glass plate, polluted by a
of the long rod insulator is shown in figures saline kaolin slurry. The surface
3 (a) and (b). conductivity was derived from measurements
between the edges of the plate.

GLASS
SIMULATED INSULATORS
n LAYER

DRY BAND —

Figure 4: Test set-up to determine equivalent


arc root radius.

As shown in figure 4 , an electrode,


GLASS LONG ROD CAP AND connected to a 1000 V ac transformer, was
CYLINDER INSULATOR PIN brought near the conducting layer and the
? INSULATOR peak current was measured. The length of
the conductive layer was decreased for each
(a) consecutive test by wiping clean a portion of
(b) (c) the plate. The layer resistance was
calculated by neglecting the voltage drop
Figure 2: Schematic representation of partial of the short arc between the electrode and
arc configurations simulated. the layer.
90 THE TRANSACTIONS OF THE SA INSTITUTE OF ELECTRICAL ENGINEERS March 1991

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

IR = 6400 Xa2 / V2 (7)

The intersection of the curves based on


equations (6) and (7) gives the actual value
of the peak leakage current and the dry band
W 0 length at that stage. With increasing
surface conductivity, i.e. increasing
pollution, a point is reached where the arc
circuit curve becomes tangential to the
reignition curve. The current at this point
corresponds to the critical current I-crit.
The point of intersection is rather
indeterminate under these conditions, making
the critical current very sensitive to small
parameter variations. The results are
summarised in Table I which shows that the
critical current in all three cases are of the
Figure 5: Results and predictions of layer order of 1,8 to 2 ampere, which compares
resistance of polluted square plate. favourably with the I-max of 1,8 ampere
given by equation (4) for insulators with
a creepage length of 800 mm at a voltage of 22
kV r.m.s.

INSULATOR I-MAX I-CRIT CRITICAL


(A) (A) CONDUCTIVITY
eq. 4 fig.7 (mS) fig. 7
Cylinder 2 - 2 - 80
2,5 2,5
Long rod 1,4 - 1,4 - 240
2 2
Cap & pin 1,7 - 1,7 - 120
2 2

TABLE 1: INSULATOR PERFORMANCE ACCORDING TO


a CAP & PIN MODEL:

Figure 6: Layer resistance function versus


layer length for various insulators.
March 1991 THE TRANSACTIONS OF THE SA INSTITUTE OF ELECTRICAL ENGINEERS 91

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.

4.Holtzhausen, J.P., du Toit L.P.


Insulator pollution: The relationship between
I-highest, specific creepage and salinity in
a salt fog test
Trans. SAIEE, Vol. 78,pp 1-6, August, 1987.
DRY BAND LENGTH IN MM
M-S 5.Khalifa, M., Mahdy, A., Quereshi, A.
A simplified Model for AC flashover of
polluted insulators.
c) Cap & pin insulator. Paper 51.07 Fifth international symposium
on High Voltage Engineering",1987,
Braunschweig.

6.Gopal, S., Rao, Y. N.


Flashover phenomena of polluted insulators
IEE Proceedings, Vol. 131C, July 1984,pp
140-143.

7.Swift D. A.
Flashover across the surface of an
electrolyte: arresting arc propagation. PROC.
IEE,1980, Vol 127 A, pp 553-564.

8.Wilkins R., Al-Baghdadi A. A. J.


Arc propagation along an electrolyte surface,
Proc. IEE, Vol. 118, No. 12, pp 1886- 1892

9.IEC Publication 507


Artificial pollution tests on high voltage
r-- insulators to be used on AC systems, 1987.

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

NOTES FOR AUTHORS SKRYWERSTOELIGTING


This journal publishes research, survey and expository contri Hierdie tydskrif publiseer navorsing, oorsigte en besprekings-
butions in the field of electrical engineering. Articles may be of bydraes op die gebied van elektriese ingenieurswese. Bydraes kan
a theoretical or applied nature, must be novel and not published van 'n toeretiese of toegepaste aard wees, moet nuut wees en nie
elsewhere. elders gepubliseer wees nie.

Nature of Articles Aard van Bydraes


Two types of articles may be submitted Twee tipes bydraes kan aangebied word
•Papers: Presentation of significant research, and development •Referate: Die aanbieding van betekenisvolle navorsing en ont-
and/or novel applications in electrical engineering. wikkeling en/of nuwe toepassing van elektriese ingenieurswese.
•Technical Notes and Correspondence: Brief technical contribu •Tegniese Notas en Korrespondensie: Kort tegniese bydraes, teg-
tions, technical comments on published papers or on electrical niese opmerkings oor gepubliseerde referate of oor elektriese
engineering topics. ingenieurswese.

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.

You might also like