FEMM 5

Гармоническое магнитное поле · Осесимметричная

Индукционный каротаж: передатчик, приёмник и слоистая проводимость

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

Обе катушки имеют средний радиус 50 мм, сечение 4×10 мм и по 100 витков. Их центры расположены на z=−250 и +250 мм внутри воздушной скважины радиусом 75 мм. Амплитуда активного возбуждения 1 А, частота 100 кГц. Сравниваются воздух, однородные среды 0.1, 1 и 10 См/м и двухслойная среда: ниже z=0 проводимость 0.1, выше 10 См/м.

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

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

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

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

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

Открытая приёмная обмотка имеет нулевой ток, но ненулевое потокосцепление. Его отношение к току передатчика определяет комплексную взаимную индуктивность. Мнимая часть появляется из-за фазового сдвига вторичного поля вихревых токов. Амплитуда идеального приёмного напряжения равна ω|M||Iперед|.

Все среды немагнитны; электрическое смещение в магнитоквазистатической задаче не учитывается. Размер области r≤20 м, |z|≤20 м выбран с учётом наибольшей глубины проникновения для ненулевой проводимости. Скважина и ближайшая к катушкам область имеют отдельную более подробную сетку, чтобы удалённая граница не определяла размер элементов возле измерительных обмоток.

\widehat\psi_{\mathrm{пр}}=M(\omega)\widehat I_{\mathrm{пер}},\qquad |\widehat U_{\mathrm{пр}}|=\omega|M(\omega)||\widehat I_{\mathrm{пер}}|

Независимые проверки

Воздушный контроль сравнивается с независимым интегралом Неймана для двух тонких круговых обмоток. В каждой проводящей среде выполняются прямое и обратное возбуждения: катушки меняются ролями без изменения геометрии и свойств слоёв. Комплексные коэффициенты передачи должны совпасть по взаимности даже в несимметричной слоистой среде.

На трёх сетках проверяются модуль передачи и баланс активной мощности между цепью возбуждения и проводящей средой. Отдельные критерии подтверждают разрешимый отклик на увеличение проводимости и на слоистость. Изменение сигнала не доказывает однозначную возможность восстановить свойства: разные распределения проводимости могут давать близкие показания. Реальная скважина потребует учёта бурового раствора, корпуса прибора, смещения катушек от оси и диапазона измерительных шумов.

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

Осесимметричная

Величины, единицы и происхождение параметров
ПараметрЗначениеЕдиницаПроисхождение
Радиус катушки50ммЗаданный параметр самостоятельной учебной модели
Сечение катушки4 × 10ммЗаданный параметр самостоятельной учебной модели
Расстояние Tx/Rx500ммЗаданный параметр самостоятельной учебной модели
Число витков каждой катушки100Заданный параметр самостоятельной учебной модели
Радиус скважины75ммЗаданный параметр самостоятельной учебной модели
Частота100000ГцЗаданный параметр самостоятельной учебной модели
Амплитуда тока1АЗаданный параметр самостоятельной учебной модели
Проводимости сред0;0.1;1;10См/мЗаданный параметр самостоятельной учебной модели
Радиус и полуразмах внешней области20мЗаданный параметр самостоятельной учебной модели

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

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

Скачайте нужные файлы по отдельным ссылкам ниже в одну рабочую папку, затем откройте 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 = {'N': 100, 'I': 1, 'f': 100000, 'variants': [0, 1, 2, 3, 4]}
MODE = 'logging'
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)))


