Function 'subsindex' is not defined for values of class 'tf'.
14 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Giacomo Alessandroni
el 26 de Feb. de 2014
Respondida: indah octaviyani
el 30 de Oct. de 2016
Hi to all.
I have try to write a simple code for step and impulse response of a transfer function.
The code is this:
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% BODE PLOT OF SUSPENTIONS TRANSFER FUNCTION
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Suspentions Transfer Function
[num, den] = suspension(240, 16e3, 980, 36, 160e3);
% Make Suspentions Transfer Function
G_s = tf(num, den);
% Create a Bode plot with plot handle h
figure('name', 'Bode plot of Suspentions Transfer Function');
h = bodeplot(G_s);
grid;
% Create a plot options handle p
p = getoptions(h);
% Modify frequency units
p.FreqUnits = 'Hz';
% Apply plot options to the Bode plot and render
setoptions(h, p);
clear h p;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% STEP AND IMPULSE RESPONSE
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
figure('name', 'Step and Impulse response');
subplot(211);
step(G_s);
grid;
subplot(212);
impulse(G_s);
grid;
And the output of suspension(240, 16e3, 980, 36, 160e3) is:
num = [0.0612 1]
den = [3.375e-06 0.0001057 0.0167 0.0612 1]
The problem is that in the Command Window the code works, but in my program - with no other command, no. The error is when I call 'step' and is:
Error using subsindex
Function 'subsindex' is not defined for values of class 'tf'.
Thank you in advance, Giacomo.
0 comentarios
Respuesta aceptada
Giacomo Alessandroni
el 26 de Feb. de 2014
1 comentario
Wayne King
el 26 de Feb. de 2014
yes, that is the problem I said, you are passing a variable called step.
Más respuestas (2)
indah octaviyani
el 30 de Oct. de 2016
i get an error for my matlab, could you help me too? Error using subsindex Function 'subsindex' is not defined for values of class 'ss'.
0 comentarios
Wayne King
el 26 de Feb. de 2014
Editada: Wayne King
el 26 de Feb. de 2014
Giacomo, likely in your program you make the mistake of creating a variable called step.
Then you try to index that variable by G_s which is an object of class tf
So note that
G_s = tf(num, den);
step = randn(10,1);
step(G_s)
gives exactly the error you report. Because I make the mistake of shadowing the step() method with a variable called step.
0 comentarios
Ver también
Categorías
Más información sobre Get Started with Control System Toolbox en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!