Canadian TV, Computing and Home Theatre Forums banner

4nec2 & Other Antenna Design Modeling Software

438K views 1.3K replies 97 participants last post by  balm  
#1 ·
This thread is for discussion of OTA Antenna Modeling Software such as 4NEC2, ezNEC, NEC II, and other such tools.

It is also for sharing ideas and concepts involved in OTA Antenna design.

Discussion of the Gray-Hoverman antenna design will remain in its own thread:

http://www.digitalhome.ca/forum/showthread.php?t=81982
 
#1,299 ·
Possibly a server problem? dunno.
In the meantime you can clone the git repo he mentioned 3 months ago in post #1283.
 
#1,302 ·
I am trying to understand and use GA. After extensive searches I cannot find any examples. Is there any documentation that has something more than just a definition? What I do not understand is how to specify the CENTER point.
My interpretation of the definition is that -90° would be in the negative Z direction. I entered this and got nothing but the GW straight line.
SY rad=0.003175
GW 18 5 0, -0.285000, 0.395838, 0, -0.197500, 0.395838, rad
GA 100 5 -0.0125 -90 90 rad

I need it to start at 0, -0.197500, 0.395838 and end at 0, -0.197500, 0.420838 and look like a C (half circle).
The center would be at 0, -0.197500, 0.408338

Then I need to have a backward C which I I have no idea how to tell it which way to rotate.
 
#1,303 · (Edited)
Not sure what it is your trying to do, but I have never seen that used anywhere either, not like I use NEC2 a lot though either. Out of curiousity, I just played with it a bit here, and added one arc to the end of this biquad antenna file I have here. The Arc isn't even visible until after there is NEC output data created. Makes me wonder if it is even treated as part of an antenna structure. As even just having a hunk of wire in proximity of the antenna you'd think it would affect the pattern somewhat. Doesn't seem like it did, for me at least. So, unless you have created some output data with your structure, ya won't even see the arc you created in your antenna. I guess I am at a loss for what use it'd be if it doesn't
even affect the pattern...meaning, if it's not even there until after the calculations are done, what use is it? If you want your arc to be part of your antenna, maybe ya just wanna create your arc with many short length wires (GW) simulating an arc with wires instead?

Image


Image
 
#1,304 · (Edited)
btw, this was my entire nec file... Maybe you can get it "to do something"?
And I too had to look it up in the part3 documentation, page 16, to figure out how it was even specified. https://www.nec2.org/other/nec2prt3.pdf
Code:
CM testing a GA card....
SY Freqscale=608/578
SY Rsrc=0.112
SY Relem=0.125
SY Gap=1.440253 '0.75, 2
SY HW=6.134204*Freqscale        '4, 8
SY HH=1.741836*Freqscale        '1, 2.5
GW      1       1       0       -Gap/2  0       0       Gap/2   0       Rsrc
GW      2       4       0       -Gap/2  0       0       -HW     HW      Relem
GW      3       5       0       -HW     HW      0       0       HH*HW   Relem
GW      4       5       0       0       HH*HW   0       HW      HW      Relem
GW      5       4       0       HW      HW      0       Gap/2   0       Relem
GW      6       4       0       Gap/2   0       0       HW      -HW     Relem
GW      7       5       0       HW      -HW     0       0       -HH*HW  Relem
GW      8       5       0       0       -HH*HW  0       -HW     -HW     Relem
GW      9       4       0       -HW     -HW     0       -Gap/2  0       Relem
GA      10      20      12      270     90      Relem
GS      0       0       0.0254
GE      0
LD      5       0       0       0       58000000        'Copper Elements
GN      -1
EK
EX      0       1       1       0       1       0       0
FR      0       24      0       0       470     6
RP      0       1       73      1510    90      0       1       5       0       0
EN
 
#1,305 · (Edited)
Thanks majortom
I have an narod on a GH antenna that has an S curve at each end. I'm guessing it is to make the rod look longer. I didn't create it, but I built it. Now I am trying to characterize it and increase the VHF gain. Those Ss are a real problem to define in 4NEC2. This is what it looks like.
11856
11857


There are no geometry errors, but running the Generation produces a few errors and lots of warnings. But I have significantly reduced their numbers. You can see the pieces that are still a problem at the end of the long pieces. Either the segments get too short or the junctions to the straight pieces won't match up. I thought that GA function might solve the issue, but it basically does the same thing by segmenting the arc ,which I did when I drew it out in Sketchup and enter the wire segments so I am not sure it will come up with a workable solution either. I guess I will make 5 equal segments. The longer ones were the size of the 2 short ends but I didn't lengthen them correctly.
Edit: I finally got it symmetrical and I have no errors. Now to figure out why the patterns don't make sense. That is another post.
 
