The inbuilt code "bode " is not working

I was trying to run the bode.
but it showed this.
Error using DynamicSystem/bode (line 96)
Incorrect number of parameters supplied for 'Controllib:plots:strBodeDiagram'. Expected 0 but found 1.
Error in VOUT_VIN_bode (line 42)
bode(sys)
This is my code: (The project name is VOUT_VIN_bode)
[SL: snipped the code for the bode method of DynamicSystem objects. Please do not post MathWorks function files. I also formatted the code above as code instead of text.]
MATLAB Version: 9.8.0.1396136 (R2020a) Update 3
Java Version: Java 1.8.0_202-b08 with Oracle Corporation Java HotSpot(TM) 64-Bit Server VM mixed mode
How can i fix it???
Can anyone help me to resolve this?
Thank you

4 Comments

Please post the relevant parts of the code, and post the Release as well.
jimmygc lin
jimmygc lin on 27 May 2021
Edited: jimmygc lin on 27 May 2021
got it. Thanks
You probably have a function on your path that is interfering with one of the functions used by bodeplot() [which is called by bode()] . It would take a bunch of debugging to figure out exactly where the problem was. Using
dbstop if caught error
would help.
But before you do that, experiment with
restoredefaultpath; rehash toolboxcache
if the code works after that, then definitely something on your MATLAB path is interfering.
jimmygc lin
jimmygc lin on 28 May 2021
Edited: jimmygc lin on 28 May 2021
I run this restoredefaultpath; rehash toolboxcache it didn't work.
after that i run dbstop if caught error And then run my code.
this code is in (matlab\toolbox\shared\controlib\general\+ctrlMsgUtils\message.m)
and then i click continue
this code is in (matlab\toolbox\shared\controlib\general\+ctrlMsgUtils\message.m)
and then i click continue
this code is in (matlab\toolbox\shared\controlib\engine\@DynamicSystem\bodeplot.m)
and then i click continue
this code is in (matlab\toolbox\matlab\helptools\+helpUtils\+csh\helpviewFactory.m)
and then i click continue
this code is in (matlab\toolbox\shared\controlib\engine\@DynamicSystem\bode.m)
and then

Sign in to comment.

 Accepted Answer

