exponenta event banner

Концентрация напряжений в пластине с круглым отверстием

Выполните 2-й анализ эластичности напряжения самолета.

Тонкая прямоугольная пластина под одноосным натяжением имеет равномерное распределение напряжений. Введение круглого отверстия в пластину нарушает равномерное распределение напряжений вблизи отверстия, приводя к значительно большему среднему напряжению. Такая тонкая пластина согласно погрузке в самолете, может быть проанализирован как 2-я проблема эластичности напряжения самолета. Теоретически, если пластина бесконечна, то напряжение вблизи отверстия в три раза превышает среднее напряжение. Для прямоугольной пластины конечной ширины коэффициент концентрации напряжений является функцией отношения диаметра отверстия к ширине пластины. Этот пример аппроксимирует коэффициент концентрации напряжения, используя пластину конечной ширины.

Создание несущей модели и включение геометрии

Создайте структурную модель для статического анализа плоскостей и напряжений.

model = createpde('structural','static-planestress');

Пластина должна быть достаточно длинной, чтобы прикладываемые нагрузки и граничные условия находились далеко от круглого отверстия. Это условие гарантирует, что состояние равномерного натяжения преобладает в дальнем поле и, следовательно, приближается к бесконечно длинной пластине. В этом примере длина пластины в четыре раза превышает ее ширину. Задайте следующие геометрические параметры задачи.

radius = 20.0;
width = 50.0;
totalLength = 4*width;

Определите матрицу описания геометрии (GDM) для прямоугольника и окружности.

R1 = [3 4 -totalLength  totalLength ...
           totalLength -totalLength ...
          -width -width width width]'; 
C1 = [1 0 0 radius 0 0 0 0 0 0]';

Определите комбинированную GDM-матрицу, матрицу «имя-пространство» и задайте формулу для построения разложенной геометрии с помощью decsg.

gdm = [R1 C1];
ns = char('R1','C1');
g = decsg(gdm,'R1 - C1',ns');

Создайте геометрию и включите ее в модель несущей конструкции.

geometryFromEdges(model,g);

Постройте график геометрии, отображающей метки кромок.

figure
pdegplot(model,'EdgeLabel','on');
axis([-1.2*totalLength 1.2*totalLength -1.2*width 1.2*width])
title 'Geometry with Edge Labels';

Figure contains an axes. The axes with title Geometry with Edge Labels contains 9 objects of type line, text.

Постройте график геометрии, отображающей метки вершин.

figure
pdegplot(model,'VertexLabels','on');
axis([-1.2*totalLength 1.2*totalLength -1.2*width 1.2*width])
title 'Geometry with Vertex Labels';

Figure contains an axes. The axes with title Geometry with Vertex Labels contains 9 objects of type line, text.

Задание параметров модели

Задайте модуль Юнга и отношение Пуассона к линейному упругому поведению материала модели. Не забудьте указать физические свойства в согласованных единицах.

structuralProperties(model,'YoungsModulus',200E3,'PoissonsRatio',0.25);

Ограничьте все движения жесткого тела пластины путем указания достаточных ограничений. Для статического анализа ограничения должны также противостоять движению, вызванному приложенной нагрузкой.

Установите x- компонент смещения на левой кромке (кромке 3) к нулю для сопротивления приложенной нагрузке. Установите y- компонент смещения в левом нижнем углу (вершина 3) к нулю для ограничения движения жесткого тела.

structuralBC(model,'Edge',3,'XDisplacement',0);
structuralBC(model,'Vertex',3,'YDisplacement',0);

Применение поверхностной тяги с ненулевой x- компонент на правом крае пластины.

structuralBoundaryLoad(model,'Edge',1,'SurfaceTraction',[100;0]);

Создание сетки и решение

Чтобы точно зафиксировать градацию в решении, используйте тонкую сетку. Создание сетки с помощью Hmax для управления размером сетки.

generateMesh(model,'Hmax',radius/6);

Постройте график сетки.

figure
pdemesh(model)

Figure contains an axes. The axes contains 2 objects of type line.

Решите модель упругости «плоскость-напряжение».

R = solve(model);

Печать горизонталей напряжения

Постройте график x- компонент нормального распределения напряжений. Напряжение равно приложенному напряжению на расстоянии от круговой границы. Максимальное значение напряжения находится вблизи круговой границы.

figure
pdeplot(model,'XYData',R.Stress.sxx,'ColorMap','jet')
axis equal
title 'Normal Stress Along x-Direction';

Figure contains an axes. The axes with title Normal Stress Along x-Direction contains an object of type patch.

Интерполировать напряжение

Чтобы увидеть подробности изменения напряжения вблизи круговой границы, сначала определите набор точек на границе.

thetaHole = linspace(0,2*pi,200);
xr = radius*cos(thetaHole);
yr = radius*sin(thetaHole);
CircleCoordinates = [xr;yr];

Затем интерполировать значения напряжений в этих точках с помощью interpolateStress. Эта функция возвращает структурный массив с полями, содержащими интерполированные значения напряжения.

stressHole = interpolateStress(R,CircleCoordinates);

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

figure
plot(thetaHole,stressHole.sxx)
xlabel('\theta')
ylabel('\sigma_{xx}')
title 'Normal Stress Around Circular Boundary';

Figure contains an axes. The axes with title Normal Stress Around Circular Boundary contains an object of type line.

Решение той же проблемы с помощью симметричной модели

Пластина с моделью отверстия имеет две оси симметрии. Поэтому можно моделировать четверть геометрии. Следующая модель решает квадрант полной модели с соответствующими граничными условиями.

Создайте несущую модель для анализа статических плоскостей и напряжений.

symModel = createpde('structural','static-planestress');

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

R1 = [3 4 0 totalLength/2 totalLength/2 ...
      0 0 0 width width]';
C1 = [1 0 0 radius 0 0 0 0 0 0]'; 
gm = [R1 C1];
sf = 'R1-C1';
ns = char('R1','C1');
g = decsg(gm,sf,ns');
geometryFromEdges(symModel,g);

Постройте график геометрии, отображающей метки кромок.

figure
pdegplot(symModel,'EdgeLabel','on');
axis equal
title 'Symmetric Quadrant with Edge Labels';

Figure contains an axes. The axes with title Symmetric Quadrant with Edge Labels contains 6 objects of type line, text.

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

structuralProperties(symModel,'YoungsModulus',200E3, ...
                              'PoissonsRatio',0.25);

Наложите симметричные зависимости на кромки 3 и 4.

structuralBC(symModel,'Edge',[3 4],'Constraint','symmetric');

Примените тягу поверхности к кромке 1.

structuralBoundaryLoad(symModel,'Edge',1,'SurfaceTraction',[100;0]);

Создайте сетку и решите симметричную модель плоскостного напряжения.

generateMesh(symModel,'Hmax',radius/6);
Rsym = solve(symModel);

Постройте график x- компонент нормального распределения напряжений. Результаты идентичны первому квадранту полной модели.

figure
pdeplot(symModel,'XYData',Rsym.Stress.sxx,'ColorMap','jet');
axis equal
title 'Normal Stress Along x-Direction for Symmetric Model';

Figure contains an axes. The axes with title Normal Stress Along x-Direction for Symmetric Model contains an object of type patch.