Подготовительный этап методики · Восстановление электрических характеристик синхронного генератора
Последовательность решения, отчёт и критерии результата
От геометрии и обмоток переходят к потокосцеплениям и ЭДС, затем к характеристикам ХХ, КЗ, нагрузки и регулирования. Эти характеристики определяют требуемое возбуждение и допустимый электрический режим.
Результат этого этапа — проверенная постановка или воспроизводимая процедура перед серией расчётов.
Последовательность решения
Обосновать постановку и способ измерения. Для характеристики запишите, что фиксировано: скорость, возбуждение, напряжение, нагрузка или мощность. Скоростная ЭДС восстанавливается из пространственного потокосцепления.
Сборка полного сечения и проверка сохранённого FEM. Выполните действия практикума по его исходной таблице. Методика и учебные файлы доступны. Проверки относятся к указанным в занятии примерам и версиям; заводская точность и завершённость всего численного цикла не заявляются.
Оформление наблюдений. Возбуждение, скорость, фазные потокосцепления, ЭДС и согласованные токи/напряжения в объёме конкретного опыта; независимые условия каждой строки.
Как обосновать результат
Точность и расхождения. Критерий этого этапа — соответствие исходным данным, топологии, назначениям и процедуре повторного открытия. Численный допуск поля здесь не назначают: поле ещё не является защищаемым результатом. Расхождения размеров и параметров фиксируйте с единицами и происхождением.
Вывод для устройства
Свяжите полученную характеристику с выбором возбуждения, регулированием напряжения или допустимым режимом; укажите, какие проверки нужны для полной машины.
Границы вывода. Каждая характеристика требует своих независимых условий и скорости. Двумерный срез, заданные токи и статическое поле не подтверждают автоматически режим на сеть, устойчивость и полную мощность реального генератора.
Теория и вывод формул
Как установить, что все пазы, цепи и области пережили сохранение и повторное открытие?
Механический и электрический углы; \theta e=p\theta m
рад
p
Число пар полюсов; для ТВВ-320-2 p=1
1
ULL; I
Линейное напряжение и фазный ток RMS основной симметричной составляющей
В; А
id; iq; If
Амплитудные токи d–q и постоянный ток возбуждения
А
λd; λq; λf
Потокосцепления в согласованной нормировке
Вб·виток
Pg; Qg; T
Отдаваемые активная и реактивная мощности; момент против часовой стрелки
Вт; вар; Н·м
От шаблонов к единой области
Сначала строим незамкнутые профили пазов; затем дуги оставшихся зубцов, внешнюю окружность статора, отверстие ротора и внешнюю границу воздуха. Область зазора связана с открытыми пазами, поэтому одна метка воздуха может назначить всю эту связную область. Замыкающие хорды локальных шаблонов сюда не входят.
Отдельные метки нужны внутри каждого замкнутого прямоугольника проводника. Всего создаётся 365 меток: 360 активных сторон плюс отверстие, роторная сталь, статорная сталь, зазор с пазами и внешняя область. У разных ролей должны быть устойчивые номера групп и понятные русские имена; номера групп являются служебными идентификаторами FEMM.
Группа 11 содержит только активные стороны ротора; группы 101…106 — шесть ветвей статора; 10 — геометрию ротора и его непроводящие/стальные области, 20 — статор. При будущих поворотах выбор только группы 10 не повернёт обмотку группы 11. В текущем построителе каждый угол строится заново из параметров, что исключает накопление ошибок последовательных поворотов.
Параметры задачи, цепей и границы
build.py задаёт магнитостатику, миллиметры, плоскую задачу, глубину 6000 мм и численную точность 10⁻⁸. Ток возбуждения передаётся одной последовательной цепи F, фазные токи делятся на две ветви. В нулевой проверке все токи равны нулю.
Во внешнем круге радиус равен 2\times 1295=2590 мм, A=0. Число 2 — начальная численная настройка, а не размер корпуса. Правомерность этой границы для ненулевого поля требует удаления границы и сравнения интегральных результатов. Нулевой опыт этого не проверяет.
Воздух и области заданного тока имеют \mu _{r}=1. Проводимость областей тока оставлена нулевой: в этой магнитостатической постановке требуются ампер-витки, а не потери в условном сплошном прямоугольнике. Статорная B(H) пока изотропно использует продольную таблицу; это ограничение должно сопровождать каждый сохранённый файл.
Проверка числа меток обнаруживает пропущенную сторону, но сама по себе не доказывает правильность расположения.
Для данной задачи нет постоянных магнитов и ненулевых граничных источников. Нулевой результат проверяет отсутствие случайно оставленных возбуждений, но не насыщение.
run_geometry.py создаёт очередной geometry-NNNNN, записывает SHA-256 входов и программ, сохраняет модель, закрывает её и повторно открывает именно файл. После расчёта фиксируются площади, параметры цепей, энергия и хеши FEM/ANS. Изменение программы после расчёта требует новой квитанции, даже если имя модели осталось прежним.
Для локальных примеров занятий 5–9 дополнительно сохраняется snapshot с копиями входов и программ. Повторный запуск не заменяет прежний каталог. Файл examples/checked-02/manifest.json относится только к выбранным собственным учебным примерам; исходных библиотечных FEM/ANS в нём нет.
Проверенный нулевой расчёт полного сечения содержит 516221 элемент и 258205 узлов. Это описание одной сетки, а не требование получить ровно столько же элементов на другой сборке FEMM. Три сетки, внешняя граница и угловое сгущение остаются следующим отдельным рубежом.
Ограничения и происхождение методики
Сохранение, повторное открытие и нулевая топология проверены. Четыре ненулевых состояния рассматриваются в занятии 11, численная сходимость — в занятиях 12–14, отдельная проверка статических сил всех четырёх состояний — в занятии 28.
independent mathematical checks; no claim of factory validation
Реестр формул и библиография в файлах занятия отделяют собственные выводы от доступных первоисточников. Недоступные тексты и текстовое распознавание PDF не объявлены полной визуальной проверкой.
Разобранный численный пример
Разбор учебного результата
Дано. ТВВ-320-2; документированные входы и точные версии программ из файлов занятия.
Проверьте названия A_{1} — ветвь статора … F — возбуждение ротора и русские названия материалов после повторного открытия FEM.
Ответ: Полная нулевая модель с кириллицей и семью независимыми интегралами площади проводников.
Проверка: Сохранение, повторное открытие и нулевая топология проверены. Четыре ненулевых состояния рассматриваются в занятии 11, численная сходимость — в занятиях 12–14, отдельная проверка статических сил всех четырёх состояний — в занятии 28.
Практикум в FEMM 5
Сборка полного сечения и проверка сохранённого FEM
Задайте TVV_ROOT и выполните run_geometry.py. Откройте receipt.json нового каталога, проверьте passed_zero_current_roundtrip.
В geometry.py найдите emit_geometry. Для дуги метка выбора находится на середине самой дуги, а не на середине хорды; иначе mi_selectarcsegment может выбрать другой объект.
Проверьте названия A_{1} — ветвь статора … F — возбуждение ротора и русские названия материалов после повторного открытия FEM.
В постпроцессоре выбирайте группы по одной, считайте mo_blockintegral(5), очищайте выделение между группами. Иначе площадь следующей группы накопит предыдущую.
Сравните семь площадей с формулами, затем mo_blockintegral(2) по всей модели с нулём. Не принимайте успешное завершение mi_analyze за проверку назначения всех материалов.
Ожидаемый результат. Полная нулевая модель с кириллицей и семью независимыми интегралами площади проводников.
Как проверить. Сохранение, повторное открытие и нулевая топология проверены. Четыре ненулевых состояния рассматриваются в занятии 11, численная сходимость — в занятиях 12–14, отдельная проверка статических сил всех четырёх состояний — в занятии 28.
Оценка результата
Как установить, что все пазы, цепи и области пережили сохранение и повторное открытие?
Сопоставьте контрольные величины, входы, версии и допуски.
Полная программа: run_geometry.py
Встроенный Python FEMM 5. Зависимости, входы и точные снимки программ доступны в файлах занятия.
Python · FEMM 5
"""Откройте во встроенном Python FEMM 5 после задания ROOT.Нулевой ток проверяет построение, материалы, кириллицу и повторное открытие.Это не проверка рабочих характеристик. Исходные файлы не изменяются."""importos,sys,jsonROOT=globals().get('TVV_ROOT','')ifnotROOT:raiseValueError('Задайте TVV_ROOT — абсолютный путь к каталогу учебного комплекта')ifROOTnotinsys.path:sys.path.insert(0,ROOT)frombuildimportbuilddefload(name):withopen(ROOT+'/'+name+'.json')asfile:returnjson.loads(file.read())defnew_run():parent=globals().get('TVV_OUTPUT_ROOT',ROOT+'/runs')ifnotos.path.exists(parent):os.mkdir(parent)forninrange(1,100000):folder=parent+'/geometry-%05d'%nifnotos.path.exists(folder):os.mkdir(folder)returnfolderraiseValueError('Не удалось создать новый каталог')folder=new_run()machine=load('machine');winding=load('winding')['rows']materials={tag:load(tag+'-bh')fortagin('rotor','stator')}model=folder+'/ТВВ-320 — проверка построения.fem'record={'status':'running','purpose':'zero-current topology and Cyrillic roundtrip only','inputs':{},'programs':{}}try:importhashlib,binasciifornamein('machine.json','winding.json','rotor-bh.json','stator-bh.json'):record['inputs'][name]=binascii.hexlify(hashlib.sha256(open(ROOT+'/'+name,'rb').read()).digest()).decode()fornamein('geometry.py','physics.py','build.py','run_geometry.py'):record['programs'][name]=binascii.hexlify(hashlib.sha256(open(ROOT+'/'+name,'rb').read()).digest()).decode()record['geometry']=build(globals(),machine,winding,materials,model)mi_close()opendocument(model)mi_analyze(1);mi_loadsolution()record['nodes']=mo_numnodes();record['elements']=mo_numelements()record['areas_mm2']={}forgroupin(11,101,102,103,104,105,106):mo_groupselectblock(group)area=mo_blockintegral(5)*1e6mo_clearblock()expected=(252*machine['rotor']['conductor_width_mm']*machine['rotor']['conductor_height_mm']ifgroup==11else18*machine['stator']['conductor_width_mm']*machine['stator']['conductor_height_mm'])record['areas_mm2'][str(group)]={'native':area,'independent_rectangles':expected}ifabs(area-expected)>expected*1e-8:raiseValueError('Площадь проводников не совпадает: группа '+str(group))record['circuits']={}fornamein['A1 — ветвь статора','A2 — ветвь статора','B1 — ветвь статора','B2 — ветвь статора','C1 — ветвь статора','C2 — ветвь статора','F — возбуждение ротора']:record['circuits'][name]=mo_getcircuitproperties(name)mo_groupselectblock();record['energy_J']=mo_blockintegral(2);mo_clearblock()ifabs(record['energy_J'])>1e-12:raiseValueError('Ненулевая энергия при нулевых токах')record['status']='passed_zero_current_roundtrip'mo_close();mi_close()record['outputs']={}forsuffixin('.fem','.ans'):path=model[:-4]+suffixrecord['outputs'][path.rsplit('/',1)[-1]]=binascii.hexlify(hashlib.sha256(open(path,'rb').read()).digest()).decode()exceptExceptionaserror:record['status']='failed';record['error']=str(error)raisefinally:withopen(folder+'/receipt.json','w')asfile:file.write(json.dumps(record))print('TVV_GEOMETRY_RESULT',folder,record['status'])
Самостоятельная работа
Составьте таблицу «роль → русское имя → группа → ожидаемое число меток → независимая площадь». Для каждой проверки укажите ошибку, которую она способна обнаружить, и ошибку, которую она не обнаруживает.
Критерий выполнения: Соблюдены определения, единицы, условия и критерии занятия. Сохранение, повторное открытие и нулевая топология проверены. Четыре ненулевых состояния рассматриваются в занятии 11, численная сходимость — в занятиях 12–14, отдельная проверка статических сил всех четырёх состояний — в занятии 28.
Пояснения и типичные ошибкиКакие ограничения необходимо сохранить в выводе?
Сохранение, повторное открытие и нулевая топология проверены. Четыре ненулевых состояния рассматриваются в занятии 11, численная сходимость — в занятиях 12–14, отдельная проверка статических сил всех четырёх состояний — в занятии 28.
На что обратить внимание
Не очистить выделение блоков между интегралами: ошибка площади возрастает от группы к группе.
Выбирать дугу по середине хорды: на узком пазе выделится соседняя геометрия.
Считать нулевое решение проверкой рабочих режимов, границы или сеточной сходимости: нулевое поле от этих факторов почти ничего не требует.