AI時代系列(3) 機器學習三部曲: 📘 第三部:《強化學習 —— AI 的決策與進化》
88/100 第九週:📌 強化學習應用實戰
88.能源管理與電網決策 🌞 優化儲能與能源分配!
________________________________________
📍 單元導言
隨著可再生能源(如太陽能、風能)的發展,能源供給變得不穩定、不連續。如何即時調度儲能設備、控制用電尖離峰、維持電網穩定,已成為智慧電網與**能源管理系統(EMS)**的關鍵議題。
傳統最佳化方法(如線性規劃)在面對動態變化時效能有限,而強化學習(RL)正逐步成為未來智慧能源管理的核心技術之一。
________________________________________
⚡ 一、電網能源管理的挑戰
挑戰項目 說明
發電不穩定 太陽能/風能受天氣影響,變動性高
用電行為多變 智慧家電、EV 充電使用電時段與負載難以預測
儲能調度複雜 需動態決定「何時儲電、何時釋放」以最大化效益
系統延遲與約束 決策有延遲、容量限制、排程要求等實際因素
________________________________________
🔁 二、強化學習能解決什麼?
任務 RL 應用方式
儲能電池充放策略 訓練 AI 自主決定放電/充電時機
太陽能 + 儲能併網管理 根據預測需求與供應量學習分配策略
微電網(Microgrid)多點控制 多 Agent RL 協調不同節點
動態價格用電(Time-of-Use)優化 學會如何在電價低時儲電、高時供電
________________________________________
🧪 三、簡化模擬實作:單一電池儲能策略(Q-Learning)
🎯 問題定義:
• 目標:讓儲能設備在電價變動下,選擇最好的充放電行動,最大化報酬。
• 假設電池容量為 0~4 單位,每小時電價變動,AI 可選擇:充電、放電、維持不動。
________________________________________
🧾 Python 程式碼(簡化 Q-learning)
python
import random
actions = ['charge', 'discharge', 'hold']
battery_levels = list(range(5)) # 0~4 容量單位
prices = [1, 2, 3, 4, 5] # 每小時電價(模擬)
q_table = {(b, p): {a: 0 for a in actions} for b in battery_levels for p in prices}
alpha = 0.1
gamma = 0.9
epsilon = 0.1
# 獎勵函數
def get_reward(action, battery, price):
if action == 'charge' and battery < 4:
return -price # 充電 → 支出
elif action == 'discharge' and battery > 0:
return price # 放電 → 收入
else:
return 0 # 保持不動或無效動作
# 模擬充放電後電量變化
def next_battery(battery, action):
if action == 'charge' and battery < 4:
return battery + 1
elif action == 'discharge' and battery > 0:
return battery - 1
else:
return battery
# 訓練
for episode in range(3000):
battery = random.randint(0, 4)
for _ in range(20):
price = random.choice(prices)
state = (battery, price)
if random.random() < epsilon:
action = random.choice(actions)
else:
action = max(q_table[state], key=q_table[state].get)
reward = get_reward(action, battery, price)
next_bat = next_battery(battery, action)
next_price = random.choice(prices)
next_state = (next_bat, next_price)
next_max = max(q_table[next_state].values())
# Q-learning 更新
q_table[state][action] += alpha * (reward + gamma * next_max - q_table[state][action])
battery = next_bat
這段程式碼是一個簡單的 電池儲能 Q-learning 強化學習範例。它模擬一個智能電池系統學習在不同電價下
• 狀態 (State):電池當前電量(05)。
• 動作 (Action):可以選擇 charge (充電)、discharge (放電)、或 hold (保持)。
• 獎勵 (Reward):
o 充電會產生支出(-price)。
o 放電會產生收入(+price)。
o 其他狀況獎勵為 0。
• Q-learning學習:
o 每個迴圈模擬電價波動與隨機起始電量。
o 依據 ε-greedy 策略(90% 利用、10% 探索)選擇動作。
o 依據當前行為的結果與下一狀態的最大預期收益,更新 Q 值。
經過 3000 輪訓練後,q_table 會學習出在不同電價和電量下的最優行動策略,例如:電價高時放電,電價低時充電。
________________________________________
🧪 測試學習成果
python
battery = 2
for hour in range(10):
price = random.choice(prices)
state = (battery, price)
action = max(q_table[state], key=q_table[state].get)
print(f"第 {hour+1} 小時|電價:{price}|電量:{battery}|行動:{action}")
battery = next_battery(battery, action)
這段程式碼的目的是在訓練完成後,用學到的 Q-table 來模擬實際運作的策略執行。說明如下:
初始設定:
將電池起始電量設為 2(中間值)。
模擬 10 小時運作:
每個小時隨機出現一個電價(模擬電價波動)。
根據目前的狀態 (battery, price),查詢 q_table 中該狀態下最高的 Q 值所對應的最佳行動 (max(q_table[state], key=q_table[state].get)),完全按照學到的最佳策略執行,不再隨機探索。
印出當前小時的電價、電量與選擇的行動。
根據行動更新電池電量。
👉 這段就是驗證訓練成果的測試流程:讓電池依照學到的 Q-learning 策略面對動態電價,看它如何做出合理的充放電決策,嘗試達成「低價充電、高價放電」的獲利目標。
________________________________________
⚙️ 四、進階技術應用架構
類型 演算法建議
單儲能裝置控制 DQN、Q-learning
多點電網調度 Multi-Agent PPO、MADDPG
預測+控制 LSTM + Actor-Critic
安全調度 Safe RL、Constrained RL
________________________________________
📚 小測驗題
1️⃣ 強化學習在電力調度中主要解決什麼問題?
A. 電力感測器的設計
✅ B. 儲能/用電動作的即時調度決策
C. 發電站硬體的製造
D. 照明系統設計
解析:
強化學習在電力應用中,最核心的價值在於針對隨時變動的電價、負載需求、儲能狀態等,學習出最佳的即時調度行為(例如:何時充電、放電或削峰填谷)。感測器設計、硬體製造與照明屬於硬體工程範疇,與強化學習應用目的無直接關聯。
________________________________________
2️⃣ 若希望多節點同時進行學習與協調,適合哪一種方法?
A. 單 Agent Q-learning
✅ B. Multi-Agent Reinforcement Learning
C. Autoencoder
D. GAN
解析:
當有多個儲能設備、負載節點或分散式資源需要共同協作時,單一 Agent 已無法處理整體系統的互動複雜度。多智能體強化學習 (Multi-Agent Reinforcement Learning, MARL) 允許多個學習體彼此感知對方行為並協調策略,適合用於智慧電網、多儲能協作等場景。Autoencoder 與 GAN 主要用於資料特徵學習與生成,非強化學習決策方法。
________________________________________
🔎 反思與討論 1
在現實智慧電網中,電價可能不是完全可預測的,有時會突然劇烈波動。你認為在面對高度不確定的價格環境下,強化學習模型需要注意哪些挑戰?有哪些可能的改進方法?
👉 例如:引入風險敏感強化學習、情境模擬訓練、或即時價格預測模型的輔助。
________________________________________
🔎 反思與討論 2
如果電池充放電行為除了電價以外,還受到電池老化、充電效率衰退、電網限制等因素影響,你會如何設計更符合真實場景的強化學習環境模型?
👉 思考:
• 獎勵函數要不要加入「電池壽命成本」?
• 狀態空間是否要擴展成多維參數?
• 是否要考慮長期收益而非單次收益?
________________________________________
🔎 反思與討論 3
在多節點分散式儲能系統中,若各個節點自私地只追求自己利潤,可能會導致整體電網失衡甚至危機。你認為強化學習如何引導系統達成整體協調與公平性?要不要引入某些「社會性獎勵」設計?
👉 可思考例如:
• 增設「全網穩定度」或「總用戶福利」的全局獎勵機制
• 引入 Multi-Agent 協作學習 機制
• 平衡個體與整體的長期回報關係
_______________________________________
✨ 單元金句
「AI 電網不只是省電,更是在正確時間做對的能源決策。」
________________________________________
🔄 延伸挑戰任務
• 增加電池損耗成本與最大容量限制
• 加入太陽能供應預測變數,整合 DQN + LSTM 模型
• 使用真實時間電價數據進行訓練與回測(如台電 TOU 資料)