bode plot에서 위상그래프가 -180을 두번 교차할 경우의 gain margin 구하기

6 views (last 30 days)
수홍
수홍 on 30 May 2025
Answered: Angelo Yeo on 2 Jun 2025
bode plot을 그렸는데 위상그래프가 -180을 두번 교차합니다.
gain margin을 어떻게 구해야할까요?
아래는 phase lead compensaor를 적용하지 않았을 경우의 코드입니다.
pidopts = pidtuneOptions('PhaseMargin',45); % Target phase margin 45 deg
[Cc,info] = pidtune(GH, 'PID', 62.83, pidopts) % Target crossover frequency 10 Hz = 62.83 rad/s
Ts = 0.001; % 샘플링 주기
Tf = 0.0033; % 미분필터 시상수
wc = 10; % 교차주파수(워핑주파수) [Hz]
c2dopts = c2dOptions('Method','tustin','PrewarpFrequency',2*pi*wc);
Cd = c2d( pid(Cc.Kp, Cc.Ki, Cc.Kd, Tf), Ts, c2dopts);
disp(Cd)
figure;
hold on;
bodeopts = bodeoptions;
bodeopts.FreqUnits = 'Hz';
bodeopts.PhaseVisible = 'on';
bodeopts.PhaseWrapping= 'off';
bode(Cd*GHd, opts); grid off;
margin(Cd*GHd,bodeopts);
아래는 phase lead compensaor를 적용한 경우의 코드입니다.
alpha = 0.8;
wc = 10*2*pi; % rad/s
Tlead = 1/wc;
Clead_ct = tf([Tlead 1],[alpha*Tlead 1]);
Clead_dt = c2d(Clead_ct, Ts, 'tustin');
Cd_PLC = Clead_dt * Cd;
figure;
hold on;
margin(Cd_PLC*GHd,bodeopts);
왜 서로 다른 교차점에서 gain margin이 구해졌을까요?

Accepted Answer

Angelo Yeo
Angelo Yeo on 2 Jun 2025
margin 함수 문서에 따르면 crossover frequency가 여러개 있는 경우 여러 후보 게인 마진 값 중에서 0 dB에 가장 가까운 게인 마진을 반환한다고 되어 있습니다.
  • When sys has more than one crossover, margin indicates the frequencies with gain margin closest to 0 dB and phase margin closest to 0°.
따라서 질문하신 두 경우는 모두 여러 후보 게인 마진 값 중에서 0dB에 가까운 것을 (보수적으로) 선택한 결과입니다.
만약 모든 후보 게인 마진 값과 그에 대응하는 주파수 값을 보기 위해서는 allmargin을 사용하실 수 있습니다. 출력값의 형태는 struct이며 문서의 설명에서 볼 수 있듯이 GMFrequency와 GainMargin 필드로 모든 crossover frequency에 대응하는 게인 마진 값이 출력됩니다.
  • GMFrequency: All -180° (modulo 360°) crossover frequencies in rad/TimeUnit, where TimeUnit is the time units, specified in the TimeUnit property of L.
  • GainMargin: Corresponding gain margins, defined as 1/G, where G is the gain at the -180° crossover frequency. Gain margins are in absolute units.

More Answers (0)

Products


Release

R2023a

Community Treasure Hunt

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

Start Hunting!