FEMM 5

Исследование 2 · FEMM 5 · встроенный Python

Сгущение тока у входящего угла: сетка и физически определённый результат

Г-образный проводник изменяет направление тока на прямой угол. У входящего угла линии тока сгущаются: локальные потери возрастают, а идеальная острая кромка создаёт математическую особенность. Этот опыт связывает геометрию контакта, сходимость сетки и смысл выбранной расчётной величины.

Три новые задачи постоянного тока построены и решены во встроенном Python FEMM 5. Графики ниже содержат реальные результаты; численный максимум у идеальной вершины не используется как физическая характеристика.

Место в курсе.Геометрию, физическую постановку и результаты можно изучать вместе с основным занятием. Серийную программу и обработку разбирайте после введения во встроенный Python.

Объект, физическая модель и вывод соотношений

Соглашения об обозначениях и единицах
  • \(i(t)\), \(u(t)\) — мгновенные значения; \(\widehat I\), \(\widehat U\) — комплексные амплитуды; \(\underline I_{\text{д}}\), \(\underline U_{\text{д}}\) — комплексные действующие значения. Для синусоиды \(\widehat I=\sqrt{2}\,\underline I_{\text{д}}\); действующее значение тока равно \(|\underline I_{\text{д}}|\). Нормировка обязательно учитывается в формулах мощности.
  • \(\Phi=\int_S\mathbf B\cdot\mathrm d\mathbf S\) — поток через ориентированную поверхность; \(\Psi=\sum_k\oint_{C_k}\mathbf A\cdot\mathrm d\mathbf l\) — потокосцепление последовательных витков с согласованными замкнутыми контурами. Только при одинаковом сцепленном потоке каждого витка \(\Psi=N\Phi\). Обе величины измеряются в веберах: число витков безразмерно. Запись «Вб·виток» подчёркивает суммирование.
  • \(\theta_{\text{м}}\), \(\Omega\) (также \(\omega_{\text{мех}}\)) — механические угол и угловая скорость. Для основной гармоники \(\theta_{\text{э}}=p\theta_{\text{м}}\), \(\omega_{\text{э}}=p\Omega\), где \(p\) — число пар полюсов. Геометрический период зубцов задаётся отдельно. В производных по углу используйте радианы.
  • Статическая индуктивность \(L_{\text{ст}}=\Psi/i\) — наклон секущей из начала координат; это определение используется при \(\Psi(0)=0\) и \(i\ne0\). Динамическая индуктивность \(L_{\text{дин}}=\partial\Psi/\partial i\) — наклон касательной (дифференциальная, инкрементальная); положение и остальные токи фиксированы. Для линейной характеристики без смещения обе равны одной индуктивности \(L\). При постоянных магнитах и взаимном возбуждении сначала учитывают ненулевое смещение потокосцепления.
  • Положительные направления, оси и специальные индексы определяются в конкретной задаче. Единицу берите из условия или заголовка таблицы; перед подстановкой в формулу СИ переводите миллиметры в метры, миллигенри в генри и градусы в радианы.
  • Численные результаты обычно показаны с четырьмя значащими цифрами; для сравнения близких значений в таблицах сходимости сохранено больше цифр. Полные значения остаются в исходных расчётных данных. Малые остатки вычисления координат на осях показаны как ноль; малые физические величины сохраняются в показательной записи.

От закона Ома к особенности входящего угла

В проводнике без объёмного источника выполняются сохранение заряда и локальный закон Ома. При постоянной проводимости потенциал удовлетворяет уравнению Лапласа. На изолированной боковой поверхности нормальная компонента тока равна нулю.

В окрестности входящего угла используем полярные координаты с началом в вершине. Материал занимает клин с углом \omega =3\pi /2. Ищем непостоянную гармонику потенциала r^\lambda \cos (\lambda \theta ), где \theta отсчитывается от одной из изолированных граней. Нулевые нормальные производные на обеих гранях требуют \sin (\lambda \omega )=0. Наименьший положительный показатель \lambda =\pi /\omega =2/3 задаёт ведущую особенность.

