摘要
用于 MCU 實施的電源機器學習(tinyML)技術是一個不斷發展的領域;其可為電源管理和電機控制帶來新的增強功能。 ML 算法能發現復雜傳感器數據中的信息和模式,用于優化性能并提高對整個電源系統健康狀況的了解。除 tinyML 技術及其所取得的進步外,AutoML 工具的熱度也在上升。這一工具可自動收集數據、訓練 ML 算法,以及生成和部署 MCU固件;其與片上系統(SoC)的傳感器數據訪問相結合,可在目前電源管理系統中開發基于 ML 的解決方案。本文討論了如何利用 Qorvo 的智能電源管理系統 IC 開發機器學習(ML)應用。Qorvo 高度集成的智能電源管理 SoC 將 Arm® Cortex® M0 和 M4F 內核 MCU 與帶有一系列傳感器的模擬前端相融合,實現了智能電源管理控制與監控功能。
簡介:機器學習
從數據中學習
機器學習模型的性能直接源于電源管理數據;這在復雜、高維數據中或人類難以確定最佳算法時成為一種優勢。然而,對電源數據的依賴意味著良好的結果取決于能否獲得良好的訓練數據——這些電源數據代表了設備在不同環境條件和制造公差下的實際行為。電源數據收集通常是 ML 項目中最昂貴、最耗時的階段。在成本過高的情況下,來自物理模型的合成電源數據可以滿足要求。
Qorvo 的評估工具包包含一個圖形用戶界面(GUI),其中集成了電源管理數據記錄功能,以方便智能電源數據收集過程。內部 MCU 可用的相同傳感器數據可保存到計算機上的文件中,用于離線模型訓練及測試。一些 AutoML(自動 ML)工具還通過將硬件抽象層和電源管理數據流功能集成到評估固件中來支持實時電源管理數據收集和電源模型測試。
模型選擇
智能電源機器學習的另一個優勢是可擴展性;僅需更換訓練數據就能針對不同的用例訓練單個模型。亦可使用參數化代碼結構來實現模型,并為每個用例存儲一組不同的智能電源模型系數。此過程可以實現電源自動化,從而節省與手動固件修改相關的工程時間和資源。
智能電源機器學習模型在復雜性和性能方面差異很大。決策樹或樹集合是大多數 AutoML 工具均包含的一種低復雜度方法;這些方法非常適合 MCU 實施,實施時可能僅需幾百字節到幾 K 字節的 RAM/閃存。其中,決策樹通常面向分類電源應用,而稱為回歸樹的相關電源結構可用于估算連續值。
分類決策樹示例如圖 1 所示。其中,智能電源放電過程中多電芯電池組的狀態可以用兩個特征來描述:最強電芯的電源充電狀態,以及最強和最弱電芯間的電源電壓差。在樹的每個決策節點上,二元決策將特征空間一分為二。電源節點的連續層將特征空間細分為更小的區域,最終形成一個粗略的非線性決策邊界;該邊界試圖將電源數據分為兩類(如正常和異常)。該圖中,智能電源訓練數據顯示為藍色或白色點,而決策樹使用的分類區域則以藍色或綠色區域表示。
神經網絡也包含在 AutoML 工具中。神經網絡可提供平滑的決策邊界和更高的性能,但代價在于實施復雜性的增加。圖 2 顯示了一個簡單的 2 層神經網絡模型圖及分類區域;該網絡采用與決策樹示例相同的數據訓練而成。網絡中的每個神經元都對其輸入進行加權求和,然后執行非線性激活函數。比較這兩個示例中的分類區域可以看到,神經網絡在處理訓練過程中未見的電源數據時預期表現更好。不過,隨著電源管理數據特征數量的增加,在 MCU 中實現復雜的神經網絡將變得不切實際。
其它常見的 ML 模型包括支持向量機(SVM)、核近似分類器、最近鄰分類器、樸素貝葉斯分類器、邏輯回歸和孤立森林。為獲得最佳電源性能,很多 AutoML 工具都具備一個十分有用的功能,即自動模型選擇和自動模型超參數調整(節點數、激活類型等)。還有一些在訓練和比較電源模型時所需的工具,可用于電源目標處理器類型以及準確性、延遲和內存的資源預算[1]。
圖 1,簡單的決策樹分類器
圖 2,簡單的神經網絡分類器
模型部署
AutoML 工具的另一個重要特性是為經過訓練的 ML 模型自動生成代碼。在大多數情況下,代碼生成可以針對特定的電源處理器,例如 Qorvo 智能電源管理 SoC 中使用的 Cortex M0 和 M4 電源處理器。這通常被稱為工具的“無代碼”或“低代碼”功能,因為它消除或最大限度地減少了手工編碼的需要。根據工具的不同,代碼可以提供為可編輯的源代碼,或以編譯后的二進制文件提供,以便集成到電源管理固件中。
ML 開發流程
成功的 ML 開發通常是一個迭代過程,涉及電源數據的收集和整理、模型的訓練與分析,以及電源模型部署和監控(圖 3);術語“MLOps(ML Operations)”用于描述此過程[2]。電源性能監控是 MLOps 的關鍵要素,可確保電源實際性能與預期相符。差異往往可追溯到訓練數據中未體現的現場條件,因此可能需要進行新一輪的電源數據收集與訓練。
圖 3 描述了智能電池管理系統(BMS)應用的 ML 開發流程。它利用了 Qorvo 的評估套件(如 PAC25140EVK1 [3]),其中包括用于狀態監控、硬件/軟件設置和傳感器數據記錄的圖形用戶界面(GUI)。.csv 格式的電源數據日志文件可導入 AutoML 工具,進行特征選擇、模型訓練、模型分析和代碼生成。將生成的模型代碼集成至 BMS 固件,并部署到 EVK中進行電源物理測試和監控。
圖 3,ML 開發流程
實施示例:BMS 弱電芯檢測
檢測多電芯電池組中的弱電芯是智能電源管理系統的功能之一。一種直接的方法是比較電源中所有電芯的負載電壓,并確定其中某個電源電芯是否與其它電源電芯存在明顯差異。圖 4 顯示了強電芯和弱電芯在不同溫度下的放電周期。從圖中可以看出,電流、環境溫度和充電狀態等特征都會影響電源電芯間的電壓差;因此在電源電芯幾乎耗盡之前很難通過單一的電源閾值測試來區分弱電芯。在放電周期的早期檢測出弱電芯有助于最大限度地減少過熱和相關安全問題。智能電源機器學習能夠在復雜的特征集中發現某種模式,為這一問題提供了潛在的電源解決方案。Qorvo 的智能智能電源解決方案可監控上述特征,并由嵌入式 MCU 中的 tinyML 算法對這些特征進行處理,從而提升電源性能。
圖 4,強電芯和弱電芯的放電周期示例
為了進一步探索這種方法,我們借助兩個 10s 電池組的 20 個電源放電周期創建了一組訓練數據。第一個電池組(0 類)包括 10 個強電芯,第二個電池組(1 類)包括 9 個強電芯和 1 個弱電芯。在 20 次電源放電周期中,每次放電時,兩個電池組的電源負載電流恒定在 0.2 至 4C(C 為電池容量)之間;環境溫度恒定在 0 至 60 攝氏度之間。
選擇以下四個特征來進行弱電芯檢測:
• i_series = 通過電池組中所有電源電芯的串聯電流
• t_amb = 環境溫度
• v_diff = 電池組中最強和最弱電芯間的電壓差
• soc = 電池組中最強電源電芯的充電狀態
對這四個特征進行同步采樣,以創建訓練實例 [i_series、t_amb、soc、v_diff]。兩類電芯的 20 個放電周期每 10 秒采樣一次,共產生 11,000 多個電源訓練實例。使用 Matlab 的“分類學習器”應用程序[4]將訓練數據創建為多個 ML 模型。訓練結束后,使用一組獨立的電源測試數據(每個類別增加 20 個放電周期)重新評估分類準確性;結果匯總如下表 1 所示。請注意,表中的結果是對單個電源樣本實例的分類。針對電池組的健康狀況,預計將合并多個電源樣本結果以形成更穩健的決策。
表 1,弱電芯檢測示例的模型訓練結果
總結
基于 MCU 的電源機器學習(稱為“tinyML”)作為一種新興技術,可為電源管理應用提供前景廣闊的增強功能;例如,用于提高安全性和可靠性的故障與異常檢測、可降低電源系統成本的系統參數虛擬感測,以及可提升電源系統效率與可靠性的新型預測性維護等應用。Qorvo 的智能電源管理 SoC 包括 ARM Cortex MCU 和一系列模擬傳感器,tinyML 算法可從中學習并改善電源性能。Qorvo 提供支持智能電源數據收集和固件測試的評估套件;這些電源套件與第三方 AutoML 工具相結合,為當今 SoC 的 ML 算法開發帶來了必要的元素。 |