news 2026/10/1 5:27:40

PID控制之父Nicolas Minorsky:从船舶操舵到现代自动化的经典控制律

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
PID控制之父Nicolas Minorsky:从船舶操舵到现代自动化的经典控制律

任何一个真正做过自动控制项目的人,恐怕都绕不开PID这三个字母。电机调速、温控箱、四轴飞行器、甚至工业上的锅炉汽包水位调节,随便一抓就是PID的身影。大家都说它是控制界的常青树,但很多工程师天天用着PID,却不一定知道这套东西是怎么来的,更不一定知道背后那个被称为“PID之父”的人——Nicolas Minorsky。今天我就借这个机会,把这个人、这段历史、以及PID控制器背后的原理和实操,从头到尾聊一遍。

这篇内容适合三类人:一是刚入行、正在被PID参数折磨的工程师;二是学校学过自动控制原理、想补上“历史背景”这块拼图的学生;三是对工业自动化感兴趣、想搞明白“为什么PID能通吃这么多场景”的非专业读者。我会尽量把原理讲成大白话,同时保留足够的专业细节,让大家既能知道PID怎么用,也能理解它为什么这么设计。

1. 从一艘军舰说起:Nicolas Minorsky 和他所在的时代

1.1 为什么开船的人会去研究自动控制

Nicolas Minorsky,1885年出生于俄罗斯,后来长期在美国工作,是一位机械工程师和应用数学家。他之所以被后人称为“PID controller之父”,核心贡献是在1922年发表了一篇关于船舶自动操舵控制的经典论文,论文里系统性地提出了“比例-积分-微分”这种三作用控制律,并分析了它在动态系统中的表现。

你可能会觉得奇怪:一个开船或者跟船打交道的工程师,怎么捣鼓出了控制领域最通用的一套方法论?这得放到当时的背景里看。20世纪初,大型军舰和商船越来越多,航速越来越快,船体也越造越大,靠舵手手动把航线维持住变得越来越困难。尤其是远洋航行中,波浪扰动、风力变化、航向偏移这些因素,都需要舵手不断地修正舵角。手操又累又不精确,于是“自动操舵”成了当时船舶工程里非常现实的刚需。

1.2 1922年那篇论文到底写了什么

Minorsky在1922年发表的论文题目大概是关于自动操舵的,他在论文里详细分析了船舶转向运动中的动态行为,并提出了一个核心思路:控制舵角的指令不应该只看当前航向偏差有多大,还应该考虑这个偏差已经累积了多久、偏差变化的趋势是快还是慢。今天我们都清楚,这分别就是比例作用、积分作用和微分作用。

他把这种控制方式命名为“三作用控制器”(three-term controller),并且给出了整定参数的思路。虽然当时还没有完善的频域分析法,也没有现代控制理论里那些严谨的稳定性判据,但他从工程直觉和动态系统的角度,已经把这套控制律的框架搭得相当完整。

更有意思的是,他并没有只是停留在理论推导。他结合了船舶操舵的实际数据,分析了这种控制方式在扰动下的动态响应,这对于当时来说已经是非常领先的工程研究方法。现在有一些控制理论史的研究者把他视为“PID控制的奠基人”,完全名至实归。

1.3 Minorsky 之前的控制世界长什么样

Minorsky之前,其实也有不少人在做自动控制。比如瓦特的离心调速器,那是最早的反馈控制之一。工程师们早就知道“用输出反过来调节输入”能让系统稳定,但对“怎么调才稳”“为什么调不好会振”这类问题,一直缺乏系统性的理论解释。直到Maxwell、Routh这些数学家介入,才慢慢有了稳定性分析,再往后Lyapunov提出了更一般的稳定性理论。

