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

Часть V · Электрические машины → § 41 · ТВВ-320-2. Рабочие характеристики

Занятие 41.5

Угловая характеристика при заданной сети

Перед началом

Что нужно вспомнить перед началом

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Как изменяются мощность и реактивная нагрузка при заданном угле напряжения?

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

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

Указатель формул этого занятия
  1. (41.39) · От полевой задачи к заданному электрическому режиму
  2. (41.40) · От полевой задачи к заданному электрическому режиму
  3. (41.41) · От полевой задачи к заданному электрическому режиму
  4. (41.42) · От полевой задачи к заданному электрическому режиму
  5. (41.43) · От полевой задачи к заданному электрическому режиму
  6. (41.44) · Сеть и угол нагрузки
  7. (41.45) · Сеть и угол нагрузки
  8. (41.46) · Сеть и угол нагрузки
  9. (41.47) · Внешний поиск: что делает каждый вызов FEMM
  10. (41.48) · Внешний поиск: что делает каждый вызов FEMM
  11. (41.49) · Внешний поиск: что делает каждый вызов FEMM

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

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

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

Общие обозначения цикла ТВВ-320
Таблица 41.9. Обозначения и единицы
ВеличинаФизический смыслЕдиница СИ
θ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Отдаваемые активная и реактивная мощности; момент против часовой стрелкиВт; вар; Н·м

От полевой задачи к заданному электрическому режиму

Ротор физически поворачивается на \theta k=2\pi k/N. Для каждой позиции фазные токи меняются вместе с преобразованием Парка так, чтобы i_d, i_q, If оставались заданными. Полная область сохраняется; сокращение угла до пазового периода не предполагается. Сначала усредняются потокосцепления в d–q, затем вычисляется основная установившаяся электрическая составляющая. Пульсации отдельно сохраняются в угловых решениях.

Вектор q направлен на +90^\circ от d; строка q преобразования Парка содержит -\sin. Токи статора положительны внутрь машины. Поэтому отдаваемая генератором мощность имеет знак минус относительно пассивной мощности u\cdot i. \Omega =\omega =314{,}1592654 рад/с для одной пары полюсов. Положительный электромагнитный момент направлен против часовой стрелки.

Сопротивление фазы 0,001335 Ом относится к документированному входу при 15 °C. В этом учебном расчёте используется только активное поперечное сечение. Лобовая индуктивность исключена явно: формулы описывают данную 2D-модель и не являются заводской характеристикой выводов машины. Подстановка неизвестного «типового» лобового рассеяния запрещена.

Для серий используется отдельно проверенная пазовая катушка ротора с семью витками и явными сеточными ограничениями. До расчётов сравниваются её четыре токовых состояния с моделью, имеющей 252 отдельные стороны, и три сетки. Ускоренный построитель build_series.py не заменяет подробный построитель первых занятий.

  1. Усреднение выполняется после перехода в вращающуюся систему. Среднее фазной переменной полного периода почти равно нулю и не заменяет эту операцию.

    \bar\lambda_d=\frac1N\sum_{k=0}^{N-1}\lambda_d(\theta_k),\quad\bar\lambda_q=\frac1N\sum_{k=0}^{N-1}\lambda_q(\theta_k)
    (41.39)
  2. Из u=Ri +d\lambda /dt в неподвижных осях: производная вращающегося базиса даёт перекрёстные скоростные слагаемые. Все d–q-величины амплитудные.

    u_d=R_s i_d-\omega\bar\lambda_q,\qquad u_q=R_s i_q+\omega\bar\lambda_d
    (41.40)
  3. Множители √3 и √2 преобразуют фазную амплитуду в линейное действующее напряжение.

    U_{LL}=\sqrt{\frac32(u_d^2+u_q^2)},\qquad I_{\text{д}}=\sqrt{\frac{i_d^2+i_q^2}{2}}
    (41.41)
  4. Q>0 соответствует отдаче реактивной мощности в принятом генераторном соглашении. У нулевого тока \cos \varphi не определён.

    P_g=-\frac32(u_di_d+u_qi_q),\quad Q_g=-\frac32(u_qi_d-u_di_q),\quad \cos\varphi=\frac{P_g}{\sqrt{P_g^2+Q_g^2}}
    (41.42)
  5. Это проверяемое тождество установившейся основной составляющей. Отдельно сравнивается T_{\mathrm{dq}} со средним моментом Максвелла; совпадение не предполагается для одного углового снимка.

    T_{dq}=\frac32(\bar\lambda_di_q-\bar\lambda_qi_d),\quad P_g+\frac32R_s(i_d^2+i_q^2)+\Omega T_{dq}=0
    (41.43)

