Если одно из понятий незнакомо, вернитесь к предыдущему занятию и воспроизведите его численный пример. После этого переходите к новой постановке.
Место занятия в инженерной методике
Подготовительный этап методики · Обеспечение воспроизводимости расчётной последовательности
Инженерный вопрос. Совпадают ли результаты функции и ручной таблицы?
Эти действия входят в подготовку расчёта любого устройства: они устанавливают связь источника, геометрии и наблюдаемой величины. Их результат позволяет выбрать допустимую постановку и способ извлечения будущей характеристики.
Последовательность решения, отчёт и критерии результата
Результат этого этапа — проверенная постановка или воспроизводимая процедура перед серией расчётов.
Последовательность решения
Обосновать постановку и способ измерения. Разделите исходный файл, изменённую копию, актуальное решение и последующую обработку; каждая команда должна обращаться к ожидаемому документу.
Таблица линейной катушки как функция Python. Выполните действия практикума по его исходной таблице. Сопоставьте входы и выходы функции для нескольких токов, включая контрольный случай.
Ответить на вопрос по своим результатам. Повторите выбранную строку по сохранённым входам и проверьте связь числа с файлом и режимом; зафиксируйте причину отказа отдельно.
Что включить в отчёт
Результат этого занятия. Проверенная таблица с единицами и объяснением роли аргументов функции.
Данные именно этого опыта. Сопоставьте входы и выходы функции для нескольких токов, включая контрольный случай.
Оформление наблюдений. Версия входа, режим, команды запуска, файл результата и статус; неудачные строки сохраняйте отдельно с причиной отказа.
Как обосновать результат
Проверка из практикума. Проверить все три строки, тип возвращаемых данных и отношение энергий при удвоении тока.
Независимый контроль. Повторите выбранную строку в новой рабочей папке по сохранённым входам; аналитический self-check проверяет арифметику, а решение FEMM — полевую постановку.
Критерий выполнения. Пять правильных строк; имена единиц указаны; нулевой ток обработан без деления; физический смысл каждой колонки объяснён.
Точность и расхождения. Критерий этого этапа — соответствие исходным данным, топологии, назначениям и процедуре повторного открытия. Численный допуск поля здесь не назначают: поле ещё не является защищаемым результатом. Расхождения размеров и параметров фиксируйте с единицами и происхождением.
Основание сравнения. Опора — контрольный пример и протокол воспроизведения этого занятия. Численный self-check программы и фактическое решение FEMM имеют разное происхождение.
Вывод для устройства
Покажите, как другой исполнитель воспроизведёт параметр устройства и обнаружит сбой без ручного восстановления скрытого состояния.
Границы вывода. Простой эталон проверяет конкретное действие или физический закон; перенос на устройство требует заново согласовать геометрию, материалы, режим и объёмный множитель.
Дополнительный расчётный метод
Параметризация и автоматизация серий расчётов
Алгоритмическая последовательность объединяет параметры, свойства, геометрию, группы и серии расчётов. В курсе эти действия выполняются во встроенном Python FEMM 5 с сохранением точных имён API.
Основные конструкции Python изучаются на расчётах катушки при нескольких значениях тока. Переменные, списки и функции получают физическое содержание благодаря явному указанию величин и их единиц.
Соглашения об обозначениях и единицах
\(i(t)\), \(u(t)\) — мгновенные значения; \(\widehat I\), \(\widehat U\) — комплексные амплитуды; \(\underline I_{\text{д}}\), \(\underline U_{\text{д}}\) — комплексные действующие значения. Для синусоиды \(\widehat I=\sqrt{2}\,\underline I_{\text{д}}\); действующее значение тока равно \(|\underline I_{\text{д}}|\). Нормировка обязательно учитывается в формулах мощности.
\(\Phi=\int_S\mathbf B\cdot\mathrm d\mathbf S\) — поток через ориентированную поверхность; \(\Psi=\sum_k\oint_{C_k}\mathbf A\cdot\mathrm d\mathbf l\) — потокосцепление последовательных витков с согласованными замкнутыми контурами. Только при одинаковом сцепленном потоке каждого витка \(\Psi=N\Phi\). Обе величины измеряются в веберах: число витков безразмерно. Запись «Вб·виток» подчёркивает суммирование.
\(\theta_{\text{м}}\), \(\Omega\) (также \(\omega_{\text{мех}}\)) — механические угол и угловая скорость. Для основной гармоники \(\theta_{\text{э}}=p\theta_{\text{м}}\), \(\omega_{\text{э}}=p\Omega\), где \(p\) — число пар полюсов. Геометрический период зубцов задаётся отдельно. В производных по углу используйте радианы.
Статическая индуктивность \(L_{\text{ст}}=\Psi/i\) — наклон секущей из начала координат; это определение используется при \(\Psi(0)=0\) и \(i\ne0\). Динамическая индуктивность \(L_{\text{дин}}=\partial\Psi/\partial i\) — наклон касательной (дифференциальная, инкрементальная); положение и остальные токи фиксированы. Для линейной характеристики без смещения обе равны одной индуктивности \(L\). При постоянных магнитах и взаимном возбуждении сначала учитывают ненулевое смещение потокосцепления.
Положительные направления, оси и специальные индексы определяются в конкретной задаче. Единицу берите из условия или заголовка таблицы; перед подстановкой в формулу СИ переводите миллиметры в метры, миллигенри в генри и градусы в радианы.
Численные результаты обычно показаны с четырьмя значащими цифрами; для сравнения близких значений в таблицах сходимости сохранено больше цифр. Полные значения остаются в исходных расчётных данных. Малые остатки вычисления координат на осях показаны как ноль; малые физические величины сохраняются в показательной записи.
Расчётная программа объединяет описание исходных данных и последовательность выполняемых над ними операций. Число 0.12 приобретает физический смысл лишь после указания величины и единицы, поэтому выбор системы единиц предшествует именованию переменных: current_a, linkage_wb, inductance_h. В коде используется десятичная точка, а в русском тексте и подписях результатов — запятая. Список представляет упорядоченный набор значений, словарь связывает значения с именами параметров, а функция оформляет отдельное содержательное преобразование данных.
В линейной катушке без постоянных магнитов потокосцепление пропорционально току. Энергия получается интегрированием потокосцепления по току и равна коэнергии. Этот пример удобен для проверки языка: неизвестный полевой результат ещё не нужен. Цикл должен проходить по всем заданным значениям, а функция — возвращать число, которое можно проверить независимо. При нулевом токе запрещено вычислять индуктивность делением нулевого потокосцепления на ток; используйте известную линейную модель или производную.
L — индуктивность, Гн; I — ток, А; \Psi — потокосцепление, Вб; энергия измеряется в Дж. Число витков безразмерно.
Порядок проверки результата
Численный пример ниже является аналитическим учебным эталоном. Его значения вычислены по указанным формулам; они не обозначают результат решения новой модели методом конечных элементов. Практикум связывает эталон с полевой задачей: сначала воспроизведите уже проверенный результат ручного расчёта, затем измените только один исследуемый параметр. Именно такое сравнение позволяет отделить ошибку программы от влияния геометрии, сетки и физического приближения. Сохраните исходную модель, рабочую копию и таблицу с заголовками величин. В подписи каждой величины укажите единицу, положительное направление и способ получения; для гармонических величин дополнительно укажите амплитудную нормировку. Если условие задачи не выполнено, остановите серию и сохраните причину отказа вместе с последним корректным состоянием.
Пояснение программы
Словарь parameters хранит индуктивность катушки, список currents_a — значения тока. Функция coil_state возвращает потокосцепление и энергию поля с указанными единицами. Отрицательная индуктивность приводит к отказу до вычисления. Цикл перебирает все режимы и выводит три величины в порядке, пояснённом в комментарии. Команда print показывает результат в консоли; запись результатов в файл рассматривается в следующем занятии.
От физического закона к проверяемой функции
Первый алгоритм работает с известной линейной катушкой и не вызывает полевой решатель. Все входы выражены в единицах СИ.
Функция получает индуктивность и ток, проверяет допустимость параметров, затем возвращает потокосцепление и энергию. Возвращаемые числа должны сопровождаться известным порядком и единицами.
Проверьте три независимых свойства: нулевой ток даёт нулевые результаты; смена знака тока меняет знак потокосцепления; энергия сохраняется при смене знака.
Цикл только применяет функцию к списку состояний. Изменение длины списка не должно менять физические формулы или значения уже рассчитанных состояний.
Границы применимости. Проверка аналитической функции подтверждает владение данными и арифметикой. Она не подтверждает исполнение FEMM и не считается полевой валидацией.
Пояснения к официальному руководству
Подробности, которые следует учитывать при настройке и проверке модели. Все учебные пояснения.
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.
Откройте встроенную консоль Python FEMM 5 (Python Console). Выполните код построчно, наблюдая значения переменных.
Создайте словарь параметров и список токов. Вынесите вычисление потокосцепления и энергии в одну функцию.
Замените 0{,}12 \,\text{Гн} на 0{,}08 \,\text{Гн} и заранее предскажите отношение результатов. Выполните программу и сравните числа.
Добавьте проверку неотрицательности энергии. Ошибку отрицательной индуктивности оформите как ValueError.
В рабочей копии катушки, подготовленной в графическом интерфейсе выполните три статических опыта с теми же токами. Получите \Psi в Circuit Properties.
Сравните только модель с линейным материалом. Для нелинейного сердечника соотношение квадратов уже не является эталоном.
Ожидаемый результат. Корректная аналитическая таблица; отдельная таблица полевых значений с названием использованной модели.
Как проверить. Проверить все три строки, тип возвращаемых данных и отношение энергий при удвоении тока.
Оценка результата
Совпадают ли результаты функции и ручной таблицы?
Сопоставьте входы и выходы функции для нескольких токов, включая контрольный случай.
Повторите выбранную строку по сохранённым входам и проверьте связь числа с файлом и режимом; зафиксируйте причину отказа отдельно.
С чем сравнить. Опора — контрольный пример и протокол воспроизведения этого занятия. Численный self-check программы и фактическое решение FEMM имеют разное происхождение.
Итог работы. Проверенная таблица с единицами и объяснением роли аргументов функции.
Код выполняется целиком внутри FEMM; это аналитическое упражнение по синтаксису.
Python · встроенный MicroPython FEMM 5
"""Список режимов линейной катушки.Среда: встроенный MicroPython FEMM 5.Аналитический учебный пример; полевой решатель не вызывается.Параметры, единицы величин и порядок вывода пояснены по стадиям."""# Исходные данные: индуктивность в генри; токи в амперах.# Линейная модель предполагает постоянную индуктивность и отсутствие магнитов.parameters={"inductance_h":0.12}currents_a=[0.0,2.0,4.0]# Функция возвращает потокосцепление, Вб, и энергию магнитного поля, Дж.defcoil_state(current_a):inductance_h=parameters["inductance_h"]ifinductance_h<0:raiseValueError("Индуктивность должна быть неотрицательной")# Потокосцепление равно L·I, энергия равна L·I²/2.# При нулевом токе деление на ток не выполняется.returninductance_h*current_a,0.5*inductance_h*current_a**2# Перебираем все заданные режимы; исходные параметры между режимами не меняются.forcurrent_aincurrents_a:linkage_wb,energy_j=coil_state(current_a)# Порядок вывода: ток, А; потокосцепление, Вб; энергия, Дж.print(current_a,linkage_wb,energy_j)
Пошаговая настройка расчётного примера
Откройте отдельную страницу с последовательными действиями, точными параметрами, накопительными файлами этапов и программами с русскими комментариями.
Рисунок 12.1. Визуализация численных данных FEMM 5: Воздушная катушка. Это экспорт результатов поля, а не снимок окна программы.
Осесимметричная учебная модель. Независимо проверены изменения сетки и внешнего радиуса; аналитическая модель тонкостенного соленоида служит отдельным приближённым ориентиром.
Ориентиры в интерфейсеРисунок 12.2. Версия FEMM 5 и дата сборки: окно «О программе». Открыть в полном размереРисунок 12.3. Поле воздушной катушки: осесимметричный магнитостатический эталон FEMM 5. Открыть в полном размереРисунок 12.4. Встроенная Python-консоль FEMM 5: решение малой системы и БПФ внутри приложения. Открыть в полном размереРисунок 12.5. Встроенная консоль FEMM: Переменные, списки, словари, циклы и функции на задачах FEMM. Аналитическая проверка программы занятия. Показана консоль исходной редакции программы, зафиксированной при съёмке. Текущая программа с русскими пояснениями проверена отдельно во встроенном Python FEMM; этот снимок не является новым запуском текущей редакции. Открыть в полном размере
Самостоятельная работа
Создайте функцию для пяти токов от 0 до 8 \,\text{А} с шагом 2 \,\text{А}. Добавьте суммарную энергию таблицы как упражнение со списком, объяснив, что сумма разных режимов не является энергией одной машины.
Критерий выполнения: Пять правильных строк; имена единиц указаны; нулевой ток обработан без деления; физический смысл каждой колонки объяснён.