FEMM 5

Гармоническое магнитное поле и электрические цепи · Плоскопараллельная

Экранированный полюс: короткозамкнутый виток и фазовый сдвиг

Короткозамкнутый виток не просто ослабляет переменное поле: индуцированный ток меняет его фазу. Если виток охватывает часть полюса, соседние участки зазора получают разные комплексные индукции. Работа исследует этот механизм на неподвижном П-образном магнитопроводе и решает ток витка из полевой матрицы и уравнения замкнутой цепи.

Магнитопровод имеет наружную ширину 36 мм, высоту стоек 36 мм, толщину стоек и основания 6 мм. Якорь занимает y=38…44 мм; воздушный зазор равен 2 мм. Глубина модели 100 мм, относительная проницаемость 500. Первичная обмотка имеет 200 витков с амплитудой тока 1 А. Медные стороны экранирующего витка имеют сечение 1×5 мм; одна проходит в вырезе у вершины левого полюса, другая расположена снаружи. Частоты равны 20, 50 и 200 Гц.

Самостоятельная учебная модель FEMM 5: от физических соотношений к полевому решению и проверке результата.

Допущения и устройство учебной модели

Все размеры, свойства материалов и условия возбуждения заданы ниже. Численные результаты относятся к опубликованной версии модели FEMM 5.

Физическая и математическая постановка

Полевой расчёт и замкнутая цепь

Два независимых единичных возбуждения определяют комплексную матрицу Z. Токи обмоток задаются по очереди, а решатель возвращает напряжения обеих цепей. Медные стороны витка соединены последовательно и имеют противоположные направления тока. При этом распределение тока внутри каждого сечения остаётся результатом гармонического полевого решения: локальные вихревые токи и вытеснение тока не заменяются заранее заданной равномерной плотностью.

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

\widehat I_2=-\frac{Z_{21}}{Z_{22}+R_{\mathrm{торц}}}\widehat I_1,\qquad \widehat V_2+R_{\mathrm{торц}}\widehat I_2=0

Как измеряется пространственный фазовый сдвиг

Средняя нормальная индукция в двух участках зазора вычисляется через разность векторного потенциала по краям участка. Такое интегральное измерение устойчивее отдельной точки около кромки. Сравниваются охваченная витком часть полюса x=−18…−15.5 мм и соседняя часть x=−14.5…−12 мм на линии y=37 мм. Аргумент отношения их комплексных средних полей даёт пространственную разность фаз.

В каждой частоте выполняются три сетки для двух единичных возбуждений и замкнутого витка. Проверяются комплексная взаимность, повторный полевой расчёт уравнения Кирхгофа, баланс мощности и разрешимость фазового сдвига. Амплитудные токи требуют множителя 1/2 в выражении средней мощности; встроенный интеграл джоулевых потерь уже возвращает среднюю мощность.

Эта постановка объясняет работу экранированной части полюса, но не рассчитывает двигатель целиком. Ротор, момент, механическое движение, пусковая характеристика и реальная форма торцевых перемычек отсутствуют. По одному пространственному фазовому сдвигу нельзя объявлять рассчитанным вращающий момент двигателя с экранированными полюсами. Линейный непроводящий магнитопровод также исключает насыщение, потери в стали и гистерезис.

Исходные данные

Плоскопараллельная

Величины, единицы и происхождение параметров
ПараметрЗначениеЕдиницаПроисхождение
Частоты20; 50; 200ГцЗаданный параметр самостоятельной учебной модели
Глубина модели100ммЗаданный параметр самостоятельной учебной модели
Воздушный зазор2ммЗаданный параметр самостоятельной учебной модели
Относительная проницаемость500Заданный параметр самостоятельной учебной модели
Первичная обмотка200витковЗаданный параметр самостоятельной учебной модели
Амплитуда первичного тока1АЗаданный параметр самостоятельной учебной модели
Сечение стороны медного витка1 × 5мм²Заданный параметр самостоятельной учебной модели
Проводимость меди58МСм/мЗаданный параметр самостоятельной учебной модели
Сопротивление торцевых соединений200 × 10⁻⁶ОмЗаданный параметр самостоятельной учебной модели

Порядок воспроизведения

  1. Откройте reproduce.py во встроенном Python FEMM 5 и выполните программу. Новый запуск создаёт отдельный каталог calculated-NN рядом с программой.
  2. Сначала рассмотрите единичные возбуждения: каждое определяет один столбец комплексной матрицы. Сравните прямые и обратные коэффициенты связи.
  3. Затем откройте точную модель с рассчитанными комплексными токами замкнутых цепей. Сопоставьте токи, напряжения, средние потери и невязку уравнения Кирхгофа.
  4. Сравните три сетки отдельно для каждой частоты, возбуждения и нагрузки. Пользуйтесь файлами result.json для точных комплексных чисел; график показывает выбранную вещественную характеристику.
  5. Измените один параметр и выполните новый расчёт. Результат после изменения параметров подтверждается только новой численной проверкой.

Скачайте нужные файлы по отдельным ссылкам ниже в одну рабочую папку, затем откройте reproduce.py во встроенном Python FEMM 5 и выполните его. Сохраните имена файлов и структуру подпапок. Условия конкретного запуска и путь новых результатов указаны в комментариях программы.

