Интерполируйте электрический потенциал в электростатическом результате в произвольных пространственных местоположениях
возвращает интерполированные электрические потенциальные значения в 2D точках, заданных в Vintrp
= interpolateElectricPotential(electrostaticresults
,xq
,yq
)xq
и yq
.
использует 3-D точки, заданные в Vintrp
= interpolateElectricPotential(electrostaticresults
,xq
,yq
,zq
)xq
yq
, и zq
.
возвращает интерполированные электрические потенциальные значения в точках, заданных в Vintrp
= interpolateElectricPotential(electrostaticresults
,querypoints
)querypoints
.
Создайте электромагнитную модель для электростатического анализа.
emagmodel = createpde('electromagnetic','electrostatic');
Создайте квадратную геометрию и включайте ее в модель. Постройте геометрию с метками ребра.
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.VacuumPermittivity = 8.8541878128E-12;
Задайте относительную проницаемость материала.
electromagneticProperties(emagmodel,'RelativePermittivity',1);
Примените граничные условия напряжения на ребра квадрата.
electromagneticBC(emagmodel,'Voltage',0,'Edge',[1 3]); electromagneticBC(emagmodel,'Voltage',1000,'Edge',[2 4]);
Задайте плотность заряда для целой геометрии.
electromagneticSource(emagmodel,'ChargeDensity',5E-9);
Сгенерируйте mesh.
generateMesh(emagmodel);
Решите модель и постройте электрический потенциал.
R = solve(emagmodel); pdeplot(emagmodel,'XYData',R.ElectricPotential, ... 'Contour','on') axis equal
Интерполируйте получившийся электрический потенциал к сетке, покрывающей центральный фрагмент геометрии для x
и y
от -0.5
к 0.5
.
v = linspace(-0.5,0.5,51); [X,Y] = meshgrid(v); Vintrp = interpolateElectricPotential(R,X,Y)
Vintrp = 2601×1
602.2959
616.0208
629.0498
641.4049
653.0828
664.0757
674.4209
684.1432
693.2704
701.8026
⋮
Измените Vintrp
и постройте получившийся электрический потенциал.
Vintrp = reshape(Vintrp,size(X)); figure contourf(X,Y,Vintrp) colormap(cool) colorbar
В качестве альтернативы можно задать сетку при помощи матрицы точек запроса.
querypoints = [X(:),Y(:)]'; Vintrp = interpolateElectricPotential(R,querypoints);
Создайте электромагнитную модель для электростатического анализа.
emagmodel = createpde('electromagnetic','electrostatic');
Импортируйте и постройте геометрию, представляющую пластину отверстием.
importGeometry(emagmodel,'PlateHoleSolid.stl'); pdegplot(emagmodel,'FaceLabels','on','FaceAlpha',0.3)
Задайте вакуумную проницаемость в системе СИ модулей.
emagmodel.VacuumPermittivity = 8.8541878128E-12;
Задайте относительную проницаемость материала.
electromagneticProperties(emagmodel,'RelativePermittivity',1);
Задайте плотность заряда для целой геометрии.
electromagneticSource(emagmodel,'ChargeDensity',5E-9);
Примените граничные условия напряжения на поверхности стороны и поверхность, ограничивающую отверстие.
electromagneticBC(emagmodel,'Voltage',0,'Face',3:6); electromagneticBC(emagmodel,'Voltage',1000,'Face',7);
Сгенерируйте mesh.
generateMesh(emagmodel);
Решите модель.
R = solve(emagmodel)
R = ElectrostaticResults with properties: ElectricPotential: [4359x1 double] ElectricField: [1x1 FEStruct] ElectricFluxDensity: [1x1 FEStruct] Mesh: [1x1 FEMesh]
Постройте электрический потенциал.
pdeplot3D(emagmodel,'ColorMapData',R.ElectricPotential)
Интерполируйте получившийся электрический потенциал к сетке, покрывающей целую геометрию для x
Y
, и z
.
x = linspace(0,10,11); y = linspace(0,1,5); z = linspace(0,20,11); [X,Y,Z] = meshgrid(x,y,z); Vintrp = interpolateElectricPotential(R,X,Y,Z);
Измените Vintrp
.
Vintrp = reshape(Vintrp,size(X));
Постройте получившийся электрический потенциал как график среза контура для двух значений y
- координата.
figure
contourslice(X,Y,Z,Vintrp,[],[0 1],[])
view([10,10,-10])
axis equal
colorbar
electrostaticresults
— Решение электростатической проблемыElectrostaticResults
объектРешение электростатической проблемы в виде ElectrostaticResults
объект. Создайте electrostaticresults
использование solve
функция.
Пример: electrostaticresults = solve(emagmodel)
xq
— x - координирует точки запросаx- точки запроса в виде действительного массива. interpolateElectricPotential
оценивает электрический потенциал в 2D точках координаты [xq(i) yq(i)]
или в 3-D координате указывает [xq(i) yq(i) zq(i)]
для каждого i
. Из-за этого, xq
yq
, и (если есть) zq
должен иметь то же количество записей.
interpolateElectricPotential
преобразует точки запроса в вектор-столбцы xq(:)
yq
, и (если есть) zq(:)
. Это возвращает электрические потенциальные значения как вектор-столбец, одного размера. Чтобы гарантировать, что размерности возвращенного решения сопоставимы с размерностями точек исходного запроса, использовать reshape
. Например, используйте Vintrp = reshape(Vintrp,size(xq))
.
Пример: xq = [0.5 0.5 0.75 0.75]
Типы данных: double
yq
— y - координирует точки запросаy- точки запроса в виде действительного массива. interpolateElectricPotential
оценивает электрический потенциал в 2D точках координаты [xq(i) yq(i)]
или в 3-D координате указывает [xq(i) yq(i) zq(i)]
для каждого i
. Из-за этого, xq
yq
, и (если есть) zq
должен иметь то же количество записей.
interpolateElectricPotential
преобразует точки запроса в вектор-столбцы xq(:)
yq
, и (если есть) zq(:)
. Это возвращает электрические потенциальные значения как вектор-столбец, одного размера. Чтобы гарантировать, что размерности возвращенного решения сопоставимы с размерностями точек исходного запроса, использовать reshape
. Например, используйте Vintrp = reshape(Vintrp,size(yq))
.
Пример: yq = [1 2 0 0.5]
Типы данных: double
zq
— z - координирует точки запросаz- точки запроса в виде действительного массива. interpolateElectricPotential
оценивает электрический потенциал в 3-D точках координаты [xq(i) yq(i) zq(i)]
. Поэтому xq
yq
, и zq
должен иметь то же количество записей.
interpolateElectricPotential
преобразует точки запроса в вектор-столбцы xq(:)
yq
, и zq(:)
. Это возвращает электрические потенциальные значения как вектор-столбец, одного размера. Чтобы гарантировать, что размерности возвращенного решения сопоставимы с размерностями точек исходного запроса, использовать reshape
. Например, используйте Vintrp = reshape(Vintrp,size(zq))
.
Пример: zq = [1 1 0 1.5]
Типы данных: double
querypoints
— Точки запросаТочки запроса в виде действительной матрицы или с двумя строками для 2D геометрии или с тремя строками для 3-D геометрии. interpolateElectricPotential
оценивает электрический потенциал в точках координаты querypoints(:,i)
для каждого i
, так каждый столбец querypoints
содержит точно одну 2D или 3-D точку запроса.
Пример: Для 2D геометрии, querypoints = [0.5 0.5 0.75 0.75; 1 2 0 0.5]
Типы данных: double
Vintrp
— Электрический потенциал в точках запросаЭлектрический потенциал в точках запроса, возвращенных как вектор. Для точек запроса, которые находятся вне геометрии, Vintrp(i)
= NaN
.
solve
| interpolateElectricField
| interpolateElectricFlux
| ElectromagneticModel
| ElectrostaticResults
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.