但关键问题是:反馈本身有无数种实现方式,到底该反馈什么?是只反馈偏差大小,还是连偏差的历史和趋势一起考虑?在Minorsky之前,工程师们大多是在具体设备上“试”出来的,知其然不知其所以然。Minorsky的工作,等于把“三作用反馈”这套组合拳从实践层面提炼成了可推广的方法论,让后人看到一个通用的框架:你不需要为每台设备重新发明控制律,只需要把偏差信号按比例、积分、微分三种方式加权求和,控制问题就能解决一大半。

2. PID控制器的底层逻辑:为什么偏偏是P、I、D这三项

2.1 比例项(P):让系统“动起来”

比例项是PID里最直观的一项,输出与当前偏差成正比。用公式表示就是:

[ u_P(t) = K_p \cdot e(t) ]

其中 ( e(t) ) 是当前偏差(设定值减测量值),( K_p ) 是比例增益。

比例项的作用可以理解为“偏差越大,用力越猛”。比如你开车想保持100km/h的速度,当前只有80km/h,偏差是20。比例项会根据自己的增益大小,给出一个对应的油门指令。Kp大,修正力度就大;Kp小,修正力度就小。

但比例项有个天然的毛病:系统稳定下来后,可能会残留一个稳态误差。原因是控制器必须输出一个非零控制量才能维持被控量在某个位置,而比例控制只有在有偏差时才会有输出。偏差小了,输出也小了,最终系统可能在一个“不太够”的位置上勉强平衡住。这就是常说的“有差调节”。

2.2 积分项(I):跟历史算总账

积分项把过去所有偏差累加起来,乘上积分增益 Ki,作为控制量的一个分量:

[ u_I(t) = K_i \int_0^t e(\tau) d\tau ]

积分项的厉害之处在于它“记仇”。只要偏差长期存在,哪怕偏差很小,积分项也在持续累积,控制量会因为积分不断增大,一直到把系统推回设定值为止。这就是“无差调节”的实现基础。

但也正因为它“记仇”,工程师最头疼的积分饱和问题也随之而来。当执行机构已经饱和(比如阀门全开了),系统偏差还是很大,积分项会继续累积到一个很大的值。等偏差反过来时,积分项还要花很长时间才能“消化”掉之前积累的余量,导致系统明显超调,甚至来回震荡。实际工程里,几乎每个PID回路都要面对这个问题,后面我会专门讲讲怎么处理。

2.3 微分项(D):预测未来趋势

微分项看的是偏差的变化率:

[ u_D(t) = K_d \frac{de(t)}{dt} ]

偏差涨得很快,说明系统正在快速偏离目标,这时候微分项会输出一个反向的控制力去“踩刹车”;偏差正在快速回落,微分项会提前减小控制力,防止过冲。本质上,微分项有一种“预测”的作用,相当于给系统增加一点阻尼。

但微分项也是三个项里最“娇气”的。测量噪声大一点,微分信号就会被放大得乱七八糟,控制器输出的抖动比没有微分时还严重。所以实际工程里要么不用微分,要么用不完全微分或者滤波后的微分,很少做纯理想微分。

2.4 三项组合的直观理解

P是“当下”、I是“过去”、D是“未来趋势”,这三者加在一起,就是一个简单但完整的决策模型。我经常拿开车打比方:

  • 比例项:看到当前离目标近了就松油门,远了就加油门;
  • 积分项:如果一直偏离目标,就持续修正,“既然老偏,那就加点力一直顶着你”;
  • 微分项:发现车速已经在快速接近目标,提前收力,避免冲过头。

你会发现,一个熟练司机开车时,其实就是不自觉地用上了P、I、D的思想。Minorsky当年从船舶操舵中观察到这个规律,把它提炼成了数学表达,这其实非常了不起——很多优秀的工程发明,本质上是对高手经验的数学化、系统化。

3. 实操视角:PID参数整定的那些事

3.1 先掌握基础整定方法:Ziegler-Nichols

理论再好,最后都要落地到“参数到底设多少”。初学者最容易犯的错是一上来就调Kp,然后发现系统抖了又不知道怎么办。如果你不想陷在试错里,可以先掌握最经典的Ziegler-Nichols整定法。

