= 111.111
A = 888.89
K
= 200
P1 = (P1-A)/K
V1 print("V1 = %.2f m3" %(V1))
= 2*V1 V2
V1 = 0.10 m3
Fábio P. Fortkamp
March 15, 2022
This is exercise 13-97 from [1]: a mixture of gases composed of 55% of nitrogen gas and 45% of carbon dioxide (in mass) is originally at 200 kPa and 45 ˚C. The system is heated up and expands, but due to the action of a spring, the pressure variation as a function of volume \(P(\mathcal{V})\) follows:
\[ P = A + K \mathcal{V} \] where \(A = 111.111\,\mathrm{kPa}\) and \(K = 888.89\,\mathrm{kPa/m^3}\). During the heating, volume doubles; what is the work and heat transfers associated with the process?
For that, in contrast with the previous posts, now we’ll use Python and the pyromat
package, which I’ve just discovered today.
With the added heat, the system will expand and perform work, which can be calculated using only mechanics:
\[ W = \int_{\mathcal{V}_1}^{\mathcal{V}_2} P \mathrm{d}\mathcal{V} \]
Where the initial volume can be obtained from the given pressure variation, and the final volume is double that:
The integration above gives:
\[ W = A * (\mathcal{V}_2 - \mathcal{V}_1) + \frac{K}{2}\left(\mathcal{V}_2^2 - \mathcal{V}_1^2\right) \]
and calculating it:
To compute the heat added to the system, a First Law analysis reads:
\[ Q = W + \Delta U = W + m c_v (T_2-T_1) \]
where, assuming a mixture of ideal gases (an hypothesis not used so far!), all mass-specific properties are additive. The gas constant is:
\[ R = \sum_{i=1}^k x_i R_i \] where \(k = 2\) components, \(x_i\) is the individual mass fraction and \(R_i\) the individual gas constant. The gas constant is needed to compute the temperature variation; at state 1, the mass (which is constant in all states for a closed system) is computed from the ideal gas equation of state:
\[ m = \frac{P_1 V_1}{R T_1} \]
and now, applying the same equation for state 2:
\[ T_2 = \frac{P_2 V_2}{m R} \]
where \(P_2\) can be obtained from the pressure-volume equation.
The constant-volume specific heat for ideal gases is a function of temperature only, and for better accuracy can be calculated at the average temperature. The mixture specific heat is computed similarly to the gas constant above.
The pyromat
library has function to create ideal gas “objects” and then access constants and functions as illustrated below:
import pyromat as pm
N2 = pm.get("ig.N2") # ig = ideal gas model
CO2 = pm.get("ig.CO2")
xN2 = 0.55
xCO2 = 1-xN2
# each object has a .R() method to calculate the gas constant
# the default units are kJ, kPa, m3, K, kmol
R = xN2*N2.R() + xCO2*CO2.R()
T1 = 45 + 273
m = (P1*V1)/(R*T1)
P2 = A + K*V2
T2 = (P2*V2)/(m*R)
Tmean = (T1 + T2)/2
cv = xN2*N2.cv(T=Tmean) + xCO2*CO2.cv(T=Tmean)
Q = W + m*cv*(T2-T1)
print("Q = %.2f kJ" %(Q,))
[1]: Çengel, Y. A., & Boles, M. A. Termodinâmica (7 ed.). Porto Alegre: AMGH, 2013.