搜索
高级检索
高级搜索
书       名 :
著       者 :
出  版  社 :
I  S  B  N:
出版时间 :
无库存
企业级编程与控制理论
0.00     定价 ¥ 69.80
泸西县图书馆
此书还可采购1本,持证读者免费借回家
  • ISBN:
    9787302526582
  • 作      者:
    [美]菲利普·K.雅内特
  • 出 版 社 :
    清华大学出版社
  • 出版日期:
    2019-04-01
收藏
编辑推荐

《企业级编程与控制理论》的主题是关于反馈控制技术的,但是没有多少编程人员(包括其他有关人员)了解这方面的知识。这是很遗憾的,因为反馈控制技术的产生是为了解决软件工程师们很熟悉的问题,特别是与企业系统打交道的工程师们需要了解。反馈控制是一种技术,旨在确保大型复杂系统能够稳定地运行,甚至在有外部干扰的情况下也不会受到影响,确保有效地使用有限的资源。

如果你正在寻找这样一种系统:当数据中心的数据流量出现大的跳跃时,需要增加服务器的数量,而在这个突发事件过去之后需要减少服务器的数量,那么《企业级编程与控制理论》将为你提供很好的解决方案。


展开
作者简介

作者简介

菲利普·K. 雅内特(Philipp K.Janert)在德国出生长大。 他在1997年获得了华盛顿大学理论物理专业的博士学位,之后就一直从事技术行业方面的工作,其中包括在马逊公司工作了4年,在那里他发起并领导了几个项目,改善马逊的订单执行流程。 他写过两本有关数据分析的书籍,包括2010年在O’Reilly出版发行的畅销书《数据之魅:基于开源工具》(Data Analysis with Open Source Tools)。 他为CPAN做出了贡献,也是gnuplot项目的贡献者。


译者简介

方敏

方敏先生曾经在美国微软公司工作25年,退休前为资深软件架构师。他对许多微软产品和服务的技术开发和测试做出了重要贡献,包括Bing搜索、Cortana、中国创新项目、Windows、Windows 服务器、Exchange 服务器、SQL服务器、COM+服务、MSN和IT等。他具有20年的工程技术团队和项目的管理经验,熟悉软件敏捷开发和经典的软件管理,注重发挥团队的优势和创新,不断地追求用户满意程度,提高产品质量和效率。方敏先生是早期微软美国华人协会的创始人之一,该协会已有几千名会员。他长期热衷于华人协会的活动和帮助员工成长,是美国西雅图地区著名的职场发展专家。

赴美之前,他在中国航天部部直计算中心从事过微机开发工作。在北京清华大学获得电子工程学士和硕士学位,在美国新墨西哥州矿业技术学院获得计算机硕士学位。

方敏先生与清华大学出版社合作多年,他组织微软员工利用业余时间将多本英文软件技术书籍翻译成中文出版,包括《敏捷文化》《Windows 程序设计》《HTML5从入门到精通》《探索性软件测试》《Gamestorming》和《软件需求与可视化模型》等。方敏先生希望继续把国外有突出价值的科技管理书籍介绍给中国读者。


朱嵘

朱嵘女士曾经在美国的英国航空电子系统公司(British Airspace Electronics Systems)担任飞行实时控制计算机的质量工程师,负责空客A320、空客A340、波音737和波音747等机型的关键质量分析和故障维修。出国前在中国航天部二院担任工程师,负责红七地对空导弹的通信系统的研制和开发。朱嵘女士在哈尔滨工业大学获得了无线电工程系信息工程专业的学士学位。曾经与方敏先生合作为清华大学出版社翻译出版了《软件需求与可视化模型》一书。

展开
内容介绍

《企业级编程与控制理论》包含四个部分和一个附录。第Ⅰ部分“基础篇”讲述了为什么需要反馈控制,反馈系统和企业级编程的关系,系统的动态特性,控制器,识别输入输出信号灯。第Ⅱ部分“实践篇”回顾了理论,介绍了测量传递韩澍,PID控制调整,实现以及通用的反馈架构。第Ⅲ部分“案例研究篇”包含控制系统模拟、高速缓存命中率、广告推送、扩展服务器、队列控制、冷却风扇速度、控制游戏引擎的内存消耗等内容。第Ⅳ部分再次回到理论,帮助读者建立实践与理论的联系,掌握控制理论在企业级编程中的实际应用。

