control tutorials/introduction

Frequency Domain

fbc0314 2025. 1. 14. 22:06

주파수 영역에서 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);

margin()함수 실행 결과

Bandwidth Frequency

대역폭은 closed-loop 시스템의 크기가 -3dB가 될때까지의 주파수의 범위이다. 즉 신호가 너무 작아지지 않고 output으로 나오는 주파수의 범위라고 생각하면 된다.

 

bode diagram의 의미

간단하게 주파수가 변하면서 크기가 1(0dB)이상이면 시스템은 input 신호의 크기를 크게 만들고 크기가 1(0dB)이하이면 시스템은 input 신호의 크기를 작게 만든다.

위상은 주파수가 변하면서 output 신호를 그만큼 shift한다.

 

예시를 이용해서 확인해보자!!

아래와 같은 시스템이 있다.

$$G(s) = \frac{1}{s^{2}+0.5s+1}$$

 

bode diagram을 매트랩으로 그리면 아래와 같다.

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을 그려라

 

$$G(s)=\frac{500}{(s+1)(s+3)(s+10)}$$

 

nyquist를 손으로 그릴 때는 positive imaginary axis, infinite semicircle, negative imaginary axis의 세부분으로 나누어서 그리면 된다. s=jw를 대입하고 아래처럼 정리한다.

$$G(jw)H(jw) = \frac{500}{(jw+1)(jw+3)(jw+10)} = \frac{500}{(-14w^{2}+30)+j(43w-w^{3})} = 500*\frac{(-14w^{2}+30)-j(43w-w^{3})}{(-14w^{2}+30)^{2}+(43w-w^{3})^{2}}$$ $$magnitude : \frac{500}{\sqrt{(-14w^{2}+30)^{2}+(43w-w^{3})^{2}}}$$ $$phase : tan^{-1}(\frac{0}{500}) - tan^{-1}(\frac{43w-w^{3}}{-14w^{2}+30})$$

 

각 부분을 그리고 합친 결과

 

아래의 매트랩 코드를 통해서도 결과를 확인할 수 있다.

sys = zpk([],[-1,-3,-10],500);
nyquist(sys);

 

매트랩으로 그린 nyquist diagram

주의)

매트랩의 nyquist()함수는 open-loop pole이 허수축에 있는 경우 정확하게 그리지 못한다. 허수축에 있는 경우 해당 부분을 제외시키는 작은 원을 추가로 그려서 포함시켜야 한다.  아래 사이트에서 이럴 경우 사용하는 함수를 제공한다.

https://ctms.engin.umich.edu/CTMS/index.php?example=Introduction&section=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