본문 바로가기
System Control

PID 컨트롤

by 파치카 2021. 8. 24.

지금껏 시스템 모델링의 기초에 대해 알아봤으니

 

시스템 제어에 대해서 알아보자

 

제어에 있어서 가장 기초가 되는

 

PID 제어에 대해서 알아보자

 

 

먼저 저번에 적었던 Block Diagram를 한 번 쓱 읽어보고 오는게 좋음

 

https://honour.tistory.com/143 

 

Block Diagram

Block diagram 컨트롤 이론을 보기 쉽게 다이어그램으로 나타낸건데 컨트롤에 들어가기 앞서 알아두면 좋은 개념임 왠만한 컨트롤 관련 논문보면 이게 거의 필수로 들어가있는걸 알수있음 지금까

honour.tistory.com

 

그럼 거두절미하고 바로 ㄱㄱ

 

 

 

 

이런 모델이 있다고 하면

 

transfer function은

 

이렇게 나온다

 

내가 쓴거 쭉 읽어왔으면 이런건 바로바로 나옴

 

이 transfer function은 속도에 관한 식이 되는데

 

이 속도를 제어해보자

 

 

먼저 블록 다이어그램을 그려보면 이렇게 나오는데

 

처음부터 어렵게 센서까지 넣으면 귀찮으니까

 

센서는 딜레이가 없다고 가정함

 

 

저번에 적었던 Block Diagram을 보면

 

이 피드백 루프의 transfer function은

 

야매로 이렇게 구할 수가 있다고 적어놨음

 

 

고대로 대입하면 이렇게 구할수가 있는데

 

V_desire = 1, m = 1, b = 2, k = 1로 정해놓고 결과값을 봐보자

 

이게 컨트롤러가 없을때 결과물인데

 

이 그래프가 무슨 뜻이냐면

 

속도가 내가 원하는 속도의 0.5배에 수렴한다는 뜻임

 

식으로 정리하면 이렇게 적을수가 있음

 

이거는 컨트롤러를 추가했을때의 결과물인데..

 

컨트롤러가 없었을때보다 결과값이 더 추하게 나왔다

 

그럼 컨트롤러 왜 씀?

 

 

자자 차근차근 진행해보자

 

먼저 우리는

 

이 식이 되게끔 만들어야하는데

 

그러기 위해선

 

빨간 원안에 있는 값이 1이 되어야한다

 

그럼 모델에서 댐퍼빼면 되겠네 쉽노ㅋㅋ

 

 

그럼 모델에서 댐퍼를 빼보자

 

 

그럼 전달함수가 이렇게 나오는데

 

우리가 원하는 식이 됐다!

 

이제 한 번 그래프로 결과물을 보자

 

짠!

꺄아악 저거 왜 저러노?!

 

 

저렇게 왔다갔다하는 이유는

 

댐퍼가 없기때문에 eigenvalue가 S-plane의 Y축에 얹혀져있는 형태가 되었기 때문!

 

 

만약 차가 저렇게 움직인다고 하면

 

바로 한문철TV에서 볼 수 있을거다!

 

 

지금까지 알아본 컨트롤은

 

P 컨트롤, 혹은 Proportional control 이라고 부름

 

 

이제 P 컨트롤로는 제어가 되지 않는다는 걸 알았으니 다른 걸 시도해보자

 

 

 

 

이번엔 컨트롤 모델을 1차 함수 형식으로 바꿔봤다

 

 

 

그럼 closed-loop transfer function은 위처럼 나오는데

 

DC gain은 1이고

 

댐퍼도 있어서 무한히 진동하지 않는 안정적인 모델이 되었다

 

그리고 이 transfer function을 살짝만 손보면

 

이렇게 나오는데

 

분모가 어디서 본듯한 형태를 띄고있다

 

 

https://honour.tistory.com/40

 

Transient Response 세 번째

원래 Frequency Response 세 번째를 적으려고 했는데 적다보니까 Transient response 에 대해서 깜빡하고 안 적은 게 있어서 마저 적는다. https://honour.tistory.com/37 Transient Response 두 번째 저번에 tran..

