Вибрация квадратной пластины

В этом примере показано, как вычислить режимы вибрации и частоты 3-D просто поддерживаемой, квадратной, эластичной пластины.

Размерности и свойства материала пластины взяты из стандартной эталонной тестовой задачи конечного элемента, опубликованной NAFEMS, FV52 (См. Ссылку).

Во-первых, создайте структурный контейнер модели для своей 3-D модальной аналитической проблемы. Это - контейнер, который содержит геометрию, свойства материала, загрузок тела, граничных загрузок, граничных ограничений и mesh.

model = createpde('structural','modal-solid');

Импортируйте файл STL простой модели пластины использование importGeometry функция. Эта функция восстанавливает поверхности, ребра и вершины модели. Это может объединить некоторые поверхности и ребра, таким образом, числа могут отличаться от тех из родительской Модели CAD.

importGeometry(model,'Plate10x10x1.stl');

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

figure
hc = pdegplot(model,'FaceLabels','on');
hc(1).FaceAlpha = 0.5;
title('Plate with Face Labels')

Задайте эластичный модуль стали, отношения Пуассона и существенной плотности.

structuralProperties(model,'YoungsModulus',200e9, ...
                           'PoissonsRatio',0.3, ...
                           'MassDensity',8000);

В этом примере единственное граничное условие является нулем z- смещение на четырех поверхностях ребра. Эти поверхности ребра имеют, маркирует 1 through 4.

structuralBC(model,'Face',1:4,'ZDisplacement',0);

Создайте и постройте mesh. Задайте целевую минимальную длину ребра так, чтобы была одна строка элементов на толщину пластины.

generateMesh(model,'Hmin',1.3);
figure 
pdeplot3D(model);
title('Mesh with Quadratic Tetrahedral Elements');

Для сравнения с опубликованными значениями загрузите ссылочные частоты в Гц.

refFreqHz = [0 0 0 45.897 109.44 109.44 167.89 193.59 206.19 206.19];

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

maxFreq = 1.1*refFreqHz(end)*2*pi;
result = solve(model,'FrequencyRange',[-0.1 maxFreq]);

Вычислите частоты в Гц.

freqHz = result.NaturalFrequencies/(2*pi);

Сравните ссылку и вычисленные частоты (в Гц) для самых низких 10 режимов. Самые низкие три формы режима соответствуют движению твердого тела пластины. Их частоты близко к нулю.

tfreqHz = table(refFreqHz.',freqHz(1:10));
tfreqHz.Properties.VariableNames = {'Reference','Computed'};
disp(tfreqHz);
    Reference     Computed 
    _________    __________

          0      2.1032e-05
          0      1.7428e-05
          0      6.6508e-06
     45.897          44.871
     109.44          109.74
     109.44          109.77
     167.89          168.59
     193.59          193.74
     206.19          207.51
     206.19          207.52

Вы видите хорошее соглашение между вычисленными и опубликованными частотами.

Постройте третий компонент (z- компонент) решения для семи самых низких режимов ненулевой частоты.

h = figure;
h.Position = [100,100,900,600];
numToPrint = min(length(freqHz),length(refFreqHz));
for i = 4:numToPrint
    subplot(4,2,i-3);
    pdeplot3D(model,'ColorMapData',result.ModeShapes.uz(:,i));
    axis equal
    title(sprintf(['Mode=%d, z-displacement\n', ...
    'Frequency(Hz): Ref=%g FEM=%g'], ...
    i,refFreqHz(i),freqHz(i)));
end

Ссылка

[1] Национальное агентство по методам конечных элементов и стандартам. Стандартные сравнительные тесты NAFEMS. Соединенное Королевство: NAFEMS, октябрь 1990.