想象你开着一辆智能电动车去古镇。出发时深踩油门,接近时提前松油、轻点刹车,遭遇逆风时轻轻补一脚,最终稳稳停在古镇门口——这一连串动作背后,是三股直觉在同时工作:“看距离决定油门深浅”“回忆全程的累计偏差并补偿”“预测车速变化提前收力”。而你那只有“全开”和“全关”两档的电动油门,想踩出三分之一力道,只能飞快地反复点按,让车子感受到的平均动力恰好是三分之一。前者,就是自动化世界里大名鼎鼎的控制算法“PID“;后者,就是它的好搭档”PWM“(脉宽调制)。这篇文章把这对搭档拆开揉碎:三个旋钮怎么配合、油门点按频率怎么选、堵车记”总账“会闯什么祸,再带你去电机调速和烤箱温控两大现场亲自看看。看完你就能明白,为什么万物互联的智能硬件,都离不开这门”驾驶技术”。

岗位关联

对AI从业者而言,PID/PWM是算法通向物理世界的“手脚”——理解闭环控制与脉冲驱动,才能让智能系统真正可靠地落地执行。

目录
  1. 可视化演示
  2. PID控制原理
  3. PWM脉宽调制
  4. PID参数整定
  5. 抗积分饱和
  6. 电机调速应用
  7. 温控系统应用
  8. 工程调试实践
  9. AI 应用场景
  10. Python 演示
  11. 常见误区
  12. 面试题

可视化演示

展示PID控制器P/I/D分量对阶跃信号的响应曲线、PWM脉宽调制占空比调节输出功率、以及不同PID参数整定的超调与调节时间对比。

本节配有交互动效(进入视口后自动加载,约 3KB)。

PID控制器响应曲线 比例P快速响应误差,积分I消除稳态偏差,微分D抑制超调 u=Kpe+Ki∫e+Kdė PID三项协同实现精确闭环控制

PID控制原理

把“开车去古镇”再拆细一点。你的驾驶动作源自三个信号:离古镇还有多远——这是“当前偏差”;从出发到现在有多少时间是偏慢或偏快——这是“偏差的累积”;此刻逼近古镇的速度有多快——这是“偏差的变化趋势”。老司机的直觉告诉你:距离远就猛踩,距离近就轻点;全程一直偏慢就额外多补一点;快到跟前车速还太快,就得提前松油门。

把这三个直觉翻译成控制语言:距离对应“比例(P)”,累积偏差对应“积分(I)”,变化趋势对应“微分(D)”。它们共同构成 PID 控制器。控制器每时每刻都盯着“目标值”和“测量值”的差——这个把输出结果测回来再影响下一次输出的回路,就叫闭环控制,相当于司机看着路况不断修正油门。

PID 控制器输出的控制量是三项之和:

u(t)=Kpe(t)+Ki∫0te(τ) dτ+Kdde(t)dtu(t) = K_p e(t) + K_i \int_{0}^{t} e(\tau)\,d\tau + K_d \frac{de(t)}{dt}

1. 误差信号:目标值与实际测量值的差,是整个控制动作的“方向盘”。

e(t)=r(t)−y(t)e(t) = r(t) - y(t)

2. 比例项:偏差越大,修正力越大,像“离得越远油门越深”。

uP=Kpe(t)u_P = K_p e(t)

3. 积分项:把历史上所有偏差随时间累积起来,专门消除长期存在的静差。

uI=Ki∫0te(τ) dτu_I = K_i \int_{0}^{t} e(\tau)\,d\tau

4. 微分项:对偏差求导,看到“偏差正在快速缩小”就提前收力,抑制超调。

uD=Kdde(t)dtu_D = K_d \frac{de(t)}{dt}

5. 总输出:三路信号相加,就是最终送给执行器的控制量。

u(t)=uP+uI+uDu(t) = u_P + u_I + u_D

所以,司机就是一台活体 PID:眼睛是传感器,脚是执行器,大脑里的“经验旋钮”就是 Kp、Ki、Kd。三个旋钮调得好,车子平稳抵达;调得不好,要么磨磨蹭蹭半天到不了,要么到了门口还来回晃荡。

