藉由這篇文章,我(編按:在此指作者AlexMiller11)將分享如何運用TinyML防止電網過載。
在這項專案中,我們會用到以下的硬體、軟體及服務:
1.Particle Argon開發板 x 1
2.Neuton Tiny ML
3.Particle Build Web IDE
第一步:為什麼想運用TinyML,防止電網過載?
電力是現代社會經濟發展的核心。愈來愈多國家致力於轉換成永續能源系統,但這是一個相當具挑戰性的過程,因它會導致發電不穩定及電網過載。電網不穩定會危及人們的生命財產安全,這意味著電力系統應進行即時監控與最佳化,而人工智慧與機器學習可輕鬆處理這方面的需求。
事實上,人工智慧已成為電力產業的重要工具,它為動態變化環境下的能源消耗分析及電網監控,提供特有的自我學習解決方案。在這項專案中,我們將探索如何運用機器學習模型有效監控電網。
第二步:再生能源的來源與智慧經濟
針對傳統、有限且對氣候不友善的化石燃料,再生能源的崛起為國際社會提供了急需的能源替代品。然而,採用再生能源引發了一系列新的典範,其中兩項值得特別關注:
● 在再生能源興起前,傳統生態系統很少涉及透過單向流動,向消費者提供能源的生產實體(來源)。隨著再生能源出現,最終用戶(家庭與企業)現在不僅消耗能源,並且有能力生產及供應能源。此外,為建立可靠的生態系統,人們需要確保能源網更加智慧化,並能準確檢測威脅和故障。
● 儘管再生能源的靈活性有所提高,但在更複雜的發電/配電/消費環境中的供需管理,以及相關的經濟影響(例如,決定是否以給定價格購買能源)變得更具挑戰性。
第三步:對電網穩定性的需求
智慧電網會收集消費者需求資訊,並根據當前供應狀況進行集中評估。由此產生的建議價格資訊將發送回客戶,以便他們作出進一步使用的決定。由於整個過程取決於時間,因此,電網穩定性的動態估計,不僅成為一項關切點,更成為主要要求。
簡而言之,這項專案的目標,在針對被系統參與者,以動態方式採用的能源生產和/或消耗的干擾及波動,進行了解並規劃。不僅考慮技術層面,更考慮系統參與者如何應對相關經濟方面的變遷(能源成本)。
第四步:將AI應用到智慧電網的挑戰
● 數據積累不足:沒有足夠的數據樣本,以滿足多樣化的 AI 技術應用需求,並且樣本採集過程十分耗時。
● 可靠性:應用於電力系統的人工智慧技術,雖然表現出較高的問題辨識水準,但並不總能滿足實際應用需求。
● 基礎建設:運用人工智慧必須基於豐富的數據樣本、先進的運算能力及分佈式通信協作。然而,快速生產型的人工智慧演算法、分佈式協作平台等相關基礎建設資源的支撐能力及水平,仍有待改善。
● 缺乏電力產業的專用演算法:與感知、預測、安全維護相較,在電力系統中的人工智慧演算法,其適應性仍然偏弱。
第五步:解決方案
在這項專案中,我們將運用一個免費平台「Neuton Tiny ML」,以及一項整合的 IoT 平台即服務「 Particle IoT 」,來探索如何預測電網的穩定性。此外,針對智慧電網的運作,我們將探索相關的通訊基礎建設;同時,我們將運用人工智慧與物聯網的知識,嘗試解決上述某些挑戰。
第六步:資料集
原始資料集包含10, 000個觀測值,也包含12項主要預測特徵及兩個應變數。
預測特徵:
● 「tau1」到「tau4」:每位網絡參與者的反應時間,5 至 10 範圍內的真實值(「tau1」對應供應商節點,「tau2」至「tau4」則對應消費者節點);
● 「p1」到「p4」:每位網絡參與者產生(正)或消耗(負)的標稱輸出功率,對消費者來說,實際值在 -2.0 至 -0.5 範圍內(「p2」到「p4」)。由於消耗的總功率等於產生的總功率,p1(供應商節點)= —(p2 + p3 + p4)。
● 「g1」到「g4」:每個網絡參與者的價格彈性係數,05 到 1.00 範圍內的實際值(「g1」對應供應商節點,「g2」到「g4」對應消費者節點;「g」 代表「gamma」);
應變數:
● stab:特徵微分方程根的最大實部(若為正值,代表系統線性不穩定;若為負值,則代表系統線性穩定);
● stabf:分類(二元)標籤(「穩定」或「不穩定」)。
由於「stab」和「stabf」之間存在直接關係,因此「stab」將被刪除,「stabf」將被保留為唯一的應變數。若想下載資料集,請點擊。這裡
第七步:匯入資料集並選擇目標變數
在 Neuton 平台上,我們將上傳資料集,並選擇「stabf」作為目標變數。
在訓練參數中,設定輸入資料類型為「 FLOAT32 」,以及標準化類型「每個特徵的唯一尺度」,然後進行模型訓練。
第八步:訓練與探索式資料分析
一旦訓練展開後,我們會看到模型資料分析,這有助於我們理解原始應變數與自變數間的密切關係。
第九步:關聯
驗證每項數值特徵與應變數間的相關性,以及導致潛在不良共線性的數值特徵間的相關性非常重要。下方的熱圖,概述了應變數(「 stabf 」或「 target 」),與目標二元相關性最高的前10項數值特徵間的關聯。
第十步:模型準確率
在訓練結束後,我們可以來看模型的指標:模型準確率為 0.921435 。
第十一步:分類性能
我們還可使用生成的混淆矩陣,來查看分類性能。
第十二步:下載訓練好的模型
現在,讓我們把訓練完成的模型下載,好進一步佈署到我們的 IoT 裝置上。
第十三步:設定硬體,然後將模型嵌入
針對這項專案,我們選擇了 Particle Argon 開發板(您也可以使用任何Particle 推出的開發板,並且不用為每塊開發板重新編寫程式)。 Particle Argon 是一款功能強大的 Wi-Fi 開發套件,您可以在 Wi-Fi 網絡上使用。
Argon 配備 Nordic nRF52840 與 Espressif ESP32 處理器,具備內建的電池充電電路,讓您可更輕鬆連接「鋰聚合物電池」和「 20 個混合信號的通用型輸入輸出(GPIO)」,好與感測器、執行器及其它電子設備接連。
Particle 物聯網開發板,不僅安全且裝備齊全,使智慧型電網基礎設施,能以更快及更便宜的費率,提供有關電網故障的資料及更新。
第十四步:將 Particle IDE 與工作台設定好
將下載的 Neuton 模型添加到 Particle Workbench 專案資料夾中。 您的資料夾結構將如後所示:( checksum 、 parser 、 protocol 、 application 和 StatFunctions )。當您使用「 CSV 上傳工具」,針對透過序列通訊所接收的資料進行預測時,會需要這些檔案。
以下則是最重要的函數:
static float* on_dataset_sample(float* inputs)
{
if (neuton_model_set_inputs(inputs) == 0)
{
uint16_t index;
float* outputs;
uint64_t start = micros();
if (neuton_model_run_inference(&index, &outputs) == 0)
{
uint64_t stop = micros();
uint64_t inference_time = stop - start;
if (inference_time > max_time)
max_time = inference_time;
if (inference_time < min_time)
min_time = inference_time;
static uint64_t nInferences = 0;
if (nInferences++ == 0)
{
avg_time = inference_time;
}
else
{
avg_time = (avg_time * nInferences + inference_time) / (nInferences + 1);
}
RGB.control(true);
RGB.color(255, 255, 255); // white
switch (index)
{
case 0:
Particle.publish("Prediction: Stable Grid", String(index));
RGB.color(0, 255, 0);
break;
case 1:
Particle.publish("Prediction: Unstable Grid", String(index));
RGB.color(255, 0, 0);
break;
default:
break;
}
return outputs;
}
}
return NULL;
}
在雲端或本地端編譯應用程式。一旦編譯完成後,您就可以將其閃存到您的裝置上了。但請確保您已為您的裝置,選擇正確的 Particle OS 。
第十五步:CSV資料上傳工具程式
我們將透過USB序列埠,傳送測試數據集CSV檔案中的測試數據特徵,好測試我們的預測。
● 安裝dependencies
# For Ubuntu
$ sudo apt install libuv1-dev gengetopt
# For macOS
$ brew install libuv gengetopt[/cc]
● 運用Clone指令,複製repo
$ git clone https://github.com/Neuton-tinyML/dataset-uploader.git
$ cd dataset-uploader
● 使用make建構二進制文件
● 完成後,您便可透過USB傳送CSV檔案。
$./uploader -s /dev/ttyACM0 -b 230400 -d /home/vil/Desktop/electric_grid_test.csv
第十六步:預測
預測結果顯示在 Particle 的物聯網雲上。請參考下圖。
第十七步:結語
監測電網的穩定性,有助於發現「不可靠」的能源來源,並且避免電網嚴重損壞。而針對這類型的人工智慧搭配物聯網專案,最佳策略不僅僅是作出預測,同時也應收集並回報資料,好為了將來會推出的裝置,例如Particle,改善模型,並使OTA(Over-The-Air)更新更加容易。
(感謝原文作者AlexMiller11開放授權,使我們得以翻譯本篇文章,特此致上謝意!若讀者想進一步閱讀原文,請點擊:閱讀原文網址。)
註一:配圖都翻攝自AUTODESK Instructables網站,感謝作者AlexMiller11開放授權,特此致謝!
註二:主圖由DALL.E生成。
(本文由VMAKER授權轉載;連結原文網址)