본문 바로가기

Contact English

【환경화학】 2006 국가공무원 5급(기술) 제5문

 

2006 국가공무원 5급(기술) 제5문]

 

추천글 : 【환경화학】 환경화학 목차


a. 산·염기 반응


당근 님 지적사항 수정 (23.12.09)


 

Q. 약한 염기를 센 산으로 적정할 때 pH를 추정하는 방법으로 pC-pH 도표를 이용할 수 있다. 0.01 M NH3 용액에 대해서 센 산으로 적정하고자 할 때, 다음 물음에 답하시오. 

 

Q1, Q2. 위 용액에 대한 pC-pH 도표를 작성하시오. pC-pH 도표에 적정의 초기, 중간점 및 당량점의 pH를 표시하고 그 근거를 설명하시오. 

  

A1, A2.  

가정 1. NH3 용액은 0.01 M 100 ml로 주어져 있음

가정 2. NH4+ → NH3 + H+의 산 해리 상수 Ka = 10-9.3

가정 3. 0.1 M HCl 용액으로 적정 

○ 만약, 0.1 M HCl 용액이 x mL만큼 첨가됐다고 가정하면 다음과 같음 

○ NH3 몰수 = 1 - 0.1x (mmol) 

○ NH4+ 몰수 = 0.1x (mmol) 

○ pCH+ = pH = pKa + log ((1 - 0.1x) / 0.1x) = 9.3 + log((1 - 0.1x) / 0.1x)

○ pCNH3 = -log ((1 - 0.1x) / (100 + x))

○ pCNH4+ = -log (0.1x / (100 + x))

○ pCCl- = -log (0.1x / (100 + x))

적정의 초기 pH = 14 - (-log √(Kb × C)) (단, Kb = Kw / Ka = 10-4.7, C = 0.01) = 10.65 

○ 중간점의 pH = pKa + log ([NH3] / [NH4+]) = pKa = 9.3

○ 당량점의 pH = -log √(Ka × C) (단, Ka = 10-9.3, C = 0.01 × 100 / (100 + 10)) = 5.670696

 

Figure. 1. 파이썬으로 그린 pC-pH 도표

 

import numpy as np
import matplotlib.pyplot as plt

# Constants
Ka = 10**(-9.3)
Kw = 10**(-14)
Kb = Kw / Ka
C = 0.01  # initial concentration of NH3
V_NH3 = 100  # volume of NH3 in ml
pKa = 9.3

# Equilibrium pH values
pH_start = 14 - (-np.log10(np.sqrt(Kb * C)))
pH_mid = pKa  # at halfway to equivalence point
C_equiv = 0.01 * 100 / (100 + 10)  # concentration at equivalence point
pH_end = -np.log10(np.sqrt(Ka * C_equiv))

# pH function as x varies
def calc_pH(x):
    return pKa + np.log10((1 - 0.1*x) / (0.1*x))

# pC functions for each species as x varies
def calc_corrected_pC_NH3(x):
    return -np.log10((1 - 0.1*x) / (100 + x))

def calc_corrected_pC_NH4(x):
    return -np.log10(0.1*x / (100 + x))

def calc_corrected_pC_Cl(x):
    return -np.log10(0.1*x / (100 + x))

# Define the full range of x values of HCl added
x_values_full_range = np.linspace(1, 12, 500) # techinal range

# Calculate corrected pC values for each species over the full range
pC_NH3_values_full = calc_corrected_pC_NH3(x_values_full_range)
pC_NH4_values_full = calc_corrected_pC_NH4(x_values_full_range)
pC_Cl_values_full = calc_corrected_pC_Cl(x_values_full_range)
pH_values_full = calc_pH(x_values_full_range)

# No need to recalculate for H+ since it is the same as the pH values for strong acids like HCl
pC_Hplus_values_full = pH_values_full

# Plotting the corrected graph
plt.figure(figsize=(8, 6))

# Plot each species with corrected pC values
plt.plot(pH_values_full, pC_NH3_values_full, label='pC[NH3]', color='green')
plt.plot(pH_values_full, pC_NH4_values_full, label='pC[NH4+]', color='blue', linestyle='--')
plt.plot(pH_values_full, pC_Cl_values_full, label='pC[Cl-]', color='purple', linestyle='-.')
plt.plot(pH_values_full, pC_Hplus_values_full, label='pC[H+]', color='orange')

# Define the style for the vertical lines
line_styles = {'Start': 'dotted', 'Mid': 'dashdot', 'End': 'dashed'}

# Add vertical lines with different styles for Start, Mid, and End
for point, style in line_styles.items():
    plt.axvline(x=locals()[f'pH_{point.lower()}'], color='black', linestyle=style, label=point)

# Invert the y-axis to have 0 at the top and 12 at the bottom
plt.gca().invert_yaxis()

# Graph details
plt.title('pC-pH Diagram for Titration of 0.01 M NH3 with 0.1 M HCl')
plt.xlabel('pH')
plt.ylabel('pC')
plt.grid(True)
plt.legend()
plt.show()

 

Q3. 위의 암모니아 용액 100 ml에 염산을 가하여 pH 8로 조절하였다. 염산의 농도가 0.1 M이라면 몇 ml를 첨가해야 하는가? (단, NH4+ → NH3 + H+, Ka = 10-9.3이다.)

  

A3. 

핸더슨-하셀바흐 방정식 : pH = 8 = pKa + log ([NH3] / [NH4+]) = 9.3 + log ([NH3] / [NH4+])

[NH3] : [NH4+] = 1 : 20

○ 반응한 NH3 몰수 = 100 ml × 0.01 M × 20 / 21 = 첨가한 HCl의 몰수 = 0.1 M × HCl의 첨가 부피 (ml)

HCl의 첨가 부피 (ml) = 9.52381 ml 

 

입력 : 2022.12.24 14:31