PWM脉宽调制

回到那辆电动车。物理上,它的油门踏板其实是一个电子开关:要么接通给最大动力,要么断开动力为零——没有“中间档”。可你明明想踩“三分之一的油门”,怎么办?老司机的办法是快速地“点”油门——踩一下、松一下、踩一下、松一下,控制踩住的时间比例。只要点得足够快,车子感受到的平均动力就很接近 30%。

数字系统、单片机、功率开关管都只能输出两种状态:高电平或低电平(导通或截止)。为了用“开关”模拟“连续力度”,工程师发明了 PWM(脉宽调制):在一个固定周期内,让信号保持高电平一段时间、低电平一段时间,高电平占比就叫“占空比”。占空比越大,平均输出电压越高。

占空比的定义如下:

D=TonTon+Toff×100%D = \frac{T_{on}}{T_{on} + T_{off}} \times 100\%

1. 导通时间:一个周期内信号为高电平的持续时间。

TonT_{on}

2. 关断时间:一个周期内信号为低电平的持续时间。

ToffT_{off}

3. 周期与频率:两者之和是信号周期,周期倒数就是开关频率。

T=Ton+Toff=1fT = T_{on} + T_{off} = \frac{1}{f}

4. 占空比:导通时间占总周期的百分比,决定平均功率。

D=TonT×100%D = \frac{T_{on}}{T} \times 100\%

5. 平均电压:负载感受到的等效直流电压等于占空比乘以峰值电压。

Uˉ=D⋅Umax\bar{U} = D \cdot U_{max}

频率选择是 PWM 的关键权衡:电机调速常用 1kHz~20kHz。频率太低,电机会一颤一颤并发出刺耳噪声;频率太高(如超过 50kHz),开关管每次通断都有功耗,发热大增。合适的频率一般避开人耳听觉范围(20kHz 以上)或选在损耗可接受的几kHz区间。

点油门的手速就是 PWM 频率。手速太慢,乘客感到一顿一顿像坐拖拉机;手速太快,你的脚踝(开关管)受不了。选一个既不晕车又不伤脚的节奏,就是工程师口中的“频率选择权衡”。

PID参数整定

每个新手司机都会经历“调校驾驶风格”的过程:油门踩太猛,车子窜出去又急刹车,乘客晕车;踩太保守,到目的地的时间翻倍。老司机的“脚感”是在一次次试驾中形成的。对 PID 控制器来说,Kp、Ki、Kd 这三个旋钮就是驾驶风格,把它们调合适的过程叫“参数整定”。

参数整定有两类常用方法:工程试凑法和理论整定法。试凑法靠经验和观察响应曲线逐步调整;临界比例法(Ziegler-Nichols 法)则是先让系统处于临界振荡状态,再根据振荡的特征量查表算出参数。两者本质都是“先摸清系统脾气,再决定脚感”。

先用纯比例控制,逐步增大 Kp 直到系统出现等幅振荡,记下临界增益 Kcr 和临界周期 Tcr,然后按下式算出参数:

Kp=0.6Kcr,Ti=0.5Tcr,Td=0.125TcrK_p = 0.6 K_{cr}, \quad T_i = 0.5 T_{cr}, \quad T_d = 0.125 T_{cr}

1. 临界增益:纯比例下使系统恰好等幅振荡的比例系数。

Kcr=临界振荡时的比例增益K_{cr} = \text{临界振荡时的比例增益}

2. 临界周期:等幅振荡波形一个周期的时间长度。

Tcr=振荡周期T_{cr} = \text{振荡周期}

3. 比例系数:取临界增益的六成,留出稳定裕量。

Kp=0.6KcrK_p = 0.6 K_{cr}

4. 积分与微分时间:按临界周期的一半和八分之一设定。

Ti=0.5Tcr,Td=0.125TcrT_i = 0.5 T_{cr}, \quad T_d = 0.125 T_{cr}

工程中更常用试凑法口诀:“先比例、再积分、最后微分”。先把 Ki 和 Kd 置零,只调 Kp,直到响应较快但没有明显震荡;再逐步加 Ki 消除静差;最后加 Kd 抑制超调。每调一步都要观察阶跃响应:上升快不快(快速性)、超调多不多(平稳性)、有没有残留偏差(准确性)。

