2014-10-06 50 views
0

我需要分析跟隨傳遞函數的階躍響應。 但是,執行step(sys)時,Octave會出現'dimensions mismatch'。如何分析Octave/Matlab控制包中的階躍響應

理論上不可能解決問題嗎?傳遞函數'sys'是由一些電路方程通過最大值(計算機代數系統)計算出來的。

任何幫助,將不勝感激。提前致謝。

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. 

軟件版本

OS:Ubuntu14.04LTS

八度:3.8.1

回答

2

它爲我在八度3.8.0在Windows上,但階躍響應爲零:

>> 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

+0

感謝您快速響應。你附加的第二個圖表似乎是我期望的。非常感謝。 – 2014-10-06 11:49:00