Systems Transfer Functions (tf.m)
3 次查看(过去 30 天)
显示 更早的评论
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 个评论
Walter Roberson
2019-1-9
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.
回答(1 个)
Robert U
2019-1-9
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 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Number Theory 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!