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!