exponenta event banner

Структурная динамика камертона

Выполнить модальный и переходный анализ камертона.

Камертон представляет собой П-образную балку. При ударе по одному из зубцов или зубцов вибрирует на своей основной (первой) частоте и издаёт слышимый звук.

Первый гибкий режим камертона характеризуется симметричной вибрацией стоек: они движутся друг к другу и друг от друга одновременно, уравновешивая силы в основании, где они пересекаются. Основной режим вибрации не оказывает какого-либо изгибающего воздействия на ручку, прикрепленную на пересечении стоек. Отсутствие изгиба у основания позволяет легко обращаться с камертоном, не влияя на его динамику.

Поперечная вибрация зубьев вызывает осевую вибрацию рукоятки на основной частоте. Эта осевая вибрация может быть использована для усиления слышимого звука путем приведения конца ручки в контакт с большей площадью поверхности, как у металлической столешницы. Следующая более высокая мода с симметричной формой моды примерно в 6,25 раз превышает основную частоту. Поэтому должным образом возбужденный камертон имеет тенденцию вибрировать с доминирующей частотой, соответствующей основной частоте, создавая чистый слышимый тон. В этом примере моделируются эти аспекты динамики камертона путем выполнения модального анализа и моделирования переходной динамики.

Вы можете найти вспомогательные функции animateSixTuningForkModes и tuningForkFFT и файл геометрии TuningFork.stl под matlab/R20XXx/examples/pde/main.

Модальный анализ камертона

Найдите собственные частоты и формы режимов для фундаментального режима камертона и следующих нескольких режимов. Показать отсутствие изгибающего эффекта на ручке вилки на основной частоте.

Сначала создайте структурную модель для модального анализа твердотельного камертона.

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

Для выполнения модального анализа структуры без ограничений достаточно задать свойства геометрии, сетки и материала. Сначала импортируйте и постройте график геометрии камертона.

importGeometry(model,'TuningFork.stl');
figure
pdegplot(model)

Задайте модуль Юнга, коэффициент Пуассона и плотность массы для моделирования поведения линейного эластичного материала. Укажите все физические свойства в согласованных единицах измерения.

E = 210E9;
nu = 0.3;
rho = 8000;
structuralProperties(model,'YoungsModulus',E, ...
                           'PoissonsRatio',nu, ...
                           'MassDensity',rho);

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

generateMesh(model,'Hmax',0.001);

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

RF = solve(model,'FrequencyRange',[-1,4000]*2*pi);

По умолчанию решатель возвращает круговые частоты.

modeID = 1:numel(RF.NaturalFrequencies);

Выразить результирующие частоты в Гц, разделив их на . Отображение частот в таблице.