Программа встроенного Python FEMM 5
Python · reproduce.py
"""Собственная учебная лабораторная FEMM 5: встроенный Python.
Команды FEMM доступны глобально, внешний пакет femm не используется.
Каждая сетка сохраняется в отдельный FEM, закрывается, открывается повторно
и решается с русскими именами свойств. Новый запуск создаёт calculated-NN.
Опубликованные модели и квитанции не изменяются. Размеры: мм; результаты: СИ.
"""
import os
import sys
import math
import json
CONFIG = {'sigma': 58000000.0, 'variants': [20, 50, 200], 'Rend': 0.0002}
MODE = 'shade'
saved=globals().get('__file__','') or (sys.argv[0] if sys.argv else '')
base=os.path.dirname(os.path.abspath(saved)) if saved else os.getcwd()
index=1
while os.path.exists(base+'/calculated-%02d'%index):index+=1
directory=base+'/calculated-%02d'%index
os.mkdir(directory)
records=[]
checks=[]
MU0=4*math.pi*1e-7

def real(x):
    if isinstance(x,(list,tuple)):x=x[0]
    return complex(x).real

def check(name,value,limit):
    checks.append({'name':name,'value':value,'limit':limit,'passed':math.isfinite(value) and value<=limit})

def material(name,mu=1,sigma=0):
    mi_addmaterial(name,mu,mu,0,0,sigma/1e6)

def label(x,y,name,mesh,group=1,circuit='<None>',turns=1):
    mi_addblocklabel(x,y);mi_selectlabel(x,y)
    mi_setblockprop(name,0,mesh,circuit,0,group,turns);mi_clearselected()

def polygon(points,boundary=None,spacing=0):
    for x,y in points:mi_addnode(x,y)
    for i,(x,y) in enumerate(points):
        x2,y2=points[(i+1)%len(points)];mi_addsegment(x,y,x2,y2)
        if boundary:
            mi_selectsegment((x+x2)/2,(y+y2)/2)
            mi_setsegmentprop(boundary,spacing,0,0,0);mi_clearselected()

def rect(x1,y1,x2,y2):polygon([(x1,y1),(x2,y1),(x2,y2),(x1,y2)])

def circle(x,y,r,angle,boundary=None):
    mi_addnode(x-r,y);mi_addnode(x+r,y)
    mi_addarc(x-r,y,x+r,y,180,angle);mi_addarc(x+r,y,x-r,y,180,angle)
    if boundary:
        mi_selectarcsegment(x,y-r);mi_selectarcsegment(x,y+r)
        mi_setarcsegmentprop(angle,boundary,0,0);mi_clearselected()

def halfcircle(r,angle,boundary=None):
    mi_addnode(0,-r);mi_addnode(0,r)
    mi_addarc(0,-r,0,r,180,angle)
    if boundary:
        mi_selectarcsegment(r,0);mi_setarcsegmentprop(angle,boundary,0,0);mi_clearselected()

def start(axis,f,outer,level,uniform=0):
    newdocument(0)
    mi_probdef(f,'millimeters','axi' if axis else 'planar',1e-10,1000,30,0)
    material('Воздух')
    # Коэффициенты пространственной функции A вводятся на миллиметр геометрии.
    mi_addboundprop('Внешняя граница',0,uniform/2000 if axis else 0,0 if axis else uniform/1000,0,0,0,0,0,0)
    if axis:
        # Ось r=0, z снизу вверх: исходные координаты библиотек не используются.
        halfcircle(outer,4/(2**level),'Внешняя граница')
        mi_addsegment(0,-outer,0,outer)
    else:circle(0,0,outer,4/(2**level),'Внешняя граница')

def close_axis():
    # FEMM автоматически разбивает осевой отрезок вершинами внутренних дуг.
    pass

def coil(r,z,width,height,current,turns,mesh,num):
    name='Обмотка %d'%num
    mi_addcircprop(name,current,1)
    rect(r-width/2,z-height/2,r+width/2,z+height/2)
    label(r,z,'Медь обмотки',mesh,10+num,name,turns)
    return name

def solve(level,variant,tag=''):
    name='model-%s-%02d%s.fem'%(str(variant).replace('.','p'),level+1,tag)
    mi_saveas(directory+'/'+name);mi_close();opendocument(directory+'/'+name)
    mi_analyze(1);mi_loadsolution();mo_smooth('off')
    mo_groupselectblock();energy=real(mo_blockintegral(2));loss=real(mo_blockintegral(4));mo_clearblock()
    return {'model':name,'level':level+1,'variant':variant,'nodes':mo_numnodes(),'elements':mo_numelements(),'energy_J':energy,'ohmic_loss_W':loss,'saved_reopened_solved':True}

def finish():mo_close();mi_close()

def loop_field(r,z,turns,current,position):
    r*=0.001;dz=(position-z)*0.001
    return MU0*turns*current*r*r/(2*(r*r+dz*dz)**1.5)

def bessel(n,z):
    term=(z/2)**n
    total=term
    for k in range(1,100):
        term*=-(z*z/4)/(k*(k+n));total+=term
        if abs(term)<1e-15*max(1,abs(total)):break
    return total

def skin_resistance(radius,sigma,f):
    a=radius*.001
    if f==0:return 1/(math.pi*a*a*sigma)
    delta=math.sqrt(2/(2*math.pi*f*MU0*sigma));k=(1-1j)/delta
    return (k*bessel(0,k*a)/(2*math.pi*a*sigma*bessel(1,k*a))).real