#1,306 · (Edited)
Hello, everyone!

I had the urge to tinker with nikiml’s optimization scripts, but my installation attempts merely succeeded in generating a variety of error messages … hey, I know very little about Windows 10 and its quirks, so what can I say. LOL!!!

After sorting things out, I made a few notes for myself, so that I don’t have to go through this exercise again. On reflection, I thought that I’d share these these notes. Hopefully, they will mitigate a few headaches.

Optimization Script Installation - Care Points

The instructions found at nikiml's Antenna pages - Nec optimization scripts are the way to proceed, but they are just the smallest bit out of date. They also make the assumption that the user is a proficient Windows user. : (

Therefore, I offer the following notes to my fellow Windows-challenged friends out there.

Assumptions: Installation onto a Windows 10 machine

The optimization scripts require Python in order to function, so let’s first check to see if Python is already installed on your target system with:
Code:
C:\ > python –-version
If Python is installed, it will return its version number. Otherwise, Python will need to be downloaded and installed.
Reference: Download Python

A secondary consideration of the Python installation, is that the script optimization install utility needs to be able to copy some of its files into the Python ~\site-packages sub-directory, as well as other locations. If Python is allowed to install itself into the default location, it will install itself into a subdirectory of C:\Program Files\WindowsApps, which is a protected, locked down directory for UWP applications. The script install utility will not have the appropriate permissions to accomplish its task. Therefore, choose the “Customize installation” option, so that Python may be manually installed into a suitable, alternate location, such as C:\Python.

The Python installer also offers to add Python to the PATH variable. I would recommend this, unless you have a compelling reason not to.

Note: It is possible to have multiple versions of Python coexist on your system. If this is your situation, you will need to explicitly call the desired version of Python at runtime, e.g.:
Code:
C:\ > Python\Python310\python abc123.py
I’ve tested the scripts with with Python ver. 3.10.4 (the latest offering as of this writing) and it seems to work just fine.

Download nikiml’s optimization scripts from github, as these are the most recent iterations. Click the green “Code” button and then select “Download ZIP” from the menu.
Reference: GitHub - nikiml/nec.opt: python module for optimization an evaluation of nec antenna models

Unzip the optimization scripts to a convenient location, but before running the installation file, a small edit needs to be made, otherwise I found that an error message is generated:
Code:
Traceback (most recent call last):
File "c:\nec_opt\nec.opt-master\setup.py", line 2, in <module>
from version import git_commit_sha
ModuleNotFoundError: No module named 'version'
I’m not a software developer, so my shabby workaround is to hard-code the program's version number:
Open setup.py in a suitable editor, such as Notepad++
Reference: https://notepad-plus-plus.org

Delete line #2
... and configure line #3 as follows:
Code:
version='0.17.1',
Save your edits and then run the setup file:
Code:
C:\ > python setup.py install
Install the NEC2/MP engines: Even if these engines are already on your system due to a prior installation of 4nec2, for example, Python may not be able to find them when the optimization scripts are executed.

NOTE: Some earlier versions of the optimization scripts zip file also included copies of the NEC2/MP engines. If your zip file did not contain them, or if they are not already installed on your system, they may be downloaded separately:
Reference: NEC/MP - Optimized multithreaded NEC engine

Make a suitable directory for the engines, such as C:\NEC2MP and then unzip/copy the engine files into this directory. These NEC2/MP engine files need to be in Windows’ PATH so that Python can find them, so add their directory to the PATH variable.
Reference: Add to the PATH on Windows 10 | Architect Ryan

I already had a preexisting installation of 4nec2 on my machine, which is where my models are located (… in addition to being backed-up to a NAS). Since this is were my models are, I find it convenient to create a “work” folder here for those models upon which I am working. You’ll need to devise your own system to conveniently contain and keep track of the files that are generated by the optimization scripts.

From here, you can follow nikiml’s tutorial here:
nikiml's Antenna pages - Nec optimization scripts
and here:

Note: I noticed that in the first example there is a typo. The command:
Code:
C:\ > python -m nec.eval -N4 -uV input.nec
will generate an error. The correct syntax is as follows:
Code:
C:\ > python -m nec.eval -n4 -uV input.nec
Hopefully, I haven't overlooked anything, nor further confused the issue. If you notice an error, please advise.
OK, you’re now on your own; have fun!

Before I sign off, please allow me to thank nikiml, majortom, Holl_ands, 300ohm, et al. for generously sharing their time and expertise.
Thank You!
 
