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