# Please help. The first input argument of the "tf" command cannot be a string.

6 views (last 30 days)

Show older comments

clear, clc

G1=tf([1],[1 0 5])

G2=tf([10],[1])

G3=tf('k')

G4=tf([1 1],[1 0])

H1=tf([1 0],[1])

H2=tf([1 5],[1])

TR1=feedback(G1,H1,-1)

T1=series(TR1,G2)

TR2=feedback(T1,H2,-1)

T2=series(TR2*G3)

Error using tf

Invalid syntax. The first input argument of the "tf" command cannot be a string.

##### 9 Comments

Walter Roberson
on 24 Nov 2023

### Answers (3)

Sulaymon Eshkabilov
on 23 Nov 2023

Besides of using 'k' for tf, there is another syntax error in T2. See the corrected core here:

clear, clc

G1=tf([1],[1 0 5])

G2=tf([10],[1])

G3=tf('s')

G4=tf([1 1],[1 0])

H1=tf([1 0],[1])

H2=tf([1 5],[1])

TR1=feedback(G1,H1,-1)

T1=series(TR1,G2)

TR2=feedback(T1,H2,-1)

T2=series(TR2,G3) % T2=series(TR2*G3) leads to "Not enough input arguments"

Sulaymon Eshkabilov
on 23 Nov 2023

If you want to use a user prompt then it should be in this way (Note that just numerical input prompt won't work):

Try:

G3N = 1 1

G3D = 1 2 3

enter numerator coefficients: 1 1

enter denominiator coefficients: 1 2 3

G3N = input('enter numerator coefficients: ', 's' );

G3D = input('enter denominiator coefficients: ', 's');

G3 = tf(str2num(G3N), str2num(G3D))

G3 =

s + 1

-------------

s^2 + 2 s + 3

##### 0 Comments

Sam Chak
on 24 Nov 2023

Hi @Melissa

Variable K doesn't a specific value, I want multiply K other variables like TR2...

From the root locus, it appears that the closed-loop system system will be stable for any value of the gain parameter K.

G1 = tf([1],[1 0 5]);

G2 = tf([10],[1]);

% G3 = tf('k') % <-- it seems that you want to multiply k with TR2 at the end

H1 = tf([1 0],[1]);

H2 = tf([1 5],[1]);

TR1 = feedback(G1, H1);

T1 = series(TR1, G2);

rlocus(T1*H2)

% T2 = series(TR2*G3)

##### 0 Comments

### See Also

### Categories

### Products

### Community Treasure Hunt

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

Start Hunting!