exponenta event banner

interpolateDisplacement

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

Описание

пример

intrpDisp = interpolateDisplacement(structuralresults,xq,yq) возвращает интерполированные значения смещения в точках 2-D, указанных в xq и yq. Для структурных моделей переходных процессов и частотной характеристики interpolateDisplacement возвращает интерполированные значения смещения для всех временных или частотных шагов соответственно.

пример

intrpDisp = interpolateDisplacement(structuralresults,xq,yq,zq) использует точки 3-D, указанные в xq, yq, и zq.

пример

intrpDisp = interpolateDisplacement(structuralresults,querypoints) использует точки, указанные в querypoints.

Примеры

свернуть все

Создайте модель структурного анализа для задачи «плоскость-деформация».

structuralmodel = createpde('structural','static-planestrain');

Включить квадратную геометрию в модель. Постройте график геометрии.

geometryFromEdges(structuralmodel,@squareg);
pdegplot(structuralmodel,'EdgeLabels','on')
axis equal

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

Укажите модуль Юнга и коэффициент Пуассона.

structuralProperties(structuralmodel,'PoissonsRatio',0.3, ...
                                     'YoungsModulus',210E3);

Укажите X-компонент принудительного смещения для кромки 1.

structuralBC(structuralmodel,'XDisplacement',0.001,'Edge',1);

Укажите, что кромка 3 является фиксированной границей.

structuralBC(structuralmodel,'Constraint','fixed','Edge',3);

Создайте сетку и решите проблему.

generateMesh(structuralmodel);
structuralresults = solve(structuralmodel);

Создайте сетку и интерполируйте компоненты смещения x и y в сетку.

v = linspace(-1,1,21);
[X,Y] = meshgrid(v);
intrpDisp = interpolateDisplacement(structuralresults,X,Y);

Изменение формы компонентов смещения в соответствии с формой сетки. Постройте график смещения.

ux = reshape(intrpDisp.ux,size(X));
uy = reshape(intrpDisp.uy,size(Y));
quiver(X,Y,ux,uy)

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

Решите статическую структурную модель, представляющую биметаллический кабель при растяжении, и интерполируйте смещение на поперечном сечении кабеля.

Создание статической несущей модели для решения задачи твердого тела (3-D).

structuralmodel = createpde('structural','static-solid');

Создайте геометрию и включите ее в модель. Постройте график геометрии.

gm = multicylinder([0.01,0.015],0.05);
structuralmodel.Geometry = gm;
pdegplot(structuralmodel,'FaceLabels','on','CellLabels','on','FaceAlpha',0.5)

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

Укажите модуль Юнга и коэффициент Пуассона для каждого металла.

structuralProperties(structuralmodel,'Cell',1,'YoungsModulus',110E9, ...
                                              'PoissonsRatio',0.28);
structuralProperties(structuralmodel,'Cell',2,'YoungsModulus',210E9, ...
                                              'PoissonsRatio',0.3);

Укажите, что грани 1 и 4 являются фиксированными границами.

structuralBC(structuralmodel,'Face',[1,4],'Constraint','fixed');

Задайте тягу поверхности для граней 2 и 5.

structuralBoundaryLoad(structuralmodel,'Face',[2,5],'SurfaceTraction',[0;0;100]);

Создайте сетку и решите проблему.

generateMesh(structuralmodel);
structuralresults = solve(structuralmodel)
structuralresults = 
  StaticStructuralResults with properties:

      Displacement: [1x1 FEStruct]
            Strain: [1x1 FEStruct]
            Stress: [1x1 FEStruct]
    VonMisesStress: [22281x1 double]
              Mesh: [1x1 FEMesh]

Определите координаты среднего сечения кабеля.

[X,Y] = meshgrid(linspace(-0.015,0.015,50));
Z = ones(size(X))*0.025;

Выполните интерполяцию смещения и постройте график результата.

intrpDisp = interpolateDisplacement(structuralresults,X,Y,Z);
surf(X,Y,reshape(intrpDisp.uz,size(X)))

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

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