具体思路是先把积分和微分关掉(Ki和Kd设为0),只保留比例控制。然后慢慢加大Kp,让系统输出出现等幅振荡,记下此时的临界增益 ( K_u ) 和振荡周期 ( T_u )。然后按照经验表格算出Kp、Ki、Kd:

控制器类型KpKiKd
P0.5 Ku——
PI0.45 Ku1.2 Kp / Tu—
PID0.6 Ku2 Kp / TuKp × Tu / 8

这个方法虽然粗糙,但作为起点非常有效。它能帮你快速找到一组可用参数,之后再根据现场情况微调。

3.2 现场微调的判断顺序

用Ziegler-Nichols算出一组参数后,实际系统可能还会有些振荡或超调。这时候我一般按“先P、再I、最后D”的顺序微调:

  1. 看比例项是否合适:如果响应太慢,适当加大Kp;如果输出有持续的高频抖动,先考虑是不是Kp太大或测量噪声太大。
  2. 看稳态误差是否消除:如果系统稳定下来但仍然离设定值差一截,加大Ki,直到偏差完全消除。注意加大Ki时系统会容易超调,一般要小幅调整。
  3. 看动态响应是否“干净”:如果系统响应快但过冲明显,先试着略微加大Kd。如果微分带来噪声,优先选择带低通滤波的微分环节。

我一个做温控项目的朋友,曾经因为温度迟迟到不了设定值,一个劲地加Ki,结果温度超调了十几度,后来改成“先加一点Kd再微调Ki”,问题立刻解决了。这里面的道理是:微分项并不会直接减小超调,但通过“踩刹车”的作用,它可以为积分项争取更大的增大空间,从而在不牺牲稳定性的前提下消除稳态误差。

3.3 输出限幅与积分限幅的搭配

很多工程师第一次调PID,只会关注Kp、Ki、Kd三个数,却忽略了上下限幅。实际上,执行机构是有限度的,比如阀门开度只能0到100%,变频器输出频率只能0到50Hz。如果PID算出来的指令超过了执行机构的能力,系统就会进入饱和状态。

我建议你在设计PID回路时,至少留两个限幅:

  • 控制输出限幅:限制PID输出的上下界,防止指令值给到危险区间;
  • 积分项单独限幅:在PID内部把积分累积量限制在一个合理范围,避免积分饱和。

这两个限幅设置好了,比单纯调三个增益参数更能提升系统的鲁棒性。特别是在工艺要求苛刻的场合,好多人调了很久调不好,最后发现是积分饱和在作怪,一旦限幅加好,立刻“药到病除”。

4. 从Minorsky到现代:PID为什么至今没有过时

4.1 现代控制理论那么多,为什么还是PID用得多

现在学控制的人,首先接触的往往是状态空间、频域分析、现代控制理论这些看起来更“高级”的工具。但工业现场转一圈你会发现,大量回路依然用的是PID。原因有三点:

  • 结构简单、透明:PID的每个参数都有明确的物理含义,工程师可以基于经验快速调整;
  • 依赖模型少:它不需要精确的被控对象模型,只要大致了解对象的响应特性就能投入运行;
  • 鲁棒性好:在很大范围的工况变化下,参数不需要重新整定也能维持基本可用的控制效果。

现代控制理论中的MPC(模型预测控制)、LQR等,在很多复杂多变量场景下确实比PID强得多,但它们对模型的依赖也更强。对大多数单输入单输出回路来说,PID已经能处理95%的问题,用更复杂的控制器反而可能增加维护成本。

4.2 现代硬件和软件让PID更好用

今天的PID跟Minorsky时代的PID已经不太一样了。首先是硬件实现上,现代PLC和DCS系统里都内置了PID功能块,你只需要配置参数,不需要搭建模拟电路。其次是算法层面,很多控制器加入了自整定功能、抗积分饱和、前馈补偿等扩展功能,让PID的适用范围更广。

