函数的调用参数注意注意注意顺序
A=[-10 0 0 0 0 0; 0.0729 -0.0558 -.997 0.0802 0.0415 0; -4.75 0.598 -0.1150 -0.0318 0 0; 1.53 -3.05 0.388 -0.465 0 0; 0 0 0.0805 1 0 0; 0 0 1 0 0 -0.333]; B=[10 0 0 0 0 0]'; C=[0 0 1 0 0 -0.333]; D=0; [num,den]=ss2tf(A,B,C,D); sysGs=tf(num,den); sysGs = -47.5 s^4 - 24.79 s^3 - 11.87 s^2 - 5.633 s + 6.678e-16 ----------------------------------------------------------------------- s^6 + 10.97 s^5 + 10.84 s^4 + 12.33 s^3 + 8.418 s^2 + 1.742 s + 0.01223
貌似都很顺利,然而,使用
s=tf('s');
sysGs1=C*(inv(s*eye(6)-A))*B就不对了,不知道为什么不对了
调用函数:pzmap求传递函数的零点和极点
[z,p]=pzmap(sysGs);
结果:
z =
-10.0000 + 0.0000i
-0.0329 + 0.9467i
-0.0329 - 0.9467i
-0.5627 + 0.0000i
-0.3330 + 0.0000i
-0.0073 + 0.0000i
p =
-0.4981 + 0.0000i
-0.0119 + 0.4878i
-0.0119 - 0.4878i
0.0000 + 0.0000i
这结果不对,后来,还是画图吧
pzmap(sysGs);
doc pzmap %查看帮助,原来是参数的顺序错了,改成
[p,z]=pzmap(sysGs);
p =
-10.0000 + 0.0000i
-0.0329 + 0.9467i
-0.0329 - 0.9467i
-0.5627 + 0.0000i
-0.3330 + 0.0000i
-0.0073 + 0.0000i
z =
-0.4981 + 0.0000i
-0.0119 + 0.4878i
-0.0119 - 0.4878i
0.0000 + 0.0000i
这样就正确了。
人就像是被蒙着眼推磨的驴子,生活就像一条鞭子;当鞭子抽到你背上时,你就只能一直往前走,虽然连你也不知道要走到什么时候为止,便一直这么坚持着。