不完全微分PID控制低通滤波器传递函数怎样确定

例如已知控制对象为10/(3S^2+S+2),确定其要用到的低通滤波器

以下内容部分参考ChatGPT模型:


首先需要将控制对象转化成标准形式,即:

G(s) = K/(Ts+1)

其中,K为系统增益,T为系统时间常数。

对于不完全微分PID控制,需要添加一个低通滤波器,使其变为完全微分PID。低通滤波器的传递函数一般为:

Gf(s) = 1/(Ts+1)

将控制对象和低通滤波器连接起来,得到闭环控制系统的传递函数为:

Gc(s) = Kp + Ki/s + Kd(sT+1)/sT

其中,Kp、Ki、Kd分别为比例、积分、微分系数。

通过将Gc(s)G(s)相乘,并进行化简,可得到完整的传递函数:

G(s) = Kc/(Ts^3 + (1+Kd)Ts^2 + (Kp+Ki+2Kd)Ts + Kp+Ki)

根据这个传递函数,可以确定所需的低通滤波器的传递函数为:

Gf(s) = 1/(Tf*s+1)

其中,Tf为低通滤波器的时间常数。

对于控制对象为10/(3s^2+s+2)的情况,可以将其转化为标准形式,得到:

G(s) = 10/(3s+1)(s+2)

根据上述公式,可以计算出所需的低通滤波器的时间常数为:

Tf = (Kp+Ki+2Kd)/(Kd+1) = 1.5

因此,所需的低通滤波器的传递函数为:

Gf(s) = 1/(1.5s+1)

代码实现如下:

float Kp = 1.0;
float Ki = 0.5;
float Kd = 0.2;
float Tf = 1.5;

float Gf(float s) {
  return 1.0 / (Tf*s + 1.0);
}

如果我的建议对您有帮助、请点击采纳、祝您生活愉快