一个总述

  • 论文题目: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 需要几个周的测试。

2 related work

  • 线性二次(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 负载等)来决定使用哪个。

用线性二次模型建模大型数据中心,基于 MPC 进行冷却控制的更多相关文章

  1. TWaver 3D应用于大型数据中心(续)

    在2014年11月份,我们当时发了一篇有关TWaver HTML5 3D应用于大型数据中心的文章,该blog比较详细的描述一些常用的功能的实现方法,比如:动态添加机柜,告警,温度,湿度等相关的功能的具 ...

  2. VXLAN大数据中心组网

    目录: 一.什么是vxlan 二.为什么要用vxlan,解决了什么痛点 三.vxlan与vlan之间有什么不同 四.如何建立vxlan隧道 五.vxlan的网关有哪些种类 六.vxlan在报文中如何转 ...

  3. [转载] Google数据中心网络技术漫谈

    原文: http://www.sdnlab.com/12700.html?from=timeline&isappinstalled=0#10006-weixin-1-52626-6b3bffd ...

  4. PGM学习之二 PGM模型的分类与简介

    废话:和上一次的文章确实隔了太久,希望趁暑期打酱油的时间,将之前学习的东西深入理解一下,同时尝试用Python写相关的机器学习代码. 一 PGM模型的分类 通过上一篇文章的介绍,相信大家对PGM的定义 ...

  5. SSAS Tabular 表格模型建模(关系)及部署

    一.表格建模(SSAS 表格)   表格模型是 Analysis Services 中的内存中数据库. 使用最先进的压缩算法和多线程查询处理器,xVelocity 内存中分析引擎 (VertiPaq) ...

  6. matlab 实现感知机线性二分类算法(Perceptron)

    感知机是简单的线性分类模型 ,是二分类模型.其间用到随机梯度下降方法进行权值更新.参考他人代码,用matlab实现总结下. 权值求解过程通过Perceptron.m函数完成 function W = ...

  7. Python数学建模-02.数据导入

    数据导入是所有数模编程的第一步,比你想象的更重要. 先要学会一种未必最佳,但是通用.安全.简单.好学的方法. 『Python 数学建模 @ Youcans』带你从数模小白成为国赛达人. 1. 数据导入 ...

  8. Factorization Machines 学习笔记(二)模型方程

      近期学习了一种叫做 Factorization Machines(简称 FM)的算法,它可对随意的实值向量进行预測.其主要长处包含: 1) 可用于高度稀疏数据场景:2) 具有线性的计算复杂度.本文 ...

  9. 10分钟明白对偶建模法 / +Leampms的“主模型建模”和“对偶模型建模” 之 —— 三类最短路径问题

    摘要 对偶模型建模是非常有独特的一种建模方式 —— 当问题本身要求指标极小的情况下,对偶模型表现为求极大.本文给出三种最短路径问题的线性规划/混合整数规划模型,其中的第三类最短路径问题采用对偶建模方法 ...

  10. Thinkphp5.0 的使用模型Model删除数据

    Thinkphp5.0 的使用模型Model删除数据 一.使用destory()删除数据 //删除id为3的记录 $res = User::destroy(3); //返回影响的行数 dump($re ...

随机推荐

  1. Mongodb安装篇+可视化工具篇

    下载MongoDB 官网下载地址:Download MongoDB Community Server | MongoDB   Version 选择:稳定版4.4.2 Mongo的版本分为稳定版和开发版 ...

  2. 浅析 ArrayList

    by emanjusaka from https://www.emanjusaka.top/2023/12/java-arrayList 彼岸花开可奈何 本文欢迎分享与聚合,全文转载请留下原文地址. ...

  3. Linux:LVM磁盘扩容实战

    1.列出分区表 命令:fdisk -l 查看到目前挂载了 vda1.vda2.vda3,并且查看到还有vdb 100G没有挂载,以及现在的LV大小仅为29G root@JumpServer-DB-T0 ...

  4. Pikachu漏洞靶场 Sql Inject(SQL注入)

    SQLi 哦,SQL注入漏洞,可怕的漏洞. 文章目录 SQLi 数字型注入(post) 字符型注入(get) 搜索型注入 xx型注入 "insert/update"注入 inser ...

  5. 人大金仓驱动包kingbasejdbc8.6.0.jar V8驱动jar包

    人大金仓驱动包kingbasejdbc8.6.0.jar V8驱动jar包 工作上要将kingbaseV8数据库整合到项目,我在官网找了半天,连个jdbc驱动包下载入口都找不到,简直就是官方文档毫无诚 ...

  6. ASCII编码:计算机文本通信的基石

    ASCII(美国信息交换标准代码)编码是一种将字符与数字相互映射的编码系统,它为现代计算机文本通信奠定了基础.本文将从多个方面介绍ASCII编码的原理.发展历程.应用及其在现实场景中的优势,帮助您深入 ...

  7. 20、Scaffold属性 BottomNavigationBar 自定义底部导航

    BottomNavigationBar 是底部导航条,可以让我们定义底部Tab切换,bottomNavigationBar是 Scaffold组件的参数. BottomNavigationBar 常见 ...

  8. gitee图床不能用了,心态崩了

    起因 大概上周五晚上吧,想着可以正常下班了.也没啥事,正好可以逛逛自己的小破站,看看有没有小伙伴留言什么的. 然后发现小破站图片显示不出来了... 一开始也没在意,想着可能是Gitee又挂了,可能一会 ...

  9. 数据安全无小事:揭秘华为云GaussDB(openGauss)全密态数据库

    摘要:全密态数据库,专门处理密文数据的数据库系统,数据以加密形态存储在数据库服务器中,数据库支持对密文数据的检索与计算. 1.云数据库安全现状及问题 伴随着云基础设施的快速增长和成熟,与之对应的云数据 ...

  10. 讲真,你知道Python咋来的吗?

    摘要:什么是Python?它怎么诞生的?它跟C语言.shell语言有什么区别?语言环境是怎么样的?这些你都知道吗? Python诞生在一个圣诞节 Python诞生于1989年的一个圣诞节,其创作者Gu ...