PID 算法的基本原理和数学描述
笔记 / 嵌入式
PID 是工程界用得最多的闭环控制算法——不依赖被控对象建模,只盯住”目标值 − 实际值”的误差,用比例、积分、微分三路线性组合去消灭它。FOC 磁场定向控制的 C 语言实现 里电流环、速度环用的正是它的 PI 子集;数字 PID 的采样节拍通常由 单片机定时器与中断系统详解 的定时器中断给出。
一、PID 控制的基本原理
将偏差的比例(Proportion)、积分(Integral)和微分(Differential)通过线性组合构成控制量,用这一控制量对被控对象进行控制,这样的控制器称为 PID 控制器。总结如下:
- PID 是比例(Proportional)、积分(Integral)、微分(Differential)的缩写
- PID 是一种闭环控制算法,它动态改变施加到被控对象的输出值(Out),使得被控对象某一物理量的实际值(Actual)能够快速、准确、稳定地跟踪到指定的目标值(Target)
- PID 是一种基于误差(Error)调控的算法,其中规定:误差 = 目标值 − 实际值,PID 的任务是使误差始终为 0
- PID 对被控对象模型要求低,无需建模——即使被控对象内部运作规律不明确,PID 也能进行调控
1.1 模拟 PID 控制原理
先看一个例子。图 1 是一个小功率直流电机的调速系统:给定速度 与实际转速 比较,其差值 经 PID 控制器调整后输出电压控制信号 , 经功率放大后驱动直流电动机改变其转速。

图 1:小功率直流电机调速系统。
常规的模拟 PID 控制系统原理框图如图 2 所示,系统由模拟 PID 控制器和被控对象组成。图中 是给定值, 是系统的实际输出值,给定值与实际输出值构成控制偏差:
作为 PID 控制器的输入,控制器的输出 作为被控对象的输入,所以模拟 PID 控制器的控制规律为:
其中:
- —— 控制器的比例系数
- —— 控制器的积分时间,也称积分时间常数
- —— 控制器的微分时间,也称微分时间常数

图 2:模拟 PID 控制系统原理框图——比例、积分、微分三路并联求和。
1.2 PID 控制器各环节介绍
比例部分(P)
数学表达:。
在模拟 PID 控制器中,比例环节对偏差瞬间作出反应:偏差一旦产生,控制器立即产生控制作用,使控制量向减少偏差的方向变化。控制作用的强弱取决于比例系数——比例系数越大,控制作用越强,过渡过程越快,控制过程的静态偏差也就越小;但比例系数越大也越容易产生振荡、破坏系统的稳定性,故比例系数的选择必须恰当,才能兼顾过渡时间短、静差小而又稳定。
比例项功能总结:
- 只含有比例项的 PID 输出值:
- 比例项的输出值仅取决于当前时刻的误差,与历史时刻无关——当前存在误差时,比例项输出一个与误差呈正比的值;当前不存在误差时,比例项输出 0
- 越大,比例项权重越大,系统响应越快,但超调也会随之增加
- 纯比例项控制时,系统一般会存在稳态误差; 越大,稳态误差越小
积分部分(I)
数学表达:
只要存在偏差,积分的控制作用就不断增加;只有在偏差 时,积分才是一个常数,控制作用才是一个不再增加的常数。可见积分部分可以消除系统的偏差(稳态误差)。
积分环节的调节作用虽然会消除静态误差,但也会降低系统的响应速度、增加系统的超调量。 越大,积分的积累作用越弱,系统在过渡过程中不易产生振荡;但增大 会减慢静态误差的消除过程,消除偏差所需的时间较长,不过可以减少超调量、提高系统的稳定性。 较小时积分作用较强,系统过渡过程中有可能产生振荡,但消除偏差所需的时间较短。所以必须根据实际控制的具体要求来确定 。
微分部分(D)
数学表达:
实际的控制系统除了希望消除静态误差外,还要求加快调节过程。在偏差出现的瞬间、或偏差变化的瞬间,不但要对偏差量做出立即响应(比例环节的作用),而且要根据偏差的变化趋势预先给出适当的纠正——为此在 PI 控制器的基础上加入微分环节,形成 PID 控制器。
微分环节的作用是阻止偏差的变化,它根据偏差的变化趋势(变化速度)进行控制:偏差变化得越快,微分控制器的输出就越大,并能在偏差值变大之前进行修正。微分作用的引入有助于减小超调量、克服振荡、使系统趋于稳定,特别对高阶系统非常有利,它加快了系统的跟踪速度。
微分的作用对输入信号的噪声很敏感,对噪声较大的系统一般不用微分,或在微分起作用之前先对输入信号进行滤波。微分部分的作用由微分时间常数 决定: 越大,抑制偏差变化的作用越强; 越小,反抗偏差变化的作用越弱。适当地选择 可以使微分作用达到最优。
二、PID 算法的数字表示
计算机进入控制领域后,人们将模拟 PID 控制规律作适当变换引入计算机,用软件实现 PID 控制,即数字 PID 控制。数字式 PID 控制算法分为位置式 PID 和增量式 PID 两类。
由于计算机控制是一种采样控制,它只能根据采样时刻的偏差计算控制量,不能像模拟控制那样连续输出,所以模拟 PID 中的积分项和微分项都不能直接使用,必须进行离散化处理。
积分项的离散化——用矩形法数值积分近似代替积分:

