以八度为单位的绘图功能

时间:2014-09-18 05:17:57

标签: matlab octave

我写了一个简单的函数:

function f = G(s)
    f = 16/(s.^2+3*s+16)
endfunction

我想将此传递函数从s = 0绘制到4,步长为0.01。出于某种原因,我无法让它发挥作用。我得到了不一致的参数错误。我是八度新人。

2 个答案:

答案 0 :(得分:3)

缺少一个点。当您需要按元素操作(./)时,它是必需的。 请参阅https://www.gnu.org/software/octave/doc/interpreter/Arithmetic-Ops.htmlx / yx ./ y之间的区别。

function G = G(s)
    G = 16./(s.^2+3*s+16);
endfunction
s_ = 0:0.01:4;
plot(s_, G(s_))

答案 1 :(得分:3)

如果它是传递函数,那么你想使用control包得到一个Bode图而不是将它作为一个函数绘制,这实际上没有意义(s复杂):

>> G = tf(16,[1 3 16])

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

            16
 y1:  --------------
      s^2 + 3 s + 16

Continuous-time model.
>> bode(G)

给出了

enter image description here