FEMM 5Поиск
ФормулыФайлы

Часть V · Электрические машины → § 40 · ТВВ-320-2. От поля к электрическим величинам

Занятие 40.1

Потокосцепления: цепь и интеграл по проводникам

Цель и задачи

Задачи

  • Для каждой ветви — сумма интегралов A_z по активным сторонам, затем фазное среднее и сравнение с цепями.
Что нужно вспомнить перед началом

Место занятия в инженерной методике

Расчётная лабораторная работа · Восстановление электрических характеристик синхронного генератора

Последовательность решения, отчёт и критерии результата

От геометрии и обмоток переходят к потокосцеплениям и ЭДС, затем к характеристикам ХХ, КЗ, нагрузки и регулирования. Эти характеристики определяют требуемое возбуждение и допустимый электрический режим.

Результат получают из наблюдаемых величин и проверяют в условиях данного практикума.

Последовательность решения

  1. Обосновать постановку и способ измерения. Для характеристики запишите, что фиксировано: скорость, возбуждение, напряжение, нагрузка или мощность. Скоростная ЭДС восстанавливается из пространственного потокосцепления.

  2. Разбор учебного результата. Проверьте уравнение выбранного генераторного режима и знаки мощности до построения серии.

  3. Потокосцепления: цепь и интеграл по проводникам. Выполните действия практикума по его исходной таблице. Методика и учебные файлы доступны. Проверки относятся к указанным в занятии примерам и версиям; заводская точность и завершённость всего численного цикла не заявляются.

  4. Ответить на вопрос по своим результатам. Сопоставьте контрольные величины, входы, версии и допуски.

Что включить в отчёт

Результат этого занятия. Для каждой ветви — сумма интегралов A_z по активным сторонам, затем фазное среднее и сравнение с цепями.

Оформление наблюдений. Возбуждение, скорость, фазные потокосцепления, ЭДС и согласованные токи/напряжения в объёме конкретного опыта; независимые условия каждой строки.

Как обосновать результат

Проверка из практикума. Учебная модель с документированными входами. Заводская и экспериментальная точность не заявляются. Схема равных токов ветвей не моделирует их циркулирующие токи. Сильнополевое продолжение B(H) остаётся допущением.

Независимый контроль. Учебная модель с документированными входами. Заводская и экспериментальная точность не заявляются. Схема равных токов ветвей не моделирует их циркулирующие токи. Сильнополевое продолжение B(H) остаётся допущением.

Критерий выполнения. Соблюдены определения, единицы, условия и критерии занятия. Учебная модель с документированными входами. Заводская и экспериментальная точность не заявляются. Схема равных токов ветвей не моделирует их циркулирующие токи. Сильнополевое продолжение B(H) остаётся допущением.

Точность и расхождения. Уточняйте шаг возбуждения или угла отдельно от сетки. При КЗ оценивайте абсолютное остаточное напряжение и его отношение к ненулевому масштабу режима.

Основание сравнения. Учебная модель с документированными входами. Заводская и экспериментальная точность не заявляются. Схема равных токов ветвей не моделирует их циркулирующие токи. Сильнополевое продолжение B(H) остаётся допущением.

Вывод для устройства

Свяжите полученную характеристику с выбором возбуждения, регулированием напряжения или допустимым режимом; укажите, какие проверки нужны для полной машины.

Границы вывода. Каждая характеристика требует своих независимых условий и скорости. Двумерный срез, заданные токи и статическое поле не подтверждают автоматически режим на сеть, устойчивость и полную мощность реального генератора.

Теория и вывод формул

Как проверить потокосцепление FEMM независимо от команды свойства цепи?

Обозначения и единицы

Нормировки, общие обозначения и единицы курса. Обозначения конкретной задачи приведены рядом с формулами.

Указатель формул этого занятия
  1. (40.1) · От поля к обмотке
  2. (40.2) · От поля к обмотке
  3. (40.3) · От поля к обмотке
  4. (40.4) · Энергетическая проверка
  5. (40.5) · Энергетическая проверка

Модель и обозначения

Занятие 15 из 36 в цикле ТВВ-320-2.

Результат этапа: Для каждой ветви — сумма интегралов A_z по активным сторонам, затем фазное среднее и сравнение с цепями.

Документированная учебная модель; заводская точность не заявляется. Новых полевых расчётов при подготовке публикации не выполнялось.