整定就像给新车做路试调校:先只练“油门深浅”(P),练到不窜不肉;再练“长时间偏航的补偿”(I),把高速上飘着的那点偏差消掉;最后练“提前收油”(D),让刹车动作柔顺。三关过了,这辆车才算“好开”。

抗积分饱和

堵车了。导航显示你离古镇还剩 1 公里,但前面排着长队,你只能踩着刹车在原地等。此时导航还在继续记账:“累计迟到 10 分钟、20 分钟、30 分钟……”等路终于通了,导航二话不说把你过去半小时的“亏欠”一次性换算成猛油门,车子嗖地窜出去——差点追尾。这位“过于认真记账的导航”,就是积分饱和。

现实中,执行器(油门、电机、加热管)的输出是有上限的。当误差长期存在且控制量已经顶到上限(饱和)时,积分项还在不断累加误差,等误差终于反转时,这笔“巨额账单”会让输出在饱和方向上停留很久,导致系统严重超调。这就是积分饱和(Integral Windup)。

最简单的对策是“输出限幅”:把 PID 输出钳制在最大最小值之间,同时让积分项停止累加。更精细的有“积分分离法”——误差很大时不积分,误差小到一定范围内才开始积分;“条件积分法”——只在输出未饱和时积分,饱和就冻结积分器:

ui(k)={ui(k−1)+KiTs e(k),∣u(k−1)∣<umaxui(k−1),∣u(k−1)∣=umaxu_i(k) = \begin{cases} u_i(k-1) + K_i T_s\, e(k), & |u(k-1)| < u_{max} \\ u_i(k-1), & |u(k-1)| = u_{max} \end{cases}

1. 饱和判断:检查上一时刻的控制量是否已经到了输出上限。

∣u(k−1)∣=umax|u(k-1)| = u_{max}

2. 未饱和正常积分:输出还有余量时,积分项按常规累加当前误差。

ui(k)=ui(k−1)+KiTs e(k)u_i(k) = u_i(k-1) + K_i T_s\, e(k)

3. 饱和时冻结积分:输出已顶到极限,积分项保持原值不再增加。

ui(k)=ui(k−1)u_i(k) = u_i(k-1)

三种方法可以组合使用。电机启动、温控上电这类“大误差+长时间饱和”场景,抗积分饱和几乎是必须的,否则系统每次启动都会表演一次“起飞然后急刹”。

抗积分饱和就是给导航装上“堵车记账暂停键”:堵车时账先欠着,路通了、油门能踩了,再慢慢把账还上。于是车子平稳起步、稳稳到达,再也不表演“猛窜追尾”。

电机调速应用

电动车的“巡航控制”就是 PID+PWM 的教科书案例:你设定巡航速度 85 公里/小时,传感器(编码器)不断报回真实车速,控制器对比两者误差,决定油门踏板的点按比例(PWM 占空比),电机因此获得多一点或少一点的功率。上坡时自动补油,下坡时自动收油。

直流电机是最常见的执行器。对电机施加的电压越高,转速越快;而 PWM 恰好能等效出任意平均电压,所以“PWM 驱动电路 + PID 闭环”就成了电机调速的黄金组合。驱动电路常用 H 桥结构,四个开关管按一定顺序导通,既控制转速也控制方向。

直流电机的电气方程揭示了“电压—电流—转速”的关系:

Ua=RaIa+LadIadt+Ea,Ea=KeωU_a = R_a I_a + L_a \frac{dI_a}{dt} + E_a, \quad E_a = K_e \omega

1. 电阻压降:电流流经电枢电阻产生的电压损失。

UR=RaIaU_R = R_a I_a

2. 电感压降:电流变化时电感阻碍变化产生的瞬态电压。

UL=LadIadtU_L = L_a \frac{dI_a}{dt}

3. 反电动势:电机旋转时自身产生的与电源相反的电动势,随转速线性增大。

Ea=KeωE_a = K_e \omega

4. 电压平衡:外施电压等于三者之和,构成完整的电机模型。

Ua=UR+UL+EaU_a = U_R + U_L + E_a

调速闭环的结构是:设定转速和编码器实测转速送入 PID,PID 输出映射为 PWM 占空比,PWM 驱动 H 桥给电机供电。工程设计上有两个细节:一是 H 桥的上下开关管不能同时导通,否则电源短路,需要在切换时插入“死区时间”;二是 PWM 频率要避开机械共振点,否则电机会嗡嗡作响。

巡航控制里的老司机就是 PID,油门踏板的点按节奏就是 PWM。上坡时 PID 自动加占空比,下坡时自动减,车子始终保持设定速度——这就是电机调速应用的完整闭环,也是无数自动化设备的“心脏起搏器”。

温控系统应用

烤蛋糕最怕什么?烤箱温度忽高忽低。你用 200℃ 烤蛋糕,加热管只有“全功率加热”和“完全熄灭”两种状态——这是典型的 PWM 场景。如果简单地在温度低于 200℃ 时就全功率加热、高于就熄灭(通断控制),温度会在 200℃ 附近来回冲过头又跌过头,蛋糕表面焦了芯还是生的。

温度对象与电机不同:它“反应慢、惯性大”。加热管打开后,热量要经过空气、烤盘、蛋糕层层传导,温度读数才缓慢上升;关闭后热量还会继续扩散,温度继续上升一会儿。这种“大惯性”加上“纯滞后”(从开关动作到温度变化要延迟数秒到数分钟),让温控成为 PID 里最有挑战的场景之一。

工程上常把温控对象建模为一阶惯性环节串联纯滞后:

G(s)=KTs+1e−τsG(s) = \frac{K}{Ts + 1} e^{-\tau s}

1. 对象增益:稳态时温度变化量与输入加热量之比。

K=稳态增益K = \text{稳态增益}

2. 惯性时间常数:温度爬升到稳态值63%所需的时间,越大反应越慢。

T=时间常数T = \text{时间常数}

3. 纯滞后时间:从指令发出到温度开始变化之间的延迟。

τ=纯滞后\tau = \text{纯滞后}

4. 一阶惯性滞后模型:两者串联构成温控对象的标准传递函数。

G(s)=KTs+1e−τsG(s) = \frac{K}{Ts + 1} e^{-\tau s}

针对大惯性和滞后,温控 PID 要特别处理:一是积分分离,刚开机误差很大时不积分,避免启动过冲;二是限制占空比爬升速率,让加热功率缓慢逼近;三是把期望的响应速度调慢——对烤箱来说,接受“10 分钟到温”比“2 分钟冲过头再降回来”更合理。地暖、恒温箱、3D 打印机热床都是这个思路。

温控的关键是“尊重物理”:既然热量传导慢,就别指望一脚油门瞬间到目的地。老司机的做法是提前规划、缓踩油门、快到了就松,让温度像一辆优雅减速的豪车一样稳稳停在 200℃,蛋糕才能外酥内软。

工程调试实践

新车下线前要经过路试、质检、调校。一套 PID+PWM 系统上线,也有一套标准“试车流程”:先确认执行器本身正常,再逐步闭合控制环,最后用波形和数据评估控制品质。盲调参数就像不看仪表盘瞎开车,翻车是早晚的事。

正规的调试分为四步:第一步“开环测执行器”,给不同占空比看电机转速或温度变化是否正常,确认 PWM 通道和反馈传感器可靠;第二步“闭环只加 P”,观察阶跃响应是否震荡;第三步“加 I 消静差”;第四步“加 D 压超调”。每步都要用示波器或日志记录波形。

控制品质用三个指标量化:上升时间、超调量、稳态误差。超调量定义为:

σ%=ymax−yssyss×100%\sigma\% = \frac{y_{max} - y_{ss}}{y_{ss}} \times 100\%

1. 响应峰值:阶跃响应过程中被控量达到的最大值。

ymaxy_{max}

2. 稳态值:系统稳定后最终停留的值(理想等于设定值)。

yssy_{ss}

3. 超调量:峰值相对稳态值高出的百分比,描述过冲严重程度。

σ%=ymax−yssyss×100%\sigma\% = \frac{y_{max} - y_{ss}}{y_{ss}} \times 100\%

调试中常见的故障有:PWM 波形毛刺(可能是地线干扰或驱动芯片供电不足);电机嗡嗡响(频率过低或占空比突变);温度反复震荡(积分过大或滞后补偿不足);稳态有静差(Ki 太小或系统存在死区)。排查时要“一次只改一个参数”——同时拧三个旋钮,出了问题你根本不知道是谁干的。

好车是调出来的,好系统也是。开环测执行器相当于检查刹车油门是否灵光,闭环调参相当于路试找脚感,波形观测相当于看仪表盘数据,最后性能评估相当于质检合格出厂。这套“试车哲学”,就是工程调试实践的全部内核。

AI 应用场景

智能家居恒温地暖

阶段:边缘设备实时控制决策(感知—决策—执行链路的执行端)

解决的问题:传统机械温控器采用简单通断控制,地暖温度波动大、阀门频繁启停磨损快。AI 边缘网关采集室温与地面温度,用 PID 计算加热阀门 PWM 占空比,实现 ±0.5℃ 的恒温控制,并比通断控制节能 15% 以上。这就像给地暖配了一位“会提前松油门的司机”,而不是只会一脚到底的新手。

具体案例:某智能家居地暖系统,室温传感器每 2 秒采样一次,边缘节点运行 PID(Kp=4.0,Ki=0.08,Kd=1.2),输出映射为 PWM 占空比控制热水阀开度。冬天实测室温波动从通断控制的 ±2℃ 缩小到 ±0.4℃,舒适度大幅提升。

四旋翼无人机电机调速

阶段:飞控中的姿态—推力执行环节

解决的问题:无人机需要毫秒级响应地改变四个电机转速以维持姿态。飞控芯片中的 PID 控制器根据陀螺仪与加速度计的姿态误差输出期望推力,通过 PWM 信号(常见 1kHz 更新率)驱动电子调速器(ESC)控制无刷电机转速。这相当于四个“老司机”同时在线,各自盯住一个电机的油门。

具体案例:消费级无人机在悬停时,姿态环 PID 以 1kHz 频率运行,输出每个电机的 PWM 占空比。遇到阵风时,PID 在数十毫秒内调整四路 PWM,抵消扰动保持稳定悬停,这正是“面对逆风轻轻补油”的空中版。

Python 演示

python66 行
class PIDController:    def __init__(self, kp, ki, kd, output_limit=100.0):        self.kp = kp        self.ki = ki        self.kd = kd        self.integral = 0.0        self.prev_error = 0.0        self.out_min = -output_limit        self.out_max = output_limit     def update(self, setpoint, measurement, dt):        error = setpoint - measurement        self.integral += error * dt        derivative = (error - self.prev_error) / dt        output = self.kp * error + self.ki * self.integral + self.kd * derivative        if output > self.out_max:            output = self.out_max        elif output < self.out_min:            output = self.out_min        self.prev_error = error        return output  class HeatPlant:    def __init__(self, ambient=22.0):        self.temp = ambient        self.ambient = ambient        self.buffer = []     def update(self, duty, dt, lag_steps=40):        self.buffer.append(duty)        if len(self.buffer) > lag_steps:            effective = self.buffer.pop(0)        else:            effective = 0.0        heat = effective * 150.0        loss = (self.temp - self.ambient) * 0.06        self.temp += (heat - loss) * dt        return self.temp  def pwm_switch(duty, period, t):    phase = t % period    return 1.0 if phase < period * duty else 0.0  def main():    pid = PIDController(kp=3.5, ki=0.08, kd=1.2, output_limit=100.0)    plant = HeatPlant(ambient=22.0)    setpoint = 75.0    dt = 0.05    t = 0.0    print("time(s)  temp(C)  duty(%)  pwm")    for i in range(600):        duty = pid.update(setpoint, plant.temp, dt)        if duty < 0.0:            duty = 0.0        plant.update(duty / 100.0, dt, lag_steps=40)        signal = pwm_switch(duty / 100.0, 1.0, t)        if i % 30 == 0:            print("%6.1f %8.2f %8.1f %6.1f" % (t, plant.temp, duty, signal))        t += dt  if __name__ == "__main__":    main()
目的:完整实现一个温控闭环——PID 控制器根据设定温度与实测温度计算控制量,映射为 PWM 占空比驱动带纯滞后的加热对象,并打印温度爬升过程与 PWM 开关信号。
  1. self.integral += error * dt积分项按采样时间累积误差,专门负责消除静差,就像“堵车记账”。
  2. output = self.kp * error + self.ki * self.integral + self.kd * derivativePID 三路信号合成最终控制量。
  3. if output > self.out_max: output = self.out_max输出限幅,防止控制量越界,是抗饱和的第一道防线。
  4. self.buffer.append(duty)` 与 `self.buffer.pop(0)用先进先出队列模拟温度对象的纯滞后特性。
  5. heat = effective * 150.0PWM 等效占空比换算成加热功率,体现“占空比决定平均功率”。
  6. signal = pwm_switch(duty / 100.0, 1.0, t)把连续占空比转成 0/1 开关信号,还原真实执行器的工作方式。
  7. pid.update(setpoint, plant.temp, dt)闭环采样:每一步都用实测温度更新控制量。

常见误区

误区我以为 PWM 是通过改变输出电压大小来调速的,占空比 50% 就是输出一半的电压值。

正解PWM 输出的幅值始终是固定电压,它通过快速开关让负载“平均”感受到较低功率。就像家里的灯开关只有开和关,快速开关灯时人眼看到较暗的光,但瞬时电压始终是 220V。占空比改变的是“平均效果”,不是幅值本身。

为何常见:因为“平均功率下降”很容易被直观理解成“电压被调小了”,忽略了开关的本质。

误区温控不就是温度低了加热、高了停止吗?加个回差就行了,要 PID 干嘛?

正解简单通断控制在目标附近必然反复振荡——温度低→全功率加热→冲过头→停止→冷下来→再加热,波动明显。PID 能提前预测趋势、平滑调节占空比,让温度稳稳贴住设定值,就像开车只有全开和全关油门一定会猛烈冲过头一样。

为何常见:很多日常家电确实只用通断控制,让人误以为够用,但高质量控制需要平滑与精准。

误区有静差就拼命加大 Ki,觉得积分越强越能快速消掉偏差。

正解Ki 过大会让积分项在误差稍大时快速膨胀,导致输出大幅波动和超调,系统来回震荡。正确的做法是配合抗积分饱和策略小步调整,让“记账”和“还账”都保持温和。

为何常见:积分确实能消除静差,初学者容易把“有效”放大成“越大越好”,忽略了过冲代价。

误区数字开关频率越高,控制越精细,所以频率越高越好。

正解频率过高时,开关管每次切换都有损耗,发热明显增大,驱动电路也更难设计;频率过低则电机抖动、发出可闻噪声。频率选择是在噪声、损耗、响应速度之间的权衡,就像点油门手速太快脚踝会酸、太慢车会一顿一顿。

为何常见:直觉上“更快≈更好”,忽略了开关损耗这类物理限制。

误区参数整定好后,无论负载、环境怎么变,控制效果都一样好。

正解被控对象特性(如负载质量、环境温度)变化后,原参数可能失配,出现震荡或响应变慢。载重不同的电动车、换季时的烤箱,都需要重新整定参数,必要时采用自适应 PID 或增益调度。

为何常见:实验室环境稳定,现场工况多变,忽略了系统的时变特性。

面试题

Q1. PID控制中比例项P的直接作用是?

单选题 · easy

  • A.消除系统的稳态误差
  • B.放大当前的偏差信号← 正确答案
  • C.预测偏差的变化趋势
  • D.限制输出信号的幅值

答案:B。比例项把当前偏差乘以 Kp 直接输出,偏差越大修正力越大,像“离得越远油门越深”。消除静差是积分项 I 的任务,预测趋势是微分项 D 的任务,限幅是工程保护措施。

Q2. PWM信号中占空比的含义是?

单选题 · easy

  • A.高电平时间占周期比重← 正确答案
  • B.信号电压峰值的大小值
  • C.开关管的导通电流大小
  • D.信号频率的高低程度值

答案:A。占空比 = 高电平时间 / 周期,决定负载获得的平均功率。它不改变电压幅值,也不决定开关频率高低。就像点油门时“踩住的时间占比”才是关键。

Q3. PID控制属于下列哪种控制方式?

单选题 · easy

  • A.开环前馈控制方式
  • B.闭环反馈控制方式← 正确答案
  • C.手动随动控制方式
  • D.无反馈预测控制法

答案:B。PID 必须测量实际输出并与目标比较获得误差,再据此修正,正是“测量—比较—修正”的闭环回路,就像司机看着路况不断调整油门,而不是蒙眼开车。

Q4. 系统存在稳态误差(静差)时,最合适的调整是?

单选题 · mid

  • A.增大比例或加入积分控制← 正确答案
  • B.增大微分控制的作用量
  • C.降低PWM的开关频率值
  • D.提高执行器的饱和上限值

答案:A。静差来自比例控制“误差变小修正力也变小”的天然缺陷,增大 Kp 能缩小静差但无法彻底消除,加入积分项才能彻底归零。微分项只管变化趋势,与静差无关。

Q5. PWM频率选择过低,最典型的后果是?

单选题 · mid

  • A.开关损耗明显增大发热
  • B.电机抖动并发出噪声← 正确答案
  • C.占空比无法精确设置值
  • D.输出电压幅值出现下降

答案:B。频率过低时,电机在每个周期内经历明显的“加速—减速”循环,产生可闻噪声和抖动,像“点油门手速太慢”导致车身一顿一顿。开关损耗增大是频率过高的典型问题。

Q6. 微分项D在PID中的主要作用是?

单选题 · mid

  • A.消除系统的稳态误差值
  • B.依据误差趋势超前修正← 正确答案
  • C.增强系统的抗噪声能力
  • D.提高输出信号的幅值

答案:B。微分项对误差求导,看到“误差正在快速缩小”就提前收力或反向修正,抑制超调,像快到目的地时根据车速提前松油门。它不负责消除静差。

Q7. 下列哪些属于抗积分饱和的常用策略?

多选题 · mid

  • A.输出限幅防溢← 正确答案
  • B.积分分离控制← 正确答案
  • C.增大比例系数
  • D.条件积分策略← 正确答案

答案:ABD。输出限幅把控制量钳在允许范围并配合积分钳位,积分分离在误差大时暂停积分,条件积分在输出饱和时冻结积分——三者都是抗饱和手段。增大比例系数与抗饱和无关,反而可能加剧震荡。

Q8. 用临界比例法整定PID参数,前提条件是?

单选题 · hard

  • A.加入微分控制消除振荡
  • B.纯比例能产生等幅振荡← 正确答案
  • C.断开反馈用开环响应测
  • D.加入积分消除静态误差

答案:B。临界比例法先把积分和微分置零,只保留纯比例控制并逐步加大 Kp,直到系统出现等幅振荡,记录 Kcr 和 Tcr 再查配方表。若系统因安全限制无法等幅振荡,此法不适用。

Q9. 温控系统呈现大惯性加纯滞后,合理措施包括?

多选题 · hard

  • A.适当降低期望响应速度← 正确答案
  • B.采用积分分离防过冲← 正确答案
  • C.盲目增大比例系数值
  • D.合理设计滞后补偿措施← 正确答案

答案:ABD。大惯性滞后对象响应慢,要求“快速到位”只会换来大超调,放慢期望速度更理智;积分分离能防启动过冲;滞后补偿(如前馈或预估策略)能改善控制品质。盲目增大 Kp 会加剧震荡。

Q10. 电机启动时PID输出长时间饱和导致积分累积,以下措施有效的是?

多选题 · extreme

  • A.采用积分分离控制← 正确答案
  • B.输出限幅加积分钳位← 正确答案
  • C.提高比例系数值大小
  • D.启动阶段冻结积分值← 正确答案

答案:ABD。启动时误差大、输出长时间顶在上限,积分项持续累积就是“堵车记账”。积分分离在误差大时暂停积分,输出限幅配合积分钳位直接掐住积分增长,启动冻结积分在误差未收敛前不记账——三者都有效。提高比例系数只会让输出更快饱和,无法解决问题。