#1,307 ·
This seems like a good place to mention that as nikilm's sites have disappeared, I have forked nec_viewer in github, adjusted it, and the results are accessible at nikiml's Antenna pages - Nec Viewer

PDF versions of the tutorials and direct links to the wayback copies of the two sites nikiml used to use are here:

Utilities from nikiml

This small contribution is my attempt to pass on something in return for the assistance that others have provided.
 
#1,308 · (Edited)
This seems like a good place to mention that as nikilm's sites have disappeared, I have forked nec_viewer in github, adjusted it, and the results are accessible at nikiml's Antenna pages - Nec Viewer

PDF versions of the tutorials and direct links to the wayback copies of the two sites nikiml used to use are here:

Utilitieshttps://web.archive.org/web/20210613142058/http://mladenov.ca/~nickm/gh_n_vV.html from nikiml

This small contribution is my attempt to pass on something in return for the assistance that https://web.archive.org/web/2021061...web.archive.org/web/20210613142058/http://mladenov.ca/~nickm/gh_n_vV.htmlothers have provided.
Thanks for your efforts to preserve this information, as it is a brilliant resource. If I may be so bold, may I suggest that you also append a link to nikiml's github page, so that everything is in one place?
GitHub - nikiml/nec.opt: python module for optimization an evaluation of nec antenna models

Sadly, it would appear that the wayback machine is not infallible and some of the models appear to be lost forever. For instance there are a few VHF-Hi models listed that have ridiculous gain, but as near as I can determine, the *.nec files are MIA due to a "server error."
nikiml's Antenna pages - GH for VHF-hi/low

With patience, I was able to find most everything else that I was looking for.

EDIT:
The aforementioned VHF-hi/low antenna models may actually be hiding in plain sight on holl_ands site:
Lo+Hi-VHF SBGH w NARODS
 
#1,309 · (Edited)
I made a copy of the site back while it was still hosted on teksavvy.

I also made an update so that the model can be viewed without needing to access a website. A couple of extra files (taken from the original website) need to be added to your local copy of nec, plus one edit to change so the link points to the local copy instead of online.

www.mediafire.com/folder/vput2t50a1jmg/nec_opt

Hope someone finds it useful

PS
thanks to @RandomVariations 's efforts, the publishing features should be available once again with nec_opt if the teksavvy link is changed to github

to
 
#1,310 ·
Hi Everyone,

I'm modeling some GH (axial helix in my case), and wondering, is it possible to characterize just helix (on its first segment), without a sharp angled wire to the ground plane, which itself has its own impedance, behaving as a transformer, swimming in the helix EM field (if recommendation is to extend feed wire), and is source of many helix ambiguities, because of the known NEC2 limitations (sharp angles, seg-len and wire radius ratios).
My idea and question: is it possible to connect some "virtual" ground (without disturbing rest of the model), to the straight, radius matched wire, with the Source EXcitation segment, which is, on the other side, connected to the first segment of the helix.
Currently, I am playing with halfwave wire, but it still swims in the EM field and has radiation on its own.
I know that final design must have that short feed wire, from the GP, but I would like to isolate that element and, together with some other elements (microstrip impedance match...), simulate impedance transformer behavior, using other tools (or calculate by hand/excel). NEC2 is not described as great tool for those, non antenna, tasks.

Thanks,

DD
 
#1,312 ·
see below thread... been about a year since, makes sense.

 
#1,313 ·
see below thread... been about a year since, makes sense.
Are there any archives of the site? More importantly though, I hope their doing okay.
 
#1,316 · (Edited)
Back in post 1258, I was reporting some benchmarks to holl_ands on the new to me old laptop I was using back then

I finally got around to getting nikiml's scripts going on this new to me laptop I am using now,
as of couple weeks ago.
What was taking 1 min and a half back then can take 13 seconds if I specify num_cores=20

12th Gen Intel(R) Core(TM) i7-12800H
32 GB RAM

num_cores=2
Code:
         --- Gain ---              -- Ratios -- -- Impedance --          
   Freq    Raw    Net   SWR BeamW    F/R    F/B    Real    Imag  AGT  corr
