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