clear ; addpath(genpath('.')) % Data r = 8 ; % [-] % Units bar = 1e5 ; % [Pa] cm = 1/100 ; % [m] g = 1/1000 ; % [kg] % Ideal gas, air gas.Rbar = 8.314 ; % [J/(mol*K)] gas.M = 28.97 * g ; % [kg/mol] gas.R = gas.Rbar / gas.M ; % [J/(kg*K)] % Constant cp and cv gas.k = 1.4 ; % [-] gas.cv = gas.R / ( gas.k - 1 ) ; gas.cp = gas.k * gas.cv ; % States state1.T = 300 ; % [K] state1.p = 1.013 * bar ; % [Pa] state1.V = 566 * cm^3 ; % [m^3] state3.T = 2000 ; % [K] gas.m = getVariableFromStateEquation("m", state1, gas) ; % 1-2 (isoentropic compression) state2.V = state1.V / r ; state2 = getStateAfterIsoentropicProcessConst(state1, state2, gas) ; % 2-3 (V=const) state3 = getStateAfterIsochoricProcess(state2, state3, gas) ; % 3-4 (isoentropic expansion) state4.V = state1.V ; state4 = getStateAfterIsoentropicProcessConst(state3, state4, gas) ; % Work per unit mass per cycle [J/kg] qIn = gas.cv * ( state3.T - state2.T ) ; qOut = gas.cv * ( state4.T - state1.T ) ; l = qIn - qOut ; % Thermal efficiency eta = l / qIn % Total work per cycle [J] L = gas.m * l % Displacement volume [m^3] and mean effective pressure [Pa] V = state1.V - state2.V ; pme = L / V