if MODE=='lvdt':
 for variant in CONFIG['variants']:
  for excitation in (1,2):
   for level in range(3):
    start(True,0,250,level);material('Медь идеальных обмоток');material('Линейный сердечник LVDT',CONFIG['mu'])
    rect(0,variant-15,3,variant+15);label(1,variant,'Линейный сердечник LVDT',.6/(2**level),5)
    names=[]
    specs=[(0,200,1 if excitation==1 else 0),(20,100,1 if excitation==2 else 0),(-20,100,0)]
    for num,(z,turns,current) in enumerate(specs,1):
        name=('Первичная обмотка','Верхняя вторичная обмотка','Нижняя вторичная обмотка')[num-1]
        mi_addcircprop(name,current,1);names.append(name)
        rect(6,z-4,10,z+4);label(8,z,'Медь идеальных обмоток',.6/(2**level),10+num,name,turns)
    rect(0,-60,30,60);label(20,0,'Воздух',1.2/(2**level),3);label(150,0,'Воздух',15/(2**level),1)
    row=solve(level,variant,'-exc%d'%excitation);row['excitation']=excitation
    energy_identity(row,names,0)
    flux=[circuit_values(n)[2].real for n in names]
    if excitation==1:
        row.update({'primary_L_H':flux[0],'upper_M_H':flux[1],'lower_M_H':flux[2],'differential_M_H':flux[1]-flux[2],'differential_voltage_amplitude_V':2*math.pi*CONFIG['f']*abs(flux[1]-flux[2]),'differential_voltage_signed_V':2*math.pi*CONFIG['f']*(flux[1]-flux[2]),'primary':flux[0]})
    else:row.update({'reverse_upper_M_H':flux[0],'upper_self_L_H':flux[1],'primary':flux[1]})
    records.append(row);finish()
 for displacement in CONFIG['variants']:
    a=[r for r in records if r['variant']==displacement and r['level']==3 and r['excitation']==1][0]
    b=[r for r in records if r['variant']==displacement and r['level']==3 and r['excitation']==2][0]
    check('Взаимность первичная — верхняя при смещении '+str(displacement),abs(a['upper_M_H']/b['reverse_upper_M_H']-1),.002)
    if displacement==0:check('Дифференциальный нуль в центре',abs(a['differential_M_H'])/max(abs(a['upper_M_H']),abs(a['lower_M_H'])),.002)
    else:check('Знак дифференциального отклика при смещении '+str(displacement),max(0,-a['differential_M_H']*displacement),0)
 for displacement in (5,10):
    positive=[r for r in records if r['variant']==displacement and r['level']==3 and r['excitation']==1][0]
    negative=[r for r in records if r['variant']==-displacement and r['level']==3 and r['excitation']==1][0]
    check('Нечётность калибровочной характеристики ±'+str(displacement),abs(positive['differential_M_H']+negative['differential_M_H'])/max(abs(positive['differential_M_H']),abs(negative['differential_M_H'])),.01)

