案例:G(s)=2/[s(0.5s+1)],T=0.5 s,设计单位速度输入下的最小拍控制器

适用对象:已学过采样控制、脉冲传递函数与数字控制器基础的初学者

学习目标
1. 理解“最小拍”的本质:让输出在有限个采样拍内达到目标。
2. 掌握单位速度输入(斜坡输入)最小拍控制器的设计条件。
3. 会做本题:先求脉冲传递函数,再选闭环传递函数,最后反求 D(z)。
4. 会判断闭环稳定性,并能用 MATLAB 做响应验证。

一、最小拍控制的基本原理

1. 什么叫“最小拍”

最小拍控制(Deadbeat Control)的核心思想是:把闭环极点尽量配置在原点附近,使系统在有限个采样周期内准确到达目标值,并在之后保持不变。对数字系统而言,这类系统的响应不是“渐进收敛”,而是“有限拍到位”。

而不同输入信号,其 Z  变换形式不同,所以闭环误差传递函数 E(z)  的设计形式也不同,常常就会出现你说的

 

在最小拍控制系统设计中,不同输入信号的跟踪要求决定了闭环误差传递函数的结构形式。对于单位阶跃输入,输入 Z变换含有一阶因子 (1−z−1)−1 ,因此误差传递函数中至少应包含 (1−z−1) ;对于单位速度输入,输入 Z 变换含有二阶因子 (1−z−1)−2 ,因此误差传递函数中至少应包含 (1−z−1)2;对于单位加速度输入,输入 Z变换含有三阶因子 (1−z−1)−3,因此误差传递函数中至少应包含 (1−z−1)3。这样设计后,输入信号中的极点可被误差传递函数中的零点抵消,从而使误差成为有限项序列,实现有限拍无误差跟踪。这正是最小拍控制中误差系统设计的核心思想。

2. 为什么本题与“单位速度输入”有关

单位速度输入就是斜坡输入 r(t)=t。采样后有 r(k)=kT。若希望对斜坡输入实现有限拍跟踪,则闭环误差传递函数必须至少含有 (1-z^{-1})^2 因子;直观上,这相当于不仅要对常值量无静差,还要对线性增长输入也能在有限步后消除误差。

3. 本题的设计思想

本题采用“先选理想闭环,再反求控制器”的设计思路:
(1)先把连续对象经零阶保持器离散化,得到脉冲传递函数 G(z);
(2)根据单位速度输入最小拍跟踪条件,选取闭环传递函数 Φ(z)=Y(z)/R(z);
(3)由 Φ(z)=D(z)G(z)/[1+D(z)G(z)] 反求 D(z);
(4)最后分析闭环稳定性和跟踪效果。

2. 为什么本题与“单位速度输入”有关

单位速度输入就是斜坡输入 r(t)=t。采样后有 r(k)=kT。若希望对斜坡输入实现有限拍跟踪,则闭环误差传递函数必须至少含有 (1-z^{-1})^2 因子;直观上,这相当于不仅要对常值量无静差,还要对线性增长输入也能在有限步后消除误差。

3. 本题的设计思想

本题采用“先选理想闭环,再反求控制器”的设计思路:
(1)先把连续对象经零阶保持器离散化,得到脉冲传递函数 G(z);
(2)根据单位速度输入最小拍跟踪条件,选取闭环传递函数 Φ(z)=Y(z)/R(z);
(3)由 Φ(z)=D(z)G(z)/[1+D(z)G(z)] 反求 D(z);
(4)最后分析闭环稳定性和跟踪效果。

二、题目与求解思路

题目:已知连续对象

    G(s)=2 / [ s(0.5s+1) ] ,采样周期 T=0.5 s,设计单位速度输入下的最小拍控制器。

求解思路:

步骤1

将对象改写为便于离散化的形式,并求 ZOH 条件下的脉冲传递函数。

步骤2

把 G(z) 写成 q=z^{-1} 形式,提取出“纯延迟 + 动态多项式”的结构。

步骤3

针对单位速度输入,构造最小拍闭环传递函数 Φ(q),使误差有限拍为零。

步骤4

由 D(q)=Φ(q)/[G(q)(1-Φ(q))] 求出控制器。

步骤5

分析闭环稳定性、控制器特性及 MATLAB 验证方法。

三、步骤1:求对象的脉冲传递函数 G(z)

先将连续对象整理为:

    G(s)=2 / [ s(0.5s+1) ] = 4 / [ s(s+2) ]

在零阶保持器作用下,采样周期 T=0.5 s。令 q=z^{-1},并记 a=e^{-1}≈0.367879。由 ZOH 离散化可得对象的脉冲传递函数为:

    G(z)= [ a z^{-1} + (1-2a) z^{-2} ] / [ 1-(1+a)z^{-1}+a z^{-2} ]

也可写成 q 形式:

    G(q)= q [ a + (1-2a)q ] / [ (1-q)(1-aq) ]

其中 a=e^{-1}=0.367879,因而:

    G(q)= q (0.367879 + 0.264241 q) / [ (1-q)(1-0.367879 q) ]

说明:对象本身带一个积分环节,因此离散后分母中自然出现 (1-q) 因子。这也是后续能够对速度输入进行有限拍跟踪的重要基础。

四、步骤2:根据“单位速度输入最小拍”构造闭环传递函数

1. 速度输入的离散表达式

单位速度输入 r(t)=t,采样后 r(k)=kT,其 Z 变换可写成:

    R(q)= T q / (1-q)^2

