用线性二次模型建模大型数据中心,基于 MPC 进行冷却控制

一个总述

  • 论文题目:Data center cooling using model-predictive control
    • 这是 nips 2018 年的会议论文,reviewspdf
    • 这篇阅读笔记仍然比较草率,无法替代论文原文的阅读。
  • 主要工作:用线性二次系统 + MPC 进行大规模 DC 控制。
  • 关键点:利用 DC 结构对称性。图 2 还是很有启发的。
  • 局限性:1. 线性二次形式的建模,2. cost function 不一定完全代表功耗。
  • 加了一堆 tricks,比如 在什么情况下才会更新系统参数。
  • 设定点(冷通道气温)和 最后评测方法(仅取真实 state 在 setpoint 一个邻域的数据),也有点迷惑。

reviews

1

对于大规模数据中心的温度和气流调节问题,使用 RL 的 data-driven、model-based 方法,相比于现有手工 PID 提高了运行效率。

作者进行了开环的线性系统识别,他们的方法不依赖于历史或基于物理的模型。事实上,他们表明,使用历史数据甚至可能对控制性能有害,因为根据观察数据学习的模型 可能无法捕捉到系统中关键的潜在依赖关系(因为在数据中心,由于 PID 控制器的稳定状态,状态值不太可能有太大的变化,观察到的数据不够丰富,无法进行系统识别)。

作者使用 MPC 来学习数据中心动态的线性模型(Linear-Quadratic),使用安全的随机探索,从很少或没有先验知识开始。然后,他们通过优化 model-predicted trajectories 的成本,确定每个时间步的控制行动,确保在每个时间步重新优化。

本质上的贡献不是算法,而是在一个真实世界的大规模动态系统上,使用开环方法进行线性系统识别 + 使用 MPC 进行控制的一个示例。

2

描述了一个非常有趣的、将 RL 应用于大规模 DC 的温度气流调节的任务。在几乎没有先验知识的情况下,RL 能够经过几个小时的探索,实现有效和安全的调节。即使在探索过程中,该方法也始终是安全的。

这比 DeepMind 最近的工作有优势,因为 DeepMind 使用 ML 来操纵冷却塔出水温度、冷冻水注入温度的设定点,而本文使用了 MPC,它使用随机探索(但总是安全的)来学习 DC dynamics 的线性模型,不需要基于物理的模型甚至任何历史数据。然后,控制器通过优化 model-predicted trajectories 的成本,产生每一步的 action。

3

本文将 MPC 应用于 DC 冷却,即,通过控制鼓风机速度和水冷空调的水流,来调节机房 / 地板的空气温度和空气流量。假设 MPC 的动态模型是一个线性自回归模型,通过随机探索控制来学习模型参数。通过实地部署来评估方法的性能,并与传统 PID 控制进行讨论和比较。

问题:

  • 在图 2 中,能否为本地模型之间共享参数的模型结构添加一些解释 / 说明?(这个我也想看)
  • 在探索阶段(4.2 节),出于安全考虑,你是否只限制了控制步骤的大小?你是否也在监测关键点的温度?

0 abstract

  • 尽管 RL 好用,但由于意外事件、受限制的数据、发生昂贵故障的潜在可能性,在现实世界的物理系统中部署 RL 往往很复杂。
  • 在本文中,我们描述了调节大规模 DC 温度和气流的任务中 “野外”(in the wild)应用 RL 的情况。
  • 通过数据驱动 基于模型的方法,一个没什么先验知识的 RL agent 能够在短短几小时的探索后,达成高效安全的策略,优于 PID 控制器。

1 intro

  • DeepMind 在 2014 年做了一个 ML 的 DC 冷却工作 [13],用 ML 建模 Google DC,setpoint 是冷却塔出水温度 + 冷冻水注入温度。
  • 技术路线:1 通过安全的随机探索,学习 world-model,2 通过 MPC 每部重新规划,给出控制策略。
  • 我们的基于粗粒度 linear dynamics 的 MPC 只需学几个小时,但配置一个新的(比如说)PID 需要几个周的测试。
  • 线性二次(linear quadratic LQ)控制:假设系统线性,cost 二次形式。
    • 已知 dynamics:可以用 dp 给出最优策略(事实上我记得 LQ 控制有闭式解)。
    • 未知 dynamics:开环策略(open-loop strategies)有专门的探索阶段,用来学系统模型;闭环策略(closed-loop strategies)一上来就控制,边控制边学模型。
  • 中间两段:分别介绍了 open-loop closed-loop strategies。
  • 在 state 或 control 存在约束的情况下,直接对 control 进行优化更简单,比如 MPC。