elif MODE=='logging':
 def filament_mutual(radius,spacing,turns):
    count=720;step=2*math.pi/count;total=0
    for k in range(count+1):
        angle=k*step
        value=math.cos(angle)/math.sqrt(2*radius*radius+spacing*spacing-2*radius*radius*math.cos(angle))
        total+=value*(1 if k in (0,count) else 4 if k%2 else 2)
    return MU0*turns*turns*radius*radius/2*total*step/3
 controls=((0,0),(.1,.1),(1,1),(10,10),(.1,10))
 for variant in CONFIG['variants']:
  for excitation in (1,2):
   for level in range(3):
    # Прямоугольная область: r=0..20м,z=±20м; ближние области сгущаются отдельно.
    newdocument(0);mi_probdef(CONFIG['f'],'millimeters','axi',1e-10,1000,30,0)
    material('Воздух скважины');material('Медь идеальных катушек')
    lo,hi=controls[variant]
    material('Нижний пласт',1,lo);material('Верхний пласт',1,hi)
    mi_addboundprop('Удалённая граница A=0',0,0,0,0,0,0,0,0,0)
    polygon([(0,-20000),(75,-20000),(1500,-20000),(20000,-20000),(20000,0),(20000,20000),(1500,20000),(75,20000),(0,20000)],'Удалённая граница A=0',1000/(2**level))
    # Полный цилиндр скважины и два горизонтальных пласта.
    for y in (-1000,0,1000):mi_addnode(75,y)
    for a,b in ((-20000,-1000),(-1000,0),(0,1000),(1000,20000)):mi_addsegment(75,a,75,b)
    mi_addsegment(75,0,20000,0)
    # Ближняя зона горной среды и скважины не изменяет физических материалов.
    for y in (-1000,1000):
        mi_addnode(1500,y);mi_addsegment(75,y,1500,y)
    mi_addnode(1500,0);mi_addsegment(1500,-1000,1500,0);mi_addsegment(1500,0,1500,1000)
    for y in (-750,750):
        mi_addnode(0,y);mi_addnode(75,y);mi_addsegment(0,y,75,y)
    label(40,0,'Воздух скважины',8/(2**level),3)
    label(40,-10000,'Воздух скважины',1000/(2**level),1);label(40,10000,'Воздух скважины',1000/(2**level),1)
    label(500,-500,'Нижний пласт',60/(2**level),5);label(500,500,'Верхний пласт',60/(2**level),6)
    label(5000,-5000,'Нижний пласт',600/(2**level),5);label(5000,5000,'Верхний пласт',600/(2**level),6)
    names=[]
    for num,z in enumerate((-250,250),1):
        name='Передающая катушка' if num==1 else 'Приёмная катушка'
        current=1 if num==excitation else 0
        mi_addcircprop(name,current,1);names.append(name)
        rect(48,z-5,52,z+5);label(50,z,'Медь идеальных катушек',1/(2**level),10+num,name,CONFIG['N'])
    row=solve(level,variant,'-exc%d'%excitation);row['excitation']=excitation
    energy_identity(row,names,CONFIG['f'])
    ii,vv,mm=circuit_values(names[1 if excitation==1 else 0]);transfer=mm
    row.update({'sigma_lower_S_m':lo,'sigma_upper_S_m':hi,'mutual_real_H':transfer.real,'mutual_imag_H':transfer.imag,'mutual_abs_H':abs(transfer),'transfer_phase_deg':math.atan2(transfer.imag,transfer.real)*180/math.pi,'receiver_voltage_amplitude_V':2*math.pi*CONFIG['f']*abs(transfer),'primary':abs(transfer)})
    if variant==0:
        exact=filament_mutual(.05,.5,CONFIG['N']);row['Neumann_air_mutual_H']=exact
        check('Независимый интеграл Неймана в воздухе '+row['model'],abs(transfer.real/exact-1),.025)
        check('Воздушный контроль без фазового сдвига '+row['model'],abs(transfer.imag)/abs(transfer),1e-8)
    records.append(row);finish()
 for variant in CONFIG['variants']:
    a=[r for r in records if r['variant']==variant and r['level']==3 and r['excitation']==1][0]
    b=[r for r in records if r['variant']==variant and r['level']==3 and r['excitation']==2][0]
    ma=complex(a['mutual_real_H'],a['mutual_imag_H']);mb=complex(b['mutual_real_H'],b['mutual_imag_H'])
    check('Комплексная взаимность Tx/Rx в среде '+str(variant),abs(ma-mb)/abs(ma),.003)
 air=[r for r in records if r['variant']==0 and r['level']==3 and r['excitation']==1][0]
 homogeneous=[r for r in records if r['variant']==2 and r['level']==3 and r['excitation']==1][0]
 layered=[r for r in records if r['variant']==4 and r['level']==3 and r['excitation']==1][0]
 high=[r for r in records if r['variant']==3 and r['level']==3 and r['excitation']==1][0]
 signal=abs(complex(high['mutual_real_H']-air['mutual_real_H'],high['mutual_imag_H']-air['mutual_imag_H']))/air['mutual_abs_H']
 layer_signal=abs(complex(layered['mutual_real_H']-homogeneous['mutual_real_H'],layered['mutual_imag_H']-homogeneous['mutual_imag_H']))/homogeneous['mutual_abs_H']
 check('Разрешимый отклик на проводимость среды',max(0,.01-signal),0)
 check('Разрешимый отклик на слоистость',max(0,.005-layer_signal),0)