Сеть и угол нагрузки

Задаются модуль напряжения 20 кВ, If=1500 А и \delta =0…60° с шагом 10^\circ. Неизвестны обе составляющие тока. Это связь машины с идеальной симметричной сетью основной частоты в рамках активного сечения; регулирование возбуждения отсутствует.

Угол \delta=atan2(ud,uq) положителен при повороте от оси q к оси d, то есть по часовой стрелке: ось q направлена на +90^\circ от d. Это отдельное соглашение об угле нагрузки; механический угол ротора положителен против часовой стрелки. Формулу Pmax \sin \delta здесь не подставляют вместо поля: насыщение и явнополюсность могут изменить форму. Рассчитанный диапазон 0…60° сам по себе не устанавливает полный предел статической устойчивости.

  1. Переход от линейного RMS-напряжения к амплитудным d–q-компонентам.

    u_d^*=\sqrt{\frac23}U_{LL}\sin\delta,\quad u_q^*=\sqrt{\frac23}U_{LL}\cos\delta
    (41.44)
  2. Обе компоненты должны удовлетворять одной заданной сетевой паре.

    r=\frac1{\sqrt{2/3}U_{LL}}(u_d-u_d^*,\ u_q-u_q^*)
    (41.45)
  3. Для каждого \delta токи получены новым обратным полевым расчётом.

    P_g(\delta)=-\frac32(u_di_d+u_qi_q)
    (41.46)

Внешний поиск: что делает каждый вызов FEMM

Одна оценка функции невязки включает N самостоятельных нелинейных решений. series_session.py создаёт и кэширует только собственную геометрию при данном угле; mi_modifycircprop меняет ток каждой цепи. Перед решением сохраняется новый FEM, документ закрывается и открывается заново. Из mo_getcircuitproperties извлекаются реальные токи и потокосцепления; равные параллельные ветви дают среднее фазное потокосцепление.

Неизвестные нормируются ширинами разрешённых интервалов. Начальный якобиан берётся конечной разностью с шагом 0,002 нормированной координаты, далее используется обновление Бройдена. Шаг ограничен 0,15 ширины интервала; при росте невязки уменьшается вдвое. Ни выход за границы, ни исчерпание итераций не признаются найденным режимом.

В latest-search.json и results.json сохраняются неизвестные, физические невязки после нормировки и их максимум. Отказ поиска означает лишь, что данный алгоритм из выбранной начальной точки не подтвердил режим в указанных границах. Он не доказывает физическую невозможность режима.

Продолжение с TVV_RESUME_DIR сверяет версии программ, входы и SHA-256 сохранённых FEM/ANS/JSON. Повторное использование результата с другими токами или углом запрещено. Обычный запуск всегда создаёт новый каталог.

  1. Нормировка неизвестных не меняет размерность физических x; ток возбуждения остаётся в амперах, угол — в радианах.

    z_j=\frac{x_j-x_{j,\min}}{x_{j,\max}-x_{j,\min}},\quad J_ks_k=-r_k
    (41.47)
  2. Секущая поправка Бройдена уменьшает число дорогих полевых оценок, но не освобождает от окончательной проверки невязки.

    J_{k+1}=J_k+\frac{(\Delta r_k-J_k\Delta z_k)\Delta z_k^T}{\Delta z_k^T\Delta z_k}
    (41.48)
  3. Масштабы каждой компоненты заданы в файле characteristic-plan*.json точного snapshot соответствующей серии. Малое значение одной компоненты не компенсирует большую другую.

    \|r\|_\infty\le10^{-3}
    (41.49)

