От постановки задачи к готовому решению
Однофазный трансформатор: возбуждение вторичной обмотки
Независимое вторичное возбуждение той же геометрии для определения взаимного импеданса.
Проверка учебной модели
Исходный учебный пример повторно рассчитан в FEMM 5 15 октября 2026 года. Его модель также построена и решена из учебной Python-программы. Результат проверки.
Проходите этапы по порядку. Файл каждого этапа содержит накопленное состояние модели: его можно открыть отдельно и продолжить с указанного шага. Названия материалов, цепей и файлов приведены по-русски; названия команд интерфейса FEMM сохранены для точного поиска в программе.
Числа в таблицах позволяют сверить результат на указанной сетке. Количество выведенных знаков не задаёт физическую точность модели; для силы и момента проверяйте сетку и устойчивость метода вычисления.
Итоговые файлы примера
Итоговая модель FEMMСохранённое решение FEMMВоспроизведение итоговой модели во встроенном Python
Если нужен промежуточный результат построения, скачайте файл соответствующего этапа ниже.
Этап 1 из 11
Постановка задачи
- Создайте магнитную задачу через «Файл → Новая» (File → New → Magnetics Problem).
- В окне «Постановка задачи» (Problem Definition) выберите миллиметры, тип «плоскопараллельная» и частоту 50 Гц.
- Введите точность, минимальный угол сетки и остальные значения таблицы. В таблицах используется десятичная запятая; при вводе чисел в FEMM заменяйте её точкой.
- Поле файла предыдущего решения оставьте пустым. В осесимметричной задаче поле глубины не задаёт физическую длину: координаты обозначают радиус r и высоту z. В плоскопараллельной задаче глубина задаёт длину модели перпендикулярно плоскости чертежа.
| Параметр | Значение |
|---|---|
| Частота, Гц | 50 |
| Точность | 10 × 10⁻⁹ |
| Минимальный угол, {}^\circ | 25 |
| Умная сетка: 1 — включена | 1 |
| Глубина плоской задачи, мм | 40 |
| Единицы | миллиметры |
| Тип задачи | плоскопараллельная |
| Координаты | декартовы |
| Гармонический решатель: 0 — последовательные приближения | 0 |
| Предыдущее решение: 0 — отсутствует | 0 |
| Файл предыдущего решения | Не задан |
Сохранённое состояние этапа
Модель после шага 1Встроенный Python: шаг 1
Промежуточный этап построения. Перед расчётом завершите оставшиеся настройки модели.
Посмотреть программу этапа с русскими комментариями
# Однофазный трансформатор: вторичная проба
# Шаг 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. Модель неполная: переходите к следующему этапу, не запускайте решение.")

