尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

【控制理论】系统为什么会“有记忆”:从输入输出理解动态过程

【控制理论】系统为什么会“有记忆”:从输入输出理解动态过程 上一篇我们先搭起了闭环控制系统的骨架目标、比较、控制器、执行器、被控对象与反馈。但当控制器真的对一个对象发出指令时新的问题就来了为什么同样给一个输入有些系统几乎立刻响应有些却要慢慢变化为什么输入停止后输出还会继续变化写在前面刚开始学控制时很容易把系统想得过于直接给电机加大一点电压它就应该马上更快给房间开大一点加热器温度就应该立刻升高。可一旦真正接触实物就会发现事情没这么简单。电机转速不会瞬间跳到目标值房间温度也不会因为刚打开加热器就马上变化水箱进水以后液位还会持续上升一段时间。它们都像是“记住了”之前发生过什么。这并不是系统真的拥有意识而是因为很多真实对象都在不断储存和释放某种东西质量、能量、电荷、热量或者动量。控制理论里我们把这类“现在不仅取决于此刻输入还受过去影响”的对象叫作动态系统。本文我们聚焦系统的动态过程究竟从哪里来而所谓系统的“记忆”又到底在记什么。一、同样一个输入为什么系统的反应会不一样先看两个简单场景。第一个场景是给一个理想电阻两端加电压。电压变化后电流几乎同步变化。此刻的输出主要由此刻的输入决定过去曾经加过多大电压对现在基本没有影响。第二个场景是往水箱里持续注水。进水流量变大以后液位不会瞬间跳到某个高度而是慢慢上升。即使你现在停止进水水箱里已经积累的水也不会凭空消失。这两者最大的区别在于理想电阻几乎不储存能量水箱会储存水房间会储存热量电机转子会储存动量电容会储存电荷弹簧会储存弹性势能。只要系统内部存在“存起来”的东西过去的输入就会以某种形式留在系统里并继续影响之后的输出。所以静态系统可以粗略理解为此刻输入是什么此刻输出就主要是什么。而动态系统则更接近此刻输出不仅和当前输入有关也和系统此前经历过什么有关。这就是“系统有记忆”的第一层含义。二、系统的“记忆”本质上是内部状态没有立刻消失把“记忆”换成控制理论里的语言其实就是系统存在内部状态。以房间恒温为例。你刚打开加热器时电能不会直接变成一个“24℃”的结果。热量会先被空气、墙壁、家具吸收房间内部的热状态逐渐变化最后才表现为温度计读数的上升。于是当前室温除了和“现在加热器功率多大”有关还和下面这些事情有关之前已经加热了多久房间原本有多冷墙壁和家具已经吸收了多少热量窗户是否打开、外界温度是多少。这些正在系统内部延续的影响就是状态。同样的道理也能放到电机上当前电压是电机现在收到的输入当前转速是我们关心的输出转子已经积累起来的动量、电流建立起来的磁场等则属于系统内部状态的一部分。所以即使你把输入电压调回原来的值电机也不会马上停回原来的转速。它还带着之前积累的动量继续“往前走一段”。系统记住的不是一串历史数据而是过去作用留下的、仍在影响未来的内部状态。如果用最少的符号表达输入记作u(t)u(t)u(t)输出记作y(t)y(t)y(t)内部状态记作x(t)x(t)x(t)。静态系统里我们常常只需要关心u(t)u(t)u(t)和y(t)y(t)y(t)的对应关系。但动态系统里控制器还必须理解当前状态x(t)x(t)x(t)是什么它会怎样继续演化。三、有惯性、有积累系统才会慢慢变化在日常表达里我们常把这种现象叫作“反应慢”“有惯性”。虽然不同对象的物理原因不同但它们的表现很相似不会随着输入的变化立刻跳到最终结果。几个典型例子水箱液位水需要持续流入液位才会逐渐升高房间温度热量需要不断积累空气与墙壁才会慢慢变暖电机转速转子有惯量需要时间才能被加速弹簧—质量块系统外力改变后质量块会先运动甚至可能来回摆动电容电压电荷需要逐渐积累电压才会建立起来。这也是为什么控制系统不能只问“输入有没有变”还要问输出开始变化得有多快达到目标附近要多久输入停止后系统会不会继续往前冲外界扰动来了以后系统要花多久才能恢复这些问题说的都是同一件事系统在时间维度上的行为。四、别把“有记忆”和“有时延”混为一谈动态系统里经常还会遇到另一个词时延。它和“记忆”有关但不是一回事。假设你打开房间加热器后温度几乎马上开始缓慢上升。这说明系统有热惯性也就是有状态、有记忆但它未必存在明显的纯时延。而如果温度计装在离加热器很远的房间角落可能会出现这样的情况加热器已经工作了一会儿温度计却还没有任何变化过了一段时间后读数才开始上升。这段“已经施加输入、输出却暂时没有反应”的时间更接近时延。可以先用一个很朴素的方式区分惯性系统已经开始变化只是变化得不快时延系统暂时看起来完全没有反应记忆/状态过去的作用仍然在影响现在和未来。后面分析稳定性时会看到惯性和时延都很重要。因为控制器一旦对“已经过时的信息”反应过猛就可能出现来回修正甚至越调越抖。五、认识一个动态系统常常从“突然给它一下输入”开始工程上想了解一个对象的动态特性经常会做一件很简单的事给它一个突然变化的输入然后观察输出怎么走。例如把加热器功率从较低值突然调高或者让电机的目标电压突然增加一个台阶。这样的输入常被称为阶跃输入。接下来观察输出曲线我们通常会看到几个现象输出不会瞬间到达最终值它可能先慢后快也可能先快后慢有些系统会在目标附近来回摆动最终可能稳定下来也可能持续偏离目标。这条“输入改变后输出随时间怎样变化”的曲线叫作系统的响应过程。从控制角度看这张图特别重要。因为控制器真正面对的从来不是一个“按一下就立刻到位”的对象而是一个带惯性、可能有时延、会持续演化的动态过程。六、为什么理解动态过程是设计控制器的前提上一节里我们知道闭环控制的基本逻辑是目标—偏差—修正。但现在还要补上一层理解系统不是收到修正就立刻完成修正它会按照自己的动态规律变化。如果不了解对象的动态特性就很容易出现两种极端控制得太保守系统虽然稳定但响应慢得像“没反应”控制得太激进对象还没来得及响应控制器已经连续加码最后反而造成振荡。比如给房间升温时如果温控器只看到“温度还没到目标”就不断加大功率却忽略墙壁和空气正在持续吸热那么等温度计终于反映出来时房间可能已经积累了过多热量结果直接超过目标温度。这不是控制器“不会算”而是它没有正确面对对象的动态过程。所以后面无论讲 PID、状态反馈还是最优控制都会反复回到这里对象有多快对象有多慢对象会不会滞后对象内部积累了什么当前动作会在多久以后显现出真正后果。控制的难点从来不只是“给出一个动作”而是在变化尚未完全显现之前预判这个动作会把系统带向哪里。七、把这一节放回整个专栏里看这一节讲的是控制理论里很基础、也很容易被忽略的一件事时间。上一节我们建立了反馈回路知道系统会比较目标与现实再根据偏差修正自己。这一节进一步说明反馈面对的对象不是静止的。它有惯性、有积累、有内部状态也可能有时延。过去的输入并不会立刻失效而是会通过系统状态继续影响未来。这条理解往后会不断出现到 PID 时积分项本身也会“记住”过去的误差到状态空间方法时会用状态变量描述系统当前的内部情况到嵌入式控制时采样周期和计算时延会直接改变系统动态到机器学习时时序模型同样需要从历史信息中理解当前状态到智能体时“观察—思考—行动—再观察”依然是一条跨时间展开的动态过程。技术名词会不断变化但“过去如何影响未来”这件事始终不会变。In the end下一节该看什么现在我们已经知道真实系统往往有惯性和记忆输入改变以后输出会经历一个动态过程而不是瞬间到位。为什么有些系统受到扰动后能慢慢回到目标附近有些系统却越调越抖甚至不断发散要解开这个问题我们需要回到控制理论最核心的底层逻辑 —— 负反馈。下一节就来深入拆解负反馈的本质系统如何用误差不断修正自己
返回列表