От постановки задачи к готовому решению
Трёхфазный трансформатор: возбуждение цепи «вторичная А»
Независимое возбуждение для столбца 4 матрицы полевых сопротивлений: цепь «вторичная А» имеет комплексную амплитуду тока 1 А при 50 Гц, остальные пять токов нулевые.
Проверка учебной модели
Исходный учебный пример повторно рассчитан в 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) |
| Первичная фаза В | 0 | 0 | Последовательная (1) |
| Первичная фаза С | 0 | 0 | Последовательная (1) |
| Вторичная фаза А | 1 | 0 | Последовательная (1) |
| Вторичная фаза В | 0 | 0 | Последовательная (1) |
| Вторичная фаза С | 0 | 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(0, 0), 1)
mi_addcircprop("Первичная фаза С", complex(0, 0), 1)
mi_addcircprop("Вторичная фаза А", complex(1, 0), 1)
mi_addcircprop("Вторичная фаза В", complex(0, 0), 1)
mi_addcircprop("Вторичная фаза С", complex(0, 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(0, 0), 1)
mi_addcircprop("Первичная фаза С", complex(0, 0), 1)
mi_addcircprop("Вторичная фаза А", complex(1, 0), 1)
mi_addcircprop("Вторичная фаза В", complex(0, 0), 1)
mi_addcircprop("Вторичная фаза С", complex(0, 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 | -220 | -220 | 0 |
| 1 | 220 | -220 | 0 |
| 2 | 220 | 220 | 0 |
| 3 | -220 | 220 | 0 |
| 4 | -70 | -60 | 0 |
| 5 | 70 | -60 | 0 |
| 6 | 70 | 60 | 0 |
| 7 | -70 | 60 | 0 |
| 8 | -50 | -40 | 0 |
| 9 | -10 | -40 | 0 |
| 10 | -10 | 40 | 0 |
| 11 | -50 | 40 | 0 |
| 12 | 10 | -40 | 0 |
| 13 | 50 | -40 | 0 |
| 14 | 50 | 40 | 0 |
| 15 | 10 | 40 | 0 |
| 16 | -80 | -25 | 0 |
| 17 | -75 | -25 | 0 |
| 18 | -75 | 25 | 0 |
| 19 | -80 | 25 | 0 |
| 20 | -45 | -25 | 0 |
| 21 | -40 | -25 | 0 |
| 22 | -40 | 25 | 0 |
| 23 | -45 | 25 | 0 |
| 24 | -20 | -25 | 0 |
| 25 | -15 | -25 | 0 |
| 26 | -15 | 25 | 0 |
| 27 | -20 | 25 | 0 |
| 28 | 15 | -25 | 0 |
| 29 | 20 | -25 | 0 |
| 30 | 20 | 25 | 0 |
| 31 | 15 | 25 | 0 |
| 32 | 40 | -25 | 0 |
| 33 | 45 | -25 | 0 |
| 34 | 45 | 25 | 0 |
| 35 | 40 | 25 | 0 |
| 36 | 75 | -25 | 0 |
| 37 | 80 | -25 | 0 |
| 38 | 80 | 25 | 0 |
| 39 | 75 | 25 | 0 |
| 40 | -88 | -25 | 0 |
| 41 | -83 | -25 | 0 |
| 42 | -83 | 25 | 0 |
| 43 | -88 | 25 | 0 |
| 44 | -39 | -25 | 0 |
| 45 | -35 | -25 | 0 |
| 46 | -35 | 25 | 0 |
| 47 | -39 | 25 | 0 |
| 48 | -27 | -25 | 0 |
| 49 | -22 | -25 | 0 |
| 50 | -22 | 25 | 0 |
| 51 | -27 | 25 | 0 |
| 52 | 22 | -25 | 0 |
| 53 | 27 | -25 | 0 |
| 54 | 27 | 25 | 0 |
| 55 | 22 | 25 | 0 |
| 56 | 35 | -25 | 0 |
| 57 | 39 | -25 | 0 |
| 58 | 39 | 25 | 0 |
| 59 | 35 | 25 | 0 |
| 60 | 83 | -25 | 0 |
| 61 | 88 | -25 | 0 |
| 62 | 88 | 25 | 0 |
| 63 | 83 | 25 | 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(0, 0), 1)
mi_addcircprop("Первичная фаза С", complex(0, 0), 1)
mi_addcircprop("Вторичная фаза А", complex(1, 0), 1)
mi_addcircprop("Вторичная фаза В", complex(0, 0), 1)
mi_addcircprop("Вторичная фаза С", complex(0, 0), 1)
mi_addboundprop("Нулевой потенциал", 0, 0, 0, 0, 0, 0, complex(0, 0), complex(0, 0), 0, 0, 0)
# Координаты сохранены с исходной точностью; единицы — миллиметры.
_nodes = [
(-220, -220, 0),
(220, -220, 0),
(220, 220, 0),
(-220, 220, 0),
(-70, -60, 0),
(70, -60, 0),
(70, 60, 0),
(-70, 60, 0),
(-50, -40, 0),
(-10, -40, 0),
(-10, 40, 0),
(-50, 40, 0),
(10, -40, 0),
(50, -40, 0),
(50, 40, 0),
(10, 40, 0),
(-80, -25, 0),
(-75, -25, 0),
(-75, 25, 0),
(-80, 25, 0),
(-45, -25, 0),
(-40, -25, 0),
(-40, 25, 0),
(-45, 25, 0),
(-20, -25, 0),
(-15, -25, 0),
(-15, 25, 0),
(-20, 25, 0),
(15, -25, 0),
(20, -25, 0),
(20, 25, 0),
(15, 25, 0),
(40, -25, 0),
(45, -25, 0),
(45, 25, 0),
(40, 25, 0),
(75, -25, 0),
(80, -25, 0),
(80, 25, 0),
(75, 25, 0),
(-88, -25, 0),
(-83, -25, 0),
(-83, 25, 0),
(-88, 25, 0),
(-39, -25, 0),
(-35, -25, 0),
(-35, 25, 0),
(-39, 25, 0),
(-27, -25, 0),
(-22, -25, 0),
(-22, 25, 0),
(-27, 25, 0),
(22, -25, 0),
(27, -25, 0),
(27, 25, 0),
(22, 25, 0),
(35, -25, 0),
(39, -25, 0),
(39, 25, 0),
(35, 25, 0),
(83, -25, 0),
(88, -25, 0),
(88, 25, 0),
(83, 25, 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 |
| 28 | 28 | 29 | Нет | 0 |
| 29 | 29 | 30 | Нет | 0 |
| 30 | 30 | 31 | Нет | 0 |
| 31 | 31 | 28 | Нет | 0 |
| 32 | 32 | 33 | Нет | 0 |
| 33 | 33 | 34 | Нет | 0 |
| 34 | 34 | 35 | Нет | 0 |
| 35 | 35 | 32 | Нет | 0 |
| 36 | 36 | 37 | Нет | 0 |
| 37 | 37 | 38 | Нет | 0 |
| 38 | 38 | 39 | Нет | 0 |
| 39 | 39 | 36 | Нет | 0 |
| 40 | 40 | 41 | Нет | 0 |
| 41 | 41 | 42 | Нет | 0 |
| 42 | 42 | 43 | Нет | 0 |
| 43 | 43 | 40 | Нет | 0 |
| 44 | 44 | 45 | Нет | 0 |
| 45 | 45 | 46 | Нет | 0 |
| 46 | 46 | 47 | Нет | 0 |
| 47 | 47 | 44 | Нет | 0 |
| 48 | 48 | 49 | Нет | 0 |
| 49 | 49 | 50 | Нет | 0 |
| 50 | 50 | 51 | Нет | 0 |
| 51 | 51 | 48 | Нет | 0 |
| 52 | 52 | 53 | Нет | 0 |
| 53 | 53 | 54 | Нет | 0 |
| 54 | 54 | 55 | Нет | 0 |
| 55 | 55 | 52 | Нет | 0 |
| 56 | 56 | 57 | Нет | 0 |
| 57 | 57 | 58 | Нет | 0 |
| 58 | 58 | 59 | Нет | 0 |
| 59 | 59 | 56 | Нет | 0 |
| 60 | 60 | 61 | Нет | 0 |
| 61 | 61 | 62 | Нет | 0 |
| 62 | 62 | 63 | Нет | 0 |
| 63 | 63 | 60 | Нет | 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(0, 0), 1)
mi_addcircprop("Первичная фаза С", complex(0, 0), 1)
mi_addcircprop("Вторичная фаза А", complex(1, 0), 1)
mi_addcircprop("Вторичная фаза В", complex(0, 0), 1)
mi_addcircprop("Вторичная фаза С", complex(0, 0), 1)
mi_addboundprop("Нулевой потенциал", 0, 0, 0, 0, 0, 0, complex(0, 0), complex(0, 0), 0, 0, 0)
# Координаты сохранены с исходной точностью; единицы — миллиметры.
_nodes = [
(-220, -220, 0),
(220, -220, 0),
(220, 220, 0),
(-220, 220, 0),
(-70, -60, 0),
(70, -60, 0),
(70, 60, 0),
(-70, 60, 0),
(-50, -40, 0),
(-10, -40, 0),
(-10, 40, 0),
(-50, 40, 0),
(10, -40, 0),
(50, -40, 0),
(50, 40, 0),
(10, 40, 0),
(-80, -25, 0),
(-75, -25, 0),
(-75, 25, 0),
(-80, 25, 0),
(-45, -25, 0),
(-40, -25, 0),
(-40, 25, 0),
(-45, 25, 0),
(-20, -25, 0),
(-15, -25, 0),
(-15, 25, 0),
(-20, 25, 0),
(15, -25, 0),
(20, -25, 0),
(20, 25, 0),
(15, 25, 0),
(40, -25, 0),
(45, -25, 0),
(45, 25, 0),
(40, 25, 0),
(75, -25, 0),
(80, -25, 0),
(80, 25, 0),
(75, 25, 0),
(-88, -25, 0),
(-83, -25, 0),
(-83, 25, 0),
(-88, 25, 0),
(-39, -25, 0),
(-35, -25, 0),
(-35, 25, 0),
(-39, 25, 0),
(-27, -25, 0),
(-22, -25, 0),
(-22, 25, 0),
(-27, 25, 0),
(22, -25, 0),
(27, -25, 0),
(27, 25, 0),
(22, 25, 0),
(35, -25, 0),
(39, -25, 0),
(39, 25, 0),
(35, 25, 0),
(83, -25, 0),
(88, -25, 0),
(88, 25, 0),
(83, 25, 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),
(28, 29, -1, "", 0, 0),
(29, 30, -1, "", 0, 0),
(30, 31, -1, "", 0, 0),
(31, 28, -1, "", 0, 0),
(32, 33, -1, "", 0, 0),
(33, 34, -1, "", 0, 0),
(34, 35, -1, "", 0, 0),
(35, 32, -1, "", 0, 0),
(36, 37, -1, "", 0, 0),
(37, 38, -1, "", 0, 0),
(38, 39, -1, "", 0, 0),
(39, 36, -1, "", 0, 0),
(40, 41, -1, "", 0, 0),
(41, 42, -1, "", 0, 0),
(42, 43, -1, "", 0, 0),
(43, 40, -1, "", 0, 0),
(44, 45, -1, "", 0, 0),
(45, 46, -1, "", 0, 0),
(46, 47, -1, "", 0, 0),
(47, 44, -1, "", 0, 0),
(48, 49, -1, "", 0, 0),
(49, 50, -1, "", 0, 0),
(50, 51, -1, "", 0, 0),
(51, 48, -1, "", 0, 0),
(52, 53, -1, "", 0, 0),
(53, 54, -1, "", 0, 0),
(54, 55, -1, "", 0, 0),
(55, 52, -1, "", 0, 0),
(56, 57, -1, "", 0, 0),
(57, 58, -1, "", 0, 0),
(58, 59, -1, "", 0, 0),
(59, 56, -1, "", 0, 0),
(60, 61, -1, "", 0, 0),
(61, 62, -1, "", 0, 0),
(62, 63, -1, "", 0, 0),
(63, 60, -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 | 187 | 187 | Воздух |
| 1 | 0 | 50 | Линейная сталь |
| 2 | -77,5 | 0 | Обмоточная область |
| 3 | -42,5 | 0 | Обмоточная область |
| 4 | -17,5 | 0 | Обмоточная область |
| 5 | 17,5 | 0 | Обмоточная область |
| 6 | 42,5 | 0 | Обмоточная область |
| 7 | 77,5 | 0 | Обмоточная область |
| 8 | -85,5 | 0 | Обмоточная область |
| 9 | -37 | 0 | Обмоточная область |
| 10 | -24,5 | 0 | Обмоточная область |
| 11 | 24,5 | 0 | Обмоточная область |
| 12 | 37 | 0 | Обмоточная область |
| 13 | 85,5 | 0 | Обмоточная область |
| 14 | -30 | 35 | Воздух |
| 15 | 30 | 35 | Воздух |
Сохранённое состояние этапа
Модель после шага 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(0, 0), 1)
mi_addcircprop("Первичная фаза С", complex(0, 0), 1)
mi_addcircprop("Вторичная фаза А", complex(1, 0), 1)
mi_addcircprop("Вторичная фаза В", complex(0, 0), 1)
mi_addcircprop("Вторичная фаза С", complex(0, 0), 1)
mi_addboundprop("Нулевой потенциал", 0, 0, 0, 0, 0, 0, complex(0, 0), complex(0, 0), 0, 0, 0)
# Координаты сохранены с исходной точностью; единицы — миллиметры.
_nodes = [
(-220, -220, 0),
(220, -220, 0),
(220, 220, 0),
(-220, 220, 0),
(-70, -60, 0),
(70, -60, 0),
(70, 60, 0),
(-70, 60, 0),
(-50, -40, 0),
(-10, -40, 0),
(-10, 40, 0),
(-50, 40, 0),
(10, -40, 0),
(50, -40, 0),
(50, 40, 0),
(10, 40, 0),
(-80, -25, 0),
(-75, -25, 0),
(-75, 25, 0),
(-80, 25, 0),
(-45, -25, 0),
(-40, -25, 0),
(-40, 25, 0),
(-45, 25, 0),
(-20, -25, 0),
(-15, -25, 0),
(-15, 25, 0),
(-20, 25, 0),
(15, -25, 0),
(20, -25, 0),
(20, 25, 0),
(15, 25, 0),
(40, -25, 0),
(45, -25, 0),
(45, 25, 0),
(40, 25, 0),
(75, -25, 0),
(80, -25, 0),
(80, 25, 0),
(75, 25, 0),
(-88, -25, 0),
(-83, -25, 0),
(-83, 25, 0),
(-88, 25, 0),
(-39, -25, 0),
(-35, -25, 0),
(-35, 25, 0),
(-39, 25, 0),
(-27, -25, 0),
(-22, -25, 0),
(-22, 25, 0),
(-27, 25, 0),
(22, -25, 0),
(27, -25, 0),
(27, 25, 0),
(22, 25, 0),
(35, -25, 0),
(39, -25, 0),
(39, 25, 0),
(35, 25, 0),
(83, -25, 0),
(88, -25, 0),
(88, 25, 0),
(83, 25, 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),
(28, 29, -1, "", 0, 0),
(29, 30, -1, "", 0, 0),
(30, 31, -1, "", 0, 0),
(31, 28, -1, "", 0, 0),
(32, 33, -1, "", 0, 0),
(33, 34, -1, "", 0, 0),
(34, 35, -1, "", 0, 0),
(35, 32, -1, "", 0, 0),
(36, 37, -1, "", 0, 0),
(37, 38, -1, "", 0, 0),
(38, 39, -1, "", 0, 0),
(39, 36, -1, "", 0, 0),
(40, 41, -1, "", 0, 0),
(41, 42, -1, "", 0, 0),
(42, 43, -1, "", 0, 0),
(43, 40, -1, "", 0, 0),
(44, 45, -1, "", 0, 0),
(45, 46, -1, "", 0, 0),
(46, 47, -1, "", 0, 0),
(47, 44, -1, "", 0, 0),
(48, 49, -1, "", 0, 0),
(49, 50, -1, "", 0, 0),
(50, 51, -1, "", 0, 0),
(51, 48, -1, "", 0, 0),
(52, 53, -1, "", 0, 0),
(53, 54, -1, "", 0, 0),
(54, 55, -1, "", 0, 0),
(55, 52, -1, "", 0, 0),
(56, 57, -1, "", 0, 0),
(57, 58, -1, "", 0, 0),
(58, 59, -1, "", 0, 0),
(59, 56, -1, "", 0, 0),
(60, 61, -1, "", 0, 0),
(61, 62, -1, "", 0, 0),
(62, 63, -1, "", 0, 0),
(63, 60, -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 = [
(187, 187, "", 0, "", 0, 0, 1),
(0, 50, "", 0, "", 0, 0, 1),
(-77.5, 0, "", 0, "", 0, 0, 1),
(-42.5, 0, "", 0, "", 0, 0, 1),
(-17.5, 0, "", 0, "", 0, 0, 1),
(17.5, 0, "", 0, "", 0, 0, 1),
(42.5, 0, "", 0, "", 0, 0, 1),
(77.5, 0, "", 0, "", 0, 0, 1),
(-85.5, 0, "", 0, "", 0, 0, 1),
(-37, 0, "", 0, "", 0, 0, 1),
(-24.5, 0, "", 0, "", 0, 0, 1),
(24.5, 0, "", 0, "", 0, 0, 1),
(37, 0, "", 0, "", 0, 0, 1),
(85.5, 0, "", 0, "", 0, 0, 1),
(-30, 35, "", 0, "", 0, 0, 1),
(30, 35, "", 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 | 187 | 187 | Воздух | Нет | 1 | 0^\circ | 0 |
| 1 | 0 | 50 | Линейная сталь | Нет | 1 | 0^\circ | 0 |
| 2 | -77,5 | 0 | Обмоточная область | Первичная фаза А | 200 | 0^\circ | 0 |
| 3 | -42,5 | 0 | Обмоточная область | Первичная фаза А | -200 | 0^\circ | 0 |
| 4 | -17,5 | 0 | Обмоточная область | Первичная фаза В | 200 | 0^\circ | 0 |
| 5 | 17,5 | 0 | Обмоточная область | Первичная фаза В | -200 | 0^\circ | 0 |
| 6 | 42,5 | 0 | Обмоточная область | Первичная фаза С | 200 | 0^\circ | 0 |
| 7 | 77,5 | 0 | Обмоточная область | Первичная фаза С | -200 | 0^\circ | 0 |
| 8 | -85,5 | 0 | Обмоточная область | Вторичная фаза А | 100 | 0^\circ | 0 |
| 9 | -37 | 0 | Обмоточная область | Вторичная фаза А | -100 | 0^\circ | 0 |
| 10 | -24,5 | 0 | Обмоточная область | Вторичная фаза В | 100 | 0^\circ | 0 |
| 11 | 24,5 | 0 | Обмоточная область | Вторичная фаза В | -100 | 0^\circ | 0 |
| 12 | 37 | 0 | Обмоточная область | Вторичная фаза С | 100 | 0^\circ | 0 |
| 13 | 85,5 | 0 | Обмоточная область | Вторичная фаза С | -100 | 0^\circ | 0 |
| 14 | -30 | 35 | Воздух | Нет | 1 | 0^\circ | 0 |
| 15 | 30 | 35 | Воздух | Нет | 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(0, 0), 1)
mi_addcircprop("Первичная фаза С", complex(0, 0), 1)
mi_addcircprop("Вторичная фаза А", complex(1, 0), 1)
mi_addcircprop("Вторичная фаза В", complex(0, 0), 1)
mi_addcircprop("Вторичная фаза С", complex(0, 0), 1)
mi_addboundprop("Нулевой потенциал", 0, 0, 0, 0, 0, 0, complex(0, 0), complex(0, 0), 0, 0, 0)
# Координаты сохранены с исходной точностью; единицы — миллиметры.
_nodes = [
(-220, -220, 0),
(220, -220, 0),
(220, 220, 0),
(-220, 220, 0),
(-70, -60, 0),
(70, -60, 0),
(70, 60, 0),
(-70, 60, 0),
(-50, -40, 0),
(-10, -40, 0),
(-10, 40, 0),
(-50, 40, 0),
(10, -40, 0),
(50, -40, 0),
(50, 40, 0),
(10, 40, 0),
(-80, -25, 0),
(-75, -25, 0),
(-75, 25, 0),
(-80, 25, 0),
(-45, -25, 0),
(-40, -25, 0),
(-40, 25, 0),
(-45, 25, 0),
(-20, -25, 0),
(-15, -25, 0),
(-15, 25, 0),
(-20, 25, 0),
(15, -25, 0),
(20, -25, 0),
(20, 25, 0),
(15, 25, 0),
(40, -25, 0),
(45, -25, 0),
(45, 25, 0),
(40, 25, 0),
(75, -25, 0),
(80, -25, 0),
(80, 25, 0),
(75, 25, 0),
(-88, -25, 0),
(-83, -25, 0),
(-83, 25, 0),
(-88, 25, 0),
(-39, -25, 0),
(-35, -25, 0),
(-35, 25, 0),
(-39, 25, 0),
(-27, -25, 0),
(-22, -25, 0),
(-22, 25, 0),
(-27, 25, 0),
(22, -25, 0),
(27, -25, 0),
(27, 25, 0),
(22, 25, 0),
(35, -25, 0),
(39, -25, 0),
(39, 25, 0),
(35, 25, 0),
(83, -25, 0),
(88, -25, 0),
(88, 25, 0),
(83, 25, 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),
(28, 29, -1, "", 0, 0),
(29, 30, -1, "", 0, 0),
(30, 31, -1, "", 0, 0),
(31, 28, -1, "", 0, 0),
(32, 33, -1, "", 0, 0),
(33, 34, -1, "", 0, 0),
(34, 35, -1, "", 0, 0),
(35, 32, -1, "", 0, 0),
(36, 37, -1, "", 0, 0),
(37, 38, -1, "", 0, 0),
(38, 39, -1, "", 0, 0),
(39, 36, -1, "", 0, 0),
(40, 41, -1, "", 0, 0),
(41, 42, -1, "", 0, 0),
(42, 43, -1, "", 0, 0),
(43, 40, -1, "", 0, 0),
(44, 45, -1, "", 0, 0),
(45, 46, -1, "", 0, 0),
(46, 47, -1, "", 0, 0),
(47, 44, -1, "", 0, 0),
(48, 49, -1, "", 0, 0),
(49, 50, -1, "", 0, 0),
(50, 51, -1, "", 0, 0),
(51, 48, -1, "", 0, 0),
(52, 53, -1, "", 0, 0),
(53, 54, -1, "", 0, 0),
(54, 55, -1, "", 0, 0),
(55, 52, -1, "", 0, 0),
(56, 57, -1, "", 0, 0),
(57, 58, -1, "", 0, 0),
(58, 59, -1, "", 0, 0),
(59, 56, -1, "", 0, 0),
(60, 61, -1, "", 0, 0),
(61, 62, -1, "", 0, 0),
(62, 63, -1, "", 0, 0),
(63, 60, -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 = [
(187, 187, "Воздух", 0, "", 0, 0, 1),
(0, 50, "Линейная сталь", 0, "", 0, 0, 1),
(-77.5, 0, "Обмоточная область", 0, "Первичная фаза А", 0, 0, 200),
(-42.5, 0, "Обмоточная область", 0, "Первичная фаза А", 0, 0, -200),
(-17.5, 0, "Обмоточная область", 0, "Первичная фаза В", 0, 0, 200),
(17.5, 0, "Обмоточная область", 0, "Первичная фаза В", 0, 0, -200),
(42.5, 0, "Обмоточная область", 0, "Первичная фаза С", 0, 0, 200),
(77.5, 0, "Обмоточная область", 0, "Первичная фаза С", 0, 0, -200),
(-85.5, 0, "Обмоточная область", 0, "Вторичная фаза А", 0, 0, 100),
(-37, 0, "Обмоточная область", 0, "Вторичная фаза А", 0, 0, -100),
(-24.5, 0, "Обмоточная область", 0, "Вторичная фаза В", 0, 0, 100),
(24.5, 0, "Обмоточная область", 0, "Вторичная фаза В", 0, 0, -100),
(37, 0, "Обмоточная область", 0, "Вторичная фаза С", 0, 0, 100),
(85.5, 0, "Обмоточная область", 0, "Вторичная фаза С", 0, 0, -100),
(-30, 35, "Воздух", 0, "", 0, 0, 1),
(30, 35, "Воздух", 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 | Воздух | 11 | заданный |
| 1 | Линейная сталь | 2 | заданный |
| 2 | Обмоточная область | 2 | заданный |
| 3 | Обмоточная область | 2 | заданный |
| 4 | Обмоточная область | 2 | заданный |
| 5 | Обмоточная область | 2 | заданный |
| 6 | Обмоточная область | 2 | заданный |
| 7 | Обмоточная область | 2 | заданный |
| 8 | Обмоточная область | 2 | заданный |
| 9 | Обмоточная область | 2 | заданный |
| 10 | Обмоточная область | 2 | заданный |
| 11 | Обмоточная область | 2 | заданный |
| 12 | Обмоточная область | 2 | заданный |
| 13 | Обмоточная область | 2 | заданный |
| 14 | Воздух | 2 | заданный |
| 15 | Воздух | 2 | заданный |
Широкую таблицу можно прокрутить по горизонтали.
| № отрезка | Максимальная длина, мм | Режим |
|---|---|---|
| 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 | автоматический |
| 28 | -1 | автоматический |
| 29 | -1 | автоматический |
| 30 | -1 | автоматический |
| 31 | -1 | автоматический |
| 32 | -1 | автоматический |
| 33 | -1 | автоматический |
| 34 | -1 | автоматический |
| 35 | -1 | автоматический |
| 36 | -1 | автоматический |
| 37 | -1 | автоматический |
| 38 | -1 | автоматический |
| 39 | -1 | автоматический |
| 40 | -1 | автоматический |
| 41 | -1 | автоматический |
| 42 | -1 | автоматический |
| 43 | -1 | автоматический |
| 44 | -1 | автоматический |
| 45 | -1 | автоматический |
| 46 | -1 | автоматический |
| 47 | -1 | автоматический |
| 48 | -1 | автоматический |
| 49 | -1 | автоматический |
| 50 | -1 | автоматический |
| 51 | -1 | автоматический |
| 52 | -1 | автоматический |
| 53 | -1 | автоматический |
| 54 | -1 | автоматический |
| 55 | -1 | автоматический |
| 56 | -1 | автоматический |
| 57 | -1 | автоматический |
| 58 | -1 | автоматический |
| 59 | -1 | автоматический |
| 60 | -1 | автоматический |
| 61 | -1 | автоматический |
| 62 | -1 | автоматический |
| 63 | -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(0, 0), 1)
mi_addcircprop("Первичная фаза С", complex(0, 0), 1)
mi_addcircprop("Вторичная фаза А", complex(1, 0), 1)
mi_addcircprop("Вторичная фаза В", complex(0, 0), 1)
mi_addcircprop("Вторичная фаза С", complex(0, 0), 1)
mi_addboundprop("Нулевой потенциал", 0, 0, 0, 0, 0, 0, complex(0, 0), complex(0, 0), 0, 0, 0)
# Координаты сохранены с исходной точностью; единицы — миллиметры.
_nodes = [
(-220, -220, 0),
(220, -220, 0),
(220, 220, 0),
(-220, 220, 0),
(-70, -60, 0),
(70, -60, 0),
(70, 60, 0),
(-70, 60, 0),
(-50, -40, 0),
(-10, -40, 0),
(-10, 40, 0),
(-50, 40, 0),
(10, -40, 0),
(50, -40, 0),
(50, 40, 0),
(10, 40, 0),
(-80, -25, 0),
(-75, -25, 0),
(-75, 25, 0),
(-80, 25, 0),
(-45, -25, 0),
(-40, -25, 0),
(-40, 25, 0),
(-45, 25, 0),
(-20, -25, 0),
(-15, -25, 0),
(-15, 25, 0),
(-20, 25, 0),
(15, -25, 0),
(20, -25, 0),
(20, 25, 0),
(15, 25, 0),
(40, -25, 0),
(45, -25, 0),
(45, 25, 0),
(40, 25, 0),
(75, -25, 0),
(80, -25, 0),
(80, 25, 0),
(75, 25, 0),
(-88, -25, 0),
(-83, -25, 0),
(-83, 25, 0),
(-88, 25, 0),
(-39, -25, 0),
(-35, -25, 0),
(-35, 25, 0),
(-39, 25, 0),
(-27, -25, 0),
(-22, -25, 0),
(-22, 25, 0),
(-27, 25, 0),
(22, -25, 0),
(27, -25, 0),
(27, 25, 0),
(22, 25, 0),
(35, -25, 0),
(39, -25, 0),
(39, 25, 0),
(35, 25, 0),
(83, -25, 0),
(88, -25, 0),
(88, 25, 0),
(83, 25, 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),
(28, 29, -1, "", 0, 0),
(29, 30, -1, "", 0, 0),
(30, 31, -1, "", 0, 0),
(31, 28, -1, "", 0, 0),
(32, 33, -1, "", 0, 0),
(33, 34, -1, "", 0, 0),
(34, 35, -1, "", 0, 0),
(35, 32, -1, "", 0, 0),
(36, 37, -1, "", 0, 0),
(37, 38, -1, "", 0, 0),
(38, 39, -1, "", 0, 0),
(39, 36, -1, "", 0, 0),
(40, 41, -1, "", 0, 0),
(41, 42, -1, "", 0, 0),
(42, 43, -1, "", 0, 0),
(43, 40, -1, "", 0, 0),
(44, 45, -1, "", 0, 0),
(45, 46, -1, "", 0, 0),
(46, 47, -1, "", 0, 0),
(47, 44, -1, "", 0, 0),
(48, 49, -1, "", 0, 0),
(49, 50, -1, "", 0, 0),
(50, 51, -1, "", 0, 0),
(51, 48, -1, "", 0, 0),
(52, 53, -1, "", 0, 0),
(53, 54, -1, "", 0, 0),
(54, 55, -1, "", 0, 0),
(55, 52, -1, "", 0, 0),
(56, 57, -1, "", 0, 0),
(57, 58, -1, "", 0, 0),
(58, 59, -1, "", 0, 0),
(59, 56, -1, "", 0, 0),
(60, 61, -1, "", 0, 0),
(61, 62, -1, "", 0, 0),
(62, 63, -1, "", 0, 0),
(63, 60, -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 = [
(187, 187, "Воздух", 11, "", 0, 0, 1),
(0, 50, "Линейная сталь", 2, "", 0, 0, 1),
(-77.5, 0, "Обмоточная область", 2, "Первичная фаза А", 0, 0, 200),
(-42.5, 0, "Обмоточная область", 2, "Первичная фаза А", 0, 0, -200),
(-17.5, 0, "Обмоточная область", 2, "Первичная фаза В", 0, 0, 200),
(17.5, 0, "Обмоточная область", 2, "Первичная фаза В", 0, 0, -200),
(42.5, 0, "Обмоточная область", 2, "Первичная фаза С", 0, 0, 200),
(77.5, 0, "Обмоточная область", 2, "Первичная фаза С", 0, 0, -200),
(-85.5, 0, "Обмоточная область", 2, "Вторичная фаза А", 0, 0, 100),
(-37, 0, "Обмоточная область", 2, "Вторичная фаза А", 0, 0, -100),
(-24.5, 0, "Обмоточная область", 2, "Вторичная фаза В", 0, 0, 100),
(24.5, 0, "Обмоточная область", 2, "Вторичная фаза В", 0, 0, -100),
(37, 0, "Обмоточная область", 2, "Вторичная фаза С", 0, 0, 100),
(85.5, 0, "Обмоточная область", 2, "Вторичная фаза С", 0, 0, -100),
(-30, 35, "Воздух", 2, "", 0, 0, 1),
(30, 35, "Воздух", 2, "", 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 | Воздух | 11 | заданный |
| 1 | Линейная сталь | 2 | заданный |
| 2 | Обмоточная область | 2 | заданный |
| 3 | Обмоточная область | 2 | заданный |
| 4 | Обмоточная область | 2 | заданный |
| 5 | Обмоточная область | 2 | заданный |
| 6 | Обмоточная область | 2 | заданный |
| 7 | Обмоточная область | 2 | заданный |
| 8 | Обмоточная область | 2 | заданный |
| 9 | Обмоточная область | 2 | заданный |
| 10 | Обмоточная область | 2 | заданный |
| 11 | Обмоточная область | 2 | заданный |
| 12 | Обмоточная область | 2 | заданный |
| 13 | Обмоточная область | 2 | заданный |
| 14 | Воздух | 2 | заданный |
| 15 | Воздух | 2 | заданный |
Сохранённое состояние этапа
Полная модель шага 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 и сравните значения.
Широкую таблицу можно прокрутить по горизонтали.
| Цепь | Комплексная амплитуда тока, А | Комплексная амплитуда полевого напряжения, В | Комплексная амплитуда потокосцепления, Вб |
|---|---|---|---|
| Первичная фаза А | 0 | 0 + j\cdot (24{,}54) | 0,07812 |
| Вторичная фаза В | 0 | 0 + j\cdot (-8{,}566) | -0,02727 |
| Первичная фаза С | 0 | 0 + j\cdot (-7{,}248) | -0,02307 |
| Первичная фаза В | 0 | 0 + j\cdot (-17{,}12) | -0,05448 |
| Вторичная фаза А | 1 | 0 + j\cdot (12{,}28) | 0,0391 |
| Вторичная фаза С | 0 | 0 + j\cdot (-3{,}627) | -0,01154 |
| Величина | Значение |
|---|---|
| Средняя энергия, Дж | 0,009774 |
| Средняя коэнергия, Дж | 0,009774 |
Сохранённое состояние этапа
Полная модель шага 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("Первичная фаза В"))
print("Первичная фаза С: I, U поля, потокосцепление", mo_getcircuitproperties("Первичная фаза С"))
print("Вторичная фаза А: I, U поля, потокосцепление", mo_getcircuitproperties("Вторичная фаза А"))
print("Вторичная фаза В: I, U поля, потокосцепление", mo_getcircuitproperties("Вторичная фаза В"))
print("Вторичная фаза С: I, U поля, потокосцепление", mo_getcircuitproperties("Вторичная фаза С"))
# Энергия вычисляется по всем областям эталона.
mo_groupselectblock()
print('Энергия, Дж:', mo_blockintegral(2))
mo_clearblock()
