Ainadak
Aerospace
- Jul 13, 2014
- 1
How would one model an isentropic (reversible) adiabatic expansion using thermodynamic software in order to determine isentropic work? What I am looking for is an actual pressure-volume curve for the isentropic expansion of a gas.
Approach using EES:
1) Start with a known gas state/scale (Mass, Volume, Pressure, Temperature, Enthalpy, Entropy, etc.)
2) Update gas volume by a small increase in volume dV
3) Work done = Pressure * dV
4) Keep entropy constant
5) Recalculate new gas state based on the new Specific Volume (Volume/Mass) and Entropy
6) Repeat until final state has been reached.
Summing the work done in this method results in significantly less work (~80%) than is possible through isentropic expansion. The max isentropic work is calculated through
Wmax = Mass * (h_initial - h_final)
Even with very small step sizes (thousands of steps), this approach doesn't work. Can anyone shed some light as to why these work values don't match up?
Code:
Procedure AdiabaticExpansion(P, T, P_final : Work_max, Work)
Vol=1
v=Volume(CarbonDioxide,P=P,T=T)
s=Entropy(CarbonDioxide,P=P,T=T)
h_initial=Enthalpy(CarbonDioxide,P=P,T=T)
Mass=Vol/v
Vol_step=1/10000
Work=0
repeat
Vol:=Vol + Vol_step
v:=Vol/mass
Work_step:=(P)*Vol_step
Work:=Work + Work_step
P:=Pressure(CarbonDioxide,v=v,s=s)
until (P <= P_final)
h_final=Enthalpy(CarbonDioxide,P=P,s=s)
Work_max=mass * (h_initial - h_final)
End
Approach using EES:
1) Start with a known gas state/scale (Mass, Volume, Pressure, Temperature, Enthalpy, Entropy, etc.)
2) Update gas volume by a small increase in volume dV
3) Work done = Pressure * dV
4) Keep entropy constant
5) Recalculate new gas state based on the new Specific Volume (Volume/Mass) and Entropy
6) Repeat until final state has been reached.
Summing the work done in this method results in significantly less work (~80%) than is possible through isentropic expansion. The max isentropic work is calculated through
Wmax = Mass * (h_initial - h_final)
Even with very small step sizes (thousands of steps), this approach doesn't work. Can anyone shed some light as to why these work values don't match up?
Code:
Procedure AdiabaticExpansion(P, T, P_final : Work_max, Work)
Vol=1
v=Volume(CarbonDioxide,P=P,T=T)
s=Entropy(CarbonDioxide,P=P,T=T)
h_initial=Enthalpy(CarbonDioxide,P=P,T=T)
Mass=Vol/v
Vol_step=1/10000
Work=0
repeat
Vol:=Vol + Vol_step
v:=Vol/mass
Work_step:=(P)*Vol_step
Work:=Work + Work_step
P:=Pressure(CarbonDioxide,v=v,s=s)
until (P <= P_final)
h_final=Enthalpy(CarbonDioxide,P=P,s=s)
Work_max=mass * (h_initial - h_final)
End