Этап 2 из 11
Материалы и характеристика B–H
- Продолжайте модель предыдущего этапа: уже заданные свойства и геометрию сохраняйте. Скачиваемый файл этого этапа содержит все предыдущие действия вместе с текущими изменениями.
- Откройте «Свойства → Материалы» (Properties → Materials) и последовательно создайте материалы из таблиц.
- Для каждого материала укажите обе относительные проницаемости, коэрцитивную силу, заданную объёмную плотность тока, проводимость и параметры шихтовки. Удельная электрическая проводимость вводится в МСм/м, а не в См/м.
- Если дана таблица B–H, включите нелинейную характеристику и внесите каждую пару: B в Тл, H в А/м. Числа не заменяются свойствами одноимённого материала из другой библиотеки.
- Список сохраняет все материалы исходника. Столбец использования показывает, какие из них действительно назначены областям данного варианта.
| Параметр | Значение |
|---|---|
| Назначен областям | Да |
| Относительная магнитная проницаемость по x/r | 1 |
| Относительная магнитная проницаемость по y/z | 1 |
| Коэрцитивная сила, А/м | 0 |
| Угол направления коэрцитивной силы, {}^\circ | 0 |
| Действительная часть плотности тока, МА/м² | 0 |
| Мнимая часть плотности тока, МА/м² | 0 |
| Удельная электрическая проводимость, МСм/м | 0 |
| Толщина листа, мм | 0 |
| Угол гистерезиса, {}^\circ | 0 |
| Угол гистерезисного запаздывания по x, {}^\circ | 0 |
| Угол гистерезисного запаздывания по y, {}^\circ | 0 |
| Тип: 0 — без шихтовки | 0 |
| Коэффициент заполнения | 1 |
| Число жил | 0 |
| Диаметр провода, мм | 0 |
| Параметр | Значение |
|---|---|
| Назначен областям | Да |
| Относительная магнитная проницаемость по x/r | 1 |
| Относительная магнитная проницаемость по y/z | 1 |
| Коэрцитивная сила, А/м | 0 |
| Угол направления коэрцитивной силы, {}^\circ | 0 |
| Действительная часть плотности тока, МА/м² | 0 |
| Мнимая часть плотности тока, МА/м² | 0 |
| Удельная электрическая проводимость, МСм/м | 0 |
| Толщина листа, мм | 0 |
| Угол гистерезиса, {}^\circ | 0 |
| Угол гистерезисного запаздывания по x, {}^\circ | 0 |
| Угол гистерезисного запаздывания по y, {}^\circ | 0 |
| Тип: 0 — без шихтовки | 0 |
| Коэффициент заполнения | 1 |
| Число жил | 0 |
| Диаметр провода, мм | 0 |
| Параметр | Значение |
|---|---|
| Назначен областям | Да |
| Относительная магнитная проницаемость по x/r | 1000 |
| Относительная магнитная проницаемость по y/z | 1000 |
| Коэрцитивная сила, А/м | 0 |
| Угол направления коэрцитивной силы, {}^\circ | 0 |
| Действительная часть плотности тока, МА/м² | 0 |
| Мнимая часть плотности тока, МА/м² | 0 |
| Удельная электрическая проводимость, МСм/м | 0 |
| Толщина листа, мм | 0 |
| Угол гистерезиса, {}^\circ | 0 |
| Угол гистерезисного запаздывания по x, {}^\circ | 0 |
| Угол гистерезисного запаздывания по y, {}^\circ | 0 |
| Тип: 0 — без шихтовки | 0 |
| Коэффициент заполнения | 1 |
| Число жил | 0 |
| Диаметр провода, мм | 0 |
| Параметр | Значение |
|---|---|
| Назначен областям | Нет, сохранён в списке исходника |
| Относительная магнитная проницаемость по x/r | 1 |
| Относительная магнитная проницаемость по y/z | 1 |
| Коэрцитивная сила, А/м | 0 |
| Угол направления коэрцитивной силы, {}^\circ | 0 |
| Действительная часть плотности тока, МА/м² | 0 |
| Мнимая часть плотности тока, МА/м² | 0 |
| Удельная электрическая проводимость, МСм/м | 0 |
| Толщина листа, мм | 0 |
| Угол гистерезиса, {}^\circ | 0 |
| Угол гистерезисного запаздывания по x, {}^\circ | 0 |
| Угол гистерезисного запаздывания по y, {}^\circ | 0 |
| Тип: 0 — без шихтовки | 0 |
| Коэффициент заполнения | 1 |
| Число жил | 0 |
| Диаметр провода, мм | 0 |
| B, Тл | H, А/м |
|---|---|
| 0 | 0 |
| 0,25 | 100 |
| 0,5 | 200 |
| 0,9 | 400 |
| 1,2 | 800 |
| 1,45 | 2000 |
| 1,6 | 5000 |
| 1,7 | 10000 |
| Параметр | Значение |
|---|---|
| Назначен областям | Нет, сохранён в списке исходника |
| Относительная магнитная проницаемость по x/r | 1,05 |
| Относительная магнитная проницаемость по y/z | 1,05 |
| Коэрцитивная сила, А/м | 909500 |
| Угол направления коэрцитивной силы, {}^\circ | 0 |
| Действительная часть плотности тока, МА/м² | 0 |
| Мнимая часть плотности тока, МА/м² | 0 |
| Удельная электрическая проводимость, МСм/м | 0 |
| Толщина листа, мм | 0 |
| Угол гистерезиса, {}^\circ | 0 |
| Угол гистерезисного запаздывания по x, {}^\circ | 0 |
| Угол гистерезисного запаздывания по y, {}^\circ | 0 |
| Тип: 0 — без шихтовки | 0 |
| Коэффициент заполнения | 1 |
| Число жил | 0 |
| Диаметр провода, мм | 0 |
Сохранённое состояние этапа
Модель после шага 2Встроенный Python: шаг 2
Промежуточный этап построения. Перед расчётом завершите оставшиеся настройки модели.
Посмотреть программу этапа с русскими комментариями
# Однофазный трансформатор: вторичная проба
# Шаг 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. Модель неполная: переходите к следующему этапу, не запускайте решение.")

