基于 PID 控制的离散控制系统实现
发布时间:2022-12-02 来源:控制工程网
掌握如何减少噪声,使用中断服务例程,以及更多关于PID控制传递函数的信息。
虽然在 s 域中处理控制系统是完全合乎逻辑的,因为受控系统是连续(时间)运行的,但控制系统的实现是另一回事。现在,几乎所有的控制系统都是基于微处理器(微控制器)或数字信号处理器的数字系统,如图 1所示。
图 1 :此框图显示了一个数字闭环控制系统。
用于离散时间控制系统的 PID
模拟 PID 控制器,仍然被认为是非常强大的(图 2),可以修改为离散时间控制系统,因为将其微分方程(等式 1)重写为其差分形式(等式 2)并不困难。
其中 u[n] 是当前时间 n 的驱动值,e[n] 是时间 n 的调节误差, e [n-1] 是前一采样时间 n-1 的调节误差。T 是采样的时间段。相同的时间段 T 用于信号处理,即用于 u[n] 的计算。
对于实际应用,等式 2 需要从积分部分开始进行某些修改。积分部分将调节误差的每个值相加,然后将该和乘以时间常数和积分常数。如果时间或积分常数的值突然变化(这可能发生,尤其是在整定过程中),则驱动值将突然变化并导致问题。更好的方法是先将调节误差乘以这两个常数,然后再累加其乘积。通过使用梯形近似积分代替矩形近似积分,可以从另外一方面实现改进。
如何减少噪声?
等式 2 的导数是问题的第二个来源。在其简单形式中,该成员往往是噪声。为了减少噪声,可以使用两个以上(例如四个)连续的调节误差采样。结果就好像调节误差的差值通过了一个微小的(4 阶)有限脉冲响应(FIR)滤波器。修改后的 PID 公式如下等式 3 所示。该差分方程可以在任何编程语言和任何微处理器 / 微控制器中实现。
中断服务程序
尽管如此,关于采样 / 处理周期 T 还有一个悬而未决的问题。控制过程周期(频率)是多少,它取决于什么?控制频率仅取决于闭环传递函数的时间常数。请记住,这个时间常数可以比受控系统本身的时间常数小一个数量级。最佳情况下,运行控制程序的频率应比闭环时间常数 τ 的值高 5 到 10 倍。在控制过程开始运行之前,应具有 r[n] 和y[n] 的最新样本。
最好的安排是,如果控制程序被称为中断服务例程(ISR),则由提供 y[n] 值的 A/D转换器触发。控制程序计算的结果,即执行变量 u[n],应尽快发送到 D/A 转换器。否则,受控系统的传递函数将受到传输延迟的影响,这可能会破坏控制系统(使其不稳定)。
为了避免噪声,必须彻底过滤所有测量变量,如 y(t)信号,因为噪声总是可以从外部渗透到控制系统中,例如,由电子部件(主要是开关电源)引起的板载噪声。它们应通过适当的抗混叠滤波器,并且截止频率远低于采样频率 1/T 的一半。如果由于某种原因,它们无法通过适当的模拟滤波器进行过滤,则至少应过采样并进行数字滤波。
图 2: PID 控制器根据比例、积分和微分分量计算驱动值
关于 PID 控制传递函数的更多信息
等式 3 不是实现离散 PID 控制器的唯一方法。另一种可能性是将 PID 控制传递函数从其 s 域(等式 4)转换为 z 域。实际上,这种转变有两种方式。两者都是从离散时间积分的不同近似推导而来的。最常见的近似离散时间积分是矩形(等式 5)和梯形(等式 6)近似。
如果在 z 域中表达 ,对于矩形近似,您将得到
这是梯形近似的结果 :
等式 7 和 8 对应于积分项,其在 s 域中表示为 1/s。因此,如果取等式 7 右侧的倒数(s),并用其替换等式 4中的每个 s 算子,则会得到 PID 补偿的以下传递函数(在z 域中):
类似地,如果取等式 8 右侧的倒数,并用其替换等式 4 中的每个 s 算子,则会得到以下 PID 补偿的传递函数(在 z 域中):
z 域中的控制系统建模
等式 9 和等式 10 适用于在 z 域中对控制系统建模(例如在 Matlab 中),但不能由任何控制器直接实现。然而,在对等式 9 进行 z 逆变换后,您将得到以下等式
和等式 10 的 z 逆变换 :
等式 11 和等式 12 非常适合在任何微处理器(微控制器)或数字信号处理器上实现。如果将 K1、K2 和 K3作为预先计算好的常数(而不是变量),整个控制过程将需要三次乘法、四次加法并需要记住四个先前计算的变量——两个调节误差 e[n-1] 和 e[n-2],以及两个驱动变量 u[n-1] 和 u[n-2](仅适用于等式 12)。e[n] 计算需要一次减法。
无限脉冲响应滤波器
您可以进一步优化控制程序。数字信号处理行业有非常流行的递归滤波器,即所谓的无限脉冲响应(IIR)滤波器。通常,它们是级联二阶滤波器。图 3 显示了一个这样的二阶滤波器,通常称为“双二阶”,转换为其标准形式,即级联形式 II。
图 3 :二阶规范 IIR 滤波器部分用作 PID 控制器。
实现这种双二阶需要更少的内存空间,只需要记住两个状态变量 d[n-1]、d[n-2],而不是四个变量。标准无限脉冲响应滤波器段由以下两个差分方程描述 :
尽管选择有限,但 A1 和 A2 的值仍然有选择的余地。然而,必须遵守两条规则 :A1 和 A2 值的总和必须始终为1.0,并且任何值都不能大于 1.0。因此,可以使用的 A1和 A2 系数如,值 1.0 和 0,或 0.5 和 0.5,或 0 和 1.0,或介于两者之间的任何值。
最后一种组合,其响应与等式 12 的相同。A2 值越低,控制系统响应越快。这可以简化整定过程,因为您可以将 KI 常数(以及 KP 和 K D 值)设置为某个合理的值,而不是频繁修改 KI 值(如果您想使 KP 和 K D 值达到最优则需要重新计算,即取消受控系统的极点),例如,将 KI 调整为值 10/(τ1+τ2)(其中 τ1 和 τ2 是受控系统的主要时间常数),并通过调整 A1 和 A2 值完成最终的整定。
并非每个 PID 实现都令人满意
虽然在必须实现任何算法问题时有一个选择总是很好的,但并非每个实现都能提供令人满意的结果。这同样适用于本文所描述的 PID 控制过程。理论上,所有这些过程在纸面上都很好地工作,但是当实施时,就会出现问题。
虽然第一个公式,等式 3 的实现需要比其余两个更多的数学运算(乘法、加法)和记住更多先前的结果,但它提供了非常平滑的结果。等式 11 的行为也类似。然而,等式 12 的实现将无法产生令人满意的结果,因为它在稳定边缘上运行,其输出将永久振荡。等式13/14 将正常工作,但 A1 系数必须保持 >0,否则的话,其行为将与等式 12 实现完全相同,并产生永久振荡。(作者:Peter Galan)
关键概念:
■ 检查在离散时间控制系统中使用 PID的选项。
■ 掌握如何减少噪声,使用中断服务例程,以及更多关于 PID 控制传递函数的信息。
思考一下:
为什么并非所有 PID实现都令人满意。