elif MODE=='meissner':
 for variant in CONFIG['variants']:
  for level in range(3):
    radius=variant;outer=20*radius
    start(True,0,outer,level,CONFIG['B'])
    mi_addboundprop('Идеальная граница Мейснера',0,0,0,0,0,0,0,0,0)
    halfcircle(radius,2/(2**level),'Идеальная граница Мейснера')
    label(radius*.5,0,'<No Mesh>',radius/10,0)
    halfcircle(3*radius,3/(2**level))
    label(2*radius,0,'Воздух',radius/10/(2**level),3);label(10*radius,0,'Воздух',outer/20/(2**level),1)
    row=solve(level,variant)
    probes=[]
    for rp,zp in ((1.5,0),(2,0),(0,1.5),(0,2),(.9,.9)):
        rr=math.sqrt(rp*rp+zp*zp);alpha=1/rr**3
        br=-1.5*CONFIG['B']*alpha*rp*zp/(rr*rr)
        bz=CONFIG['B']*((1-alpha)*zp*zp+(1+alpha/2)*rp*rp)/(rr*rr)
        measured_r,measured_z=magnetic_b(rp*radius,zp*radius)
        measured_r=real(measured_r);measured_z=real(measured_z)
        err=math.sqrt((measured_r-br)**2+(measured_z-bz)**2)/CONFIG['B']
        check('Аналитическое поле идеальной диамагнитной сферы '+str(rp)+','+str(zp)+' '+row['model'],err,.035/(2**level))
        probes.append([rp,zp,measured_r,measured_z,br,bz])
    row.update({'radius_mm':radius,'equator_1p5a_Bz_T':probes[0][3],'pole_1p5a_Bz_T':probes[2][3],'field_probes_r_over_a_z_over_a_T':probes,'energy_per_radius_cubed_J_m3':row['energy_J']/(radius*.001)**3,'primary':probes[0][3]})
    records.append(row);finish()
 finest=[r for r in records if r['level']==3]
 for row in finest[1:]:check('Геометрическое подобие энергии a='+str(row['radius_mm']),abs(row['energy_per_radius_cubed_J_m3']/finest[0]['energy_per_radius_cubed_J_m3']-1),.005)
