How to plot the phase margin?
現在この質問をフォロー中です
- フォローしているコンテンツ フィードに更新が表示されます。
- コミュニケーション基本設定に応じて電子メールを受け取ることができます。
エラーが発生しました
ページに変更が加えられたため、アクションを完了できません。ページを再度読み込み、更新された状態を確認してください。
古いコメントを表示
0 投票
Hello I have one tricky question where I am struck.I know how to plot the bode diagtam using the margin command but i am not sure how can i implement more than 30% margin part. my system and requirement is below. Please help me to understand how can i do this.
採用された回答
Bora Eryilmaz
2022 年 12 月 22 日
編集済み: Bora Eryilmaz
2022 年 12 月 22 日
The transfer function 20/(s+1) is your controller. As it is, it does not give you a 50-degree phase margin. You need to modify this controller to achieve the desired phase margin. There are couple ways of doing this:
- Either reduce the gain of the controller to achieve a larger phase margin, but at a lower frequency.
- Or add additional phase using controller terms such as lead-lags.
% Initial compensator
C = zpk([], -1, 20);
% The plant
G = zpk(-20, [-2 -5], 1);
% Phase and gain margin of the open-loop transfer function with initial
% compensator
L = C*G;
margin(L)

% Modify the compensator C to obtain the desired phase margin (this part is
% up to you, since this seems like a homework question).
C = zpk([], -2, 10) % This is my trivial change, will not give 50 degrees phase margin.
C =
10
-----
(s+2)
Continuous-time zero/pole/gain model.
L = C*G;
margin(L)

% Bode plot of the compentator
bode(C)

% Closed-loop system
T = L / (1 + L);
bode(T)

step(T)

6 件のコメント
Hello thank you sir for your explanation i have one question that can i use the following code to get moe than 50% phase margin. I have set the phase margin to 51%.
clc;
close all;
s=tf('s'); % To enter the transfer function directly
V= 51/(s+1); % This will give 51 degrees phase margin
G= (s+20)/((s+2)*(s+5));
margin(V)
M = C*G;
margin(M)
bode(C)
S = M / (1 + M);
bode(S)
step(S)
Did I do this correctly?
Bora Eryilmaz
2022 年 12 月 22 日
Please run your code and see yourself if
margin(M)
gives you the desired phase margin.
C= 51/(s+1); % This will give 51 degrees phase margin
How do you know that the controller C above will give you a 51 degree phase margin? Its gain is 51, but that doesn't necessarily give you a 51 degree phase margin.
SIr i run the code and I understand that I had to reduce the gain value I have use the following code and in bode plot it says Pm = 61.3 deg.
clc;
close all;
clear all;
s=tf('s'); % To enter the transfer function directly
V= 1.5/(s+1); % This will give 61.3 degrees phase margin
G= (s+20)/((s+2)*(s+5));
M=V*G
margin(M)
Did i do it correctly this time sir?
Bora Eryilmaz
2022 年 12 月 22 日
Looks like it. If the phase margin is better than 50 degrees, then your controller satisties the requirements of your problem. Also take a look at the step response of the closed loop system to make sure it is well behaved:
s = tf('s'); % To enter the transfer function directly
V = 1.5/(s+1); % This will give 61.3 degrees phase margin
G = (s+20)/((s+2)*(s+5));
M = V*G;
margin(M)

step(M/(1+M))

You will see that the steady-state step response value of your closed-loop system is not 1. This was not part of your question, but normally this would not be an acceptable step response... As a small hint, if your controller had an integrator, the steady-state response would have converged to 1, which is more desirable.
Hardik
2022 年 12 月 22 日
Okay Sir. I understand. thank you for all your help.
Hello Sir, in my next part of problem I have to use the Feedback command in Matlab to find the closed loop transfer function of the compensated system. Provide the overall closed loop transfer function.
I have done the coding part but I am bit confused here that Do i have to use feedback command on original given system or the output TF i get from this part i have to use?
And if i have to use new obtanined TF then do i also have to use the plant value (s+20) and multiply them and then use the feedback command ?
その他の回答 (0 件)
カテゴリ
ヘルプ センター および File Exchange で Get Started with Control System Toolbox についてさらに検索
参考
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
- América Latina (Español)
- Canada (English)
- United States (English)
ヨーロッパ
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)