==========================================================================
  467.0  13.82  13.14  2.23  41.4  21.32  21.50  518.80  240.14 0.99 -0.04
  473.0  13.92  13.31  2.12  40.9  21.34  21.34  521.61  209.49 0.99 -0.04
  479.0  14.00  13.46  2.03  40.6  21.22  21.22  518.76  182.12 0.99 -0.04
  485.0  14.08  13.61  1.94  40.3  21.15  21.15  511.78  158.77 0.99 -0.04
  491.0  14.15  13.73  1.86  40.1  21.09  21.09  502.04  139.73 0.99 -0.04
  497.0  14.22  13.85  1.80  39.7  21.03  21.03  490.86  125.00 0.99 -0.04
  503.0  14.29  13.96  1.74  39.3  20.96  20.96  479.23  114.16 0.99 -0.04
  509.0  14.36  14.06  1.69  38.9  20.85  20.85  467.96  106.80 0.99 -0.04
  515.0  14.44  14.16  1.65  38.5  20.68  20.68  457.64  102.39 0.99 -0.04
  521.0  14.52  14.26  1.62  38.0  20.45  20.45  448.67  100.31 0.99 -0.04
  527.0  14.61  14.37  1.60  37.6  20.19  20.19  441.29   99.94 0.99 -0.04
  533.0  14.69  14.46  1.59  37.2  19.92  19.92  435.46  100.74 0.99 -0.04
  539.0  14.73  14.51  1.58  36.8  19.69  19.69  431.03  102.34 1.00 -0.00
  545.0  14.81  14.59  1.58  36.4  19.53  19.53  427.81  104.58 1.00 -0.00
  551.0  14.87  14.65  1.58  36.2  19.41  19.41  425.80  107.39 1.00 -0.00
  557.0  14.93  14.70  1.59  36.0  19.34  19.34  424.99  110.66 1.00 -0.00
  563.0  14.99  14.76  1.60  35.8  19.30  19.30  425.42  114.33 1.00 -0.00
  569.0  15.04  14.80  1.62  35.6  19.27  19.27  427.18  118.28 1.00 -0.00
  575.0  15.10  14.84  1.64  35.4  19.26  19.26  430.40  122.30 1.00 -0.00
  581.0  15.15  14.88  1.66  35.2  19.24  19.24  435.20  126.31 1.00 -0.00
  587.0  15.21  14.92  1.69  34.9  19.24  19.24  441.60  130.04 1.00 -0.00
  593.0  15.26  14.95  1.71  34.7  19.21  19.21  449.72  133.28 1.00 -0.00
  599.0  15.31  14.98  1.75  34.5  19.20  19.20  459.49  135.72 1.00 -0.00
  605.0  15.36  15.01  1.78  34.3  19.18  19.18  471.17  137.10 1.00 -0.00
  611.0  15.41  15.04  1.81  34.1  19.16  19.16  484.65  137.07 1.00 -0.00

real    0m26.131s
user    0m48.920s
sys    0m1.562s

num_cores=20
Code:
$ time nec_eval.sh mclapp_m4_super.nec
Input file : mclapp_m4_super.nec
Freq sweeps: [(467.0, 6, 25)]
Autosegmentation: NO


         --- Gain ---              -- Ratios -- -- Impedance --          
   Freq    Raw    Net   SWR BeamW    F/R    F/B    Real    Imag  AGT  corr
==========================================================================
  485.0  14.11  13.64  1.94  40.3  21.15  21.15  511.78  158.77 0.98 -0.07
  491.0  14.17  13.75  1.86  40.1  21.09  21.09  502.04  139.73 0.99 -0.06
  479.0  14.03  13.50  2.03  40.6  21.22  21.22  518.76  182.12 0.98 -0.07
  467.0  13.87  13.19  2.23  41.4  21.32  21.50  518.80  240.14 0.98 -0.09
  503.0  14.29  13.96  1.74  39.3  20.96  20.96  479.23  114.16 0.99 -0.04
  509.0  14.34  14.05  1.69  38.9  20.85  20.85  467.96  106.80 0.99 -0.02
  497.0  14.23  13.86  1.80  39.7  21.03  21.03  490.86  125.00 0.99 -0.05
  473.0  13.96  13.36  2.12  40.9  21.34  21.34  521.61  209.49 0.98 -0.08
  527.0  14.56  14.32  1.60  37.6  20.19  20.19  441.29   99.94 1.00  0.01
  521.0  14.48  14.22  1.62  38.0  20.45  20.45  448.67  100.31 1.00  0.00
  533.0  14.63  14.40  1.59  37.2  19.92  19.92  435.46  100.74 1.00  0.02
  515.0  14.41  14.14  1.65  38.5  20.68  20.68  457.64  102.39 1.00 -0.01
  551.0  14.86  14.63  1.58  36.2  19.41  19.41  425.80  107.39 1.00  0.01
  539.0  14.71  14.48  1.58  36.8  19.69  19.69  431.03  102.34 1.00  0.02
  545.0  14.79  14.57  1.58  36.4  19.53  19.53  427.81  104.58 1.00  0.02
  557.0  14.93  14.70  1.59  36.0  19.34  19.34  424.99  110.66 1.00  0.00
  563.0  14.99  14.75  1.60  35.8  19.30  19.30  425.42  114.33 1.00  0.00
  569.0  15.04  14.80  1.62  35.6  19.27  19.27  427.18  118.28 1.00 -0.00
  575.0  15.10  14.84  1.64  35.4  19.26  19.26  430.40  122.30 1.00 -0.00
  581.0  15.16  14.88  1.66  35.2  19.24  19.24  435.20  126.31 1.00 -0.01
  587.0  15.22  14.92  1.69  34.9  19.24  19.24  441.60  130.04 1.00 -0.01
  593.0  15.27  14.95  1.71  34.7  19.21  19.21  449.72  133.28 1.00 -0.01
  599.0  15.32  14.98  1.75  34.5  19.20  19.20  459.49  135.72 1.00 -0.01
  605.0  15.36  15.01  1.78  34.3  19.18  19.18  471.17  137.10 1.00 -0.00
  611.0  15.41  15.04  1.81  34.1  19.16  19.16  484.65  137.07 1.00 -0.00