3 DC cooling(问题定义)

  • 介绍了 DC cooling 的大致设置(见图 1),以及问题定义(state action 随机因素)。
  • 优化目标:在接近温度和压力上限的情况下,以最小的 AHU 功率和用水量运行。
    • 空调 ACU(air cooling unit)被叫做 AHU(air handling unit)。
  • action:AHU 的风扇速度(控制空气流量)和阀门开度(调节用水量)。
  • state:
    • 空气压差(DP),冷通道温度(CAT),沿机架部署传感器进行测量。为减少冗余并提高对传感器故障的稳健性,我们对局部的一组 CAT 和 DP 传感器的中位数进行建模和调节。
    • 每个 AHU 的热空气进入温度(EAT)(回风温度),冷却空气的离开温度(LAT)(送风温度)。
  • cost(负 reward):
    • \(Σ_{s} q_s(x^s_i[τ]−x^s_{sp})^2 + Σ_{c} r_c(u^c_i[τ] − u^c_{min})\)
    • 第一项:实际 state 和 setpoint 之差²;第二项:control 和其最小值之差²,因为 control 是风扇速度和用水量,越小越节能。
  • 随机因素(文中称为 Disturbances):server 用电量(产热大头),每个 AHU 的冷冻水进水温度(EWT)。

4 MPC(method)

  • 建立每个 AHU 对大邻域(多达 5 个服务器行)状态变量的影响模型,而不仅仅建模 AHU 对邻近传感器的影响;
  • 直接控制 CAT(冷通道温度),而不是通过 LAT(空调送风温度)进行间接控制;
  • 联合优化所有控制,而不是对每个 rack 使用独立的本地控制器。

4.1 Model structure

  • 建模为 T-Markov。设 state x、control u、disturbance d,则有 x[t] = Σ_{k=1..T} (Ak x[t-k] + Bk u[t-k] )+ Cd[t-1]。
    • 每个时间步为 30s,根据交叉验证设定 T=5。
  • 参数矩阵的稀疏性:
    • 利用 DC 的结构性特征(一个 rack 只能影响周围几个 rack,影响不了太远的),参数矩阵有类似 块对角阵 的稀疏性。例如,每个位置的温度和 DP(空气压差)只直接依赖于附近位置的 state control disturbance。
    • 根据变量类型,可以再稀疏一点。例如,DP(空气压差)直接取决于风扇速度,在一个狭窄的温度范围内(大致)与温度无关。
    • 也就是说,某些 state 变量可以直接用 local model 来建模。表 1 列出了用于预测这些 state 变量的特征。
  • 各个 state 分量建模的参数共享:
    • 利用 DC 的布局特征(结构相同 和 对称性),我们在 local model 之间共享参数以提高采样效率。因此,模型拥有一个整体的线性卷积(?)结构。
    • 见图 2,相同颜色箭头就是共享模型。

4.2 System identification

  • 主要内容:安全的随机探索,用于学习系统模型。
  • 参数初始化:A 对角矩阵 B C 零矩阵,状态转移完全没有变化。
  • 探索策略:在安全范围内进行随机游走,取到每个值的概率均等。
  • 安全性保证:安全范围由历史数据得到。如果没有历史数据的,可以先保守地初始化安全范围,再逐渐扩大。(一个随机探索 trajectory 的示例见图 3)
  • 参数学习:
    • 探索阶段:用递归的最小二乘法更新参数。
    • 控制阶段:选择性更新参数,避免用稳态数据淹没模型。用训练数据中变量 s 的均方根误差,作为模型预测结果的噪声标准差 σs 估计值,只有在模型(当前)预测误差超过 2σs 时,才用一个例子更新模型。

4.3 Control

  • 优化目标:L 步轨迹的总 cost 最小。
  • 这是一个有 2ML ≈ 1.2k 个决策变量的二次优化问题,M 是 AHU 数量,L 是 lookahead 步数。
  • 用 TensorFlow 来解,优化器是 Adam。
  • 用一个 min max 套 tanh,将 control 的约束转换成无约束问题(公式 7)。

5 实验

5.1 先比较一下 system dynamics 建模的效果

  • 模型们:
    • 1:我们的模型,3h 探索数据。
    • 2:在 local PID(就是每 AHU 配备一个 然后各 AHU 单独决策的)生成的一周历史数据上训练。
    • 3:在 3h 探索数据上训练,数据由 certainty-equivalent controller 生成。(没太明白,可能是边学模型 边生成控制,每次都取自己认为最好的 control?)
  • setpoints 好像是 CAT(冷通道温度)和 DP(空气压差)的中位数。
    • 这里技术细节没太明白。
  • 为将 disturbance 对控制性能的影响剥离,我们对实验数据根据 state(CAT DP)和 disturbance(AHU 的冷冻水进水温度、服务器负载)进行分层。并且,假设传感器仅受最近 AHU 的影响,把每个 AHU 以及相关性能单拎出来看。
    • 这里技术细节没太明白。
  • 结果见表 2,model 1 是最好的。

5.2 跟 local PID 比较性能

  • PID 与我们的区别:将 LAT(AHU 送风温度)控制为 EWT(AHU 冷冻水进水温度) + 一个偏移,而非直接控制 CAT(冷通道温度)。
  • 评测方法跟 5.1 相同。能省 9% 冷却能耗。

6 discussion

  • NN 可能需要大量训练数据。一个可能的办法是,训好几个 LQ 模型,然后根据 disturbance 情况(rack 负载等)来决定使用哪个。
posted @ 2023-03-06 17:44  MoonOut  阅读(219)  评论(0编辑  收藏  举报