《企业级编程与控制理论》适合具有一定编程基础并关注性能提升的读者阅读。

展开
精彩书摘

  第2章  反馈系统
  在前一章中使用的方法是基于反馈原理,它的基本概念可以简单地描述如下:
  反馈原理:持续地将实际输出和它的期望参照值进行比较,然后对系统输入进行调整,以减少实际输出和参照值之间的偏差。
  换句话说,如果输出值高于参照值,就对输入进行矫正以引导输出降低;如果输出值低于参照值,就对输入进行矫正以提高输出值。
  反馈概念的基本思路是“把系统输出引导回来”,用它来计算输入值,这就产生了通用的反馈或闭环式结构(图2-1)。和它相对应的是前馈或者开环式结构(图2-2),开环结构不考虑系统的输出。
  图2-1 反馈环路的结构:系统的输出被返回与参照值做比较,以便计算出系统新的输入
  图2-2 开环式(或前馈式)布局的结构:系统输入直接从参照值计算得到而不考虑系统输出
  反馈是在前一个输出的基础上计算下一个输入值,这表明反馈是一种叠加的解决方案。每一个控制行动仅仅是为了使系统更加接近期望值,使它向正确的方向更迈近一步。我们不去完全消除参照值和输出值之间的差距,而是重复执行少量减少偏差的步骤,逐渐缩小偏差。
  在讨论任何迭代方案时,自然会提出三个问题。
  迭代会收敛吗?(或者 迭代会发散吗?)
  它能多快收敛?(如果它一定会收敛)
  它会收敛到什么值?(它会收敛到所期望的解决方案还是不同的结果?)
  系统和信号
  在这本书里,我们将考虑服务于各种目标的不同系统。这些系统所具有的共同特点是,所有系统都依赖于结构或者调节参数,以影响系统的行为。要想得到行为的信息,我们需要跟踪和观察不同的监视指标。在大多数情况下,希望系统能够满足或者超过事先定义的服务质量指标。因而,控制问题就是调节一组设置参数,以便被监视的指标落在服务质量范围之内。
  只要考虑控制问题,配置参数就是我们可以直接影响和操纵的变量,有的时候这些变量被称为操作变量或者简单称为(控制)输入。被监视的指标是我们想要影响的变量,有时称为“过程变量”或者“控制输出”,把输入和输出放在一起就构成了控制信号。
  术语“输入”和“输出”分别对应于被操作和被跟踪的数量,它们非常简便,我们将会经常使用。但是请记住,这些术语的目的只是与控制问题有关,和系统的功能“输入”和“输出”没有任何关系。如果一旦发现定义不清楚,请在“输入”和“输出”的位置上分别使用“可配置参数”和“跟踪指标”。
  大部分情况下,我们只考虑一个控制输入和一个控制输出的系统,所以只有一个单独的可设置的参数,它可以用来影响单一的跟踪指标。虽然这看上去好像是极端的情况,但是它包括了很多种类的系统。(处理具有多个输入或输出的系统在原理上讲也是可能的,但是它会带来严重的实际问题。)
  我们从企业编程和软件工程资料里,选出一些系统和它们的输入及输出,列举如下。
  高速缓存
  跟踪的指标是命中率,可设置的参数是缓存量(缓存器能存储条目的最大数量)。
  服务器群
  跟踪的指标是反应滞后时间,可设置的参数是在线服务器的数量。
  队列系统
  跟踪的指标是等待时间,可设置的参数是服务于排队的工作(worker)的数量。
  图形库
  跟踪的指标是占用的全部存储量,可设置的数量是分辨率。
  其他的例子如下。
  房间或容器的加热
  跟踪的指标是屋子的温度或者容器的温度,可设置的量是提供的热量(对于炉子上的锅,可调节量是旋转盘上的刻度)。
  CPU冷却器
  跟踪的指标是CPU温度,可调节的量是加在风扇上的电压。
  汽车的巡航控制
  跟踪的指标是汽车的速度,可调节的量是加速器的设置。
  销售情况
  跟踪的指标是销售掉的条目数量,可调节的量是每件东西的价格。
  跟踪误差和矫正行动
  反馈原理要求过程输出不断地和参照值(通常称为“设定值”)进行比较,实际过程输出和设定值之间的偏差就是跟踪误差:
  跟踪误差 = 设定值 - 输出值
  图2-1控制器的工作原理就是基于跟踪误差来计算矫正行动。如果跟踪误差是正值(意味着过程输出过低),那么控制器必须产生新的控制输入来提高过程的输出,反之亦然。
  请注意,控制器在没有系统及系统行为的具体信息时,就可以做反馈控制,控制器主要需要了解过程的方向性:为了提高输出值,是需要增加或是减少输入值吗?两种情况都会出现:提高加热设备的动力将会导致温度的增加,但是增加冷柜的电能将导致温度的降低!
  一旦控制行动的方向决定后,控制器必须选择矫正的幅度。我们将在下一节讨论更多这方面的情况。
  稳定性、性能和准确性
  反馈循环的引入可能会使原来稳定的系统变得不稳定。问题通常是由不断的过度补偿造成的,矫正行动所产生的结果变得太大了。现在考虑高速缓存的情况(前面列出的例子),假设命中率最初低于期望值,要增加命中率,我们需要扩大缓存量。但是多大合适呢?如果我们将缓存量增加得太大,那么命中率最后将会比期望值高,因此在下一个时间步骤,缓存量将会减少,以此类推。系统会产生控制波动,在不同的设置环境下会迅速和疯狂地切换(图2-3)。
  我们不期望看到控制波动,想象一下如果你的汽车巡航控制出现了这种情况!但是事情会变得更糟糕:如果每个过度矫正或矫正不足将导致更大的补偿行动,波动的幅度就会随时间而增加,使得已经不稳定的系统会变得更加不稳定了,没过多久就会出现严重问题(或者崩溃)。在控制循环中要不惜一切代价避免这种不稳定的现象出现。
  与此相反的问题是太慢或者太懒惰的行为。如果我们过分小心,采取过小的控制行动,该系统对于干扰会反应迟钝,跟踪误差将持续很长一段时间(图2-3)。虽然缓慢行动没有系统不稳定那样危险,但是这样的缓慢反应也是不能令人满意的。要取得最快的反应效果,我们需要采取最大的控制行动,同时不会使系统变得不稳定。
  设计精良的控制系统应该展现出好的性能,这就意味着它能够迅速对变化做出反应,使得被跟踪的指标与参照指标之间的偏差不会延续下去。典型的控制系统反应时间描述了系统能够多快对变化产生反应,它同时定义了系统所能控制的最快可能干扰的上限。
  在稳定的状态下,控制系统的质量是用准确性来衡量的,用准确性来跟踪给定的参照值。反馈控制系统的行为通常是用稳定性、性能和准确性来评估的。
  我们现在可以重述关于迭代系统收敛的三个问题,用控制理论术语描述如下。
  图2-3?展示了找到高速缓存的最佳容量,以取得所需的命中率。上图显示了对于不同的增益,初始误差会导致不同的迭代;下图显示了对应不同控制增益的命中率的演变。太大的矫正会导致振荡行为,太小的矫正导致不佳的结果
  稳定性
  该系统稳定吗?它能够处理变化而不会产生过度波动吗?是否确保波动的幅度不会随着时间而积累,只会迅速减弱吗?
  性能
  该系统能够多快对变化产生反应?对于给定的应用代码它能够反应足够快吗?(飞机的自动驾驶需要比船舶的自动驾驶反应快很多)。
  准确性
  系统是否足够准确地跟踪指定的参照值?
  结论是不能同时兼顾所有这些目标?特别是反馈系统的设计经常涉及稳定性和性能之间的平衡,因为反应太快的系统有可能产生波动。这取决于给定的情况,设计师必须做出选择,重点应该放在哪里。
  通常做出许多小的快速调整比起偶尔的做出几个大的调整要更好一些。采取很多小的步骤,可以更快地执行矫正行动,不给系统有机会产生与参照值之间的明显差异。如果不经常采取调整行动,偏差的幅度将会变大,这就意味着过度补偿的机会将会增加,而且不稳定性所带来的风险也会增加。
  设定值
  反馈系统的目的是要跟踪参照值或者设定值。这种参照值的存在是必须的,没有参照值就不可能有反馈控制。
  另一方面要注意以下细节:对于跟踪的指标很明显会有一个期望值,我们要知道跟踪它的原因,而且必须知道在反馈控制中设定值的具体限制含义。
  从结构上看,反馈循环将使其输出尽可能准确地达到给定的参照值,即设定值。顺便指出,标准的反馈循环不适用于有一定数值范围的指标,对于许多应用代码来说这种要求太苛刻,反馈系统需要额外的设置来支持浮动范围控制(示例参见第18章)。
  同时要注意要反馈控制与任何形式的最优化不要混淆。反馈控制试图复制设定值,而不是要在一套给定条件下取得“最佳”或者“最优化”的输出。如前所述,反馈系统也许是整体优化方案的重要组成部分:如果有一个整体优化计划,它要求系统应该有什么样的输出值,那么反馈控制就是提交或执行这个计划的合适工具。但是,反馈控制本身没有能力确定最佳的计划或者设置。
  有时还会遇到其他的挑战。比如反馈原理的自动调节性质要求,系统输出可能超过设定值。只要输出落在设定值的任意一侧,反馈系统就能够从其中的一个方向采取恢复行动。但是当设定值的数值处在系统能够达到的范围的边缘,跟踪误差变为零,此时不会执行反馈控制。考虑缓存的例子,如果我们想要命中率(作为跟踪的指标)达到100%,实际的命中率永远不可能大于设定值,它不可能通过减少缓存的尺寸来达到目的。(在第15章中,我们将看到类似的情况,可以采取一些临时的措施)
  不确定性和变化
  很明显,反馈系统比直截了当的前馈系统要复杂很多,因为前馈系统不涉及反馈。反馈循环的设计要求在许多不同的属性上做平衡,有的时候要做出艰难的取舍。同时,反馈系统把不稳定的风险引入到原来稳定的系统中,因而需要额外的措施来防止“崩溃”。考虑到这么多的挑战,人们会问,在什么情况下反馈系统值得考虑,为什么?答案是反馈系统能够提供一种取得稳定行为的方法,甚至在出现不确定性和变化的状态时也能达到稳定。
  我们并不清楚结构参数(控制输入)如何影响被跟踪指标(控制输出)的行为。再次思考高速缓存的例子:增加缓存的大小肯定会增加命中率,但是增加多少合适?有多少缓存量才能够保证特定的命中率?这些都是难以回答的问题,答案在很大程度上依赖于缓存访问模式的性质。(在某些时间段里有多少不相同的条目被查询过)。忽略输入和输出之间的关系会导致不确定性。即使我们能够准确地描绘出,在特殊的时间段里输入和输出的关系,系统还是会受到变化的影响:访问模式会(一定会)随着时间改变,不同的条目被访问。被访问条目的分布在早上和下午有可能不同,以此类推。
  反馈是处理这些不确定性和变化形式的合理机制。如果其中一个因素缺失,将没有必要考虑反馈:如果我们准确知道缓存大小将如何影响到命中率,并且如果知道访问模式不会受到变化的影响,那么我们不需要反馈循环。相反,我们可以简单地选择大小合适的缓存,就这样任务完成了。但是我们会如此幸运吗?
  坦率地讲,这样的情况确实存在,大部分情况是在封闭的环境下(不会受到变化影响),而且有清晰的定义和熟悉的规则(因而避免了不确定性)。例如,计算机代码具有最大的确定性!不需要反馈控制。
  但是说到计算机系统情况就不一样了。只要几个部分相互动作,就有可能会出现随机性、不确定性和变化。一旦我们考虑到人的因素,事情就会变得相当混乱,肯定会出现突发的不确定性,变化将是常态,因此有反馈控制的必要。
  ……

