Анализ антенного тюнера при помощи Python
15 апреля 2020
На прошлой неделе мы познакомились с библиотекой pySmithPlot, научились рисовать с ее помощью диаграммы Смита и графически изобразили работу четвертьволнового трансформатора. Сегодня мы снова воспользуемся pySmithPlot. Но на этот раз библиотека будет применена для анализа антенного тюнера, выполненного по T-образной схеме.
За основу взята идея из статьи Сравнение тюнеров Игоря Гончаренко, DL2KQ. О статье я узнал благодаря комментарию, который оставил Юрий Красовский, EW1AEI.
Идея достаточно проста. Тюнеру нет разницы, согласует он кабель с антенной или антенну с кабелем. Перевернем все с ног на голову и представим, что преобразуем во что-то 50 Ом кабеля. Мы знаем схему тюнера, в каких пределах меняются емкость и индуктивность компонентов, и все формулы известны. Для любого возможного положения ручек посчитаем результирующий импеданс и нанесем его на диаграмму Смита. Если итоговая диаграмма закрашена как следует, значит схема тюнера и его компоненты выбраны удачно. Поскольку импеданс конденсаторов и катушек индуктивности зависит от частоты, операцию нужно повторить для всех интересующих частот.
В оригинальной статье использовалась программа для Windows под названием RFSim99. Windows я не пользуюсь, зато мне не трудно написать десяток-другой строк на языке Python:
import numpy as np
from math import pi
from matplotlib import pyplot as pp
from smithplot import SmithAxes
def impedance(freq, Za, C1, L1, C2):
omega = 2*pi*freq
C1 = C1/1000/1000/1000/1000
C2 = C2/1000/1000/1000/1000
L1 = L1/1000/1000
Zc1 = 1/(1j*omega*C1)
Zc2 = 1/(1j*omega*C2)
Z1 = Za + Zc1
Z2 = 1j*omega*L1
Zt = Z1*Z2/(Z1+Z2)
return Zt+Zc2
Za = 50
c_min = 22.0
c_max = 360.0
# use c_step = 0.3 if you have some spare time
c_step = 1.0
# based on https://coil32.ru/calc/one-layer.html
# D = 39mm, d = 1mm, k = 2mm, L/D = 1.2
l_list = [0.1,0.35,0.65,1.05,1.5,2.0,2.5,3.1,3.7,4.3,4.9,5.6,
6.3,6.9,7.6,8.4,9.1,9.8,10.5,11.3,12.0,12.8,13.5,14.0]
f_list = [1.820, 3.540, 7.020, 10.115, 14.035,
18.080, 21.035, 24.900, 28.035]
for f in f_list:
freq = int(f*1000000)
print("freq = {}".format(freq))
pp.figure(figsize=(6, 6))
ax = pp.subplot(1, 1, 1, projection='smith')
ax.update_scParams(axes_impedance = 50)
for L1 in l_list:
print(" L1 = {}".format(L1))
imp_list = []
for C1 in np.arange(c_min, c_max, c_step):
for C2 in np.arange(c_min, c_max, c_step):
imp = impedance(freq, Za, C1, L1, C2)
imp_list += [imp]
pp.plot(np.array(imp_list), color='blue', linestyle='',
marker='o', markersize=2, alpha=.2, datatype='Z')
pp.savefig('./smith-{}.png'.format(freq))
Здесь считается, что в тюнере используется пара КПЕ, емкость которых меняется от 22 до 360 пФ. Это заявленный диапазон значений пары имеющихся у меня КПЕ. Катушка индуктивности рассчитана при помощи онлайн-калькулятора Coil32. Размеры подобраны так, чтобы полная индуктивность составляла 14 мкГн и при этом катушка имела 24 витка, по одному отводу на виток. Выбрано 24 отвода, поскольку это дает много различных значений индуктивности, а галетные переключатели на 24 положения нетрудно найти на том же eBay. Индуктивность выбрана равной 14 мкГн, поскольку такая катушка стоит в MFJ-971. Так как тюнер выполнен по T-образной схеме и неплохо справляется со своей работой, 14 мкГн показались мне неплохим начальным значением. В качестве частот выбраны середины телеграфных участков радиолюбительских диапазонов.
Скрипт говорит, что тюнер будет неплохо работать на диапазонах 80, 40, 30 и 20 метров. Правда, на диаграмме Смита для диапазона 20 метров есть пара дырочек:
Но я думаю, что тюнеру можно простить неспособность согласовать чисто активные 500 Ом или около того на частоте 14.035 МГц. Антенну с таким чисто активным входным сопротивлением еще нужно поискать. Диаграммы для диапазонов 80, 40 и 30 метров аналогичные, только без дырочек.
С ростом частоты картина портится все сильнее и на 10 метрах выглядит так:
При определенных условиях тюнер может не справиться с задачей уже при КСВ 2.4. Это не обязательно означает, что тюнер совсем никуда не годится. У вас есть дополнительные степени свободы в виде изменения размеров антенны, возможности использовать вместе с тюнером трансформаторы, и так далее. Но тот факт, что на диапазонах 10, 12, 15 и 17 метров тюнер согласует не все подряд, следует иметь в виду.
Наконец, рассмотрим диапазон 160 метров:
Я бы сказал, что в этом диапазоне придуманный тюнер работает скверно. Это может быть или не быть проблемой, в зависимости от того, насколько часто вы работаете в диапазоне 160 метров.
Как видите, подобный анализ произвести совсем не сложно. Он сразу показывает, будет ли тюнер решать интересующие вас задачи. Это может сэкономить кучу времени.
Дополнение: В этом треде можно посмотреть анализ тюнера ATU-100 / N7DDC, выполненного по Г-образной схеме.
Дополнение: В продолжение темы вас могут заинтересовать посты Миниатюрный ручной антенный тюнер и Моделирование антенн на Python при помощи PyNEC.
Метки: Python, Беспроводная связь, Любительское радио.
Вы можете прислать свой комментарий мне на почту, или воспользоваться комментариями в Telegram-группе.