tmodalResults = table(modeID.',RF.NaturalFrequencies/2/pi);
tmodalResults.Properties.VariableNames = {'Mode','Frequency'};
disp(tmodalResults);
    Mode    Frequency
    ____    _________

      1     0.0072398
      2     0.0033543
      3     0.0025636
      4     0.0039618
      5     0.0053295
      6     0.0094544
      7        460.42
      8        706.34
      9        1911.5
     10        2105.5
     11        2906.5
     12        3814.7

Поскольку в этом примере нет граничных ограничений, модальные результаты включают режимы жесткого тела. Первые шесть околонулевых частот указывают шесть мод жесткого тела 3-D твердого тела. Первый гибкий режим - седьмой режим с частотой около 460 Гц.

Лучший способ визуализации форм моды - анимация гармонического движения на соответствующих частотах. animateSixTuningForkModes функция анимирует шесть гибких режимов, которые являются режимами 7-12 в модальных результатах RF.

frames  = animateSixTuningForkModes(RF);

Для воспроизведения анимации используйте следующую команду:

movie(figure('units','normalized','outerposition',[0 0 1 1]),frames,5,30)

В первом режиме две осциллирующие стойки камертона уравновешивают поперечные усилия на рукоятке. Следующим режимом с таким эффектом является пятый гибкий режим с частотой 2906,5 Гц. Эта частота примерно в 6,25 раза превышает основную частоту 460 Гц.

Временный анализ камертона

Смоделировать динамику камертона аккуратно и быстро ударили по одной из его стойок. Проанализируйте вибрацию зубьев во времени и осевую вибрацию рукоятки.

Сначала создайте модель структурного анализа переходных процессов.

tmodel = createpde('structural','transient-solid');

Импортируйте ту же геометрию камертона, которая использовалась для модального анализа.

importGeometry(tmodel,'TuningFork.stl');

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

mesh = generateMesh(tmodel,'Hmax',0.005);

Задайте модуль Юнга, коэффициент Пуассона и плотность массы.

structuralProperties(tmodel,'YoungsModulus',E, ...
                            'PoissonsRatio',nu, ...
                            'MassDensity',rho);

Определение граней для применения граничных зависимостей и нагрузок путем печати геометрии с метками граней.

figure('units','normalized','outerposition',[0 0 1 1])
pdegplot(tmodel,'FaceLabels','on')
view(-50,15)
title 'Geometry with Face Labels'

Наложение достаточных граничных ограничений для предотвращения движения жесткого тела при приложенной нагрузке. Обычно вы держите камертон вручную или устанавливаете его на стол. Упрощенным приближением к этому граничному условию является фиксация области вблизи пересечения зубцов и ручки (граней 21 и 22).

structuralBC(tmodel,'Face',[21,22],'Constraint','fixed');

Аппроксимировать импульсную нагрузку на грань стойки путем приложения нагрузки давлением в течение очень малой доли периода времени основного режима. Используя этот очень короткий импульс давления, вы обеспечиваете возбуждение только основного режима камертона. Оценка периода времени T фундаментального режима, использовать результаты модального анализа.

T = 2*pi/RF.NaturalFrequencies(7);

Укажите нагрузку давления на стойку в виде короткого прямоугольного импульса давления.

structuralBoundaryLoad(tmodel,'Face',11,'Pressure',5E6,'EndTime',T/300);

В качестве начальных условий используйте нулевое смещение и скорость.

structuralIC(tmodel,'Displacement',[0;0;0],'Velocity',[0;0;0]);

Решите переходную модель для 50 периодов фундаментального режима. Выполните выборку динамики 60 раз за период основного режима.

ncycle = 50;
samplingFrequency = 60/T;
tlist = linspace(0,ncycle*T,ncycle*T*samplingFrequency);
R = solve(tmodel,tlist)
R = 
  TransientStructuralResults with properties:

     Displacement: [1×1 FEStruct]
         Velocity: [1×1 FEStruct]
     Acceleration: [1×1 FEStruct]
    SolutionTimes: [1×3000 double]
             Mesh: [1×1 FEMesh]

Постройте график временного ряда вибрации наконечника стойки, который является гранью 12. Найдите узлы на грани наконечника и постройте график y- компонент смещения с течением времени, использующий один из этих узлов.

excitedTineTipNodes = findNodes(mesh,'region','Face',12);
tipDisp = R.Displacement.uy(excitedTineTipNodes(1),:);

figure
plot(R.SolutionTimes,tipDisp)
title('Transverse Displacement at Tine Tip')
xlim([0,0.1])
xlabel('Time')
ylabel('Y-Displacement')

Выполните быстрое преобразование Фурье (БПФ) для временного ряда смещения наконечника, чтобы увидеть, что частота колебаний камертона близка к его основной частоте. Небольшое отклонение от основной частоты, вычисленной в анализе без ограничений модального режима, появляется из-за ограничений, наложенных в анализе переходных процессов.

[fTip,PTip] = tuningForkFFT(tipDisp,samplingFrequency);
figure
plot(fTip,PTip) 
title({'Single-sided Amplitude Spectrum', 'of Tip Vibration'})
xlabel('f (Hz)')
ylabel('|P1(f)|')
xlim([0,4000])

Поперечная вибрация зубьев вызывает осевую вибрацию рукоятки с одинаковой частотой. Для наблюдения за этой вибрацией постройте график временного ряда осевого смещения торцевой поверхности ручки.

baseNodes = tmodel.Mesh.findNodes('region','Face',6);
baseDisp = R.Displacement.ux(baseNodes(1),:);
figure
plot(R.SolutionTimes,baseDisp)
title('Axial Displacement at the End of Handle')
xlim([0,0.1])
ylabel('X-Displacement')
xlabel('Time')

Выполните БПФ временного ряда осевых колебаний рукоятки. Эта частота вибрации также близка к своей основной частоте.

[fBase,PBase] = tuningForkFFT(baseDisp,samplingFrequency);
figure
plot(fBase,PBase) 
title({'Single-sided Amplitude Spectrum', 'of Base Vibration'})
xlabel('f (Hz)')
ylabel('|P1(f)|')
xlim([0,4000])