why the bode function doesn't work?

62 次查看(过去 30 天)
jia ming chen
jia ming chen2015-1-19
回答: Felix Götze ,2016-2-9
this is my problem...
>> s=tf('s')
s =
s
Continuous-time transfer function.
>> g=1/(1+s)
g =
1
-----
s + 1
Continuous-time transfer function.
>> bode(g) Error using DynamicSystem/bode (line 97) Index exceeds matrix dimensions.
can anyone solve it?

回答(3 个)

Felix Götze
Felix Götze 2016-2-9
Hi,
I had the same Problem. In my case the error occured because I had a figure window open. If you have an open figure close it and try the command again it should work properly now.

Youssef  Khmou
Youssef Khmou 2015-1-19
编辑:Youssef Khmou 2015-1-19
The description is correct and the code is working correctly,try clearing the existing variables
clear all;
s=tf('s'); g=1/(1+s); bode(g);
  2 个评论
Youssef  Khmou
Youssef Khmou 2015-1-20
编辑:Youssef Khmou 2015-1-20
Bode function contains the following code from line 92 through 100
92 case 3
93 % Transfer function form with time vector
94 if size(a,1)>1,
95 % SIMO syntax
96 a = num2cell(a,2);
97 den = b;
98 b = cell(size(a,1),1);
99 b(:) = {den};
100 end

请先登录,再进行评论。


Andreas Goser
Andreas Goser 2015-1-20
Can you verify the output of
which bode -all
Youe should get something like this:
C:\Program Files\MATLAB\R2014b\toolbox\control\ctrlobsolete\bode.m
C:\Program Files\MATLAB\R2014b\toolbox\shared\controllib\engine\@DynamicSystem\bode.m % DynamicSystem method
Is not, there maybe another function or variable shadowing the bode function you want.
  2 个评论
Andreas Goser
Andreas Goser 2015-3-19
This user had a different error message. The solution was a compatibility with a 3rd part toolbox. Once this was removed from the path, BODE was working fine.

请先登录,再进行评论。

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by