# Сходимость по трём сеткам проверяется отдельно для каждого физического режима.
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 ('lvdt','logging','meissner') else 0.012)
result={'runtime':'FEMM 5; embedded MicroPython','case_id':'electromagnetic-well-logging','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-4-03-exc2.ans
Визуализация сохранённого решения FEMM 5 model-4-03-exc2.ans. Осесимметричная потоковая функция ψ=2πrAφ; интерполяция FEMM 5. Показана действительная компонента фазора при фазе 0; это не модуль индукции. Показана расчётная область. Контуры деталей взяты из той же модели. Области вне сохранённых треугольников не заполняются. Это научный график сохранённых данных. Нажмите на карту, чтобы открыть её отдельно и увеличить.

Окна FEMM 5

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

Электромагнитный каротаж: общая осесимметричная геометрия двух слоёв среды и измерительных катушек у оси. Подписи скрыты для читаемости.
Электромагнитный каротаж: общая осесимметричная геометрия двух слоёв среды и измерительных катушек у оси. Подписи скрыты для читаемости. Открыть в полном размере
Электромагнитный каротаж, 100 кГц: обратное возбуждение Rx = 1 А, Tx = 0 для проверки взаимности. Увеличенная область катушек и границы пластов; удалённые границы за кадром. Норма комплексной амплитуды B, Т; шкала 0–10⁻⁵ Т, большие значения показаны верхним цветом. Контуры A скрыты.
Электромагнитный каротаж, 100 кГц: обратное возбуждение Rx = 1 А, Tx = 0 для проверки взаимности. Увеличенная область катушек и границы пластов; удалённые границы за кадром. Норма комплексной амплитуды B, Т; шкала 0–10⁻⁵ Т, большие значения показаны верхним цветом. Контуры A скрыты. Открыть в полном размере

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

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

Результаты расчётов и производные итоги
Файл моделиСохранение, открытие и решениеАктивная мощность цепей, ВтЧисло элементовМнимая часть взаимной индуктивности, ГнУровень сеткиИнтеграл Неймана в воздухе, ГнСредние джоулевы потери, ВтОтносительная ошибка баланса мощностиПроводимость нижнего пласта, См/мФаза взаимной индуктивности, °Энергия по потокосцеплениям, ДжМодуль взаимной индуктивности, ГнЭнергия поля, ДжАмплитуда напряжения приёмника, ВДействительная часть взаимной индуктивности, ГнНомер физического режимаОсновной численный результатПроводимость верхнего пласта, См/мНомер возбужденияЧисло узлов
model-0-01-exc1.femДа01717801958,24766 × 10⁻⁹0000436,78096 × 10⁻⁶949,86814 × 10⁻⁹436,61443 × 10⁻⁶0,59681976949,86814 × 10⁻⁹0949,86814 × 10⁻⁹018953
model-0-02-exc1.femДа04960802958,24766 × 10⁻⁹0000443,65932 × 10⁻⁶954,99847 × 10⁻⁹443,70066 × 10⁻⁶0,60004324954,99847 × 10⁻⁹0954,99847 × 10⁻⁹0125312
model-0-03-exc1.femДа018718503958,24766 × 10⁻⁹0000446,48917 × 10⁻⁶958,03748 × 10⁻⁹446,48671 × 10⁻⁶0,6019527958,03748 × 10⁻⁹0958,03748 × 10⁻⁹0194416
model-0-01-exc2.femДа01717801958,24766 × 10⁻⁹0000435,11705 × 10⁻⁶949,86771 × 10⁻⁹435,20097 × 10⁻⁶0,59681948949,86771 × 10⁻⁹0949,86771 × 10⁻⁹028953
model-0-02-exc2.femДа04960802958,24766 × 10⁻⁹0000442,97504 × 10⁻⁶954,9984 × 10⁻⁹442,9492 × 10⁻⁶0,60004319954,9984 × 10⁻⁹0954,9984 × 10⁻⁹0225312
model-0-03-exc2.femДа018718503958,24766 × 10⁻⁹0000446,55262 × 10⁻⁶958,03751 × 10⁻⁹446,53657 × 10⁻⁶0,60195272958,03751 × 10⁻⁹0958,03751 × 10⁻⁹0294416
model-1-01-exc1.femДа0,01242502217178-8,8652771 × 10⁻⁹1—0,01242477719,706792 × 10⁻⁶0,1-0,53506508436,78081 × 10⁻⁶949,32442 × 10⁻⁹436,61428 × 10⁻⁶0,59647813949,28303 × 10⁻⁹1949,32442 × 10⁻⁹0,118953
model-1-02-exc1.femДа0,01237027249608-8,8340282 × 10⁻⁹2—0,012370215,0217955 × 10⁻⁶0,1-0,53031312443,65916 × 10⁻⁶954,45453 × 10⁻⁹443,70051 × 10⁻⁶0,59970147954,41365 × 10⁻⁹1954,45453 × 10⁻⁹0,1125312
model-1-03-exc1.femДа0,012338978187185-8,8316403 × 10⁻⁹3—0,0123389621,2945513 × 10⁻⁶0,1-0,52848701446,48901 × 10⁻⁶957,49352 × 10⁻⁹446,48655 × 10⁻⁶0,60161092957,45279 × 10⁻⁹1957,49352 × 10⁻⁹0,1194416
model-1-01-exc2.femДа0,0124462817178-8,8652752 × 10⁻⁹1—0,01244603319,793784 × 10⁻⁶0,1-0,53506521435,1169 × 10⁻⁶949,32399 × 10⁻⁹435,20082 × 10⁻⁶0,59647785949,28259 × 10⁻⁹1949,32399 × 10⁻⁹0,128953
model-1-02-exc2.femДа0,01239456749608-8,8340276 × 10⁻⁹2—0,0123945035,1574797 × 10⁻⁶0,1-0,53031312442,97489 × 10⁻⁶954,45446 × 10⁻⁹442,94905 × 10⁻⁶0,59970142954,41357 × 10⁻⁹1954,45446 × 10⁻⁹0,1225312
model-1-03-exc2.femДа0,012334398187185-8,8316406 × 10⁻⁹3—0,0123343821,2676735 × 10⁻⁶0,1-0,52848702446,55247 × 10⁻⁶957,49354 × 10⁻⁹446,53641 × 10⁻⁶0,60161093957,45281 × 10⁻⁹1957,49354 × 10⁻⁹0,1294416
model-2-01-exc1.femДа0,1198828717178-75,083221 × 10⁻⁹1—0,119880519,758922 × 10⁻⁶1-4,5957087436,77622 × 10⁻⁶937,08464 × 10⁻⁹436,60968 × 10⁻⁶0,58878764934,0718 × 10⁻⁹2937,08464 × 10⁻⁹118953
model-2-02-exc1.femДа0,1193312249608-74,75678 × 10⁻⁹2—0,119330625,0331336 × 10⁻⁶1-4,5508905443,65459 × 10⁻⁶942,17935 × 10⁻⁹443,69593 × 10⁻⁶0,59198874939,20889 × 10⁻⁹2942,17935 × 10⁻⁹1125312
model-2-03-exc1.femДа0,11901619187185-74,729065 × 10⁻⁹3—0,119016041,2961373 × 10⁻⁶1-4,5346907446,48443 × 10⁻⁶945,18757 × 10⁻⁹446,48197 × 10⁻⁶0,59387886942,2288 × 10⁻⁹2945,18757 × 10⁻⁹1194416
model-2-01-exc2.femДа0,1200946917178-75,083203 × 10⁻⁹1—0,1200923119,824082 × 10⁻⁶1-4,5957097435,11231 × 10⁻⁶937,08421 × 10⁻⁹435,19624 × 10⁻⁶0,58878737934,07137 × 10⁻⁹2937,08421 × 10⁻⁹128953
model-2-02-exc2.femДа0,119573149608-74,756772 × 10⁻⁹2—0,119572485,169019 × 10⁻⁶1-4,5508903442,97031 × 10⁻⁶942,17928 × 10⁻⁹442,94446 × 10⁻⁶0,5919887939,20883 × 10⁻⁹2942,17928 × 10⁻⁹1225312
model-2-03-exc2.femДа0,11897078187185-74,729067 × 10⁻⁹3—0,118970631,2704808 × 10⁻⁶1-4,5346908446,54789 × 10⁻⁶945,18759 × 10⁻⁹446,53183 × 10⁻⁶0,59387888942,22882 × 10⁻⁹2945,18759 × 10⁻⁹1294416
model-3-01-exc1.femДа1,063378517178-394,56165 × 10⁻⁹1—1,063357419,86527 × 10⁻⁶10-30,424316436,65176 × 10⁻⁶779,15053 × 10⁻⁹436,48516 × 10⁻⁶0,48955472671,86059 × 10⁻⁹3779,15053 × 10⁻⁹1018953
model-3-02-exc1.femДа1,058494649608-392,45344 × 10⁻⁹2—1,05848935,0603863 × 10⁻⁶10-30,033438443,53127 × 10⁻⁶784,11441 × 10⁻⁹443,57254 × 10⁻⁶0,49267362678,83408 × 10⁻⁹3784,11441 × 10⁻⁹10125312
model-3-03-exc1.femДа1,0552227187185-391,92356 × 10⁻⁹3—1,05522131,3034719 × 10⁻⁶10-29,873008446,3615 × 10⁻⁶786,86983 × 10⁻⁹446,35902 × 10⁻⁶0,4944049682,31961 × 10⁻⁹3786,86983 × 10⁻⁹10194416
model-3-01-exc2.femДа1,065525817178-394,56151 × 10⁻⁹1—1,065504619,927868 × 10⁻⁶10-30,424322434,98757 × 10⁻⁶779,15013 × 10⁻⁹435,07161 × 10⁻⁶0,48955447671,86021 × 10⁻⁹3779,15013 × 10⁻⁹1028953
model-3-02-exc2.femДа1,060813849608-392,4534 × 10⁻⁹2—1,06080835,1973562 × 10⁻⁶10-30,033437442,84687 × 10⁻⁶784,11436 × 10⁻⁹442,8209 × 10⁻⁶0,49267358678,83404 × 10⁻⁹3784,11436 × 10⁻⁹10225312
model-3-03-exc2.femДа1,0547851187185-391,92357 × 10⁻⁹3—1,05478371,2776363 × 10⁻⁶10-29,873008446,42498 × 10⁻⁶786,86985 × 10⁻⁹446,40889 × 10⁻⁶0,49440491682,31963 × 10⁻⁹3786,86985 × 10⁻⁹10294416
model-4-01-exc1.femДа0,04143334717178-252,61646 × 10⁻⁹1—0,04143256318,919415 × 10⁻⁶0,1-17,079647436,767 × 10⁻⁶860,11503 × 10⁻⁹436,60046 × 10⁻⁶0,54042621822,18173 × 10⁻⁹4860,11503 × 10⁻⁹1018953
model-4-02-exc1.femДа0,04135096449608-250,29181 × 10⁻⁹2—0,0413507624,8617514 × 10⁻⁶0,1-16,819644443,64534 × 10⁻⁶864,98414 × 10⁻⁹443,68668 × 10⁻⁶0,54348556827,98041 × 10⁻⁹4864,98414 × 10⁻⁹10125312
model-4-03-exc1.femДа0,041370992187185-249,90241 × 10⁻⁹3—0,041370941,2468689 × 10⁻⁶0,1-16,735939446,47517 × 10⁻⁶867,83341 × 10⁻⁹446,4727 × 10⁻⁶0,54527581831,07377 × 10⁻⁹4867,83341 × 10⁻⁹10194416
model-4-01-exc2.femДа1,058972517178-252,61631 × 10⁻⁹1—1,058951419,936988 × 10⁻⁶0,1-17,079645435,00168 × 10⁻⁶860,11461 × 10⁻⁹435,0857 × 10⁻⁶0,54042595822,18134 × 10⁻⁹4860,11461 × 10⁻⁹1028953
model-4-02-exc2.femДа1,053977949608-250,29176 × 10⁻⁹2—1,05397255,2004011 × 10⁻⁶0,1-16,819642442,86103 × 10⁻⁶864,98407 × 10⁻⁹442,83507 × 10⁻⁶0,54348552827,98036 × 10⁻⁹4864,98407 × 10⁻⁹10225312
model-4-03-exc2.femДа1,0479005187185-249,90241 × 10⁻⁹3—1,04789921,2783506 × 10⁻⁶0,1-16,735939446,43913 × 10⁻⁶867,83343 × 10⁻⁹446,42304 × 10⁻⁶0,54527582831,07379 × 10⁻⁹4867,83343 × 10⁻⁹10294416
Проверки опубликованного расчёта
КритерийПолученоДопуск или ожидаемое значениеИтог
Баланс активной мощности model-0-01-exc1.fem00,015Выполнен
Независимый интеграл Неймана в воздухе model-0-01-exc1.fem0,0087450,025Выполнен
Воздушный контроль без фазового сдвига model-0-01-exc1.fem01e-08Выполнен
Баланс активной мощности model-0-02-exc1.fem00,015Выполнен
Независимый интеграл Неймана в воздухе model-0-02-exc1.fem0,0033910,025Выполнен
Воздушный контроль без фазового сдвига model-0-02-exc1.fem01e-08Выполнен
Баланс активной мощности model-0-03-exc1.fem00,015Выполнен
Независимый интеграл Неймана в воздухе model-0-03-exc1.fem219,3 × 10⁻⁶0,025Выполнен
Воздушный контроль без фазового сдвига model-0-03-exc1.fem01e-08Выполнен
Баланс активной мощности model-0-01-exc2.fem00,015Выполнен
Независимый интеграл Неймана в воздухе model-0-01-exc2.fem0,0087450,025Выполнен
Воздушный контроль без фазового сдвига model-0-01-exc2.fem01e-08Выполнен
Баланс активной мощности model-0-02-exc2.fem00,015Выполнен
Независимый интеграл Неймана в воздухе model-0-02-exc2.fem0,0033910,025Выполнен
Воздушный контроль без фазового сдвига model-0-02-exc2.fem01e-08Выполнен
Баланс активной мощности model-0-03-exc2.fem00,015Выполнен
Независимый интеграл Неймана в воздухе model-0-03-exc2.fem219,3 × 10⁻⁶0,025Выполнен
Воздушный контроль без фазового сдвига model-0-03-exc2.fem01e-08Выполнен
Баланс активной мощности model-1-01-exc1.fem19,71 × 10⁻⁶0,015Выполнен
Баланс активной мощности model-1-02-exc1.fem5,022 × 10⁻⁶0,015Выполнен
Баланс активной мощности model-1-03-exc1.fem1,295 × 10⁻⁶0,015Выполнен
Баланс активной мощности model-1-01-exc2.fem19,79 × 10⁻⁶0,015Выполнен
Баланс активной мощности model-1-02-exc2.fem5,157 × 10⁻⁶0,015Выполнен
Баланс активной мощности model-1-03-exc2.fem1,268 × 10⁻⁶0,015Выполнен
Баланс активной мощности model-2-01-exc1.fem19,76 × 10⁻⁶0,015Выполнен
Баланс активной мощности model-2-02-exc1.fem5,033 × 10⁻⁶0,015Выполнен
Баланс активной мощности model-2-03-exc1.fem1,296 × 10⁻⁶0,015Выполнен
Баланс активной мощности model-2-01-exc2.fem19,82 × 10⁻⁶0,015Выполнен
Баланс активной мощности model-2-02-exc2.fem5,169 × 10⁻⁶0,015Выполнен
Баланс активной мощности model-2-03-exc2.fem1,27 × 10⁻⁶0,015Выполнен
Баланс активной мощности model-3-01-exc1.fem19,87 × 10⁻⁶0,015Выполнен
Баланс активной мощности model-3-02-exc1.fem5,06 × 10⁻⁶0,015Выполнен
Баланс активной мощности model-3-03-exc1.fem1,303 × 10⁻⁶0,015Выполнен
Баланс активной мощности model-3-01-exc2.fem19,93 × 10⁻⁶0,015Выполнен
Баланс активной мощности model-3-02-exc2.fem5,197 × 10⁻⁶0,015Выполнен
Баланс активной мощности model-3-03-exc2.fem1,278 × 10⁻⁶0,015Выполнен
Баланс активной мощности model-4-01-exc1.fem18,92 × 10⁻⁶0,015Выполнен
Баланс активной мощности model-4-02-exc1.fem4,862 × 10⁻⁶0,015Выполнен
Баланс активной мощности model-4-03-exc1.fem1,247 × 10⁻⁶0,015Выполнен
Баланс активной мощности model-4-01-exc2.fem19,94 × 10⁻⁶0,015Выполнен
Баланс активной мощности model-4-02-exc2.fem5,2 × 10⁻⁶0,015Выполнен
Баланс активной мощности model-4-03-exc2.fem1,278 × 10⁻⁶0,015Выполнен
Комплексная взаимность Tx/Rx в среде 024,45 × 10⁻⁹0,003Выполнен
Комплексная взаимность Tx/Rx в среде 124,32 × 10⁻⁹0,003Выполнен
Комплексная взаимность Tx/Rx в среде 224,24 × 10⁻⁹0,003Выполнен
Комплексная взаимность Tx/Rx в среде 321,69 × 10⁻⁹0,003Выполнен
Комплексная взаимность Tx/Rx в среде 424,93 × 10⁻⁹0,003Выполнен
Разрешимый отклик на проводимость среды00Выполнен
Разрешимый отклик на слоистость00Выполнен
Сходимость измеряемой величины, режим 210,0031930,025Выполнен
Сходимость измеряемой величины, режим 320,0035140,025Выполнен
Сходимость измеряемой величины, режим 120,0031840,025Выполнен
Сходимость измеряемой величины, режим 310,0035140,025Выполнен
Сходимость измеряемой величины, режим 010,0031820,025Выполнен
Сходимость измеряемой величины, режим 410,0032940,025Выполнен
Сходимость измеряемой величины, режим 420,0032940,025Выполнен
Сходимость измеряемой величины, режим 020,0031820,025Выполнен
Сходимость измеряемой величины, режим 110,0031840,025Выполнен
Сходимость измеряемой величины, режим 220,0031930,025Выполнен

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

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

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

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

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