举个例子,现在很多变频器内置的PID功能,可以直接接收压力传感器或温度传感器的信号,让电机转速跟随目标值变化。无论是水泵恒压供水、风机恒温控制,还是压缩机压力调节,都能用内置PID完成,不需要单独买控制器。这种集成化趋势,让PID进一步渗透到各种自动化设备中。

4.3 无人机、机器人、新能源都在用PID

在新兴领域,PID照样活跃。四旋翼无人机飞控里的内环姿态控制,用的就是PID;机械臂关节的位置控制,主力方案也是PID和它的变种;光伏逆变器里的并网电流控制,很多也是靠PID在d-q坐标系下完成的。说PID是“控制界的万能螺丝刀”一点也不夸张。

我在做无人机飞控调参的时候,遇到过一个特别典型的案例:姿态角的P增益调高了,无人机一飞起来就高频振臂;降下来吧,飞控又感觉“软绵绵”的。后来把微分项加了点阻尼,再配合滤波,整架飞机才稳定下来。这个过程,其实跟给一艘大船调转向舵的道理没有本质区别——Minorsky要是看到今天的四轴飞行器还在用他总结的控制律,估计也会感慨。

5. 常见问题与排查技巧实录

5.1 现象一:系统持续振荡,越振越凶

原因可能性很多:Kp太大、微分项引入了噪声、系统存在纯滞后且积分作用过强、执行机构存在死区或回差等。

排查步骤:

  • 先把微分关掉,积分放小,只留比例,看振荡是否消失;
  • 如果只留比例还会振,检查是不是Kp太大,明显降一档再看;
  • 如果只留比例不振荡,但加积分后就振荡,检查积分限幅、积分时间,考虑是不是系统纯滞后太大;
  • 如果加微分后系统反而更抖,重点怀疑微分噪声,改成带滤波的微分或去掉D。

5.2 现象二:稳态误差怎么都消不掉

其实PI是消除稳态误差最常用的组合。加了积分项后稳态误差仍然存在,往往是因为控制器输出已经触顶了(饱和),或者积分项本身被限幅卡住了。还有一个隐蔽原因:被控对象本身有很强的静摩擦或者死区,很小的控制信号根本推不动执行机构。

解决方案:

  • 检查PID输出是否长期处于上下限,如果是,先降低积分增益,让输出留出调节空间;
  • 对阀门、挡板这类执行机构,检查死区设置;
  • 如果系统本身存在非线性摩擦,可考虑增加一个很小的持续激励信号,或改用带前馈的PID结构。

5.3 现象三:设定值一变,系统就大幅超调

这种问题通常不是“稳不住”,而是“冲过头”。常见原因有积分饱和、微分作用太弱、设定值变化幅度过大导致控制器饱和。

我一般会这么处理:

  • 对设定值变化使用设定值滤波或斜坡设定,让目标值不是瞬间跳变,而是缓缓接近;
  • 使用“微分先行”结构,只对测量值做微分,不对设定值做微分,避免设定值突变时产生微分冲击;
  • 给积分项加限幅或抗饱和逻辑,防止大偏差时积分项积聚过多能量。

5.4 一组常用的PID调试速查表

症状可能原因优先调整
响应太慢Kp偏小,Ki偏小增大Kp
稳态误差大Ki不够或输出饱和增大Ki、检查限幅
周期性振荡Kp太大或纯滞后大降低Kp、减少Ki
超调严重积分饱和、微分不足加抗积分饱和、增加Kd
高频抖动微分项噪声、采样噪声滤波、减小Kd
一加积分就振系统纯滞后大增加微分、检查执行机构死区

6. 从历史到工程:我对PID的一些个人体会