Этап 3 из 11
Цепи и токи возбуждения
- Продолжайте модель предыдущего этапа: уже заданные свойства и геометрию сохраняйте. Скачиваемый файл этого этапа содержит все предыдущие действия вместе с текущими изменениями.
- Откройте «Свойства → Цепи» (Properties → Circuits) и создайте каждую указанную цепь.
- Выберите последовательное соединение (Series), если в таблице стоит код 1; код 0 соответствует параллельному соединению. Число витков задаётся позже в метке каждой области.
- Для гармонической задачи значения в таблице — комплексные пиковые амплитуды токов, а не действующие значения. Действительная и мнимая части записываются как \operatorname{Re} + j \operatorname{Im}. Перенесите обе компоненты со знаками; цепь с нулевым током также создайте.
- Независимое возбуждение одной обмотки служит для определения матрицы полевых сопротивлений; это режим раздельного возбуждения, а не согласованная работа под нагрузкой. В занятиях о группе из трёх однофазных трансформаторов файл представляет одну независимую однофазную составляющую. Полевое напряжение FEMM не включает внешнее падение напряжения на активном сопротивлении обмотки.
Широкую таблицу можно прокрутить по горизонтали.
| Цепь | Действительная часть тока, А | Мнимая часть тока, А | Тип |
|---|---|---|---|
| Первичная обмотка | 0 | 0 | Последовательная (1) |
| Вторичная обмотка | 1 | 0 | Последовательная (1) |
Сохранённое состояние этапа
Модель после шага 3Встроенный Python: шаг 3
Промежуточный этап построения. Перед расчётом завершите оставшиеся настройки модели.
Посмотреть программу этапа с русскими комментариями
# Однофазный трансформатор: вторичная проба
# Шаг 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, 0), 1)
mi_addcircprop("Вторичная обмотка", complex(1, 0), 1)
mi_zoomnatural()
# Скрипт воспроизводит этап в памяти. При необходимости сохраните свою копию через File → Save As.
print("Готов шаг 3. Модель неполная: переходите к следующему этапу, не запускайте решение.")