def circuit_values(name):
    i,v,psi=mo_getcircuitproperties(name)
    return complex(i),complex(v),complex(psi)

def magnetic_b(x,y):
    mo_smooth('on')
    values=mo_getpointvalues(x,y)
    mo_smooth('off')
    return values[1],values[2]

def asinh(x):return math.log(x+math.sqrt(x*x+1))

def energy_identity(row,circuits,frequency):
    power=0;fluxenergy=0
    for name in circuits:
        i,v,psi=circuit_values(name)
        power+=(v*i.conjugate()).real/2
        fluxenergy+=(psi*i.conjugate()).real/(4 if frequency else 2)
    row['circuit_active_power_W']=power
    row['circuit_energy_J']=fluxenergy
    if frequency:
        error=abs(power-row['ohmic_loss_W'])/max(abs(power),1e-20)
        row['power_balance_relative']=error
        check('Баланс активной мощности '+row['model'],error,0.015)
    else:
        error=abs(fluxenergy-row['energy_J'])/max(abs(fluxenergy),1e-20)
        row['energy_identity_relative']=error
        check('Энергия и потокосцепление '+row['model'],error,0.012/(2**(row['level']-1)))


def pair(z):return [z.real,z.imag]
def phase(z):return math.atan2(z.imag,z.real)*180/math.pi
def group_current(group):
    mo_groupselectblock(group);current=complex(mo_blockintegral(7));mo_clearblock();return current
def circuit_power(names):
    total=0
    for name in names:
        ii,vv,pp=circuit_values(name);total+=(vv*ii.conjugate()).real/2
    return total

if MODE=='shade':
 def build_shade(f,level,currents):
    newdocument(0);mi_probdef(f,'millimeters','planar',1e-10,100,30,0)
    material('Воздух');material('Линейный магнитопровод',500);material('Изолированная обмотка');material('Медь экранирующего витка',1,CONFIG['sigma'])
    mi_addboundprop('Удалённая граница A=0',0,0,0,0,0,0,0,0,0)
    rect(-40,-15,40,60)
    for x,y in ((0,-15),(40,20),(0,60),(-40,20)):
        mi_selectsegment(x,y);mi_setsegmentprop('Удалённая граница A=0',4/(2**level),0,0,0);mi_clearselected()
    polygon([(-18,0),(18,0),(18,36),(12,36),(12,6),(-12,6),(-12,36),(-18,36)])
    label(0,3,'Линейный магнитопровод',.8/(2**level),5)
    rect(-18,38,18,44);label(0,41,'Линейный магнитопровод',.8/(2**level),6)
    names=['Первичная обмотка','Экранирующий виток']
    for name,current in zip(names,currents):mi_addcircprop(name,current,1)
    for x,sign in ((-20,1),(-10,-1)):
        rect(x-1,12,x+1,24);label(x,18,'Изолированная обмотка',.5/(2**level),11,names[0],200*sign)
    for x,sign in ((-19.5,1),(-15,-1)):
        rect(x-.5,30,x+.5,35);label(x,32.5,'Медь экранирующего витка',.25/(2**level),12,names[1],sign)
    # Прорезь выходит на поверхность полюса: без неё железная перемычка
    # вокруг внутренней стороны витка шунтировала бы его полезную связь.
    rect(-15.5,35,-14.5,36);label(-15,35.5,'Воздух',.2/(2**level),3)
    # Дополнительные линии задают подробную сетку зазора и полюсных краёв.
    rect(-24,27,24,48);label(22,37,'Воздух',.5/(2**level),3)
    label(-17,29,'Линейный магнитопровод',.4/(2**level),5);label(15,30,'Линейный магнитопровод',.4/(2**level),5)
    label(0,20,'Воздух',1.5/(2**level),2);label(30,0,'Воздух',4/(2**level),1)
    return names
 def pole_average(x1,x2):
    aa=complex(mo_getpointvalues(x1,37)[0]);bb=complex(mo_getpointvalues(x2,37)[0])
    return (aa-bb)/((x2-x1)*.001)
 for variant in CONFIG['variants']:
  for level in range(3):
    Z=[[0j,0j],[0j,0j]]
    for excitation in (0,1):
        currents=[1 if j==excitation else 0 for j in range(2)]
        names=build_shade(variant,level,currents)
        row=solve(level,variant,'-exc%d'%excitation);row['excitation']=excitation;row['shape']='matrix'
        energy_identity(row,names,variant)
        for j,name in enumerate(names):Z[j][excitation]=circuit_values(name)[1]
        row.update({'matrix_column_complex_ohm':[pair(Z[j][excitation]) for j in range(2)],'primary':abs(Z[excitation][excitation])})
        if excitation==0:
            row['open_shaded_B_complex_T']=pair(pole_average(-18,-15.5));row['open_unshaded_B_complex_T']=pair(pole_average(-14.5,-12))
        records.append(row);finish()
    check('Взаимность матрицы экранирующего витка '+str(variant)+' сетка '+str(level+1),abs(Z[0][1]-Z[1][0])/max(abs(Z[0][1]),abs(Z[1][0])),.006)
    current=-Z[1][0]/(Z[1][1]+CONFIG['Rend'])
    names=build_shade(variant,level,[1,current])
    row=solve(level,variant,'-shorted');row['excitation']=2;row['shape']='shorted'
    energy_identity(row,names,variant)
    ii,vv,pp=circuit_values(names[1]);primary=circuit_values(names[0]);bend=CONFIG['Rend']*abs(current)**2/2
    shaded=pole_average(-18,-15.5);unshaded=pole_average(-14.5,-12)
    delta=phase(shaded/unshaded)
    kvl=abs(vv+CONFIG['Rend']*ii)/max(abs(Z[1][0]),1e-20)
    power=(primary[1]*primary[0].conjugate()).real/2
    check('Кирхгоф замкнутого витка '+row['model'],kvl,.0002)
    check('Мощность источника равна потерям поля и торцов '+row['model'],abs(power-row['ohmic_loss_W']-bend)/max(abs(power),1e-20),.015)
    check('Пассивность короткозамкнутого витка '+row['model'],max(0,-power),0)
    row.update({'short_turn_current_real_A':current.real,'short_turn_current_imag_A':current.imag,'short_turn_current_amplitude_A':abs(current),'shaded_field_amplitude_T':abs(shaded),'unshaded_field_amplitude_T':abs(unshaded),'spatial_phase_shift_deg':delta,'end_return_loss_W':bend,'source_active_power_W':power,'loop_KVL_relative':kvl,'primary':abs(current)})
    records.append(row);finish()
 finest=[r for r in records if r.get('shape')=='shorted' and r['level']==3]
 for row in finest:
    check('Разрешимый пространственный фазовый сдвиг '+str(row['variant']),max(0,1-abs(row['spatial_phase_shift_deg'])),0)

