interpolateMagneticPotential

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

    Описание

    пример

    Aintrp = interpolateMagneticPotential(magnetostaticresults,xq,yq) возвращает интерполированные магнитные потенциальные значения в точках, заданных в xq и yq.

    пример

    Aintrp = interpolateMagneticPotential(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);

    Сгенерируйте mesh.

    generateMesh(emagmodel);

    Решите модель и постройте магнитный потенциал.

    R = solve(emagmodel);
    pdeplot(emagmodel,'XYData',R.MagneticPotential, ...
                      'Contour','on')
    axis equal

    Figure contains an axes. The axes contains 12 objects of type patch, line.

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

    v = linspace(-0.5,0.5,51);
    [X,Y] = meshgrid(v);
    Aintrp = interpolateMagneticPotential(R,X,Y)
    Aintrp = 2601×1
    
        0.0056
        0.0057
        0.0058
        0.0059
        0.0060
        0.0061
        0.0062
        0.0063
        0.0064
        0.0065
          ⋮
    
    

    Измените Aintrp и постройте получившийся магнитный потенциал.

    Aintrp = reshape(Aintrp,size(X));
    figure
    contourf(X,Y,Aintrp)
    colormap(cool)
    colorbar

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

    В качестве альтернативы можно задать сетку при помощи матрицы точек запроса.

    querypoints = [X(:),Y(:)]';
    Aintrp = interpolateMagneticPotential(R,querypoints);

    Входные параметры

    свернуть все

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

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

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

    interpolateMagneticPotential преобразует точки запроса в вектор-столбцы xq(:) и yq(:). Это возвращает магнитные потенциальные значения как вектор-столбец, одного размера. Чтобы гарантировать, что размерности возвращенного решения сопоставимы с размерностями точек исходного запроса, использовать reshape. Например, используйте Aintrp = reshape(Aintrp,size(xq)).

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

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

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

    interpolateMagneticPotential преобразует точки запроса в вектор-столбцы xq(:) и yq(:). Это возвращает магнитные потенциальные значения как вектор-столбец, одного размера. Чтобы гарантировать, что размерности возвращенного решения сопоставимы с размерностями точек исходного запроса, использовать reshape. Например, используйте Aintrp = reshape(Aintrp,size(xq)).

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

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

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

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

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

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

    свернуть все

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

    Введенный в R2021a