Provided by: yagiuda_1.19-10_amd64 bug

NAME

       optimise - Yagi-Uda project antenna optimiser

SYNOPSIS

       optimise [ -dhvwO ] [ -aangular_stepsize ] [ -bboom_extension ] [ -ccleanliness_of_pattern
       ]  [  -eelements  ]  [  -fFBratio  ]  [   -gGA_optimisation_method   ]   -lpercent   ]   [
       -mmin_offset_from_peak  ]  [ -ooptimisation_criteria ] [ -ppopulation ] [ -rresistance ] [
       -sswr ] [ -tlength_tolerance ] [ -xreactance ] [ -AAuto_gain ] [  -CCurrents_similar  ]  [
       -Fweight_FB  ]  [  -Gweight_gain ] [ -Kkeep_for_tries ] [ -Pweight_pattern_cleanliness ] [
       -Rweight_resistance ] [ -Sweight_swr ] [ -Tposition_tolerance ] [ -WWeighted_algorithm ] [
       -Xweight_reactance [ -ZZo ] filename iterations

DESCRIPTION

       The program optimise is one of a number of executable programs that forms part of a set of
       programs, collectively known as the Yagi-Uda project , which were  designed  for  analysis
       and optimisation of Yagi-Uda antennas.  optimise attempts to optimise the performance of a
       Yagi antenna for one or more parameters that are considered important, such as  gain,  F/B
       ratio,  VSWR  etc.  It does this by randomly changing the lengths and positions, of one or
       more  elements,  then  comparing  the  performance  before  and  after  the  change.   Any
       improvements  are  written to a new file called filename.bes where filename is the name of
       the antenna description file created by input or first

       When Yagi's are designed on paper, or using this program, its possible that they  will  be
       almost impossible to build, if their performance depends too critically on the dimensions.
       To determine if this is the case with a design, we run optimise with just the options  't'
       and  'T'. These specify the tolerance with which you can build the antenna, expressed as a
       standard deviation in mm. In this case, instead of  trying  to  optimise  a  poor  design,
       optimise  will  calculate the minimum gain, maximum VSWR, and minimum FB ratio of a number
       of designs, all slightly different from the input file. 99.7% of the components lie within
       3  SD  of  the  mean, so if you think you can cut elements to with 1 mm 99.7% of the time,
       specify t0.33. If you can put them in the boom to within 3 mm 99.7% of the  time,  specify
       T1.

       If  while optimise is running using the methods that require weights to be attached to the
       gain, FB, SWR etc, it becomes apparent, the weights are not optimum, its possible to pause
       the  program and re-adjust the weights. If a file with the name of changes is created, the
       program will pause, then request new weights are entered at the keyboard.

AVAILABILITY

OPTIONS

       -d     Print the default values of all the configureable parameters to stdout. Typing this
              option  with  any  option that changes a parameter (see below) will display the new
              value of the parameter, rather than the default.

       -h     Print a help message.

       -v     Print verbose status information.

       -w     Instead of optimising at one fixed frequency (the design frequency),  this  directs
              the program to optimise at 3 separate frequencies (lowest, design and highest) then
              to average data at all 3. This option is better for wideband antenna. Note that the
              input  impedance  printed  is  at  the  design  frequency,  *not*  averaged  over 3
              frequencies.  Averaging  an  impedance,  is  likely  to  give  a  very   misleading
              impression.  The  impedance  averaged over 3 frequencies can be 50+i0 Ohms, even if
              the VSWR is very poor over all 3 frequencies, as the following  3  pieces  of  data
              show.
              Z=147 + j 300  SWR= 15.46:1
              Z=2   + j 100  SWR= 125:1
              Z=1   - j 400  SWR= 3250:1
              note  in  the above three cases, the average impedance is 50 + j 0, but average SWR
              is 1130:1.

       -O     Over-optimisation allowed.  By  default,  the  program  does  not  over-optimise  a
              parameter.  For  example,  an SWR of 1.01 is usually considered good enough and any
              change, as long as the SWR stayed good, typically below 1.1:1,  would  be  allowed,
              even  if  the  SWR  rose.  By default, FB's of 27 dB, VSWR's of 1.1 are acceptable.
              However, by using the -O option, you can insist the program always improves things,
              no matter how good they are.

       -aAngular_stepsize
              When  optimimising by trying to get a clean pattern, specifies the step size to use
              when looking for features in the pattern. If its set too small, the  program   runs
              slow. If its set too large, the program may miss features in the pattern, such as a
              sidelobe. Then the resulting antenna will  have  poor  sidelobe  performance,  even
              though  you  think  it  will  be good. The program attempts to calculate a sensible
              value, based on 1/10th the approximate 3 dB beamwidth, if you don't set.

       -bboom_extension
              Generally speaking, the gain of a  Yagi  increases  with  boom  length.  Hence  the
              optimiser  would often give you a Yagi with a much longer boom than the input file.
              This may not be what you desire due to  space  restrictions.  These  long  antennas
              often  have  high  gain,  but  are very narrow in bandwidth. The default limits the
              antenna to 10x the original length, which means effectively there is no boom length
              limitation.   You  can  adjust the percentage by setting boom_extension to whatever
              you wish.  -b30 will limit the boom to no more than  30%  more  than  the  original
              length.

       -ccleanliness_of_pattern
              Specify  the  number  of  dB  down  on the peak gain to aim to get the pattern. Any
              antenna pattern cleaner than this will not effect  the  fitness,  nor  will  it  be
              considered any better when comparing to antenna designs. 20 dB seems reasonable, so
              the default is 20, but this may of course change if it's deceided  too.  Check  the
              source code to be certain (see REASONABLE_SIDELOBE in yagi.h).

       -eelements
              is  an  integer  which  specifies  the  type  of  elements  that are changed in the
              optimisation cycle.  Possible values are:
               1 - alter only the driven element(s) length (useful to bring to resonance)
               2 - alter only the driven element position. Don't change its length.
               4 - alter only the reflector length. The position is always at x=0.
               8 - alter only the director lengths. Don't change positions.
               16 - alter only the director positions. Don't change lengths.
               32 - randomly adjust one element length, then makes  all  other  the  same.  Don't
               change the positions.
               64 - apply a linear taper to the lengths.
               128 - Set the driven element to a resonate length. It may/may-not be altered after
               the first run, depending on the whether or not '1' is invoked too. Eg  -e128  will
               make  it  resonate  and  keep  it  there  forever.  However  '-e129' will bring to
               resonance, then alter to maximuse performance.
              The elements altered is made from a logical AND of the above,  so  for  example  to
              alter  everything,  except  the driven element length, use -e30, since 2+4+8+16=30.
              The  default is equivalent to -e31 , which changes everything  possible.  Note  the
              reflector position is *never* changed. It's always at x=0.

       -fFBratio
              When  optimising  an  antenna,  consider any FB ratio greater than FBratio dB to be
              equal to FBratio dB. This avoids optimising to a  very  high  FB  ratio,  which  is
              impracticable, as the bandwidth over which this FB ratio will be maintained is very
              small and mechanical considerations will prevent you from constructing it with such
              a  high FB ratio anyway. If this was not prevented, you might just happen to get an
              antenna with 100 dB FB  ratio,  but  poor  gain  and  swr.  Since  by  default  all
              parameters must improve, the optimisation routine will most likely never being able
              to improve on the 100 dB FB ratio, so no improvement will result. Most people would
              prefer to get a few extra dB of gain, even if the FB ratio dropped to 30 dB.

       -gGA_optimisation_method
              Use  a genetic algorithm. With the genetic algorithm, the program does not take any
              account any of the initial lengths/positions of elements  specified  in  the  input
              file. Rather it works by initialising a number of different antenna, then computing
              a 'fitness' value for each.  The fitness value can depend on  the  gain,  FB,  real
              part  of  the  input  impedance,  reactive part of the input impedance, VSWR or the
              level of the sidelobes. The integer  after  the  g  tells  the  optimiser  what  to
              consider.  -g1  Use gain
              -g2  Use FB
              -g4  Use R
              -g8  Use X
              -g16 Use the SWR
              -g32 Use the level of the sidelobes.

              You  can  use  a  logical  AND  of  these,  so  for example -g49 will use a genetic
              algorithm,   optimising   for    gain,    swr    and    sidelobe    level,    since
              1(gain)+16(SWR)+32(sidelobe level)=49.

       -lpercent
              is  a  parameter  (floating  point  number)  which specifies the maximum percentage
              change in the positions or lengths of an elements at each iteration. If the  option
              is  not used, it will be set internally at 10% for the first 25% of the iterations,
              1% for the next 25%, 0.1% for the third 25% of the iterations  and  0.01%  for  the
              last  25%  of  the  iterations.  If  set to a positive number x (eg optimise -l 0.3
              145e10) then the percentage will be set at x% for 25% of iterations, x/10  for  the
              next  25%,  x/100 for the next 25 and x/1000 for the last 25%. If set to a negative
              number y (eg optimise -l -0.5 145e10) then the parameters will stay fixed at y% (in
              this example 0.5%) all the time.

       -mmin_offset-from_peak
              Sets  the  minimum  angle  in  degrees offset from theta=90 degrees, where the side
              lobes start and the main lobe finishes. The higher the gain, the smaller it  should
              be. It is set internally if not set on the command line.

       -ooptimisation_criteria
               1 -  Assume better if the gain has increased.
               2 -  Assume better if the front to back ratio has improved.
               4  -  Assume better if the real part of the input impedance is closer to the value
               that the program was compiled for, or  set  using  the  '-Z'  option.   This  will
               usually  be  50  Ohms,  but you may wish to set this to 12.5 Ohms if you use a 4:1
               balun. Generally you can get higher gain from  a  Yagi  if  you  allow  the  input
               impedance to fall, but of course feeding it becomes more difficult.
               8  -   Assume  better  if  the  magnitude  of  the reactive component of the input
               impedance is lower (ie. the antenna is nearer resonance).
               16 - Assume better if the VSWR is lower.
               32 - Assume better if the level of all sidelobes is lower.
              The optimisation_criteria may be formed from a logical AND of these numbers, so for
              example  choosing  -o19  will  only  consider  a  revised  antenna  better than the
              previous, if the SWR, gain and F/B ratio have all simultaneously improved.

              Clearly an antenna which originally had 12 dB gain and 1.01:1 VSWR but then changes
              to  20  dB gain @ 1.02:1 VSWR, would to most people be better, even though the VSWR
              has increased. By default, optimise only optimises to sensible maximums, so to  not
              let  the optimisation stall prematurely. By running optimise with no arguments, the
              program will list the limits of acceptability.  These might be typically F/B  ratio
              >  27  dB, VSWR < 1.1:1, magnitude of input reactance less than 5 Ohms and the real
              part of the input impedance within 5 Ohms of Zo.  Choosing  -o19  (1+2+16=19)  will
              optimise  for  gain  (since G=1), FB (since FB=2) and SWR (Since SWR=16), but would
              consider a higher gain and FB ratio antenna better than a previous one, even if the
              SWR  rose, as long as it stayed below 1.1:1 (or as was set during compilation). The
              default behaviour (no options) is equivalent to -o37 which optimiseas for  gain(1),
              the  real  part of the input impedance(4) and sidelobes(32) but this may be changed
              at any time, so type optimise -d to check the current settings. If  you  insist  on
              the  program  optimisang  for  the very best of all selected parameters, use the -O
              option too, but be warned the optimisation will probely  stick  once  it  gets  one
              parameter really good.

       -ppopulation
              This determines the initial population used  with the genetic algorithm.

       -rresistance
              When  optimising an antenna, consider any input resistance closer to Zo (usually 50
              Ohms) than resistance Ohms to be acceptable. This avoids  optimising  to  an  input
              resistance too close to Zo, which is impracticable, as the bandwidth over which the
              input resistance could be maintained is very small  and  mechanical  considerations
              will prevent you from constructing the antenna with such an ideal input resistance.
              If this was not prevented, you might just happen to get an antenna  with  an  input
              resistance  of  50.000001  Ohms, but poor gain, FB and possibly even a poor swr, if
              the antenna is well away from resonance.  Since  by  default  all  parameters  must
              improve,  the optimisation routine will get most likely never being able to improve
              on the antenna, whereas we might be happier with a few more dB gain, if  the  input
              resistance  went  to  50.1  Ohms.  It should be noted that the default optimisation
              routine never uses the input resistance directly (only VSWR), so this  option  cant
              be  used  without the '-o' option to optimise for other than the default parameters
              (gain, VSWR and FB ratio).

       -sswr  When optimising an antenna, consider any SWR less than swr to be equal to swr  This
              avoids  optimising to a very low swr, which is impracticable, as the bandwidth over
              which such a low swr could  be  maintained  would  be  very  small  and  mechanical
              considerations  will  prevent you from constructing such an antenna anyway. If this
              is was not prevented, you might just happen to  get  an  antenna  with  an  swr  of
              1.000000000001:1,  but  poor  gain,  FB ratio. Since by default all parameters must
              improve, the optimisation routine will most likely never being able to  improve  on
              the  antenna,  even though in practice you would like to get a few extra dB of gain
              if the SWR would rise to 1.02:1. The  default  was  equivalent  to  -s1.1  but  run
              optimise -d to display this and any other defaults.

       -tlength_tolerance
              length_tolerance is the standard deviation in mm of the accuracy with which you can
              cut elements. Since 99.7% of elements will be with 3  standard  deviations  of  the
              mean  length  (stats  theory says this), set -t0.2 if virtually all (well 99.7%) of
              elements are within 3x0.2=0.6 mm of the correct length. This option *must* be  used
              with  the  '-T'   option  and can't be used with any other options apart from '-Z',
              '-v' and '-d'.

       -xreactance
              When optimising an antenna, consider any input reactance of less than reactance  to
              be  reactance.   This  avoids  over  optimising  the  reactance,  at the expense of
              something else.

       -Aauto_gain
              When the auto_gain option is used. the program maximes  the  gain  of  the  antenna
              (ignoring  all  other parameters such as SWR, FB ratio etc) by adjusting the length
              (not position) of one element only. -A-1 will maximuse the gain, by  adjusting  the
              length  of the reflector, -A0 will maximise the gain by adjusting the length of the
              driven element. Its generally *not* a good idea to maximise the gain  by  adjusting
              the driven element, but the program lets you do it, but using the option -A0. Using
              -A1 will maximise gain by adjusting the length  of  the  first  director,  -A2  the
              second  director  and so on, up to the last director. You must check carefully that
              the input impedance in particular does not fall to silly values  if  you  use  this
              option.  On  a yagi with many elements (> 10 or so), you can pretty safely maximise
              the 8th or more director, but doing it on the reflector, driven  element  or  early
              directors  often  leads to silly input impedances - so beware!  Note, no matter how
              many iterations you specify, this process is only done once.Its unlikely  you  will
              be  able  to  do it again, without things going out of hand, but if you must do it,
              you must re-run 'optimise' again.

       -Ccurrents_similar
              If this option is used, where currents_similar is an integer, the program looks  to
              make  the currents in the last currents_similar elements as similar as possible. It
              computes the sum of the squares of the deviations of the  absolute  values  of  the
              element  currents from the mean. If this falls, and the criteria specified with the
              -W option is also satisfied, the antenna is considered better. If  currents_similar
              is  three  less  than the number of directors, it tries to make the currents in the
              the directors (but ignoringing the first 3) all  similar.  If  currents_similar  is
              equal  to  the number of directors, it tries to make all the directors have similar
              currents. If currents_similar is one more than the number of directors, it tries to
              make all the directors and the reflector have similar currents. If currents_similar
              is equal to the total number of elements, then it fails with an error message.

       -Fweight_FB
              is the floating point number (default 1.0) specifying the weight to attach  to  the
              FB  ratio of the antenna when using the '-W' option, which calculates a fitness for
              the antenna based on one or more parameters  (FB,  gain,  input  resistance,  input
              reactance,  SWR, cleanliness of antenna pattern). The '-F' option is similar to the
              options -G, -P, -R, -S, -X (which specify weights for  gain,  pattern  cleanliness,
              input  resistance,  SWR  and  input reactance).  When using the -W option the exact
              algorithm used to compute the fitness (and hence the effect of this  parameter)  is
              best  checked  by  looking  at the source code (see perform.c). This is one area of
              constant program improvement/changes/development, so its difficult to  say  exactly
              the  effect the parameter has. However, increasing the weight of a parameter (using
              the -F, -G, -R, -S or -X options)  will  make   the  associated  parameter  have  a
              greater  effect  on  the fitness.  However, unless you optimise for a high FB ratio
              with the -W option, then setting the -F option will have no  effect.  For  example,
              setting  the options -F2.5 -W1 is a complete waste of time. There you have used the
              -W1 option to optimise only for gain (see -W option section of man page)  but  have
              changed  the  weight  of  the  FB ratio from its default 1.0 to 2.5. If you are not
              optimising for FB ratio, the weight you attach to it is irrelavent.

       -Gweight_gain
              is the floating point number (default 1.0) specifying the weight to attach  to  the
              gain  of the antenna when using the '-W' option, which calculates a fitness for the
              antenna based on  one  or  more  parameters  (FB,  gain,  input  resistance,  input
              reactance,  SWR, cleanliness of antenna pattern). The '-G' option is similar to the
              options  -F,  -P,  -R,  -S,  -X  (which  specify  weights  for  FB  ratio,  pattern
              cleanliness,  input resistance, SWR and input reactance).  When using the -W option
              the exact algorithm used to compute the fitness  (and  hence  the  effect  of  this
              parameter)  is  best checked by looking at the source code (see perform.c). This is
              one area of constant program improvement/changes/development, so its  difficult  to
              say  exactly  the  effect  the  parameter  has. However, increasing the weight of a
              parameter (using the -F, -G, -R, -S  or  -X  options)  will  make   the  associated
              parameter  have  a greater effect on the fitness.  However, unless you optimise for
              gain with the -W option, then setting the  -G  option  will  have  no  effect.  For
              example,  setting the options -G2.5 -W2 is a complete waste of time. There you have
              used the -W2 option to optimise only for FB ratio (see -W  option  section  of  man
              page)  but  have changed the weight of the gain from its default 1.0 to 2.5. If you
              are not optimising for gain, the weight you attach to it is irrelavent.

       -Kkeep_for_tries
              keep_for_tries is the number of  tries  for  the  optimise  to  persist  using  the
              original  data  file  as  the  starting point for optimisation. By default it is 1,
              which means the program immediately looks from a new position once a better one  is
              found.  It  is  theeoretically possible that this might result in a quick, but poor
              local maximum. If however, keep_for_tries is 1000, it will stay at a  position  for
              1000 iterations after finding the last best result, before considering this to be a
              global optimum. Then it starts for the new position. In practice, I have found this
              option to make matters worst in most cases. It was added to avoid the local-minimum
              problem, but it appears the optimisation surface is pretty smooth, so it just slows
              the  program, without gaining much. Anyway, it can stay as an option, but check the
              results with/without carefully before using extensively.

       -Ppattern_cleanlyiness
              is the floating point number (default 1.0) specifying the weight to attach  to  the
              cleanness  of  the  antenna  pattern when using the '-W' option, which calculates a
              fitness for  the  antenna  based  on  one  or  more  parameters  (FB,  gain,  input
              resistance,  input reactance, SWR, cleanliness of antenna pattern). The '-P' option
              is similar to the options -F, -G, -R, -S, -X (which specify weights for  FB  ratio,
              gain,  input  resistance,  SWR  and input reactance).  When using the -W option the
              exact algorithm used  to  compute  the  fitness  (and  hence  the  effect  of  this
              parameter)  is  best checked by looking at the source code (see perform.c). This is
              one area of constant program improvement/changes/development, so its  difficult  to
              say  exactly  the  effect  the  parameter  has. However, increasing the weight of a
              parameter (using the -F, -G, -R, -S  or  -X  options)  will  make   the  associated
              parameter have a greater effect on the fitness.  However, unless you optimise for a
              clean antenna pattern with the -W option, then setting the -P option will  have  no
              effect.  For  example,  setting  the options -P2.5 -W1 is a complete waste of time.
              There you have used the -W1 option to optimise only for gain (see -W option section
              of  man  page)  but  have  changed  the  weight of the pattern cleanliness from its
              default 1.0 to 2.5. If you are not optimising for a clean  radiation  pattern,  the
              weight  you  attach to it is irrelavent.  With appropriate use of the -W option (eg
              -W49 for gain, SWR and a clean pattern), the computer program finds  the  level  of
              the  most  significant  sidelobe, wherever it may be outside the main bean. It then
              optimises to reduce this. The -P option tells it how much weight to put on reducing
              this sidelobe.

       -Rweight_resistance
              is  the  floating point number (default 1.0) specifying the weight to attach to the
              obtaining an input resistance close to Zo  on  the  antenna  when  using  the  '-W'
              option,  which calculates a fitness for the antenna based on one or more parameters
              (FB, gain, input resistance, input reactance, SWR, cleanliness of antenna pattern).
              The '-R' option is similar to the options -F, -G, -P, -S, -X (which specify weights
              for FB, gain, pattern cleanliness, SWR and input reactance).   When  using  the  -W
              option  the  exact  algorithm  used to compute the fitness (and hence the effect of
              this parameter) is best checked by looking at the source code (see perform.c). This
              is  one  area of constant program improvement/changes/development, so its difficult
              to say exactly the effect the parameter has. However, increasing the  weight  of  a
              parameter  (using  the  -F,  -G,  -R,  -S  or -X options) will make  the associated
              parameter have a greater effect on the fitness.  However, unless you  optimise  for
              an  an input resistance close to Zo, with the -W option, then setting the -R option
              will have no effect. For example, setting the options -R2.5 -W1 is a complete waste
              of  time.  There  you  have  used  the -W1 option to optimise only for gain (see -W
              option section of man page) but have changed the weight of the resistance from  its
              default  1.0 to 2.5. If you are not optimising for an input resistance close to Zo,
              the weight you attach to it is irrelavent.

       -Sweight_swr
              is the floating point number (default 1.0) specifying the weight to attach  to  the
              SWR  of  the antenna when using the '-W' option, which calculates a fitness for the
              antenna based on  one  or  more  parameters  (FB,  gain,  input  resistance,  input
              reactance,  SWR, cleanliness of antenna pattern). The '-S' option is similar to the
              options  -F,  -G,  -P,  -R,  -X  (which  specify  weights  for  FB,  gain,  pattern
              cleanliness,  input  resistance and input reactance).  When using the -W option the
              exact algorithm used  to  compute  the  fitness  (and  hence  the  effect  of  this
              parameter)  is  best checked by looking at the source code (see perform.c). This is
              one area of constant program improvement/changes/development, so its  difficult  to
              say  exactly  the  effect  the  parameter  has. However, increasing the weight of a
              parameter (using the -F, -G, -R, -S  or  -X  options)  will  make   the  associated
              parameter  have  a greater effect on the fitness.  However, unless you optimise for
              SWR with the -W option, then setting  the  -S  option  will  have  no  effect.  For
              example,  setting the options -S2.5 -W1 is a complete waste of time. There you have
              used the -W1 option to optimise only for gain (see -W option section of  man  page)
              but  have changed the weight of the SWR from its default 1.0 to 2.5. If you are not
              optimising for SWR, the weight you attach to it is irrelavent.

       -Tposition_tolerance
              position_tolerance is the standard deviation in mm of the accuracy with  which  you
              can cut elements. Since 99.7% of elements will be with 3 standard deviations of the
              correct position (stats theory says this), set -T2 if virtually all (well 99.7%) of
              elements  are  within  3x2=6  mm of the correct position.This option *must* be used
              with the '-t'  option and can't be used with any other  options  apart  from  '-Z',
              '-v' and '-d'.

       -WWeighted_algorithm
              Try  to  get  an  antenna  which  is  better according to a weighted combination of
              parameters, rather than require them all to improve. The integer specifies what  to
              consider in the weighted parameters.
              W1 Gain.
              W2 FB
              W4 R
              W8 X
              W16 SWR
              W32 SIDE_LOBE
              You  can  logically  AND  these  together, so for example -W3 will optimise using a
              weighted combination of gain and FB. -W49, will use a weighted combination of gain,
              swr and sidelobe leve, since 32+16+1=49.

       -Xweight_reactance
              is  the  floating  point  number  (default  1.0) specifying the weight to attach to
              achieving a low input reactance on the antenna when using the  '-W'  option,  which
              calculates  a  fitness  for  the antenna based on one or more parameters (FB, gain,
              input resistance, input reactance, SWR, cleanliness of antenna pattern).  The  '-X'
              option is similar to the options -F, G, -P, -R and -S (which specify weights for FB
              ratio, gain, pattern cleanliness, input resistance, and SWR).  When  using  the  -W
              option  the  exact  algorithm  used to compute the fitness (and hence the effect of
              this parameter) is best checked by looking at the source code (see perform.c). This
              is  one  area of constant program improvement/changes/development, so its difficult
              to say exactly the effect the parameter has. However, increasing the  weight  of  a
              parameter  (using  the  -F,  -G,  -R,  -S  or -X options) will make  the associated
              parameter have a greater effect on the fitness.  However, unless you optimise for a
              low  input  reactance  with  the -W option, then setting the -X option will have no
              effect. For example, setting the options -X2.5 -W1 is a  complete  waste  of  time.
              There you have used the -W1 option to optimise only for gain (see -W option section
              of man page) but have changed the weight of the reactiance from its default 1.0  to
              2.5.  If you are not optimising for a low input reactance, the weight you attach to
              it is irrelavent.

       -ZZo
              Zo is the characteristic  impedance  used  when  evaluating  the  VSWR,  reflection
              coefficient  and  other  similar calculations. The optimiser usually tries to bring
              the input impedance of the antenna to this value. It is set by default to 50  Ohms,
              so  the default is equivalent to -Z50 but may be set to any positive number. Set to
              12.5 Ohms if you are going  to  feed  the  antenna  with  a  4:1  balun.  Generally
              speaking,  the gain of a Yagi can be higher for low input impedances, but of course
              such antennas are more difficult to feed.

       filename
              This is the name of the file containing the antenna description. It is expected  to
              be  in  a format created by either input or first - two other programs in the Yagi-
              Uda project.  This is an ASCII text file.

       iterations
              is an integer specifying the number of iterations for the optimiser to  perform  to
              try to get the best antenna. Time will limit the number you choose. 1000 iterations
              of a 1ele yagi takes about 5 seconds,  a  6ele  approximately  60  seconds,  an  11
              element  350  seconds, a 20 element 1030 seconds, a 33ele 2440 seconds, a 50element
              5400 seconds, 100ele 21320 seconds all on an old 25MHz  486  PC  with  no  external
              cache.   When using the -A option the iterations is automatically set internally so
              only one attempt is made.   When  using  the  '-t'  and  '-T'  options,  iterations
              specifies  the number of iterations to attempt to get a poorer design, to check the
              sensitivity of the design to small manufacturing tolerances.

EXAMPLES

       Here are a number of examples of using optimise.

       1) optimise 5ele 1000

       Here the file 5ele will be optimised using the default system  for  1000  iterations.  The
       default  might  typically require gain, FB and SWR to all improve, but this may be changed
       at any time. In any case, the program tells you what its optimising for.  By  default  the
       program  will  only  optimise to the selected parameters are good, not over-optimising any
       one at the detrement of the others.

       2) optimise -b30 -f50 -s2 5ele 1000

       This is similar to above, but the boom can not extend by more than 30% from its   original
       length,  FB  ratios above 50 dB are considered acceptable, as are SWR's less than 2:1. The
       optimised resultant antenna is likely to have better FB ratio, but poorer SWR than in  (1)
       above.

       3) optimise -o1 5ele 1000

       This  will simply optimise 5ele for maximum forward gain. The resultant antenna may have a
       poor FB ratio and is likely to have an unacceptably low input  impedance  and  hence  high
       VSWR. This is not a very sensible method of optimisation.

       4) optimise -W49 -l7 5ele 10000

       This  will  optimise  the  file  5ele using for 10000 iterations. It will require that the
       weighted performance of the antenna in three important parameters  (gain,  sidelobe  level
       and  SWR)  improves  from  one  design to the next. One or two parameters can actually get
       worst from one design to the next, but the weighted performance is better.  The  positions
       of the elements or lengths of elements will not change by more than 7% in each iteration.

       5) optimise -g -S30 -G50 -F20 -p1500 5ele 10000

       This will optimise the file 5ele using a genetic algorithm. 1500 antennas will be randomly
       designed. The performance of each of these  will  measured  using  a  'fitness'  function,
       weighted  30%  to SWR, 50% to gain and 20% to FB ratio. The probability of breading from a
       pair of antennas is proportional to the fitness function.

       6) optimise -w atv_antenna 10000

       This will optimise the file atv_antenna for a best average performance over a  wide  band.
       The  progrram  calculates  the  gain,  FB  and  SWR at three frequencies, then computes an
       average (mean) performance of the antenna over the band. N iterations will take 3x as long
       to execute as N iterations on the same antenna without the '-w' option.

       7) optimise -t0.1 -T1  good_design 100

       This  will  take the file good_design and make 100 different antennas from it, to simulate
       the effects of building tolerances. Each element is assumed to be cut  so  that  the  mean
       error  of  all  elements  is 0 mm, but a standard deviation of 0.1 mm, so 68.4% of element
       lengths are within 0.1 mm, 95.4% within 0.2 mm and 99.7% with in 0.3 mm. The  accuracy  of
       placing  elements  along  the  boom  is  much  lower, so here we have specified a standard
       deviation of 1.0 mm, so 68.6% of elements are placed within 1 mm of the correct  position,
       95.4%  within  2  mm  of  the  correct  position etc.  The program will report the *worst*
       performances achieved. If the performance dips too mush, then you  either  need  to  build
       them better, or get a design that's less critical!

