Интерполируйте плотность магнитного потока в магнитостатическом результате в произвольных пространственных местоположениях
возвращает интерполированную плотность магнитного потока в 2D точках, заданных в Bintrp = interpolateMagneticFlux(magnetostaticresults,xq,yq)xq и yq.
использует 3-D точки, заданные в Bintrp = interpolateMagneticFlux(magnetostaticresults,xq,yq,zq)xqyq , и zq.
возвращает интерполированную плотность магнитного потока в точках, заданных в Bintrp = interpolateMagneticFlux(magnetostaticresults,querypoints)querypoints.
Создайте электромагнитную модель для магнитостатического анализа.
emagmodel = createpde('electromagnetic','magnetostatic');
Создайте квадратную геометрию и включайте ее в модель. Постройте геометрию с метками ребра.
R1 = [3,4,-1,1,1,-1,1,1,-1,-1]'; g = decsg(R1,'R1',('R1')'); geometryFromEdges(emagmodel,g); pdegplot(emagmodel,'EdgeLabels','on') xlim([-1.5 1.5]) axis equal

Задайте вакуумную проницаемость в системе СИ модулей.
emagmodel.VacuumPermeability = 1.2566370614E-6;
Задайте относительную проницаемость материала.
electromagneticProperties(emagmodel,'RelativePermeability',5000);Примените магнитные потенциальные граничные условия на контуры квадрата.
electromagneticBC(emagmodel,'MagneticPotential',0,'Edge',[1 3]); electromagneticBC(emagmodel,'MagneticPotential',0.01,'Edge',[2 4]);
Задайте плотность тока для целой геометрии.
electromagneticSource(emagmodel,'CurrentDensity',0.5);Сгенерируйте mesh.
generateMesh(emagmodel);
Решите модель и постройте плотность магнитного потока.
R = solve(emagmodel); pdeplot(emagmodel,'FlowData',[R.MagneticFluxDensity.Bx ... R.MagneticFluxDensity.By]) axis equal

Интерполируйте получившуюся электрическую плотность потока к сетке, покрывающей центральный фрагмент геометрии для x и y от -0.5 к 0.5.
v = linspace(-0.5,0.5,51); [X,Y] = meshgrid(v); Bintrp = interpolateMagneticFlux(R,X,Y)
Bintrp =
FEStruct with properties:
Bx: [2601x1 double]
By: [2601x1 double]
Измените Bintrp.Bx и Bintrp.By и постройте получившуюся плотность магнитного потока.
BintrpX = reshape(Bintrp.Bx,size(X)); BintrpY = reshape(Bintrp.By,size(Y)); figure quiver(X,Y,BintrpX,BintrpY,'Color','red')

В качестве альтернативы можно задать сетку при помощи матрицы точек запроса.
querypoints = [X(:),Y(:)]'; Bintrp = interpolateMagneticFlux(R,querypoints);
Создайте электромагнитную модель для магнитостатического анализа.
emagmodel = createpde('electromagnetic','magnetostatic');
Импортируйте и постройте геометрию, представляющую пластину отверстием.
importGeometry(emagmodel,'PlateHoleSolid.stl'); pdegplot(emagmodel,'FaceLabels','on','FaceAlpha',0.3)

Задайте вакуумное значение проницаемости в системе СИ модулей.
emagmodel.VacuumPermeability = 1.2566370614E-6;
Задайте относительную проницаемость материала.
electromagneticProperties(emagmodel,'RelativePermeability',5000);Задайте плотность тока для целой геометрии.
electromagneticSource(emagmodel,'CurrentDensity',[0;0;0.5]);Примените магнитные потенциальные граничные условия на поверхности стороны и поверхность, ограничивающую отверстие.
electromagneticBC(emagmodel,'MagneticPotential',[0;0;0],'Face',3:6); electromagneticBC(emagmodel,'MagneticPotential',[0;0;0.01],'Face',7);
Сгенерируйте mesh.
generateMesh(emagmodel);
Решите модель.
R = solve(emagmodel)
R =
MagnetostaticResults with properties:
MagneticPotential: [1x1 FEStruct]
MagneticField: [1x1 FEStruct]
MagneticFluxDensity: [1x1 FEStruct]
Mesh: [1x1 FEMesh]
Постройте плотность магнитного потока.
pdeplot3D(emagmodel,'FlowData',[R.MagneticFluxDensity.Bx ... R.MagneticFluxDensity.By ... R.MagneticFluxDensity.Bz])

