พัฒนาต้นแบบ
UAT 494 โครงงานเทคโนโลยีระบบอากาศยานไร้คนขับและระบบอัตโนมัติ 2
บทเรียน
เมื่อเรียนจบโมดูลนี้ ผู้เรียนจะสามารถ
- วางแผนพัฒนาต้นแบบเป็นรุ่นย่อยที่ทดสอบและบินได้ทุกรุ่น
- ปรับงบมวลและงบพลังงานจากชิ้นส่วนจริง และตรวจส่วนเผื่อ
- ติดตามความก้าวหน้าด้วยมูลค่างานที่ได้ (earned value) และตัวชี้วัด SPI กับ CPI
- ตัดสินใจปรับขอบเขตเมื่อโครงงานช้ากว่าแผน
ทำไมต้องรู้
ภาคแรกของโครงงาน (UAT 493) จบที่ข้อเสนอ ภาคนี้คือการสร้างสิ่งที่เสนอให้ใช้งานได้จริง ทดสอบ และนำเสนอต่อคณะกรรมการ ความเสี่ยงใหญ่ที่สุดคือสร้างทุกอย่างพร้อมกันแล้วไปรวมกันตอนท้าย ซึ่งทำให้ไม่รู้ว่าปัญหามาจากไหน และมักไม่ทันกำหนด วิชานี้ใช้กรณีต่อเนื่องจาก UAT 493: ระบบโดรนตรวจแนวคลองชลประทานยาว 2 km แบบอัตโนมัติ ตัวเลขทั้งหมดเป็นข้อมูลสมมติ โค้ด Python ดาวน์โหลดได้ที่ /downloads/uat-494/
พัฒนาเป็นรุ่นย่อย
คู่มือวิศวกรรมระบบของ NASA และตำราการออกแบบของ Dym และคณะ แนะนำให้ลดความเสี่ยงด้วยการพัฒนาทีละขั้นที่ตรวจสอบได้ สำหรับโครงงานนี้ แต่ละรุ่นต้อง บินได้และทดสอบได้
- รุ่น 1 บินตามเส้นทางแนวคลองอัตโนมัติ
- รุ่น 2 เพิ่มการถ่ายภาพตามระยะที่ออกแบบ
- รุ่น 3 เพิ่มการตรวจจับรอยร้าวบนคอมพิวเตอร์บนลำ
- รุ่น 4 เพิ่มการสร้างรายงานให้สำนักงานชลประทาน
ถ้าเวลาหมด ทีมยังมีรุ่นที่ทำงานได้ส่งคณะกรรมการ ดีกว่ามีชิ้นส่วนครบแต่ยังไม่เคยบินพร้อมกัน
งบมวลจากชิ้นส่วนจริง
ในข้อเสนอ มวลเป็นค่าประมาณ เมื่อซื้อชิ้นส่วนแล้วต้องชั่งจริงและปรับงบ หน่วยความรู้เรื่องออกแบบและประกอบรวมระบบของคลังความรู้โดรนเตือนให้เผื่อสายไฟ ขั้วต่อ ฐานยึด และฝาครอบ ซึ่งมักตกหล่น
ตัวอย่างที่ 1 งบมวลของรุ่น 3
มวลสูงสุดที่ทีมกำหนดจากแรงขับและเวลาบินคือ 2,000 g และต้องการส่วนเผื่ออย่างน้อย 10% (ค่าสมมติ)
M_MAX, MARGIN_REQ = 2000, 0.10 # g, ส่วนเผื่อขั้นต่ำ
parts = { # ชิ้นส่วน: (ประมาณในข้อเสนอ g, ชั่งจริง g)
"frame": (500, 520), "motors x4": (240, 248), "ESC 4-in-1": (35, 40), "props x4": (48, 48),
"battery": (520, 540), "flight controller": (40, 40), "GNSS": (30, 30),
"companion computer": (50, 60), "camera + gimbal": (170, 190), "radio": (25, 25),
"wiring & connectors": (0, 70),
}
est = sum(a for a, _ in parts.values())
real = sum(b for _, b in parts.values())
for name, (a, b) in sorted(parts.items(), key=lambda kv: kv[1][0] - kv[1][1]):
if b != a:
print(f"{name:<20} {a:>4} -> {b:>4} g ({b - a:+d})")
for label, m in (("proposal estimate", est), ("weighed", real)):
margin = (M_MAX - m) / M_MAX
print(f"{label:<17} {m} g, margin {margin:.1%} {'ok' if margin >= MARGIN_REQ else 'BELOW REQUIRED'}")
wiring & connectors 0 -> 70 g (+70)
frame 500 -> 520 g (+20)
battery 520 -> 540 g (+20)
camera + gimbal 170 -> 190 g (+20)
companion computer 50 -> 60 g (+10)
motors x4 240 -> 248 g (+8)
ESC 4-in-1 35 -> 40 g (+5)
proposal estimate 1658 g, margin 17.1% ok
weighed 1811 g, margin 9.4% BELOW REQUIRED
สายไฟและขั้วต่อที่ไม่อยู่ในงบเดิมคือส่วนที่เพิ่มมากที่สุด ส่วนเผื่อลดลงจนต่ำกว่าเกณฑ์ ทีมต้องเลือก เช่น ลดมวลกล้องกับ gimbal ใช้แบตเตอรี่เล็กลงแล้วตรวจเวลาบินใหม่ หรือขอปรับเกณฑ์กับอาจารย์ที่ปรึกษาพร้อมเหตุผล
ติดตามด้วย earned value
Earned value เทียบสามค่าในหน่วยเดียวกัน (ที่นี่คือชั่วโมงทำงาน) ได้แก่ PV งานที่ควรเสร็จตามแผน EV มูลค่าของงานที่เสร็จจริง และ AC แรงงานที่ใช้ไปจริง บัตรอ้างอิง EVM ของ NASA ให้นิยาม และ ค่ามากกว่า 1 ดี น้อยกว่า 1 คือช้ากว่าแผนหรือใช้แรงเกินแผน
ตัวอย่างที่ 2 สถานะโครงงานสัปดาห์ที่ 6
แผนทั้งหมด (BAC) 300 ชั่วโมงใน 12 สัปดาห์
BAC = 300 # ชั่วโมงตามแผนทั้งโครงงาน
PV, EV, AC = 120, 100, 130 # สัปดาห์ที่ 6
spi, cpi = EV / PV, EV / AC
eac = BAC / cpi
print(f"SPI {spi:.2f} (behind schedule)" if spi < 1 else f"SPI {spi:.2f}")
print(f"CPI {cpi:.2f} -> estimate at completion {eac:.0f} h vs budget {BAC} h (+{eac - BAC:.0f} h)")
weeks_left = 6
need = (BAC - EV) / weeks_left
print(f"to finish on time the team must earn {need:.1f} h of planned work per week (plan was {BAC / 12:.0f})")
SPI 0.83 (behind schedule)
CPI 0.77 -> estimate at completion 390 h vs budget 300 h (+90 h)
to finish on time the team must earn 33.3 h of planned work per week (plan was 25)
ทีมได้งานราวสามในสี่ของแรงที่ใช้ ถ้าต่อไปแบบเดิมจะใช้แรงเกินแผนราว 30% และต้องเร่งงานต่อสัปดาห์ขึ้นมาก ทางที่สมจริงกว่าคือตัดขอบเขตตามลำดับ MoSCoW ที่ตกลงไว้ใน UAT 493 เช่น เลื่อนงาน Could ออกไปก่อน แล้วแจ้งอาจารย์ที่ปรึกษา
ปฏิบัติการประจำโมดูล
ปฏิบัติการ: รุ่นแรกที่บินได้
- แตกแผนเป็นรุ่นย่อยอย่างน้อยสามรุ่น แต่ละรุ่นมีเกณฑ์ว่า “ทำงานได้” ที่ทดสอบได้
- ชั่งชิ้นส่วนจริงทุกชิ้น ปรับงบมวลด้วยตัวอย่างที่ 1 และปรับงบพลังงานตามกัน
- สร้างรุ่นที่ 1 ทดสอบใน SITL ก่อน แล้วบินจริงในพื้นที่ที่ได้รับอนุญาต
- บันทึกชั่วโมงทำงานทุกสัปดาห์ คำนวณ SPI และ CPI ด้วยตัวอย่างที่ 2
- ประชุมอาจารย์ที่ปรึกษาทุกสองสัปดาห์ พร้อมตัวเลขความก้าวหน้า
ข้อผิดพลาดที่พบบ่อย
ระวัง
- สร้างทุกส่วนแยกกันแล้วรวมตอนท้าย
- ไม่ชั่งชิ้นส่วนจริง ใช้ค่าจากเว็บผู้ขาย
- ลืมสายไฟ ขั้วต่อ และฐานยึด ในงบมวล
- รายงานความก้าวหน้าเป็นความรู้สึก ไม่ใช้ตัวเลข
- ไม่ตัดขอบเขต เมื่อรู้ว่าช้ากว่าแผน
สรุป
- พัฒนาเป็นรุ่นย่อยที่บินและทดสอบได้ทุกรุ่น เพื่อให้มีระบบใช้งานได้เสมอ
- ปรับงบมวลจากชิ้นส่วนจริงและตรวจส่วนเผื่อ
- SPI = EV/PV และ CPI = EV/AC บอกว่าช้าหรือใช้แรงเกินแผนเท่าใด
- เมื่อช้ากว่าแผน ตัดขอบเขตตามลำดับความสำคัญที่ตกลงไว้
แบบฝึกตรวจความเข้าใจ
- มวลสูงสุด 2,000 g มวลจริง 1,850 g ส่วนเผื่อเท่าใด
- PV 80 EV 60 AC 75 ได้ SPI และ CPI เท่าใด
- BAC 300 ชั่วโมง CPI 0.8 ประมาณการเมื่อเสร็จเท่าใด
- ทำไมทุกรุ่นย่อยควรบินได้
- ชิ้นส่วนใดมักตกหล่นจากงบมวล
เฉลย
- SPI , CPI
- ชั่วโมง
- ทดสอบและพบปัญหาได้เร็ว และมีระบบที่ใช้งานได้ส่งเสมอแม้เวลาหมด
- สายไฟ ขั้วต่อ ฐานยึด และฝาครอบ
สรุปสูตรสำคัญ
| ส่วนเผื่อของมวล | |
| ตัวชี้วัดกำหนดการและต้นทุน | |
| ประมาณการเมื่อเสร็จ |
แหล่งอ้างอิงหลัก
- National Aeronautics and Space Administration. (2016). NASA systems engineering handbook (NASA/SP-2016-6105 Rev 2). link
- Dym, C. L., Little, P., & Orwin, E. J. (2013). Engineering design: A project-based introduction (4th ed.). Wiley. link
- INCOSE. (2023). INCOSE systems engineering handbook: A guide for system life cycle processes and activities (5th ed.). Wiley. link
- National Aeronautics and Space Administration. Earned value management reference card. link
- Project Management Institute. (2025). A guide to the project management body of knowledge (PMBOK guide) (8th ed.). link
อ่านเพิ่มเติม
ศึกษาหน่วยความรู้ที่กำหนดล่วงหน้า ดูสื่อประกอบ และทำ quiz ประจำโมดูล
ในชั้นเรียน / ภาคสนาม
พัฒนาโครงงานเป็นทีม ประชุมที่ปรึกษา และนำเสนอความก้าวหน้า
หลักฐานการเรียนรู้: ผลงานตามจุดตรวจของโครงงาน