FEMM 5

От постановки задачи к готовому решению

Однофазный трансформатор: нагрузка

Согласованное гармоническое состояние с внешней вторичной нагрузкой.

Проверка учебной модели

Исходный учебный пример повторно рассчитан в FEMM 5 15 октября 2026 года. Его модель также построена и решена из учебной Python-программы. Результат проверки.

В занятиях о группе из трёх однофазных трансформаторов этот файл представляет одну независимую однофазную составляющую, а не три фазы в одной геометрии. Полевое напряжение FEMM не включает добавленные снаружи падения RI; нагрузка согласована внешним расчётом.

Проходите этапы по порядку. Файл каждого этапа содержит накопленное состояние модели: его можно открыть отдельно и продолжить с указанного шага. Названия материалов, цепей и файлов приведены по-русски; названия команд интерфейса FEMM сохранены для точного поиска в программе.

Числа в таблицах позволяют сверить результат на указанной сетке. Количество выведенных знаков не задаёт физическую точность модели; для силы и момента проверяйте сетку и устойчивость метода вычисления.

Итоговые файлы примера

Если нужен промежуточный результат построения, скачайте файл соответствующего этапа ниже.

Этап 1 из 11

Постановка задачи

  1. Создайте магнитную задачу через «Файл → Новая» (File → New → Magnetics Problem).
  2. В окне «Постановка задачи» (Problem Definition) выберите миллиметры, тип «плоскопараллельная» и частоту 50 Гц.
  3. Введите точность, минимальный угол сетки и остальные значения таблицы. В таблицах используется десятичная запятая; при вводе чисел в FEMM заменяйте её точкой.
  4. Поле файла предыдущего решения оставьте пустым. В осесимметричной задаче поле глубины не задаёт физическую длину: координаты обозначают радиус r и высоту z. В плоскопараллельной задаче глубина задаёт длину модели перпендикулярно плоскости чертежа.
Неполный учебный этап; решение не запускать.
Таблица 19.96. Параметры постановки
ПараметрЗначение
Частота, Гц50
Точность10 × 10⁻⁹
Минимальный угол, {}^\circ25
Умная сетка: 1 — включена1
Глубина плоской задачи, мм40
Единицымиллиметры
Тип задачиплоскопараллельная
Координатыдекартовы
Гармонический решатель: 0 — последовательные приближения0
Предыдущее решение: 0 — отсутствует0
Файл предыдущего решенияНе задан

Сохранённое состояние этапа

Промежуточный этап построения. Перед расчётом завершите оставшиеся настройки модели.

Посмотреть программу этапа с русскими комментариями
Python · программа этапа
# Однофазный трансформатор: нагрузка
# Шаг 1: Постановка задачи
# Запускайте внутри FEMM 5 через File → Open Python Script.
# Исходные учебные модели не изменяются; новый полевой расчёт не выполняется.
import math
# Новый документ: последующие команды относятся только к нему.
newdocument(0)
mi_probdef(50, "millimeters", "planar", 1e-08, 40, 25, 0)
mi_smartmesh(1)
mi_zoomnatural()
# Скрипт воспроизводит этап в памяти. При необходимости сохраните свою копию через File → Save As.
print("Готов шаг 1. Модель неполная: переходите к следующему этапу, не запускайте решение.")
Однофазный трансформатор: нагрузка. Шаг 1: Постановка задачи.
Рисунок 19.64. Однофазный трансформатор: нагрузка. Шаг 1: Постановка задачи. Открыть в полном размере

Перейти к следующему этапу →

Этап 2 из 11

Материалы и характеристика B–H

  1. Продолжайте модель предыдущего этапа: уже заданные свойства и геометрию сохраняйте. Скачиваемый файл этого этапа содержит все предыдущие действия вместе с текущими изменениями.
  2. Откройте «Свойства → Материалы» (Properties → Materials) и последовательно создайте материалы из таблиц.
  3. Для каждого материала укажите обе относительные проницаемости, коэрцитивную силу, заданную объёмную плотность тока, проводимость и параметры шихтовки. Удельная электрическая проводимость вводится в МСм/м, а не в См/м.
  4. Если дана таблица B–H, включите нелинейную характеристику и внесите каждую пару: B в Тл, H в А/м. Числа не заменяются свойствами одноимённого материала из другой библиотеки.
  5. Список сохраняет все материалы исходника. Столбец использования показывает, какие из них действительно назначены областям данного варианта.
Неполный учебный этап; решение не запускать.
Таблица 19.97. Воздух
ПараметрЗначение
Назначен областямДа
Относительная магнитная проницаемость по x/r1
Относительная магнитная проницаемость по y/z1
Коэрцитивная сила, А/м0
Угол направления коэрцитивной силы, {}^\circ0
Действительная часть плотности тока, МА/м²0
Мнимая часть плотности тока, МА/м²0
Удельная электрическая проводимость, МСм/м0
Толщина листа, мм0
Угол гистерезиса, {}^\circ0
Угол гистерезисного запаздывания по x, {}^\circ0
Угол гистерезисного запаздывания по y, {}^\circ0
Тип: 0 — без шихтовки0
Коэффициент заполнения1
Число жил0
Диаметр провода, мм0
Таблица 19.98. Обмоточная область
ПараметрЗначение
Назначен областямДа
Относительная магнитная проницаемость по x/r1
Относительная магнитная проницаемость по y/z1
Коэрцитивная сила, А/м0
Угол направления коэрцитивной силы, {}^\circ0
Действительная часть плотности тока, МА/м²0
Мнимая часть плотности тока, МА/м²0
Удельная электрическая проводимость, МСм/м0
Толщина листа, мм0
Угол гистерезиса, {}^\circ0
Угол гистерезисного запаздывания по x, {}^\circ0
Угол гистерезисного запаздывания по y, {}^\circ0
Тип: 0 — без шихтовки0
Коэффициент заполнения1
Число жил0
Диаметр провода, мм0
Таблица 19.99. Линейная сталь
ПараметрЗначение
Назначен областямДа
Относительная магнитная проницаемость по x/r1000
Относительная магнитная проницаемость по y/z1000
Коэрцитивная сила, А/м0
Угол направления коэрцитивной силы, {}^\circ0
Действительная часть плотности тока, МА/м²0
Мнимая часть плотности тока, МА/м²0
Удельная электрическая проводимость, МСм/м0
Толщина листа, мм0
Угол гистерезиса, {}^\circ0
Угол гистерезисного запаздывания по x, {}^\circ0
Угол гистерезисного запаздывания по y, {}^\circ0
Тип: 0 — без шихтовки0
Коэффициент заполнения1
Число жил0
Диаметр провода, мм0
Таблица 19.100. Нелинейная сталь
ПараметрЗначение
Назначен областямНет, сохранён в списке исходника
Относительная магнитная проницаемость по x/r1
Относительная магнитная проницаемость по y/z1
Коэрцитивная сила, А/м0
Угол направления коэрцитивной силы, {}^\circ0
Действительная часть плотности тока, МА/м²0
Мнимая часть плотности тока, МА/м²0
Удельная электрическая проводимость, МСм/м0
Толщина листа, мм0
Угол гистерезиса, {}^\circ0
Угол гистерезисного запаздывания по x, {}^\circ0
Угол гистерезисного запаздывания по y, {}^\circ0
Тип: 0 — без шихтовки0
Коэффициент заполнения1
Число жил0
Диаметр провода, мм0
Таблица 19.101. Характеристика B–H: Нелинейная сталь
B, ТлH, А/м
00
0,25100
0,5200
0,9400
1,2800
1,452000
1,65000
1,710000
Таблица 19.102. Постоянный магнит
ПараметрЗначение
Назначен областямНет, сохранён в списке исходника
Относительная магнитная проницаемость по x/r1,05
Относительная магнитная проницаемость по y/z1,05
Коэрцитивная сила, А/м909500
Угол направления коэрцитивной силы, {}^\circ0
Действительная часть плотности тока, МА/м²0
Мнимая часть плотности тока, МА/м²0
Удельная электрическая проводимость, МСм/м0
Толщина листа, мм0
Угол гистерезиса, {}^\circ0
Угол гистерезисного запаздывания по x, {}^\circ0
Угол гистерезисного запаздывания по y, {}^\circ0
Тип: 0 — без шихтовки0
Коэффициент заполнения1
Число жил0
Диаметр провода, мм0

