Если одно из понятий незнакомо, вернитесь к предыдущему занятию и воспроизведите его численный пример. После этого переходите к новой постановке.
Место занятия в инженерной методике
Расчётная лабораторная работа · Оценка тепловой инерции и длительности режима
Инженерный вопрос. Не теряется ли предыдущее состояние при автоматизации временных шагов?
Температура, тепловое сопротивление и постоянная времени связывают потери с охлаждением и длительностью включения. Это позволяет сравнить материалы, отвод тепла и рабочие циклы по количественным критериям.
Последовательность решения, отчёт и критерии результата
Результат получают из наблюдаемых величин и проверяют в условиях данного практикума.
Последовательность решения
Обосновать постановку и способ измерения. Добавьте теплоёмкость и начальное состояние к источникам и границам; определите последовательность связанных шагов или принятый эквивалентный тепловой закон.
Ответить на вопрос по своим результатам. Сопоставьте температуры в одинаковые моменты времени и накопленную энергию; отдельно оцените влияние временного шага.
Что включить в отчёт
Результат этого занятия. Прослеживаемая временная таблица с ручным контролем первых шагов и аналитическим пределом.
Данные именно этого опыта. Сохраните пути предыдущих решений и конечную температуру серий разных шагов в один момент.
Оформление наблюдений. Время, температуры, мощность, начальное состояние, запасённая энергия и шаг; результаты разных шагов сравнивайте в одни моменты времени.
Как обосновать результат
Проверка из практикума. В отсутствие источника равномерное начальное состояние должно оставаться постоянным на каждом шаге. Прямое численное сравнение возможно только при совпадении всех исходных данных и постановки.
Независимый контроль. Проверьте накопленную энергию и доступный аналитический временной предел; отдельно повторите расчёт с меньшим шагом.
Критерий выполнения. Для \Delta t=2{,}1{,}0{,}5\,\mathrm{с} финальная температура сравнивается при одном t=20\,\mathrm{с}; предыдущие файлы явно перечислены; c_v=2\,\mathrm{МДж/(м^3\cdot К)} не смешана с 2·10⁶ Дж/(м³·К).
Точность и расхождения. Оцените изменение температуры и времени достижения уровня при уточнении шага. Ошибки начального состояния и теплоёмкости отделите от дискретизации времени.
Основание сравнения. Используйте уравнение накопления энергии и временной эталон из занятия. Одноузловой RC-предел требует обоснования пространственной однородности; предыдущие решения задают начальное состояние.
Вывод для устройства
Свяжите кривую нагрева или остывания с длительностью включения и тепловой инерцией; одноузловой предел требует обоснования пространственной однородности.
Границы вывода. Результат зависит от источников, среды, теплоотдачи и теплоёмкости. Упрощённый эталон не заменяет неизвестные условия охлаждения реального устройства.
Теория и вывод формул
Семейства hi и ho предназначены для подготовки тепловой модели и обработки решения. Функция hi_probdef принимает units, type, precision и необязательные depth, minangle, prevsoln, timestep; имя предыдущего решения задаётся шестым аргументом, а шаг времени — седьмым.
Соглашения об обозначениях и единицах
\(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\). При постоянных магнитах и взаимном возбуждении сначала учитывают ненулевое смещение потокосцепления.
Положительные направления, оси и специальные индексы определяются в конкретной задаче. Единицу берите из условия или заголовка таблицы; перед подстановкой в формулу СИ переводите миллиметры в метры, миллигенри в генри и градусы в радианы.
Численные результаты обычно показаны с четырьмя значащими цифрами; для сравнения близких значений в таблицах сходимости сохранено больше цифр. Полные значения остаются в исходных расчётных данных. Малые остатки вычисления координат на осях показаны как ноль; малые физические величины сохраняются в показательной записи.
Семейства hi и ho обслуживают тепловую модель и её результат. hi_probdef принимает units, type, precision, затем необязательные depth, minangle, prevsoln, timestep. Имя предыдущего решения — шестой аргумент, шаг — седьмой.
Цепочка должна передавать именно последнее успешно рассчитанное .anh с согласованной геометрией. Повторный запуск не должен молча продолжать случайный старый результат. Отдельно сохраняют начальную модель, расписание источников и фактическое время каждого шага.
Вывод контрольного соотношения
Проверьте накопление q_v\Delta t/c_v в аналитическом эталоне, затем сопоставьте его с цепочкой нативных тепловых шагов.
FEMM 5 поддерживает переходную теплопроводность через предыдущее решение и шаг времени. Здесь нет переносного члена, течения и фазового перехода.
Из пространственной однородности следует отсутствие градиента и граничного потока.
Скорость нагрева q_v/c_v=0{,}5\,\mathrm{К/с}.
Через 20 с температура равна 310 К. В поле GUI для объёмной теплоёмкости это c_v=2\,\mathrm{МДж/(м^3\cdot К)}, а не 2000000.
Границы применимости. FEMM 5 поддерживает переходную теплопроводность через предыдущее решение и шаг времени. Здесь нет переносного члена, течения и фазового перехода.
Связь с опытом в FEMM
Создайте журнал шагов и организуйте hi_saveas → hi_probdef с предыдущим решением → hi_analyze → hi_loadsolution → чтение ho; первые шаги повторите вручную.
Сначала вычислите контрольное значение вручную, затем сформулируйте ожидаемый знак и зависимость от одного параметра. Повторите опыт в рабочей копии с изменением только этого параметра. Сохраняйте геометрию, единицы, глубину, материалы, источники и граничные условия вместе с результатом. Успешное завершение решателя означает решение введённой модели, но само по себе не доказывает её соответствие устройству.
Проверка и границы вывода
Для \Delta t=2{,}1{,}0{,}5\,\mathrm{с} финальная температура сравнивается при одном t=20\,\mathrm{с}; предыдущие файлы явно перечислены; c_v=2\,\mathrm{МДж/(м^3\cdot К)} не смешана с 2·10⁶ Дж/(м³·К).
В отсутствие источника равномерное начальное состояние должно оставаться постоянным на каждом шаге.
Сохранение нового имени не гарантирует правильный prevsoln; строка пути и существование результата проверяются до шага.
Знак градиента в программном извлечении
Проверяйте знак производной температуры по самому профилю T(x) и закону q=-k\nabla T. Имена G_x/G_y в извлечённых полях нельзя без проверки считать буквальным градиентом: в опубликованном нативном эталоне FEMM 5 знак соответствующей возвращённой компоненты отличается от dT/dx. Контрольные величины этого занятия — температура и тепловой поток; подробность зафиксирована в квитанции эталона.
Пояснения к официальному руководству
Подробности, которые следует учитывать при настройке и проверке модели. Все учебные пояснения.
Семейство команды определяет физику и стадию: mi/mo — магнитное поле, ei/eo — электростатика, hi/ho — тепло, ci/co — токопроводимость; i относится к исходной модели, o — к решению. newdocument/create используют номера 0,1,2,3 соответственно. Названия команд содержат только одно подчёркивание после префикса: старые расширенные написания с дополнительными подчёркиваниями не поддерживаются.
Первый выбор скрипта определяет физический модуль нового документа. После него используйте согласованную пару префиксов mi/mo, ei/eo, hi/ho или ci/co.
Таблица М.Н.41. Коды newdocument и create
doctype
Физический модуль
0
Магнитное поле
1
Электростатика
2
Теплопроводность
3
Протекание тока
При нескольких документах контролируйте setfocus и gettitle. После изменения исходной модели старое окно решения само по себе не доказывает актуальности результатов: сохраните модель, выполните analyze, затем loadsolution. createmesh возвращает число элементов; analyze умеет обновлять сетку без отдельного предварительного createmesh.
addsegment/addarc связывают ближайшие уже существующие узлы, а drawline/drawarc/drawrectangle создают нужные узлы. Поэтому одинаковые координаты аргументов не делают эти две группы взаимозаменяемыми. Метка области должна лежать в нужной замкнутой области и получить уже определённое свойство материала.
Один и тот же набор кодов используется в перемещении, копировании, масштабировании и отражении для четырёх препроцессоров. Передаваемый editaction делает выбор типа объектов явным; при его отсутствии используется текущий режим.
Таблица М.Н.40. Тип объектов в преобразованиях геометрии
editaction
Объекты
0
Узлы
1
Отрезки
2
Метки областей
3
Дуги
4
Группы
Круглые скобки вокруг необязательного editaction в PDF обозначают необязательность аргумента, а не буквальный синтаксис вызова Python.
Выбор объектов — часть состояния модели. selectgroup очищает прежний выбор и переводит редактор в режим группы. selectcircle/selectrectangle без editmode используют текущий режим; в этих функциях число 4 означает все классы. В преобразованиях editaction=4 означает групповое редактирование. После команд выбора проверяйте, какие объекты будут сдвинуты, скопированы или удалены.
В setblockprop направление намагничивания допускает строковую формулу. theta — полярный угол центра элемента в градусах, R — расстояние от начала координат; координаты обозначаются x/y в плоской и r/z в осесимметричной модели. Число витков имеет знак. automesh для области, elementsize ребра и maxsegdeg дуги управляют разными ограничениями сетки.
Глобальный smartmesh(0/1) переопределяет настройки документов на время сессии; smartmesh(-1) возвращает управление документным mi/ei/hi/ci_smartmesh. У makeABC все недостающие параметры могут выбираться автоматически. Для исследования сходимости и границы явно фиксируйте значения, чтобы изменение геометрии незаметно не изменило внешнюю область.
Проверьте на своей модели
Перед преобразованием проверьте setfocus/gettitle, выбранную группу и editaction.
Сравните результат addsegment без узлов и drawline на отдельной учебной копии.
Запишите параметры Smart Mesh, внешний радиус и число оболочек вместе с числом элементов.
Число propnum выбирает поле конкретного типа свойства. Один и тот же номер в mi_modifymaterial и hi_modifyboundprop относится к разным физическим величинам. В справочнике приведены отдельные таблицы для материалов, границ, точек, магнитных цепей и проводников четырёх модулей; используйте таблицу выбранной команды, а не общий список номеров.
Вызов hi_modifymaterial(name, propnum, value) меняет одно поле существующего свойства. Строка 0 переименовывает запись; остальные строки задают числовой параметр. Номер поля не является кодом типа границы.
Таблица М.Н.20. Коды свойств hi_modifymaterial
propnum
Поле
Смысл и единицы
0
BlockName
Имя материала
1
kx
Теплопроводность по x или r, Вт/(м·К)
2
ky
Теплопроводность по y или z, Вт/(м·К)
3
qs
Объёмное тепловыделение, Вт/м³
4
kt
Объёмная теплоёмкость, МДж/(м³·К)
В modify-таблице объёмный источник назван qs; аргумент hi_addmaterial того же физического смысла называется q_v. Это не поверхностный тепловой поток qs из граничного свойства.
Вызов hi_modifyboundprop(name, propnum, value) меняет одно поле существующего свойства. Строка 0 переименовывает запись; остальные строки задают числовой параметр. Номер поля не является кодом типа границы.
Код 2 также учитывает заданный qs. Код 3 может одновременно учитывать излучение, конвекцию и qs. Если TinfRad при добавлении условия опущен, используется Tinf.
Вызов hi_modifypointprop(name, propnum, value) меняет одно поле существующего свойства. Строка 0 переименовывает запись; остальные строки задают числовой параметр. Номер поля не является кодом типа границы.
Таблица М.Н.22. Коды свойств hi_modifypointprop
propnum
Поле
Смысл и единицы
0
PointName
Имя точечного свойства
1
Tp
Заданная температура узла, К
2
qp
Линейная мощность точечного источника, Вт/м
Вызов hi_modifyconductorprop(name, propnum, value) меняет одно поле существующего свойства. Строка 0 переименовывает запись; остальные строки задают числовой параметр. Номер поля не является кодом типа границы.
Таблица М.Н.23. Коды свойств hi_modifyconductorprop
propnum
Поле
Смысл и единицы
0
ConductorName
Имя проводника
1
Tc
Температура проводника, К
2
qc
Полный тепловой поток, Вт
3
ConductorType
0 — заданный полный тепловой поток; 1 — заданная температура
Неиспользуемые коэффициенты конкретного типа границы задаются нулём. В mi_addboundprop код BdryFormat=6/7 означает периодический/антипериодический воздушный зазор, а ia/oa — углы его внутренней и внешней сторон. У тепловой границы свои коды: температура, поток, конвекция, излучение, периодичность и антипериодичность. Если TinfRad опущен, используется Tinf.
Магнитные материалы используют МСм/м для проводимости и МА/м² для заданной плотности тока. Токовый модуль использует См/м и А/м². Ошибка в приставке даёт множитель миллион даже при безошибочном выполнении Python. Тепловая объёмная теплоёмкость kt задаётся в МДж/(м³·К), а источник q_v — в Вт/м³.
Точечный источник и терминальный проводник различны: qp электрического/теплового/токового точечного свойства задан на единицу длины, а qc проводника — полный заряд, мощность или ток. Магнитный точечный ток j в mi_addpointprop задаётся в амперах. Суммарные результаты модели дополнительно зависят от глубины плоской постановки или осесимметричного объёма.
Изменение материала через modifymaterial не заменяет проверку его физической модели. Для mi_addmaterial руководство допускает опускать хвост аргументов; важные \mu, H_c, \sigma, шихтовку и параметры провода задавайте явно. Числовой код LamType не означает, что измеренные потери уже подтверждены этой эквивалентной моделью.
Таблица Р.43.1. Коды свойств и физические единицы API
Параметры
Единицы и смысл
mi_addmaterial: J, Cduct
МА/м²; МСм/м
mi_addmaterial: Lam_d, WireD
мм независимо от единицы координат
mi_addmaterial: H_c
А/м
ci_addmaterial: ox,oy
См/м
hi_addmaterial: kt
МДж/(м³·К)
ei/hi/ci_addpointprop: qp
Кл/м; Вт/м; А/м соответственно
ei/hi/ci_addconductorprop: qc
Кл; Вт; А соответственно
getprobleminfo: depth, length unit
Обе длины возвращаются в метрах
getelement: координаты, площадь
Единицы геометрии; квадрат единицы геометрии
Проверьте на своей модели
До запуска укажите единицы каждого источника и проводимости; отдельно проверьте приставки М и отсутствие приставки.
По таблице конкретной modify-команды найдите propnum и проверьте обновлённое свойство.
Сопоставьте ток на выводе или тепловой поток с интегральным балансом модели.
У сетки есть два разных числа строк: Nn узлов и Ne треугольников. Вводные абзацы PDF описывают готовые numpy-массивы внутри FEMM и плоскую передачу через IPC с восстановлением формы обёрткой. Нативная проверка 16.10.2026 подтвердила массивы координат и полей, но обнаружила важное отличие getallelements: вместо документированной Ne×7 матрицы текущая сборка возвращает кортеж из четырёх массивов. Поэтому сначала проверяйте фактический контейнер, а не назначайте ему форму по краткой таблице.
На четырёх сохранённых решениях магнитного, электростатического, теплового и токового модулей получено: connectivity — Ne×3 int32, centroids — Ne×2 float64, areas — Ne float64, groups — Ne int32. Это четыре члена tuple в таком порядке. Первая тройка connectivity совпала с первыми полями getelement(1), а координаты getallnodes()[0] — с getnode(1). Передать np.int32 аргументом getallelements нельзя: в проверенной сборке команда принимает ноль аргументов. Эта проверка внутреннего Python не устанавливает форму ответа внешнего IPC.
Нумерация узлов API начинается с 1, а индексация массива Python и matplotlib — с 0. В элементной строке первые три поля являются номерами узлов; следующие два — координатами центра, затем идут площадь и группа. При переводе в matplotlib вычитайте 1 только из номеров узлов. Храните индексы как int32: int16 переполняется после 32767 и может превратить корректную сетку в набор отрицательных индексов.
Вычитать единицу требуется только из номеров узлов треугольника. Координаты, площадь и группа сохраняют свои значения.
Обозначения и единицы
N_n — число узлов; i_{\mathrm{FEMM}} — номер API от 1; i_{\mathrm{Python}} — индекс массива от 0. Все три величины целочисленные и безразмерные.
Условия применения. Для связности используйте int32. Знаковый int16 ограничен диапазоном −32768…32767 и может молча переполниться.
Формула выделяет математический смысл вычитания 1 из трёх индексов в примере matplotlib. Контейнер getallelements в проверенной сборке отличается от описания PDF; это отдельно разобрано в разделе.
Потенциалы V в электростатике и токопроводимости, а также T в теплопроводности возвращаются по узлам. Их производные D, J, F возвращаются по элементам и не сглаживаются. Магнитный mo_getalla согласно стр.115 выдаёт A в центрах элементов; это принципиальное исключение, которое нельзя соединить с массивом узлов как равнодлинные данные.
Для узлового графика A пример руководства получает координаты mo_getnode(k), затем A через mo_getpointvalues(x,y)[0]. Для крупной серии заранее выделяйте массивы и заполняйте их, а не накапливайте списки Python-чисел. Сроки выполнения примера в руководстве относятся к его модели и компьютеру; их нельзя обещать для произвольной сетки.
В гармонической магнитной и токовой постановке фазовые величины могут быть комплексными. Перед построением рисунка выберите \operatorname{Re}, \operatorname{Im}, модуль или фазу как отдельный шаг обработки. Смешение узлового потенциала, элементного поля и сглаженного точечного запроса может создать ошибку анализа даже при внешне одинаковом изображении.
Таблица Р.44.1. Узлы, элементы и пакетное чтение поля
Запрос
Форма и расположение
*_getallnodes
Nn×2: координаты всех узлов
*_getallelements в PDF
Ne×7: n_{1},n_{2},n_{3},xc,yc,area,group
*_getallelements в проверенной сборке
tuple: connectivity Ne×3; centroids Ne×2; areas Ne; groups Ne
mo_getallb / mo_getalla
Ne×2: B; Ne: A в центрах элементов
eo_getalld / eo_getallv
Ne×2: D; Nn: узловой V
ho_getallf / ho_getallt
Ne×2: F; Nn: узловой T
co_getallj / co_getallv
Ne×2: J; Nn: узловой V
mo_getallgapb / mo_getallgapa
npts×2: B_r,B_{\theta }; npts: A; по умолчанию npts=360
mo_getallgapharmonics
Nh×6: acc,acs,brc,brs,btc,bts для каждой гармоники
Проверьте на своей модели
Проверьте размеры всех массивов по numnodes/numelements, прежде чем объединять столбцы.
Подтвердите, что каждая тройка индексов после вычитания 1 лежит в диапазоне 0…Nn−1.
Для mo_getalla укажите расположение значений по элементам; для ho_getallt — по узлам.
Возвраты интегралов, гармоники зазора и ориентация контура
Перед интегралом очищайте старый контур или выбор областей и создавайте новый явно. Числовой type выбирает физическую операцию в конкретном модуле: одинаковое число не переносится из mo в eo/ho/co. Например, код 2 у mo_blockintegral означает энергию, у eo/ho_blockintegral — объём, а у co_blockintegral — полную мощность.
Перед вызовом ho_lineintegral выберите нужный документ результата и найдите код именно этой команды. Заново задайте контур и его направление: таблица связывает числовой type с физической величиной, а не с номером строки меню другого модуля.
Таблица М.Н.24. Результаты и коды ho_lineintegral
Код
Величина
Единица / смысл
0
Разность температур: интеграл G\cdot t
К; знак зависит от направления и соглашения о G
1
Тепловой поток через контур F\cdot n
Полный поток, Вт; средняя плотность, Вт/м²
2
Геометрия контура
Длина, м; площадь поверхности, м²
3
Средняя температура контура
К
В примере PDF F_{\mathrm{tot}},F_{\mathrm{avg}} = ho_lineintegral(2) ошибочен код: тепловой поток имеет код 1, код 2 относится к геометрии.
В теоретическом разделе PDF G = -\nabla T, но нативный тепловой слой курса показал другое соглашение о знаке G. При обработке результата сверяйте знак на линейном температурном эталоне.
Перед вызовом ho_blockintegral выберите нужный документ результата и найдите код именно этой команды. Очистите прежнее выделение, выберите области интегрирования и затем запишите код вместе с результатом и единицей.
Таблица М.Н.25. Результаты и коды ho_blockintegral
Код
Величина
Единица / смысл
0
Средняя температура T
К
1
Площадь поперечного сечения
м²
2
Объём
м³
3
Средний вектор теплового потока F
Вт/м²; две компоненты
4
Средний температурный градиент G
К/м; две компоненты, соглашение о знаке см. примечание
Вектор G следует интерпретировать вместе с нативным соглашением о знаке, проверенным на эталоне; не извлекайте направление переноса тепла только из названия gradient.
Перед вызовом ho_getpointvalues выберите нужный документ результата и найдите код именно этой команды. Здесь приведён порядок всех возвращаемых полей; физическую точку и единицы координат задают до запроса. Позиции таблицы начинаются с 1, индексы Python — с 0.
Таблица М.Н.26. Результаты и коды ho_getpointvalues
Позиция
Символ
Величина
Единица
1
T (в таблице PDF: V)
Температура
К
2
F_x
Тепловой поток по x или r
Вт/м²
3
F_y
Тепловой поток по y или z
Вт/м²
4
G_x
Температурный градиент по x или r
К/м
5
Gy
Температурный градиент по y или z
К/м
6
kx
Теплопроводность по x или r
Вт/(м·К)
7
ky
Теплопроводность по y или z
Вт/(м·К)
Символ V в первой строке исходной таблицы — остаток копирования: соседний пример распаковывает T, и модуль выдаёт температуру.
Позиции 1–7 соответствуют Python-индексам 0–6. Знак G проверяется отдельно; он не меняет порядок результатов.
Перед вызовом ho_makeplot выберите нужный документ результата и найдите код именно этой команды. Сначала постройте контур; PlotType выбирает величину вдоль него. Координата X графика — расстояние по пути, число отсчётов не уточняет сетку.
Таблица М.Н.27. Результаты и коды ho_makeplot
Код
Величина
Единица / смысл
0
T
К
1
|F|
Вт/м²
2
F\cdot n
Вт/м²
3
F\cdot t
Вт/м²
4
|G|
К/м
5
G\cdot n
К/м
6
G\cdot t
К/м
В исходной таблице скопированы V/D/E и даже слова field intensity. Здесь физические обозначения исправлены на T/F/G без изменения кодов 0–6.
Знак G нельзя устанавливать по скопированному тексту; сверяйте с принятой в курсе проверкой теплового эталона.
Перед вызовом ho_showdensityplot выберите нужный документ результата и найдите код именно этой команды. Код выбирает смысл цветовой шкалы. При сравнении вариантов фиксируйте одинаковую величину и границы шкалы.
Таблица М.Н.45. Результаты и коды ho_showdensityplot
Код
Величина
Единица / смысл
0
T
К
1
|F|
Вт/м²
2
|G|
К/м
Перед вызовом ho_showvectorplot выберите нужный документ результата и найдите код именно этой команды. Код выбирает физический вектор и его комплексную составляющую; масштаб стрелок задаётся отдельно и не меняет решение.
Таблица М.Н.46. Результаты и коды ho_showvectorplot
Код
Величина
Единица / смысл
0
Выключено
—
1
F
Вт/м²
2
G
К/м
Различайте количество физических величин и конкретный тип Python-контейнера. Документация часто пишет «один результат», не устанавливая скаляр или одноэлементный кортеж. Ранее выполненный нативный эталон курса подтвердил кортеж для eo_blockintegral(0) в своём режиме; это не проверка всех других кодов. Перед массовой выгрузкой исследуйте repr/type нужного ответа на малой модели.
mo_lineintegral может возвращать среднее и полный интеграл, либо компоненты постоянной и удвоенной по частоте силы. Члены 2\omega имеют смысл при ненулевой частоте. Текст упоминает взаимодействие постоянного и малого переменного поля в режиме дифференциальной проницаемости, но таблица не задаёт дополнительные индексы 1\omega: не добавляйте их в распаковку по предположению.
Контурный bendcontour требует не менее двух точек, угла от -180^\circ до +180{}^\circ и положительного anglestep. При менее чем двух точках операция игнорируется. Ориентация n/t задаётся направлением обхода; при смене направления отдельно проверяются знаки потока, напряжения и температурной разности.
У mo_gapintegral коды 0/2/3/5 возвращают одну величину момента или энергии, а 1/4/6 — две компоненты силы F_x,F_y. mo_getgapharmonics без n сообщает максимальный доступный порядок; с n даёт шесть коэффициентов. Угол в API задаётся в градусах, тогда как math.cos/math.sin принимают радианы.
Проверка описания и границы подтверждённого поведения
Для каждого вызова сверяйте имя, порядок аргументов, числовые коды опций и форму ответа. Сначала выполните небольшой контрольный расчёт с известной величиной; затем используйте команду в серии.
Справочник содержит 556 нативных имён команд. Выбирайте команду по физическому модулю и стадии расчёта; для интегралов заранее задайте нужные области или ориентированный контур. Сопоставляйте размерность и форму ответа с выбранной операцией.
eo_blockintegral(0) возвращает одноэлементный кортеж; извлеките его компоненту перед скалярными вычислениями. Для тепловой задачи проверяйте знак G по профилю температуры и закону Фурье. У getall-вызовов проверяйте форму массивов и индексацию связности. Для работы с CSV и регулярными выражениями используйте csv и re.split. mo_lineintegral(2) возвращает длину контура и площадь соответствующей поверхности.
Таблица Р.51.1. Аргументы и формы ответа команд FEMM 5
Команда и страницы руководства
Правило применения
csv, re.split; стр.92–95
Используйте csv для табличных данных и re.split для разделения строк по регулярному выражению.
getallelements, стр.114–115/128/142/157
getallelements возвращает кортеж из четырёх массивов; связность использует индексы узлов, начинающиеся с 1.
mi_probdef, стр.99; moverotate
Передавайте аргументы внутри скобок; editaction задавайте отдельным аргументом.
mo_lineintegral(2), стр.107
Результат содержит пару: длина контура и площадь соответствующей поверхности.
eo_blockintegral, стр.124
Для силы используйте код 5; код 4 не является этой операцией.
ho_lineintegral, стр.137
Для теплового потока используйте код 1; код 2 относится к геометрии контура.
ho_makeplot, стр.138
Выбирайте тепловые величины T/F/G: температуру, поток и компоненты температурного градиента.
ho_selectconductor, стр.139
Выбирается тепловой проводник; ho_blockintegral не вычисляет механическую силу.
ho_showcontourplot, стр.141
Изолинии относятся к температуре T; имена аргументов границ диапазона — lower_V и upper_V.
co_getpointvalues, стр.152
Смысл и единицы ox/oy сверяйте с материальными параметрами и контрольной токовой задачей; не подставляйте их как магнитную проницаемость.
co_showcontourplot, стр.155
Передавайте type внутри списка аргументов co_showcontourplot.
Проверьте на своей модели
Укажите команду, её аргументы, ожидаемую форму результата и единицы.
Проверьте каждый используемый код интеграла на подходящем контрольном примере.
Сопоставьте численный результат с физическим эталоном, а не только с отсутствием ошибки выполнения.
Дано. Однородное тело вначале имеет 300 К; c_v=2\cdot 10^{6}\,\mathrm{Дж/(м^3\cdot К)}, q_v=10^{6}\,\mathrm{Вт/м^3}, все границы теплоизолированы; длительность 20 с.
Из пространственной однородности следует отсутствие градиента и граничного потока.
Скорость нагрева q_v/c_v=0{,}5\,\mathrm{К/с}.
Через 20 с температура равна 310 К. В поле GUI для объёмной теплоёмкости это c_v=2\,\mathrm{МДж/(м^3\cdot К)}, а не 2000000.
Ответ:T(20\,\mathrm{с})=310\,\mathrm{К}; накопленная энергия на единицу объёма =20 МДж/м³.
Проверка: В отсутствие источника равномерное начальное состояние должно оставаться постоянным на каждом шаге. Значения получены аналитически и сами по себе не подтверждают выполнения полевого расчёта FEMM.
Практикум в FEMM 5
Создайте журнал шагов и организуйте hi_saveas → hi_probdef с предыдущим решением → hi_analyze → hi_loadsolution → чтение ho; первые шаги повторите вручную.
Подготовьте отдельное начальное решение с равномерными 300 К и q_v=0; сохраните его файл результата .anh.
В рабочей модели снимите фиксированные температуры, задайте теплоизоляцию всех внешних границ, q_v=1000000 и c_v=2\,\mathrm{МДж/(м^3\cdot К)}.
Для временных шагов используйте документированные параметры предыдущего решения и шага hi_probdef; это практикум с продолжением в уроке 14.2.
Выполните серии с \Delta t=2{,}1{,}0{,}5\,\mathrm{с} до одного времени 20 с; каждый следующий шаг читает предыдущее корректное .anh. Сравните T и накопленную энергию.
Ожидаемый результат.T(20\,\mathrm{с})=310\,\mathrm{К}; накопленная энергия на единицу объёма =20 МДж/м³. Для FEMM сравнение действительно только при совпадении идеализации и граничных условий.
Как проверить. В отсутствие источника равномерное начальное состояние должно оставаться постоянным на каждом шаге. Прямое численное сравнение возможно только при совпадении всех исходных данных и постановки.
Обработка и анализ результатов
Не теряется ли предыдущее состояние при автоматизации временных шагов?
Сохраните пути предыдущих решений и конечную температуру серий разных шагов в один момент.
Сопоставьте температуры в одинаковые моменты времени и накопленную энергию; отдельно оцените влияние временного шага.
С чем сравнить. Используйте уравнение накопления энергии и временной эталон из занятия. Одноузловой RC-предел требует обоснования пространственной однородности; предыдущие решения задают начальное состояние.
Итог работы. Прослеживаемая временная таблица с ручным контролем первых шагов и аналитическим пределом.
Для однородного теплоизолированного тела dT /dt = q_v/c_v = 0{,}5 К/с, поэтому за 20 с температура повышается с 300 до 310 К. Последний шаг сокращается до оставшегося времени; изменение длительности не приводит к её усечению. Постоянная производная делает явный метод точным с учётом округления, поэтому совпадение трёх результатов само по себе не определяет порядок сходимости. В коде используются Дж/(м³·К); для поля объёмной теплоёмкости FEMM значение переводят в МДж/(м³·К). Решатель FEMM не запускается.
Python · встроенный MicroPython FEMM 5
"""Контрольный вычислительный фрагмент.Среда: встроенный MicroPython FEMM 5.Аналитический учебный пример; полевой решатель не вызывается.Параметры, единицы величин и порядок вывода пояснены по стадиям."""# Цель: проверить баланс энергии однородного теплоизолированного тела.# Постоянные q_v и c_v дают dT/dt = q_v/c_v; пространственных потоков нет.# Вход: c_v [Дж/(м³·К)], q_v [Вт/м³], время [с], температура [К].# Выход: выбранный шаг dt_s и температура T_K в конце нагрева.# 1. Исходные данные в СИ. В интерфейсе FEMM теплоёмкость вводят в МДж/(м³·К).cv_si=2.0e6qv_w_m3=1.0e6initial_k=300.0duration_s=20.0heating_rate_k_s=qv_w_m3/cv_sianalytic_k=initial_k+heating_rate_k_s*duration_s# 2. Сравниваем три шага явного интегрирования одного и того же баланса.# Отношение q_v/c_v вычислено до цикла; последний шаг при необходимости# сокращается, поэтому длительность не отбрасывается округлением int().fordtin(2.0,1.0,0.5):T=initial_kremaining_s=duration_swhileremaining_s>0.0:step_s=min(dt,remaining_s)T+=heating_rate_k_s*step_sremaining_s-=step_s# При постоянной скорости метод точен с погрешностью округления.# Этот опыт проверяет баланс, но не порядок сходимости общего метода.assertabs(T-analytic_k)<1e-9print("dt_s",dt,"T_K",T)# Это аналитическая проверка; hi_analyze здесь не вызывается.# Для нативного шага нужны открытая тепловая модель и файл previous_anh.# Порядок аргументов: единицы, тип, точность, глубина, угол, файл, шаг.# hi_probdef("millimeters", "planar", 1e-8, 100, 30, previous_anh, dt)
Расчётные исследования по теме
Изучите физическую постановку, выполните программу во встроенном Python FEMM 5 и проверьте результаты по сохранённым моделям и независимым критериям.
Многослойный кабель позволяет проверить тепловую модель значительно строже, чем сравнением одной максимальной температуры. Для каждого пассивного слоя есть независимое аналитическое сопротивление, а через все слои проходит одна и та же мощность жилы. Учебная задача учит различать удельное тепловое сопротивление материала, теплопроводность и сопротивление целого цилиндрического слоя. Эти три величины имеют разные определения и не должны смешиваться в таблицах.
Шина 100 × 10 мм, расчётная длина 1 м, равномерное тепловыделение 10⁵ Вт/м³. Нижняя сторона охлаждается конвекцией h=10 Вт/(м² К), верхняя излучает в среду 20 °C с коэффициентом 0.8; торцы изолированы.
Медная жила радиуса 5 мм, изоляция до радиуса 8 мм, длина 1 м. Охлаждение воздухом 20 °C с h=10 Вт/(м² К). Учебное ограничение температуры жилы 90 °C; сопротивление зависит от температуры.
Три кабеля радиусами жилы 5 мм и изоляции 10 мм находятся на глубине 1 м в грунте k=1 Вт/(м К). Каждый выделяет 20 Вт/м. Сравниваются расстояния между осями 150, 300 и 600 мм; поверхность грунта поддерживается при 20 °C.
Медная деталь 10 × 1 мм, глубина 100 мм. Три импульса мощности по 1 с разделены паузами по 1 с; полное время 6 с. Мощность при включении 100 Вт, две широкие стороны охлаждаются с h=1000 Вт/(м² К), торцы изолированы.
Медная вставка длиной 10 мм и сечением 0.2 × 0.2 мм нагревается током 12 А в течение 0.2 с. Торцы закреплены в идеальных держателях 20 °C, боковые поверхности теплоизолированы. Рассчитывается нагрев до плавления; фаза металла не меняется.
Нативная последовательная связь гармонического магнитного поля и переходного теплового поля с пространственной температурой, консервативным переносом мощности и итерационным обновлением σ(T), μ(T).
Снимки интерфейса FEMM показывают геометрию, настройки и работу с результатами в FEMM 5. Откройте изображение, чтобы рассмотреть подписи и значения в полном размере.
Поперечная геометрия многослойного кабеля в модуле теплопроводности FEMM 5. Текстовые подписи скрыты в отображении, чтобы различались тонкие слои; зелёные точки — метки областей. Открыть в полном размереСохранённое решение «Тепловое сопротивление кабеля». Температура T, К, и изотермы многослойного кабеля; стационарная теплопроводность. Открыть в полном размереРабочая область модели «Конвекция и нелинейное излучение нагреваемой шины». Нативный препроцессор FEMM 5. Открыть в полном размереСохранённое решение «Конвекция и нелинейное излучение нагреваемой шины». Температура T, К, шины с радиационным охлаждением. Для почти равномерного поля использована шкала отображения 293,15–373,15 К; её пределы не являются экстремумами решения. Изотермы скрыты. Открыть в полном размереРабочая область модели «Ток кабеля при ограничении температуры и обратной связи сопротивления». Нативный препроцессор FEMM 5. Открыть в полном размереСохранённое решение «Ток кабеля при ограничении температуры и обратной связи сопротивления». Температура T, К, и изотермы сохранённого предельного режима кабеля; обратная связь потерь и температуры учитывается в учебной программе. Открыть в полном размереУвеличенная область трёх подземных кабелей с шагом 600 мм. Крупные внешние окружности ограничивают области сгущения сетки в грунте. Поверхность и удалённые границы за кадром; подписи скрыты. Открыть в полном размереСохранённое решение «Взаимный нагрев кабелей и расстояние между ними». Температура T, К, и изотермы взаимного нагрева трёх кабелей. Верхняя горизонталь — поверхность грунта; внутренний прямоугольник — область сгущения сетки; удалённые границы за кадром. Открыть в полном размереРабочая область модели «Нативный тепловой цикл токоведущей детали». Нативный препроцессор FEMM 5. Открыть в полном размереСохранённое решение «Нативный тепловой цикл токоведущей детали». Температура T, К, на сохранённом шаге переходного теплового цикла. Шкала отображения 293,15–333,15 К выбрана для почти равномерного поля; её пределы не являются экстремумами решения. Изотермы скрыты. Открыть в полном размереРабочая область модели «Преддуговой нагрев плавкой вставки: теплоотвод и I²t». Нативный препроцессор FEMM 5. Открыть в полном размереСохранённое решение «Преддуговой нагрев плавкой вставки: теплоотвод и I²t». Температура T, К, на сохранённом шаге доплавительного нагрева тонкой медной вставки. Изотермы скрыты; виден продольный профиль температуры между охлаждаемыми торцами. Открыть в полном размереТепловая геометрия связанной модели индукционного нагрева, разделённая на подобласти назначения источников тепла. Зелёные точки — метки областей; длинные текстовые подписи скрыты в отображении. Открыть в полном размереСохранённое решение «Индукционный нагрев: переходное тепловое поле и температурная обратная связь». Температура T, К, на сохранённом шаге связанного индукционного нагрева. Прямоугольные подобласти служат назначению распределённых источников тепла; изотермы скрыты. Открыть в полном размере
Самостоятельная работа
Создайте журнал шагов и организуйте hi_saveas → hi_probdef с предыдущим решением → hi_analyze → hi_loadsolution → чтение ho; первые шаги повторите вручную. Сопоставьте исходный и изменённый режимы, сохраните исходные файлы, результаты и объяснение различия.
Критерий выполнения: Для \Delta t=2{,}1{,}0{,}5\,\mathrm{с} финальная температура сравнивается при одном t=20\,\mathrm{с}; предыдущие файлы явно перечислены; c_v=2\,\mathrm{МДж/(м^3\cdot К)} не смешана с 2·10⁶ Дж/(м³·К).