Systems Transfer Functions (tf.m)

3 ビュー (過去 30 日間)
Andrew Kay
Andrew Kay 2019 年 1 月 8 日
回答済み: Robert U 2019 年 1 月 9 日
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
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
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

カテゴリ

Help Center および File ExchangeNumber Theory についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by