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!