real    0m13.495s
user    3m20.110s
sys    0m4.246s
 
#1,317 · (Edited)
This has bugged me for years, but I finally took some time to figure out where to sort the results table that is output by nec_eval
in nikiml's scripts. Previously whenever you used more than say num-cores=2, the results would never be sorted by frequency correctly.
This modification seems to do the trick. I think this works by sorting the files in the output directory, before they get parsed for printing
the results. It isn't actually sorting by frequency per se. It just so happens that those files will be named in the order they get created, which
will be one file for each iteration in the sweep. Which of course will be one for each frequency. Anyhow, it's working.

Code:
Results: [('output/nec2__3.out', 0, 0.984785, 3), ('output/nec2__5.out', 0, 0.989144, 5), ('output/nec2__0.out', 0, 0.979626, 0), ('output/nec2__4.out', 0, 0.986841, 4), ('output/nec2__2.out', 0, 0.982977, 2), ('output/nec2__7.out', 0, 0.994791, 7), ('output/nec2__6.out', 0, 0.991807, 6), ('output/nec2__1.out', 0, 0.981286, 1), ('output/nec2__10.out', 0, 1.00315, 10), ('output/nec2__8.out', 0, 0.997942, 8), ('output/nec2__9.out', 0, 1.0009, 9), ('output/nec2__13.out', 0, 1.00363, 13), ('output/nec2__14.out', 0, 1.0024, 14), ('output/nec2__12.out', 0, 1.00441, 12), ('output/nec2__11.out', 0, 1.00431, 11), ('output/nec2__15.out', 0, 1.00028, 15), ('output/nec2__18.out', 0, 0.998661, 18), ('output/nec2__16.out', 0, 0.99903, 16), ('output/nec2__17.out', 0, 0.998504, 17), ('output/nec2__19.out', 0, 0.999127, 19)]


Results Sorted: [('output/nec2__0.out', 0, 0.979626, 0), ('output/nec2__1.out', 0, 0.981286, 1), ('output/nec2__2.out', 0, 0.982977, 2), ('output/nec2__3.out', 0, 0.984785, 3), ('output/nec2__4.out', 0, 0.986841, 4), ('output/nec2__5.out', 0, 0.989144, 5), ('output/nec2__6.out', 0, 0.991807, 6), ('output/nec2__7.out', 0, 0.994791, 7), ('output/nec2__8.out', 0, 0.997942, 8), ('output/nec2__9.out', 0, 1.0009, 9), ('output/nec2__10.out', 0, 1.00315, 10), ('output/nec2__11.out', 0, 1.00431, 11), ('output/nec2__12.out', 0, 1.00441, 12), ('output/nec2__13.out', 0, 1.00363, 13), ('output/nec2__14.out', 0, 1.0024, 14), ('output/nec2__15.out', 0, 1.00028, 15), ('output/nec2__16.out', 0, 0.99903, 16), ('output/nec2__17.out', 0, 0.998504, 17), ('output/nec2__18.out', 0, 0.998661, 18), ('output/nec2__19.out', 0, 0.999127, 19)]
Patch

Python:
diff --git a/nec/eval.py b/nec/eval.py
index af3934e..9cdc0a6 100644
--- a/nec/eval.py
+++ b/nec/eval.py
@@ -600,6 +600,7 @@ class NecEvaluator:
        def evaluate(self):
                NOP = NecOutputParser
                results = self.runSweeps() #[[174,6,8],[470,6,40]]