STOPPING

       Optimise  will  stop after the number of iterations specified in the parameter iterations.
       It will also stop if a file stop exits in the current directory of the executable optimise
       This  file  can  of  course only be created using a multi-tasking operating system such as
       Unix. It is *not* advisable to stop the program by hitting the DEL key (Unix) or CONTROL-C
       (DOS),  as one of the files may be open at the time, resulting in an empty file. Files are
       not open for any longer than necessary (they  are  closed  immediately  after  writing  to
       them), so this is not a likely occurrence, but can still occur.

LIMITATIONS

       I'm  not  aware  of any limitations, apart from that filenames, including full path, can't
       exceed 90 characters.

FILES

       filename           Antenna description, created by input or first.
       filename.up    Update file, listing achievements of optimise.
       filename.bes       Best file, containing the best design to date.
       changes         File that causes the program to pause to re-adjust weights.
       stop            File that stops optimisation process.

SEE ALSO

       first(1), input(1), output(1), yagi(1), first(5), input(5) output(5) and optimise(5).

PLATFORMS

       Both DOS and Unix versions have been built. The DOS version as distributed requires a  386
       PC with a 387 maths coprocessor.

       Although  I have altered the source to make it more compatible with DOS (reduced file name
       lengths etc), my wish is to build a decent program, rather than  fit  the  program  to  an
       outdated  operating  system.  If there is a *good* reason to use code that is incompatible
       with DOS, this will be done.
       Since optimise takes  a while to optimise an antenna (I've  optimised  one  design  for  a
       week), it is obviously more sensible to build this program under a multi-tasking operating
       system, as otherwise a PC can be tied up for days.

BUGS

       Bugs should be reported to david.kirkby@onetel.net.  Bugs tend actually  to  be  fixed  if
       they can be isolated, so it is in your interest to report them in such a way that they can
       be easily reproduced.

       The program will dump core  (crash)  if  asked  to  optimise  a  1ele  beam,  without  any
       arguments.   This  is  because  a  1ele  beam has no parasitic elements and by default the
       program only changes parasitic elements.

       Some of the options are not checked for sensible values, although most are now checked and
       report if they are out of range.

       If the user specifies very large manufacturing errors using the '-t' and '-T' options, its
       possible for elements to overlap or for element lengths  to  become  negative.  This  will
       cause numerical errors. Any reasonable values will not cause this.

       On  long  Yagi's  (50 elements) optimise can go a bit silly. It can optimise say a 1296MHz
       Yagi to get 20 dB at 1296 MHz, but less than 0 dB at only 1 MHz away. Needs some thought!

       The level of the sidelobes is not computed with the GA or some other  optimisation  types.
       This will be corrected later.

       All those I don't know about.

AUTHORS

       Dr.  David  Kirkby G8WRB (david.kirkby@onetel.net).  with help with converting to DOS from
       Dr. Joe Mack NA3T (mack@fcrfv2.ncifcrf.gov)