# คำนวณครบแล้ว ทำไมยังใช้ผลไม่ได้? เรียนรู้จาก N36

บทเรียนประกอบ วันที่ 28 กันยายน 2026 — ผลรายกรณี N36

## สิ่งที่ผู้เรียนจะทำได้

อ่านกราฟการคำนวณ แยกการจบโปรแกรมออกจากการผ่านเกณฑ์ และคำนวณตัวชี้วัดสองแบบที่ช่วยป้องกันการสรุปจากค่าเฉลี่ยเพียงอย่างเดียว

## เริ่มจากภาพ

![ประวัติแรง แรงบิด และ residual จริงของ N36 รอบ 5901–6000](/diagrams/aerodynamics/ms1101-n36-acceptance.png)

กราฟบนแสดงแรง กราฟกลางแสดงแรงบิด กราฟล่างแสดง initial residual แยกหกตัวแปร สีและชื่อใน legend ใช้บอกตัวแปร ไม่ใช่คะแนนคุณภาพ เส้นประสีทองคือค่าเฉลี่ย และเส้นจุดแนวตั้งแบ่งข้อมูลออกเป็นสองครึ่ง ตัวเลขบนแกนนอนคือรอบ SIMPLE **ไม่ใช่วินาที** จึงนำช่วงการแกว่งไปแปลงเป็นความถี่การสั่นจริงของโดรนไม่ได้

เส้นทุกเส้นมาจากข้อมูลดิบ ไม่มีการทำ smoothing สำหรับ pressure ซึ่งแก้สมการสองครั้งต่อ iteration ใช้ residual ค่าสูงสุดของรอบนั้น กราฟนี้เป็นหลักฐานทางตัวเลข ไม่ใช่ภาพการวัดจากโดรนจริง

## จบโปรแกรม กับ ลู่เข้า ต่างกันอย่างไร

คำว่า `End` หมายความว่า solver จบการทำงานตามการตั้งค่า ส่วนการยอมรับผลต้องตรวจเกณฑ์เพิ่มเติม แนวทาง NASA แนะนำให้ติดตามทั้ง residual และผลที่ต้องการใช้งาน เช่น แรงยกหรือแรงต้าน เพราะแต่ละปริมาณอาจลู่เข้าด้วยอัตราต่างกัน [1]

เกณฑ์ของ **การศึกษาชุดนี้** กำหนดไว้ล่วงหน้า: residual ทั้งหกตัวแปรต้องต่ำกว่า 10⁻⁵ ทุก iteration ใน 100 รอบสุดท้าย และแรงกับแรงบิดต้องผ่านตัวชี้วัดทั้งสองด้านล่าง ตัวเลขเหล่านี้ไม่ใช่ค่ามาตรฐานสากลที่นำไปใช้กับทุก solver ได้โดยอัตโนมัติ

## สมการที่ใช้

ให้ qᵢ เป็นแรงหรือแรงบิดในแต่ละรอบ และมีข้อมูล 100 ค่า:

\[
\bar q = \frac{1}{100}\sum_{i=1}^{100}q_i
\]

\[
A_{pp}=\frac{q_{max}-q_{min}}{|\bar q|}\times100\%,\qquad
D_{half}=\frac{|\bar q_{51:100}-\bar q_{1:50}|}{|\bar q|}\times100\%
\]

`A_pp` วัดช่วงแกว่งสูงสุดถึงต่ำสุดเทียบกับค่าเฉลี่ย ส่วน `D_half` วัดการเปลี่ยนของค่าเฉลี่ยระหว่างครึ่งแรกและครึ่งหลัง เกณฑ์ที่ใช้คือ **A_pp < 2% และ D_half < 1% ทั้งแรงและแรงบิด** ถ้าค่าเฉลี่ยใกล้ศูนย์ สัดส่วนนี้จะตีความยาก ต้องกำหนดสเกลอ้างอิงที่เหมาะสมใน protocol ก่อนใช้ ไม่ควรเปลี่ยนสเกลหลังเห็นผล

| ปริมาณ N36 | ค่าเฉลี่ย | A_pp | D_half | ผล |
|---|---:|---:|---:|---|
| แรง | 2.702727 N | 11.976% | 0.314% | ไม่ผ่าน A_pp |
| แรงบิดต้าน | 0.0918554 N·m | 4.918% | 2.070% | ไม่ผ่านทั้งคู่ |

ตัวอย่างแรง: (2.8154121841 − 2.4917468178) / 2.702727095717 × 100 = **11.9755%**

