据我所知,对于统一反馈,我应该使用这段代码:
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
答案 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.