做控制时间长了,你会发现一个规律:真正在现场长期解决问题的,往往不是那些“看起来很高级”的算法,而是把简单的东西做到极致。Minorsky当年从船舶操舵中总结出PID控制律,开启了一条延续百年的工程路线。即使今天人工智能技术已经渗透到各行各业的今天,PID在工业控制中的地位依然非常稳固,这个现象本身就值得深思。

我个人的体会是:学习PID,历史背景和理论知识当然重要,但更重要的是亲手把它调一遍。找一个简单的温控实验平台,或者一个仿真模型,从头到尾走一遍“只加P,看到振荡;加D,稳住;加I,消除静差”的过程,会比背十遍公式都管用。调参这件事,经验值很重要,而经验只能来自一次次观察波形、分析响应、动手修改参数的过程。

另外,虽然现代控制手段在不断发展,但千万不要小看PID的变体和扩展方向。模糊PID、自适应PID、PID与神经网络结合等方向,依然是控制领域非常活跃的研究内容。掌握PID的核心思路,相当于掌握了一扇通向更复杂控制理论的大门——等你真正理解了什么是反馈、什么是稳定、什么是动态补偿,再去学状态空间和模型预测控制,你会发现它们的思想内核和PID是一脉相承的。

最后再说句掏心窝的话:控制工程师的快乐,很多时候不是来自那些高深理论,而是来自“现场那个老调不稳的回路,终于被自己调平了”的瞬间。而这一切的起点,都要感谢百年前那个专注于船舶自动操舵的工程师——Nicolas Minorsky。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/1 5:27:33

Windows下Orthanc轻量级DICOM服务器部署完全指南

上周帮同事搭了一个临时影像归档点,需求不难:把CT、MR设备导出的DICOM文件集中存起来,方便几个人在Windows工作站上直接查看和调取,不需要上完整PACS那么重的方案。我第一反应是Orthanc,开源、轻量、Windows下直接跑&a…

作者头像 李华
网站建设 2026/10/1 5:27:10

Jev哑巴模型揭秘:不废话的编码代理与Codex集成实操

这几天刷技术社区,满屏都是同一个词:Jev。第一反应估计跟大多数人一样,这又是什么新模型?再往下翻两页,评论区都在刷“哑巴模型”,起初我还以为是在吐槽它不会正常聊天,后来认真看了几个演示&am…

作者头像 李华
网站建设 2026/10/1 5:27:01

Linux下AWVS 14.x安装保姆级教程:从依赖准备到扫描配置

老实说,在Linux上装AWVS(Acunetix Web Vulnerability Scanner)这件事,网上教程一抓一大把,但真正能照着走通的不多。要么是依赖装到一半报错,要么是装完访问不了Web界面,要么是许可证激活那步卡…

作者头像 李华
网站建设 2026/10/1 5:26:56

手写ReAct循环:从零构建AI面试陪练Agent的实战记录

自从上次面完一家大厂被挂在大厂“终面”之后,我就一直在琢磨一件事:每天刷题几十道、背八股文背到凌晨,为什么一到面试官追问的环节就露怯?我缺的真的是题目数量吗?不是,我缺的是一个能对我进行“个性化围…

作者头像 李华
网站建设 2026/10/1 5:26:56

Unity资源交付中枢:Editor打包系统架构设计

1. 这不是“打包工具”,而是一套面向大型项目的资源交付中枢你有没有遇到过这样的场景:一个Unity项目刚上线,美术突然塞进来200个新模型,策划又追加了50套UI动效,程序顺手提交了3个新功能模块——第二天构建服务器就卡…

作者头像 李华
网站建设 2026/10/1 5:26:55

联想小新Air15 2021重装Win11完整指南:从BIOS到驱动一步不差

帮朋友把这台联想小新Air15 2021彻底清盘重装了一遍Win11,原以为半小时能收工,结果从BIOS设置到安装界面的联网检测,再到装完的驱动顺序和应用商店报错,每一步都有点自己的脾气。这台机器在网上的讨论量一直不小,但相关…

作者头像 李华