2. 最小拍跟踪条件

若希望误差在有限拍后完全为零,则

    E(q)= [1-Φ(q)] R(q)

必须成为有限项多项式。由于 R(q) 含有 (1-q)^{-2},因此 1-Φ(q) 至少应包含 (1-q)^2 因子。为得到“最短”有限拍响应,取最简单的形式:

    1-Φ(q) = (1-q)^2

故有:

    Φ(q)=1-(1-q)^2 = 2q-q^2

这意味着闭环输出满足

    Y(q)=Φ(q)R(q),即 y(k)=2r(k-1)-r(k-2)

对斜坡输入 r(k)=kT 来说,当 k≥2 时:

    y(k)=2(k-1)T-(k-2)T = kT = r(k)

因此系统在 2 个采样拍后实现无误差跟踪,这正是“单位速度输入最小拍控制”的含义。

五、步骤3:由闭环传递函数反求最小拍控制器 D(z)

闭环关系为:

    Φ(q)= D(q)G(q) / [ 1 + D(q)G(q) ]

故控制器可写为:

    D(q)= Φ(q) / { G(q)[1-Φ(q)] }

把 Φ(q)=2q-q^2、1-Φ(q)=(1-q)^2 以及 G(q)= q[a+(1-2a)q]/[(1-q)(1-aq)] 代入,得到:

    D(q)= (1-aq)(2-q) / { [a+(1-2a)q](1-q) }

其中 a=e^{-1}=0.367879。写成数值形式:

    D(q)= [ 2 -1.7357589 q +0.3678794 q^2 ] / [ 0.3678794 -0.1036383 q -0.2642411 q^2 ]

换回 z^{-1} 形式:

    D(z)= [ 2 -1.7357589 z^{-1} +0.3678794 z^{-2} ] / [ 0.3678794 -0.1036383 z^{-1} -0.2642411 z^{-2} ]

六、步骤4:写成差分方程,便于程序实现

由 U(z)=D(z)E(z) 可得:

    [0.3678794 -0.1036383 z^{-1} -0.2642411 z^{-2}]U(z)

    = [2 -1.7357589 z^{-1} +0.3678794 z^{-2}]E(z)

对应时域差分方程为:

    0.3678794 u(k) -0.1036383 u(k-1) -0.2642411 u(k-2)

    = 2e(k) -1.7357589 e(k-1) +0.3678794 e(k-2)

若化成递推实现形式:

    u(k)=0.2817182 u(k-1) +0.7182818 u(k-2)

         +5.4365637 e(k) -4.7182818 e(k-1) +1.0000000 e(k-2)

这就是可直接用于程序编写的最小拍控制器算法。

七、稳定性与控制品质分析

1. 闭环稳定性

本题中选取的闭环传递函数为 Φ(q)=2q-q^2=q(2-q)。其闭环特征由 1-Φ(q)=(1-q)^2 给出,从响应角度看,输出误差在有限拍内归零,闭环是稳定的,并且具有严格的有限拍跟踪性质。

2. 为什么说“2拍后跟踪到位”

因为 y(k)=2r(k-1)-r(k-2)。对斜坡输入 r(k)=kT 而言,从 k=2 开始,输出就与输入完全相等,所以误差只在开始的 2 个采样时刻存在。

3. 实际工程中的注意事项

最小拍控制虽然快,但一般有三个常见问题:
(1)控制作用较猛,初始控制量可能偏大;
(2)对模型误差敏感,一旦对象参数变化,有限拍性质会被破坏;
(3)控制器中往往带有 z=1 附近的极点或积分特性,数值实现时应注意饱和与抗积分饱和。

八、MATLAB 验证代码

% 最小拍控制器设计验证
clear; clc; close all;
Ts = 0.5;
a  = exp(-1);

% 对象脉冲传递函数 G(z)
numG = [0 a (1-2*a)];
denG = [1 -(1+a) a];
Gz = tf(numG, denG, Ts, 'variable', 'z^-1');

% 最小拍控制器 D(z)
numD = [2 -(1+2*a) a];
denD = [a (1-3*a) (2*a-1)];
Dz = tf(numD, denD, Ts, 'variable', 'z^-1');

% 闭环系统
Phi = feedback(Dz*Gz, 1);

% 单位速度输入:r(k)=k*Ts
N = 20;
t = (0:N-1)'*Ts;
r = t;                      % 单位速度输入
y = lsim(Phi, r, t);

% 绘图
stairs(t, r, 'k--', 'LineWidth', 1.2); hold on;
stairs(t, y, 'b', 'LineWidth', 1.8);
grid on;
xlabel('Time (s)');
ylabel('Output');
legend('r(k)=kT','y(k)');
title('单位速度输入下的最小拍跟踪响应');

% 观察误差
e = r - y;
disp(table(t, r, y, e));

九、总结

本题对象

连续对象先经 ZOH 离散化,写成 G(q)=qB(q)/A(q) 的形式。

本题关键

因为输入是单位速度输入,故 1-Φ(q) 至少要含有 (1-q)^2。

最短设计

取 1-Φ(q)=(1-q)^2,可得 Φ(q)=2q-q^2,实现 2 拍无差跟踪。

控制器求法

用 D(q)=Φ(q)/[G(q)(1-Φ(q))] 反求,再写成差分方程实现。

要点:

先离散,后选闭环;斜坡输入看平方;误差有限拍为零,再反推得控制器。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