Магнитостатика и индуктивное измерение · Осесимметричная
Дифференциальный трансформатор LVDT: знак, нуль и калибровка
Дифференциальный трансформатор преобразует перемещение магнитного сердечника в разность потокосцеплений двух вторичных обмоток. Симметричное положение даёт дифференциальный нуль, а направление смещения определяется знаком синхронно выделенного сигнала. Работа строит калибровочную характеристику из полевых опытов и проверяет симметрию и взаимность магнитной связи.
Первичная катушка находится в плоскости z=0 и имеет 200 витков. Две вторичные имеют по 100 витков и центры z=±20 мм. Все обмотки занимают радиусы 6…10 мм и осевую высоту 8 мм. Сердечник радиусом 3 мм, длиной 30 мм и μr=500 перемещается на −10, −5, 0, +5 и +10 мм. Ток единичного магнитостатического опыта равен 1 А.
Самостоятельная учебная модель FEMM 5: от физических соотношений к полевому решению и проверке результата.
Допущения и устройство учебной модели
Все размеры, свойства материалов и условия возбуждения заданы ниже. Численные результаты относятся к опубликованной версии модели FEMM 5.
Физическая и математическая постановка
Разность взаимных индуктивностей
При возбуждении первичной обмотки рассчитываются потокосцепления обеих вторичных. Их отношения к первичному току дают взаимные индуктивности Mверх и Mниз. Последовательное встречное соединение вторичных соответствует разности этих коэффициентов. В среднем положении равенство связей следует из зеркальной симметрии конструкции.
Для идеального низкочастотного режима гармоническая ЭДС восстанавливается умножением разности потокосцеплений на ω. В таблице отдельно сохранены амплитуда и подписанный квадратурный коэффициент при выбранной опорной фазе. Обычный амплитудный вольтметр не различает знак смещения без фазовой информации.
Чем проверяется полевой результат
Для каждого положения выполнены два независимых возбуждения: первичное и верхнее вторичное. Прямой и обратный коэффициенты связи сравниваются по принципу взаимности. В каждом опыте объёмная энергия проверяется суммой Iψ/2, а три сетки контролируют устойчивость измеряемой индуктивности.
На окончательной сетке дополнительно проверяются нуль при z=0, смена знака при смещении и нечётность характеристики на парах ±5 и ±10 мм. ЭДС показана для частоты 1 кГц как постобработка линейной магнитостатической матрицы. Сердечник непроводящий, поэтому этот перевод не содержит вихретокового или гистерезисного фазового сдвига. Для реального LVDT понадобятся комплексная магнитная проницаемость, сопротивления обмоток и схема демодуляции.
Исходные данные
Осесимметричная
| Параметр | Значение | Единица | Происхождение |
|---|---|---|---|
| Радиусы обмоток | 6…10 | мм | Заданный параметр самостоятельной учебной модели |
| Высота обмотки | 8 | мм | Заданный параметр самостоятельной учебной модели |
| Число витков первичной | 200 | Заданный параметр самостоятельной учебной модели | |
| Число витков каждой вторичной | 100 | Заданный параметр самостоятельной учебной модели | |
| Радиус сердечника | 3 | мм | Заданный параметр самостоятельной учебной модели |
| Длина сердечника | 30 | мм | Заданный параметр самостоятельной учебной модели |
| Относительная проницаемость | 500 | Заданный параметр самостоятельной учебной модели | |
| Смещения | −10; −5; 0; +5; +10 | мм | Заданный параметр самостоятельной учебной модели |
| Частота пересчёта идеальной ЭДС | 1000 | Гц | Заданный параметр самостоятельной учебной модели |
Порядок воспроизведения
- До запуска запишите уравнение контрольной величины и ожидаемое направление изменения при вариации параметра. Согласуйте миллиметры геометрии с единицами СИ в формулах. Создайте отдельную папку и откройте reproduce.py во встроенном редакторе Python FEMM 5. Команды mi_* и mo_* в этой среде уже доступны глобально.
- Выполните программу целиком. Она создаёт новый calculated-NN, строит каждую модель с русскими именами материалов и цепей, сохраняет файл FEM, закрывает его и повторно открывает перед решением. Поэтому проверка относится к точному записанному варианту модели и охватывает сохранение кириллицы.
- Изучите result.json: records хранит численные результаты всех режимов и трёх сеток, checks — названия проверок, измеренные отклонения, допуски и итог. Откройте модель и решение финальной сетки; сопоставьте материалы, направление токов и характерные размеры с таблицей параметров.
- Составьте отчёт с физическим объяснением, таблицей сходимости и независимым контрольным расчётом. Затем измените один параметр и выполните новую серию. Сохраняйте предыдущую серию для сравнения; успешное завершение решателя само по себе не заменяет проверки физического масштаба и сеточной устойчивости.
Скачайте нужные файлы по отдельным ссылкам ниже в одну рабочую папку, затем откройте reproduce.py во встроенном Python FEMM 5 и выполните его. Сохраните имена файлов и структуру подпапок. Условия конкретного запуска и путь новых результатов указаны в комментариях программы.
Программа встроенного Python FEMM 5
"""Собственная учебная лабораторная FEMM 5: встроенный Python.
Команды FEMM доступны глобально, внешний пакет femm не используется.
Каждая сетка сохраняется в отдельный FEM, закрывается, открывается повторно
и решается с русскими именами свойств. Новый запуск создаёт calculated-NN.
Опубликованные модели и квитанции не изменяются. Размеры: мм; результаты: СИ.
"""
import os
import sys
import math
import json
CONFIG = {'N': 100, 'I': 1, 'mu': 500, 'f': 1000, 'variants': [-10, -5, 0, 5, 10]}
MODE = 'lvdt'
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':'differential-transformer-lvdt','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']
Картина рассчитанного поля
Окна FEMM 5
Снимки интерфейса FEMM показывают геометрию, настройки и работу с результатами в FEMM 5. Откройте изображение, чтобы рассмотреть подписи и значения в полном размере.
Результаты и численные проверки
Сохранено решений FEMM: 30. Выполнено проверок: 52. Полная точность чисел и условия сравнения доступны в таблицах результатов JSON.
| Файл модели | Сохранение, открытие и решение | Активная мощность цепей, Вт | Число элементов | Уровень сетки | Номер возбуждения | Взаимная связь с верхней вторичной, Гн | Средние джоулевы потери, Вт | Разность взаимных индуктивностей, Гн | Энергия по потокосцеплениям, Дж | Энергия поля, Дж | Подписанный квадратурный коэффициент ЭДС, В | Взаимная связь с нижней вторичной, Гн | Индуктивность первичной обмотки, Гн | Номер физического режима | Основной численный результат | Относительная ошибка энергетического равенства | Амплитуда идеальной дифференциальной ЭДС, В | Число узлов | Обратная взаимная индуктивность, Гн | Индуктивность верхней вторичной, Гн |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| model--10-01-exc1.fem | Да | 0 | 14121 | 1 | 1 | 34,145961 × 10⁻⁶ | 0 | -147,19296 × 10⁻⁶ | 549,81526 × 10⁻⁶ | 549,57002 × 10⁻⁶ | -0,92484065 | 181,33892 × 10⁻⁶ | 0,0010996305 | -10 | 0,0010996305 | 446,04782 × 10⁻⁶ | 0,92484065 | 7241 | — | — |
| model--10-02-exc1.fem | Да | 0 | 34832 | 2 | 1 | 34,175109 × 10⁻⁶ | 0 | -147,59237 × 10⁻⁶ | 551,65368 × 10⁻⁶ | 551,48466 × 10⁻⁶ | -0,92735023 | 181,76748 × 10⁻⁶ | 0,0011033074 | -10 | 0,0011033074 | 306,39334 × 10⁻⁶ | 0,92735023 | 17666 | — | — |
| model--10-03-exc1.fem | Да | 0 | 127428 | 3 | 1 | 34,257574 × 10⁻⁶ | 0 | -148,12532 × 10⁻⁶ | 553,23309 × 10⁻⁶ | 553,18909 × 10⁻⁶ | -0,93069886 | 182,3829 × 10⁻⁶ | 0,0011064662 | -10 | 0,0011064662 | 79,541802 × 10⁻⁶ | 0,93069886 | 64142 | — | — |
| model--10-01-exc2.fem | Да | 0 | 14121 | 1 | 2 | — | 0 | — | 63,050691 × 10⁻⁶ | 63,049898 × 10⁻⁶ | — | — | — | -10 | 126,10138 × 10⁻⁶ | 12,563941 × 10⁻⁶ | — | 7241 | 34,134907 × 10⁻⁶ | 126,10138 × 10⁻⁶ |
| model--10-02-exc2.fem | Да | 0 | 34832 | 2 | 2 | — | 0 | — | 63,330128 × 10⁻⁶ | 63,333362 × 10⁻⁶ | — | — | — | -10 | 126,66026 × 10⁻⁶ | 51,064223 × 10⁻⁶ | — | 17666 | 34,172397 × 10⁻⁶ | 126,66026 × 10⁻⁶ |
| model--10-03-exc2.fem | Да | 0 | 127428 | 3 | 2 | — | 0 | — | 63,434736 × 10⁻⁶ | 63,434923 × 10⁻⁶ | — | — | — | -10 | 126,86947 × 10⁻⁶ | 2,9502737 × 10⁻⁶ | — | 64142 | 34,256852 × 10⁻⁶ | 126,86947 × 10⁻⁶ |
| model--5-01-exc1.fem | Да | 0 | 14052 | 1 | 1 | 55,790713 × 10⁻⁶ | 0 | -93,62533 × 10⁻⁶ | 689,456 × 10⁻⁶ | 688,99655 × 10⁻⁶ | -0,5882653 | 149,41604 × 10⁻⁶ | 0,001378912 | -5 | 0,001378912 | 666,39343 × 10⁻⁶ | 0,5882653 | 7203 | — | — |
| model--5-02-exc1.fem | Да | 0 | 34640 | 2 | 1 | 55,904971 × 10⁻⁶ | 0 | -93,955444 × 10⁻⁶ | 691,22968 × 10⁻⁶ | 691,00059 × 10⁻⁶ | -0,59033946 | 149,86042 × 10⁻⁶ | 0,0013824594 | -5 | 0,0013824594 | 331,42574 × 10⁻⁶ | 0,59033946 | 17570 | — | — |
| model--5-03-exc1.fem | Да | 0 | 127113 | 3 | 1 | 56,056176 × 10⁻⁶ | 0 | -94,304502 × 10⁻⁶ | 692,62077 × 10⁻⁶ | 692,54747 × 10⁻⁶ | -0,59253266 | 150,36068 × 10⁻⁶ | 0,0013852415 | -5 | 0,0013852415 | 105,84021 × 10⁻⁶ | 0,59253266 | 63972 | — | — |
| model--5-01-exc2.fem | Да | 0 | 14052 | 1 | 2 | — | 0 | — | 63,946423 × 10⁻⁶ | 63,944584 × 10⁻⁶ | — | — | — | -5 | 127,89285 × 10⁻⁶ | 28,754712 × 10⁻⁶ | — | 7203 | 55,768932 × 10⁻⁶ | 127,89285 × 10⁻⁶ |
| model--5-02-exc2.fem | Да | 0 | 34640 | 2 | 2 | — | 0 | — | 64,236559 × 10⁻⁶ | 64,238887 × 10⁻⁶ | — | — | — | -5 | 128,47312 × 10⁻⁶ | 36,230946 × 10⁻⁶ | — | 17570 | 55,899443 × 10⁻⁶ | 128,47312 × 10⁻⁶ |
| model--5-03-exc2.fem | Да | 0 | 127113 | 3 | 2 | — | 0 | — | 64,344884 × 10⁻⁶ | 64,344927 × 10⁻⁶ | — | — | — | -5 | 128,68977 × 10⁻⁶ | 656,12069 × 10⁻⁹ | — | 63972 | 56,054788 × 10⁻⁶ | 128,68977 × 10⁻⁶ |
| model-0-01-exc1.fem | Да | 0 | 14113 | 1 | 1 | 93,442613 × 10⁻⁶ | 0 | -30,401405 × 10⁻⁹ | 736,11683 × 10⁻⁶ | 735,32667 × 10⁻⁶ | -191,01766 × 10⁻⁶ | 93,473014 × 10⁻⁶ | 0,0014722337 | 0 | 0,0014722337 | 0,0010734156 | 191,01766 × 10⁻⁶ | 7234 | — | — |
| model-0-02-exc1.fem | Да | 0 | 35056 | 2 | 1 | 93,659888 × 10⁻⁶ | 0 | 14,594976 × 10⁻⁹ | 737,73765 × 10⁻⁶ | 737,5548 × 10⁻⁶ | 91,702936 × 10⁻⁶ | 93,645293 × 10⁻⁶ | 0,0014754753 | 0 | 0,0014754753 | 247,85019 × 10⁻⁶ | 91,702936 × 10⁻⁶ | 17778 | — | — |
| model-0-03-exc1.fem | Да | 0 | 127260 | 3 | 1 | 93,839464 × 10⁻⁶ | 0 | -37,617263 × 10⁻⁹ | 738,74374 × 10⁻⁶ | 738,66485 × 10⁻⁶ | -236,35624 × 10⁻⁶ | 93,877081 × 10⁻⁶ | 0,0014774875 | 0 | 0,0014774875 | 106,79062 × 10⁻⁶ | 236,35624 × 10⁻⁶ | 64042 | — | — |
| model-0-01-exc2.fem | Да | 0 | 14113 | 1 | 2 | — | 0 | — | 68,951912 × 10⁻⁶ | 68,951506 × 10⁻⁶ | — | — | — | 0 | 137,90382 × 10⁻⁶ | 5,8880842 × 10⁻⁶ | — | 7234 | 93,415268 × 10⁻⁶ | 137,90382 × 10⁻⁶ |
| model-0-02-exc2.fem | Да | 0 | 35056 | 2 | 2 | — | 0 | — | 69,262662 × 10⁻⁶ | 69,260166 × 10⁻⁶ | — | — | — | 0 | 138,52532 × 10⁻⁶ | 36,035985 × 10⁻⁶ | — | 17778 | 93,652238 × 10⁻⁶ | 138,52532 × 10⁻⁶ |
| model-0-03-exc2.fem | Да | 0 | 127260 | 3 | 2 | — | 0 | — | 69,379604 × 10⁻⁶ | 69,378417 × 10⁻⁶ | — | — | — | 0 | 138,75921 × 10⁻⁶ | 17,114981 × 10⁻⁶ | — | 64042 | 93,837595 × 10⁻⁶ | 138,75921 × 10⁻⁶ |
| model-5-01-exc1.fem | Да | 0 | 14178 | 1 | 1 | 149,5514 × 10⁻⁶ | 0 | 93,71339 × 10⁻⁶ | 689,67419 × 10⁻⁶ | 689,07401 × 10⁻⁶ | 0,5888186 | 55,838012 × 10⁻⁶ | 0,0013793484 | 5 | 0,0013793484 | 870,23492 × 10⁻⁶ | 0,5888186 | 7268 | — | — |
| model-5-02-exc1.fem | Да | 0 | 34730 | 2 | 1 | 149,92128 × 10⁻⁶ | 0 | 93,999749 × 10⁻⁶ | 691,34925 × 10⁻⁶ | 691,09849 × 10⁻⁶ | 0,59061784 | 55,921527 × 10⁻⁶ | 0,0013826985 | 5 | 0,0013826985 | 362,70099 × 10⁻⁶ | 0,59061784 | 17610 | — | — |
| model-5-03-exc1.fem | Да | 0 | 127607 | 3 | 1 | 150,2557 × 10⁻⁶ | 0 | 94,199496 × 10⁻⁶ | 692,59562 × 10⁻⁶ | 692,52201 × 10⁻⁶ | 0,59187289 | 56,056204 × 10⁻⁶ | 0,0013851912 | 5 | 0,0013851912 | 106,27345 × 10⁻⁶ | 0,59187289 | 64224 | — | — |
| model-5-01-exc2.fem | Да | 0 | 14178 | 1 | 2 | — | 0 | — | 92,306236 × 10⁻⁶ | 92,292893 × 10⁻⁶ | — | — | — | 5 | 184,61247 × 10⁻⁶ | 144,54948 × 10⁻⁶ | — | 7268 | 149,53243 × 10⁻⁶ | 184,61247 × 10⁻⁶ |
| model-5-02-exc2.fem | Да | 0 | 34730 | 2 | 2 | — | 0 | — | 92,692108 × 10⁻⁶ | 92,679538 × 10⁻⁶ | — | — | — | 5 | 185,38422 × 10⁻⁶ | 135,60563 × 10⁻⁶ | — | 17610 | 149,91633 × 10⁻⁶ | 185,38422 × 10⁻⁶ |
| model-5-03-exc2.fem | Да | 0 | 127607 | 3 | 2 | — | 0 | — | 92,888521 × 10⁻⁶ | 92,883078 × 10⁻⁶ | — | — | — | 5 | 185,77704 × 10⁻⁶ | 58,599319 × 10⁻⁶ | — | 64224 | 150,25441 × 10⁻⁶ | 185,77704 × 10⁻⁶ |
| model-10-01-exc1.fem | Да | 0 | 14314 | 1 | 1 | 181,27511 × 10⁻⁶ | 0 | 147,13821 × 10⁻⁶ | 549,34171 × 10⁻⁶ | 548,9033 × 10⁻⁶ | 0,92449663 | 34,136901 × 10⁻⁶ | 0,0010986834 | 10 | 0,0010986834 | 798,06543 × 10⁻⁶ | 0,92449663 | 7342 | — | — |
| model-10-02-exc1.fem | Да | 0 | 34964 | 2 | 1 | 181,76747 × 10⁻⁶ | 0 | 147,59264 × 10⁻⁶ | 551,61644 × 10⁻⁶ | 551,58581 × 10⁻⁶ | 0,92735193 | 34,174827 × 10⁻⁶ | 0,0011032329 | 10 | 0,0011032329 | 55,527385 × 10⁻⁶ | 0,92735193 | 17724 | — | — |
| model-10-03-exc1.fem | Да | 0 | 127113 | 3 | 1 | 182,2104 × 10⁻⁶ | 0 | 147,96916 × 10⁻⁶ | 553,01133 × 10⁻⁶ | 552,97029 × 10⁻⁶ | 0,92971764 | 34,241248 × 10⁻⁶ | 0,0011060227 | 10 | 0,0011060227 | 74,223191 × 10⁻⁶ | 0,92971764 | 63982 | — | — |
| model-10-01-exc2.fem | Да | 0 | 14314 | 1 | 2 | — | 0 | — | 137,53795 × 10⁻⁶ | 137,49792 × 10⁻⁶ | — | — | — | 10 | 275,0759 × 10⁻⁶ | 291,00879 × 10⁻⁶ | — | 7342 | 181,26898 × 10⁻⁶ | 275,0759 × 10⁻⁶ |
| model-10-02-exc2.fem | Да | 0 | 34964 | 2 | 2 | — | 0 | — | 137,94451 × 10⁻⁶ | 137,9148 × 10⁻⁶ | — | — | — | 10 | 275,88902 × 10⁻⁶ | 215,38219 × 10⁻⁶ | — | 17724 | 181,76771 × 10⁻⁶ | 275,88902 × 10⁻⁶ |
| model-10-03-exc2.fem | Да | 0 | 127113 | 3 | 2 | — | 0 | — | 138,182 × 10⁻⁶ | 138,16433 × 10⁻⁶ | — | — | — | 10 | 276,364 × 10⁻⁶ | 127,83974 × 10⁻⁶ | — | 63982 | 182,21044 × 10⁻⁶ | 276,364 × 10⁻⁶ |
| Критерий | Получено | Допуск или ожидаемое значение | Итог |
|---|---|---|---|
| Энергия и потокосцепление model--10-01-exc1.fem | 446 × 10⁻⁶ | 0,012 | Выполнен |
| Энергия и потокосцепление model--10-02-exc1.fem | 306,4 × 10⁻⁶ | 0,006 | Выполнен |
| Энергия и потокосцепление model--10-03-exc1.fem | 79,54 × 10⁻⁶ | 0,003 | Выполнен |
| Энергия и потокосцепление model--10-01-exc2.fem | 12,56 × 10⁻⁶ | 0,012 | Выполнен |
| Энергия и потокосцепление model--10-02-exc2.fem | 51,06 × 10⁻⁶ | 0,006 | Выполнен |
| Энергия и потокосцепление model--10-03-exc2.fem | 2,95 × 10⁻⁶ | 0,003 | Выполнен |
| Энергия и потокосцепление model--5-01-exc1.fem | 666,4 × 10⁻⁶ | 0,012 | Выполнен |
| Энергия и потокосцепление model--5-02-exc1.fem | 331,4 × 10⁻⁶ | 0,006 | Выполнен |
| Энергия и потокосцепление model--5-03-exc1.fem | 105,8 × 10⁻⁶ | 0,003 | Выполнен |
| Энергия и потокосцепление model--5-01-exc2.fem | 28,75 × 10⁻⁶ | 0,012 | Выполнен |
| Энергия и потокосцепление model--5-02-exc2.fem | 36,23 × 10⁻⁶ | 0,006 | Выполнен |
| Энергия и потокосцепление model--5-03-exc2.fem | 656,1 × 10⁻⁹ | 0,003 | Выполнен |
| Энергия и потокосцепление model-0-01-exc1.fem | 0,001073 | 0,012 | Выполнен |
| Энергия и потокосцепление model-0-02-exc1.fem | 247,9 × 10⁻⁶ | 0,006 | Выполнен |
| Энергия и потокосцепление model-0-03-exc1.fem | 106,8 × 10⁻⁶ | 0,003 | Выполнен |
| Энергия и потокосцепление model-0-01-exc2.fem | 5,888 × 10⁻⁶ | 0,012 | Выполнен |
| Энергия и потокосцепление model-0-02-exc2.fem | 36,04 × 10⁻⁶ | 0,006 | Выполнен |
| Энергия и потокосцепление model-0-03-exc2.fem | 17,11 × 10⁻⁶ | 0,003 | Выполнен |
| Энергия и потокосцепление model-5-01-exc1.fem | 870,2 × 10⁻⁶ | 0,012 | Выполнен |
| Энергия и потокосцепление model-5-02-exc1.fem | 362,7 × 10⁻⁶ | 0,006 | Выполнен |
| Энергия и потокосцепление model-5-03-exc1.fem | 106,3 × 10⁻⁶ | 0,003 | Выполнен |
| Энергия и потокосцепление model-5-01-exc2.fem | 144,5 × 10⁻⁶ | 0,012 | Выполнен |
| Энергия и потокосцепление model-5-02-exc2.fem | 135,6 × 10⁻⁶ | 0,006 | Выполнен |
| Энергия и потокосцепление model-5-03-exc2.fem | 58,6 × 10⁻⁶ | 0,003 | Выполнен |
| Энергия и потокосцепление model-10-01-exc1.fem | 798,1 × 10⁻⁶ | 0,012 | Выполнен |
| Энергия и потокосцепление model-10-02-exc1.fem | 55,53 × 10⁻⁶ | 0,006 | Выполнен |
| Энергия и потокосцепление model-10-03-exc1.fem | 74,22 × 10⁻⁶ | 0,003 | Выполнен |
| Энергия и потокосцепление model-10-01-exc2.fem | 291 × 10⁻⁶ | 0,012 | Выполнен |
| Энергия и потокосцепление model-10-02-exc2.fem | 215,4 × 10⁻⁶ | 0,006 | Выполнен |
| Энергия и потокосцепление model-10-03-exc2.fem | 127,8 × 10⁻⁶ | 0,003 | Выполнен |
| Взаимность первичная — верхняя при смещении -10 | 21,05 × 10⁻⁶ | 0,002 | Выполнен |
| Знак дифференциального отклика при смещении -10 | 0 | 0 | Выполнен |
| Взаимность первичная — верхняя при смещении -5 | 24,76 × 10⁻⁶ | 0,002 | Выполнен |
| Знак дифференциального отклика при смещении -5 | 0 | 0 | Выполнен |
| Взаимность первичная — верхняя при смещении 0 | 19,92 × 10⁻⁶ | 0,002 | Выполнен |
| Дифференциальный нуль в центре | 400,7 × 10⁻⁶ | 0,002 | Выполнен |
| Взаимность первичная — верхняя при смещении 5 | 8,595 × 10⁻⁶ | 0,002 | Выполнен |
| Знак дифференциального отклика при смещении 5 | 0 | 0 | Выполнен |
| Взаимность первичная — верхняя при смещении 10 | 185,7 × 10⁻⁹ | 0,002 | Выполнен |
| Знак дифференциального отклика при смещении 10 | 0 | 0 | Выполнен |
| Нечётность калибровочной характеристики ±5 | 0,001113 | 0,01 | Выполнен |
| Нечётность калибровочной характеристики ±10 | 0,001054 | 0,01 | Выполнен |
| Сходимость измеряемой величины, режим 101 | 0,002529 | 0,025 | Выполнен |
| Сходимость измеряемой величины, режим -52 | 0,001686 | 0,025 | Выполнен |
| Сходимость измеряемой величины, режим 51 | 0,001803 | 0,025 | Выполнен |
| Сходимость измеряемой величины, режим 52 | 0,002119 | 0,025 | Выполнен |
| Сходимость измеряемой величины, режим 01 | 0,001364 | 0,025 | Выполнен |
| Сходимость измеряемой величины, режим 102 | 0,001722 | 0,025 | Выполнен |
| Сходимость измеряемой величины, режим -101 | 0,002863 | 0,025 | Выполнен |
| Сходимость измеряемой величины, режим 02 | 0,001688 | 0,025 | Выполнен |
| Сходимость измеряемой величины, режим -51 | 0,002012 | 0,025 | Выполнен |
| Сходимость измеряемой величины, режим -102 | 0,001652 | 0,025 | Выполнен |
Допуски относятся к указанной учебной задаче и способу сравнения. Число показанных цифр не означает такой же физической точности.
Модели, решения и программа
Для нового расчёта сохраните программу, модели и необходимые данные в одну рабочую папку, сохраняя структуру подпапок.
- Файл результатов: README.md7039 байт
- Магнитное решение: model--10-01-exc1.ans848410 байт
- Магнитная модель: model--10-01-exc1.fem3196 байт
- Магнитное решение: model--10-01-exc2.ans850935 байт
- Магнитная модель: model--10-01-exc2.fem3196 байт
- Магнитное решение: model--10-02-exc1.ans2166633 байт
- Магнитная модель: model--10-02-exc1.fem3213 байт
- Магнитное решение: model--10-02-exc2.ans2156843 байт
- Магнитная модель: model--10-02-exc2.fem3213 байт
- Магнитное решение: model--10-03-exc1.ans8104319 байт
- Магнитная модель: model--10-03-exc1.fem3214 байт
- Магнитное решение: model--10-03-exc2.ans8106379 байт
- Магнитная модель: model--10-03-exc2.fem3214 байт
- Магнитное решение: model--5-01-exc1.ans846572 байт
- Магнитная модель: model--5-01-exc1.fem3197 байт
- Магнитное решение: model--5-01-exc2.ans843895 байт
- Магнитная модель: model--5-01-exc2.fem3197 байт
- Магнитное решение: model--5-02-exc1.ans2142625 байт
- Магнитная модель: model--5-02-exc1.fem3214 байт
- Магнитное решение: model--5-02-exc2.ans2153871 байт
- Магнитная модель: model--5-02-exc2.fem3214 байт
- Магнитное решение: model--5-03-exc1.ans8125344 байт
- Магнитная модель: model--5-03-exc1.fem3215 байт
- Магнитное решение: model--5-03-exc2.ans8128600 байт
- Магнитная модель: model--5-03-exc2.fem3215 байт
- Магнитное решение: model-0-01-exc1.ans850292 байт
- Магнитная модель: model-0-01-exc1.fem3196 байт
- Магнитное решение: model-0-01-exc2.ans847586 байт
- Магнитная модель: model-0-01-exc2.fem3196 байт
- Магнитное решение: model-0-02-exc1.ans2180147 байт
- Магнитная модель: model-0-02-exc1.fem3213 байт
- Магнитное решение: model-0-02-exc2.ans2169701 байт
- Магнитная модель: model-0-02-exc2.fem3213 байт
- Магнитное решение: model-0-03-exc1.ans8132358 байт
- Магнитная модель: model-0-03-exc1.fem3214 байт
- Магнитное решение: model-0-03-exc2.ans8130254 байт
- Магнитная модель: model-0-03-exc2.fem3214 байт
- Магнитное решение: model-10-01-exc1.ans862526 байт
- Магнитная модель: model-10-01-exc1.fem3195 байт
- Магнитное решение: model-10-01-exc2.ans862808 байт
- Магнитная модель: model-10-01-exc2.fem3195 байт
- Магнитное решение: model-10-02-exc1.ans2174637 байт
- Магнитная модель: model-10-02-exc1.fem3212 байт
- Магнитное решение: model-10-02-exc2.ans2164627 байт
- Магнитная модель: model-10-02-exc2.fem3212 байт
- Магнитное решение: model-10-03-exc1.ans8124973 байт
- Магнитная модель: model-10-03-exc1.fem3213 байт
- Магнитное решение: model-10-03-exc2.ans8127106 байт
- Магнитная модель: model-10-03-exc2.fem3213 байт
- Магнитное решение: model-5-01-exc1.ans851873 байт
- Магнитная модель: model-5-01-exc1.fem3196 байт
- Магнитное решение: model-5-01-exc2.ans854523 байт
- Магнитная модель: model-5-01-exc2.fem3196 байт
- Магнитное решение: model-5-02-exc1.ans2147583 байт
- Магнитная модель: model-5-02-exc1.fem3213 байт
- Магнитное решение: model-5-02-exc2.ans2147733 байт
- Магнитная модель: model-5-02-exc2.fem3213 байт
- Магнитное решение: model-5-03-exc1.ans8153386 байт
- Магнитная модель: model-5-03-exc1.fem3214 байт
- Магнитное решение: model-5-03-exc2.ans8150833 байт
- Магнитная модель: model-5-03-exc2.fem3214 байт
- Программа встроенного Python: reproduce.py16475 байт
Границы применимости
- ЭДС получена из линейной магнитостатической матрицы. Частотные потери сердечника, сопротивления обмоток, нагрузка вторичной цепи и электроника датчика отсутствуют.
- Сохранение, повторное открытие и решения проверяются на точных учебных файлах. Снимки интерфейса FEMM и физические измерения относятся к отдельным проходам.