Technology

เรารู้ได้ยังไงว่า แบตเตอรี่เหลือเท่าไหร่ SoC คิดยังไง

By Arnon Puitrakul - 15 กุมภาพันธ์ 2023

เรารู้ได้ยังไงว่า แบตเตอรี่เหลือเท่าไหร่ SoC คิดยังไง

เคยสงสัยกันมั้ยว่า เลขเปอร์เซ็นต์ของ Battery มันเอามาจากไหน เราก็เห็นกันนะว่า ถ้าเกิดเปอร์เซ็นต์มันหมด เครื่องมันก็ดับไปเลย ยิ่งในปัจจุบัน เรามีพวกรถยนต์ไฟฟ้า (EV) ซึ่งมันก็ขึ้นกับเปอร์เซ็นต์ของ Battery มากขึ้นไปอีก ไม่งั้น คือดับกลางทางได้เลยนะ วันนี้เรามาเล่าให้อ่านกันว่า รถ และ อุปกรณ์ทั้งหลาย มันรู้ได้ยังไงว่า มันเหลือเท่าไหร่

ค่า State of Charge (SoC) คืออะไร ?

ก่อนอื่น เราจะต้องมานิยามกันก่อนว่า ค่า SoC หรือ State of Charge หรือเลขเปอร์เซ็นต์ที่เราเห็น ถ้าให้แบบเข้าใจกันง่าย ๆ คือ มันคืออัตราส่วนของความจุที่เหลืออยู่ ต่อ ความจุที่แบตเตอรี่จะเก็บได้ (Charged Condition) 100% ก็คือ Battery ของเรา ชาร์จเต็มอยู่ในสถานะชาร์จเรียบร้อย และ 0% คือ Battery ถูกใช้จนเกี้ยง

ในที่นี้จะเห็นว่า เราใช้คำว่า ความจุ ไม่ใช่ พลังงาน นะ มันคนละเรื่องกัน เพื่อให้เข้าใจได้ง่ายขึ้น เราอยากให้ดูกราฟด้านบน แกน Y เราแทน Voltage หรือแรงดันของ Battery เราให้สูงสุดที่มันทำได้เลยคือ 4.5V และ เมื่อเราปล่อยประจุ หรือใช้งานไปจะเหลือสุด ๆ ที่ 2.75V และ แกน X แทน ปริมาณของประจุที่ปล่อยไป เราจะเห็นว่า เมื่อเราปล่อยประจุไปเรื่อย ๆ Voltage ของ Battery จะลดลงไปเรื่อย ๆ

แต่ ๆ ในโลกความเป็นจริงการ ลดลงของ Voltage มันไม่ได้สัมพันธ์กับประจุที่ปล่อยเป็นเส้นตรง แต่มันอยู่ในแง่ของความสัมพันธ์แบบอื่น ๆ เช่น จากกราฟด้านบน เราจะเห็นว่า Voltage มันลงไปเรื่อย ๆ ถึงจุดนึง มันจะลงช้า ๆ หน่อย แล้วจนถึงจุดนึง มันไหลลงไปฮวบเลย อันนี้สำคัญมาก ๆ เพราะมันเป็นการบอกเราว่า เราไม่สามารถเอาบอกได้นะว่า พลังงานที่เราเหลืออยู่จริง ๆ มันเท่าไหร่ เพราะถ้าเราบอกว่า เราลงไปสัก 50% พื้นที่ใต้กราฟมันก็คือพลังงานที่หายไป แต่เราจะเห็นว่า พื้นที่ใต้กราฟของ 50% แรก กับ หลัง มันต่างกัน นั่นแปลว่า พลังงานไม่เท่าอะสิ

แล้วถามว่า ถ้าเราเป็นรถ เราจะคำนวณค่า SoC ของเราได้อย่างไร วันนี้เรามาดูวิธีการกัน

Voltage Mapping

เราไม่รู้นะว่า วิธีการนี้จริง ๆ มันชื่ออะไร แต่ เราสังเกตจากที่เราคุยกันก่อนหน้านี้ว่า Voltage มันมีการเพิ่มลดตาม SoC ด้วย เพราะถ้าเราลองเก็บค่า Voltage ของ Battery Pack ในรถของเราออกมา แล้วเอามา Plot เทียบกับ SoC เราจะเห็นได้ว่า เมื่อเรามีการปล่อยประจุออกไป หรือในรถ ก็คือ เรามีการใช้ไฟออกไปเรื่อย ๆ Voltage ของ Battery จะลดลงแน่นอน