Сохранённое состояние этапа

Промежуточный этап построения. Перед расчётом завершите оставшиеся настройки модели.

Посмотреть программу этапа с русскими комментариями
Python · программа этапа
# Однофазный трансформатор: нагрузка
# Шаг 2: Материалы и характеристика B–H
# Запускайте внутри FEMM 5 через File → Open Python Script.
# Исходные учебные модели не изменяются; новый полевой расчёт не выполняется.
import math
# Новый документ: последующие команды относятся только к нему.
newdocument(0)
mi_probdef(50, "millimeters", "planar", 1e-08, 40, 25, 0)
mi_smartmesh(1)
# Материалы задаются явно, без зависимости от установленной библиотеки.
mi_addmaterial("Воздух", 1, 1, 0, complex(0, 0), 0, 0, 0, 1, 0, 0, 0, 0, 0)
mi_addmaterial("Обмоточная область", 1, 1, 0, complex(0, 0), 0, 0, 0, 1, 0, 0, 0, 0, 0)
mi_addmaterial("Линейная сталь", 1000, 1000, 0, complex(0, 0), 0, 0, 0, 1, 0, 0, 0, 0, 0)
mi_addmaterial("Нелинейная сталь", 1, 1, 0, complex(0, 0), 0, 0, 0, 1, 0, 0, 0, 0, 0)
mi_addbhpoint("Нелинейная сталь", 0, 0)
mi_addbhpoint("Нелинейная сталь", 0.25, 100)
mi_addbhpoint("Нелинейная сталь", 0.5, 200)
mi_addbhpoint("Нелинейная сталь", 0.90000000000000002, 400)
mi_addbhpoint("Нелинейная сталь", 1.2, 800)
mi_addbhpoint("Нелинейная сталь", 1.45, 2000)
mi_addbhpoint("Нелинейная сталь", 1.6000000000000001, 5000)
mi_addbhpoint("Нелинейная сталь", 1.7, 10000)
mi_addmaterial("Постоянный магнит", 1.05, 1.05, 909456.81766797334, complex(0, 0), 0, 0, 0, 1, 0, 0, 0, 0, 0)
mi_zoomnatural()
# Скрипт воспроизводит этап в памяти. При необходимости сохраните свою копию через File → Save As.
print("Готов шаг 2. Модель неполная: переходите к следующему этапу, не запускайте решение.")
Однофазный трансформатор: нагрузка. Шаг 2: Материалы и характеристика B–H.
Рисунок 19.65. Однофазный трансформатор: нагрузка. Шаг 2: Материалы и характеристика B–H. Открыть в полном размере

Перейти к следующему этапу →

Этап 3 из 11

Цепи и токи возбуждения

  1. Продолжайте модель предыдущего этапа: уже заданные свойства и геометрию сохраняйте. Скачиваемый файл этого этапа содержит все предыдущие действия вместе с текущими изменениями.
  2. Откройте «Свойства → Цепи» (Properties → Circuits) и создайте каждую указанную цепь.
  3. Выберите последовательное соединение (Series), если в таблице стоит код 1; код 0 соответствует параллельному соединению. Число витков задаётся позже в метке каждой области.
  4. Для гармонической задачи значения в таблице — комплексные пиковые амплитуды токов, а не действующие значения. Действительная и мнимая части записываются как \operatorname{Re} + j \operatorname{Im}. Перенесите обе компоненты со знаками; цепь с нулевым током также создайте.
  5. В занятиях о группе из трёх однофазных трансформаторов этот файл представляет одну независимую однофазную составляющую, а не три фазы в одной геометрии. Полевое напряжение FEMM не включает добавленные снаружи падения RI; нагрузка согласована внешним расчётом.
Неполный учебный этап; решение не запускать.

Широкую таблицу можно прокрутить по горизонтали.

Таблица 19.103. Токи всех цепей
ЦепьДействительная часть тока, АМнимая часть тока, АТип
Первичная обмотка0,4269-0,8526Последовательная (1)
Вторичная обмотка-0,8382-0,007314Последовательная (1)

Сохранённое состояние этапа

Промежуточный этап построения. Перед расчётом завершите оставшиеся настройки модели.

Посмотреть программу этапа с русскими комментариями
Python · программа этапа
# Однофазный трансформатор: нагрузка
# Шаг 3: Цепи и токи возбуждения
# Запускайте внутри FEMM 5 через File → Open Python Script.
# Исходные учебные модели не изменяются; новый полевой расчёт не выполняется.
import math
# Новый документ: последующие команды относятся только к нему.
newdocument(0)
mi_probdef(50, "millimeters", "planar", 1e-08, 40, 25, 0)
mi_smartmesh(1)
# Материалы задаются явно, без зависимости от установленной библиотеки.
mi_addmaterial("Воздух", 1, 1, 0, complex(0, 0), 0, 0, 0, 1, 0, 0, 0, 0, 0)
mi_addmaterial("Обмоточная область", 1, 1, 0, complex(0, 0), 0, 0, 0, 1, 0, 0, 0, 0, 0)
mi_addmaterial("Линейная сталь", 1000, 1000, 0, complex(0, 0), 0, 0, 0, 1, 0, 0, 0, 0, 0)
mi_addmaterial("Нелинейная сталь", 1, 1, 0, complex(0, 0), 0, 0, 0, 1, 0, 0, 0, 0, 0)
mi_addbhpoint("Нелинейная сталь", 0, 0)
mi_addbhpoint("Нелинейная сталь", 0.25, 100)
mi_addbhpoint("Нелинейная сталь", 0.5, 200)
mi_addbhpoint("Нелинейная сталь", 0.90000000000000002, 400)
mi_addbhpoint("Нелинейная сталь", 1.2, 800)
mi_addbhpoint("Нелинейная сталь", 1.45, 2000)
mi_addbhpoint("Нелинейная сталь", 1.6000000000000001, 5000)
mi_addbhpoint("Нелинейная сталь", 1.7, 10000)
mi_addmaterial("Постоянный магнит", 1.05, 1.05, 909456.81766797334, complex(0, 0), 0, 0, 0, 1, 0, 0, 0, 0, 0)
# Токи комплексные; код 1 означает последовательную цепь.
mi_addcircprop("Первичная обмотка", complex(0.42685227121203501, -0.85256925155746377), 1)
mi_addcircprop("Вторичная обмотка", complex(-0.8382385064511646, -0.0073144594893327477), 1)
mi_zoomnatural()
# Скрипт воспроизводит этап в памяти. При необходимости сохраните свою копию через File → Save As.
print("Готов шаг 3. Модель неполная: переходите к следующему этапу, не запускайте решение.")
Однофазный трансформатор: нагрузка. Шаг 3: Цепи и токи возбуждения.
Рисунок 19.66. Однофазный трансформатор: нагрузка. Шаг 3: Цепи и токи возбуждения. Открыть в полном размере

Перейти к следующему этапу →

Этап 4 из 11

Граничные условия

  1. Продолжайте модель предыдущего этапа: уже заданные свойства и геометрию сохраняйте. Скачиваемый файл этого этапа содержит все предыдущие действия вместе с текущими изменениями.
  2. В «Свойства → Граничные условия» (Properties → Boundary) создайте определения из таблиц.
  3. Тип 0 — заданный потенциал (Prescribed A); нулевые A_{0}, A_{1} и A_{2} дают A=0. Тип 5 — антипериодическое условие (Anti-periodic).
  4. На этом этапе условие только определено. Назначайте его конкретным отрезкам и дугам на этапе «Отрезки и дуги» по приведённым там таблицам.
  5. Имена созданных условий должны совпадать с именами в таблицах отрезков и дуг. Не назначайте внешнее граничное условие внутренним контурам, если это не указано в таблице.
Неполный учебный этап; решение не запускать.
Таблица 19.104. Нулевой потенциал
ПараметрЗначение
Тип границы0
A_{0}0
A_{1}0
A_{2}0
Фаза, {}^\circ0
Действительная часть коэффициента c_{0}0
Мнимая часть коэффициента c_{0}0
Действительная часть коэффициента c_{1}0
Мнимая часть коэффициента c_{1}0
Относительная магнитная проницаемость при малой глубине проникновения0
Удельная электрическая проводимость для условия малой глубины проникновения0
Внутренний угол, {}^\circ0
Внешний угол, {}^\circ0