Градиент потенциала пропорционален r^(\lambda -1), поэтому плотность тока возрастает как r^(-1/3). Это не означает бесконечной полной мощности: интеграл по площади окрестности вершины сходится. В реальном проводнике конечный радиус скругления ограничивает плотность тока.

\mathbf J=-\sigma\nabla V,\quad \nabla\cdot\mathbf J=0\Rightarrow\nabla^2V=0,\quad \mathbf n\cdot\mathbf J=0
(Р2.1)
Постоянный ток; \sigma =58\cdot 10^{6} См/м; боковые грани изолированы.
V-V_0\sim Cr^{\lambda}\cos(\lambda\theta),\quad \lambda=\frac\pi\omega=\frac23,\quad |\mathbf J|\sim r^{-1/3}
(Р2.2)
Асимптотика описывает окрестность идеального угла. Коэффициент C задаётся всей задачей, а не локальным клином.
P_{r<\epsilon}\sim\int_0^{\epsilon}\frac{J^2}{\sigma}r\,\mathrm dr\sim\int_0^{\epsilon}r^{1/3}\,\mathrm dr\sim\epsilon^{4/3}
(Р2.3)
Полная мощность остаётся конечной. Глубина плоской модели — постоянный множитель.
R=\frac{U}{I},\quad P_{\text{выводы}}=UI,\quad P_{\text{поле}}=l_z\int_S\frac{J^2}{\sigma}\,\mathrm dS
(Р2.4)
Для постоянного тока нет множителя 1/2. Сопоставляются полная мощность и мощность по полю в одной физической глубине.

Постановка и последовательность расчёта

Таблица Р2.1. Исходные данные
ВеличинаЗначениеЕдиница
Габарит40 × 40мм
Ширина плеча10мм
Глубина1мм
Напряжение0,001В
Размер элемента h0,6; 0,3; 0,15мм
  1. Создайте многоугольник с вершинами (0;0), (40;0), (40;10), (10;10), (10;40), (0;40), координаты в миллиметрах. Глубина 1 мм, частота 0 Гц.
  2. Назначьте медь и потенциалы 1 мВ на торце x=40 мм и 0 В на торце y=40 мм. Остальные стороны изолированы естественным условием. На каждом торце используйте именованный проводник.
  3. Выполните три расчёта с одинаковой геометрией и разным максимальным размером элемента. Измерьте токи обоих выводов, сопротивление и активную мощность.
  4. Сравните J на фиксированных расстояниях от угла вдоль внутренней биссектрисы. Не считайте изменение максимума в ближайшем к вершине элементе признаком физического расхождения модели.
  5. Для проектного продолжения задайте реальный радиус скругления и повторите сгущение сетки. Проверяйте как интегральную мощность, так и усреднение J^{2} по физически заданной области.

Численные результаты и их проверка

Показаны сохранённые результаты FEMM 5. Переключатель и курсор исследуют готовую серию; повторный расчёт выполняется программой в установленном FEMM.

Таблица Р2.2. Численные данные
h, ммТок, АСопротивление, мкОмПотери, мВтНевязка мощности, отн. ед.
0,68,8476964113,023778,84769658,0156885 × 10⁻⁹
0,38,8463078113,041518,84630824,41392 × 10⁻⁹
0,158,8445835113,063558,844583324,675395 × 10⁻⁹

Контрольные сопоставления

Как воспроизвести в FEMM 5

Скачайте программу и необходимые модели, данные и инструкции из списка ниже. Сохраните указанные имена файлов и структуру подпапок. Откройте программу в редакторе встроенного Python FEMM 5 и запустите её. Внешний CPython для управления FEMM не требуется.

Программа строит всю геометрию, выполняет три расчёта Current Flow и сохраняет токи, мощность, локальные выборки, модели и решения.