honour.tistory.com

여기서 살짝 언급됐었던 식인데

 

바로 요놈이다

 

이 식을 이용해

 

반응 속도와 오버슛, 기타 디테일을 컨트롤 할 수가 있다

 

조금 느리더라도 안정적인걸 원하면 제타값을 높히고

 

빠르게 반응하길 원하면 오메가 값을 높히면 됨

 

 

이 컨트롤을 PD 컨트롤 이라고 한다

 

P는Proportional

 

D는 Derivative

 

 

 

잠깐! 제목은 PID인데 PD만 나왔잖아? I는 뭐야?

 

 

성질 급하긴! 이제 알려주려고 했지!

 

I는 Integral을 뜻한다!

 

어떻게 쓰는지도 차근차근 보여줌

 

다시 이 모델을 써볼건데

 

이번엔 PI 컨트롤을 써볼거임

 

 

그럼 루프는 이렇게 바뀌는데

 

이 것의 closed loop transfer function은

 

이렇게 나옴!

 

아직 뭐가 좋은지 모르겠다면 PD 컨트롤을 썼을때와 비교해보자

 

위에가 PD 컨트롤을 썼을때 나오는 transfer function인데

 

잘 보면 PI 컨트롤을 썼을때는 DC gain이 1인 반면

 

PD 컨트롤을 썼을때는 DC gain이 1보다 작다

 

 

위에서도 언급했지만 이건 우리가 원하는 속도에 도달할 수 없다는 걸 뜻함

 

 

Integral 컨트롤의 장점은

 

steady state의 값을 0으로 만들때 유용하게 쓰인다

 

 

그래서 PID 컨트롤하면

 

Proportional, Derivative, Integral 컨트롤을 뜻한다

 

 

식으로 쓰면 이렇게 나옴!

 

 

근데 PID 컨트롤은

이런 1st order 시스템에 쓸 필요가 없음

 

 

2nd order 이상일때만 쓰자!

 

 

 

 

 

그리고 마지막으로 하나 짚고 가야하는게 있는데

 

 

여기 이런 모델이 있다하자

 

스프링과 댐퍼가 없어서 모델링 할때도 없음

 

생각해보자

 

차가 도로를 다니는데 맨날 평탄한 길만 갈수는 없다

 

예를 들면 이런 과속방지턱

 

차가 가다가 방지턱을 넘으면 어떻게 될까?

 

 

이렇게 모델링 할 수가 있는데

 

CLTF는 과연 뭘까?

 

 

당연히 계속 쓰던 CLTF 아니겠노ㅋㅋ

 

 

 

잠깐! 과연 그럴까?!

 

 

 

 

이게 왜 안되노?

 

 

 

 

 

보다시피 우리가 필요한

 

이 식을 풀어낼 수가 없다

 

왜냐하면

 

CLTF는 SISO만 되기때문이다

*SISO는 Single-Input, Single-Output

 

 

이 루프는 현재 X_des와 Disturbance

 

2개의 input을 가지고 있다

 

그래서 transfer function이 2개가 나옴

 

이거랑

이거임

 

아직 귀찮아서 안 구했지만

 

나중에 수정해서 적을 거 같음

 

아무튼

를 구해보면

 

이 transfer function의 steady state 값이 0이 안나온다는 걸 알 수가 있음

 

그 말인 즉, 위에서와는 다르게

 

똑같은 PD 컨트롤을 썼음에도

 

우리가 원하는대로 컨트롤하지 못한다는 뜻!

 

 

 

이럴때 필요한게 바로 integral control 이다!

 

이걸 쓰면 

이 식의 steady state 값을 0으로 만들 수가 있음!

 

 

PID 짱짱맨!

 

 

 

 

 

'System Control' 카테고리의 다른 글

Block Diagram  (0) 2021.06.07
State Space Representation  (0) 2021.04.12
S-Plane  (0) 2021.04.10
Transient Response 마지막  (0) 2020.12.13
Frequency Response 마지막  (0) 2020.11.18

댓글