Антенный моделировщик представляет собой программу, в которую вы вводите модель антенны, а программа показывает свойства этой антенны — распределение тока, входное сопротивление, диаграмму направленности, график КСВ, и так далее. Звучит как что-то полезное. Так давайте же попробуем смоделировать нашу первую антенну, и воспользуемся для этого моделировщиком cocoaNEC .
К сожалению, не существует одного бесплатного (и желательно открытого) моделировщика под все платформы. Среди пользователей Windows популярны моделировщики GAL-ANA , MMANA-GAL , 4NEC2 и EZNEC . Для Linux существует xnec2c . Под MacOS есть приложение cocoaNEC . Я сделал выбор в пользу последнего, поскольку на данный момент использую в качестве основной системы MacOS .
CocoaNEC является разработкой американского радиолюбителя Kok Chen, W7AY. Как можно догадаться по названию, графический интерфейс cocoaNEC построен на фреймворке Cocoa. Непосредственно для моделирования антенн используется открытый движок NEC-2 . Интересное отличие cocoaNEC от других моделировщиков заключается в поддержке C-подобного языка для описания антенн. Язык называется NC. Лично я нахожу такой способ ввода модели намного удобнее, чам накликивание в GUI. Накликивание cocoaNEC тоже поддерживает, но здесь мы его рассматривать не будем.
На языке NC антенна inverted-V описывается следующим образом:
real height, length, angle, eps, gauge, segments, a, b;
element center, left, right ;
height = 10;
length = 5.22;
angle = 120;
eps = 0.01;
gauge = #18;
segments = 21;
b = length*sin(pi*angle/2/180);
a = length*sin(pi*(90 — angle/2)/180);
center = wire(0,-eps, height,
0, eps, height,
gauge, segments);
left = wire(0, -b, height — a,
0,-eps, height,
gauge, segments);
right = wire(0, b, height — a,
0,eps,height,
gauge, segments);
voltageFeed(center, 1.0, 0.0);
azimuthPlotForElevationAngle(0);
elevationPlotForAzimuthAngle(32);
// frequencySweep(13.9, 14.4, 20);
setFrequency(14.150);
// poorGround();
averageGround();
// goodGround();
}
Как видите, модель антенны представляет собой множество соединенных проводов (функция wire
). Для каждого провода указывается координаты его начала и конца, толщина провода, а также на сколько сегментов его нужно разбить при моделировании. Также мы указываем, в центр какого провода осуществляется питание антенны (функция voltageFeed
). Вот и вся антенна, проще некуда! Назначение прочих функций, думаю, понятно из их названия и контекста.
Вводим приведенный выше текст в File → New NC Model → NC Source и нажимаем Run. Открывается новое окно, на вкладке Summary которого мы видим диаграмму направленности антенны:
Под диаграммой направленности находится следующий вывод:
Feedpoint(1) — Z: (47.989 — i 0.951) I: (0.0208 + i 0.0004) ⏎
VSWR(Zo=50 Ω): 1.0:1
Ground — Rel. dielectric constant 13.000, conductivity: 0.00500⏎
mhos/meter. (NEC-2 ground)
Directivity: 7.74 dB
Max gain: 7.57 dBi (azimuth 0 deg., elevation 32 deg.)
Front-to-back ratio: 0.00 dB (elevation 32 deg)
Front-to-back ratio: 0.00 dB (elevation of front lobe)
Front-to-rear ratio: 0.00 dB
Average Gain: 0.9563 (0.194 dB)
Compute time: 0.06 sec
Видим, что антенна имеет входное сопротивление, близкое к 50 Ом почти без реактивной составляющей, КСВ 1:1 и максимальное усиление 7.57 dBi под углом возвышения 32 градуса. Очень даже приличная антенна для дальних связей, при условии, что вы сможете поднять ее центр на высоту λ/2. В качестве домашнего задания предлагаю вам выяснить, как изменяются свойства inverted-V с уменьшением и увеличением высоты мачты.
Fun fact! Как вам может быть известно, 0 dBd = 2.15 dBi, то есть коэффициент усиления диполя составляет 2.15 дэцибел по сравнению с коэффициентом усиления изотропного излучателя . Но как тогда вышло, что мы только что получили целых 7.57 dBi? Дело в том, что 2.15 dBi — это усиление диполя в свободном пространстве . На высоте λ/2 от земли усиление диполя составляет от 5.9 dBi (плохая земля) до 7.6 dBi (хорошая земля), поэтому никакого противоречия нет. Кстати, если вы промоделируете в cocoaNEC вертикал 0.25λ с N радиалами, то узнаете, что его максимальный коэффициент усиления составляет всего лишь 0 dBi, независимо от величины N.
На вкладке Geometry можно посмотреть на саму антенну, а также распределение тока в ней:
Вкладки Azimuth и Elevation показывают то же самое, что и Summary, только крупнее. Поэтому здесь мы их пропустим. Во вкладке 3D можно полюбоваться диаграммой направленности антенны в трех измерениях:
Важно! Как известно, Inverted-V имеет максимальное усиление перпендикулярно плоскости, в которой расположены плечи антенны. То есть, на последнем изображении мы смотрим на плоскость антенны, как мы смотрели и на вкладке Geometry. Однако можно заметить, что значения в полях Azimuth на последних двух скриншотах отличаются на 90 градусов. Как говорится, понять это невозможно, нужно просто запомнить.
Давайте теперь изменим код следующим образом:
//setFrequency(14.150);
… снова нажмем Run, и откроем вкладку Scalar. Помимо прочего, на ней можно посмотреть график КСВ антенны:
КСВ в диапазоне 20 метров не превышает 1.3. Наконец, во вкладке Smith Chart доступна диаграмма Смита , отображающая изменение входного сопротивления антенны в зависимости от частоты:
Итак, что же выходит? Теперь можно просто вбивать антенны в моделировщик, и в реальности они будут работать точь-в-точь как модель? Увы, это не так:
- Моделировщик не учитывает ландшафт местности. С его точки зрения земли либо вовсе нет (свободное пространство), либо земля идеально гладкая;
- Вы точно не знаете, какого качества у вас земля. Кроме того, реальная земля редко бывает однородной, какой ее считает моделировщик, а влияние на антенну она оказывает в радиусе нескольких λ. То есть, какое-нибудь озеро, находящееся в 100 метрах от вашей КВ-антенны, может существенно влиять на ее работу;
- Не учитывается влияние на антенну окружающих объектов — припаркованного недалеко автомобиля, соседских домов, идущего к антенне коаксиального кабеля, мачты, других ваших антенн, и так далее;
- При определенный условиях моделировщик просто врет. В частности, движок NEC-2 не любит стыки проводов разного диаметра, стыки множества коротких проводов (как следствие, он неправильно моделирует шунтовые схемы согласования, например, гамма-согласование), и некоторые другие вещи ;
- Моделировщик не скажет вам, какой уровень шума будет иметь антенна. Источники шума просто не входят в модель;
Можно с хорошей степенью уверенности утверждать, что реальная антенна будет заметно отличаться от модели. Тогда в чем же польза от моделировщика? Во-первых, моделировщик полезен, когда хочется оценить какие-то общие свойства антенны. Вертикал 0.25λ мало излучает в зенит, и это свойство не поменяется от качества земли (но поменяется, если рядом стоит рефлектор в виде крыши соседского дома). Во-вторых, в моделировщике можно сравнить две антенны при прочих равных условиях, что редко возможно в физическом мире. В-третьих, моделировщик позволяет сэкономить много времени и сил, когда требуется спроектировать новую никем не описанную антенну под конкретные условия (например, дельту определенной формы). В общем, как и любой инструмент, моделировщик следует использовать с умом.
Больше примеров антенн вы найдете на сайте cocoaNEC. Там же вы найдете исчерпывающую справку по функциям языка NC , туториал по оптимизации заданных параметров антенны и другую полезную информацию.
Дополнение: Позже я выяснил, что при моделировании антенн нужно обязательно проверять, не столкнулись ли мы с ограничениями движка NEC-2. Сделать это можно двумя способами. Во-первых, с увеличением числа сегментов свойства антенны не должны сильно меняться. Во-вторых, если мы уберем любые источники потерь, то Average Gain должен быть в пределах 0.95-1.0 (общее усиление около 0 dB). В частности, во время этой проверки антенна должна моделироваться над идеальной землей или в свободном пространстве. Если Average Gain выходит за заданные пределы, то антенна работает, как усилитель или аттенюатор. Поскольку она не является ни первым, ни вторым, это говорит об ошибке моделирования.
Дополнение: Вас также могут заинтересовать статьи Собираем индикатор напряженности поля , Как измерить диаграмму направленности антенны и Моделирование антенн на Python при помощи PyNEC .