Function 'subsindex' is not defined for values of class 'tf'.
6 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
Giacomo Alessandroni
il 26 Feb 2014
Risposto: indah octaviyani
il 30 Ott 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 Commenti
Risposta accettata
Più risposte (2)
indah octaviyani
il 30 Ott 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 Commenti
Wayne King
il 26 Feb 2014
Modificato: Wayne King
il 26 Feb 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 Commenti
Vedere anche
Categorie
Scopri di più su Get Started with Control System Toolbox in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!