The initial model has several problems:
This card deck (input file) solves the first two problems is listed below. The solution to the third problem (using an even number of segments so that the boom would line up under nodes) conflicts with putting the feed point at the middle of the driven element. So for now I'm going to ignore the third problem. At a later point I will compare the results with and without the boom to see if it is significant.
CM yagi4elem_2m.nec  Geometry Control Cards for 4element Yagi I also changed the start frequency on the FR card to center the frequency sweep over our frequencies of interest (144148MHz). Run the analysis again just to make sure we haven't introduced any obvious errors:
There is nothing obviously wrong, but we can't start any real analysis until we verify the average gain and check for convergence. Average GainBy examining the average gain we are calculating enough points to adequately characterize the antenna. To enable the average gain calculation the 5th field of the RP card must be changed from1000 to 1001 .For this calculation, we only need one frequency, so choose 145 MHz because it is near minimum SWR. The calculation is for antenna in free space and the average gain must be calculated over a full volume without overlapping. So the theta points must cover 180 degrees and the phi points must cover 360. The two modified cards now look like this: FR 0 1 0 0 1.450E+02 1.000E+00 RP 0 37 36 1001 0.000E+00 0.000E+00 5.000E+00 1.000E+01 0.000E+00 0.000E+00 Run the analysis again and the search the output file to find the measurement: $ ./nec_run.sh yagi4elem_2m_v2.nec $ grep AVERAGE yagi4elem_2m_v2.out AVERAGE POWER GAIN: 1.0241E+00  SOLID ANGLE USED IN AVERAGING: ( 3.8889)*PI STERADIANS $ Run the analysis three more times, once with each of the following RP cards: RP 0 37 360 1001 0.000E+00 0.000E+00 5.000E+00 1.000E+00 0.000E+00 0.000E+00 RP 0 181 36 1001 0.000E+00 0.000E+00 1.000E+00 1.000E+01 0.000E+00 0.000E+00 RP 0 181 360 1001 0.000E+00 0.000E+00 1.000E+00 1.000E+00 0.000E+00 0.000E+00 Here is a summary of the results:
Now check the average gain across the frequency range we're interested in and make sure it stays close to 1. Use the original FR card. The results are:
$ ./nec_run.sh yagi4elem_2m_v2.nec $ grep AVERAGE yagi4elem_2m_v2.out AVERAGE POWER GAIN: 9.9881E01  SOLID ANGLE USED IN AVERAGING: ( 3.9889)*PI STERADIANS $ ConvergenceNow that we know how many points to calculate, we need to determine if we have divided the wires in the model into enough segments. This is the convergence test. To check for convergence we vary the number of wire segments and look at how the impedance (Zr/Zi) and gain change. We will run the analysis several times, each time we will increase the number of segments by 50% of the initial number of segments (5.5, rounded to 6, in our case). When the change in impedance and gain is smaller than we can measure, or than we are interested in, the model is said to have converged. If the length of a segment gets to be smaller than about 4x the wire diameter, then the model is not going to converge and we need to look for the problem. Changing the number of segments is easy for this model because each of the elements is approximately the same length and there for the segments will be about the same length and the nodes will pretty well line up. If that had not been the case then we would have to fiddle with the number of segments on each element to try and keep the nodes aligned and the segments near the same length. Each time we change the number of segments we will also have to change the driven segment number on the EX card. This table summarizes the values:
Not unexpectedly, since this is a simple model, the model is pretty well converged even with the minimum number of segments. Still, I'm going to use the 23 segment version because the gain variation is less that the reported precision and the calculation time is still quite reasonable on the computer I am using (and old laptop). The converged and average gain tested model is attached, along with an update version of the nec_run.sh script that I used to run it.