Сохранённое состояние этапа

Промежуточный этап построения. Перед расчётом завершите оставшиеся настройки модели.

Посмотреть программу этапа с русскими комментариями
Python · программа этапа
# Однофазный трансформатор: нагрузка
# Шаг 4: Граничные условия
# Запускайте внутри FEMM 5 через File → Open Python Script.
# Исходные учебные модели не изменяются; новый полевой расчёт не выполняется.
import math
# Новый документ: последующие команды относятся только к нему.
newdocument(0)
mi_probdef(50, "millimeters", "planar", 1e-08, 40, 25, 0)
mi_smartmesh(1)
# Материалы задаются явно, без зависимости от установленной библиотеки.
mi_addmaterial("Воздух", 1, 1, 0, complex(0, 0), 0, 0, 0, 1, 0, 0, 0, 0, 0)
mi_addmaterial("Обмоточная область", 1, 1, 0, complex(0, 0), 0, 0, 0, 1, 0, 0, 0, 0, 0)
mi_addmaterial("Линейная сталь", 1000, 1000, 0, complex(0, 0), 0, 0, 0, 1, 0, 0, 0, 0, 0)
mi_addmaterial("Нелинейная сталь", 1, 1, 0, complex(0, 0), 0, 0, 0, 1, 0, 0, 0, 0, 0)
mi_addbhpoint("Нелинейная сталь", 0, 0)
mi_addbhpoint("Нелинейная сталь", 0.25, 100)
mi_addbhpoint("Нелинейная сталь", 0.5, 200)
mi_addbhpoint("Нелинейная сталь", 0.90000000000000002, 400)
mi_addbhpoint("Нелинейная сталь", 1.2, 800)
mi_addbhpoint("Нелинейная сталь", 1.45, 2000)
mi_addbhpoint("Нелинейная сталь", 1.6000000000000001, 5000)
mi_addbhpoint("Нелинейная сталь", 1.7, 10000)
mi_addmaterial("Постоянный магнит", 1.05, 1.05, 909456.81766797334, complex(0, 0), 0, 0, 0, 1, 0, 0, 0, 0, 0)
# Токи комплексные; код 1 означает последовательную цепь.
mi_addcircprop("Первичная обмотка", complex(0.42685227121203501, -0.85256925155746377), 1)
mi_addcircprop("Вторичная обмотка", complex(-0.8382385064511646, -0.0073144594893327477), 1)
mi_addboundprop("Нулевой потенциал", 0, 0, 0, 0, 0, 0, complex(0, 0), complex(0, 0), 0, 0, 0)
mi_zoomnatural()
# Скрипт воспроизводит этап в памяти. При необходимости сохраните свою копию через File → Save As.
print("Готов шаг 4. Модель неполная: переходите к следующему этапу, не запускайте решение.")
Однофазный трансформатор: нагрузка. Шаг 4: Граничные условия.
Рисунок 19.67. Однофазный трансформатор: нагрузка. Шаг 4: Граничные условия. Открыть в полном размере

Перейти к следующему этапу →

Этап 5 из 11

Узлы и размеры геометрии

  1. Продолжайте модель предыдущего этапа: уже заданные свойства и геометрию сохраняйте. Скачиваемый файл этого этапа содержит все предыдущие действия вместе с текущими изменениями.
  2. Переключитесь в режим узлов. Создавайте точки в порядке строк таблицы, вводя указанные координаты. Номер строки служит ссылкой для последующего соединения точек; это не имя, которое нужно присвоить узлу в FEMM.
  3. Размеры заданы в миллиметрах. Очень малые координаты порядка 10⁻¹⁴ мм означают вычислительный нуль. Таблицы округлены для чтения; полный набор исходных чисел сохранён в приложенной модели и программе этапа.
  4. Пока присутствуют только точки. Контуры, материалы областей и токовые назначения ещё не завершены.
Неполный учебный этап; решение не запускать.

Широкую таблицу можно прокрутить по горизонтали.

Таблица 19.105. Координаты всех узлов
№ узлаx или r, ммy или z, ммГруппа
0-200-2000
1200-2000
22002000
3-2002000
4-60-500
560-500
660500
7-60500
8-40-300
940-300
1040300
11-40300
12-66-200
13-62-200
14-62200
15-66200
16-38-200
17-34-200
18-34200
19-38200
20-72-200
21-68-200
22-68200
23-72200
24-33-200
25-29-200
26-29200
27-33200

Сохранённое состояние этапа

Промежуточный этап построения. Перед расчётом завершите оставшиеся настройки модели.

Посмотреть программу этапа с русскими комментариями
Python · программа этапа
# Однофазный трансформатор: нагрузка
# Шаг 5: Узлы и размеры геометрии
# Запускайте внутри FEMM 5 через File → Open Python Script.
# Исходные учебные модели не изменяются; новый полевой расчёт не выполняется.
import math
# Новый документ: последующие команды относятся только к нему.
newdocument(0)
mi_probdef(50, "millimeters", "planar", 1e-08, 40, 25, 0)
mi_smartmesh(1)
# Материалы задаются явно, без зависимости от установленной библиотеки.
mi_addmaterial("Воздух", 1, 1, 0, complex(0, 0), 0, 0, 0, 1, 0, 0, 0, 0, 0)
mi_addmaterial("Обмоточная область", 1, 1, 0, complex(0, 0), 0, 0, 0, 1, 0, 0, 0, 0, 0)
mi_addmaterial("Линейная сталь", 1000, 1000, 0, complex(0, 0), 0, 0, 0, 1, 0, 0, 0, 0, 0)
mi_addmaterial("Нелинейная сталь", 1, 1, 0, complex(0, 0), 0, 0, 0, 1, 0, 0, 0, 0, 0)
mi_addbhpoint("Нелинейная сталь", 0, 0)
mi_addbhpoint("Нелинейная сталь", 0.25, 100)
mi_addbhpoint("Нелинейная сталь", 0.5, 200)
mi_addbhpoint("Нелинейная сталь", 0.90000000000000002, 400)
mi_addbhpoint("Нелинейная сталь", 1.2, 800)
mi_addbhpoint("Нелинейная сталь", 1.45, 2000)
mi_addbhpoint("Нелинейная сталь", 1.6000000000000001, 5000)
mi_addbhpoint("Нелинейная сталь", 1.7, 10000)
mi_addmaterial("Постоянный магнит", 1.05, 1.05, 909456.81766797334, complex(0, 0), 0, 0, 0, 1, 0, 0, 0, 0, 0)
# Токи комплексные; код 1 означает последовательную цепь.
mi_addcircprop("Первичная обмотка", complex(0.42685227121203501, -0.85256925155746377), 1)
mi_addcircprop("Вторичная обмотка", complex(-0.8382385064511646, -0.0073144594893327477), 1)
mi_addboundprop("Нулевой потенциал", 0, 0, 0, 0, 0, 0, complex(0, 0), complex(0, 0), 0, 0, 0)
# Координаты сохранены с исходной точностью; единицы — миллиметры.
_nodes = [
    (-200, -200, 0),
    (200, -200, 0),
    (200, 200, 0),
    (-200, 200, 0),
    (-60, -50, 0),
    (60, -50, 0),
    (60, 50, 0),
    (-60, 50, 0),
    (-40, -30, 0),
    (40, -30, 0),
    (40, 30, 0),
    (-40, 30, 0),
    (-66, -20, 0),
    (-62, -20, 0),
    (-62, 20, 0),
    (-66, 20, 0),
    (-38, -20, 0),
    (-34, -20, 0),
    (-34, 20, 0),
    (-38, 20, 0),
    (-72, -20, 0),
    (-68, -20, 0),
    (-68, 20, 0),
    (-72, 20, 0),
    (-33, -20, 0),
    (-29, -20, 0),
    (-29, 20, 0),
    (-33, 20, 0),
]
for x, y, group in _nodes:
    mi_addnode(x, y)
    if group:
        mi_selectnode(x, y)
        mi_setnodeprop('', group)
        mi_clearselected()