+               results = sorted(results, key=lambda x: x[3]) #sort results by freq
                h={}
                v={}
                res = []

Code:
$ time nec_eval.sh mclapp_m4_super.nec --centers --num-cores=16
Input file : mclapp_m4_super.nec
Freq sweeps: [(467.0, 6, 25)]
Autosegmentation: NO


         --- Gain ---              -- Ratios -- -- Impedance --
   Freq    Raw    Net   SWR BeamW    F/R    F/B    Real    Imag  AGT  corr
==========================================================================
  467.0  13.87  13.19  2.23  41.4  21.32  21.50  518.80  240.14 0.98 -0.09
  473.0  13.96  13.36  2.12  40.9  21.34  21.34  521.61  209.49 0.98 -0.08
  479.0  14.03  13.50  2.03  40.6  21.22  21.22  518.76  182.12 0.98 -0.07
  485.0  14.11  13.64  1.94  40.3  21.15  21.15  511.78  158.77 0.98 -0.07
  491.0  14.17  13.75  1.86  40.1  21.09  21.09  502.04  139.73 0.99 -0.06
  497.0  14.23  13.86  1.80  39.7  21.03  21.03  490.86  125.00 0.99 -0.05
  503.0  14.29  13.96  1.74  39.3  20.96  20.96  479.23  114.16 0.99 -0.04
  509.0  14.34  14.05  1.69  38.9  20.85  20.85  467.96  106.80 0.99 -0.02
  515.0  14.41  14.14  1.65  38.5  20.68  20.68  457.64  102.39 1.00 -0.01
  521.0  14.48  14.22  1.62  38.0  20.45  20.45  448.67  100.31 1.00  0.00
  527.0  14.56  14.32  1.60  37.6  20.19  20.19  441.29   99.94 1.00  0.01
  533.0  14.63  14.40  1.59  37.2  19.92  19.92  435.46  100.74 1.00  0.02
  539.0  14.71  14.48  1.58  36.8  19.69  19.69  431.03  102.34 1.00  0.02
  545.0  14.79  14.57  1.58  36.4  19.53  19.53  427.81  104.58 1.00  0.02
  551.0  14.86  14.63  1.58  36.2  19.41  19.41  425.80  107.39 1.00  0.01
  557.0  14.93  14.70  1.59  36.0  19.34  19.34  424.99  110.66 1.00  0.00
  563.0  14.99  14.75  1.60  35.8  19.30  19.30  425.42  114.33 1.00  0.00
  569.0  15.04  14.80  1.62  35.6  19.27  19.27  427.18  118.28 1.00 -0.00
  575.0  15.10  14.84  1.64  35.4  19.26  19.26  430.40  122.30 1.00 -0.00
  581.0  15.16  14.88  1.66  35.2  19.24  19.24  435.20  126.31 1.00 -0.01
  587.0  15.22  14.92  1.69  34.9  19.24  19.24  441.60  130.04 1.00 -0.01
  593.0  15.27  14.95  1.71  34.7  19.21  19.21  449.72  133.28 1.00 -0.01
  599.0  15.32  14.98  1.75  34.5  19.20  19.20  459.49  135.72 1.00 -0.01
  605.0  15.36  15.01  1.78  34.3  19.18  19.18  471.17  137.10 1.00 -0.00
  611.0  15.41  15.04  1.81  34.1  19.16  19.16  484.65  137.07 1.00 -0.00

real    0m13.554s
user    3m20.568s
sys     0m4.028s
 
#1,318 ·
Upgraded my computer from an older AMD Ryzen 2 to Intel Alder Lake. To my surprise nec.opt ran far faster on the Intel then I expected. I turned off the extra cores so both had the same number of cores/threads and reran the test.

On a random x264 file, encode time was about 14% faster with the Intel (4m1s vs 4m35s) which sounds reasonable. But with the same NEC file, nec.opt was averaging around 88s per iteration for Intel vs 328s, which is crazy different. Same SSD pulled and used in both computers, so only the hardware was different. I even limited the max CPU power draw for both to the same wattage.

I found some info regarding Python and other software that has optimization "issues" with AMD when using Intel Math Kernel Library. But setting the environment variable as recommended for MKL_DEBUG_CPU_TYPE made no difference. Maybe its the older Python3.4 that was installed or with the NEC engine itself...

But regardless, a 3.7 times difference is crazy. I dont see what could cause that much of a gap..
 
