Линейный анализ консольного луча

В этом примере показано, как получить структурную модель луча и вычислить время и частотную характеристику, когда это подвергается импульсной силе. В данном примере считайте стальной консольный луч удовлетворяющим точечной нагрузке в совете. Создавание структурной модели требует Partial Differential Equation Toolbox™.

Стальная балка деформирована путем применения внешней загрузки 100 Н в совете луча и затем выпущена. Этот пример не использует дополнительной загрузки, таким образом, смещение совета колеблется с амплитудой, равной начальному смещению от приложенной силы. Этот пример следует за рабочим процессом с тремя шагами:

  1. Создайте структурную модель луча.

  2. Линеаризуйте структурную модель, чтобы получить разреженную линейную модель луча.

  3. Анализируйте время и частотную характеристику линеаризовавшей модели.

Структурная модель луча

Используя Partial Differential Equation Toolbox, создайте структурную модель и вычислите импульсную характеристику. Для примера моделирования консольного луча смотрите Динамику Ослабленного Консольного Луча (Partial Differential Equation Toolbox).

Сначала создайте луч и задайте модуль Молодежи, отношение Пуассона и массовую плотность стали. Задайте совет луча с помощью addVertex функция.

gm = multicuboid(0.1,0.005,0.005);
E = 210E9;
nu = 0.3;
rho = 7800;
TipVertex = addVertex(gm,'Coordinates',[0.05,0,0.005]);

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

sModel = createpde('structural','transient-solid');
sModel.Geometry = gm;
msh = generateMesh(sModel);

Визуализируйте геометрию луча с помощью pdegplot (Partial Differential Equation Toolbox).

figure
pdegplot(sModel,'FaceLabels','on');
title('Beam model')

Присвойте структурные свойства для стальной балки с structuralProperties (Partial Differential Equation Toolbox) команда и фиксирует один конец с помощью structuralBC (Partial Differential Equation Toolbox).

structuralProperties(sModel,'YoungsModulus',E,'PoissonsRatio',nu,'MassDensity',rho);
structuralBC(sModel,'Face',5,'Constraint','fixed');

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

firstNF = 2639;
Tfundamental = 2*pi/firstNF;

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

Te = 0.02*Tfundamental;
structuralBoundaryLoad(sModel,'Vertex',TipVertex,...
   'Force',[0;0;-100],'EndTime',Te,'Label','force');

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

structuralIC(sModel,'Velocity',[0;0;0]);

Вычислите импульсную характеристику путем решения структурной модели луча.

ncycles = 10;
tsim = linspace(0,ncycles*Tfundamental,30*ncycles);
R1 = solve(sModel,tsim);

Визуализируйте колебания в совете луча.

figure
plot(tsim,R1.Displacement.uz(TipVertex,:))
title('Vertical Displacement of Beam Tip')
legend('Structural model')
xlabel('Time')
ylabel('Displacement')

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

Для этой модели луча вы хотите получить линейную модель (передаточная функция) из силы, прикладывавшей в совете к z-смещению совета.

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

linearizeInput(sModel,'force');
linearizeOutput(sModel,'Vertex',TipVertex,'Component','z');

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

sys = linearize(sModel)
Sparse continuous-time second-order model with 1 outputs, 3 inputs, and 3486 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.

Линеаризовавшая модель имеет три входных параметров, соответствующие x, y, и z компоненты силы применились к вершине совета.

sys.InputName
ans = 3×1 cell
    {'force_x'}
    {'force_y'}
    {'force_z'}

В линеаризовавшей модели выберите z компонент силы.

sys = sys(:,3)
Sparse continuous-time second-order model with 1 outputs, 1 inputs, and 3486 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.

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

Mq¨+Kq=B×force

y=Fq

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

figure
spy(sys)

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

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

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

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

w = logspace(2,6,1000);
figure
bode(sys,w)
Starting parallel pool (parpool) using the 'local' profile ...
Connected to the parallel pool (number of workers: 6).
grid
title('Frequency Response from Force to Tip Vertical Displacement')

Диаграмма Боде показывает, что первый режим вибрации приблизительно в firstNF = 2 639 рад/с.

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

h = Te/5;  
t = 0:h:ncycles*Tfundamental;
u = zeros(size(t));    
u(t<=Te) = -100;

y = lsim(sys,u,t);
figure
plot(t,y,tsim,R1.Displacement.uz(TipVertex,:))
title({'Comparison of Full-Model Simulated Response';...
        'with Structural Model Approximations'})
legend('Linearized model','Structural model')
xlabel('Time')
ylabel('Displacement')

Линейный ответ от lsim тесно совпадает с переходной симуляцией структурной модели, полученной в первом шаге.

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

| | | (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)

Похожие темы