mi_zoomnatural()
# Скрипт воспроизводит этап в памяти. При необходимости сохраните свою копию через File → Save As.
print("Готов шаг 5. Модель неполная: переходите к следующему этапу, не запускайте решение.")
Однофазный трансформатор: нагрузка. Шаг 5: Узлы и размеры геометрии.
Рисунок 19.68. Однофазный трансформатор: нагрузка. Шаг 5: Узлы и размеры геометрии. Открыть в полном размере

Перейти к следующему этапу →

Этап 6 из 11

Отрезки и дуги

  1. Продолжайте модель предыдущего этапа: уже заданные свойства и геометрию сохраняйте. Скачиваемый файл этого этапа содержит все предыдущие действия вместе с текущими изменениями.
  2. В режиме отрезков соедините пары узлов из первой таблицы. Координаты каждого конца найдите по номеру узла в таблице предыдущего этапа; каждая строка задаёт отдельный отрезок.
  3. В этом примере таблица дуг пуста: геометрия состоит из отрезков, поэтому дуги добавлять не нужно.
  4. Выделите каждый граничный отрезок или дугу и назначьте указанное условие через свойства объекта. Сохраните номера групп.
  5. Геометрия включает внешнюю воздушную область. На данном этапе ограничения сетки предварительные; точные ограничения будут восстановлены на шаге 9.
Неполный учебный этап; решение не запускать.

Широкую таблицу можно прокрутить по горизонтали.

Таблица 19.106. Все отрезки и назначенные границы
№Начальный узелКонечный узелГраницаГруппа
001Нулевой потенциал0
112Нулевой потенциал0
223Нулевой потенциал0
330Нулевой потенциал0
445Нет0
556Нет0
667Нет0
774Нет0
889Нет0
9910Нет0
101011Нет0
11118Нет0
121213Нет0
131314Нет0
141415Нет0
151512Нет0
161617Нет0
171718Нет0
181819Нет0
191916Нет0
202021Нет0
212122Нет0
222223Нет0
232320Нет0
242425Нет0
252526Нет0
262627Нет0
272724Нет0

Широкую таблицу можно прокрутить по горизонтали.

Таблица 19.107. Все дуги и назначенные границы
№Начальный узелКонечный узелУгол дуги, {}^\circГраницаГруппа

Сохранённое состояние этапа

Промежуточный этап построения. Перед расчётом завершите оставшиеся настройки модели.

Посмотреть программу этапа с русскими комментариями
Python · программа этапа
# Однофазный трансформатор: нагрузка
# Шаг 6: Отрезки и дуги
# Запускайте внутри FEMM 5 через File → Open Python Script.
# Исходные учебные модели не изменяются; новый полевой расчёт не выполняется.
import math
# Новый документ: последующие команды относятся только к нему.
newdocument(0)
mi_probdef(50, "millimeters", "planar", 1e-08, 40, 25, 0)
mi_smartmesh(1)
# Материалы задаются явно, без зависимости от установленной библиотеки.
mi_addmaterial("Воздух", 1, 1, 0, complex(0, 0), 0, 0, 0, 1, 0, 0, 0, 0, 0)
mi_addmaterial("Обмоточная область", 1, 1, 0, complex(0, 0), 0, 0, 0, 1, 0, 0, 0, 0, 0)
mi_addmaterial("Линейная сталь", 1000, 1000, 0, complex(0, 0), 0, 0, 0, 1, 0, 0, 0, 0, 0)
mi_addmaterial("Нелинейная сталь", 1, 1, 0, complex(0, 0), 0, 0, 0, 1, 0, 0, 0, 0, 0)
mi_addbhpoint("Нелинейная сталь", 0, 0)
mi_addbhpoint("Нелинейная сталь", 0.25, 100)
mi_addbhpoint("Нелинейная сталь", 0.5, 200)
mi_addbhpoint("Нелинейная сталь", 0.90000000000000002, 400)
mi_addbhpoint("Нелинейная сталь", 1.2, 800)
mi_addbhpoint("Нелинейная сталь", 1.45, 2000)
mi_addbhpoint("Нелинейная сталь", 1.6000000000000001, 5000)
mi_addbhpoint("Нелинейная сталь", 1.7, 10000)
mi_addmaterial("Постоянный магнит", 1.05, 1.05, 909456.81766797334, complex(0, 0), 0, 0, 0, 1, 0, 0, 0, 0, 0)
# Токи комплексные; код 1 означает последовательную цепь.
mi_addcircprop("Первичная обмотка", complex(0.42685227121203501, -0.85256925155746377), 1)
mi_addcircprop("Вторичная обмотка", complex(-0.8382385064511646, -0.0073144594893327477), 1)
mi_addboundprop("Нулевой потенциал", 0, 0, 0, 0, 0, 0, complex(0, 0), complex(0, 0), 0, 0, 0)
# Координаты сохранены с исходной точностью; единицы — миллиметры.
_nodes = [
    (-200, -200, 0),
    (200, -200, 0),
    (200, 200, 0),
    (-200, 200, 0),
    (-60, -50, 0),
    (60, -50, 0),
    (60, 50, 0),
    (-60, 50, 0),
    (-40, -30, 0),
    (40, -30, 0),
    (40, 30, 0),
    (-40, 30, 0),
    (-66, -20, 0),
    (-62, -20, 0),
    (-62, 20, 0),
    (-66, 20, 0),
    (-38, -20, 0),
    (-34, -20, 0),
    (-34, 20, 0),
    (-38, 20, 0),
    (-72, -20, 0),
    (-68, -20, 0),
    (-68, 20, 0),
    (-72, 20, 0),
    (-33, -20, 0),
    (-29, -20, 0),
    (-29, 20, 0),
    (-33, 20, 0),
]
for x, y, group in _nodes:
    mi_addnode(x, y)
    if group:
        mi_selectnode(x, y)
        mi_setnodeprop('', group)
        mi_clearselected()
# Отрезки: индексы узлов, локальный размер, имя границы, видимость, группа.
_segments = [
    (0, 1, -1, "Нулевой потенциал", 0, 0),
    (1, 2, -1, "Нулевой потенциал", 0, 0),
    (2, 3, -1, "Нулевой потенциал", 0, 0),
    (3, 0, -1, "Нулевой потенциал", 0, 0),
    (4, 5, -1, "", 0, 0),
    (5, 6, -1, "", 0, 0),
    (6, 7, -1, "", 0, 0),
    (7, 4, -1, "", 0, 0),
    (8, 9, -1, "", 0, 0),
    (9, 10, -1, "", 0, 0),
    (10, 11, -1, "", 0, 0),
    (11, 8, -1, "", 0, 0),
    (12, 13, -1, "", 0, 0),
    (13, 14, -1, "", 0, 0),
    (14, 15, -1, "", 0, 0),
    (15, 12, -1, "", 0, 0),
    (16, 17, -1, "", 0, 0),
    (17, 18, -1, "", 0, 0),
    (18, 19, -1, "", 0, 0),
    (19, 16, -1, "", 0, 0),
    (20, 21, -1, "", 0, 0),
    (21, 22, -1, "", 0, 0),
    (22, 23, -1, "", 0, 0),
    (23, 20, -1, "", 0, 0),
    (24, 25, -1, "", 0, 0),
    (25, 26, -1, "", 0, 0),
    (26, 27, -1, "", 0, 0),
    (27, 24, -1, "", 0, 0),
]
for a, b, size, boundary, hidden, group in _segments:
    x0, y0 = _nodes[a][:2]
    x1, y1 = _nodes[b][:2]
    mi_addsegment(x0, y0, x1, y1)
    mi_selectsegment((x0+x1)/2, (y0+y1)/2)
    mi_setsegmentprop(boundary, size, 1 if size <= 0 else 0, hidden, group)
    mi_clearselected()
mi_zoomnatural()
# Скрипт воспроизводит этап в памяти. При необходимости сохраните свою копию через File → Save As.
print("Готов шаг 6. Модель неполная: переходите к следующему этапу, не запускайте решение.")
Однофазный трансформатор: нагрузка. Шаг 6: Отрезки и дуги.
Рисунок 19.69. Однофазный трансформатор: нагрузка. Шаг 6: Отрезки и дуги. Открыть в полном размере

