Переходный процесс, моделирующий и линейный анализ консольного луча

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

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

  1. Анализ переходных процессов модели луча.

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

  3. Выполните линейный анализ разреженной модели второго порядка.

Переходная модель луча

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

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

gm = multicuboid(0.1,0.005,0.005);
E = 210E9;
nu = 0.3;
rho = 7800;
TipVertex  = gm.addVertex('Coordinates',[0.05,0,0.005]);
firstNF = 2639;
Tfundamental = 2*pi/firstNF;

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

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

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

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

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

pdegplot(transientModel,'VertexLabels','on');
title('Beam model')

Прикладывайте силу на совете луча для 2% основного периода колебания (импульс) с помощью structuralBoundaryLoad (Partial Differential Equation Toolbox).

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

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

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

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

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

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

plot(tsim,R1.Displacement.uz(TipVertex,:))
title('Vertical displacement of beam tip')
legend('Transient model')
xlabel('Time')
ylabel('Displacement')

Следующий шаг должен извлечь разреженные матрицы из модели луча конечного элемента.

Разреженная модель из переходной модели

Первый шаг, чтобы извлечь MKBF матрицы от конечного элемента излучают модель, чтобы модулировать силу, чтобы вычислить B матрица. Используйте assembleFEMatrices (Partial Differential Equation Toolbox), чтобы извлечь разреженные матрицы для модели луча второго порядка.

F1 = -100;
structuralBoundaryLoad(transientModel,'Vertex',TipVertex,'Force',[0;0;F1]);
state.time = 0;
data1 = assembleFEMatrices(transientModel,'nullspace',state);
F2 = 100;
structuralBoundaryLoad(transientModel,'Vertex',TipVertex,'Force',[0;0;F2]);
data2 = assembleFEMatrices(transientModel,'nullspace',state);

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

Mq¨+Kq=B*forcey=Fqуравнения модели

M = data1.M;
K = data1.Kc;

F матрица состоит из x, y и z смещений в TipVertex узел.

N = size(msh.Nodes,2);
F = data1.B;                  
F = F(TipVertex+[0 N 2*N],:);

Сопоставьте B матрица, связывающая силу с входом.

B = (data2.Fc-data1.Fc)/(F2-F1);

Получите разреженную модель луча с помощью mechss.

sys = mechss(M,[],K,B,F(3,:));

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

spy(sys)

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

Включите параллельные вычисления и выберите 'tfbdf3' как решатель ДАУ.

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

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

w = logspace(2,6,1000);
bode(sys,w), grid
using parallel (mechss)
title('Frequency response from force to tip vertical displacement')

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

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

y = lsim(sys,u,t);
plot(t,y,tsim,R1.Displacement.uz(TipVertex,:))
title('Comparison of full-model simulated response with transient model approximations')
legend('Simulated model','Transient model')
xlabel('Time')
ylabel('Displacement')

Переходные приближения модели соответствуют хорошо с полной симуляцией модели с помощью решателя ДАУ TRBDF3.

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

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

Похожие темы