elif MODE=='matrix':
 def build_matrix(f,level,currents):
    start(False,f,40,level);material('Медь жил и общей оболочки',1,CONFIG['sigma'])
    names=[]
    allcurrents=currents+[-sum(currents)]
    for j,current in enumerate(allcurrents):
        name='Жила %d'%(j+1) if j<3 else 'Общая возвратная оболочка'
        mi_addcircprop(name,current,1);names.append(name)
    for j,x in enumerate((-4,0,4)):
        circle(x,0,1.5,.8/(2**level));label(x,0,'Медь жил и общей оболочки',.24/(2**level),11+j,names[j])
    circle(0,0,10,1.2/(2**level));circle(0,0,11,1.2/(2**level));label(0,10.5,'Медь жил и общей оболочки',.2/(2**level),14,names[3])
    label(0,5,'Воздух',.7/(2**level),3);label(0,25,'Воздух',4/(2**level),1)
    return names
 def get_ports(names):
    values=[circuit_values(name) for name in names]
    return [values[j][1]-values[3][1] for j in range(3)]
 for variant in CONFIG['variants']:
  for level in range(3):
    Z=[[0j]*3 for j in range(3)]
    for excitation in range(3):
        currents=[1 if j==excitation else 0 for j in range(3)]
        names=build_matrix(variant,level,currents)
        row=solve(level,variant,'-exc%d'%excitation);row['excitation']=excitation;row['shape']='matrix'
        energy_identity(row,names,variant)
        ports=get_ports(names)
        for j in range(3):Z[j][excitation]=ports[j]
        for j,wanted in enumerate(currents+[-sum(currents)]):
            check('Интеграл плотности тока проводника '+str(j+1)+' '+row['model'],abs(group_current(11+j)-wanted),.002)
        dc=1/(CONFIG['sigma']*math.pi*(.0015)**2)+1/(CONFIG['sigma']*math.pi*(.011**2-.010**2))
        check('Нижняя граница равномерного DC-тока '+row['model'],max(0,dc/Z[excitation][excitation].real-1),.002)
        row.update({'port_impedances_complex_ohm':[pair(v) for v in ports],'port_self_resistance_ohm':Z[excitation][excitation].real,'port_self_reactance_ohm':Z[excitation][excitation].imag,'dc_uniform_lower_bound_ohm':dc,'primary':abs(ports[excitation])})
        records.append(row);finish()
    scale=max(abs(z) for line in Z for z in line)
    for j in range(3):
        for k in range(j):check('Комплексная взаимность Z%d%d '%(j+1,k+1)+str(variant)+' сетка '+str(level+1),abs(Z[j][k]-Z[k][j])/scale,.002)
    # Пассивность проверяется для независимого комплексного набора токов.
    probe=[1,complex(-.4,.8),complex(.2,-.5)]
    p=sum((sum(Z[j][k]*probe[k] for k in range(3))*probe[j].conjugate()).real/2 for j in range(3))
    check('Пассивность квадратичной формы '+str(variant)+' сетка '+str(level+1),max(0,-p),0)
    for load_index,loads in enumerate(CONFIG['loads']):
        aa=Z[1][1]+loads[0];bb=Z[1][2];cc=Z[2][1];dd=Z[2][2]+loads[1]
        det=aa*dd-bb*cc
        currents=[1,(-Z[1][0]*dd+bb*Z[2][0])/det,(-aa*Z[2][0]+cc*Z[1][0])/det]
        names=build_matrix(variant,level,currents)
        row=solve(level,variant,'-load%d'%load_index);row['excitation']=3+load_index;row['shape']='load%d'%load_index
        energy_identity(row,names,variant)
        ports=get_ports(names);predicted=[sum(Z[j][k]*currents[k] for k in range(3)) for j in range(3)]
        mismatch=max(abs(ports[j]-predicted[j]) for j in range(3))/max(abs(z) for z in ports)
        kvl=max(abs(ports[j]+loads[j-1]*currents[j]) for j in (1,2))/max(abs(z) for z in ports)
        loadloss=sum(loads[j-1]*abs(currents[j])**2/2 for j in (1,2));power=ports[0].real/2
        check('Суперпозиция полной комплексной матрицы '+row['model'],mismatch,.0002)
        check('Кирхгоф двух нагруженных портов '+row['model'],kvl,.0002)
        check('Мощность источника — металл и нагрузки '+row['model'],abs(power-row['ohmic_loss_W']-loadloss)/max(abs(power),1e-20),.015)
        row.update({'load_index':load_index,'load_resistances_ohm':loads,'port_currents_complex_A':[pair(z) for z in currents],'port_current_amplitudes_A':[abs(z) for z in currents],'port_voltages_complex_V':[pair(z) for z in ports],'load_losses_W':loadloss,'source_active_power_W':power,'matrix_superposition_relative':mismatch,'loaded_KVL_relative':kvl,'primary':power})
        records.append(row);finish()
    if level==2:records.append({'measurement':'full_complex_port_impedance_matrix','frequency_Hz':variant,'matrix_complex_ohm':[[pair(z) for z in line] for line in Z]})
