otto cycle simulation
clear all
close all
clc
%state variables
p1=101325;t1=500;
%inputs
gamma=1.4;
t3=2300;
%engine geometric parameters
bore=0.1;stroke=0.1;con_rod=0.15;
cr=12;
%calculating swept volume
v_swept=(pi/4)*bore^2*stroke
v_clearance= v_swept/(cr-1)
v1=v_swept+v_clearance;
v2=v_clearance;
%state variables at point 2
%state variables at point 2
p2= p1*cr^gamma
t2=p2*v2*t1/(p1*v1)
constant_c1=p1*v1^gamma;
function [V] = engine_kinematics(bore,stroke,con_rod,cr,start_crank,end_crank)
a = stroke/2;
%crank radius
R=con_rod/a;
v_s=(pi/4)*bore^2*stroke;
v_c=v_s/(cr-1);
theata= linspace(start_crank,end_crank,100);
term1=0.5*(cr-1);
term2= R+1-cosd(theata);
term3=(R^2-sind(theata).^2).^0.5;
V=[1+term1*term2term3)].*v_c
V_compression=engine_kinematics(bore,stroke,con_rod,cr,180,0)
P_compression=constant_c1./V_compression.^gamma
%state variables at point 3
v3=v2;
p3=p2(t3/t2);
constant_c2=p3*v3^gamma;
V_expansion=engine_kinematics(bore,stroke,con_rod,cr,0,180)
P_expansion=constant_c2./V_expansion.^gamma
%state variables at point 4
v4=v1;
p4=p3*(v3/v4)^gamma;
figure(1)
hold on
%line([v1 v2 v3 v4 v1],[p1 p2 p3 p4 p1],'linewidth', 3)
plot(V_compression,P_compression)
%line([v2 v3], [p2 p3],'linewidth', 3)
plot(V_expansion,P_expansion)
plot([v2 v3],[p2 p3],'color','b')
plot([v4 v1],[p4 p1],'color','b')