querypoints = [X(:),Y(:),Z(:)]';
intrpDisp = interpolateDisplacement(structuralresults,querypoints);
surf(X,Y,reshape(intrpDisp.uz,size(X)))

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

Интерполяция смещения в геометрическом центре луча при гармоническом возбуждении.

Создайте переходную динамическую модель для 3-D проблемы.

structuralmodel = createpde('structural','transient-solid');

Создайте геометрию и включите ее в модель. Постройте график геометрии.

gm = multicuboid(0.06,0.005,0.01);
structuralmodel.Geometry = gm;
pdegplot(structuralmodel,'FaceLabels','on','FaceAlpha',0.5)
view(50,20)

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

Задайте модуль Юнга, коэффициент Пуассона и массовую плотность материала.

structuralProperties(structuralmodel,'YoungsModulus',210E9, ...
                                     'PoissonsRatio',0.3, ...
                                     'MassDensity',7800);

Закрепите один конец балки.

structuralBC(structuralmodel,'Face',5,'Constraint','fixed');

Применить синусоидальное смещение вдоль y- направление на конце, противоположном фиксированному концу балки.

structuralBC(structuralmodel,'Face',3,'YDisplacement',1E-4,'Frequency',50);

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

generateMesh(structuralmodel,'Hmax',0.01);

Задайте нулевое начальное смещение и скорость.

structuralIC(structuralmodel,'Displacement',[0;0;0],'Velocity',[0;0;0]);

Решите модель.

tlist = 0:0.002:0.2;
structuralresults = solve(structuralmodel,tlist);

Интерполировать смещение в геометрическом центре балки.

coordsMidSpan = [0;0;0.005];
intrpDisp = interpolateDisplacement(structuralresults,coordsMidSpan);

Постройте график y- компонент смещения геометрического центра балки.

figure
plot(structuralresults.SolutionTimes,intrpDisp.uy)
title('y-Displacement of the Geometric Center of the Beam')

Figure contains an axes. The axes with title y-Displacement of the Geometric Center of the Beam contains an object of type line.

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

свернуть все

Решение задачи структурного анализа, указанной как StaticStructuralResults, TransientStructuralResults, или FrequencyStructuralResults объект. Создать structuralresults с помощью solve функция. Для TransientStructuralResults и FrequencyStructuralResults объекты, interpolateDisplacement возвращает интерполированные значения смещения для всех шагов времени и частоты соответственно.

Пример: structuralresults = solve(structuralmodel)

точки запроса координат x, заданные как вещественный массив. interpolateDisplacement оценивает смещения в точках координат 2-D [xq(i),yq(i)] или в точках координат 3-D [xq(i),yq(i),zq(i)]. Поэтому xq, yq, и (при наличии) zq должно иметь одинаковое количество записей.

interpolateDisplacement преобразует точки запроса в векторы столбцов xq(:), yq(:), и (при наличии) zq(:). Функция возвращает смещения как FEStruct объект со свойствами, содержащими векторы того же размера, что и эти векторы столбцов. Чтобы убедиться, что измерения возвращенного решения согласуются с измерениями исходных точек запроса, используйте reshape функция. Например, использовать intrpDisp = reshape(intrpDisp.ux,size(xq)).

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

точки запроса координат y, заданные как вещественный массив. interpolateDisplacement оценивает смещения в точках координат 2-D [xq(i),yq(i)] или в точках координат 3-D [xq(i),yq(i),zq(i)]. Поэтому xq, yq, и (при наличии) zq должно иметь одинаковое количество записей. Внутри, interpolateDisplacement преобразует точки запроса в вектор столбца yq(:).

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

точки запроса координат z, заданные как вещественный массив. interpolateDisplacement оценивает смещения в точках координат 3-D [xq(i),yq(i),zq(i)]. Поэтому xq, yq, и zq должно иметь одинаковое количество записей. Внутри, interpolateDisplacement преобразует точки запроса в вектор столбца zq(:).

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

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

Пример: Для 2-D геометрии querypoints = [0.5,0.5,0.75,0.75; 1,2,0,0.5]

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

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

свернуть все

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

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