안녕 게이들아 처음 쓰는 정보글이라서 어설프더라도 이해해주길 바래.

그리고 틀리거나 궁금한거 있으면 댓글에 적어줘.

 

공장 게이들은 많이 봤겠지만 아래에 있는 짤들이 쉽게 구하고 사용할 수 있는 상용 PID 제어기 들이야

요런 PID 제어기 안에 PID제어 로직이 들어있어서 PID 제어를 할 수 있게 되는 거지.

짤에 있는 모델로는 주로 온도제어에 주로 사용해.

 

그러면 PID 제어 로직에 대해서 알아보도록 하자.

 

 

image002.jpg

 

  

image004.jpg

 

 

 

 

 

 

 

 

아는 게이들은 알겠지만 PID 제어라는 말은 Proportional Integral Derivative 제어의 약자야.

 

, 오차의 비례, 적분, 미분을 이용해서 원하는 변수를 제어한다는 말이야.

물론 다른 방법을 이용해서 제어하는 방법은 PID 말고도 많이 있어. 그런데 수십년 된 PID 제어를 쓰는 이유는 간단하고 꽤나 우수한 제어 성능 때문이지.

 

 

image005.png

 

 

 

위에 보이는 식이 기본 PID 식이야 정말 기본적인 식이라서 이대로 공장에 적용하면 공장이 노짱 따라가는 수가 있어.

그런데 지금은 처음이니까 이 기본식을 알아보도록 하자.

위의 식에 우변을 보면 비례 부분, 적분 부분, 미분 부분이 보일거야.

비례부분은 현재의 오차, 적분 부분은 과거의 오차, 미분은 미래의 오차를 감안해 준다고 할 수 있어.

식에서 보이는 u는 제어 출력이야 물을 끓이는 걸 예로 들면 가스의 화력이나 히터 코일의 전류의 크기라고 할 수 있지.

ys는 내가 원하는 물의 온도가 그리고 y는 지금 물의 온도가 되지.

그러면 식을 잘 보면 원하는 물의 온도와 지금 온도의 차이가 크면 제어 출력을 크게 해주는 걸 알 수 있겠지??

 

 

 

다음으로는 PID의 파라미터에 대해 알아볼게.

위의 식에 보이는 kc τi τd가 보이지?

kcPID 제어의 Gain(이득)이고 τiintegral time(적분시간) τdderivative time(미분 시간)이야.

간단하게 말하면 kcτd가 커지면 제어가 강하게 들어가고 τi가 커지면 제어가 약하게 들어가.

요런 PID 제어의 파라미터들을 잘 조절해 주는게 PID제어의 요점이야.

이 파라미터를 조절해주는 과정을 Tuning(조율)이라고 말해.

상용 제어기들은 오토튜닝(Autotuning)이라고 해서

요런 파라미터를 자동으로 최적값으로 조절해주는 기능이 들어있기도 해.

그러면 요 파라미터들을 바꾸면 제어가 어떻게 되는지 알아보도록 하자.

 

 

 

image006.jpg

 

 

위에 보이는 그래프를 봐봐. 물을 20도에서 40도 까지 가열하는 그래프라고 생각해보자.

1분에 설정온도를 20도에서 40도로 바꾸었고 물은 11분쯤에 설정온도에 도달했어.

설정온도 위로 얼마 치솟지도 않았고 설정 온도에 도달하는 시간도 나쁘지 않아.

이정도면 훌륭한 제어기 튜닝이라고 할 수 있어. 이 튜닝을 잘된 튜닝이라고 부를게.

 

 

 

우리는 배우는 입장이니까 잘된 튜닝을 조금씩 바꿔보자. 그러면 kc를 한번 키워볼게.

 

image007.jpg

 

 

위의 그래프는 kc 값을 잘된 튜닝 값에 3배 한 값이야. 이전 튜닝보다 훨씬 출렁거리고 설정온도에 도달하는 시간도

11분에서 20분정도로 길어진걸 알 수 있지.

그러면 kc를 잘된 튜닝 값보다 줄여 볼게.

 

image008.jpg

 

위에 보이는 그래프는 잘된 kc값에 나누기 3을 한 값이야. 기존 튜닝보다 설정온도에 도달하는 시간이 길어지고

(25분내에 도달 못함)

설정온도보다 높이 치솟는 구간은 없어졌어.

 

 

정리하면, kc를 크게하면 공정이 출렁거리면서 수렴한다. Kc를 작게하면 출렁거리지 않으면서 느리게 수렴한다.

 

 

 