ดังนั้น จาก Graph หรือตารางนี้ ถ้าเรามี Battery Voltage ปัจจุบันเราน่าจะเทียบกลับไปเป็น SoC ที่เหลืออยู่ได้ใช่มะ Simple Arithmetics ตรง ๆ เลย

แต่ ๆ วิธีนี้ เอาจริง ๆ มันก็แอบยากอยู่เหมือนกัน อย่างแรกคือ เราจะต้องมี Discharge Profile ออกมาก่อนว่า ถ้าเราแบตเต็มเลย Voltage เราจะเป็นเท่าไหร่ และ เมื่อเราปล่อยประจุไปจนหมดเลย มันจะเหลือเท่าไหร่ ไหนจะต้องเก็บ Profile อีกว่า แต่ละช่วงมันลงยังไงอะไรบ้าง ซึ่งก็เรียกว่า กินเวลาพอสมควรเลย

แต่ปัญหาคือ Battery Pack Voltage นั้นมันมีปัจจัยอื่น ๆ เช่น อุณหภูมิ ร่วมด้วย ถามว่า ทำยังไงดี ง่ายมาก เราก็ชดเชยด้วยอุณหภูมิเข้าไปสิ สั้น ๆ ก็คือ เราจะต้องหา Discharge Profile ของแต่ละอุณหภูมิออกมา อันเดิมก็เรียกว่า ยากแล้วนะ ถ้าเราต้องหาแต่ละช่วงของอุณหภูมิอีก ก็คือ แห้งมากเลยนะ

นั่นแปลว่า เมื่อเรากำลังทำการทดสอบอยู่ เราก็จะไม่สามารถใช้งานได้เลยนะ ไม่งั้น ค่าที่เราได้ มันก็จะไม่ตรงใช่มะ ทำให้มันไม่เหมาะกับการใช้งานทั่ว ๆ ไปเท่าไหร่ บางคนเรียกมันว่ามันเป็น Offline Method

Coulomb Counting Method

วิธีแรกมันอาจจะยากไปหน่อย เพราะเราต้องวัดเพื่อตั้ง Baseline หรือ Profile ขึ้นมา และยังมีปัจจัยเยอะมาก ๆ ที่ทำให้ Voltage มันเกิดการเปลี่ยนแปลง ทำให้เราย้อนกลับไปที่เดิม จุดแรกเลยคือ การวัด SoC จริง ๆ เราต้องการวัดว่า ณ เวลา ที่เราวัด Battery เหลือความจุเท่าไหร่ ซึ่งเราใช้เป็น Ah กัน

งั้น ถ้าเราวัด A ตรง ๆ เลยละ ใช่ วัดกระแสตรง ๆ เลยละ มันจะเป็นไปได้มั้ย คำตอบคือ ใช่สิ ไม่งั้นเราจะเล่าเพื่อ... หยอก ๆ ในตัว BMS (Battery Management System) เขาจะเอาตัววัดกระแสคล่อมไว้ ทำให้เมื่อกระแสไหลผ่านมันก็จะวัดค่าเอาไว้ได้ ไม่ว่าจะเป็นการปล่อยประจุตอนที่เราเหยียบคันเร่ง หรือตอนที่เราชาร์จกลับเข้าไป

ถ้าเราเอาข้อมูลจริง ๆ มา Plot เลยละกัน เป็นกราฟที่แกน X แทนเวลา และ แกน Y แทน กระแสที่วิ่งในเวลานั้น ๆ เราก็จะได้กราฟหน้าตาประหลาด ๆ มา เพราะในความเป็นจริง เรามีการเหยียบ ๆ ไม่เท่ากันหรอก กลับไปที่ คณิตศาสตร์มัธยมปลาย ถ้าเรามีกราฟแบบนี้ เราอยากรู้ผลรวมของกระแสที่เราใช้ไป สิ่งที่เราต้องทำก็คือ การหาพื้นที่ใต้กราฟ ถ้าเรามี Function มา เราก็แค่เอามา Integral แค่นั้นจบ

แต่ในที่นี้ เราได้มาเป็น Data Point เราสามารถทำ Coulomb Counting ได้ สิ่งที่เราต้องทำคือ เข้าไปดูที่แต่ละ Data Point เอากระแส คูณด้วยเวลาที่จุดสองจุดห่างกัน แล้วบวกไปเรื่อย ๆ จนหมด ทำให้เราได้พื้นที่ใต้กราฟแบบประมาณ ๆ ได้ นั่นแปลว่า เราก็จะได้ Ah ออกมา ทำให้เราเอากลับไป หารด้วยความจุสูงสุด มาก็จบ