Перейти к следующему этапу →

Этап 7 из 11

Метки замкнутых областей

  1. Продолжайте модель предыдущего этапа: уже заданные свойства и геометрию сохраняйте. Скачиваемый файл этого этапа содержит все предыдущие действия вместе с текущими изменениями.
  2. В режиме меток добавьте по одной метке в каждую область в координатах таблицы.
  3. На этом этапе метки намеренно оставлены без материала и цепи. Каждая метка должна лежать строго внутри своего замкнутого контура. Обязательно добавьте метку внешней воздушной области.
  4. Не запускайте расчёт: присутствие точки метки ещё не назначает физические свойства.
Неполный учебный этап; решение не запускать.

Широкую таблицу можно прокрутить по горизонтали.

Таблица 19.108. Положения всех меток
№x или r, ммy или z, ммБудущий материал
0170170Воздух
1040Линейная сталь
2-640Обмоточная область
3-360Обмоточная область
4-700Обмоточная область
5-310Обмоточная область
600Воздух

Сохранённое состояние этапа

Промежуточный этап построения. Перед расчётом завершите оставшиеся настройки модели.

Посмотреть программу этапа с русскими комментариями
Python · программа этапа
# Однофазный трансформатор: нагрузка
# Шаг 7: Метки замкнутых областей
# Запускайте внутри FEMM 5 через File → Open Python Script.
# Исходные учебные модели не изменяются; новый полевой расчёт не выполняется.
import math
# Новый документ: последующие команды относятся только к нему.
newdocument(0)
mi_probdef(50, "millimeters", "planar", 1e-08, 40, 25, 0)
mi_smartmesh(1)
# Материалы задаются явно, без зависимости от установленной библиотеки.
mi_addmaterial("Воздух", 1, 1, 0, complex(0, 0), 0, 0, 0, 1, 0, 0, 0, 0, 0)
mi_addmaterial("Обмоточная область", 1, 1, 0, complex(0, 0), 0, 0, 0, 1, 0, 0, 0, 0, 0)
mi_addmaterial("Линейная сталь", 1000, 1000, 0, complex(0, 0), 0, 0, 0, 1, 0, 0, 0, 0, 0)
mi_addmaterial("Нелинейная сталь", 1, 1, 0, complex(0, 0), 0, 0, 0, 1, 0, 0, 0, 0, 0)
mi_addbhpoint("Нелинейная сталь", 0, 0)
mi_addbhpoint("Нелинейная сталь", 0.25, 100)
mi_addbhpoint("Нелинейная сталь", 0.5, 200)
mi_addbhpoint("Нелинейная сталь", 0.90000000000000002, 400)
mi_addbhpoint("Нелинейная сталь", 1.2, 800)
mi_addbhpoint("Нелинейная сталь", 1.45, 2000)
mi_addbhpoint("Нелинейная сталь", 1.6000000000000001, 5000)
mi_addbhpoint("Нелинейная сталь", 1.7, 10000)
mi_addmaterial("Постоянный магнит", 1.05, 1.05, 909456.81766797334, complex(0, 0), 0, 0, 0, 1, 0, 0, 0, 0, 0)
# Токи комплексные; код 1 означает последовательную цепь.
mi_addcircprop("Первичная обмотка", complex(0.42685227121203501, -0.85256925155746377), 1)
mi_addcircprop("Вторичная обмотка", complex(-0.8382385064511646, -0.0073144594893327477), 1)
mi_addboundprop("Нулевой потенциал", 0, 0, 0, 0, 0, 0, complex(0, 0), complex(0, 0), 0, 0, 0)
# Координаты сохранены с исходной точностью; единицы — миллиметры.
_nodes = [
    (-200, -200, 0),
    (200, -200, 0),
    (200, 200, 0),
    (-200, 200, 0),
    (-60, -50, 0),
    (60, -50, 0),
    (60, 50, 0),
    (-60, 50, 0),
    (-40, -30, 0),
    (40, -30, 0),
    (40, 30, 0),
    (-40, 30, 0),
    (-66, -20, 0),
    (-62, -20, 0),
    (-62, 20, 0),
    (-66, 20, 0),
    (-38, -20, 0),
    (-34, -20, 0),
    (-34, 20, 0),
    (-38, 20, 0),
    (-72, -20, 0),
    (-68, -20, 0),
    (-68, 20, 0),
    (-72, 20, 0),
    (-33, -20, 0),
    (-29, -20, 0),
    (-29, 20, 0),
    (-33, 20, 0),
]
for x, y, group in _nodes:
    mi_addnode(x, y)
    if group:
        mi_selectnode(x, y)
        mi_setnodeprop('', group)
        mi_clearselected()
# Отрезки: индексы узлов, локальный размер, имя границы, видимость, группа.
_segments = [
    (0, 1, -1, "Нулевой потенциал", 0, 0),
    (1, 2, -1, "Нулевой потенциал", 0, 0),
    (2, 3, -1, "Нулевой потенциал", 0, 0),
    (3, 0, -1, "Нулевой потенциал", 0, 0),
    (4, 5, -1, "", 0, 0),
    (5, 6, -1, "", 0, 0),
    (6, 7, -1, "", 0, 0),
    (7, 4, -1, "", 0, 0),
    (8, 9, -1, "", 0, 0),
    (9, 10, -1, "", 0, 0),
    (10, 11, -1, "", 0, 0),
    (11, 8, -1, "", 0, 0),
    (12, 13, -1, "", 0, 0),
    (13, 14, -1, "", 0, 0),
    (14, 15, -1, "", 0, 0),
    (15, 12, -1, "", 0, 0),
    (16, 17, -1, "", 0, 0),
    (17, 18, -1, "", 0, 0),
    (18, 19, -1, "", 0, 0),
    (19, 16, -1, "", 0, 0),
    (20, 21, -1, "", 0, 0),
    (21, 22, -1, "", 0, 0),
    (22, 23, -1, "", 0, 0),
    (23, 20, -1, "", 0, 0),
    (24, 25, -1, "", 0, 0),
    (25, 26, -1, "", 0, 0),
    (26, 27, -1, "", 0, 0),
    (27, 24, -1, "", 0, 0),
]
for a, b, size, boundary, hidden, group in _segments:
    x0, y0 = _nodes[a][:2]
    x1, y1 = _nodes[b][:2]
    mi_addsegment(x0, y0, x1, y1)
    mi_selectsegment((x0+x1)/2, (y0+y1)/2)
    mi_setsegmentprop(boundary, size, 1 if size <= 0 else 0, hidden, group)
    mi_clearselected()
# Метки: положение, материал, размер элемента, цепь, намагничивание, группа, витки.
_labels = [
    (170, 170, "", 0, "", 0, 0, 1),
    (0, 40, "", 0, "", 0, 0, 1),
    (-64, 0, "", 0, "", 0, 0, 1),
    (-36, 0, "", 0, "", 0, 0, 1),
    (-70, 0, "", 0, "", 0, 0, 1),
    (-31, 0, "", 0, "", 0, 0, 1),
    (0, 0, "", 0, "", 0, 0, 1),
]
for x, y, material, size, circuit, direction, group, turns in _labels:
    mi_addblocklabel(x, y)
    if material:
        mi_selectlabel(x, y)
        mi_setblockprop(material, 1 if size <= 0 else 0, size, circuit, direction, group, turns)
        mi_clearselected()
mi_zoomnatural()
# Скрипт воспроизводит этап в памяти. При необходимости сохраните свою копию через File → Save As.
print("Готов шаг 7. Модель неполная: переходите к следующему этапу, не запускайте решение.")
Однофазный трансформатор: нагрузка. Шаг 7: Метки замкнутых областей.
Рисунок 19.70. Однофазный трансформатор: нагрузка. Шаг 7: Метки замкнутых областей. Открыть в полном размере

Перейти к следующему этапу →

Этап 8 из 11

