Если одно из понятий незнакомо, вернитесь к предыдущему занятию и воспроизведите его численный пример. После этого переходите к новой постановке.
Место занятия в инженерной методике
Расчётная лабораторная работа · Согласование комплексного отклика и средней мощности
Инженерный вопрос. Согласуются ли комплексная мощность и принятая нормировка?
Эти действия входят в подготовку расчёта любого устройства: они устанавливают связь источника, геометрии и наблюдаемой величины. Их результат позволяет выбрать допустимую постановку и способ извлечения будущей характеристики.
Последовательность решения, отчёт и критерии результата
Результат получают из наблюдаемых величин и проверяют в условиях данного практикума.
Последовательность решения
Обосновать постановку и способ измерения. Зафиксируйте частоту, фазовый нуль и амплитудную либо действующую нормировку; отдельно запишите действительную и мнимую части уравнения.
Комплексная мощность без внешних библиотек. Выполните действия практикума по его исходной таблице. Сохраните комплексные напряжение, ток и вычисленные активную и реактивную мощности.
Ответить на вопрос по своим результатам. Проверьте действительную и мнимую части отдельно, затем фазу и мощность; явно сохраните амплитудную либо действующую нормировку.
Что включить в отчёт
Результат этого занятия. Расчёт с проверкой сопряжения, фазы и амплитудной нормировки.
Данные именно этого опыта. Сохраните комплексные напряжение, ток и вычисленные активную и реактивную мощности.
Оформление наблюдений. Частота, \operatorname{Re} и \operatorname{Im} входных и выходных величин, единицы, нормировка и средняя мощность; модуль без фазы недостаточен.
Как обосновать результат
Проверка из практикума. Остаток линейной системы близок к машинной точности; P в пассивном сопротивлении неотрицательна.
Независимый контроль. Сопоставьте комплексное уравнение целиком, отдельно баланс активной мощности и допустимый низкочастотный или постоянный предел.
Точность и расхождения. Используйте модуль комплексной разности, а не разность модулей. Для исчезающей компоненты приводите абсолютное расхождение и фиксированный физический масштаб.
Основание сравнения. Опора — комплексные уравнения и определение средней мощности из занятия. Не смешивайте амплитудные и действующие значения и не заменяйте комплексную невязку одной разностью модулей.
Вывод для устройства
Объясните, как фазовый отклик влияет на параметр цепи, реактивную составляющую или потери в исследуемом режиме.
Границы вывода. Простой эталон проверяет конкретное действие или физический закон; перенос на устройство требует заново согласовать геометрию, материалы, режим и объёмный множитель.
Теория и вывод формул
Комплексная арифметика и решение систем уравнений составляют основу автоматизации гармонических расчётов. Возможности встроенного пакета numpy рассматриваются на примерах с независимо проверяемыми результатами.
Соглашения об обозначениях и единицах
\(i(t)\), \(u(t)\) — мгновенные значения; \(\widehat I\), \(\widehat U\) — комплексные амплитуды; \(\underline I_{\text{д}}\), \(\underline U_{\text{д}}\) — комплексные действующие значения. Для синусоиды \(\widehat I=\sqrt{2}\,\underline I_{\text{д}}\); действующее значение тока равно \(|\underline I_{\text{д}}|\). Нормировка обязательно учитывается в формулах мощности.
\(\Phi=\int_S\mathbf B\cdot\mathrm d\mathbf S\) — поток через ориентированную поверхность; \(\Psi=\sum_k\oint_{C_k}\mathbf A\cdot\mathrm d\mathbf l\) — потокосцепление последовательных витков с согласованными замкнутыми контурами. Только при одинаковом сцепленном потоке каждого витка \(\Psi=N\Phi\). Обе величины измеряются в веберах: число витков безразмерно. Запись «Вб·виток» подчёркивает суммирование.
\(\theta_{\text{м}}\), \(\Omega\) (также \(\omega_{\text{мех}}\)) — механические угол и угловая скорость. Для основной гармоники \(\theta_{\text{э}}=p\theta_{\text{м}}\), \(\omega_{\text{э}}=p\Omega\), где \(p\) — число пар полюсов. Геометрический период зубцов задаётся отдельно. В производных по углу используйте радианы.
Статическая индуктивность \(L_{\text{ст}}=\Psi/i\) — наклон секущей из начала координат; это определение используется при \(\Psi(0)=0\) и \(i\ne0\). Динамическая индуктивность \(L_{\text{дин}}=\partial\Psi/\partial i\) — наклон касательной (дифференциальная, инкрементальная); положение и остальные токи фиксированы. Для линейной характеристики без смещения обе равны одной индуктивности \(L\). При постоянных магнитах и взаимном возбуждении сначала учитывают ненулевое смещение потокосцепления.
Положительные направления, оси и специальные индексы определяются в конкретной задаче. Единицу берите из условия или заголовка таблицы; перед подстановкой в формулу СИ переводите миллиметры в метры, миллигенри в генри и градусы в радианы.
Численные результаты обычно показаны с четырьмя значащими цифрами; для сравнения близких значений в таблицах сходимости сохранено больше цифр. Полные значения остаются в исходных расчётных данных. Малые остатки вычисления координат на осях показаны как ноль; малые физические величины сохраняются в показательной записи.
При установившемся гармоническом режиме физическая величина восстанавливается как действительная часть комплексной амплитуды, умноженной на \exp(j\omega t). Комплексное число хранит амплитуду и фазу, а не два независимых режима. Модуль определяет амплитуду, аргумент — фазовый сдвиг. Для синусоиды действующее значение равно амплитуде, делённой на корень из двух.
В проверенной сборке FEMM 5.0 от 6 октября 2026 года import numpy as np подключает встроенную реализацию на основе ulab с дополнениями FEMM. Подтверждены комплексное решение малой линейной системы и БПФ. Это подмножество обычного NumPy; нельзя переносить произвольную программу, предполагая все его функции. Для обучения достаточно math, cmath, списков и проверенных функций numpy.linalg.solve, numpy.fft.fft. Вначале решите малый известный эталон, только затем включайте этот же алгоритм в полевой проход.
Амплитудная нормировка: множитель 1/2 обязателен. Звёздочка означает комплексное сопряжение.
Порядок проверки результата
Численный пример ниже является аналитическим учебным эталоном. Его значения вычислены по указанным формулам; они не обозначают результат решения новой модели методом конечных элементов. Практикум связывает эталон с полевой задачей: сначала воспроизведите уже проверенный результат базового раздела, затем измените только один исследуемый параметр. Именно такое сравнение позволяет отделить ошибку программы от влияния геометрии, сетки и физического приближения. Сохраните исходную модель, рабочую копию и таблицу с заголовками величин. В подписи каждой величины укажите единицу, положительное направление и способ получения; для гармонических величин дополнительно укажите амплитудную нормировку. Если условие задачи не выполнено, остановите серию и сохраните причину отказа вместе с последним корректным состоянием.
Пояснение программы
Запись 3+4j задаёт комплексное сопротивление; суффикс j обозначает мнимую единицу. Метод conjugate возвращает комплексно сопряжённый ток. Коэффициент 0,5 в формуле мощности относится к амплитудным значениям напряжения и тока. В отдельном примере np.linalg.solve решает систему двух линейных уравнений. Результат проверяют подстановкой в исходную систему: успешное выполнение команды само по себе не подтверждает правильность её составления.
Комплексная арифметика и сохранение фазы
Программа использует комплексные амплитуды с положительным временным показателем. Действительная и мнимая части несут информацию о фазе.
Составьте комплексное сопротивление из активной и индуктивной частей. Делите комплексное напряжение на весь комплексный знаменатель.
Модуль тока вычисляйте после деления. Отдельное деление действительных частей или модулей теряет фазовый угол и не решает уравнение цепи.
Мощность проверяется сопряжением тока; для амплитуд обязателен множитель одной второй.
Границы применимости. Соглашение о времени определяет знак мнимой реактивности. Перевод единиц и нормировку выполняйте один раз на входе, а не скрыто внутри отдельных формул.
Пояснения к официальному руководству
Подробности, которые следует учитывать при настройке и проверке модели. Все учебные пояснения.
MicroPython, поиск модулей и библиотечные ограничения
Встроенный интерпретатор FEMM 5 основан на MicroPython. Совпадение имени numpy или scipy с пакетом настольного Python не гарантирует совпадения всего API. Сценарий может использовать числовые и комплексные данные, строки %, str.format и f-строки; FEMM дополнительно разрешает форматировать комплексное число через %g, %e и %f.
Поиск пользовательского модуля начинается с текущего каталога, затем проходит python рядом с исполняемыми файлами и личный каталог FEMM/python. Рабочий каталог автоматически меняется при открытии сценария через интерфейс. Собственные модули храните в личном каталоге с неповторяющимися именами: каталог установки заменяется при обновлении. Переносимые дополнения для встроенного интерпретатора должны быть совместимым чистым Python; расширение CPython на C туда просто скопировать нельзя.
Выберите строку своей операционной системы и создайте личный каталог для собственных модулей. Это третье место в порядке поиска; путь рядом с установленной программой принадлежит поставке FEMM.
Таблица М.Н.1. Личные каталоги модулей Python
Система
Каталог
Windows
%APPDATA%/FEMM/python
macOS
~/Library/Application Support/FEMM/python
Linux, FreeBSD
~/.local/share/FEMM/python; при заданном XDG_DATA_HOME — $XDG_DATA_HOME/FEMM/python
Обратные косые черты Windows здесь заменены прямыми для переносимых строк Python. Личный каталог пользователь создаёт сам.
Общий порядок поиска: текущий рабочий каталог → python рядом с программой → личный python. Не храните свои модули в каталоге поставки: обновление заменяет его содержимое.
Случайные числа в начале работы получают начальное состояние по часам. При сравнении параметрических серий задавайте random.seed. Для времени различайте локальные localtime/mktime и UTC gmtime; time.time использует эпоху 1970 и дробные секунды. time.sleep оставляет интерфейс отзывчивым.
Регулярные выражения в актуальном перечне руководства включают split, findall, finditer, sub, subn, fullmatch и escape, но не поддерживают флаги re.IGNORECASE и подобные, просмотр вперёд/назад и именованные группы. datetime не содержит базы часовых поясов; применяйте фиксированное смещение и strftime. Формат даты внутри f-строки и локализованные названия месяцев/дней не гарантируются.
В PDF сохранены противоречивые старые абзацы: стр.92 описывает csv и re.split, а стр.94–95 отрицает их наличие. Проверка установленной сборки 16.10.2026 подтвердила csv.reader(["a,b"]) и re.split(",", "a,b"). Это малая проверка этих вызовов, а не полная проверка библиотек; для другой поставки сохраните собственный результат вместе с версией.
Таблица Р.39.1. MicroPython, поиск модулей и библиотечные ограничения
Платформа
Личный каталог модулей
Windows
%APPDATA%/FEMM/python
macOS
~/Library/Application Support/FEMM/python
Linux, FreeBSD
~/.local/share/FEMM/python; при заданном XDG_DATA_HOME — $XDG_DATA_HOME/FEMM/python
Таблица Р.39.2. MicroPython, поиск модулей и библиотечные ограничения
Документированные группы модулей
Что проверять при использовании
numpy, scipy (ulab); math, cmath
Массивы, линейная алгебра, действительная и комплексная математика
os, os.path, sys, time, datetime
Пути, окружение сценария, время и ограничения календарных форматов
json, re, csv
Сериализация и синтаксис; учитывать отмеченное противоречие PDF
random, binascii, hashlib, base64
Воспроизводимость seed, кодирование, SHA-256
glob, shutil, tempfile
Поиск и операции с файлами; glob возвращает несортированный список
Предопределённые имена разрешены и в сценарии, и в числовых полях интерфейса, которые вычисляются Python. Их значение — числовой множитель, переводящий указанную единицу в СИ соответствующей величины. Это не система автоматического контроля размерностей: выражение с правильным синтаксисом может задавать физически неверную единицу аргумента.
Это числовые значения предопределённых имён программы, которые можно вводить и в поля интерфейса. Они позволяют явно задавать размерные выражения.
Обозначения и единицы
uo, muo — имена \mu_0, Гн/м; eo — имя \varepsilon_0, Ф/м; pi, Pi, PI — безразмерное число \pi.
Условия применения. Используются внутренние константы рассматриваемой версии FEMM; точность измеренных свойств материала определяется отдельно.
Ненумерованное соотношение из текста руководства; обозначения и условия раскрыты для курса.
Особенно важно отделить длину в метрах от координат документа. mm равен 0.001 метра. При units="millimeters" координата узла 10 задаёт 10 мм, а 10mm передаст числовое значение 0.01 и задаст только 0.01 мм. Для геометрии в миллиметрах используйте x_{\mathrm{mm}}; для геометрии в метрах — x_{\mathrm{mm}}mm. Названия единиц в probdef и множители единиц в выражениях решают разные задачи.
Запись 1000*Oersted в поле напряжённости переводит исходное значение в А/м. Пересчёт единиц нужен до задания материала или сравнения с измерениями.
Обозначения и единицы
Oe — эрстед; H — напряжённость поля, А/м в системе СИ.
Условия применения. Имя единицы является числовым множителем в SI-нормировке ожидаемого поля.
Руководство приводит численное равенство 1000*Oersted = 79577.47; промежуточный коэффициент раскрыт для проверки.
Названия единиц допускают заглавную букву и множественное число; пример руководства — inch, inches, Inch, Inches. Для учебного сценария лучше выбрать одно стабильное написание. AWG(n) возвращает диаметр в миллиметрах; результат нужно перевести, если геометрия задана в другой единице.
Числа \mu _{0} и \varepsilon _{0} в таблице — именно значения предопределённых имён документации FEMM, а не заявление о метрологической точности фундаментальных констант. Не заменяйте числовые свойства магнитного материала этими константами: mu_x/mu_y задают относительную проницаемость.
Таблица Р.41.1. Встроенные константы и безопасный пересчёт единиц
Имена
Множитель / единица результата
pi, Pi, PI
\pi
uo, muo
4\pi \cdot 10^{-7} Гн/м
eo
8,854·10⁻¹² Ф/м
meter, inch, cm, mm, um (micron), mil
1; 0.0254; 0.01; 0.001; 10⁻⁶; 25.4·10⁻⁶ м
Tesla, mTesla, Gauss, kGauss
1; 10⁻³; 10⁻⁴; 0.1 Тл
AmpMeter, kAmpMeter, Oersted, kOersted
1; 1000; 1000/(4\pi ); 10^{6}/(4\pi ) А/м
AWG(n)
Диаметр провода, мм
Проверьте на своей модели
Вычислите координату 10 мм для документов в millimeters и meters и сравните реальные размеры.
Пересчитайте 1000 Oersted в А/м и 1 kGauss в Тл.
Подпишите, в каких единицах возвращается AWG и вводится WireD.
При импорте matplotlib, xlsxwriter, zipfile или pandas FEMM обращается к отдельному CPython-процессу на этой же машине. FEMM не устанавливает эти библиотеки автоматически. Для интерактивного графика руководство задаёт CPython не ниже 3.9, matplotlib и оконный backend; Tk достаточен, Qt через PyQt6/PySide6 необязателен. Без графического backend неграфические библиотеки моста могут работать.
Интерпретатор выбирается автоматически либо задаётся через Edit → Scripting Preferences и pybridge.set_interpreter; эта настройка сохраняется. FEMMQT_PYTHON задаёт выбор на один запуск. Ошибка BridgeError перечисляет проверенные интерпретаторы, поэтому устанавливать пакет нужно именно в выбранное окружение, а не в произвольный Python из PATH. pybridge.info позволяет включить версии и backend в описание условий построения рисунка.
Числа, строки, массивы и контейнеры этих значений могут передаваться по значению; сложные объекты остаются во внешнем процессе и доступны через proxy. put отправляет массив целиком, fetch возвращает значение в FEMM. DataFrame и его столбец могут оставаться удалёнными; для локального массива используется fetch(column.to_numpy()). Передача массива целиком обычно экономнее тысячи обращений к отдельным элементам.
Открытый файл принадлежит своему процессу: библиотеке внешнего CPython передайте путь либо файл, открытый через pybridge.open. Встроенную Python-функцию нельзя передать внешнему оптимизатору или обработчику графического события как callback. Определите функцию через pybridge.exec на внешней стороне либо оставьте управляющий цикл и вызовы FEMM во встроенном интерпретаторе.
Пространство eval/exec сохраняется между вызовами. restart/shutdown и отмена зависшего вызова клавишей Esc уничтожают внешний процесс и его рисунки; при следующем обращении он может стартовать заново, но прежние переменные и proxy нужно восстановить. Рисунки находятся в отдельных окнах и не встраиваются в окно FEMM. Одновременно допускается один вызов моста.
Таблица Р.47.1. Внешний CPython и граница передачи объектов
Вход в pybridge
Назначение
import_module(name)
Получить удалённый модуль
eval(expr), exec(statements)
Вычислить выражение или исполнить код во внешнем пространстве
put(name,value), fetch(obj)
Передать по имени во внешний процесс / получить значение в FEMM
open(path,mode,...)
Открыть файл во внешнем процессе; newline="" показан для CSV
set_interpreter(path), info()
Выбрать CPython / прочитать сведения окружения
restart(), shutdown()
Сбросить или завершить вспомогательный процесс и его окна
Проверьте на своей модели
Сохраните pybridge.info перед экспортом рисунка.
Передавайте данные таблицы через write_row/write_column или массив, а не вызовом на каждую ячейку.
Объясните, почему путь файла пересылается, а локальный FileIO или функция FEMM — нет.
import numpy и import scipy внутри FEMM выбирают локальную ulab-библиотеку. Это позволяет выполнять численную обработку без передачи каждого вектора между процессами. Руководство перечисляет комплексную линейную алгебру, FFT, полиномы, линейную интерполяцию, свёртку, trapz и ввод/вывод таблиц. Наличие отдельного имени в перечне не гарантирует весь набор аргументов соответствующего CPython API.
Более широкие методы вызываются явно через pybridge.import_module или exec. В пространстве pybridge.eval имя np означает уже внешний NumPy; одинаковая краткая переменная в двух пространствах не указывает на один объект. Сначала закончите локальный расчёт массива, затем передайте его для одной крупной внешней операции.
Когда один шаг оптимизации должен запустить FEMM, удобно оставить цикл во встроенном scipy.optimize.fmin/newton и вызывать решатель из локальной целевой функции. Внешний least_squares не сможет вызвать функцию, определённую внутри FEMM, через мост. Перенос функции во внешний процесс помогает лишь тогда, когда её вычисления могут происходить там без такого обратного вызова.
Таблица Р.48.1. Какие NumPy и SciPy выполняют вычисления
Вычислите эталон сначала встроенными complex и cmath, не используя полевую модель.
Подключите numpy, решите систему из двух уравнений и подставьте найденные значения в исходные уравнения.
Проверьте доступность нужной функции маленьким вызовом. Сохраните номер сборки FEMM рядом с таблицей.
В ранее рассчитанной линейной катушке при гармоническом возбуждении прочитайте амплитудные U и I; сформируйте P и Q по той же формуле.
Повторите вычисление через действующие значения без множителя 1/2 и сравните результат.
Около нулевого тока не вычисляйте Z делением U/I: задайте отдельный порог и сообщите, что отношение не определено.
Ожидаемый результат. Комплексная арифметика и две нормировки мощности дают одинаковый физический результат.
Как проверить. Остаток линейной системы близок к машинной точности; P в пассивном сопротивлении неотрицательна.
Обработка и анализ результатов
Согласуются ли комплексная мощность и принятая нормировка?
Сохраните комплексные напряжение, ток и вычисленные активную и реактивную мощности.
Проверьте действительную и мнимую части отдельно, затем фазу и мощность; явно сохраните амплитудную либо действующую нормировку.
С чем сравнить. Опора — комплексные уравнения и определение средней мощности из занятия. Не смешивайте амплитудные и действующие значения и не заменяйте комплексную невязку одной разностью модулей.
Итог работы. Расчёт с проверкой сопряжения, фазы и амплитудной нормировки.
"""Комплексная мощность и малая система.Среда: встроенный MicroPython FEMM 5.Аналитический учебный пример; полевой решатель не вызывается.Параметры, единицы величин и порядок вывода пояснены по стадиям."""importnumpyasnp# Комплексные напряжение и ток заданы амплитудными значениями.# Мнимая единица в Python обозначается суффиксом j; сопротивление задано в омах.voltage=10+0jimpedance=3+4jcurrent=voltage/impedance# Множитель 1/2 относится к амплитудным значениям.# Сопряжение тока необходимо для вычисления комплексной мощности.power=0.5*voltage*current.conjugate()# Порядок вывода: ток, А; активная мощность, Вт; реактивная мощность, вар.print(current,power.real,power.imag)# Отдельный численный эталон: коэффициенты двух линейных уравнений.# Эта матрица не является полевой моделью катушки.matrix=np.array([[2.0,1.0],[1.0,3.0]])rhs=np.array([5.0,7.0])# Решаем систему с заданной правой частью; проверка выполняется обратной подстановкой.print(np.linalg.solve(matrix,rhs))
Пошаговая настройка расчётного примера
Откройте отдельную страницу с последовательными действиями, точными параметрами, накопительными файлами этапов и программами с русскими комментариями.
Рисунок 12.12. Визуализация численных данных FEMM 5: Воздушная катушка. Это экспорт результатов поля, а не снимок окна программы.
Осесимметричная учебная модель. Независимо проверены изменения сетки и внешнего радиуса; аналитическая модель тонкостенного соленоида служит отдельным приближённым ориентиром.
Ориентиры в интерфейсеРисунок 12.13. Версия FEMM 5 и дата сборки: окно «О программе». Открыть в полном размереРисунок 12.14. Поле воздушной катушки: осесимметричный магнитостатический эталон FEMM 5. Открыть в полном размереРисунок 12.15. Встроенная Python-консоль FEMM 5: решение малой системы и БПФ внутри приложения. Открыть в полном размереРисунок 12.16. Встроенная консоль FEMM: Комплексные числа и численные вычисления во встроенном Python. Аналитическая проверка программы занятия. Показана консоль исходной редакции программы, зафиксированной при съёмке. Текущая программа с русскими пояснениями проверена отдельно во встроенном Python FEMM; этот снимок не является новым запуском текущей редакции. Открыть в полном размере
Самостоятельная работа
Решите систему \begin{pmatrix}2&1\\1&3\end{pmatrix}x=\begin{pmatrix}5\\7\end{pmatrix} встроенным numpy.linalg.solve и вручную; затем замените вторую правую часть на 7 + j.