ในแง่ของการทำงานจริง ๆ ใช่แหละ เราก็มานั่งนับกันแหละว่า มันเท่าไหร่อะไรยังไง ทำให้ถ้าเราเข้าถึงข้อมูลของ ECU รถผ่านพวก OBD ทั้งหลาย เราจะเห็นว่ามันมี Parameter 2 ชุดที่เกี่ยวข้องคือ Accumulated charge และ Accumulated discharge ถ้าเข้าไปหามันจะอยู่ใน BMS มันคือ ความจุที่เราชาร์จเข้า อาจจะเกิดจากการชาร์จ หรือ ชาร์จเมื่อเราถอนคันเร่งทั้งหมดตั้งแต่มันบันทึกมา และ ความจุที่มันปล่อยออกไปตั้งแต่ที่มันบันทึกมา

ถ้าเรามาคิดกันจริง ๆ Accumulated charge ส่วนใหญ่แล้วจะต้องมากกว่า Accumulated discharge แน่นอน เพราะถ้ามันเท่ากันแปลว่า เราชาร์จเข้า เท่ากับ ปล่อยออกนั่นคือ แบตหมดเกี้ยงจริง ๆ แตกแน่ กลับกัน discharge มากกว่าชาร์จก็ ผีหลอกแล้ว ไม่ก็มี Error เกิดขึ้นในการวัด

ดังนั้น ถ้าเราอยากรู้ว่า เราเหลือเท่าไหร่ เราก็แค่เอาค่าจาก Accumulated charge - Accumulated discharge เราก็จะได้ความจุที่เหลืออยู่ แล้วเราก็เอาไปหารด้วย ความจุสูงสุด เราก็น่าจะได้ SoC ออกมาแล้ว

แต่ความตลกร้ายอีกก็คือในโลกแห่งความเป็นจริง เราไม่มีทางได้ค่าที่เป๊ะ ๆ ขนาดนั้น ทำให้ค่ามันก็จะเพี้ยนไปเรื่อย ๆ เลยทำให้เราอาจจะต้องใช้วิธีแรกเข้ามาช่วยด้วย เพื่อให้เอาผลมาเทียบกัน ซึ่งค่าพวกนี้ เขาก็ทดสอบมาจากโรงงานแล้ว แต่เราจะไม่ได้ใช้เป็นหลัก แต่เราจะเอามาเพื่อบอกว่า ค่าที่เราได้จาก Coulomb มันไหลพลาดไปถึงไหนแล้ว ถ้ามันมากไป ไม่แน่ใจ ก็เริ่มนับใหม่ไปเรื่อย ๆ

ในเมื่อวิธีการคำนวณแบบนี้เราไม่จำเป็นต้องปิดการใช้งาน เราสามารถใช้งานแบตได้ตามปกติเลย เราแค่นับไปเรื่อย ๆ ทำให้เราเรียกวิธีนี้ว่ามันเป็น Online Method

Battery Calibration

เราอาจจะเคยได้ยินมา ตั้งแต่พวกแบตโทรศัพท์ละว่า เราควรจะมีโอกาสที่ชาร์จแบตให้เต็ม ๆ เลย เพื่อให้มันทำการ Calibration เราจะได้ SoC ของ Battery ที่เที่ยงตรงมากขึ้น สำหรับรถ EV ก็ไม่ต่างกัน ส่วนนึงที่พูดกันเยอะ ๆ คือการทำ Cell Balancing หรือปรับแรงดันให้แต่ละ Cell ใน Battery Pack ของเรามันเท่ากันให้ได้มากที่สุด

อีกประโยชน์คือ การไป Calibrate ใน BMS อย่างที่เราเล่าเมื่อครู่ว่า BMS มันมีการเก็บข้อมูล และ อ่านข้อมูลเพื่อเอามาคำนวณ SoC อยู่ตลอดเวลา เช่นพวกความจุที่จ่าย และ ชาร์จเข้า รวมไปถึงพวก Voltage ต่าง ๆ ทั้ง Voltage ปัจจุบัน และ ค่าจากโรงงาน แต่อย่างที่เราบอกไปว่า เมื่อเวลาผ่านไป การคำนวณมันอาจจะผิด แล้วบวกทับ ๆ ลงไปเรื่อย ๆ ทำให้ความผิดพลาดมันขึ้นไปเรื่อย ๆ

หลักการในการ Calibrate ก็คือ เราจะต้องทำให้ SoC ของ Battery มันลงไปน้อยมาก ๆ เช่น 5% อะไรแถว ๆ นั้น แล้วให้มันพักสักหน่อยเพื่อให้อุณหภูมิมันลงไปอยู่ในสภาวะที่คงตัว สุดท้าย เราก็จะชาร์จกลับไปที่ 100% เหมือนเดิม แล้วพักอีกรอบ