Назначения материалов и обмоток

  1. Продолжайте модель предыдущего этапа: уже заданные свойства и геометрию сохраняйте. Скачиваемый файл этого этапа содержит все предыдущие действия вместе с текущими изменениями.
  2. Выделяйте метки по координатам и открывайте их свойства (Block Label Properties). Назначьте материал, цепь и число витков со знаком из полной таблицы.
  3. Для магнитов задайте направление намагничивания: число означает угол в градусах; theta и theta+180 — функции координат, поэтому их английские технические идентификаторы сохраняются.
  4. Восстановите группы: группа 2 используется для выделения ротора или отдельного якоря при вычислении силы/момента, если это предусмотрено вариантом.
  5. Материалы и обмотки уже назначены, но локальные размеры сетки этого промежуточного файла ещё автоматические. Не запускайте расчёт: сначала перейдите к следующему этапу и восстановите указанные там ограничения сетки.
Назначения выполнены, но эталонные ограничения сетки ещё не восстановлены. Расчёт пока не запускать.

Широкую таблицу можно прокрутить по горизонтали.

Таблица 19.109. Материалы, цепи и витки каждой области
№x или r, ммy или z, ммМатериалЦепьВитки со знакомНамагничиваниеГруппа
0170170ВоздухНет10^\circ0
1040Линейная стальНет10^\circ0
2-640Обмоточная областьПервичная обмотка2000^\circ0
3-360Обмоточная областьПервичная обмотка-2000^\circ0
4-700Обмоточная областьВторичная обмотка1000^\circ0
5-310Обмоточная областьВторичная обмотка-1000^\circ0
600ВоздухНет10^\circ0

Сохранённое состояние этапа

Промежуточный этап построения. Перед расчётом завершите оставшиеся настройки модели.

Посмотреть программу этапа с русскими комментариями
Python · программа этапа
# Однофазный трансформатор: нагрузка
# Шаг 8: Назначения материалов и обмоток
# Запускайте внутри FEMM 5 через File → Open Python Script.
# Исходные учебные модели не изменяются; новый полевой расчёт не выполняется.
import math
# Новый документ: последующие команды относятся только к нему.
newdocument(0)
mi_probdef(50, "millimeters", "planar", 1e-08, 40, 25, 0)
mi_smartmesh(1)
# Материалы задаются явно, без зависимости от установленной библиотеки.
mi_addmaterial("Воздух", 1, 1, 0, complex(0, 0), 0, 0, 0, 1, 0, 0, 0, 0, 0)
mi_addmaterial("Обмоточная область", 1, 1, 0, complex(0, 0), 0, 0, 0, 1, 0, 0, 0, 0, 0)
mi_addmaterial("Линейная сталь", 1000, 1000, 0, complex(0, 0), 0, 0, 0, 1, 0, 0, 0, 0, 0)
mi_addmaterial("Нелинейная сталь", 1, 1, 0, complex(0, 0), 0, 0, 0, 1, 0, 0, 0, 0, 0)
mi_addbhpoint("Нелинейная сталь", 0, 0)
mi_addbhpoint("Нелинейная сталь", 0.25, 100)
mi_addbhpoint("Нелинейная сталь", 0.5, 200)
mi_addbhpoint("Нелинейная сталь", 0.90000000000000002, 400)
mi_addbhpoint("Нелинейная сталь", 1.2, 800)
mi_addbhpoint("Нелинейная сталь", 1.45, 2000)
mi_addbhpoint("Нелинейная сталь", 1.6000000000000001, 5000)
mi_addbhpoint("Нелинейная сталь", 1.7, 10000)
mi_addmaterial("Постоянный магнит", 1.05, 1.05, 909456.81766797334, complex(0, 0), 0, 0, 0, 1, 0, 0, 0, 0, 0)
# Токи комплексные; код 1 означает последовательную цепь.
mi_addcircprop("Первичная обмотка", complex(0.42685227121203501, -0.85256925155746377), 1)
mi_addcircprop("Вторичная обмотка", complex(-0.8382385064511646, -0.0073144594893327477), 1)
mi_addboundprop("Нулевой потенциал", 0, 0, 0, 0, 0, 0, complex(0, 0), complex(0, 0), 0, 0, 0)
# Координаты сохранены с исходной точностью; единицы — миллиметры.
_nodes = [
    (-200, -200, 0),
    (200, -200, 0),
    (200, 200, 0),
    (-200, 200, 0),
    (-60, -50, 0),
    (60, -50, 0),
    (60, 50, 0),
    (-60, 50, 0),
    (-40, -30, 0),
    (40, -30, 0),
    (40, 30, 0),
    (-40, 30, 0),
    (-66, -20, 0),
    (-62, -20, 0),
    (-62, 20, 0),
    (-66, 20, 0),
    (-38, -20, 0),
    (-34, -20, 0),
    (-34, 20, 0),
    (-38, 20, 0),
    (-72, -20, 0),
    (-68, -20, 0),
    (-68, 20, 0),
    (-72, 20, 0),
    (-33, -20, 0),
    (-29, -20, 0),
    (-29, 20, 0),
    (-33, 20, 0),
]
for x, y, group in _nodes:
    mi_addnode(x, y)
    if group:
        mi_selectnode(x, y)
        mi_setnodeprop('', group)
        mi_clearselected()
# Отрезки: индексы узлов, локальный размер, имя границы, видимость, группа.
_segments = [
    (0, 1, -1, "Нулевой потенциал", 0, 0),
    (1, 2, -1, "Нулевой потенциал", 0, 0),
    (2, 3, -1, "Нулевой потенциал", 0, 0),
    (3, 0, -1, "Нулевой потенциал", 0, 0),
    (4, 5, -1, "", 0, 0),
    (5, 6, -1, "", 0, 0),
    (6, 7, -1, "", 0, 0),
    (7, 4, -1, "", 0, 0),
    (8, 9, -1, "", 0, 0),
    (9, 10, -1, "", 0, 0),
    (10, 11, -1, "", 0, 0),
    (11, 8, -1, "", 0, 0),
    (12, 13, -1, "", 0, 0),
    (13, 14, -1, "", 0, 0),
    (14, 15, -1, "", 0, 0),
    (15, 12, -1, "", 0, 0),
    (16, 17, -1, "", 0, 0),
    (17, 18, -1, "", 0, 0),
    (18, 19, -1, "", 0, 0),
    (19, 16, -1, "", 0, 0),
    (20, 21, -1, "", 0, 0),
    (21, 22, -1, "", 0, 0),
    (22, 23, -1, "", 0, 0),
    (23, 20, -1, "", 0, 0),
    (24, 25, -1, "", 0, 0),
    (25, 26, -1, "", 0, 0),
    (26, 27, -1, "", 0, 0),
    (27, 24, -1, "", 0, 0),
]
for a, b, size, boundary, hidden, group in _segments:
    x0, y0 = _nodes[a][:2]
    x1, y1 = _nodes[b][:2]
    mi_addsegment(x0, y0, x1, y1)
    mi_selectsegment((x0+x1)/2, (y0+y1)/2)
    mi_setsegmentprop(boundary, size, 1 if size <= 0 else 0, hidden, group)
    mi_clearselected()
# Метки: положение, материал, размер элемента, цепь, намагничивание, группа, витки.
_labels = [
    (170, 170, "Воздух", 0, "", 0, 0, 1),
    (0, 40, "Линейная сталь", 0, "", 0, 0, 1),
    (-64, 0, "Обмоточная область", 0, "Первичная обмотка", 0, 0, 200),
    (-36, 0, "Обмоточная область", 0, "Первичная обмотка", 0, 0, -200),
    (-70, 0, "Обмоточная область", 0, "Вторичная обмотка", 0, 0, 100),
    (-31, 0, "Обмоточная область", 0, "Вторичная обмотка", 0, 0, -100),
    (0, 0, "Воздух", 0, "", 0, 0, 1),
]
for x, y, material, size, circuit, direction, group, turns in _labels:
    mi_addblocklabel(x, y)
    if material:
        mi_selectlabel(x, y)
        mi_setblockprop(material, 1 if size <= 0 else 0, size, circuit, direction, group, turns)
        mi_clearselected()
mi_zoomnatural()
# Скрипт воспроизводит этап в памяти. При необходимости сохраните свою копию через File → Save As.
print("Готов шаг 8. Модель неполная: переходите к следующему этапу, не запускайте решение.")
Однофазный трансформатор: нагрузка. Шаг 8: Назначения материалов и обмоток.
Рисунок 19.71. Однофазный трансформатор: нагрузка. Шаг 8: Назначения материалов и обмоток. Открыть в полном размере

