构建统一反馈系统 - 不工作

时间:2015-02-28 20:56:50

标签: matlab

据我所知,对于统一反馈,我应该使用这段代码:

loop = feedback(G,1);

G是一个开环传输函数,但是当我应用此代码时,它会向我显示此问题。

??? Error using ==> feedback at 72

Not enough input arguments.

Error in ==> fazlay at 25
[u,v]=feedback(u1,v1,1);

这是我写的代码:

u1=[5400];
v1=[2 2.5 1.5];
[u,v]=feedback(u1,v1,1);

系统传输功能是:

       5400
-------------------
2 s^2 + 2.5 s + 1.5

1 个答案:

答案 0 :(得分:0)

您告诉我们您如何调用代码的方式是一回事,但您实际调用代码的方式是另一回事。具体来说,您具有传递函数的分子和分母系数,但您需要先将它们合并到一个传递函数中。因此,请使用tf

u1=[5400]; v1=[2 2.5 1.5];
G = tf(u1, v1);

现在,请使用feedback

M = feedback(G, 1)

M =

          5400
  --------------------
  2 s^2 + 2.5 s + 5402

Continuous-time transfer function.

如果您看一下,可以通过向上和向下分为2来简化此TF。您可以使用minreal实现此简化:

Mmin = minreal(M)

Mmin =

         2700
  -------------------
  s^2 + 1.25 s + 2701

Continuous-time transfer function.

如果你想仔细检查你是否有正确的传递函数,你知道控制系统的闭环传递函数是:

因此,G(s)是您之前定义的,H(s) = 1,因此您可以自行进行计算:

M = G / (1 + G);
Mmin = minreal(M)

Mmin =

         2700
  -------------------
  s^2 + 1.25 s + 2701

Continuous-time transfer function.
相关问题