I am trying to find the integral gain (ki) of the following transfer function.

6 views (last 30 days)
Cathy Pakrath
Cathy Pakrath on 17 May 2022
Answered: Star Strider on 17 May 2022
This is my code,
syms ki
sys = tf([30.672 175.694*ki],[1 38.672 175.694*ki]);
S = stepinfo(sys);
subplot(2,1,1)
step(sys)
However it's showing the error:
Error using tf (line 303)
The values of the "Numerator" and "Denominator" properties must be row vectors or cell arrays of row vectors, where each vector is nonempty and containing numeric data. Type "help tf.num" or "help tf.den" for more information.

Answers (2)

VBBV
VBBV on 17 May 2022
Edited: VBBV on 17 May 2022
syms ki
ki = 10 % e.g numeric values , not symbolic
ki = 10
sys = tf([30.672 175.694*ki],[1 38.672 175.694*ki]);
S = stepinfo(sys);
subplot(2,1,1)
step(sys)
As the error states num and den vectors should be numeric, and not symbolic as you defined.

Star Strider
Star Strider on 17 May 2022
Symbolic variables are not permitted in Control System Toolbox objects, however anonymous functions are.
Try this —
sys = @(ki) tf([30.672 175.694*ki],[1 38.672 175.694*ki]);
ki = 42;
S = stepinfo(sys(ki))
S = struct with fields:
RiseTime: 0.0130 TransientTime: 0.1931 SettlingTime: 0.1931 SettlingMin: 0.7501 SettlingMax: 1.5173 Overshoot: 51.7266 Undershoot: 0 Peak: 1.5173 PeakTime: 0.0333
subplot(2,1,1)
step(sys(ki))
The value of ‘ki’ can be whatever you want, and you can use ‘sys’ here as an anonymous function as an argument to integration and optimisation functions.
.

Community Treasure Hunt

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

Start Hunting!