0

我得到了一个阶跃响应图,并从中获得了传递函数。该循环包括一个工厂和一个 PID 控制器,我知道产生输出图的 PID 值。我通过应用阶跃输入验证了我找到的传递函数是正确的,并且输出图与我看到的相匹配。

我的代码如下所示:

T = tf([.00248,-.00011,.000163],[1,.01,.00041])%plant and controller(P*C) with feedback
C = pid(2.5,0.5,0.1)%PID values
%T = feedback(C*plant,1)%need to find plant
step(T)

由此,我需要找到工厂传递函数,以便我可以使用它来找到最佳 PID 值,而不是现在使用的那些。

4

1 回答 1

1

如果您查看具有统一反馈的控制回路:

在此处输入图像描述

你有闭环传递函数(那是你的T):

Y(s) / U(s) = P*C / (1 + P*C) = T

如果反转关系,则可以表示PCand的函数T

P = T / (C * (1-T))

在 MATLAB 中,我会将其与函数的使用结合起来,minreal以获得传递函数的最小实现:

>> T = tf([.00248,-.00011,.000163],[1,.01,.00041])

Transfer function 'T' from input 'u1' to output ...

      0.00248 s^2 - 0.00011 s + 0.000163
 y1:  ----------------------------------
            s^2 + 0.01 s + 0.00041

Continuous-time model.
>> C = pid(2.5,0.5,0.1)

Transfer function 'C' from input 'u1' to output ...

      0.1 s^2 + 2.5 s + 0.5
 y1:  ---------------------
                s

Continuous-time model.
>> P = minreal(T / (C * (1-T)))

Transfer function 'P' from input 'u1' to output ...

           0.02486 s^3 - 0.001103 s^2 + 0.001634 s
 y1:  --------------------------------------------------
      s^4 + 25.01 s^3 + 5.254 s^2 + 0.05687 s + 0.001238

Continuous-time model.
于 2021-03-08T16:23:28.180 回答