Общие обозначения цикла ТВВ-320
Таблица 40.1. Обозначения и единицы
ВеличинаФизический смыслЕдиница СИ
θm; θeМеханический и электрический углы; \theta e=p\theta mрад
pЧисло пар полюсов; для ТВВ-320-2 p=11
ULL; IЛинейное напряжение и фазный ток RMS основной симметричной составляющейВ; А
id; iq; IfАмплитудные токи d–q и постоянный ток возбужденияА
λd; λq; λfПотокосцепления в согласованной нормировкеВб·виток
Pg; Qg; TОтдаваемые активная и реактивная мощности; момент против часовой стрелкиВт; вар; Н·м

От поля к обмотке

В двумерной постановке A=(0{,}0,A_z ), B_x =\partial A_z /\partial y и B_y =-\partial A_z /\partial x. Для распределённой активной стороны с постоянной плотностью ампер-витков её вклад в потокосцепление задаётся средним A_z, умноженным на активную длину и знаковое число витков. Противоположная сторона замкнутой катушки имеет обратный знак.

mo_blockintegral(1) уже интегрирует A_z по объёму активной длины. Поэтому программа делит его на площадь стороны в м² и умножает на знаковое число витков. Повторное умножение на 6 м дало бы ошибку ровно в шесть раз.

Независимая площадь прямоугольника берётся из построителя и сравнивается с mo_blockintegral(5). Так обнаруживается неверная метка или случайный выбор соседней области.

  1. Nj включает знак стороны; площадь Sj — в м². Интеграл имеет единицы Вб·м², итог — Вб·виток.

    \lambda_c=\sum_{j\in c}\frac{N_j}{S_j}\int_{V_j}A_z\,dV
    (40.1)
  2. При двух равных параллельных токах фазная \lambda, сопряжённая полному iA, равна среднему потокосцеплению ветвей. Суммирование вместо среднего удваивает фазную ЭДС.

    \lambda_A=\frac{\lambda_{A1}+\lambda_{A2}}2
    (40.2)
  3. Равенство следует из ic=i\varphi /2. Оно относится к заданной модели равных токов; циркулирующие токи ветвей не рассчитаны.

    \sum_c i_c\lambda_c=i_A\lambda_A+i_B\lambda_B+i_C\lambda_C+I_f\lambda_f
    (40.3)

Энергетическая проверка

Для однозначного безгистерезисного закона магнитной среды w=\int H\cdot dB, w'=B\cdot H-w. Интегралы FEMM 2 и 17 дают W и W'. При граничном A_z =0 и заданных токах сумма энергий должна совпадать с суммой icλc всех семи цепей.

Проверка полезна для выявления пропущенной цепи возбуждения, неверного масштаба длины или неправильной нормировки ветвей. Она не проверяет адекватность исходной B(H) реальной стали. В линейном материале W=W'; при насыщении равенство половин обычно неверно.

  1. Сравнение выполняется по всему расчётному объёму, включая воздух.

    W+W^\prime=\sum_c i_c\lambda_c
    (40.4)
  2. Подстановка для второго токового состояния. Небольшая невязка сохраняется в протоколе, а не округляется до доказанного нуля.

    958296{,}4468+1682790{,}3347\simeq2641086{,}7859\ \mathrm{J}
    (40.5)

Ограничения и происхождение методики

Учебная модель с документированными входами. Заводская и экспериментальная точность не заявляются.

Схема равных токов ветвей не моделирует их циркулирующие токи. Сильнополевое продолжение B(H) остаётся допущением.

Числа получены новой реализацией FEMM 5; проверены хеши снимков и результатов. Архив вложения использован только для направлений и задания токов.

PDF проверен визуально: с. 4, (3)–(13); с. 5, (15)–(24). Отличия нормировок и обнаруженный знак (24) объяснены явно. Формулы самостоятельно выведены; чужие численные результаты не использованы.

Реестр формул и библиография в файлах занятия отделяют собственные выводы от доступных первоисточников. Недоступные тексты и текстовое распознавание PDF не объявлены полной визуальной проверкой.

Разобранный численный пример

Разбор учебного результата

Дано. ТВВ-320-2; документированные входы и точные версии программ из файлов занятия.

Порядок выполнения — в практикуме.

Ответ: Для каждой ветви — сумма интегралов A_z по активным сторонам, затем фазное среднее и сравнение с цепями.

Проверка: Учебная модель с документированными входами. Заводская и экспериментальная точность не заявляются. Схема равных токов ветвей не моделирует их циркулирующие токи. Сильнополевое продолжение B(H) остаётся допущением.

Практикум в FEMM 5

Потокосцепления: цепь и интеграл по проводникам

