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

В этом примере показано, как линеаризовать структурную модель камертона и вычислить время и частотную характеристику, когда это подвергается импульсу на одном из зубцов. Эта загрузка приводит к поперечной вибрации зубцов и осевой вибрации указателя конца на той же частоте. Для получения дополнительной информации о структурной модели, смотрите Структурную Динамику Камертона (Partial Differential Equation Toolbox).

Этот пример требует программного обеспечения Partial Differential Equation Toolbox™.

Камертон структурная модель

Используя Partial Differential Equation Toolbox, создайте структурную модель камертона.

Используйте createpde (Partial Differential Equation Toolbox), чтобы создать структурную модель.

model = createpde('structural','transient-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.005);

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

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

Первый режим вибрации зубцов составляет приблизительно 2 926 рад/с. Можно определить это значение модальным анализом (см. Структурную Динамику Камертона (Partial Differential Equation Toolbox)), или из Диаграммы Боде в разделе Linear Analysis этого примера.

Вычислите соответствующий период колебаний.

T = 2*pi/2926;

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

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

Чтобы смоделировать импульсную нагрузку на зубец, примените загрузку давления в течение 2% основного периода колебания T использование structuralBoundaryLoad (Partial Differential Equation Toolbox). При помощи этого очень короткого импульса давления вы гарантируете, что только основной режим камертона взволнован. Задайте метку Pressure использовать эту загрузку в качестве входа линеаризации.

Te = 0.02*T;
structuralBoundaryLoad(model,'Face',11,'Pressure',5e6,'EndTime',Te,'Label','Pressure');

Установите начальные условия для модели с помощью structuralIC (Partial Differential Equation Toolbox).

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

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

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

Для этого сначала задайте входные параметры и выходные параметры линеаризовавшей модели в терминах структурной модели. Здесь, вход является давлением, заданным с structuralBoundaryLoad (Partial Differential Equation Toolbox) и выходные параметры являются y и x степенями свободы поверхностей 12 и 6, соответственно.

linearizeInput(model,'Pressure');
linearizeOutput(model,'Face',12,'Component','y');
linearizeOutput(model,'Face',6,'Component','x');

Затем используйте linearize (Partial Differential Equation Toolbox) команда, чтобы извлечь mechss модель.

sys = linearize(model)
Sparse continuous-time second-order model with 26 outputs, 1 inputs, and 3240 degrees of freedom.

Use "spy" and "showStateInfo" to inspect model structure. 
Type "properties('mechss')" for a list of model properties. 
Type "help mechssOptions" for available solver options for this model.

В линеаризовавшей модели используйте sys.OutputGroup определять местоположение выходных параметров, сопоставленных с каждой поверхностью.

sys.OutputGroup
ans = struct with fields:
    Face12_y: [1 2 3 4 5 6 7 8 9 10 11 12 13]
     Face6_x: [14 15 16 17 18 19 20 21 22 23 24 25 26]

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

sys = sys([1,14],:)
Sparse continuous-time second-order model with 2 outputs, 1 inputs, and 3240 degrees of freedom.

Use "spy" and "showStateInfo" to inspect model structure. 
Type "properties('mechss')" for a list of model properties. 
Type "help mechssOptions" for available solver options for this model.
sys.OutputName = {'y tip','x base'};

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

Mq¨+Kq=B×Pressure

y=Fq

Используйте spy визуализировать разреженность mechss модель sys.

figure
spy(sys)

Линейный анализ

Включите параллельные вычисления и выберите 'tfbdf3' как решатель дифференциального алгебраического уравнения (DAE).

sys.SolverOptions.UseParallel = true;
sys.SolverOptions.DAESolver = 'trbdf3';

Используйте bode вычислить частотную характеристику этой модели.

w = logspace(3,6,1000); 
figure
bode(sys,w) 
grid
title('Frequency Response from Pressure to Y Tip and X Base')

График ясно показывает, что зубец и указатель конца вибрируют на той же частоте. Первый режим приблизительно в 2 926 рад/с, и второй резонанс на частоте приблизительно в шесть раз выше.

Затем используйте lsim получить импульсную характеристику линеаризовавшей модели камертона в течение 20 периодов основного режима. Чтобы ограничить ошибку из-за линейной интерполяции давления между выборками, используйте размер шага Te/10. Давление подано для временного интервала [0 Te].

ncycle = 20;
Tf = ncycle*T;
h = Te/10;
t = 0:h:Tf;
u = zeros(size(t));    
u(t<=Te) = 5e6;
y = lsim(sys,u,t);

Постройте поперечное смещение в совете зубца и осевое смещение указателя конца.

figure
plot(t,y(:,1))
title('Transverse Displacement at Tine Tip')
xlim([0,Tf])
xlabel('Time')
ylabel('Y-Displacement')
legend('Linearized model')

figure
plot(t,y(:,2))
title('Axial Displacement at End of Handle')
xlim([0,Tf])
ylabel('X-Displacement')
xlabel('Time')
legend('Linearized model')

Смотрите также

| | | (Partial Differential Equation Toolbox) | (Partial Differential Equation Toolbox) | (Partial Differential Equation Toolbox) | (Partial Differential Equation Toolbox) | (Partial Differential Equation Toolbox) | (Partial Differential Equation Toolbox) | (Partial Differential Equation Toolbox)

Похожие темы