PDE: modal analysis two bodies - possible?
5 views (last 30 days)
Show older comments
Robert Billermann
on 8 Jan 2021
Answered: Ravi Kumar
on 12 Jan 2021
Hello all,
I am trying to solve the eigenvalue problem for two connected cylinders with different material properties. First of all I tried to solve it in 2D space, here is my code:
structuralModel = createpde('structural','modal-planestrain');
% circles
C1 = [1,0.5,-0.25,0.25]';
C1 = [C1;zeros(10 - length(C1),1)];
C2 = [1,0.5,-0.25,0.20]';
C2 = [C2;zeros(10 - length(C2),1)];
C3 = [1,0.5,-0.25,0.18]';
C3 = [C3;zeros(10 - length(C3),1)];
% geometry from edges
gm = [C1,C2,C3];
sf = '(C1-C2)+(C2-C3)';
ns = char('C1','C2','C3');
ns = ns';
g = decsg(gm,sf,ns);
geometryFromEdges(structuralModel,g);
% subplot(3,1,1)
pdegplot(structuralModel,'Facelabels','on','EdgeLabels','on') % ,'EdgeLabels','on',
axis equal
% material properties
structuralProperties(structuralModel,'Face',1,'YoungsModulus',200E9,'PoissonsRatio',0.3,'MassDensity',2.7E-6);
structuralProperties(structuralModel,'Face',2,'YoungsModulus',110E9,'PoissonsRatio',0.28,'MassDensity',8.7E-6);
% mesh
const_h_max = 0.005;
mesh = generateMesh(structuralModel,'Hmax',const_h_max);
subplot(3,1,2)
pdeplot(mesh)
% solving
eigen = solve(structuralModel,'FrequencyRange',[20,100]*2*pi);
Error code:
Error using matlab.internal.math.lanczos
Factorizations failed possibly because the problem is ill-posed.
Error in pde.StructuralModel/solveStructuralEigenvalue (line 76)
[v,l] = matlab.internal.math.lanczos(K,M,opts);
Error in pde.StructuralModel/solve (line 347)
R = solveStructuralEigenvalue(self,argsToPass{:});
1.Is there any possibility at all to do the modal analysis for two bodies (with different material properties)?
2.did I forget any boundary conditions?
Thanks in advance and best regards
Robert
0 Comments
Accepted Answer
Ravi Kumar
on 12 Jan 2021
Hi Rober,
Your mass density seems to be off. If you are using SI units, as it appears from Young's moduls, mass density must be on the order of 1E3. Take a look at this revised mass density and frequency range:
structuralModel = createpde('structural','modal-planestrain');
% circles
C1 = [1,0.5,-0.25,0.25]';
C1 = [C1;zeros(10 - length(C1),1)];
C2 = [1,0.5,-0.25,0.20]';
C2 = [C2;zeros(10 - length(C2),1)];
C3 = [1,0.5,-0.25,0.18]';
C3 = [C3;zeros(10 - length(C3),1)];
% geometry from edges
gm = [C1,C2,C3];
sf = '(C1-C2)+(C2-C3)';
ns = char('C1','C2','C3');
ns = ns';
g = decsg(gm,sf,ns);
geometryFromEdges(structuralModel,g);
% subplot(3,1,1)
pdegplot(structuralModel,'Facelabels','on','EdgeLabels','on') % ,'EdgeLabels','on',
axis equal
% material properties
structuralProperties(structuralModel,'Face',1,'YoungsModulus',200E9,'PoissonsRatio',0.3,'MassDensity',2.7E3);
structuralProperties(structuralModel,'Face',2,'YoungsModulus',110E9,'PoissonsRatio',0.28,'MassDensity',8.7E2);
% mesh
const_h_max = 0.005;
mesh = generateMesh(structuralModel,'Hmax',const_h_max);
subplot(3,1,2)
pdeplot(mesh)
% solving
eigen = solve(structuralModel,'FrequencyRange',[-Inf,10000]*2*pi);
0 Comments
More Answers (0)
See Also
Categories
Find more on Geometry and Mesh in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!