# Сходимость по трём сеткам проверяется отдельно для каждого физического режима.
groups={}
for row in records:
    if 'level' not in row:continue
    key=str(row['variant'])+str(row.get('shape',''))+str(row.get('excitation',''))
    if key not in groups:groups[key]=[]
    groups[key].append(row)
for key,rows in groups.items():
    rows.sort(key=lambda row:row['level'])
    value=abs(rows[-1]['primary']/rows[-2]['primary']-1)
    check('Сходимость измеряемой величины, режим '+key,value,0.025 if MODE in ('shade','matrix') else 0.012)
result={'runtime':'FEMM 5; embedded MicroPython','case_id':'shaded-pole-short-turn','records':records,'checks':checks,'passed':all(c['passed'] for c in checks),'scope':'Самостоятельная учебная 2D/осесимметричная модель; численные проверки относятся к указанным параметрам.'}
with open(directory+'/result.json','w') as stream:json.dump(result,stream)
print(json.dumps(result))
assert result['passed']

Картина рассчитанного поля

Линии магнитного потока: model-200-03-shorted.ans
Визуализация сохранённого решения FEMM 5 model-200-03-shorted.ans. Плоская постановка: изолинии векторного потенциала Az. Показана действительная компонента фазора при фазе 0; это не модуль индукции. Показан увеличенный фрагмент расчётной области. Контуры деталей взяты из той же модели. Области вне сохранённых треугольников не заполняются. Это научный график сохранённых данных. Нажмите на карту, чтобы открыть её отдельно и увеличить.

Окна FEMM 5

Снимки интерфейса FEMM показывают геометрию, настройки и работу с результатами в FEMM 5. Откройте изображение, чтобы рассмотреть подписи и значения в полном размере.

Геометрия, русские метки и назначения: Экранированный полюс: короткозамкнутый виток и фазовый сдвиг. Геометрия учебной модели; подписи скрыты для читаемости.
Геометрия, русские метки и назначения: Экранированный полюс: короткозамкнутый виток и фазовый сдвиг. Геометрия учебной модели; подписи скрыты для читаемости. Открыть в полном размере
Сохранённое решение «Экранированный полюс: короткозамкнутый виток и фазовый сдвиг». Норма комплексного вектора амплитуд магнитной индукции B, Тл; гармонический режим 200 Гц. Контуры потенциала скрыты.
Сохранённое решение «Экранированный полюс: короткозамкнутый виток и фазовый сдвиг». Норма комплексного вектора амплитуд магнитной индукции B, Тл; гармонический режим 200 Гц. Контуры потенциала скрыты. Открыть в полном размере

Результаты и численные проверки

Сохранено решений FEMM: 27. Выполнено проверок: 75. Полная точность чисел и условия сравнения доступны в таблицах результатов JSON.

