optimise(1)


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)





Opportunity


Personal Opportunity - Free software gives you access to billions of dollars of software at no cost. Use this software for your business, personal use or to develop a profitable skill. Access to source code provides access to a level of capabilities/information that companies protect though copyrights. Open source is a core component of the Internet and it is available to you. Leverage the billions of dollars in resources and capabilities to build a career, establish a business or change the world. The potential is endless for those who understand the opportunity.

Business Opportunity - Goldman Sachs, IBM and countless large corporations are leveraging open source to reduce costs, develop products and increase their bottom lines. Learn what these companies know about open source and how open source can give you the advantage.





Free Software


Free Software provides computer programs and capabilities at no cost but more importantly, it provides the freedom to run, edit, contribute to, and share the software. The importance of free software is a matter of access, not price. Software at no cost is a benefit but ownership rights to the software and source code is far more significant.


Free Office Software - The Libre Office suite provides top desktop productivity tools for free. This includes, a word processor, spreadsheet, presentation engine, drawing and flowcharting, database and math applications. Libre Office is available for Linux or Windows.





Free Books


The Free Books Library is a collection of thousands of the most popular public domain books in an online readable format. The collection includes great classical literature and more recent works where the U.S. copyright has expired. These books are yours to read and use without restrictions.


Source Code - Want to change a program or know how it works? Open Source provides the source code for its programs so that anyone can use, modify or learn how to write those programs themselves. Visit the GNU source code repositories to download the source.





Education


Study at Harvard, Stanford or MIT - Open edX provides free online courses from Harvard, MIT, Columbia, UC Berkeley and other top Universities. Hundreds of courses for almost all major subjects and course levels. Open edx also offers some paid courses and selected certifications.


Linux Manual Pages - A man or manual page is a form of software documentation found on Linux/Unix operating systems. Topics covered include computer programs (including library and system calls), formal standards and conventions, and even abstract concepts.