展开
目录

目录

第Ⅰ部分  基础篇

第1章  为什么需要反馈 3

实际的例子 4

希望最好的情况 5

建立控制 7

累加偏差 7

小结 8

模拟程序 9

第2章  反馈系统 13

系统和信号 14

跟踪误差和矫正行动 15

稳定性、性能和准确性 16

设定值 18

不确定性和变化 19

反馈和前馈 19

反馈和企业系统 20

模拟代码 20

第3章  系统动态特性 23

滞后和延迟 23

强制反应和自然反应 25

瞬时响应和稳态响应 25

物理世界和虚拟世界的动态特性 26

动态特性和记忆 27

反馈循环的滞后和延迟的重要性 28

避免延迟 29

理论和实践 30

模拟代码 30

第4章  控制器 33

方框图 34

开关控制 34

比例控制 35

为什么比例控制还不够 35

积分控制 36

积分控制改变动态特性 37

积分控制可以产生恒定的偏移量 37

微分控制 38

微分控制的问题 39

三项PID控制器 39

模拟代码 40

第5章  识别输入输出信号 41

控制的输入和输出 41

输入/输出关系的方向性 42

例子 43

热控制1:加热 43

高速缓存 45

服务器扩展 46

通过动态标价控制供需关系 48

热控制2:冷却 50

