请问这个MATLAB公式可不可行 怎么我输入了没图象出来 (加急,加分)

num=[35]
den=[0.0010.026 0.215 1 0]
step=g(num,den)
hold on
num=[0.040.6 2]
den=[0.20]
step=(num,den)
本来是打算做系统校正前后的响应曲线比较的

存在问题:

1、有两处数据连在一起了,中间应以空格或逗号分隔;

2、step是求阶跃响应的函数,两个地方的用法都不对;

3、赋值语句最好以分号结束,以避免不必要的显示。

 

参考代码:

num=[35];
den=[0.001 0.026 0.215 1 0];
step(num,den)
hold on
num=[0.04 0.6 2];
den=[0.20];
step(num,den)

但这样仍然存在一个问题——对于第二个传递函数,由于分子阶次高于分母,违反了因果律,不能使用step进行仿真,错误信息如下:

??? Error using ==> lti.step at 86
Cannot simulate the time response of LTI models with more zeros than poles.

请认真核实数据。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-02-24
试试这个吧
sys1 = tf(num,den) ;
figure,step(sys)
第二个系统就是把num,den换下。
第2个回答  2014-02-24
den=[0.0010.026 0.215 1 0] 数据之间要么空一格,要么是逗号或者分号,此处有问题么?num=[0.040.6 2],这个也是的。希望对你有用追问

是我的操作失误   

应该是这样的  


num=[35]

den=[0.001 0.026 0.215 1 0]

step=(num,den)

hold on

num=[0.04 0.6 2]

den=[0.20]

step=(num,den)



但输入后就这样了

追答

num=[35]
den=[0.001 0.026 0.215 1 0]
step=(num,den)
hold on
这时你已经定义了num,den;step用过后应该有一个曲线。
下面想做对比响应,那你可以num1=[];den1=[];step=.....
以示区别,命令写完后加分号可以加快运算速度。试试行么

相似回答