#1,319 ·
MKL_DEBUG_CPU_TYPE
I use HFSS. It uses Intel Math library. I use AMD Ryzen.
By default HFSS penalizes non-Intel CPU disabling SSE insctructionsm because it relies on Intel Math library and Intel penalizes non-Intel CPU
MKL_DEBUG_CPU_TYPE=5 makes my Ryzen +88% (1.88x) times faster on a hfss3Dsolver (typical antenna simulation)

Do not know how 4NEC2 compile FP calculations, but it is possible that compiler prohibit non-Intel from using MMX/SSE/SSE2 instructions.
 
#1,321 · (Edited)
Hi all

Been trying to model this 5 element 46 inch yagi, specifically for channel 7 (177 Mhz), impedance 75 ohm
The run looks good, but the geometry doesn't seem to follow the typical accepted yagi dimensions & director spacings.

Especially, you can see the first director is only 2.75 inches in front of the driven element
This seems very close. I am wondering if the gain results and model integrity are accurate or valid ? Are the results too good ?
Also the results are not consistent with the results using the K7MEM yagi calculator....

Any thoughts, comments from the experienced folks here is appreciated!


Image
 
#1,324 ·
geometry doesn't seem to follow the typical accepted yagi dimensions & director spacings.
it is not director for trawelling wave. It doesn't participate in aperture (directivity) and it doesn't decrease propagation velocity (phase one) as normal directors do.

It is matching device for herzian or folded dipole. Usually it is a bit shorter than dipole, hence his own resonant frequency is higher. Impedance curves of dipole and this parasitic resonator combine in some way, making jX curve to pass jX=0 three times, and allowing developer to move Re closer to desired impedance (50/75 or 200/300 usually) by changing spacing and/or length difference. It is "VSWR-tuner & wideband-enhancer". There can be more than 1 parasitic resonator (2 or more are also possible).
 
#1,322 ·
I wouldn't call myself an expert but I think the calculators are based on simple formulas. So if you optimize it with software it will be a better result, but not one that is obvious with a simple formula.

Do you have a length limit in the NEC file? Could be that it wants to be longer but with a limit it will squish down the directors closer than they would normally be. You could try to remove a director and see what happens, or increase the length to test the results.

Here's a quickie VHF7 with 46" limit using 1/4" Al. Roughly matches your result.

Code:
         --- Gain ---              -- Ratios -- -- Impedance --           
   Freq    Raw    Net   SWR BeamW    F/R    F/B    Real    Imag  AGT  corr
==========================================================================
  174.0   9.83   9.79  1.23  55.2  20.59  21.89  303.67   61.39 1.00 -0.01
  175.0   9.93   9.88  1.25  54.7  21.31  25.19  299.62   66.55 1.00 -0.01
  176.0  10.05   9.99  1.26  54.0  21.78  30.04  299.91   70.62 1.00 -0.01
  177.0  10.17  10.11  1.26  53.4  22.12  33.49  304.42   70.00 1.00 -0.01
  178.0  10.28  10.24  1.22  52.7  22.50  28.09  310.73   59.32 1.00 -0.01
  179.0  10.39  10.38  1.12  51.9  22.90  23.49  310.25   32.68 1.00 -0.01
  180.0  10.46  10.46  1.06  51.2  20.28  20.28  284.64   -7.38 1.00 -0.01

  174.0   9.81   9.76  1.23  55.2  20.59  21.89  303.67   61.39 1.00  0.01
  180.0  10.44  10.43  1.06  51.2  20.28  20.28  284.64   -7.38 1.00  0.01
  186.0   6.93  -2.24 30.99  43.6   7.09   7.09   14.60  213.74 1.00  0.01
  192.0   0.21 -12.35 70.02  32.5  -6.84  -6.84   17.42  525.02 1.00  0.01
  198.0   0.39  -9.92 40.96  37.4  -6.35  -6.35   82.81  959.83 0.99 -0.02
  204.0  -0.27  -9.05 28.23  41.7  -6.16  -6.16  431.07 1838.27 0.99 -0.02
  210.0  -0.62  -8.45 22.26  46.4  -5.76  -5.76 3625.39 3320.88 0.99 -0.02
  216.0  -0.80  -8.02 19.05  52.0  -5.34  -5.34 2935.96-2848.59 0.99 -0.02
 
#1,323 ·
Hi
Yup, I wanted it limited to 46 inches for a few reasons.
I set the impedance to 75 ohm for direct coaxial connection, straight dipole & using 3/8 inch aluminum

I'll try removing a director & post the file prob tomorrow....

This one, if valid & perfectly built would give me another 2 DB improvement over my currently installed 5 element, 31 inch, swept back driven Yagi .....I hope
 
