PDE: modal analysis two bodies - possible?
조회 수: 5 (최근 30일)
이전 댓글 표시
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
채택된 답변
Ravi Kumar
2021년 1월 12일
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
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Geometry and Mesh에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!