Анализ антенного тюнера при помощи Python

15 апреля 2020

На прошлой неделе мы познакомились с библиотекой pySmithPlot, научились рисовать с ее помощью диаграммы Смита и графически изобразили работу четвертьволнового трансформатора. Сегодня мы снова воспользуемся pySmithPlot. Но на этот раз библиотека будет применена для анализа антенного тюнера, выполненного по T-образной схеме.

За основу взята идея из статьи Сравнение тюнеров Игоря Гончаренко, DL2KQ. О статье я узнал благодаря комментарию, который оставил Юрий Красовский, EW1AEI.

Идея достаточно проста. Тюнеру нет разницы, согласует он кабель с антенной или антенну с кабелем. Перевернем все с ног на голову и представим, что преобразуем во что-то 50 Ом кабеля. Мы знаем схему тюнера, в каких пределах меняются емкость и индуктивность компонентов, и все формулы известны. Для любого возможного положения ручек посчитаем результирующий импеданс и нанесем его на диаграмму Смита. Если итоговая диаграмма закрашена как следует, значит схема тюнера и его компоненты выбраны удачно. Поскольку импеданс конденсаторов и катушек индуктивности зависит от частоты, операцию нужно повторить для всех интересующих частот.

В оригинальной статье использовалась программа для Windows под названием RFSim99. Windows я давно не пользуюсь, зато мне не трудно написать десяток-другой строк на языке Python:

#!/usr/bin/env python3

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.ru. Размеры подобраны так, чтобы полная индуктивность составляла 14 мкГн и при этом катушка имела 24 витка, по одному отводу на виток. Выбрано 24 отвода, поскольку это дает много различных значений индуктивности, а галетные переключатели на 24 положения нетрудно найти на том же eBay. Индуктивность выбрана равной 14 мкГн, поскольку такая катушка стоит в MFJ-971. Так как тюнер выполнен по T-образной схеме и неплохо справляется со своей работой, 14 мкГн показались мне неплохим начальным значением. В качестве частот выбраны середины телеграфных участков радиолюбительских диапазонов.

Скрипт говорит, что тюнер будет неплохо работать на диапазонах 80, 40, 30 и 20 метров. Правда, на диаграмме Смита для диапазона 20 метров есть пара дырочек:

Модель антенного тюнера, диапазон 20 метров

Но я думаю, что тюнеру можно простить неспособность согласовать чисто активные 500 Ом или около того на частоте 14.035 МГц. Антенну с таким чисто активным входным сопротивлением еще нужно поискать. Диаграммы для диапазонов 80, 40 и 30 метров аналогичные, только без дырочек.

С ростом частоты картина портится все сильнее и на 10 метрах выглядит так:

Модель антенного тюнера, диапазон 10 метров

При определенных условиях тюнер может не справиться с задачей уже при КСВ 2.4. Это не обязательно означает, что тюнер совсем никуда не годится. У вас есть дополнительные степени свободы в виде изменения размеров антенны, возможности использовать вместе с тюнером трансформаторы, и так далее. Но тот факт, что на диапазонах 10, 12, 15 и 17 метров тюнер согласует не все подряд, следует иметь ввиду.

Наконец, рассмотрим диапазон 160 метров:

Модель антенного тюнера, диапазон 160 метров

Я бы сказал, что в этом диапазоне придуманный тюнер работает скверно. Это может быть или не быть проблемой, в зависимости от того, насколько часто вы работаете в диапазоне 160 метров.

Как видите, подобный анализ произвести совсем не сложно. Он сразу показывает, будет ли тюнер решать интересующие вас задачи. Это может сэкономить кучу времени.

Дополнение: В продолжение темы вас могут заинтересовать посты Миниатюрный ручной антенный тюнер и Моделирование антенн на Python при помощи PyNEC.

Метки: , , .


Вы можете прислать свой комментарий мне на почту, или воспользоваться комментариями в Telegram-группе.