PID控制器建模:从比例控制到完整反馈回路
PID控制器根据误差 e(t) = 设定值 - 实测值 生成控制信号。其最简单形式中,比例部分 u(t) = K_p * e(t) 用于纠正偏差。例如在水位控制中:当 e(t) > 0 时,阀门按误差比例开启,但信号上限为最大流量。
现实系统存在延迟。对于加热器,热量扩散遵循扩散方程 ∂w/∂t = Δw + f(x,y,t),其中 f 表示热源。这是一个具有阻尼特性的扩散过程——类似于能量损耗的波动现象。
热扩散的数值模拟
在Mathematica中进行解析求解,可观察温度演化过程:
sol = NDSolveValue[
{
D[w[x, y, t], t] == Laplacian[w[x, y, t], {x, y}] +
If[(x + 2)^2 + y^2 < 0.1 && t > 0.0, 100.0, 0],
w[x, y, 0] == 0
},
w,
{x, y} ∈ Rectangle[{-2, -1}, {2, 1}],
{t, 0, 10}
];
远离热源的点温度上升存在延迟。为模拟反馈机制,我们改用离散时间域建模,采用FDTD(有限差分时域)方法。
二维热方程的基本计算步骤如下:
solveHeat[w_, f_, dt_: 0.0025, dx_: 0.1] := Table[
If[i > 1 && i < 50 && j > 1 && j < 50,
w[[i, j]] + dt (
w[[i - 1, j]] + w[[i, j - 1]] - 4 w[[i, j]] +
w[[i, j + 1]] + w[[i + 1, j]]
)/dx^2 + dt f[i, j],
w[[i, j]]
],
{i, 50}, {j, 50}
];
CFL稳定性条件:δt / δx² ≤ 0.25。开关加热器的仿真结果验证了系统的惯性特性。
比例控制器:持续存在的误差
P控制器连接方式:加热器 = K_p * Clip[误差, {0, ∞}]。在低功率下,由于散热损失,温度会稳定在目标值以下。提高K_p虽能缩短响应时间,但会加剧振荡,且稳态误差依然存在。
图表显示:
- 低功率:升温缓慢,无法达到设定值。
- 高功率:出现振荡,无法收敛。
积分环节:消除稳态误差
积分项累积误差:accError += 误差;u(t) = K_p 误差 + K_i accError。该机制可补偿静态损耗。
以降低功率为例:
Module[{w = Table[0., {50}, {50}], accError = 0.0},
Table[
With[{error = (0.0022 - w[[25, 25]])},
{
heater = 20000.0 Clip[error + 0.001 accError, {0, Infinity}]
},
accError += error;
w = solveHeat[w, Function[{i, j}, If[Max[Abs[{i, j} - {25, 2}]] < 1, heater, 0.0]]];
{{steps, w[[25, 25]]}, {steps, heater/30000.0}}
],
{steps, 1, 3000}
]
];
温度最终无振荡地趋近设定值。
微分环节:预测振荡趋势
微分项响应误差的变化速率:u(t) = K_p e + K_i ∫e + K_d * de/dt。它能有效抑制未来的超调。
完整的PID控制可显著缩短上升时间,但对参数调节要求极高。若K_d过大,则可能引入伪影。
对比分析:
- 仅P控制:响应慢,存在持续误差。
- PI控制:可收敛,但可能出现超调。
- PID控制:响应最优,振荡最小。
数学定义与机械系统建模
完整公式为:u(t) = K_p e(t) + K_i ∫₀ᵗ e(τ) dτ + K_d de/dt。
对于质量为m的物体:x''(t) = u(t)/m。对PID表达式求导后可简化为:u'(t) = K_i e + K_p e' + K_d e''。
无控制器时:恒定输入u=1对应轨迹 x(t) = t²/(2m)——呈抛物线形态。
使用P控制器时:误差函数 e(t) = a - x(t) 构成闭环系统。系数调优是一个需考虑系统动态特性的迭代过程。
核心要点:
- 比例项提供基础响应,但无法消除稳态误差。
- 积分项可消除惯性系统中的累积偏差。
- 微分项预测变化趋势,加速系统稳定。
- FDTD仿真有助于直观理解控制效果,便于调试。
- 系统稳定性需满足CFL条件,并限制控制输出范围。
— Editorial Team
暂无评论。