interpolateStrain

Интерполируйте деформацию в произвольных пространственных местах

Описание

пример

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

пример

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

пример

intrpStrain = interpolateStrain(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);

Сгенерируйте mesh и решите проблему.

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

Создайте сетку и интерполируйте x - и y-компоненты нормальной деформации в сетку.

v = linspace(-1,1,101);
[X,Y] = meshgrid(v);
intrpStrain = interpolateStrain(structuralresults,X,Y);

Измените форму x-компонента нормального напряжения на форму сетки и постройте график.

exx = reshape(intrpStrain.exx,size(X));
px = pcolor(X,Y,exx);
px.EdgeColor='none';
colorbar

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

Измените форму y-компонента нормального напряжения на форму сетки и постройте график.

eyy = reshape(intrpStrain.eyy,size(Y));
figure
py = pcolor(X,Y,eyy);
py.EdgeColor='none';
colorbar

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

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

Создайте статическую несущую модель для решения твердотельной (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]);

Сгенерируйте mesh и решите проблему.

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;

Интерполируйте напряжение и постройте график результата.

intrpStrain = interpolateStrain(structuralresults,X,Y,Z);
surf(X,Y,reshape(intrpStrain.ezz,size(X)))

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

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

querypoints = [X(:),Y(:),Z(:)]';
intrpStrain = interpolateStrain(structuralresults,querypoints);
surf(X,Y,reshape(intrpStrain.ezz,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);

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

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];
intrpStrain = interpolateStrain(structuralresults,coordsMidSpan);

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

figure
plot(structuralresults.SolutionTimes,intrpStrain.exx)
title('X-Direction Normal Strain at Beam Center')

Figure contains an axes. The axes with title X-Direction Normal Strain at Beam Center contains an object of type line.

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

свернуть все

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

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

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

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

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

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

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

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

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

Точки запроса, заданные как действительная матрица с двумя строками для 2-D геометрии или тремя строками для 3-D геометрии. interpolateStrain вычисляет деформации в координатных точках 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 объект со свойствами, представляющими пространственные компоненты деформации в точках запроса. Для точек запроса, которые находятся вне геометрии, intrpStrain возвращает NaN. Свойства FEStruct объект доступен только для чтения.

Введенный в R2017b