von Mises Stress due to Centrifugal force on a rotor
22 views (last 30 days)
Show older comments
Hallo,
I am trying to calculate and visualise von Mises Stress due to the centrifugal forces on a rotor using Finite Element Method.
I have modelled the rotor geometry and specified the fixed boundary condition. How do I specify the centrifugal force using structuralBoundaryLoad fucntion? Is there any other convenient way?
Thanks in advance!
Sridhar
0 Comments
Accepted Answer
Ravi Kumar
on 5 Jun 2018
Hi Sridhar,
Centrifugal load is not yet supported in structural workflow. However, for a specific geometry you can define the centrifugal load as f-coefficient in the generic PDE workflow. Following example solves a spinning disk using generic workflow. Updated the function spinEffect as per your need.
% Create a model, assign a disk geometry, and generate mesh.
model = createpde(3);
gm = multicylinder([0.01,0.05],1E-3,'Void',[1,0]);
model.Geometry = gm;
generateMesh(model);
% Plot the geometry and note the face number of the hub to apply fixed BC.
pdegplot(model,'FaceLabels','on')
applyBoundaryCondition(model,'dirichlet','Face',3,'u',[0,0,0]);
% Specify material properties that defines the PDE as coefficients.
E = 210E9;
nu = 0.3;
rho = 7800;
c = elasticityC3D(E,nu);
% Specify the c-coefficient and centrifugal body load as f-coefficient.
specifyCoefficients(model,'m',0,'d',0,'c',c,'a',0,'f', @spinEffect);
% Solve the model and plot resultant displacement
R = solvepde(model);
figure
title('Displacement of spinning disk')
pdeplot3D(model,'ColorMapData',sqrt(R.NodalSolution(:,1).^2 + R.NodalSolution(:,2).^2+R.NodalSolution(:,3).^2))
% Find stress components using evaluateCGradient function.
[cgradx,cgrady,cgradz] = evaluateCGradient(R);
% Note that each output argument from evaluateCGradient is a matrix of size
% number of nodes x 3, sxx = cgradx(:,1), sxy = cgradx(:,2)... and so
% on.
sxx = cgradx(:,1);
sxy = cgradx(:,2);
sxz = cgradx(:,3);
syx = cgrady(:,1);
syy = cgrady(:,2);
syz = cgrady(:,3);
szx = cgradz(:,1);
szy = cgradz(:,2);
szz = cgradz(:,3);
sVonMises = sqrt( 0.5*( (sxx-syy).^2 + (syy -szz).^2 +...
(szz-sxx).^2) + 3*(sxy.^2 + syz.^2 + szx.^2));
figure
title('von Mises stress of spinning disk')
pdeplot3D(model,'ColorMapData',sVonMises)
functionf = spinEffect(region,~)
xcg = 0; ycg = 0;
[theta,r] = cart2pol(region.x-xcg,region.y-ycg);
rho = 7800;% density.
omega = 1047;% rad/sec, about 10,000 rpm.
f = rho*omega^2.*[r.*cos(theta);r.*sin(theta);zeros(1,numel(region.y))];
end
Regards, Ravi
9 Comments
卢卡斯
2022年5月12日
Hello, I want to simulate the same, but I want to have magnets in it additionally. How would you solve this? Two different materials in one geometry. Would you separate the rotor model in areas of magnet and iron, and just solve two different problems. Or is there a way to calculate it as a whole rotor.
Best regards,
卢卡斯
More Answers (0)
See Also
Categories
找到更多的在Structural MechanicsinHelp CenterandFile Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!