Результаты расчётов и производные итоги
Поле охваченной части при разомкнутом витке, ТлЧастота, ГцФайл моделиСохранение, открытие и решениеСтолбец комплексной матрицы Z, ОмЧисло узловПоле соседней части при разомкнутом витке, ТлЭнергия по потокосцеплениям, ДжУровень сеткиСредние джоулевы потери, ВтОтносительная ошибка баланса мощностиАктивная мощность цепей, ВтЧисло элементовНомер возбужденияЭнергия поля, ДжРежим цепиОсновной численный результатНевязка уравнения Кирхгофа виткаАмплитуда тока витка, АМнимая часть тока витка, АПотери торцевых соединений, ВтДействительная часть тока витка, ААмплитуда поля соседней части, ТлПространственная разность фаз, °Амплитуда поля охваченной части, ТлАктивная мощность источника, Вт
2 значений; полные данные JSON20model-20-01-exc0.femДа2 точек; полные данные JSON111142 значений; полные данные JSON0,0045889999169,423826 × 10⁻⁶2,3441476 × 10⁻⁹69,423827 × 10⁻⁶2194300,0045889999matrix2,3066829—————————
—20model-20-01-exc1.femДа2 точек; полные данные JSON11114—147,81494 × 10⁻⁹1345,00693 × 10⁻⁶2,4266786 × 10⁻¹²345,00693 × 10⁻⁶219431147,81494 × 10⁻⁹matrix694,00259 × 10⁻⁶—————————
—20model-20-01-shorted.femДа—11114—0,004586805310,005161861151,191514 × 10⁻¹²0,00516186112194320,0045868053shorted3,842026310,287972 × 10⁻¹²3,8420263-3,82863020,0014761166-0,320557570,057410671-2,10209330,0567302610,0066379778
2 значений; полные данные JSON20model-20-02-exc0.femДа2 точек; полные данные JSON295492 значений; полные данные JSON0,0045971341269,44668 × 10⁻⁶1,7774272 × 10⁻¹²69,44668 × 10⁻⁶5881600,0045971341matrix2,3107716—————————
—20model-20-02-exc1.femДа2 точек; полные данные JSON29549—148,33899 × 10⁻⁹2345,00692 × 10⁻⁶99,147514 × 10⁻¹⁵345,00692 × 10⁻⁶588161148,33899 × 10⁻⁹matrix694,03083 × 10⁻⁶—————————
—20model-20-02-shorted.femДа—29549—0,004594920720,0051874355273,2119 × 10⁻¹⁵0,00518743555881620,0045949207shorted3,85165312,4428516 × 10⁻¹²3,8516531-3,8381290,0014835231-0,322485730,057280743-2,09728530,0565418030,0066709586
2 значений; полные данные JSON20model-20-03-exc0.femДа2 точек; полные данные JSON1041442 значений; полные данные JSON0,0046019571369,395134 × 10⁻⁶1,2323119 × 10⁻¹²69,395134 × 10⁻⁶20779400,0046019571matrix2,313196—————————
—20model-20-03-exc1.femДа2 точек; полные данные JSON104144—148,74609 × 10⁻⁹3345,00691 × 10⁻⁶2,4488337 × 10⁻¹²345,00691 × 10⁻⁶2077941148,74609 × 10⁻⁹matrix694,05282 × 10⁻⁶—————————
—20model-20-03-shorted.femДа—104144—0,004599731130,00520281912,9217587 × 10⁻¹²0,005202819120779420,0045997311shorted3,85745681,3116914 × 10⁻¹²3,8574568-3,84383870,0014879973-0,323846740,05730451-2,09952480,0565859560,0066908164
2 значений; полные данные JSON50model-50-01-exc0.femДа2 точек; полные данные JSON111142 значений; полные данные JSON0,00458899241433,83589 × 10⁻⁶47,613605 × 10⁻¹²433,83589 × 10⁻⁶2194300,0045889924matrix5,766698—————————
—50model-50-01-exc1.femДа2 точек; полные данные JSON11114—147,7369 × 10⁻⁹1345,94574 × 10⁻⁶2,1417919 × 10⁻¹²345,94574 × 10⁻⁶219431147,7369 × 10⁻⁹matrix716,36607 × 10⁻⁶—————————
—50model-50-01-shorted.femДа—11114—0,004575816710,03109749598,401887 × 10⁻¹⁵0,0310974952194320,0045758167shorted9,41627192,2026928 × 10⁻¹²9,4162719-9,21750690,0088666176-1,92451120,057564197-5,10707620,056135650,039964113
2 значений; полные данные JSON50model-50-02-exc0.femДа2 точек; полные данные JSON295492 значений; полные данные JSON0,00459712662433,97782 × 10⁻⁶5,6172788 × 10⁻¹²433,97782 × 10⁻⁶5881600,0045971266matrix5,7769197—————————
—50model-50-02-exc1.femДа2 точек; полные данные JSON29549—148,26083 × 10⁻⁹2345,9457 × 10⁻⁶1,7337421 × 10⁻¹²345,9457 × 10⁻⁶588161148,26083 × 10⁻⁹matrix716,53691 × 10⁻⁶—————————
—50model-50-02-shorted.femДа—29549—0,004583841620,0312439171,1133263 × 10⁻¹²0,0312439175881620,0045838416shorted9,43870583,8136201 × 10⁻¹²9,4387058-9,23810410,0089089167-1,93561350,057432928-5,09438810,0559471830,040152833
2 значений; полные данные JSON50model-50-03-exc0.femДа2 точек; полные данные JSON1041442 значений; полные данные JSON0,00460194963433,6553 × 10⁻⁶2,136626 × 10⁻¹²433,6553 × 10⁻⁶20779400,0046019496matrix5,7829804—————————
—50model-50-03-exc1.femДа2 точек; полные данные JSON104144—148,66791 × 10⁻⁹3345,94564 × 10⁻⁶6,3094185 × 10⁻¹²345,94564 × 10⁻⁶2077941148,66791 × 10⁻⁹matrix716,66997 × 10⁻⁶—————————
—50model-50-03-shorted.femДа—104144—0,004588590930,0313305967,1345445 × 10⁻¹²0,03133059620779420,0045885909shorted9,45202386,8654113 × 10⁻¹²9,4520238-9,25007570,0089340755-1,94341290,057456791-5,09910020,0559881960,040264671
2 значений; полные данные JSON200model-200-01-exc0.femДа2 точек; полные данные JSON111142 значений; полные данные JSON0,004588858910,006923421420,389841 × 10⁻¹²0,00692342142194300,0045888589matrix23,066125—————————
—200model-200-01-exc1.femДа2 точек; полные данные JSON11114—146,40896 × 10⁻⁹1361,97705 × 10⁻⁶989,0228 × 10⁻¹⁵361,97705 × 10⁻⁶219431146,40896 × 10⁻⁹matrix0,0010323299—————————
—200model-200-01-shorted.femДа—11114—0,004464602910,310780318,460414 × 10⁻¹²0,31078032194320,0044646029shorted29,04460220,664899 × 10⁻¹²29,044602-22,6749920,084358891-18,1503070,059099018-13,9605580,0497354080,39513919
2 значений; полные данные JSON200model-200-02-exc0.femДа2 точек; полные данные JSON295492 значений; полные данные JSON0,004596992120,006925433422,200315 × 10⁻¹²0,00692543345881600,0045969921matrix23,107007—————————
—200model-200-02-exc1.femДа2 точек; полные данные JSON29549—146,93116 × 10⁻⁹2361,97448 × 10⁻⁶1,0471376 × 10⁻¹²361,97448 × 10⁻⁶588161146,93116 × 10⁻⁹matrix0,0010341992—————————
—200model-200-02-shorted.femДа—29549—0,004472012120,31147675177,14993 × 10⁻¹⁵0,311476755881620,0044720121shorted29,0778873,4700544 × 10⁻¹²29,077887-22,6695020,084552352-18,210360,058950468-13,8951040,0495635360,3960291
2 значений; полные данные JSON200model-200-03-exc0.femДа2 точек; полные данные JSON1041442 значений; полные данные JSON0,004601814830,00692017115,264312 × 10⁻¹²0,00692017120779400,0046018148matrix23,131248—————————
—200model-200-03-exc1.femДа2 точек; полные данные JSON104144—147,33772 × 10⁻⁹3361,97288 × 10⁻⁶570,44688 × 10⁻¹⁵361,97288 × 10⁻⁶2077941147,33772 × 10⁻⁹matrix0,0010356573—————————
—200model-200-03-shorted.femДа—104144—0,004476380730,311743121,2245665 × 10⁻¹²0,3117431220779420,0044763807shorted29,0909173,5234821 × 10⁻¹²29,090917-22,6551680,084628144-18,2489670,058972155-13,8862490,0495830330,39637126
Проверки опубликованного расчёта
КритерийПолученоДопуск или ожидаемое значениеИтог
Баланс активной мощности model-20-01-exc0.fem2,344 × 10⁻⁹0,015Выполнен
Баланс активной мощности model-20-01-exc1.fem2,427 × 10⁻¹²0,015Выполнен
Взаимность матрицы экранирующего витка 20 сетка 11,93 × 10⁻¹²0,006Выполнен
Баланс активной мощности model-20-01-shorted.fem51,19 × 10⁻¹²0,015Выполнен
Кирхгоф замкнутого витка model-20-01-shorted.fem10,29 × 10⁻¹²0,0002Выполнен
Мощность источника равна потерям поля и торцов model-20-01-shorted.fem47,32 × 10⁻¹²0,015Выполнен
Пассивность короткозамкнутого витка model-20-01-shorted.fem00Выполнен
Баланс активной мощности model-20-02-exc0.fem1,777 × 10⁻¹²0,015Выполнен
Баланс активной мощности model-20-02-exc1.fem99,15 × 10⁻¹⁵0,015Выполнен
Взаимность матрицы экранирующего витка 20 сетка 22,206 × 10⁻¹²0,006Выполнен
Баланс активной мощности model-20-02-shorted.fem273,2 × 10⁻¹⁵0,015Выполнен
Кирхгоф замкнутого витка model-20-02-shorted.fem2,443 × 10⁻¹²0,0002Выполнен
Мощность источника равна потерям поля и торцов model-20-02-shorted.fem674,3 × 10⁻¹⁵0,015Выполнен
Пассивность короткозамкнутого витка model-20-02-shorted.fem00Выполнен
Баланс активной мощности model-20-03-exc0.fem1,232 × 10⁻¹²0,015Выполнен
Баланс активной мощности model-20-03-exc1.fem2,449 × 10⁻¹²0,015Выполнен
Взаимность матрицы экранирующего витка 20 сетка 350,04 × 10⁻¹²0,006Выполнен
Баланс активной мощности model-20-03-shorted.fem2,922 × 10⁻¹²0,015Выполнен
Кирхгоф замкнутого витка model-20-03-shorted.fem1,312 × 10⁻¹²0,0002Выполнен
Мощность источника равна потерям поля и торцов model-20-03-shorted.fem3,426 × 10⁻¹²0,015Выполнен
Пассивность короткозамкнутого витка model-20-03-shorted.fem00Выполнен
Баланс активной мощности model-50-01-exc0.fem47,61 × 10⁻¹²0,015Выполнен
Баланс активной мощности model-50-01-exc1.fem2,142 × 10⁻¹²0,015Выполнен
Взаимность матрицы экранирующего витка 50 сетка 16,377 × 10⁻¹²0,006Выполнен
Баланс активной мощности model-50-01-shorted.fem98,4 × 10⁻¹⁵0,015Выполнен
Кирхгоф замкнутого витка model-50-01-shorted.fem2,203 × 10⁻¹²0,0002Выполнен
Мощность источника равна потерям поля и торцов model-50-01-shorted.fem2,297 × 10⁻¹²0,015Выполнен
Пассивность короткозамкнутого витка model-50-01-shorted.fem00Выполнен
Баланс активной мощности model-50-02-exc0.fem5,617 × 10⁻¹²0,015Выполнен
Баланс активной мощности model-50-02-exc1.fem1,734 × 10⁻¹²0,015Выполнен
Взаимность матрицы экранирующего витка 50 сетка 27,677 × 10⁻¹²0,006Выполнен
Баланс активной мощности model-50-02-shorted.fem1,113 × 10⁻¹²0,015Выполнен
Кирхгоф замкнутого витка model-50-02-shorted.fem3,814 × 10⁻¹²0,0002Выполнен
Мощность источника равна потерям поля и торцов model-50-02-shorted.fem502 × 10⁻¹⁵0,015Выполнен
Пассивность короткозамкнутого витка model-50-02-shorted.fem00Выполнен
Баланс активной мощности model-50-03-exc0.fem2,137 × 10⁻¹²0,015Выполнен
Баланс активной мощности model-50-03-exc1.fem6,309 × 10⁻¹²0,015Выполнен
Взаимность матрицы экранирующего витка 50 сетка 337,34 × 10⁻¹²0,006Выполнен
Баланс активной мощности model-50-03-shorted.fem7,135 × 10⁻¹²0,015Выполнен
Кирхгоф замкнутого витка model-50-03-shorted.fem6,865 × 10⁻¹²0,0002Выполнен
Мощность источника равна потерям поля и торцов model-50-03-shorted.fem1,384 × 10⁻¹²0,015Выполнен
Пассивность короткозамкнутого витка model-50-03-shorted.fem00Выполнен
Баланс активной мощности model-200-01-exc0.fem20,39 × 10⁻¹²0,015Выполнен
Баланс активной мощности model-200-01-exc1.fem989 × 10⁻¹⁵0,015Выполнен
Взаимность матрицы экранирующего витка 200 сетка 12,692 × 10⁻¹²0,006Выполнен
Баланс активной мощности model-200-01-shorted.fem18,46 × 10⁻¹²0,015Выполнен
Кирхгоф замкнутого витка model-200-01-shorted.fem20,66 × 10⁻¹²0,0002Выполнен
Мощность источника равна потерям поля и торцов model-200-01-shorted.fem15,84 × 10⁻¹²0,015Выполнен
Пассивность короткозамкнутого витка model-200-01-shorted.fem00Выполнен
Баланс активной мощности model-200-02-exc0.fem22,2 × 10⁻¹²0,015Выполнен
Баланс активной мощности model-200-02-exc1.fem1,047 × 10⁻¹²0,015Выполнен
Взаимность матрицы экранирующего витка 200 сетка 224,01 × 10⁻¹²0,006Выполнен
Баланс активной мощности model-200-02-shorted.fem177,1 × 10⁻¹⁵0,015Выполнен
Кирхгоф замкнутого витка model-200-02-shorted.fem3,47 × 10⁻¹²0,0002Выполнен
Мощность источника равна потерям поля и торцов model-200-02-shorted.fem1,344 × 10⁻¹²0,015Выполнен
Пассивность короткозамкнутого витка model-200-02-shorted.fem00Выполнен
Баланс активной мощности model-200-03-exc0.fem15,26 × 10⁻¹²0,015Выполнен
Баланс активной мощности model-200-03-exc1.fem570,4 × 10⁻¹⁵0,015Выполнен
Взаимность матрицы экранирующего витка 200 сетка 341,86 × 10⁻¹²0,006Выполнен
Баланс активной мощности model-200-03-shorted.fem1,225 × 10⁻¹²0,015Выполнен
Кирхгоф замкнутого витка model-200-03-shorted.fem3,523 × 10⁻¹²0,0002Выполнен
Мощность источника равна потерям поля и торцов model-200-03-shorted.fem3,034 × 10⁻¹²0,015Выполнен
Пассивность короткозамкнутого витка model-200-03-shorted.fem00Выполнен
Разрешимый пространственный фазовый сдвиг 2000Выполнен
Разрешимый пространственный фазовый сдвиг 5000Выполнен
Разрешимый пространственный фазовый сдвиг 20000Выполнен
Сходимость измеряемой величины, режим 200shorted2448,1 × 10⁻⁶0,025Выполнен
Сходимость измеряемой величины, режим 200matrix00,0010490,025Выполнен
Сходимость измеряемой величины, режим 200matrix10,001410,025Выполнен
Сходимость измеряемой величины, режим 50matrix1185,7 × 10⁻⁶0,025Выполнен
Сходимость измеряемой величины, режим 50matrix00,0010490,025Выполнен
Сходимость измеряемой величины, режим 20matrix00,0010490,025Выполнен
Сходимость измеряемой величины, режим 50shorted20,0014110,025Выполнен
Сходимость измеряемой величины, режим 20matrix131,69 × 10⁻⁶0,025Выполнен
Сходимость измеряемой величины, режим 20shorted20,0015070,025Выполнен

Допуски относятся к указанной учебной задаче и способу сравнения. Число показанных цифр не означает такой же физической точности.

Модели, решения и программа

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

Полные численные результаты

Границы применимости