แม้ค่าเฉลี่ยสองครึ่งของแรงจะใกล้กัน แต่กราฟขึ้นแล้วลง ทำให้ความแตกต่างระหว่างค่าเฉลี่ยเล็กได้ จึงต้องตรวจช่วงแกว่งด้วย ในกรณีนี้ residual ยังผ่าน **0/100 รอบ** โดยค่าสูงสุดเท่ากับ **0.007300501907** จึงมีหลักฐานไม่ผ่านมากกว่าหนึ่งด้าน

## ผังการตัดสินใจสำหรับนักศึกษา

```mermaid
flowchart TD
  A[โปรแกรมจบและมี checkpoint ที่ 6000] --> B{ข้อมูลครบและ mesh ผ่านหรือไม่}
  B -->|ไม่ผ่าน| C[บันทึกปัญหา ยังไม่รับผล]
  B -->|ผ่าน| D{residual ทุกตัวผ่าน 100 รอบหรือไม่}
  D -->|ไม่ผ่าน| C
  D -->|ผ่าน| E{แรงและแรงบิดผ่านทั้งสองตัวชี้วัดหรือไม่}
  E -->|ไม่ผ่าน| C
  E -->|ผ่าน| F{มี y+ ณ รอบสุดท้ายหรือไม่}
  F -->|ไม่มี| C
  F -->|มี| G[ผ่านเกณฑ์รายกรณีของการศึกษานี้]
  G --> H[ยังต้องตรวจกริดและเทียบการทดลองแยกต่างหาก]
```

การมี y+ รอบสุดท้ายเป็นเพียงเกณฑ์ความครบของข้อมูลในชุดนี้ ไม่ได้ยืนยันว่า wall treatment เหมาะสมทุกตำแหน่ง และการผ่านรายกรณีก็ยังไม่ใช่การยืนยันความแม่นยำทางกายภาพ

## แบบฝึกพร้อมแนวตอบ

1. ถ้าพิจารณาแรงเฉพาะ D_half จะตัดสินผิดอย่างไร? **อาจคิดว่าแรงนิ่งแล้ว ทั้งที่ A_pp เกินเกณฑ์เกือบหกเท่า**
2. N36 จบพร้อม exit 0 แล้วนำค่าเฉลี่ยไปคำนวณ GCI ได้หรือไม่? **ยังไม่ได้ เพราะรายกรณีไม่ผ่าน อีกทั้ง GCI ต้องมีเงื่อนไขด้านกริดและพฤติกรรมการลู่เข้าเพิ่มเติม [2]**
3. กราฟขึ้นลงนี้พิสูจน์ว่าเกิด vortex shedding จริงหรือไม่? **ไม่พิสูจน์ รอบ SIMPLE ไม่ใช่ physical time และข้อมูลนี้ยังแยกสาเหตุทางตัวเลขจากพฤติกรรมทางฟิสิกส์ไม่ได้**
4. หากต้องศึกษาเพิ่ม ควรแก้ค่า solver แล้วแทนผลเดิมเลยหรือไม่? **ไม่ควร ต้องเก็บผลเดิม ตั้งสมมติฐานและ protocol ใหม่ก่อนทดลอง เพื่อเปรียบเทียบอย่างตรวจสอบย้อนกลับได้**

## หลักฐานและทำซ้ำ

- ข้อมูล: `tools/ms1101-cfd/results/layers/v3-global36-solver/` ได้แก่ residuals.csv, force.dat, moment.dat และ layer-solver-summary.json
- สร้างภาพ: `python tools/ms1101-cfd/plot_case_acceptance.py tools/ms1101-cfd/results/layers/v3-global36-solver research/assets/ms1101-n36-acceptance-2026-09-28.png`
- ค่าทั้งหมดเป็นผลคำนวณจริงของกรณี N36 ที่ไม่ผ่านเกณฑ์ ใช้อธิบายข้อจำกัด ไม่ใช้ยืนยัน grid independence หรือแทนผลทดลอง

## บรรณานุกรม

1. NASA Glenn Research Center / NPARC Alliance. *Examining Iterative Convergence*. https://www.grc.nasa.gov/www/wind/valid/tutorial/iterconv.html — ตรวจอ่าน 28 กันยายน 2026
2. NASA Glenn Research Center / NPARC Alliance. *Examining Spatial (Grid) Convergence*. https://www.grc.nasa.gov/www/wind/valid/tutorial/spatconv.html — ใช้ประกอบแนวทางตรวจกริดใน protocol เดิม