#1,325 · (Edited)
Very interesting, thank you for your very informative post. This is fairly beyond my competency level in antenna design, but I appreciate your input. I believe I understand the the main thrust of your explanation.

In follow-up, I tried removing that "parasitic resonator" and indeed this resulted in the same gain, but SWR increased to above 5 ....

Still considering whether I should try to construct this - even for a theoretical maximum gain increase about 2.0 dbi ....also I'm still unsure of the most efficient method to do the direct connection to 75 ohm coaxial line.
Regards
 
#1,326 ·
Do you have room vertically? You could get a bit more gain if you do a pair at about 40in



Code:
         --- Gain ---              -- Ratios -- -- Impedance --          
   Freq    Raw    Net   SWR BeamW    F/R    F/B    Real    Imag  AGT  corr
==========================================================================
  174.0  12.33  12.29  1.20  54.2  22.57  22.95  308.61   53.89 1.00  0.01
  175.0  12.41  12.36  1.23  53.7  22.60  27.15  311.63   63.53 1.00  0.01
  176.0  12.48  12.42  1.26  53.2  22.19  34.08  319.24   69.43 1.00  0.01
  177.0  12.56  12.50  1.27  52.6  21.87  40.84  330.82   67.70 1.00  0.01
  178.0  12.64  12.59  1.23  52.0  21.86  30.72  342.82   52.42 1.00  0.01
  179.0  12.71  12.68  1.16  51.3  22.15  25.54  343.97   17.60 1.00  0.01
  180.0  12.75  12.74  1.11  50.6  21.96  21.96  312.06  -30.77 1.00  0.01

  174.0  12.30  12.26  1.20  54.2  22.57  22.95  308.61   53.89 1.01  0.04
  180.0  12.72  12.70  1.11  50.6  21.96  21.96  312.06  -30.77 1.01  0.04
  186.0   5.11  -2.52 21.11  54.2   0.93   7.12   22.84  233.36 1.01  0.04
  192.0   2.04  -8.78 46.22  38.1  -5.08  -5.08   34.84  626.16 1.01  0.04
  198.0   3.70  -5.32 29.88 225.6  -5.17  -5.17  221.74 1360.52 1.00  0.00
  204.0   4.26  -3.48 21.70 201.5  -4.54  -4.54 2661.55 3192.14 1.00  0.00
  210.0   4.67  -2.42 18.40 190.2  -3.95  -3.95 2243.84-2701.81 1.00  0.00
  216.0   4.83  -1.93 16.91 188.0  -3.59  -3.59  552.70-1555.14 1.00  0.00
 
#1,327 ·
It's a possibility, but I'd prob try to clean up or tweak my current set up before getting into trying to match a 2nd antenna

I'm capturing channel 7 quite regularly,but it swings throughout the day, and seasons, from 2 bars to max 4 bars on the tv meter......so I think there is also interference/ multipath. Perhaps I'm receiving it off a reflection since I'm aiming off a bit from the transmitter for best results .....


I don't recall if the vertical stack narrows the beam so much (as compared to horizontal pairing)
 
#1,328 ·
I don't recall if the vertical stack narrows the beam so much (as compared to horizontal pairing)
it might be counter-intuitive, but narrowing beam is the same as increasing aperture in the same axis
Due to multi-path reflection, which can vary throughout the day, and seasons - antenna with more aperture is less likely to stuck in null interference
Image
 
#1,330 · (Edited)
The site mentions:
if no interference (clean Fresnel zones, no reflections/multipath) than no difference.

Image

Image
Image

Image


Interference can create nulls both in vertical axis and azimuthal.

It is generally considered that in vertical axis you can avoid nullls (if any) by adjusting antenna mounting height. Adding second storey may not capture additional energy from null spot.

But if you have seasonal change (different reflectivity due to humidity, vegetation, snow/ice etc) null spots also can move seasonal. If this is the case - you have to adjust antenna mounting height per season. Or use double deck antenna with larger aperture.
Same may apply to horizontal/azimuthal nulls, but they are less likely seasonal.

More here: http://www.hdtvprimer.com/ANTENNAS/GlossaryA.html#fading
 
#1,333 · (Edited)
When modeling a 5 element VHF (channel 7) yagi in 4nec2, my best results for gain & SWR resulted in a reflector length equal to the length of my driven (dipole). Everything I've read seems to state on a yagi the reflector is typically about 5% longer than the driven element.

Additionally, when I construct it, if I include the feedpoint gap, the dipole ends will extend past (longer) than the ends of the reflector...

I am thinking of why this is and would it have a real effect on performance ?
Any comments are appreciated

Edit:
Since the reflector is already cut to size, should I shorten the driven dipole now..…