曲线下的面积近似为所有矩形面积之和:
微分项的离散化——用一阶后向差分近似代替微分,即用相邻两个采样点连线的斜率代替瞬时斜率:

归纳起来,离散化处理的方法为:以 作为采样周期, 作为采样序号,离散采样时刻 对应连续时间 ,可作如下近似变换:
(为表示方便,下文将 简写成 。)
2.1 位置式 PID 算法
将上面的近似变换代入模拟 PID 公式,得到离散的 PID 表达式(表达式-1):
或者写成系数归并后的形式(表达式-2):
其中:
- —— 采样序号,
- —— 第 次采样时刻的计算机输出值
- —— 第 次采样时刻输入的偏差值
- —— 第 次采样时刻输入的偏差值
- —— 积分系数,
- —— 微分系数,
如果采样周期足够小,表达式-1/2 的近似计算可以获得足够精确的结果,离散控制过程与连续过程十分接近。
算法特点:表达式-1/2 是直接按模拟 PID 控制规律的定义进行计算的,给出了全部控制量的大小,因此被称为全量式或位置式 PID 控制算法。缺点是:全量输出使每次输出均与过去状态有关,计算时要对 进行累加,工作量大;且计算机输出的 对应的是执行机构的实际位置,一旦计算机出现故障, 的大幅度变化会引起执行机构的大幅度变化,有可能造成严重的生产事故,这在实际生产中是不允许的。
2.2 增量式 PID 算法
所谓增量式 PID,指数字控制器的输出只是控制量的增量 。当执行机构需要的控制量是增量、而不是位置量的绝对数值时,可以使用增量式 PID 控制算法。
增量式可由表达式-2 推导:先写出第 个采样时刻的输出值(表达式-3):
表达式-1 与表达式-3 相减并整理,就得到增量式 PID 控制算法(表达式-4):
其中:
由表达式-4 可见:采样周期 恒定时,一旦确定 、、,只要使用前后三次测量的偏差值,就可以求出控制量。增量式与位置式相比计算量小得多,因此在实际中得到广泛的应用。位置式控制算法也可以由增量式推出递推计算公式:
上式就是目前在计算机控制中广泛应用的数字递推 PID 控制算法。
三、几点观察
- “积分常数”指的是 、不是 :原文 1.2.2 一节说”积分常数越大,积分的积累作用越弱”——这说的是积分时间 ( 在分母上,越大积分作用越弱);而离散化后的积分系数 与之反向( 越大 越小)。读这段时把”积分常数”统一理解为 才不自相矛盾,本页已代为统一。
- 增量式系数可以自行验证:把 按定义展开,,合并同类项正好得到 、、 的取值——原文推导无误。
- 数字微分对噪声的敏感度与 成正比:后向差分的分子 是两拍相减,测量噪声近似不相关、相减后方差翻倍; 越小,除以 放大回去的倍数越大。原文 1.2.3 说”噪声大的系统不用微分、先滤波”,在数字域里这条更硬。
- 位置式的两个工程缺陷对应增量式的两个卖点: 累加工作量大 → 增量式只用三拍误差;故障时 跳变打坏执行机构 → 增量式输出的是 ,故障影响被一阶截断。递推式 取两者折中,但要注意 的累加器仍需做积分限幅抗饱和。
素材来源:本文为微信公众号「ZephyrOS嵌入式操作系统」2026-09-04 文章《PID算法的基本原理和数学描述》的整理存档。原文 13 张纯公式截图已改写为 KaTeX 排版(公式截图带 CSDN @irrftang 等水印,原作来自 CSDN),4 张示意图保留原图(PNG 转无损 WebP,像素零差异)。