그러면 이제는 τi를 바꾸면 어떻게 되는지 알아보자.

 

image009.jpg

 

 

위 그래프는 잘된 튜닝의 τi3을 곱한 값이야 kc를 줄였던 모양이랑은 다르게 5분 부분에서

약간 꺾인 형태로 나타나고,

 설정온도 도달시간이 길어진걸 알 수 있어.

 

image010.jpg

 

 

위 그래프는 잘된 튜닝 τi3을 나눠준 값이야 kc를 키워줬던 그래프와 비슷하게 나왔지??

물론 여기서 kc를 줄여줘도 꽤나 괜찮은 제어를 할 수 있어.

여기서 kc를 줄여줄지 τi를 늘여줄지는 엔지니어의 판단에 달려있어.

그런데 눈으로 보면서 하는 튜닝 방법에는

지금 하고 있는 방법 말고도 다른 방법이 있어서 그 방법을 사용하면 돼.

그 방법은 다음에 설명할게.

 

정리하자면, τi가 클때는 수렴하는 모양이 약간 꺾였다가 느리게 수렴한다. τi가 클때는 공정이 요동치면서 수렴한다.

 

다음으로는 τd에 대해 알아보도록 하자.

 

 

image011.jpg

 

 

위 그래프는 잘된 튜닝의 τd3을 곱한 값이야.

처음 설정치를 지나가는 시간도 길어지고, 설정치에 수렴하는 시간도 길어진걸 볼 수 있어.

그런데 어떻게 보면 τi를 키웠을 때의 그래프와 비슷하기도 하지?

여기서 τi를 줄여도 꽤 괜찮은 제어를 할 수 있어.

 

 

image012.jpg

 

 

위에 보이는 그래프는 잘된 튜닝의 τd3을 나눠준 값이야.

잘된 튜닝보다 설정치 위로 치솟는 온도가 높아지고 수렴하는 시간도 길어진걸 알 수 있어.

이 상태로도 충분히 훌륭한 제어라고 할 수 있어.

그런데 설정치 위로 치솟는 현상을 줄이고 싶으면 τd를 줄여야 해.

 

 

정리하자면, τd를 키우면 수렴을 우물쭈물하게 하고, τd를 줄이면 우물쭈물 효과가 사라진다.

 

 

 

 

 

지금까지는 간단하게 각 PID파라미터 값을 변하게 했을 때 설정치로 수렴하는 그래프 모양이 어떻게 바뀌는지를

 간단하게 알아봤어. 그럼 PID제어 로직을 좀더 자세하게 알아보자.

 

 

 

image005.png

 

 

 

 

우변의 첫째항이 비례, 두번째가 적분, 세번째가 미분이야.

먼저 비례부분을 보면 설정온도가 바뀌면 초반에 온도를 위로 끌어올리는 역할을 해.

, 비례 부분은 현재의 온도를 제어한다고 하지.

그 다음 적분 부분은 과거부터 현재까지의 오차를 전부 더해서 제어 출력으로 내어주는 역할을 해

적분 부분은 과거의 온도를 제어한다고 말 할 수 있어.

만약에 적분 부분이 없거나 τi가 너무 크면 온도가 설정치로 수렴하지 못 할 수도 있어.

(일정 온도를 유지하기 위해서는 일정한 열량을 공급해야하니까)

미분 부분은 오차의 미분을 제어 출력으로 내어줘.

오차가 줄어드는 방향이면 미분부분은 작아지고 오차가 늘어나는 방향이면 미분부분은 커지겠지.

그래서 미분부분을 미래의 온도를 제어한다고도 표현해

그리고, 정말 깔끔한 제어를 위해서는 이 미분항이 꼭 필요하지.

그런데, 미분항을 사용할때는 노이즈를 꼭 고려해줘야해.

그렇지 않으면 미분항 때문에 노이즈가 증폭되어서 제어가 재대로 되지 않을수 있어.

노이즈에서 사용할 수 있는 미분항은 다음에 알아보도록 하자.

 

오늘은 여기에서 마칠게.

부족한 부분이 많겠지만 도움이 좀 되었길 바래.

궁금한 점이나 틀린부분은 댓글로 말해줘.

추가하고 싶은 내용도 댓글에 적어주면 다음 편에 추가해 줄게

그럼 다들 잘자!

 

3줄 요약

1.    PID제어는 PID 파라미터 튜닝이 중요하다

2.    PID 파라미터 튜닝의 자세한 내용은 다음시간에 알려준다.

3.    미분항은 조심히 써야한다.