В этом примере показано, как получить структурную модель луча и вычислить время и частотную характеристику, когда это подвергается импульсной силе. В данном примере считайте стальной консольный луч удовлетворяющим точечной нагрузке в совете. Создавание структурной модели требует Partial Differential Equation Toolbox™.
Стальная балка деформирована путем применения внешней загрузки 100 Н в совете луча и затем выпущена. Этот пример не использует дополнительной загрузки, таким образом, смещение совета колеблется с амплитудой, равной начальному смещению от приложенной силы. Этот пример следует за рабочим процессом с тремя шагами:
Создайте структурную модель луча.
Линеаризуйте структурную модель, чтобы получить разреженную линейную модель луча.
Анализируйте время и частотную характеристику линеаризовавшей модели.

Используя 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.
Результирующая модель задана следующей системой уравнений:
Используйте 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 тесно совпадает с переходной симуляцией структурной модели, полученной в первом шаге.
showStateInfo | spy | mechss | solve (Partial Differential Equation Toolbox) | structuralBC (Partial Differential Equation Toolbox) | structuralIC (Partial Differential Equation Toolbox) | createpde (Partial Differential Equation Toolbox) | linearize (Partial Differential Equation Toolbox) | linearizeInput (Partial Differential Equation Toolbox) | linearizeOutput (Partial Differential Equation Toolbox)