Closed System ระบบปิด
Closed System ระบบปิด Thermodynamics First Law Q W ΔU Piston-Cylinder Isochoric Isobaric Isothermal Adiabatic Polytropic
| ประเภทระบบ | แลกเปลี่ยนมวล | แลกเปลี่ยนพลังงาน | ตัวอย่าง |
|---|---|---|---|
| Open System (ระบบเปิด) | ได้ | ได้ | Turbine Compressor Nozzle |
| Closed System (ระบบปิด) | ไม่ได้ | ได้ (Q, W) | Piston-Cylinder หม้อหุงข้าว |
| Isolated System (ระบบแยก) | ไม่ได้ | ไม่ได้ | Thermos (ทฤษฎี) |
Thermodynamics Calculation
# === Closed System Thermodynamics Calculator ===
import math
from dataclasses import dataclass
@dataclass
class GasProperties:
name: str
R: float # kJ/(kg·K)
Cv: float # kJ/(kg·K)
Cp: float # kJ/(kg·K)
k: float # Cp/Cv
air = GasProperties("Air", 0.287, 0.718, 1.005, 1.4)
@dataclass
class ProcessResult:
process: str
Q: float # Heat Transfer (kJ)
W: float # Work (kJ)
dU: float # Change in Internal Energy (kJ)
def isochoric(m, T1, T2, gas):
"""Constant Volume Process: V = const, W = 0"""
dU = m * gas.Cv * (T2 - T1)
W = 0
Q = dU
return ProcessResult("Isochoric (V=const)", Q, W, dU)
def isobaric(m, T1, T2, gas):
"""Constant Pressure Process: P = const"""
dU = m * gas.Cv * (T2 - T1)
W = m * gas.R * (T2 - T1)
Q = m * gas.Cp * (T2 - T1)
return ProcessResult("Isobaric (P=const)", Q, W, dU)
def isothermal(m, T, V1, V2, gas):
"""Constant Temperature Process: T = const, dU = 0"""
dU = 0
W = m * gas.R * T * math.log(V2 / V1)
Q = W
return ProcessResult("Isothermal (T=const)", Q, W, dU)
def adiabatic(m, T1, T2, gas):
"""No Heat Transfer: Q = 0"""
dU = m * gas.Cv * (T2 - T1)
W = -dU
Q = 0
return ProcessResult("Adiabatic (Q=0)", Q, W, dU)
# Example: Air 2 kg heated from 25°C to 100°C
m = 2.0 # kg
T1 = 25 + 273.15 # K
T2 = 100 + 273.15 # K
print("=== Closed System Calculations ===")
print(f"Gas: {air.name}, Mass: {m} kg, T1: {T1-273.15}°C, T2: {T2-273.15}°C\n")
for calc in [isochoric, isobaric, adiabatic]:
r = calc(m, T1, T2, air)
print(f" [{r.process}]")
print(f" Q = {r.Q:.2f} kJ | W = {r.W:.2f} kJ | ΔU = {r.dU:.2f} kJ")
print(f" Check: Q - W = {r.Q - r.W:.2f} = ΔU = {r.dU:.2f} ✓")
Process Comparison
# === Process Comparison ===
@dataclass
class ProcessInfo:
process: str
condition: str
work_formula: str
heat_formula: str
pv_relation: str
processes = [
ProcessInfo("Isochoric",
"V = constant (ปริมาตรคงที่)",
"W = 0",
"Q = mCv(T2-T1)",
"P1/T1 = P2/T2"),
ProcessInfo("Isobaric",
"P = constant (ความดันคงที่)",
"W = P(V2-V1) = mR(T2-T1)",
"Q = mCp(T2-T1)",
"V1/T1 = V2/T2"),
ProcessInfo("Isothermal",
"T = constant (อุณหภูมิคงที่)",
"W = mRT ln(V2/V1)",
"Q = W (เพราะ ΔU = 0)",
"P1V1 = P2V2"),
ProcessInfo("Adiabatic",
"Q = 0 (ไม่มีการถ่ายเทความร้อน)",
"W = -mCv(T2-T1)",
"Q = 0",
"PV^k = const, TV^(k-1) = const"),
ProcessInfo("Polytropic",
"PV^n = constant",
"W = (P2V2-P1V1)/(1-n)",
"Q = mCn(T2-T1)",
"Cn = Cv(n-k)/(n-1)"),
]
print("=== Process Comparison ===")
for p in processes:
print(f"\n [{p.process}] {p.condition}")
print(f" Work: {p.work_formula}")
print(f" Heat: {p.heat_formula}")
print(f" PV: {p.pv_relation}")
Real-World Applications
# === Applications ===
@dataclass
class Application:
system: str
process_type: str
description: str
example_calc: str
applications = [
Application("Internal Combustion Engine",
"Otto Cycle (2 Isochoric + 2 Adiabatic)",
"กระบอกสูบรถยนต์ Compression → Combustion → Expansion → Exhaust",
"Efficiency = 1 - (1/r^(k-1)), r = compression ratio"),
Application("Pressure Cooker",
"Isochoric (เริ่มต้น) → Isobaric (ระหว่างหุง)",
"หม้ออัดแรงดัน ให้ความร้อน ความดันเพิ่ม อุณหภูมิเพิ่ม",
"P2 = P1 × T2/T1 ถ้า V คงที่"),
Application("Hydraulic Cylinder",
"Isothermal (ของเหลวเกือบ Incompressible)",
"กระบอกสูบไฮดรอลิก ส่งแรงผ่านของเหลว",
"F = P × A, W = F × d"),
Application("Bomb Calorimeter",
"Isochoric (V คงที่)",
"วัด Heat of Combustion ของเชื้อเพลิง/อาหาร",
"Q = mCv ΔT = ΔU (W=0)"),
Application("PC Water Cooling Loop",
"Closed Loop (มวลน้ำคงที่)",
"ระบบน้ำหล่อเย็นคอมพิวเตอร์ รับความร้อนจาก CPU/GPU",
"Q = ṁCpΔT, Flow Rate × Cp × ΔT"),
]
print("=== Applications ===")
for a in applications:
print(f"\n [{a.system}] Process: {a.process_type}")
print(f" Desc: {a.description}")
print(f" Calc: {a.example_calc}")
เคล็ดลับ
- First Law: Q - W = ΔU ใช้ได้ทุก Process ใน Closed System
- เครื่องหมาย: Q เข้า + ออก - W ระบบทำ + สิ่งแวดล้อมทำ -
- Ideal Gas: ΔU = mCvΔT ใช้ได้ทุก Process ของ Ideal Gas
- Isochoric: W = 0 เสมอ เพราะไม่มี Boundary Work
- Adiabatic: Q = 0 Isentropic ถ้า Reversible
การนำความรู้ไปประยุกต์ใช้งานจริง
แหล่งเรียนรู้ที่แนะนำ ได้แก่ Official Documentation ที่อัพเดทล่าสุดเสมอ Online Course จาก Coursera Udemy edX ช่อง YouTube คุณภาพทั้งไทยและอังกฤษ และ Community อย่าง Discord Reddit Stack Overflow ที่ช่วยแลกเปลี่ยนประสบการณ์กับนักพัฒนาทั่วโลก
Close System คืออะไร
ระบบปิด แลกเปลี่ยนพลังงานได้ มวลไม่ได้ Q W ΔU Piston-Cylinder หม้ออัดแรงดัน เทียบ Open Isolated System
กฎ Thermodynamics ใช้อย่างไร
First Law Q-W=ΔU Boundary Work ∫PdV Cv Cp Ideal Gas Isochoric Isobaric Isothermal Adiabatic Polytropic
คำนวณอย่างไร
Isochoric W=0 Q=mCvΔT Isobaric W=PΔV Q=mCpΔT Isothermal Q=W=mRTln(V2/V1) Adiabatic Q=0 W=-mCvΔT
ประยุกต์ใช้อย่างไร
Engine Otto Cycle Pressure Cooker Hydraulic Bomb Calorimeter PC Water Cooling Battery HVAC Autoclave Industrial
สรุป
Closed System ระบบปิด Thermodynamics First Law Q W ΔU Isochoric Isobaric Isothermal Adiabatic Engine Hydraulic Cooling
