如何在八度音阶中划分两个传递函数?

时间:2013-10-28 18:25:37

标签: octave

如何在八度音程中分割两个传递函数?我想计算整体传递函数:A = CPTd / 1 + CPTe + CP,其中C,P,Td和Te本身都是传递函数。

我的代码:

# not a  function file:
Wn = 4000;
DampingRatio = 2^-0.5;
P=tf([1],[0.001 1]);
C=tf([Wn^2],[1 2*DampingRatio*Wn 0]) / P;
Td=tf([-0.0001 1],[0.0001 1]);
Te=tf([-0.00001 1],[0.00001 1]);
CP=sysmult(C,P);

A_num=sysmult(CP,Td);
A_denum=sysadd(tf([1],[1]), sysadd(sysmult(CP,Te),CP));
A = Anum / A_denum;
sysout(A, "tf");

提前致谢。

1 个答案:

答案 0 :(得分:0)

简单乘法应该有效(使用Octave 3.6.2)。 minreal创建了传递函数的最小实现。

>> A = C*P*Td/(1+C*P*Te+C*P)

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

                     -1.6e-011 s^9 - 1.669e-006 s^8 - 0.005715 s^7 + 127.6 s^6 +
 9.128e+005 s^5 + 1.94e+009 s^4 + 1.671e+012 s^3 + 5.12e+014 s^2
 y1:  --------------------------------------------------------------------------
-------------------------------------------------------------------------------
      1e-018 s^11 + 1.3e-013 s^10 + 3.347e-009 s^9 + 4.018e-005 s^8 + 0.2859 s^7
 + 1294 s^6 + 3.544e+006 s^5 + 5.192e+009 s^4 + 3.717e+012 s^3 + 1.024e+015 s^2

Continuous-time model.
>> A = minreal(A)

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

                  -1.6e+007 s^5 - 1.488e+012 s^4 + 1.163e+016 s^3 + 4.366e+019 s
^2 + 4.656e+022 s + 1.6e+025
 y1:  --------------------------------------------------------------------------
----------------------------------------
      s^7 + 1.187e+005 s^6 + 1.972e+009 s^5 + 1.407e+013 s^4 + 6.355e+016 s^3 +
1.242e+020 s^2 + 1.049e+023 s + 3.2e+025

Continuous-time model.