exponenta event banner

interpolateMagneticField

Интерполяция магнитного поля в магнитостатическом результате в произвольных пространственных местоположениях

    Описание

    пример

    Hintrp = interpolateMagneticField(magnetostaticresults,xq,yq) возвращает значения интерполированного магнитного поля в точках, указанных в xq и yq.

    пример

    Hintrp = interpolateMagneticField(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

    Figure contains an axes. The axes contains 5 objects of type line, text.

    Укажите проницаемость для вакуума в системе единиц измерения СИ.

    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);

    Создайте сетку.

    generateMesh(emagmodel);

    Решите модель и постройте график магнитного поля.

    R = solve(emagmodel);
    pdeplot(emagmodel,'FlowData',[R.MagneticField.Hx ...
                                  R.MagneticField.Hy])
    axis equal

    Figure contains an axes. The axes contains an object of type quiver.

    Интерполяция результирующего магнитного поля в сетку, покрывающую центральную часть геометрии, для x и y от -0.5 кому 0.5.

    v = linspace(-0.5,0.5,51);
    [X,Y] = meshgrid(v);
    
    Hintrp = interpolateMagneticField(R,X,Y)
    Hintrp = 
      FEStruct with properties:
    
        Hx: [2601x1 double]
        Hy: [2601x1 double]
    
    

    Измениться Hintrp.Hx и Hintrp.Hy и постройте график результирующего электрического поля.

    HintrpX = reshape(Hintrp.Hx,size(X));
    HintrpY = reshape(Hintrp.Hy,size(Y));
    
    figure
    quiver(X,Y,HintrpX,HintrpY,'Color','red')

    Figure contains an axes. The axes contains an object of type quiver.

    Кроме того, сетку можно задать с помощью матрицы точек запроса.

    querypoints = [X(:),Y(:)]';
    Hintrp = interpolateMagneticField(R,querypoints);

    Входные аргументы

    свернуть все

    Решение магнитостатической задачи, указанной как MagnetostaticResults объект. Создать magnetostaticresults с использованием solve функция.

    Пример: magnetostaticresults = solve(emagmodel)

    точки запроса координат x, заданные как вещественный массив. interpolateMagneticField вычисляет магнитное поле в точках координат [xq(i) yq(i)] для каждого i. Из-за этого, xq и yq должно иметь одинаковое количество записей.

    interpolateMagneticField преобразует точки запроса в векторы столбцов xq(:) и yq(:). Возвращает значения магнитного поля в виде вектора столбца того же размера. Чтобы убедиться, что измерения возвращенного решения согласуются с измерениями исходных точек запроса, используйте reshape. Например, использовать HintrpX = reshape(Hintrp.Hx,size(xq)).

    Пример: xq = [0.5 0.5 0.75 0.75]

    Типы данных: double

    точки запроса координат y, заданные как вещественный массив. interpolateMagneticField вычисляет магнитное поле в точках координат [xq(i),yq(i)] для каждого i. Из-за этого, xq и yq должно иметь одинаковое количество записей.

    interpolateMagneticField преобразует точки запроса в векторы столбцов xq(:) и yq(:). Возвращает значения магнитного поля в виде вектора столбца того же размера. Чтобы убедиться, что измерения возвращенного решения согласуются с измерениями исходных точек запроса, используйте reshape. Например, использовать HintrpY = reshape(Hintrp.Hy,size(yq)).

    Пример: yq = [1 2 0 0.5]

    Типы данных: double

    Точки запроса, заданные как вещественная матрица с двумя строками для 2-D геометрии. interpolateMagneticField оценивает магнитное поле в точках координат querypoints(:,i) для каждого i, таким образом, каждый столбец querypoints содержит ровно одну 2-D точку запроса.

    Пример: querypoints = [0.5 0.5 0.75 0.75; 1 2 0 0.5]

    Типы данных: double

    Выходные аргументы

    свернуть все

    Магнитное поле в точках запроса, возвращенное как FEStruct объект со свойствами, представляющими пространственные компоненты магнитного поля в точках запроса. Для точек запроса, которые находятся вне геометрии, Hintrp.Hx(i) и Hintrp.Hy(i) являются NaN. Свойства FEStruct объекты доступны только для чтения.

    Представлен в R2021a