Systems Transfer Functions (tf.m)
3 views (last 30 days)
Show older comments
I have the question...
You are given a transfer function G(s)= 5.32K/(s(s^2 +0.41s+1.35)). This system is connected with unity negative feedback. Determine the smallest positive value of k which makes the closed loop system unstable.
I try to enter into matlab the variable k by using 'syms k' but it appears this won't work with transfer functions.
Any help on how to tackle this question using matlab.
(Answer should be 0.104)
Any help would be of much appreciation, thanks.
1 Comment
Walter Roberson
on 9 Jan 2019
tf() can never have symbolic coefficients. See https://www.mathworks.com/matlabcentral/answers/305339-how-to-create-a-transfer-function-with-gain-k#answer_236890 for further discussion of that matter.
Answers (1)
Robert U
on 9 Jan 2019
Hi Andrew Kay,
here is an example to show you one possible workflow to tackle the described task:
% create transfer function with K=1
G = tf([5.32],[1 0.41 1.35 0]);
% visualize transfer function
figure;
bodeplot(G)
% get magnitude and phase of transfer function
[mag,phase,wout] = bode(G);
% find frequency where response would flip sign (stability criterion)
woi = wout(squeeze(phase) > -180);
woi = woi(end);
% get magnitude of transfer function at frequency of interest
mag = bode(G,woi);
% system with transfer function reduced by that magnitude would be asymptotic stable
G = 1/mag * G;
% visualize response
figure;
step(G/(1+G))
% 1/mag gives maximum K
Real systems prefer to have a stability margin of 3 (or more) dB in order to ensure stability.
Kind regards,
Robert
0 Comments
See Also
Categories
Find more on Number Theory in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!