主要内容

离散时间比例-积分-导数 (PID) 控制器

所有 PID 控制器对象类型 pidpidstdpid2pidstd2 都可以表示离散时间 PID 控制器。

离散时间 PID 控制器表示

离散时间 PID 控制器由以下公式表示。

形式公式
并联型 (pid)

C=Kp+KiIF(z)+KdTf+DF(z),

其中:

  • Kp = 比例增益

  • Ki = 积分器增益

  • Kd = 导数增益

  • Tf = 导数滤波器时间

标准型 (pidstd)

C=Kp(1+1TiIF(z)+TdTdN+DF(z)),

其中:

  • Kp = 比例增益

  • Ti = 积分器时间

  • Td = 导数时间

  • N = 导数滤波器除数

二自由度并联型 (pid2)

二自由度控制器的输出 (u) 与其两个输入(ry)之间的关系为:

u=Kp(bry)+KiIF(z)(ry)+KdTf+DF(z)(cry)

在此表示中:

  • Kp = 比例增益

  • Ki = 积分器增益

  • Kd = 导数增益

  • Tf = 导数滤波器时间

  • b = 比例项上的设定点权重

  • c = 导数项上的设定点权重

二自由度标准型(pidstd2 对象)

u=Kp[(bry)+1TiIF(z)(ry)+TdTdN+DF(z)(cry)]

在此表示中:

  • Kp = 比例增益

  • Ti = 积分器时间

  • Td = 导数时间

  • N = 导数滤波器除数

  • b = 比例项上的设定点权重

  • c = 导数项上的设定点权重

在所有这些表示形式中,IF(z) 和 DF(z) 分别是积分器和导数滤波器的离散积分器公式。使用控制器对象的 IFormulaDFormula 属性来设置 IF(z) 和 DF(z) 公式。下表显示了 IF(z) 和 DF(z) 的可用公式。Ts 是采样时间。

IFormulaDFormulaIF(z) 或 DF(z)
ForwardEuler(默认)

Tsz1

BackwardEuler

Tszz1

Trapezoidal

Ts2z+1z1

如果在创建控制器对象时未指定 IFormulaDFormula 或两者对应的值,则默认使用 ForwardEuler。有关设置和更改离散积分器公式的详细信息,请参阅控制器对象 pidpidstdpid2pidstd2 的参考页。

创建离散时间标准型 PID 控制器

此示例说明如何创建标准型离散时间比例-积分-导数 (PID) 控制器,该 PID 控制器具有以下参数:Kp = 29.5、Ti = 1.13、Td = 0.15 N = 2.3 和采样时间 Ts 0.1:

C = pidstd(29.5,1.13,0.15,2.3,0.1,...
             'IFormula','Trapezoidal','DFormula','BackwardEuler')

此命令创建一个采用 IF(z)=Ts2z+1z1DF(z)=Tszz1pidstd 模型。

您可以使用 pid 以相同的方式为并联型控制器设置离散积分器公式。

标准型的离散时间二自由度 PI 控制器

使用梯形离散化公式创建一个标准型的离散时间二自由度 PI 控制器。使用 Name,Value 语法指定公式。

Kp = 1;
Ti = 2.4;
Td = 0;    
N = Inf; 
b = 0.5;   
c = 0;      
Ts = 0.1;
C2 = pidstd2(Kp,Ti,Td,N,b,c,Ts,'IFormula','Trapezoidal')
C2 =
 
                       1     Ts*(z+1)
  u = Kp * [(b*r-y) + ---- * -------- * (r-y)]
                       Ti    2*(z-1) 

  with Kp = 1, Ti = 2.4, b = 0.5, Ts = 0.1
 
Sample time: 0.1 seconds
Discrete-time 2-DOF PI controller in standard form

设置 Td = 0 创建没有导数项的 PI 控制器。如显示结果所示,此控制器未使用 Nc 的值。显示结果还显示,积分器使用了梯形公式。

另请参阅

| | |

主题