Численная подстановка из сохранённого решения

Для средней опубликованной точки средние потокосцепления \lambda d=45.04229359, \lambda q=-25.98467396 Вб·виток, токи i_d=-3596.369826, i_q=-5029.26159 А. Подстановка в ud=0{,}001335 i_d-314{,}1592654 \lambda q и uq=0{,}001335 i_q+314{,}1592654 \lambda d даёт ud=8159 В, uq=14140 В.

Максимальное нормированное изменение потокосцеплений в контрольной точке при удвоении числа углов: 75,02 × 10⁻⁶. Для компонент около нуля знаменатель ограничен 1 Вб·витком. Эта проверка относится к указанной контрольной точке, а не автоматически ко всем режимам всей машины.

Результаты относятся к точным снимкам программ внутри квитанции characteristic-00007. При дальнейшем изменении программы опубликованные доказательства не перезаписываются. Перед переносом чисел на новую версию требуется повторный расчёт.

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

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

Полный выпуск требует независимого аудита всех точек, файлов и границ применимости.

Таблица извлечена только после проверки всех хешей. Электрические соотношения выведены из выбранной нормировки Парка; чужая расчётная карта не использована.

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

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

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

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

  1. Для одной полевой оценки проследите цепочку: токи d–q → фазные токи → половина тока в каждой ветви → mi_modifycircprop → сохранение/повторное открытие FEM → mi_analyze → mo_getcircuitproperties → среднее \lambda d,\lambda q.

  2. Проверьте каждое ограничение по итоговым U,P,Q,I,If, а затем angular-check.json. При отказе критерия исследуйте сетку, углы и поиск; не ослабляйте допуск задним числом.

  3. Воспроизведите таблицу контрольных величин и баланс Pg+Pcu+\Omega T. Сохраните квитанцию, точные программы и входы вместе с выбранными FEM/ANS.

Ответ: Сохранённые полевые решения, журнал подбора, таблица и график угловая характеристика при заданной сети.

Проверка: Учебная модель с документированными входами; заводская точность не заявляется. Полный выпуск требует независимого аудита всех точек, файлов и границ применимости.

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

Угловая характеристика при заданной сети

Таблица 41.10. Исходные данные практикума
Исходная величинаЗначениеЕдиница
If = 1500 А; i_d = -2609.9 А; i_q = -3.09286 АU = 19999.82 В; I = 1845.4799 А; P = 0.075697865 МВт; Q = 63.928677 МварSI; токи d–q амплитудные
If = 1500 А; i_d = -2719.47 А; i_q = -1714.27 АU = 20001.361 В; I = 2273.1323 А; P = 52.903124 МВт; Q = 58.332322 МварSI; токи d–q амплитудные
If = 1500 А; i_d = -3045.67 А; i_q = -3398.91 АU = 19999.965 В; I = 3227.1302 А; P = 103.73152 МВт; Q = 41.676972 МварSI; токи d–q амплитудные
If = 1500 А; i_d = -3596.37 А; i_q = -5029.26 АU = 19997.759 В; I = 4371.9188 А; P = 150.71046 МВт; Q = 14.752144 МварSI; токи d–q амплитудные
If = 1500 А; i_d = -4382.81 А; i_q = -6571.54 АU = 19996.723 В; I = 5585.4365 А; P = 192.29288 МВт; Q = -21.158983 МварSI; токи d–q амплитудные
If = 1500 А; i_d = -5413.55 А; i_q = -7975.86 АU = 19996.088 В; I = 6816.1901 А; P = 227.13976 МВт; Q = -64.329323 МварSI; токи d–q амплитудные
If = 1500 А; i_d = -6675.87 А; i_q = -9174.09 АU = 19997.108 В; I = 8022.818 А; P = 253.96958 МВт; Q = -112.76456 МварSI; токи d–q амплитудные
  1. Распакуйте самостоятельный комплект в чистый каталог. Сначала проверьте сравнение build_series.py с подробным построителем на четырёх токовых состояниях; затем откройте файл characteristic-plan*.json из snapshot выбранной семьи (имя указано в её квитанции) и прочитайте фиксированные величины.
  2. В редакторе встроенного Python задайте TVV_ROOT как абсолютный путь и TVV_CHARACTERISTIC="angle". Выполните exec(open(TVV_ROOT+"/run_characteristics_v3.py").read(), globals()). Для точного повторения опубликованной версии используйте reproduce.py и snapshot из examples/checked-04/angle. Внешний Python и sim не требуются.
  3. Для одной полевой оценки проследите цепочку: токи d–q → фазные токи → половина тока в каждой ветви → mi_modifycircprop → сохранение/повторное открытие FEM → mi_analyze → mo_getcircuitproperties → среднее \lambda d,\lambda q.
  4. Откройте results.json и evaluations.json. Первое содержит принятые точки характеристики, второе — также промежуточные полевые оценки. Не наносите промежуточные итерации как физические точки заданной характеристики.
  5. Проверьте каждое ограничение по итоговым U,P,Q,I,If, а затем angular-check.json. При отказе критерия исследуйте сетку, углы и поиск; не ослабляйте допуск задним числом.
  6. Воспроизведите таблицу контрольных величин и баланс Pg+Pcu+\Omega T. Сохраните квитанцию, точные программы и входы вместе с выбранными FEM/ANS.

