clear all
close all
clc
%otto cycle
%engine parameter
bore = 0.1
stroke = 0.1
con_rod=0.15
v_swept= (pi/4) * (bore^2 * stroke);
cr = 12
v2=v_swept/(cr-1);
v1=v2+v_swept;
%input
p1=101325
t1=500
gamma=1.4
t3=2300
% state 2
%p1v1^gamma=p2v2^gamma
p2=p1*cr^gamma;
constant_c=p1*v1^gamma;
V_compression=engine_kinematics(bore,stroke,con_rod,cr,180,360);
p_compression=constant_c./V_compression.^gamma
%ideal eqn
t2=(p2*v2*t1)/(p1*v1);
%state 3
v3=v2;
p3=(p2*t3)/t2;
constant_c=p3*v3^gamma;
V_expansion=engine_kinematics(bore,stroke,con_rod,cr,180,540);
p_expansion=constant_c./V_expansion.^gamma
%sttate 4
v4=v1;
p4=p3/(cr^gamma);
t4=(p4*v4*t3)/(p3*v3);
efficiency=(1-(1/cr^(gamma-1)))*100
figure(1)
hold on
plot(v1,p1,'*','color','b')
plot(V_compression,p_compression,'color','b')
plot(v2,p2,'*','color','b')
plot([v2,v3],[p2,p3],'color','r')
plot(v3,p3,'*','color','b')
plot(V_expansion,p_expansion,'color','b')
plot(v4,p4,'*','color','b')
plot([v4,v1],[p4,p1],'color','r')
grid on
%piston kinematics
function [V]=engine_kinematics(bore,stroke,con_rod,cr,start_crank,end_crank)
a=stroke/2
R=con_rod/a
v_swept= (pi/4) * (bore^2 * stroke)
v2=v_swept/(cr-1)
theta=linspace(start_crank,end_crank,180)
term1=0.5*(cr-1);
term2=R+1-cosd(theta);
term3=(R^2-sind(theta).^2).^0.5;
V=(1+term1*(term2-term3)).*v2;
end