The same code works here, and runs without error, with either bode or bodeplot.
I switched from bode to bodeplot because bodeplot has more options. I also deleted the bode function code here.
L1 = 91.54e-6;
L2 = 91.36e-6;
RL1 = 0.16 ;
RL2 = 0.15 ;
C1 = 0.042996e-6;
C2 = 0.043091e-6;
Rc1 = 0 ;
Rc2 = 0 ;
Lp = 10e-6;
Ls = 10e-6;
RLp = 0 ;
RLs = 0 ;
Cp = 0.35059e-6;
Cs = 0.35059e-6;
Rcp = 0 ;
Rcs = 0 ;
Vin = 3;
w = 2*pi*85e3;
R = 30;
M=8.9e-6;
k = 1/(L1*L2-M^2);
% iLp iLs Vcp Vcs Vc1 Vc2 iL1 iL2
A = [-(RLp+Rcp)/Lp 0 -1/Lp 0 0 0 Rcp/Lp 0
0 -(R+RLs+Rcs)/Ls 0 -1/Ls 0 0 0 Rcs/Ls
1/Cp 0 0 0 0 0 -1/Cp 0
0 1/Cs 0 0 0 0 0 -1/Cs
0 0 0 0 0 0 1/C1 0
0 0 0 0 0 0 0 1/C2
k*L2*Rcp -k*M*Rcs k*L2 -k*M -k*L2 k*M -k*L2*(RL1+Rc1+Rcp) k*M*(RL2+Rc2+Rcs)
-k*M*Rcp k*L1*Rcs -k*M k*L1 k*M -k*L1 k*M*(RL1+Rc1+Rcp) -k*L1*(RL2+Rc2+Rcs)];
B = [1/Lp 0 0 0 0 0 0 0]';
C = [0 R 0 0 0 0 0 0];
D=[0];
A
A = 8×8
1.0e+07 * 0 0 -0.0100 0 0 0 0 0 0 -0.3000 0 -0.0100 0 0 0 0 0.2852 0 0 0 0 0 -0.2852 0 0 0.2852 0 0 0 0 0 -0.2852 0 0 0 0 0 0 2.3258 0 0 0 0 0 0 0 0 2.3207 0 0 0.0011 -0.0001 -0.0011 0.0001 -0.0002 0.0000 0 0 -0.0001 0.0011 0.0001 -0.0011 0.0000 -0.0002
B
B = 8×1
1.0e+05 * 1.0000 0 0 0 0 0 0 0
C
C = 1×8
0 30 0 0 0 0 0 0
D
D = 0
figure(1)
hold on;
sys = ss(A,B,C,D)
sys = A = x1 x2 x3 x4 x5 x6 x7 x8 x1 0 0 -1e+05 0 0 0 0 0 x2 0 -3e+06 0 -1e+05 0 0 0 0 x3 2.852e+06 0 0 0 0 0 -2.852e+06 0 x4 0 2.852e+06 0 0 0 0 0 -2.852e+06 x5 0 0 0 0 0 0 2.326e+07 0 x6 0 0 0 0 0 0 0 2.321e+07 x7 0 0 1.103e+04 -1074 -1.103e+04 1074 -1765 161.2 x8 0 0 -1074 1.105e+04 1074 -1.105e+04 171.9 -1658 B = u1 x1 1e+05 x2 0 x3 0 x4 0 x5 0 x6 0 x7 0 x8 0 C = x1 x2 x3 x4 x5 x6 x7 x8 y1 0 30 0 0 0 0 0 0 D = u1 y1 0 Continuous-time state-space model.
opts = bodeoptions;
opts.Grid = 'on';
bodeplot(sys, opts) % ---------------This is the (line 42)
I do not advise copying the code for bode or any other MATLAB functions and including them with your own code, since they likely have other dependencies that they may not be able to easily locate from the directories that run your code. Run them as functions from the directories where they were installed. If the code you posted is the code that threw the error, this could be the problem.
.

9 Comments

i run the code which you changed the bode to bodeplot but it didn't work.
and I use a example of bode in the matlab
H = tf([1 0.1 7.5],[1 0.12 9 0 0]);
bode(H)
it didn't work too. Then i type dbstop if caught error
It shows this.
this code is in (matlab\toolbox\shared\controlib\general\+ctrlMsgUtils\message.m)
and then i click continue
this code is in (matlab\toolbox\shared\controlib\general\+ctrlMsgUtils\message.m)
and then i click continue
this code is in (matlab\toolbox\shared\controlib\engine\@DynamicSystem\bodeplot.m)
and then i click continue
this code is in (matlab\toolbox\matlab\helptools\+helpUtils\+csh\helpviewFactory.m)
and then i click continue
this code is in (matlab\toolbox\shared\controlib\engine\@DynamicSystem\bode.m)
and then
At this point, either Contact Support or uninstall and reinstall MATLAB and the Toolboxes.
Include the URL to this thread in your message to Tech Support so that you do not have to repeat everything here, and Tech Support knows what we suggested.
I see.Thank you.
You could try stepping one line at time in bodeplot starting from line 60
I find it odd that it mentions 'Controllib:plots:strBodeDiagram' . There are only four references to that in the code (between various functions), and the references are all within
getString(message('Controllib:plots:strBodeDiagram'))
ans = 'Bode Diagram'
or
ctrlMsgUtils.message('Controllib:plots:strBodeDiagram')
ans = 'Bode Diagram'
It should not be possible for that particular string to show up as the name of a function, as far as I can see at the moment.
@Walter Roberson I really appreiate it. I reinstall the matlab.
then it worksssss^^^^^^ i would do what you said next time.
Thank you soooo much.
@jimmygc lin Actually, I suggested uninstalling and reinstalling MATLAB in my previous Comment!
As always, my pleasure!
@Star Strider YEPP!! THANK YOU SOO MUCH.
As always, my pleasure!

Sign in to comment.

More Answers (0)

Categories

Tags

Community Treasure Hunt

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

Start Hunting!