Выполните 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 pdegplot(model,'VertexLabels','on'); axis([-1.2*totalLength 1.2*totalLength -1.2*width 1.2*width]) title 'Geometry with Vertex Labels';

Задайте модуль Юнга и отношение Пуассона к линейному упругому поведению материала модели. Не забудьте указать физические свойства в согласованных единицах.
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)

Решите модель упругости «плоскость-напряжение».
R = solve(model);
Постройте график x- компонент нормального распределения напряжений. Напряжение равно приложенному напряжению на расстоянии от круговой границы. Максимальное значение напряжения находится вблизи круговой границы.
figure pdeplot(model,'XYData',R.Stress.sxx,'ColorMap','jet') axis equal title 'Normal Stress Along x-Direction';

Чтобы увидеть подробности изменения напряжения вблизи круговой границы, сначала определите набор точек на границе.
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';

Пластина с моделью отверстия имеет две оси симметрии. Поэтому можно моделировать четверть геометрии. Следующая модель решает квадрант полной модели с соответствующими граничными условиями.
Создайте несущую модель для анализа статических плоскостей и напряжений.
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';

Задайте структурные свойства материала.
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';