Ожидаемый результат. Сохранённые полевые решения, журнал подбора, таблица и график угловая характеристика при заданной сети.

Как проверить. Учебная модель с документированными входами; заводская точность не заявляется. Полный выпуск требует независимого аудита всех точек, файлов и границ применимости.

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

Как изменяются мощность и реактивная нагрузка при заданном угле напряжения?

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

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

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

Python · FEMM 5
"""Шесть характеристик и обратный режим: полевые оценки и полный журнал поиска."""
import sys,json,math,os
ROOT=globals().get('TVV_ROOT','')
if ROOT in sys.path:sys.path.remove(ROOT)
sys.path.insert(0,ROOT)
from run_record import start,finish,save_json,sha
from series_session import FieldSession
from regimes import electrical,search
names=['run_characteristics_v3.py','series_session.py','build_series.py','geometry.py','physics.py','regimes.py','numerics.py','run_record.py','machine.json','winding.json','rotor-bh.json','stator-bh.json','characteristic-plan-v3.json','model-scope.json']
family=globals().get('TVV_CHARACTERISTIC','occ')
resume=globals().get('TVV_RESUME_DIR','')
if resume:
    folder=resume
    with open(folder+'/receipt.json') as f:record=json.loads(f.read())
    if record['family']!=family or 'completed_evaluations' not in record: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)
else:
    folder,record=start(ROOT,globals().get('TVV_OUTPUT_ROOT',ROOT+'/runs'),'characteristic',names,'2D active-section educational characteristics; Lend excluded, DC resistance at 15 C')
    record.update(family=family,completed_evaluations={},field_points={})
def load(name):
    with open(folder+'/snapshot/'+name+'.json') as f:return json.loads(f.read())
machine=load('machine');plan=load('characteristic-plan-v3');rs=machine['resistance']['stator_phase_ohm'];omega=2*math.pi*50
session=FieldSession(globals(),machine,load('winding')['rows'],{'rotor':load('rotor-bh'),'stator':load('stator-bh')},folder,plan['mesh'])
cache={};rows=[];evaluations=[]
for key,item in record['completed_evaluations'].items():
    for name,digest in item['files'].items():
        if sha(folder+'/'+name)!=digest:raise ValueError('Повреждена полевая оценка')
    cache[key]=item['value'];evaluations.append(item['value'])
