exponenta event banner

interpolateStrain

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

Описание

пример

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

пример

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

пример

intrpStrain = interpolateStrain(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);

Создайте сетку и решите проблему.

generateMesh(structuralmodel);
structuralresults = solve(structuralmodel);

Создайте сетку и интерполируйте компоненты x и y нормальной деформации в сетку.

v = linspace(-1,1,101);
[X,Y] = meshgrid(v);
intrpStrain = interpolateStrain(structuralresults,X,Y);

Измените форму X-компонента нормальной деформации на форму сетки и постройте ее график.

exx = reshape(intrpStrain.exx,size(X));
px = pcolor(X,Y,exx);
px.EdgeColor='none';
colorbar

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

Измените форму y-компонента нормальной деформации на форму сетки и постройте ее график.

eyy = reshape(intrpStrain.eyy,size(Y));
figure
py = pcolor(X,Y,eyy);
py.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]);

Создайте сетку и решите проблему.

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;

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

intrpStrain = interpolateStrain(structuralresults,X,Y,Z);
surf(X,Y,reshape(intrpStrain.ezz,size(X)))

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

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

querypoints = [X(:),Y(:),Z(:)]';
intrpStrain = interpolateStrain(structuralresults,querypoints);
surf(X,Y,reshape(intrpStrain.ezz,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);

Создайте сетку.

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];
intrpStrain = interpolateStrain(structuralresults,coordsMidSpan);

Постройте график нормальной деформации в геометрическом центре балки.

figure
plot(structuralresults.SolutionTimes,intrpStrain.exx)
title('X-Direction Normal Strain at Beam Center')

Figure contains an axes. The axes with title X-Direction Normal Strain at Beam Center contains an object of type line.

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

свернуть все

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

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

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

interpolateStrain преобразует точки запроса в векторы столбцов xq(:), yq(:), и (при наличии) zq(:). Функция возвращает деформации как FEStruct объект со свойствами, содержащими векторы того же размера, что и эти векторы столбцов. Чтобы убедиться, что измерения возвращенного решения согласуются с измерениями исходных точек запроса, используйте reshape функция. Например, использовать intrpStrain = reshape(intrpStrain.exx,size(xq)).

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

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

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

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

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

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

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

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

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

свернуть все

Напряжения в точках запроса, возвращенные как FEStruct объект со свойствами, представляющими пространственные компоненты деформации в точках запроса. Для точек запроса, которые находятся вне геометрии, intrpStrain прибыль NaN. Свойства FEStruct объекты доступны только для чтения.

Представлен в R2017b