Программа встроенного Python

Текст программы
# FEMM 5, встроенный MicroPython. Сгущение постоянного тока у входящего угла.
# Собственная постановка курса по мотивам видео ComProgExpert № 4.
# При запуске из редактора выберите рабочей папкой папку этого файла.
import os
import sys
import json
import math

script = globals().get('__file__', '') or (sys.argv[0] if sys.argv else '')
if script and script not in ('', '-c', '-'):
    os.chdir(os.path.dirname(os.path.abspath(script)))
if not 'results' in os.listdir('.'):
    os.mkdir('results')

rows = []
for h in (0.6, 0.3, 0.15):
    newdocument(3)
    ci_probdef('millimeters', 'planar', 0, 1e-9, 1, 30)
    ci_addmaterial('Copper', 58000000, 58000000, 1, 1, 0, 0)
    points = [(0, 0), (40, 0), (40, 10), (10, 10), (10, 40), (0, 40)]
    for x, y in points:
        ci_addnode(x, y)
    for index in range(len(points)):
        x1, y1 = points[index]
        x2, y2 = points[(index + 1) % len(points)]
        ci_addsegment(x1, y1, x2, y2)
    ci_addconductorprop('Supply', 0.001, 0, 1)
    ci_addconductorprop('Return', 0, 0, 1)
    ci_selectsegment(40, 5)
    ci_setsegmentprop('<None>', h, 0, 0, 0, 'Supply')
    ci_clearselected()
    ci_selectsegment(5, 40)
    ci_setsegmentprop('<None>', h, 0, 0, 0, 'Return')
    ci_clearselected()
    ci_addblocklabel(5, 5)
    ci_selectlabel(5, 5)
    ci_setblockprop('Copper', 0, h, 1)
    ci_clearselected()
    name = 'results/current-h-' + str(h)
    ci_saveas(name + '.fec')
    ci_analyze(1)
    ci_loadsolution()
    co_smooth('off')
    va, ia = co_getconductorproperties('Supply')
    vb, ib = co_getconductorproperties('Return')
    co_groupselectblock(1)
    power = float(complex(co_blockintegral(0)).real)
    co_clearblock()
    current = abs(complex(ia))
    samples = []
    for radius in (0.5, 1, 2, 4):
        x = 10 - radius / math.sqrt(2)
        values = co_getpointvalues(x, x)
        j = math.sqrt(abs(complex(values[1])) ** 2 + abs(complex(values[2])) ** 2)
        samples.append({'r_mm': radius, 'J_A_m2': j})
    row = {'h_mm': h, 'I_A': current, 'R_ohm': 0.001 / current,
           'P_W': power, 'P_terminal_W': 0.001 * current,
           'current_balance_A': abs(complex(ia) + complex(ib)),
           'power_relative_error': abs(power - 0.001 * current) / power,
           'samples': samples}
    rows.append(row)
    co_close()
    ci_close()

result = {'runtime': 'FEMM 5.0, embedded MicroPython, Current Flow DC',
          'source': 'Own six-edge L conductor; no dimensions copied from video',
          'conductivity_S_m': 58000000, 'depth_mm': 1, 'voltage_V': 0.001, 'rows': rows}
result['passed'] = max(row['power_relative_error'] for row in rows) < 1e-6 and max(row['current_balance_A'] for row in rows) < 1e-6
with open('results/result.json', 'w') as output:
    json.dump(result, output)
print(json.dumps(result))
assert result['passed']

Как трактовать результат

Расчётная среда: FEMM 5.0 06Oct2026 bd03d0b, встроенный MicroPython, порт 48123

Введение в устройство и принцип действия объекта, вывод учебных соотношений и пояснения к результатам написаны для этого курса. Численные результаты и заимствованные методы связаны с указанными ниже исходными материалами.

Источники и дальнейшее чтение

  1. [8]

← Все расчётные исследования