如何分析Octave / Matlab控件包中的阶跃响应

时间:2014-10-06 11:10:22

标签: matlab octave

我需要分析以下传递函数的阶跃响应。 但是,当执行步骤(sys)时,Octave中会出现“尺寸不匹配”。

理论上解决问题是不可能的?传递函数'sys'由maxima(计算机代数系统)的某些电路方程计算得出。

任何帮助将不胜感激。提前谢谢。

octave:2> sys
Transfer function 'sys' from input 'u1' to output ...

                 -10 s - 1e+06            
 y1:  ------------------------------------
      8.6e-17 s^3 + 0.086 s^2 + 8600 s + 1
Continuous-time model.

octave:3> step(sys, 10)
error: __step_response__: A(I,J,...) = X: dimensions mismatch
error: called from:
error:   /home/yusuke/octave/control-2.6.5/__time_response__.m at line 280, column 18
error:   /home/yusuke/octave/control-2.6.5/__time_response__.m at line 126, column 12
error:   /home/yusuke/octave/control-2.6.5/step.m at line 89, column 10

注意

控件包本身工作正常如下。

octave:15> sys2=tf([1],[1 1]);
octave:16> step(sys2, 10);
--> the waveform of step response is visualized successfully.

软件版本

操作系统:Ubuntu14.04LTS

octave:3.8.1

1 个答案:

答案 0 :(得分:2)

它在Windows上的Octave 3.8.0中适用于我,但阶跃响应为零:

>> sys = tf([-10 -1e6],[8.6e-17 0.086 8600 1])

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

                 -10 s - 1e+006
 y1:  -------------------------------------
      8.6e-017 s^3 + 0.086 s^2 + 8600 s + 1

>> step(sys,10)

enter image description here

我认为原因是分母中的s^3系数基本上为零:

>> sys1 = minreal(sys)

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

              -1.163e+017
 y1:  ---------------------------
      s^2 + 1e+015 s + 1.163e+011

Continuous-time model.
>> step(sys1,10)

enter image description here