Интерполируйте получившуюся плотность магнитного потока к сетке, покрывающей центральный фрагмент геометрии для xY, и z.
x = linspace(3,7,5); y = linspace(0,1,5); z = linspace(8,12,5); [X,Y,Z] = meshgrid(x,y,z); Bintrp = interpolateMagneticFlux(R,X,Y,Z)
Bintrp =
FEStruct with properties:
Bx: [125x1 double]
By: [125x1 double]
Bz: [125x1 double]
Измените Bintrp.Bx, Bintrp.By, и Bintrp.Bz.
BintrpX = reshape(Bintrp.Bx,size(X)); BintrpY = reshape(Bintrp.By,size(Y)); BintrpZ = reshape(Bintrp.Bz,size(Z));
Постройте получившуюся плотность магнитного потока.
figure quiver3(X,Y,Z,BintrpX,BintrpY,BintrpZ,'Color','red') view([30 10]) view([10 15])

magnetostaticresults — Решение магнитостатической проблемыMagnetostaticResults объектРешение магнитостатической проблемы в виде MagnetostaticResults объект. Создайте magnetostaticresults использование solve функция.
Пример: magnetostaticresults = solve(emagmodel)
xq — x - координирует точки запросаx- точки запроса в виде действительного массива. interpolateMagneticFlux оценивает плотность магнитного потока в 2D точках координаты [xq(i) yq(i)] или в 3-D координате указывает [xq(i) yq(i) zq(i)] для каждого i. Из-за этого, xqyq , и (если есть) zq должен иметь то же количество записей.
interpolateMagneticFlux преобразует точки запроса в вектор-столбцы xq(:) и yq(:). Это возвращает плотность магнитного потока как вектор-столбец, одного размера. Чтобы гарантировать, что размерности возвращенного решения сопоставимы с размерностями точек исходного запроса, использовать reshape. Например, используйте BintrpX = reshape(Bintrp.Bx,size(xq)).
Пример: xq = [0.5 0.5 0.75 0.75]
Типы данных: double
yq — y - координирует точки запросаy- точки запроса в виде действительного массива. interpolateMagneticFlux оценивает плотность магнитного потока в 2D точках координаты [xq(i) yq(i)] или в 3-D координате указывает [xq(i) yq(i) zq(i)] для каждого i. Из-за этого, xqyq , и (если есть) zq должен иметь то же количество записей.
interpolateMagneticFlux преобразует точки запроса в вектор-столбцы xq(:)yq , и (если есть) zq(:). Это возвращает плотность магнитного потока как вектор-столбец, одного размера. Чтобы гарантировать, что размерности возвращенного решения сопоставимы с размерностями точек исходного запроса, использовать reshape. Например, используйте BintrpY = reshape(Bintrp.By,size(yq)).
Пример: yq = [1 2 0 0.5]
Типы данных: double
zq — z - координирует точки запросаz- точки запроса в виде действительного массива. interpolateMagneticFlux оценивает плотность магнитного потока в 3-D точках координаты [xq(i) yq(i) zq(i)]. Поэтому xqyq , и zq должен иметь то же количество записей.
interpolateMagneticFlux преобразует точки запроса в вектор-столбцы xq(:)yq , и zq(:). Это возвращает значения плотности магнитного потока как вектор-столбец, одного размера. Чтобы гарантировать, что размерности возвращенного решения сопоставимы с размерностями точек исходного запроса, использовать reshape. Например, используйте BintrpZ = reshape(Bintrp.Bz,size(zq)).
Пример: zq = [1 1 0 1.5]
Типы данных: double
querypoints — Точки запросаТочки запроса в виде действительной матрицы с двумя строками для 2D геометрии или тремя строками для 3-D геометрии. interpolateMagneticFlux оценивает плотность магнитного потока в точках координаты querypoints(:,i) для каждого i, так каждый столбец querypoints содержит точно одну 2D или 3-D точку запроса.
Пример: Для 2D геометрии, querypoints = [0.5 0.5 0.75 0.75; 1 2 0 0.5]
Типы данных: double
Bintrp — Плотность магнитного потока в точках запросаFEStructПлотность магнитного потока в точках запроса, возвращенных как FEStruct объект со свойствами, представляющими пространственные компоненты плотности магнитного потока в точках запроса. Для точек запроса, которые находятся вне геометрии, Bintrp.Bx(i), Bintrp.By(i), и Bintrp.Bz(i) NaN. Свойства FEStruct объект только для чтения.
solve | interpolateMagneticField | interpolateMagneticPotential | ElectromagneticModel | MagnetostaticResults
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.