Таблица 40.2. Исходные данные практикума
Исходная величинаЗначениеЕдиница
W состояния 2958300Дж
W' состояния 21,683 × 10⁶Дж
Невязка потокосцеплений состояния 23,332 × 10⁻¹⁵1
Невязка энергии состояния 21,64 × 10⁻⁹1
  1. В field_results.py найдите проход по активным сторонам: mo_selectblock, интегралы 1 и 5, сброс выбора. Затем проследите суммирование по цепям.
  2. Сравните independent_circuit_flux_Wb с третьим компонентом каждого значения circuits. Площадь стороны проверяйте до деления.
  3. Выберите все области для интегралов энергии и коэнергии. Независимо пересчитайте сумму первых и третьих компонентов circuits.
  4. Проверьте уровни допуска: 10⁻⁶ для нормированной невязки потокосцепления и 10⁻⁵ для энергии; это алгебраические проверки, отличные от 1% сеточной сходимости.

Ожидаемый результат. Для каждой ветви — сумма интегралов A_z по активным сторонам, затем фазное среднее и сравнение с цепями.

Как проверить. Учебная модель с документированными входами. Заводская и экспериментальная точность не заявляются. Схема равных токов ветвей не моделирует их циркулирующие токи. Сильнополевое продолжение B(H) остаётся допущением.

Обработка и анализ результатов

Как проверить потокосцепление FEMM независимо от команды свойства цепи?

  1. Сопоставьте контрольные величины, входы, версии и допуски.

С чем сравнить. Учебная модель с документированными входами. Заводская и экспериментальная точность не заявляются. Схема равных токов ветвей не моделирует их циркулирующие токи. Сильнополевое продолжение B(H) остаётся допущением.

Итог работы. Для каждой ветви — сумма интегралов A_z по активным сторонам, затем фазное среднее и сравнение с цепями.

Полная программа: run_fields.py

Встроенный Python FEMM 5. Зависимости, входы и точные снимки программ доступны в файлах занятия.

Python · FEMM 5
"""Занятия 11–15: самостоятельные ненулевые решения учебной модели."""
import sys,json,math,os
ROOT=globals().get('TVV_ROOT','')
if not ROOT:raise ValueError('Задайте TVV_ROOT')
if ROOT in sys.path:sys.path.remove(ROOT)
sys.path.insert(0,ROOT)
# Повторный запуск редактора не должен использовать старые модули другой копии.
for module in ('run_record','geometry','physics','build','field_results','material_variants'):
    sys.modules.pop(module,None)
from run_record import start,finish,save_json,sha
from build import build
from field_results import collect
from material_variants import variant
names=['run_fields.py','field_results.py','run_record.py','build.py','geometry.py','physics.py',
       'machine.json','winding.json','rotor-bh.json','stator-bh.json','stator-cross-bh.json','field-plan.json','model-scope.json','current-mapping.json','material_variants.py']
resume=globals().get('TVV_RESUME_DIR','')
selected=globals().get('TVV_CASE_ID',None);series=globals().get('TVV_SERIES','four-states')
part=globals().get('TVV_PART',0);parts=globals().get('TVV_PARTS',1)
if parts<1 or not 0<=part<parts:raise ValueError('Неверная часть серии')
if resume:
    folder=resume
    with open(folder+'/receipt.json') as f:record=json.loads(f.read())
    if (record.get('selected_case'),record.get('series'),record.get('part',0),record.get('parts',1))!=(selected,series,part,parts):
        raise ValueError('Продолжение требует того же набора заданий')
    for name,digest in record['inputs_and_programs'].items():
        if sha(ROOT+'/'+name)!=digest or sha(folder+'/snapshot/'+name)!=digest:
            raise ValueError('Изменены входы или версия программы: '+name)
    if 'case_outputs' not in record:raise ValueError('В этой квитанции нет проверяемых промежуточных результатов')
else:
    folder,record=start(ROOT,globals().get('TVV_OUTPUT_ROOT',ROOT+'/runs'),'fields',names,'nonzero teaching model; no factory accuracy claim')
    record['case_outputs']={}
def load(name):
    with open(folder+'/snapshot/'+name+'.json') as f:return json.loads(f.read())