evaluations.sort(key=lambda row:row['evaluation'])
def field(current,n=None):
    n=plan['angles'] if n is None else n;key=','.join('%.12g'%v for v in current)+'/'+str(n)
    if key in cache:return cache[key]
    index=len(evaluations);values=[]
    for k in range(n):
        stem='eval-%04d-a%03d'%(index,k)
        if stem in record['field_points']:
            for name,digest in record['field_points'][stem].items():
                if sha(folder+'/'+name)!=digest:raise ValueError('Повреждена промежуточная точка')
            with open(folder+'/'+stem+'.json') as f:row=json.loads(f.read())
            if row['currents_dqf_A']!=current or abs(row['theta_deg']-360*k/n)>1e-9:raise ValueError('Другие входы промежуточной точки')
        else:
            row=session.solve(360*k/n,current,stem);save_json(folder+'/'+stem+'.json',row)
            record['field_points'][stem]={stem+ext:sha(folder+'/'+stem+ext) for ext in ('.json','.fem','.ans')}
            save_json(folder+'/receipt.json',record)
        values.append(row)
    mean={key:sum(r[key] for r in values)/n for key in ('energy_J','coenergy_J')}
    mean.update(currents_A=current[:],angles=n,lambda_dqf_Wb=[sum(r['lambda_dqf_Wb'][j] for r in values)/n for j in range(3)],
                mean_torque_Nm=sum(r['force_torque'][2] for r in values)/n,evaluation=index)
    mean.update(electrical(current,mean['lambda_dqf_Wb'],rs))
    mean['torque_identity_scaled_error']=abs(mean['mean_torque_Nm']-mean['torque_dq_Nm'])/max(abs(mean['mean_torque_Nm']),10000.)
    if mean['torque_identity_scaled_error']>.02:raise ValueError('Средний момент не согласован с dq-мощностью')
    evaluations.append(mean);cache[key]=mean;save_json(folder+'/evaluations.json',evaluations)
    files={}
    for k in range(n):files.update(record['field_points']['eval-%04d-a%03d'%(index,k)])
    record['completed_evaluations'][key]={'value':mean,'files':files}
    record['evaluations']=len(evaluations);save_json(folder+'/receipt.json',record);print('TVV_CURVE_EVALUATION',family,index,current)
    return mean
def solve(initial,bounds,residual,current_from_unknown):
    result=search(lambda x:residual(field(current_from_unknown(x))),initial,bounds,plan['scaled_residual'])
    save_json(folder+'/latest-search.json',result)
    if not result['converged']:raise ValueError('Недостижимый режим/поиск: '+result['reason'])
    value=field(current_from_unknown(result['x']));value=dict(value,search=result)
    return value,result['x']