Перейти к следующему этапу →

Этап 9 из 11

Локальные размеры сетки и готовая модель

  1. Продолжайте модель предыдущего этапа: уже заданные свойства и геометрию сохраняйте. Скачиваемый файл этого этапа содержит все предыдущие действия вместе с текущими изменениями.
  2. Откройте свойства каждой метки; снимите Auto mesh для положительного размера и укажите значение в миллиметрах. Нулевой либо отрицательный размер означает автоматический выбор.
  3. Проверьте ограничения длины на отрезках и угла на дугах по отдельным таблицам. Для дуги ограничение задаётся в градусах, а не в миллиметрах.
  4. Сверьте глобальный минимальный угол, умную сетку, материалы, токи, границы и все назначения. Теперь файл содержит полное состояние проверенного исходного варианта.
  5. Сохраните собственную рабочую копию через «Файл → Сохранить как». Изменённая пользователем копия должна рассчитываться заново; унаследованное решение ниже относится к неизменённому эталону.
Полная модель проверенного примера. После изменения параметров необходимо получить новое решение.

Широкую таблицу можно прокрутить по горизонтали.

Таблица 19.110. Локальные ограничения сетки по областям
№ меткиМатериалРазмер элемента, ммРежим
0Воздух10заданный
1Линейная сталь2заданный
2Обмоточная область2заданный
3Обмоточная область2заданный
4Обмоточная область2заданный
5Обмоточная область2заданный
6Воздух3заданный

Широкую таблицу можно прокрутить по горизонтали.

Таблица 19.111. Ограничения сетки отрезков
№ отрезкаМаксимальная длина, ммРежим
0-1автоматический
1-1автоматический
2-1автоматический
3-1автоматический
4-1автоматический
5-1автоматический
6-1автоматический
7-1автоматический
8-1автоматический
9-1автоматический
10-1автоматический
11-1автоматический
12-1автоматический
13-1автоматический
14-1автоматический
15-1автоматический
16-1автоматический
17-1автоматический
18-1автоматический
19-1автоматический
20-1автоматический
21-1автоматический
22-1автоматический
23-1автоматический
24-1автоматический
25-1автоматический
26-1автоматический
27-1автоматический
Таблица 19.112. Ограничения сетки дуг
№ дугиМаксимальный угол элемента, {}^\circ

Сохранённое состояние этапа

Параметры этого файла подготовлены для расчёта.

Посмотреть программу этапа с русскими комментариями
Python · программа этапа
# Однофазный трансформатор: нагрузка
# Шаг 9: Локальные размеры сетки и готовая модель
# Запускайте внутри FEMM 5 через File → Open Python Script.
# Исходные учебные модели не изменяются; новый полевой расчёт не выполняется.
import math
# Новый документ: последующие команды относятся только к нему.
newdocument(0)
mi_probdef(50, "millimeters", "planar", 1e-08, 40, 25, 0)
mi_smartmesh(1)
# Материалы задаются явно, без зависимости от установленной библиотеки.
mi_addmaterial("Воздух", 1, 1, 0, complex(0, 0), 0, 0, 0, 1, 0, 0, 0, 0, 0)
mi_addmaterial("Обмоточная область", 1, 1, 0, complex(0, 0), 0, 0, 0, 1, 0, 0, 0, 0, 0)
mi_addmaterial("Линейная сталь", 1000, 1000, 0, complex(0, 0), 0, 0, 0, 1, 0, 0, 0, 0, 0)
mi_addmaterial("Нелинейная сталь", 1, 1, 0, complex(0, 0), 0, 0, 0, 1, 0, 0, 0, 0, 0)
mi_addbhpoint("Нелинейная сталь", 0, 0)
mi_addbhpoint("Нелинейная сталь", 0.25, 100)
mi_addbhpoint("Нелинейная сталь", 0.5, 200)
mi_addbhpoint("Нелинейная сталь", 0.90000000000000002, 400)
mi_addbhpoint("Нелинейная сталь", 1.2, 800)
mi_addbhpoint("Нелинейная сталь", 1.45, 2000)
mi_addbhpoint("Нелинейная сталь", 1.6000000000000001, 5000)
mi_addbhpoint("Нелинейная сталь", 1.7, 10000)
mi_addmaterial("Постоянный магнит", 1.05, 1.05, 909456.81766797334, complex(0, 0), 0, 0, 0, 1, 0, 0, 0, 0, 0)
# Токи комплексные; код 1 означает последовательную цепь.
mi_addcircprop("Первичная обмотка", complex(0.42685227121203501, -0.85256925155746377), 1)
mi_addcircprop("Вторичная обмотка", complex(-0.8382385064511646, -0.0073144594893327477), 1)
mi_addboundprop("Нулевой потенциал", 0, 0, 0, 0, 0, 0, complex(0, 0), complex(0, 0), 0, 0, 0)
# Координаты сохранены с исходной точностью; единицы — миллиметры.
_nodes = [
    (-200, -200, 0),
    (200, -200, 0),
    (200, 200, 0),
    (-200, 200, 0),
    (-60, -50, 0),
    (60, -50, 0),
    (60, 50, 0),
    (-60, 50, 0),
    (-40, -30, 0),
    (40, -30, 0),
    (40, 30, 0),
    (-40, 30, 0),
    (-66, -20, 0),
    (-62, -20, 0),
    (-62, 20, 0),
    (-66, 20, 0),
    (-38, -20, 0),
    (-34, -20, 0),
    (-34, 20, 0),
    (-38, 20, 0),
    (-72, -20, 0),
    (-68, -20, 0),
    (-68, 20, 0),
    (-72, 20, 0),
    (-33, -20, 0),
    (-29, -20, 0),
    (-29, 20, 0),
    (-33, 20, 0),
]
for x, y, group in _nodes:
    mi_addnode(x, y)
    if group:
        mi_selectnode(x, y)
        mi_setnodeprop('', group)
        mi_clearselected()
# Отрезки: индексы узлов, локальный размер, имя границы, видимость, группа.
_segments = [
    (0, 1, -1, "Нулевой потенциал", 0, 0),
    (1, 2, -1, "Нулевой потенциал", 0, 0),
    (2, 3, -1, "Нулевой потенциал", 0, 0),
    (3, 0, -1, "Нулевой потенциал", 0, 0),
    (4, 5, -1, "", 0, 0),
    (5, 6, -1, "", 0, 0),
    (6, 7, -1, "", 0, 0),
    (7, 4, -1, "", 0, 0),
    (8, 9, -1, "", 0, 0),
    (9, 10, -1, "", 0, 0),
    (10, 11, -1, "", 0, 0),
    (11, 8, -1, "", 0, 0),
    (12, 13, -1, "", 0, 0),
    (13, 14, -1, "", 0, 0),
    (14, 15, -1, "", 0, 0),
    (15, 12, -1, "", 0, 0),
    (16, 17, -1, "", 0, 0),
    (17, 18, -1, "", 0, 0),
    (18, 19, -1, "", 0, 0),
    (19, 16, -1, "", 0, 0),
    (20, 21, -1, "", 0, 0),
    (21, 22, -1, "", 0, 0),
    (22, 23, -1, "", 0, 0),
    (23, 20, -1, "", 0, 0),
    (24, 25, -1, "", 0, 0),
    (25, 26, -1, "", 0, 0),
    (26, 27, -1, "", 0, 0),
    (27, 24, -1, "", 0, 0),
]
for a, b, size, boundary, hidden, group in _segments:
    x0, y0 = _nodes[a][:2]
    x1, y1 = _nodes[b][:2]
    mi_addsegment(x0, y0, x1, y1)
    mi_selectsegment((x0+x1)/2, (y0+y1)/2)
    mi_setsegmentprop(boundary, size, 1 if size <= 0 else 0, hidden, group)
    mi_clearselected()