plan=load('field-plan');scope=load('model-scope');rows=[]
if scope['factory_accuracy_claim']:raise ValueError('Необоснованное заявление о заводской точности')
record.update(selected_case=selected,series=series,part=part,parts=parts,status='running')
save_json(folder+'/receipt.json',record)
try:
    cases=[c for c in plan['cases'] if (c['id']==selected if selected else c.get('series')==series)]
    for index,case in enumerate(cases):
        if index%parts!=part:continue
        if case['id'] in record['case_outputs']:
            for name,digest in record['case_outputs'][case['id']].items():
                if sha(folder+'/'+name)!=digest:raise ValueError('Повреждён результат продолжения: '+name)
            with open(folder+'/'+case['id']+'-result.json') as f:rows.append(json.loads(f.read()))
            print('TVV_FIELD_REUSED',case['id']);continue
        machine=load('machine');winding=load('winding')['rows'];mesh=plan['mesh'].copy()
        for key in mesh:mesh[key]*=case.get('mesh_scale',1.)
        mesh.update(case.get('mesh_overrides',{}))
        for section,values in case.get('overrides',{}).items():machine[section].update(values)
        materials={'rotor':load('rotor-bh'),'stator':load(case.get('stator_curve','stator')+'-bh')}
        machine['_bh_limits']={tag:[v['points'][0][0],v['points'][-1][0]] for tag,v in materials.items()}
        for tag in materials:materials[tag]['points']=variant(materials[tag]['points'],case.get('bh_mode','native'))
        path=folder+'/'+case['id']+'.fem'
        record['active_case']=case['id'];save_json(folder+'/receipt.json',record)
        print('TVV_FIELD_BUILD',case['id'])
        build(globals(),machine,winding,materials,path,mesh,case['theta_deg'],case['currents_dqf_A'])
        mi_close();opendocument(path);mi_analyze(1);mi_loadsolution()
        print('TVV_FIELD_SOLVED',case['id'],mo_numelements())
        row=collect(globals(),machine,winding,case['theta_deg'],case['currents_dqf_A'],folder,case['id'],case.get('coverage',True),case.get('contour_samples',1440))
        row['case']=case;row['mesh']=mesh
        limits=plan['acceptance']
        errors={name:abs(values[2]-row['independent_circuit_flux_Wb'][name])/max(abs(values[2]),limits['flux_absolute_scale_Wb']) for name,values in row['circuits'].items()}
        row['flux_identity_relative_error']=max(errors.values())
        row['energy_identity_relative_error']=abs(row['energy_J']+row['coenergy_J']-row['sum_i_lambda_J'])/max(abs(row['sum_i_lambda_J']),limits['energy_absolute_scale_J'])
        rows.append(row);save_json(folder+'/results.json',rows)
        if row['max_copper_area_relative_error']>1e-8:raise ValueError('Площадь активных областей не совпадает')
        if row['flux_identity_relative_error']>limits['flux_identity_relative']:raise ValueError('Независимое потокосцепление не совпадает')
        if row['energy_identity_relative_error']>limits['energy_identity_relative']:raise ValueError('Не выполнен энергетический интеграл')
        mo_close();mi_close()
        save_json(folder+'/'+case['id']+'-result.json',row)
        record['case_outputs'][case['id']]={name:sha(folder+'/'+name) for name in os.listdir(folder) if name.startswith(case['id']+'.') or name.startswith(case['id']+'-')}
        save_json(folder+'/receipt.json',record);print('TVV_FIELD_CHECKED',case['id'])
    if not rows:raise ValueError('Не найдено задание расчёта')
    record['checks']={'cases':len(rows),'factory_validation':False,'mesh_convergence':False}
    finish(folder,record,'passed_field_identities_not_convergence')
except Exception as error:
    record['error']=str(error);save_json(folder+'/results.json',rows);finish(folder,record,'failed');raise
print('TVV_FIELDS_RESULT',folder,record['status'])

Самостоятельная работа

Пересчитайте \lambda A для состояния 2 из двух ветвей и затем Σicλc. Покажите алгебраически, почему среднее \lambda ветвей сохраняет мощностную нормировку.

Критерий выполнения: Соблюдены определения, единицы, условия и критерии занятия. Учебная модель с документированными входами. Заводская и экспериментальная точность не заявляются. Схема равных токов ветвей не моделирует их циркулирующие токи. Сильнополевое продолжение B(H) остаётся допущением.

Литература

Полные библиографические описания

Пояснения и типичные ошибки
Как проверить потокосцепление FEMM независимо от команды свойства цепи?

Для каждой ветви — сумма интегралов A_z по активным сторонам, затем фазное среднее и сравнение с цепями.

Какие ограничения необходимо сохранить в выводе?

Учебная модель с документированными входами. Заводская и экспериментальная точность не заявляются. Схема равных токов ветвей не моделирует их циркулирующие токи. Сильнополевое продолжение B(H) остаётся допущением.

На что обратить внимание

  • Повторно умножить объёмный интеграл на длину.
  • Потерять знак возвращающей стороны.
  • Забыть сброс выбора блоков или обмотку возбуждения в энергетической сумме.
НИУ «МЭИ» · Кафедра ЭМЭЭА · Учебное пособие по FEMM 5 · Теория, вычислительный эксперимент и проверка результата.

Файлы занятия

Статус, проверки и источники

Поиск по пособию

    Разделы

    На этой странице