interpolateVonMisesStress

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

Описание

пример

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

пример

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

пример

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

Примеры

свернуть все

Создайте модель структурного анализа для проблемы плоской деформации.

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

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

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

Figure contains an axes object. The axes object 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 object. The axes object 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 object. The axes object 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]

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

[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 object. The axes object 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 object. The axes object 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 object. The axes object 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 object. The axes object with title von Mises Stress at Beam Center contains an object of type line.

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

свернуть все

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

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

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

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

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

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

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

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

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

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

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

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

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

свернуть все

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

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

Введенный в R2017b