- PID controller 사용법에 대하여...
- 김영환 (2001/05/30)추천0 조회수2330
- 온도 제어를 위하여 PID controller가 부착된 air bath를 제작하여 이용하고 있습니다.
현재 문제는 일단 원하는 온도가 유지 되지 못하고 불안하게 움직이고 있는데, PID controller 에 부착된 몇가지 값을 변화 시켜서 이를 잡아 줄 수 있는지 궁금하군요.
이를 잡아줄 수 있는 방법도 되도록 이면 자세히 기술해 주시면 고맙게 경청하겠습니다.
제어를 잘 아시는 분 께서 답변 해주시면 좋겠네요.
전체덧글1
관리자 (2001-05-30 21:04:43)+덧글답변
공감0
비공감0
안녕하세요 김영환 님.
>온도 제어를 위하여 PID controller가 부착된 air bath를 제작하여 이용하고 있습니다.
>현재 문제는 일단 원하는 온도가 유지 되지 못하고 불안하게 움직이고 있는데, PID controller 에 부착된 몇가지 값을 변화 시켜서 이를 잡아 줄 수 있는지 궁금하군요.
우선 제가 보기에 이것은 부착된 PID 제어기의 tuning에 의한 controller design의 문제인 것 같군요. 김영환 님께서 PID 제어기를 활용하여 제대로 제어를 하실려면 tuning이 선행되어야 될 것 같습니다.
원하는 set point 에서 벗어나는 오차(error, E)에 대한 제어기의 output(P)의 작용을 나타내는 transfer function을 살펴보면 다음과 같습니다.
P\'(s) / E(s) = Kc (1 + 1/tau_I + tau_D s) (1)
게시판이 수식표현에 좀 부적합하여 불편하긴 하지만 이해를 좀 더 돕기 위해 정확한 식의 형태로 나타내면
p(t) = p_st + Kc [ e(t) + 1/tau_I int e(t*)dt + tau_D de/dt ] (2)
이고 적분항을 합으로 표현하고, 미분항을 1차 backward difference로 표현하면 다음과 같습니다.
p(n) = p_st + Kc [ e(n) + Del t / tau_I SUM( e(k) ) + tau_D / Del t ( e(n) - e(n-1) ) ] (3)
제가 이렇게 장황하게 식을 설명드린 이유는 tuning parameter가 Kc(controller gain), tau_I(reset time) , tau_D(derivative time) 의 세가지라는 점을 말씀드릴려는 것이었고, 각각은 외란이 들어와 발생한 오차에대해 작용함을 말씀드리려는 것 입니다.
우선 Kc가 증가되면 외란에 대한 제어응답은 빨라지는 대신에 제어응답의 동요(oscillation)가 심해집니다. 또한 actuator가 그 제어 응답을 못 따라가는 경우가 생기게 됩니다.
또한 tau_I 가 감소되면, 적극적이고 빠른 제어응답을 보이지만 역시 oscillation이 심해집니다.
tau_D 의 경우에 tau_D 의 증가는 최대오차를 줄이고, 응답시간을 빠르게하여 향상된 응답을 보이지만, 너무 큰 값은 noise를 증폭시키고 oscillation을 보이는 경향을 보입니다.
이상을 염두에 두고 tuning을 하시면 좀 더 향상된 결과를 얻으실 수 있을 것입니다.
사실, 특정 모델(first order plus time delay)에 대하여 Cohen and Coon controller design relations이나 Integral Error Criteria에 염두를 둔(IAE, ISE, ITAE) design relation 등을 이용하여 파라미터의 초기값과 함께 error를 최소로하는 최적의 파라미터를 구하는 방법도 있으므로 이를 참조하셔도 좋을 듯 합니다. (Seborg 의 \'Process Dynamics and Control\' 책 12장 참조)
1. Cohen and Coon
2. Integral of the absolute value of the error(IAE)
3. Integral of the squared error (ISE)
4. Integral of the time-weighted absolute error(ITAE)
>온도 제어를 위하여 PID controller가 부착된 air bath를 제작하여 이용하고 있습니다.
>현재 문제는 일단 원하는 온도가 유지 되지 못하고 불안하게 움직이고 있는데, PID controller 에 부착된 몇가지 값을 변화 시켜서 이를 잡아 줄 수 있는지 궁금하군요.
우선 제가 보기에 이것은 부착된 PID 제어기의 tuning에 의한 controller design의 문제인 것 같군요. 김영환 님께서 PID 제어기를 활용하여 제대로 제어를 하실려면 tuning이 선행되어야 될 것 같습니다.
원하는 set point 에서 벗어나는 오차(error, E)에 대한 제어기의 output(P)의 작용을 나타내는 transfer function을 살펴보면 다음과 같습니다.
P\'(s) / E(s) = Kc (1 + 1/tau_I + tau_D s) (1)
게시판이 수식표현에 좀 부적합하여 불편하긴 하지만 이해를 좀 더 돕기 위해 정확한 식의 형태로 나타내면
p(t) = p_st + Kc [ e(t) + 1/tau_I int e(t*)dt + tau_D de/dt ] (2)
이고 적분항을 합으로 표현하고, 미분항을 1차 backward difference로 표현하면 다음과 같습니다.
p(n) = p_st + Kc [ e(n) + Del t / tau_I SUM( e(k) ) + tau_D / Del t ( e(n) - e(n-1) ) ] (3)
제가 이렇게 장황하게 식을 설명드린 이유는 tuning parameter가 Kc(controller gain), tau_I(reset time) , tau_D(derivative time) 의 세가지라는 점을 말씀드릴려는 것이었고, 각각은 외란이 들어와 발생한 오차에대해 작용함을 말씀드리려는 것 입니다.
우선 Kc가 증가되면 외란에 대한 제어응답은 빨라지는 대신에 제어응답의 동요(oscillation)가 심해집니다. 또한 actuator가 그 제어 응답을 못 따라가는 경우가 생기게 됩니다.
또한 tau_I 가 감소되면, 적극적이고 빠른 제어응답을 보이지만 역시 oscillation이 심해집니다.
tau_D 의 경우에 tau_D 의 증가는 최대오차를 줄이고, 응답시간을 빠르게하여 향상된 응답을 보이지만, 너무 큰 값은 noise를 증폭시키고 oscillation을 보이는 경향을 보입니다.
이상을 염두에 두고 tuning을 하시면 좀 더 향상된 결과를 얻으실 수 있을 것입니다.
사실, 특정 모델(first order plus time delay)에 대하여 Cohen and Coon controller design relations이나 Integral Error Criteria에 염두를 둔(IAE, ISE, ITAE) design relation 등을 이용하여 파라미터의 초기값과 함께 error를 최소로하는 최적의 파라미터를 구하는 방법도 있으므로 이를 참조하셔도 좋을 듯 합니다. (Seborg 의 \'Process Dynamics and Control\' 책 12장 참조)
1. Cohen and Coon
2. Integral of the absolute value of the error(IAE)
3. Integral of the squared error (ISE)
4. Integral of the time-weighted absolute error(ITAE)