选择控制信号的标准 51

用于控制输入 51

用于控制输出 51

关于多维系统的注释 52

第6章  回顾和展望 55

反馈概念 55

迭代 55

过程知识 55

避免不稳定性 56

设定值 56

控制,不是最优化 56

第Ⅱ部分  实践篇

第7章  理论预习 59

频率表示 59

传递函数 59

方框图代数 60

PID控制器 60

传递函数的极点 61

过程模型 62

第8章  测量传递函数 63

静态输入/输出关系:过程特征 63

实际考虑 64

阶梯输入的动态反应:过程反应曲线 65

实践方面 66

过程模型 66

自我调节过程 67

累积过程 68

带有振荡的自我调节过程 70

非最小相位系统 71

系统识别的其他方法 72

第9章  PID 控制调整 73

调整的目的 73

控制器参数变化的一般影响 75

齐格勒·尼科尔斯调整方法 76

半分析调整方法 77

实践方面 78

仔细研究控制器调整公式 79

第10章  实现问题 81

执行器饱和与积分器暂停 81

防止积分器暂停 82

设定值变化和积分器预加载 82

平滑微分项影响 83

选择抽样间隔 83

PID控制器的替代形式 84

增量形式 85

误差反馈与输出反馈 85

通用线性数字控制器 86

