von Mises Stress due to Centrifugal force on a rotor

22 views (last 30 days)
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

Accepted Answer

Ravi Kumar
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,
卢卡斯

Sign in to comment.

More Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!