주파수 영역에서 controller를 디자인 하는 것은 직관적이지 않다.하지만 물리적 데이터를 가지고 전달함수를 설계하는데 유용하게 사용될 수 있다고 한다(아직 어떤 의미인지는 잘 모르겠다...)
open loop frequency response를 이용해서 closed loop time response의 특성을 파악하는 방법에 대해서 알아보자!!
1. Gain Margin and Phase Margin
먼저 짚고가야 하는 것이 있다. frequency response가 뭐지??
sinusoidal input이 linear system에 들어왔을 때의 steady-state response가 frequency response이다.

여기서 시스템의 크기만큼 증폭되고 시스템의 위상각만큼 이동된다.
k가 정해졌을 때 주파수에 따라 크기와 위상각을 각각 나타낸 그래프가 bode plot이다. 여기서 우리는 gain margin과 phase margin을 구해서 시스템의 견고성(robustness)를 확인할 수 있다.
간단하게 말 그대로 시스템이 불안정해질 때까지 gain과 phase의 여유는 얼마나 남았는가를 나타낸다고 생각하면 된다.
Gain margin(이득여유)
- open-loop system의 이득을 얼마나 증가 또는 감소시킬 수 있는지를 나타내며 이 때 closed-loop system이 불안정해지기 직전 상태를 기준으로 측정된다.
-bode plot에서 각도가 -180도 일때(위상 반전) 크기1(0dB)와의 거리
=> 위상이 -180°(위상 반전)일 때 open loop 크기 응답이 를 초과하면 closed-loop system은 불안정해질 수 있다. (피드백이 증폭되어 발산하기 때문)
Phase margin(위상여유)
-open-loop system의 각도가 얼마나 증가 또는 감소시킬 수 있는지를 나타내며 이때 closed-loop system이 불안정해지기 직전 상태를 기준으로 측정된다.
-bode plot에서 크기가 1일 때(0dB) -180도 와의 위상 차이

아래와 같은 코드로 gain margin과 phase margin을 확인할 수 있다.
sys = tf([50],[1, 9, 30, 40]);
margin(sys);

Bandwidth Frequency
대역폭은 closed-loop 시스템의 크기가 -3dB가 될때까지의 주파수의 범위이다. 즉 신호가 너무 작아지지 않고 output으로 나오는 주파수의 범위라고 생각하면 된다.
bode diagram의 의미
간단하게 주파수가 변하면서 크기가 1(0dB)이상이면 시스템은 input 신호의 크기를 크게 만들고 크기가 1(0dB)이하이면 시스템은 input 신호의 크기를 작게 만든다.
위상은 주파수가 변하면서 output 신호를 그만큼 shift한다.
예시를 이용해서 확인해보자!!
아래와 같은 시스템이 있다.
bode diagram을 매트랩으로 그리면 아래와 같다.

주파수가 0.3rad/s일 때 크기는 1(0dB)이고 위상차도 0도이다
그대로 비슷하게 나올것으로 예측된다.
주파수가 3rad/s일 때 크기는 1/10(-20dB)이고 위상차는 180도이다
진폭은 10배로 줄어들고 위상도 반대가 될것으로 예측된다.
아래의 코드를 통해서 결과를 확인해보자!!
sys = tf([1],[1, 0.5, 1]);
t=0:0.1:100;
subplot(2,1,1);
w=0.3;
u=sin(w*t);
[y,t]=lsim(sys,u,t);
plot(t,y,t,u);
axis([50 100 -2 2]);
title("frequency 0.3rad/s");
legend("System Output (y)", "Input Signal (u)");
subplot(2,1,2);
w=3;
u=sin(w*t);
[y,t]=lsim(sys,u,t);
plot(t,y,t,u);
axis([50 100 -2 2]);
title("frequency 3rad/s");
legend("System Output (y)", "Input Signal (u)");

예상대로 결과가 나왔음을 확인할 수 있다.
이처럼 bode diagram은 gain margin과 phase margin을 통해서 시스템의 안정성을 판단하고 각 주파수별로 output의 크기와 위상변화를 예측하는데 유용하게 사용된다.
2. nyquist diagram
bode diagram와 비슷하게 open-loop transfer function을 통해서 closed-loop system의 안정성과 성능을 예측할 수 있도록 해준다.
bode diagram은 크기와 위상차를 두개의 그래프에 각각 그렸다면 nyquist diagram은 크기와 위상차를 하나의 그래프에 그린것이다. nyquist diagram의 각 점은 bode diagram에 대응되게 되는데 nyquist의 점의 원점으로 부터의 거리는 bode에서 크기가 되고 nyquist의 양의 실수축과 이루는 각도는 bode에서 위상차가 된다.
간단한 예시를 통해서 nyquist diagarm을 직접 그려보고 매트랩의 함수를 통해 확인해보자!!
ex) open-loop 전달함수가 아래와 같을 때 nyquist diagram을 그려라
nyquist를 손으로 그릴 때는 positive imaginary axis, infinite semicircle, negative imaginary axis의 세부분으로 나누어서 그리면 된다. s=jw를 대입하고 아래처럼 정리한다.

아래의 매트랩 코드를 통해서도 결과를 확인할 수 있다.
sys = zpk([],[-1,-3,-10],500);
nyquist(sys);

주의)
매트랩의 nyquist()함수는 open-loop pole이 허수축에 있는 경우 정확하게 그리지 못한다. 허수축에 있는 경우 해당 부분을 제외시키는 작은 원을 추가로 그려서 포함시켜야 한다. 아래 사이트에서 이럴 경우 사용하는 함수를 제공한다.
https://ctms.engin.umich.edu/CTMS/index.php?example=Introduction§ion=ControlFrequency
Control Tutorials for MATLAB and Simulink - Introduction: Frequency Domain Methods for Controller Design
Introduction: Frequency Domain Methods for Controller Design The frequency response method of controller design may be less intuitive than other methods you have studied previously. However, it has certain advantages, especially in real-life situations suc
ctms.engin.umich.edu
'control tutorials > introduction' 카테고리의 다른 글
| Simscape (0) | 2025.01.19 |
|---|---|
| Simulink Control (0) | 2025.01.15 |
| Root Locus(근궤적) (0) | 2025.01.14 |
| PID Controller Design (0) | 2025.01.13 |
| Simulink Modeling (0) | 2024.11.28 |