# Метки: положение, материал, размер элемента, цепь, намагничивание, группа, витки.
_labels = [
    (170, 170, "Воздух", 10, "", 0, 0, 1),
    (0, 40, "Линейная сталь", 2, "", 0, 0, 1),
    (-64, 0, "Обмоточная область", 2, "Первичная обмотка", 0, 0, 200),
    (-36, 0, "Обмоточная область", 2, "Первичная обмотка", 0, 0, -200),
    (-70, 0, "Обмоточная область", 2, "Вторичная обмотка", 0, 0, 100),
    (-31, 0, "Обмоточная область", 2, "Вторичная обмотка", 0, 0, -100),
    (0, 0, "Воздух", 3, "", 0, 0, 1),
]
for x, y, material, size, circuit, direction, group, turns in _labels:
    mi_addblocklabel(x, y)
    if material:
        mi_selectlabel(x, y)
        mi_setblockprop(material, 1 if size <= 0 else 0, size, circuit, direction, group, turns)
        mi_clearselected()
mi_zoomnatural()
# Скрипт воспроизводит этап в памяти. При необходимости сохраните свою копию через File → Save As.
print("Готов шаг 9. Модель полная; автоматический расчёт не запускался.")
Однофазный трансформатор: нагрузка. Шаг 9: Локальные размеры сетки и готовая модель.
Рисунок 19.72. Однофазный трансформатор: нагрузка. Шаг 9: Локальные размеры сетки и готовая модель. Открыть в полном размере

Перейти к следующему этапу →

Этап 10 из 11

Просмотр сохранённой сетки

  1. Скачайте файлы «Трансформатор-нагрузка-09-Готовая-модель.fem» и «Трансформатор-нагрузка-09-Готовая-модель.ans» в одну папку. Их имена до расширения должны совпадать; сохраняйте исходные имена, чтобы FEMM нашёл готовое решение.
  2. Откройте именно файл «Полная модель шага 9 для просмотра решения», затем выполните mi_loadsolution() во встроенной консоли Python. Отдельный файл «Модель после шага 10» содержит то же состояние геометрии, но к его имени не приложено отдельное решение.
  3. В постпроцессоре выполните mo_showmesh(): команда показывает сетку готового решения и не создаёт новую сетку. Программу этого этапа также сохраните рядом с парой файлов модели и решения; запускайте её во встроенном Python FEMM.
  4. Рассмотрите сгущение сетки в узких зазорах и у границ материалов, если они присутствуют в модели. Оценка точности требует отдельной проверки сходимости; один снимок сетки её не заменяет.
  5. Для изменённой рабочей копии сетку и решение нужно построить заново. Приложенное решение относится только к неизменённому примеру.
Просмотр сетки готового решения. Для этого этапа новый расчёт не требуется.

Широкую таблицу можно прокрутить по горизонтали.

Таблица 19.113. Локальные ограничения сетки по областям
№ меткиМатериалРазмер элемента, ммРежим
0Воздух10заданный
1Линейная сталь2заданный
2Обмоточная область2заданный
3Обмоточная область2заданный
4Обмоточная область2заданный
5Обмоточная область2заданный
6Воздух3заданный

Сохранённое состояние этапа

Параметры этого файла подготовлены для расчёта.

Посмотреть программу этапа с русскими комментариями
Python · программа этапа
# Однофазный трансформатор: нагрузка
# Шаг 10: Просмотр сохранённой сетки
# Запускайте внутри FEMM 5 через File → Open Python Script.
# Исходные учебные модели не изменяются; новый полевой расчёт не выполняется.
import os
try:
    _script = __file__.replace(chr(92), '/')
    _folder = _script.rsplit('/', 1)[0] if '/' in _script else os.getcwd()
except NameError:
    _folder = os.getcwd()
# Открываем готовый эталон и его унаследованное решение из одной папки.
opendocument(_folder + '/' + "Трансформатор-нагрузка-09-Готовая-модель.fem")
mi_loadsolution()
mo_clearblock()
mo_clearcontour()
mo_zoomnatural()
mo_showdensityplot(1, 0, 1.8, 0, 'bmag')
# Показать существующие элементы из .ans; сетка не строится заново.
mo_showmesh()
Однофазный трансформатор: нагрузка. Шаг 10: Просмотр сохранённой сетки.
Рисунок 19.73. Однофазный трансформатор: нагрузка. Шаг 10: Просмотр сохранённой сетки. Открыть в полном размере

Перейти к следующему этапу →

Этап 11 из 11

Поле и численные результаты

  1. Для просмотра приложенного результата используйте ту же пару итоговых файлов модели и решения из предыдущего этапа. Программу этого этапа сохраните в той же папке: она открывает готовое решение, не запуская новый расчёт. Файл «Модель после шага 11» сохраняет итоговую геометрию; отдельного одноимённого решения к нему нет.
  2. Включите карту модуля магнитной индукции и прочитайте шкалу в теслах. Последовательно откройте результаты каждой цепи и сравните ток, полевое напряжение и потокосцепление с таблицей.
  3. Комплексные значения тока, полевого напряжения и потокосцепления в таблице представлены пиковыми амплитудами. Не сравнивайте их напрямую с действующими значениями источника питания.
  4. Чтобы проверить энергию всей модели во встроенной консоли Python, выполните последовательно mo_clearblock(), mo_groupselectblock(), затем print(mo_blockintegral(2)). Для коэнергии при том же выделении выполните print(mo_blockintegral(17)). После проверки снимите выделение командой mo_clearblock().
  5. В занятиях о группе из трёх однофазных трансформаторов этот файл представляет одну независимую однофазную составляющую, а не три фазы в одной геометрии. Полевое напряжение FEMM не включает добавленные снаружи падения RI; нагрузка согласована внешним расчётом.
  6. Таблица содержит результаты этой модели. После изменения параметров выполните новый расчёт через Analysis → Analyze, откройте результат через Analysis → View Results и сравните значения.
Просмотр готового поля и проверка численных результатов. Новый расчёт нужен только после изменения модели.

Широкую таблицу можно прокрутить по горизонтали.

Таблица 19.114. Результаты всех цепей
ЦепьКомплексная амплитуда тока, АКомплексная амплитуда полевого напряжения, ВКомплексная амплитуда потокосцепления, Вб
Вторичная обмотка-0{,}8382 + j\cdot (-0{,}007314)16{,}85 + j\cdot (0{,}147)468 \times 10^{-6} + j\cdot (-0{,}05363)
Первичная обмотка0{,}4269 + j\cdot (-0{,}8526)33{,}77 + j\cdot (0{,}341)0{,}001086 + j\cdot (-0{,}1075)
Таблица 19.115. Объёмные интегралы
ВеличинаЗначение
Средняя энергия, Дж0,02303
Средняя коэнергия, Дж0,02303

Сохранённое состояние этапа

Параметры этого файла подготовлены для расчёта.

Посмотреть программу этапа с русскими комментариями
Python · программа этапа
# Однофазный трансформатор: нагрузка
# Шаг 11: Поле и численные результаты
# Запускайте внутри FEMM 5 через File → Open Python Script.
# Исходные учебные модели не изменяются; новый полевой расчёт не выполняется.
import os
try:
    _script = __file__.replace(chr(92), '/')
    _folder = _script.rsplit('/', 1)[0] if '/' in _script else os.getcwd()
except NameError:
    _folder = os.getcwd()
# Открываем готовый эталон и его унаследованное решение из одной папки.
opendocument(_folder + '/' + "Трансформатор-нагрузка-09-Готовая-модель.fem")
mi_loadsolution()
mo_clearblock()
mo_clearcontour()
mo_zoomnatural()
mo_showdensityplot(1, 0, 1.8, 0, 'bmag')
mo_hidemesh()
# Запрашиваем реальные результаты всех сохранённых цепей.
print("Первичная обмотка: I, U поля, потокосцепление", mo_getcircuitproperties("Первичная обмотка"))
print("Вторичная обмотка: I, U поля, потокосцепление", mo_getcircuitproperties("Вторичная обмотка"))
# Энергия вычисляется по всем областям эталона.
mo_groupselectblock()
print('Энергия, Дж:', mo_blockintegral(2))
mo_clearblock()
Однофазный трансформатор: нагрузка. Шаг 11: Поле и численные результаты.
Рисунок 19.74. Однофазный трансформатор: нагрузка. Шаг 11: Поле и численные результаты. Открыть в полном размере