interpolateVonMisesStress

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

Описание

пример

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

пример

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

пример

intrpVMStress = interpolateVonMisesStress(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);

Создайте сетку и интерполируйте напряжение фон Мизеса в сетку.

v = linspace(-1,1,151);
[X,Y] = meshgrid(v);
intrpVMStress = interpolateVonMisesStress(structuralresults,X,Y);

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

VMStress = reshape(intrpVMStress,size(X));
p = pcolor(X,Y,VMStress);
p.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;

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

IntrpVMStress = interpolateVonMisesStress(structuralresults,X,Y,Z);
surf(X,Y,reshape(IntrpVMStress,size(X)))

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

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

querypoints = [X(:),Y(:),Z(:)]';
IntrpVMStress = interpolateVonMisesStress(structuralresults,querypoints);
surf(X,Y,reshape(IntrpVMStress,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];
intrpStress = interpolateStress(structuralresults,coordsMidSpan);

Постройте график напряжения фон Мизеса в геометрическом центре балки.

figure
plot(structuralresults.SolutionTimes,intrpStress.sxx)
title('von Mises Stress at Beam Center')

Figure contains an axes. The axes with title von Mises Stress at Beam Center contains an object of type line.

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

свернуть все

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

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

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

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

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

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

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

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

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

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

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

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

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

свернуть все

фон Мизес стресс в точках запроса, возвращенный как вектор-столбец.

Для точек запроса, которые находятся вне геометрии, intrpVMStress = NaN.

Введенный в R2017b