การทำแบบนี้ ทำให้ BMS ได้เห็นว่า จุดที่มันต่ำมาก ๆ มันเป็นเท่าไหร่ และเมื่อเราชาร์จกลับขึ้นไปก็ทำให้มันเห็นจุดสูงสุดเช่นกัน ทำให้มันสามารถที่จะเริ่มนับ และ คำนวณใหม่ เพื่อให้ได้ค่าที่ใกล้เคียงความเป็นจริงได้มากขึ้น

สรุป

การวัด SoC (State of Charge) เป็นการวัดความจุที่เหลืออยู่ของ Battery เทียบกับความจุของ Battery จริง ๆ เพื่อให้เราเห็นว่า แบตเราน่าจะเหลืออีกเท่าไหร่ ซึ่งวิธีการก็อาจจะใช้การวัด Voltage ตรง ๆ เลยก็มี แต่วิธีการที่นิยมใช้กันคือ Coulomb Counting ที่จะนับ กระแสที่ไหลเข้าออก เพื่อเอามาคำนวณ SoC อีกทีนึง วิธีนี้ทำให้เราไม่ต้องมานั่งเสียเวลาสร้าง Profile เลย เราแค่ใช้งานไปเรื่อย ๆ เราก็จะสามารถคำนวณค่าออกมาได้เรื่อย ๆ แต่การคำนวณนี้มันสะสมไปเรื่อย ๆ ค่าความผิดพลาดเช่นกัน ทำให้เราอาจจะต้องมีการ Calibrate Battery เพื่อให้ค่าพวกนี้มันกลับมาตรงเหมือนเดิมนั่นเอง ในตอนหน้าเราจะไปคุยกันในเรื่องที่หลาย ๆ คนให้ความสนใจคือ SoH (State of Health) กัน

Read Next...

Apple M4 รุ่นไหนเหมาะกับใคร

Apple M4 รุ่นไหนเหมาะกับใคร

หลังจากเมื่อหลายอาทิตย์ก่อน Apple ออก Mac รัว ๆ ตั้งแต่ Mac Mini, iMac และ Macbook Pro ที่ใช้ M4 กันไปแล้ว มีหลายคนถามเราเข้ามาว่า เราควรจะเลือก M4 ตัวไหนดีถึงจะเหมาะกับเรา...

Cloudflare Access ของดีขนาดนี้ ฟรีได้ไงวะ

Cloudflare Access ของดีขนาดนี้ ฟรีได้ไงวะ

จากตอนก่อน เราเล่าเรื่องการ Host Website จากบ้านของเราอย่างปลอดภัยด้วย Cloudflare Tunnel ไปแล้ว แต่ Product ด้าน Zero-Trust ของนางยังไม่หมด วันนี้เราจะมาเล่าอีกหนึ่งขาที่จะช่วยปกป้อง Infrastructure และ Application ต่าง ๆ ของเราด้วย Cloudflare Access กัน...

Mainframe Computer คืออะไร ? มันยังมีชีวิตอยู่ใช่มั้ย ?

Mainframe Computer คืออะไร ? มันยังมีชีวิตอยู่ใช่มั้ย ?

ทุกคนเคยได้ยินคำว่า Mainframe Computer กันมั้ย เคยสงสัยกันมั้ยว่า มันต่างจากเครื่องคอมพิวเตอร์ที่เราใช้งานกันทั่ว ๆ ไปอย่างไรละ และ Mainframe ยังจำเป็นอยู่มั้ย มันได้ตายจากโลกนี้ไปหรือยัง วันนี้เรามาหาคำตอบไปด้วยกันเลย...

Infrastructure as Code คืออะไร ทำไมถึงสำคัญมากในปัจจุบัน

Infrastructure as Code คืออะไร ทำไมถึงสำคัญมากในปัจจุบัน

เคยมั้ยเวลา Deploy โปรแกรมสักตัว เราจะต้องมานั่ง Provision Infrastructure ไหนจะ VM และ Settings อื่น ๆ อีกมากมาย มันจะดีกว่ามั้ยถ้าเรามีเครื่องมือบางอย่างที่จะ Automate งานที่น่าเบื่อเหล่านี้ออกไป และลดความผิดพลาดที่อาจจะเกิดขึ้น วันนี้เราจะพาทุกคนมาทำความรู้จักกับ Infrastructure as Code กัน...