非线性控制器 87

误差平方和间隙控制器 87

模拟浮点输出 88

分类输出 88

第11章  通用反馈架构 91

改变运行条件:增益调度 92

轻度非线性系统的增益调度 93

强干扰:前馈 93

快-慢动态特性:嵌套或“级联”控制 94

具有延迟的系统:史密斯预报器 95

第Ⅲ部分  案例研究篇

第12章  通过模拟探索控制系统 99

案例研究 99

建模时间 100

控制时间 101

模拟时间 101

模拟框架 102

组件 103

对象和系统 103

控制器 103

执行器和过滤器 105

标准循环的便利函数 106

产生图形输出 108

第13章  案例研究:高速缓存命中率 109

定义组件 109

制造缺陷引起的缓存失效 111

测量系统特性 112

控制器调整 114

模拟代码 116

第14章  案例研究:广告推送 121

...

第15章  案例研究:扩展服务器 131

...

第16章  案例研究:等待队列的控制 141

...

第17章  案例研究:冷却风扇速度 149

...

第18章  案例研究:控制游戏引擎内存消耗 157

...

第19章  案例研究的总结 165

...

第Ⅳ部分  理论篇

第20章  传递函数 171

...

第21章  方框图代数和反馈公式 179

...

第22章  PID 控制器 185

...

第23章  极点和零点 189

...

第24章  根轨迹技术 197

...

第25章  频率响应和波特图 207

...

第26章  本书主题拓展 215

...

附    录

附录A  词汇表 223

附录B  用Gnuplot绘制图形 233

附录C  复数 237

附录D  深入阅读 241


展开
加入书架成功!
收藏图书成功!
我知道了(3)
发表书评
读者登录

温馨提示:请使用泸西县图书馆的读者帐号和密码进行登录

点击获取验证码
登录