Интерполируйте перемещение в произвольных пространственных местах
возвращает интерполированные значения смещения в точках 2-D, заданных в intrpDisp
= interpolateDisplacement(structuralresults
,xq
,yq
)xq
и yq
. Для структурных моделей с переходной и частотными характеристиками, interpolateDisplacement
возвращает интерполированные значения смещения для всех временных или частотных шагов, соответственно.
использует 3-D точки, указанные в intrpDisp
= interpolateDisplacement(structuralresults
,xq
,yq
,zq
)xq
, yq
, и zq
.
использует точки, указанные в intrpDisp
= interpolateDisplacement(structuralresults
,querypoints
)querypoints
.
Создайте модель структурного анализа для задачи плоского деформирования.
structuralmodel = createpde('structural','static-planestrain');
Включите квадратную геометрию в модель. Постройте график геометрии.
geometryFromEdges(structuralmodel,@squareg); pdegplot(structuralmodel,'EdgeLabels','on') axis equal
Задайте модуль Юнга и коэффициент Пуассона.
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,21); [X,Y] = meshgrid(v); intrpDisp = interpolateDisplacement(structuralresults,X,Y);
Измените форму компонентов смещения на форму сетки. Постройте график перемещения.
ux = reshape(intrpDisp.ux,size(X)); uy = reshape(intrpDisp.uy,size(Y)); quiver(X,Y,ux,uy)
Решить статическую структурную модель, представляющую биметаллический кабель под натяжением, и интерполировать перемещение на поперечном сечении кабеля.
Создайте статическую несущую модель для решения твердотельной (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)
Задайте модуль Янга и коэффициент Пуассона для каждого металла.
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;
Интерполируйте перемещение и постройте график результата.
intrpDisp = interpolateDisplacement(structuralresults,X,Y,Z); surf(X,Y,reshape(intrpDisp.uz,size(X)))
Кроме того, сетку можно задать с помощью матрицы точек запроса.
querypoints = [X(:),Y(:),Z(:)]'; intrpDisp = interpolateDisplacement(structuralresults,querypoints); surf(X,Y,reshape(intrpDisp.uz,size(X)))
Интерполируйте перемещение в геометрическом центре луча под гармоническим возбуждением.
Создайте переходную динамическую модель для 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)
Задайте модуль Юнга, отношение Пуассона и массовую плотность материала.
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]; intrpDisp = interpolateDisplacement(structuralresults,coordsMidSpan);
Постройте график y
-компонент смещения геометрического центра балки.
figure
plot(structuralresults.SolutionTimes,intrpDisp.uy)
title('y-Displacement of the Geometric Center of the Beam')
structuralresults
- Решение проблемы структурного анализаStaticStructuralResults
| объекта TransientStructuralResults
| объекта FrequencyStructuralResults
объектРешение задачи структурного анализа, заданное как StaticStructuralResults
, TransientStructuralResults
, или FrequencyStructuralResults
объект. Создание structuralresults
при помощи solve
функция. Для TransientStructuralResults
и FrequencyStructuralResults
объекты, interpolateDisplacement
возвращает интерполированные значения смещения для всех временных и частотных шагов, соответственно.
Пример: structuralresults = solve(structuralmodel)
xq
- x -координатные точки запросаx -согласованные точки запроса, заданные как действительный массив .interpolateDisplacement
вычисляет смещения в 2-D координатных точках [xq(i),yq(i)]
или в 3-D координатных точках [xq(i),yq(i),zq(i)]
. Поэтому xq
, yq
, и (при наличии) zq
должно иметь одинаковое количество записей.
interpolateDisplacement
преобразует точки запроса в векторы-столбцы xq(:)
, yq(:)
, и (при наличии) zq(:)
. Функция возвращает смещения как FEStruct
объект со свойствами, содержащими вектора одного размера в качестве этих векторов-столбцов. Чтобы убедиться, что размерности возвращенного решения соответствуют размерностям исходных точек запроса, используйте reshape
функция. Для примера используйте intrpDisp = reshape(intrpDisp.ux,size(xq))
.
Типы данных: double
yq
- y -координатные точки запросаy -согласованные точки запроса, заданные как действительный массив .interpolateDisplacement
вычисляет смещения в 2-D координатных точках [xq(i),yq(i)]
или в 3-D координатных точках [xq(i),yq(i),zq(i)]
. Поэтому xq
, yq
, и (при наличии) zq
должно иметь одинаковое количество записей. Внутренне, interpolateDisplacement
преобразует точки запроса в вектор-столбец yq(:)
.
Типы данных: double
zq
- z -координатные точки запросаz -согласованные точки запроса, заданные как действительный массив .interpolateDisplacement
вычисляет смещения в 3-D координатных точках [xq(i),yq(i),zq(i)]
. Поэтому xq
, yq
, и zq
должно иметь одинаковое количество записей. Внутренне, interpolateDisplacement
преобразует точки запроса в вектор-столбец zq(:)
.
Типы данных: double
querypoints
- Точки запросаТочки запроса, заданные как действительная матрица с двумя строками для 2-D геометрии или тремя строками для 3-D геометрии. interpolateDisplacement
вычисляет смещения в координатных точках querypoints(:,i)
, поэтому каждый столбец querypoints
содержит только одну 2-D или 3-D точку запроса.
Пример: Для 2-D геометрии querypoints = [0.5,0.5,0.75,0.75; 1,2,0,0.5]
Типы данных: double
intrpDisp
- Перемещение в точках запросаFEStruct
объектПеремещения в точках запроса, возвращенные как FEStruct
объект со свойствами, представляющими пространственные компоненты перемещения в точках запроса. Для точек запроса, которые находятся вне геометрии, intrpDisp
возвращает NaN
. Свойства FEStruct
объект доступен только для чтения.
evaluatePrincipalStrain
| evaluatePrincipalStress
| evaluateReaction
| evaluateStrain
| evaluateStress
| evaluateVonMisesStress
| interpolateAcceleration
| interpolateStrain
| interpolateStress
| interpolateVelocity
| interpolateVonMisesStress
| StaticStructuralResults
| StructuralModel
| TransientStructuralResults
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.