def append(value):rows.append(value);save_json(folder+'/results.json',rows)
try:
    if family=='occ':
        for excitation in plan['occ_If_A']:append(field([0.,0.,excitation]))
    elif family=='nominal' or family=='regulation':
        voltage=plan['U_line_V'];tanphi=math.tan(math.acos(plan['power_factor']));initial=[1500.,-2.1]
        amplitudes=[math.sqrt(2)*plan['P_nominal_W']/(math.sqrt(3)*voltage*plan['power_factor'])] if family=='nominal' else [math.sqrt(2)*i for i in plan['current_rms_A'] if i>0]
        for amplitude in amplitudes:
            current=lambda x:[amplitude*math.cos(x[1]),amplitude*math.sin(x[1]),x[0]]
            residual=lambda v:[(v['U_line_rms_V']-voltage)/voltage,(v['Q_generator_var']-v['P_generator_W']*tanphi)/max((v['P_generator_W']**2+v['Q_generator_var']**2)**.5,1e6)]
            value,initial=solve(initial,[(0.,6000.),(-math.pi+.001,-.001)],residual,current);append(value)
    elif family=='scc':
        initial=[-1000.,-1.]
        for excitation in plan['scc_If_A']:
            current=lambda x:[x[0],x[1],excitation]
            value,initial=solve(initial,[(-60000.,0.),(-6000.,6000.)],lambda v:[v['ud_V']/plan['short_voltage_scale_V'],v['uq_V']/plan['short_voltage_scale_V']],current);append(value)
    elif family=='external':
        excitation=plan['fixed_If_A'];tanphi=math.tan(math.acos(plan['power_factor']));initial=[-2.1]
        for rms in plan['external_current_rms_A']:
            if not rms:append(field([0.,0.,excitation]));continue
            amplitude=math.sqrt(2)*rms;current=lambda x:[amplitude*math.cos(x[0]),amplitude*math.sin(x[0]),excitation]
            value,initial=solve(initial,[(-math.pi+.001,-.001)],lambda v:[(v['Q_generator_var']-v['P_generator_W']*tanphi)/max((v['P_generator_W']**2+v['Q_generator_var']**2)**.5,1e6)],current);append(value)
    elif family=='angle':
        initial=[-5000.,-100.];peak=plan['U_line_V']*math.sqrt(2/3)
        for angle in plan['load_angle_deg']:
            ud=peak*math.sin(math.radians(angle));uq=peak*math.cos(math.radians(angle))
            value,initial=solve(initial,[(-60000.,30000.),(-60000.,30000.)],lambda v:[(v['ud_V']-ud)/peak,(v['uq_V']-uq)/peak],lambda x:[x[0],x[1],plan['fixed_If_A']]);append(dict(value,target_delta_deg=angle))
    elif family=='u-curve':
        initial=[-3000.,-7000.]
        for excitation in plan['u_If_A']:
            value,initial=solve(initial,[(-60000.,30000.),(-60000.,0.)],lambda v:[(v['U_line_rms_V']-plan['U_line_V'])/plan['U_line_V'],(v['P_generator_W']-plan['u_power_W'])/plan['P_nominal_W']],lambda x:[x[0],x[1],excitation]);append(value)
        # Add both midpoints around the computed minimum, without changing U or P.
        ranked=sorted(rows,key=lambda r:r['currents_A'][2]);index=min(range(len(ranked)),key=lambda i:ranked[i]['I_phase_rms_A'])
        if index==0 or index==len(ranked)-1:raise ValueError('Минимум U-кривой не охвачен диапазоном возбуждения')
        for neighbor in (index-1,index+1):
            excitation=(ranked[index]['currents_A'][2]+ranked[neighbor]['currents_A'][2])/2
            value,initial=solve(ranked[index]['currents_A'][:2],[(-60000.,30000.),(-60000.,0.)],lambda v:[(v['U_line_rms_V']-plan['U_line_V'])/plan['U_line_V'],(v['P_generator_W']-plan['u_power_W'])/plan['P_nominal_W']],lambda x:[x[0],x[1],excitation]);append(value)
    else:raise ValueError('Неизвестная характеристика')
    # Independent angular refinement of the middle curve point, not just a software check.
    reference=rows[len(rows)//2];refined=field(reference['currents_A'],2*plan['angles'])
    differences=[abs(a-b)/max(abs(b),1.) for a,b in zip(reference['lambda_dqf_Wb'],refined['lambda_dqf_Wb'])]
    if max(differences)>.01:raise ValueError('Угловое среднее характеристики не сошлось')
    if family=='external' and reference['I_phase_rms_A'] and abs(refined['power_factor']-plan['power_factor'])>.001:
        raise ValueError('Уточнённая серия не сохраняет коэффициент мощности')
    if family=='scc' and max(abs(refined['ud_V']),abs(refined['uq_V']))/plan['short_voltage_scale_V']>plan['scaled_residual']:
        raise ValueError('Уточнённая угловая серия КЗ не удовлетворяет U=0 в заданном абсолютном допуске')
    save_json(folder+'/angular-check.json',{'base':reference,'refined':refined,'flux_scaled_changes':differences})
    finish(folder,record,'passed_characteristic_points_and_selected_angular_check')
except Exception as error:record['error']=str(error);save_json(folder+'/results.json',rows);finish(folder,record,'failed');raise
print('TVV_CHARACTERISTIC_RESULT',folder,family,len(rows))

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

Вычислите локальный наклон \Delta P/\Delta \delta в рад/согласованных единицах для соседних точек. Укажите, каких данных и расчётов не хватает для анализа динамической устойчивости турбоагрегата.

Критерий выполнения: Соблюдены определения, единицы, условия и критерии занятия. Учебная модель с документированными входами; заводская точность не заявляется. Полный выпуск требует независимого аудита всех точек, файлов и границ применимости.

Литература

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

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

Учебная модель с документированными входами; заводская точность не заявляется. Полный выпуск требует независимого аудита всех точек, файлов и границ применимости.

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

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

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

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

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

    Разделы

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