Project

MBD Simulation on a Piston Assembly

MBD simulation on Piston assembly is to be done.

For this we need to make parts such as follows:

  • Piston Head
  • Wrist pin
  • Connecting rod
  • End cap
  • Crank

All the above parts are assembled as required.

Motion studies are to be carried out in three scenarios:

0 mm offset

10 mm negative offset

10 mm positive offset

The offsets can be achieved by editing the mate feature between the axis of the crank and right plane. Set the distance between them as -10 mm, 0 and 10 mm for the required offset.

For the motion analysis:

Motor speed at 2000 rpm

Solid contact between the parts

Motion analysis frames per second 12000

Precise contact enabled

Run the analysis and plot the displacement magnitude against time for the top face of the piston.

Superimpose the graphs for zero, positive and negative 10 mm offset and draw conclusions.

Results:

This the superimposed graph.

Care has been taken to make sure that the initial displacement in each case is the same.

We can observe from the zoomed graph below that the stroke of the zero offset assembly is the lowest. Whereas the -10 and +10 offset assembly has the same stroke as is evident (these two graphs overlap).

However, the frequency of all the scenarios is the same since the input angular velocity is same and constant.

But the piston has to travel greater distance when it is in the offset condition, which suggests that the assembly comes under greater stress in these scenarios.

However, the piston doesn’t have to rely on the momentum to move from the TDC position in the zero-offset scenario.

The above results completely agree with the calculated results.

A MATLAB code was written to simulate similar conditions and the result is as shown below:

(The distance between the axis of crank and axis at which the crank and connecting rod is mated is 60 mm. The distance between the axis of the connecting rod to the top face of the piston is taken as 260 mm in the MATLAB simulation)

We can see that the stroke is symmetrical about the zero offset.

TDC decreases as we move away from the zero offset condition. But the reduction is mild.

BDC also decreases as we move away from the zero offset condition. But the reduction is very aggressive.

Thus, the overall effect is increase of the stroke length.

clc
clear all
close all


x0 = 0;
y0 = 0;
l1 = 260;
l2 = 60;
theta = linspace(0,360,361);
d_max = l1 - l2;
d = linspace(-d_max,d_max,(d_max*2)+1);


%finding all the displacements
for i = 1:d_max*2+1
    for j = 1:361
        x1(i,j) = -l2*cosd(theta(j));
        y1(i,j) = l2*sind(theta(j));
        x2(i,j) = -d(i);
        y2(i,j) = (2*l2*sind(theta(j))+sqrt(4*l2^2*sind(theta(j))^2-4*(l2^2-2*d(i)*l2*cosd(theta(j))+d(i)^2-l1^2)))/2;
    end
end

%finding the stroke for each d
for i = 1:d_max*2+1
    TDC(i) = max(y2(i,:)); 
    BDC(i) = min(y2(i,:));
    stroke(i) = TDC(i) - BDC(i);
end

figure(1)
plot(d,stroke)
hold on 
plot(d,TDC)
plot(d,BDC)
xlabel('offset (in mm)')
ylabel('legend (in mm)')
legend('stroke','TDC','BDC')

%animating the piston movement for every offset
for i = 1:d_max*2+1
    for j = 1:361
        figure(2)
        plot([x0 x1(i,j)],[y0 y1(i,j)],[x1(i,j) x2(i,j)],[y1(i,j) y2(i,j)],'linewidth',3)
        set(gca,'XTick',(-400:50:400))
        set(gca,'YTick',(-400:50:400))
        xlim([-400 400])
        ylim([-400 400])
        pause(0.000000000001)
    end
end
    
Your portfolio, next

Ship work like this
in your own course.

Talk to a career counsellor

Free 20-minute call. We'll map the right course to where you want to work.

By submitting you agree to our Terms and Privacy Policy.

Talk to a career counsellor

Free 20-minute call. We'll map the right course to where you want to work.

By submitting you agree to our Terms and Privacy Policy.