For the vertical workflow using "createpde('structural','modal-solid')", the Partial Differential Equation (PDE) Toolbox does not provide the functionality of "assembleFEMatrices". As an alternative, you could solve the 'modal-solid' problem by setting up a PDE model with "createpde()", where you can get access to the matrices with all the checks and internal validatation in place. You can think of PDE model workflow as a super workflow which can also solve ‘modal-solid’ systems. However, the setup is different because of the generality of the approach.
This example shows you how to compute the modes of a cantilever beam using the PDEModel workflow. In the end, you get access to the matrices and can you use them for further calculations, e.g. finding the Frequency Response Function.
PDEmodel = createpde(3);
PDEmodel.Geometry = multicuboid(0.45, 0.02, 0.003);
figure(1)
pdegplot(PDEmodel, 'FaceLabels', 'on');
title('Geometry');
PDEmodel.generateMesh;
figure(2)
pdemesh(PDEmodel);
title('Mesh');
E = 210E9;
nu = 0.3;
rho = 7800;
c = elasticityC3D(E,nu);
PDEmodel.specifyCoefficients('m', rho, 'd', 0, 'c', c, 'a', 0, 'f', [0;0;0]);
PDEmodel.applyBoundaryCondition('dirichlet', 'Face', 5, 'u', [0;0;0]);
modalSol = PDEmodel.solvepdeeig([0,3E5]);
figure(3)
subplot(2,1,1)
pdeplot3D(PDEmodel, 'ColorMapData', modalSol.Eigenvectors(:,3,1))
title(['Z-Disp, Mode = 1, frequency = ' num2str(sqrt(modalSol.Eigenvalues(1))/2/pi) ' Hz'])
subplot(2,1,2)
pdeplot3D(PDEmodel, 'ColorMapData', modalSol.Eigenvectors(:,3,2))
title(['Z-Disp, Mode = 2, frequency = ' num2str(sqrt(modalSol.Eigenvalues(2))/2/pi) ' Hz'])
FEmodel = assembleFEMatrices(PDEmodel)
Best Answer