Этап 4 из 11
Граничные условия
- Продолжайте модель предыдущего этапа: уже заданные свойства и геометрию сохраняйте. Скачиваемый файл этого этапа содержит все предыдущие действия вместе с текущими изменениями.
- В «Свойства → Граничные условия» (Properties → Boundary) создайте определения из таблиц.
- Тип 0 — заданный потенциал (Prescribed A); нулевые A_{0}, A_{1} и A_{2} дают A=0. Тип 5 — антипериодическое условие (Anti-periodic).
- На этом этапе условие только определено. Назначайте его конкретным отрезкам и дугам на этапе «Отрезки и дуги» по приведённым там таблицам.
- Имена созданных условий должны совпадать с именами в таблицах отрезков и дуг. Не назначайте внешнее граничное условие внутренним контурам, если это не указано в таблице.
| Параметр | Значение |
|---|---|
| Тип границы | 0 |
| A_{0} | 0 |
| A_{1} | 0 |
| A_{2} | 0 |
| Фаза, {}^\circ | 0 |
| Действительная часть коэффициента c_{0} | 0 |
| Мнимая часть коэффициента c_{0} | 0 |
| Действительная часть коэффициента c_{1} | 0 |
| Мнимая часть коэффициента c_{1} | 0 |
| Относительная магнитная проницаемость при малой глубине проникновения | 0 |
| Удельная электрическая проводимость для условия малой глубины проникновения | 0 |
| Внутренний угол, {}^\circ | 0 |
| Внешний угол, {}^\circ | 0 |
Сохранённое состояние этапа
Модель после шага 4Встроенный Python: шаг 4
Промежуточный этап построения. Перед расчётом завершите оставшиеся настройки модели.
Посмотреть программу этапа с русскими комментариями
# Однофазный трансформатор: вторичная проба
# Шаг 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, 0), 1)
mi_addcircprop("Вторичная обмотка", complex(1, 0), 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. Модель неполная: переходите к следующему этапу, не запускайте решение.")

Этап 5 из 11
Узлы и размеры геометрии
- Продолжайте модель предыдущего этапа: уже заданные свойства и геометрию сохраняйте. Скачиваемый файл этого этапа содержит все предыдущие действия вместе с текущими изменениями.
- Переключитесь в режим узлов. Создавайте точки в порядке строк таблицы, вводя указанные координаты. Номер строки служит ссылкой для последующего соединения точек; это не имя, которое нужно присвоить узлу в FEMM.
- Размеры заданы в миллиметрах. Очень малые координаты порядка 10⁻¹⁴ мм означают вычислительный нуль. Таблицы округлены для чтения; полный набор исходных чисел сохранён в приложенной модели и программе этапа.
- Пока присутствуют только точки. Контуры, материалы областей и токовые назначения ещё не завершены.
Широкую таблицу можно прокрутить по горизонтали.
| № узла | x или r, мм | y или z, мм | Группа |
|---|---|---|---|
| 0 | -200 | -200 | 0 |
| 1 | 200 | -200 | 0 |
| 2 | 200 | 200 | 0 |
| 3 | -200 | 200 | 0 |
| 4 | -60 | -50 | 0 |
| 5 | 60 | -50 | 0 |
| 6 | 60 | 50 | 0 |
| 7 | -60 | 50 | 0 |
| 8 | -40 | -30 | 0 |
| 9 | 40 | -30 | 0 |
| 10 | 40 | 30 | 0 |
| 11 | -40 | 30 | 0 |
| 12 | -66 | -20 | 0 |
| 13 | -62 | -20 | 0 |
| 14 | -62 | 20 | 0 |
| 15 | -66 | 20 | 0 |
| 16 | -38 | -20 | 0 |
| 17 | -34 | -20 | 0 |
| 18 | -34 | 20 | 0 |
| 19 | -38 | 20 | 0 |
| 20 | -72 | -20 | 0 |
| 21 | -68 | -20 | 0 |
| 22 | -68 | 20 | 0 |
| 23 | -72 | 20 | 0 |
| 24 | -33 | -20 | 0 |
| 25 | -29 | -20 | 0 |
| 26 | -29 | 20 | 0 |
| 27 | -33 | 20 | 0 |
Сохранённое состояние этапа
Модель после шага 5Встроенный Python: шаг 5
Промежуточный этап построения. Перед расчётом завершите оставшиеся настройки модели.
Посмотреть программу этапа с русскими комментариями
# Однофазный трансформатор: вторичная проба
# Шаг 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, 0), 1)
mi_addcircprop("Вторичная обмотка", complex(1, 0), 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. Модель неполная: переходите к следующему этапу, не запускайте решение.")

Этап 6 из 11
Отрезки и дуги
- Продолжайте модель предыдущего этапа: уже заданные свойства и геометрию сохраняйте. Скачиваемый файл этого этапа содержит все предыдущие действия вместе с текущими изменениями.
- В режиме отрезков соедините пары узлов из первой таблицы. Координаты каждого конца найдите по номеру узла в таблице предыдущего этапа; каждая строка задаёт отдельный отрезок.
- В этом примере таблица дуг пуста: геометрия состоит из отрезков, поэтому дуги добавлять не нужно.
- Выделите каждый граничный отрезок или дугу и назначьте указанное условие через свойства объекта. Сохраните номера групп.
- Геометрия включает внешнюю воздушную область. На данном этапе ограничения сетки предварительные; точные ограничения будут восстановлены на шаге 9.
Широкую таблицу можно прокрутить по горизонтали.
| № | Начальный узел | Конечный узел | Граница | Группа |
|---|---|---|---|---|
| 0 | 0 | 1 | Нулевой потенциал | 0 |
| 1 | 1 | 2 | Нулевой потенциал | 0 |
| 2 | 2 | 3 | Нулевой потенциал | 0 |
| 3 | 3 | 0 | Нулевой потенциал | 0 |
| 4 | 4 | 5 | Нет | 0 |
| 5 | 5 | 6 | Нет | 0 |
| 6 | 6 | 7 | Нет | 0 |
| 7 | 7 | 4 | Нет | 0 |
| 8 | 8 | 9 | Нет | 0 |
| 9 | 9 | 10 | Нет | 0 |
| 10 | 10 | 11 | Нет | 0 |
| 11 | 11 | 8 | Нет | 0 |
| 12 | 12 | 13 | Нет | 0 |
| 13 | 13 | 14 | Нет | 0 |
| 14 | 14 | 15 | Нет | 0 |
| 15 | 15 | 12 | Нет | 0 |
| 16 | 16 | 17 | Нет | 0 |
| 17 | 17 | 18 | Нет | 0 |
| 18 | 18 | 19 | Нет | 0 |
| 19 | 19 | 16 | Нет | 0 |
| 20 | 20 | 21 | Нет | 0 |
| 21 | 21 | 22 | Нет | 0 |
| 22 | 22 | 23 | Нет | 0 |
| 23 | 23 | 20 | Нет | 0 |
| 24 | 24 | 25 | Нет | 0 |
| 25 | 25 | 26 | Нет | 0 |
| 26 | 26 | 27 | Нет | 0 |
| 27 | 27 | 24 | Нет | 0 |
Широкую таблицу можно прокрутить по горизонтали.
| № | Начальный узел | Конечный узел | Угол дуги, {}^\circ | Граница | Группа |
|---|
Сохранённое состояние этапа
Модель после шага 6Встроенный Python: шаг 6
Промежуточный этап построения. Перед расчётом завершите оставшиеся настройки модели.
Посмотреть программу этапа с русскими комментариями
# Однофазный трансформатор: вторичная проба
# Шаг 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, 0), 1)
mi_addcircprop("Вторичная обмотка", complex(1, 0), 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. Модель неполная: переходите к следующему этапу, не запускайте решение.")

Этап 7 из 11
Метки замкнутых областей
- Продолжайте модель предыдущего этапа: уже заданные свойства и геометрию сохраняйте. Скачиваемый файл этого этапа содержит все предыдущие действия вместе с текущими изменениями.
- В режиме меток добавьте по одной метке в каждую область в координатах таблицы.
- На этом этапе метки намеренно оставлены без материала и цепи. Каждая метка должна лежать строго внутри своего замкнутого контура. Обязательно добавьте метку внешней воздушной области.
- Не запускайте расчёт: присутствие точки метки ещё не назначает физические свойства.
Широкую таблицу можно прокрутить по горизонтали.
| № | x или r, мм | y или z, мм | Будущий материал |
|---|---|---|---|
| 0 | 170 | 170 | Воздух |
| 1 | 0 | 40 | Линейная сталь |
| 2 | -64 | 0 | Обмоточная область |
| 3 | -36 | 0 | Обмоточная область |
| 4 | -70 | 0 | Обмоточная область |
| 5 | -31 | 0 | Обмоточная область |
| 6 | 0 | 0 | Воздух |
Сохранённое состояние этапа
Модель после шага 7Встроенный Python: шаг 7
Промежуточный этап построения. Перед расчётом завершите оставшиеся настройки модели.
Посмотреть программу этапа с русскими комментариями
# Однофазный трансформатор: вторичная проба
# Шаг 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, 0), 1)
mi_addcircprop("Вторичная обмотка", complex(1, 0), 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. Модель неполная: переходите к следующему этапу, не запускайте решение.")

Этап 8 из 11
Назначения материалов и обмоток
- Продолжайте модель предыдущего этапа: уже заданные свойства и геометрию сохраняйте. Скачиваемый файл этого этапа содержит все предыдущие действия вместе с текущими изменениями.
- Выделяйте метки по координатам и открывайте их свойства (Block Label Properties). Назначьте материал, цепь и число витков со знаком из полной таблицы.
- Для магнитов задайте направление намагничивания: число означает угол в градусах; theta и theta+180 — функции координат, поэтому их английские технические идентификаторы сохраняются.
- Восстановите группы: группа 2 используется для выделения ротора или отдельного якоря при вычислении силы/момента, если это предусмотрено вариантом.
- Материалы и обмотки уже назначены, но локальные размеры сетки этого промежуточного файла ещё автоматические. Не запускайте расчёт: сначала перейдите к следующему этапу и восстановите указанные там ограничения сетки.
Широкую таблицу можно прокрутить по горизонтали.
| № | x или r, мм | y или z, мм | Материал | Цепь | Витки со знаком | Намагничивание | Группа |
|---|---|---|---|---|---|---|---|
| 0 | 170 | 170 | Воздух | Нет | 1 | 0^\circ | 0 |
| 1 | 0 | 40 | Линейная сталь | Нет | 1 | 0^\circ | 0 |
| 2 | -64 | 0 | Обмоточная область | Первичная обмотка | 200 | 0^\circ | 0 |
| 3 | -36 | 0 | Обмоточная область | Первичная обмотка | -200 | 0^\circ | 0 |
| 4 | -70 | 0 | Обмоточная область | Вторичная обмотка | 100 | 0^\circ | 0 |
| 5 | -31 | 0 | Обмоточная область | Вторичная обмотка | -100 | 0^\circ | 0 |
| 6 | 0 | 0 | Воздух | Нет | 1 | 0^\circ | 0 |
Сохранённое состояние этапа
Модель после шага 8Встроенный Python: шаг 8
Промежуточный этап построения. Перед расчётом завершите оставшиеся настройки модели.
Посмотреть программу этапа с русскими комментариями
# Однофазный трансформатор: вторичная проба
# Шаг 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, 0), 1)
mi_addcircprop("Вторичная обмотка", complex(1, 0), 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. Модель неполная: переходите к следующему этапу, не запускайте решение.")

Этап 9 из 11
Локальные размеры сетки и готовая модель
- Продолжайте модель предыдущего этапа: уже заданные свойства и геометрию сохраняйте. Скачиваемый файл этого этапа содержит все предыдущие действия вместе с текущими изменениями.
- Откройте свойства каждой метки; снимите Auto mesh для положительного размера и укажите значение в миллиметрах. Нулевой либо отрицательный размер означает автоматический выбор.
- Проверьте ограничения длины на отрезках и угла на дугах по отдельным таблицам. Для дуги ограничение задаётся в градусах, а не в миллиметрах.
- Сверьте глобальный минимальный угол, умную сетку, материалы, токи, границы и все назначения. Теперь файл содержит полное состояние проверенного исходного варианта.
- Сохраните собственную рабочую копию через «Файл → Сохранить как». Изменённая пользователем копия должна рассчитываться заново; унаследованное решение ниже относится к неизменённому эталону.
Широкую таблицу можно прокрутить по горизонтали.
| № метки | Материал | Размер элемента, мм | Режим |
|---|---|---|---|
| 0 | Воздух | 10 | заданный |
| 1 | Линейная сталь | 2 | заданный |
| 2 | Обмоточная область | 2 | заданный |
| 3 | Обмоточная область | 2 | заданный |
| 4 | Обмоточная область | 2 | заданный |
| 5 | Обмоточная область | 2 | заданный |
| 6 | Воздух | 3 | заданный |
Широкую таблицу можно прокрутить по горизонтали.
| № отрезка | Максимальная длина, мм | Режим |
|---|---|---|
| 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 | автоматический |
| № дуги | Максимальный угол элемента, {}^\circ |
|---|
Сохранённое состояние этапа
Модель после шага 9Встроенный Python: шаг 9
Параметры этого файла подготовлены для расчёта.
Посмотреть программу этапа с русскими комментариями
# Однофазный трансформатор: вторичная проба
# Шаг 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, 0), 1)
mi_addcircprop("Вторичная обмотка", complex(1, 0), 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. Модель полная; автоматический расчёт не запускался.")

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

Этап 11 из 11
Поле и численные результаты
- Для просмотра приложенного результата используйте ту же пару итоговых файлов модели и решения из предыдущего этапа. Программу этого этапа сохраните в той же папке: она открывает готовое решение, не запуская новый расчёт. Файл «Модель после шага 11» сохраняет итоговую геометрию; отдельного одноимённого решения к нему нет.
- Включите карту модуля магнитной индукции и прочитайте шкалу в теслах. Последовательно откройте результаты каждой цепи и сравните ток, полевое напряжение и потокосцепление с таблицей.
- Комплексные значения тока, полевого напряжения и потокосцепления в таблице представлены пиковыми амплитудами. Не сравнивайте их напрямую с действующими значениями источника питания.
- Чтобы проверить энергию всей модели во встроенной консоли Python, выполните последовательно
mo_clearblock(),mo_groupselectblock(), затемprint(mo_blockintegral(2)). Для коэнергии при том же выделении выполнитеprint(mo_blockintegral(17)). После проверки снимите выделение командойmo_clearblock(). - Независимое возбуждение одной обмотки служит для определения матрицы полевых сопротивлений; это режим раздельного возбуждения, а не согласованная работа под нагрузкой. В занятиях о группе из трёх однофазных трансформаторов файл представляет одну независимую однофазную составляющую. Полевое напряжение FEMM не включает внешнее падение напряжения на активном сопротивлении обмотки.
- Таблица содержит результаты этой модели. После изменения параметров выполните новый расчёт через Analysis → Analyze, откройте результат через Analysis → View Results и сравните значения.
Широкую таблицу можно прокрутить по горизонтали.
| Цепь | Комплексная амплитуда тока, А | Комплексная амплитуда полевого напряжения, В | Комплексная амплитуда потокосцепления, Вб |
|---|---|---|---|
| Вторичная обмотка | 1 | 0 + j\cdot (9{,}845) | 0,03134 |
| Первичная обмотка | 0 | 0 + j\cdot (19{,}68) | 0,06264 |
| Величина | Значение |
|---|---|
| Средняя энергия, Дж | 0,007834 |
| Средняя коэнергия, Дж | 0,007834 |
Сохранённое состояние этапа
Полная модель шага 9 для просмотра решенияМодель после шага 11Сохранённое решение эталонаВстроенный Python: шаг 11
Параметры этого файла подготовлены для расчёта.
Посмотреть программу этапа с русскими комментариями
# Однофазный трансформатор: вторичная проба
# Шаг 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()
