드론 쿼드콥터

PID 제어기

하늘이푸른오늘 2017. 1. 22. 12:37

PID 제어기(PID Controller)

비례-적분-미분 제어기(PID 제어기)산업 제어시스템에서 널리 사용되는 제어루프(Control loop) 피드백 기법(feedback mechanism)이다. PID 제어기는 끊임없이 원하는 설정값(setpoint)와 측정된 프로세스 변수간의 차이인 오차값 e(t)을 계산하고, 비례항(proportional), 적분항(integral), 미분항(derivative) (각각 P,I,D 라고 표시함)에 기반한 보정량을 적용하는 구조이다. 

기본 동작(Fundamental operation)


PID 제어기는 끊임없이 원하는 설정값(setpoint)와 측정된 프로세스 변수간의 차이인 오차값 e(t)을 계산하고, 비례항(proportional), 적분항(integral), 미분항(derivative) (각각 P,I,D 라고 표시함)에 기반한 보정량을 적용한다. 

PID 제어피드백 루프내에 있는 PID 제어기 블록 다이어그램. r(t)는 목표 프로세스값 혹은 "설정값"이며, y(t)는 측정된 프로세스값이다.

PID 제어기는 제어값(control value) u(t)를 조정함으로써 시간에 따라 오류를 최소화시키는 방식이다. 여기서 제어값은 제어밸브의 위치, 완충기, 열기기에 공급된 전원 등으로서, 새로운 값은 다음과 같은 세개 항의 가중합에 의해 결정된다.

여기에서 Kp, Ki, Kd 등은 모두 음이 아닌, 비례항, 적분항, 미분항의 계수를 의미하며, 각각 P, I, D 라고 표시하기도 한다. 이 모델에서

  • P 오류의 현재값을 설명한다. 예를 들어, 오류가 크고 양수라면, 제어출력도 크고 양수이다.
  • I는 오류의 과거값을 설명한다. 예를 들어, 현재출력이 충분이 강하지 않다면, 오류의 적분은 시간에 따라 축적되고, 제어기는 더 강한 action을 적용하는 것으로 반응을 한다.
  • D는 현재의 변화율에 기반하여 오류의 가능한 미래 경향을 설명한다.

PID 제어기는 측정된 프로세스 변수만 관계하고, 기저를 이루는 프로세스에 대한 지식과는 관계 없으므로, 널리 적용할 수 있다. 이 모델의 세개의 매개변수를 튜닝하면, PID 제어기는 특정 프로세스 요구사항을 처리할 수 있다. 제어기의 반응은 오류에 대한 반응성, 시스템 설정값에 대한 오버슛(overshoot) 정도, 시스템의 진동 정도 등의 항으로 설명할 수 있다. PID 알고리듬을 사용한다고 해서 시스템의 최적 제어안정성을 보장하는 것은 아니다.

일부 응용분야에서는 하나 또는 두개의 항만 이용하여 시스템 제어를 수행하기도 한다. 나머지 매개변수를 0으로 두는 방법이다. 어떤 제어항이 없느냐에 따라 PI, PD, P 또는 I 제어기로 불러진다. 미분항이 잡음 측정에 민감하기 때문에, PI 제어기는 상당히 흔한 편이나, 적분항이 없을 경우에는 목표값에 도달할 수 없는 경우가 발생할 수 있다.

이산형 시간(discrete-time) 시스템의 경우, PSD(비례-합-차(proportional-summation-difference))라는 용어가 널리 사용된다.

역사와 응용


기원(Origin)

PID 제어기의 기원은 19세기 속도 조정기(speed governor) 설계이다. 속도조정기의 작동을 위한 이론적 기반은 제임스 클락 맥스웰(James Clerk Maxwell)의 1868년 세미나 논문 "On Governors"에서 최초 기술되었으나, 1922년에 이르러서야, 러시아출신 미국인 엔지니어 니콜라스 미노스키(Minorsky 1922)가 이론적 분석을 이용하여 자동선박조향을 위한 PID 제어기를 최초로 개발하였다. 미노스키는 미 해군용 자동조향시스템을 설계중이었는데, 선박 키잡이를 관찰한 자신의 분석에 기반하여, 키잡이가 현재 경로 오류에만 기반하는 게 아니라, 과거의 오류 및 현재의 변화율까지 이용해 선박을 조향한다고 언급하였다. 

Scross 키잡이초기 PID 이론은 키잡이가 바람이나 바다의 상태와 같은 변화하는 영향하에서 선박의 방향을 유지하는 키잡이의 행동을 관찰함으로써 개발되었다.

미노스키는 이것을 수학적으로 정리하였다. 그의 목표는 일반적인 제어가 아닌, 문제를 상당히 간단하게 만들 수 있는 안정성이었다. 비례 제어가 작은 교란에 대해서는 안정성을 제공하지만, 지속적인 교란, 특히 (지속상태 오류(steady-state error)로 인한) 강풍을 처리하는데는 불충분하여, 적분항을 추가하는 게 필요하였다. 마지막으로 안정성과 제어를 향상시키기 위하여 미분항이 추가되었다.

USS 뉴 멕시코호에 시범 적용되었는데, 제어기는 Rudder의 각속도(각이 아님)를 제어하였다. PI 제어는 지속적으로 ±2°의 각 오류를 산출하였다. D 항을 추가하자, ±1/6°의 각 오류를 산출하여, 대부분의 키잡이들의 성과보다 뛰어났다.

하지만 미해군은 궁극적으로 사람들의 저항으로 인해 이 시스템을 적용하지 않았다. 1930년대에 비슷한 작업이 수행되었고, 비슷한 성과가 출판되었다.

초기 적용 사례중 하나로, 1911년 Elmer Sperry가 개발한 PID 형 제어기가 있었지만, 그의 작업은 수학적 기반이 아니라, 직관적인 성과였다.

산업적 제어기 개발(Industrial Controller Development)

자동 PID 프로세스 제어의 초기 역사에서 최초의 제어기는 압축공기(pneumatic) 기기로서, 격막 작동 밸브와 같이 압축 공기를 제어기 출력 계산 및 프로세스 제어기 양쪽으로 사용하였다. 이들 제어기는 노즐과 플래퍼 밸브(Nozzle and Flapper) 고이득 압축공기 증폭기 와 P, I, D 제어항을 생산하는 피드백을 사용하였다. 이들은 간단하고 관리가 간단한 기기로, 가혹한 산업환경에서도 잘 작동하고, 위험한 환경에서도 폭발 위험성이 없다. 이들은 이산 전자 제어기와 분산 제어 시스템이 등장하기 전까지 수십년 동안 산업 표준이었다.

압축공기 제어기압축공기 PID(3항) 제어기. P,I,D 3개항의 크기는 위에 있는 손잡이로 조정된다.

이들 제어기의 등장으로, 3-15 psi 표준의 압축공기 산업이 자리를 잡았고, 선형적인 특성내에서 작동하고, 제어 범위가 0-100%를 표현하는 기기를 보장하였다.??? 미터법으로는 0.2 - 1.0 bar에 상당한다.

1950년대 들어 고 이득 전자 증폭기가 저렴해지고 신뢰성이 높아짐에 따라, 전자 제어기가 널리 사용되게 되었으며, 4-20 mA 전류 루프 신호가 압축공기를 모방하여 사용되었다. 하지만, 현장 구동기(field actuator)는 현재에도 압축공기 표준을 널리 사용하고 있다. 플랜트 환경에서는 압축공기 동력을 사용한 제어밸브가 장점이 많기 때문이다.

프로세스 제어 신호의 진화아날로그 제어 루프 신호의 진화. 압축공기 시대에서 전자 시대로

스마트 전류 루프 포지셔너센싱 제어 전송에 사용되는 전류 루프 샘플. 현대의 "스마트" 밸브 포지셔너의 사용예를 보인다.

기타 응용(Other applications)

전자 아날로그 PID 제어루프는 좀 더 복잡한 전자 시스템에서 자주 발견된다. 디스크 드라이브의 헤드 위치, 파워 서플라이의 전원 조절, 현대 지진계의 이동감지 회로 등이 그 예이다. 오늘날 전자 제어기는, PID 알고릳듬을 수행하는 마이크로콘트롤러FPGA 등에 의해 수행되는 디지털 제어기로 대부분 대체되었다. 하지만 아날로그 PID 제어기는 레이저 다이오드 제어기와 같이 high-bandwidth, 저소음 성능이 필요한 일부 응용에서 여전히 사용되고 있다.

현재

대부분의 산업용 현대 PID 제어기는 분산제어환경(DCS)에서, 프로그램 로직 제어기(PLC) 또는 패널 마운트 디지털 제어기로서 구현된다. 소프트웨어 구현은, PID 알고리즘 구현에 있서 상대적으로 저렴하고 유연하다는 점에서 장점이 있다. PID 온도 제어기는 산업용 오븐, 플라스틱 사출기계, 열스탬프 기계, 포장 산업 등에서 적용되고 있다.

제어 루프 기본(Control loop basics)


로봇팔은 제어루프를 사용하여 원하는 위치로 이동시킬 수 있다. 전기 모터에 동력을 전후로 적용하면 로봇팔을 들거나 내릴 수 있고, 로봇팔의 관성질량, 중력에 의한 힘, 물건을 드는 등의 외부 힘을 보정하거나, 외부 물체에 일을 가하는 등이 필요할 수 있다.

감지된 위치는 프로세스 변수(PV : process variable)이다. 목표 위치는 설정값(SP, setpoint)이라고 한다. 프로세스에 대한 입력(모터에 공급되는 전류) 은 PID 제어기로부터 나오는 출력이다. 조작 변수(MV : manipulated variable) 또는 제어 변수(CV : control variable)이라고 한다. 오차(e)는 현재 위치와 설정값의 차이로, 로봇팔이 너무 높은지 낮은지, 얼마나 떨어져 있는지 등의 양이다.

위치(PV)를 측정하고, 설정값(SP)과의 차로부터 오류(e)를 구하고, 이로부터 제어기는 모터(MV)에 얼마나 많은 전류를 공급할 지 계산한다. 명백한 방법은 비례(proportional) 제어이다. 모터 전류를 오류에 비례하여 설정한다. 좀더 복잡한 제어에는 다른 항, 미분(derivative) 동작이 포함될 수 있다. 이것은 오류의 변화율을 고려하여, 오류가 얼마나 빨리 0에 접근하는지에 따라 전류를 더 많이 또는 더 적게 공급한다. 마지막으로 적분(integral) 동작이 세번째 항으로 추가되어, 과거 누적된 위치 오차를 통해 기계 팔의 위치가 너무 낫게 또는 너무 높게 있는지를 감지함으로써, 오류 뿐만 아니라 지속시간의 관계를 통해 전류를 설정한다. 또 다른 형태의 적분동작으로서, 전류 오류에 비례하는 고정된 작은 단계로 전류를 변화시키는 방법도 있다. 시간에 따라 이 단계가 과거의 오류에 따라 축적, 누적된다. 이것이 적분과 동등한 이산 시간(discrete-time) 이다.

오류가 작을 때 추동력(impetus)를 너무많이 적용하면, 오버슛(overshoot)이 발생한다. 오버슛 이후, 제어기가 반대방향으로 큰 보정을 적용하고, 이 결과 목표 위치에 또다시 오버슛이 발생하면, 출력은 설정값을 기준으로 진동한다. 일정한 크기이거나, 커지거나 작아지는 형태의 사인파가 된다. 진동의 크기가 시간에 따라 커지면 시스템은 불안정하다. 시간에 따라 줄어들면 시스템은 안정된다. 진동이 일정한 크기로 유지되면 시스템은 경계 안정적(marginally stable)이다.

적절한 시간에 원하는 지점(SP)에 정확하게 도착할 수 있도록 하기 위해, 제어 시스템은 임계 감쇠(critically damped)될 필요가 있다. 잘 튜닝된 위치제어 시스템은 또한, 원하는 위치로부터 멀어지려고하는 외력에 저항하는 데 필요하도록 전류를 적용하여 모터를 제어하게 된다. 설정값(setpoint) 그 자체는 PLC 혹은 다른 컴퓨터 시스템과 같은 외부 시스템에서 생성될 수 있으며, 로봇 팔이 해야할 일에 따라 끊임없이 달라질 수 있다. 잘 튜닝된 PID 제어시스템은 로봇팔이 이처럼 변경되는 요구조건에 최대한 만족하도록 한다.

제어기가 오류가 없는 (PV=SP) 안정상태에서 출발한다면, 이후의 제어기에 의한 변화는 프로세스에 영향을 주는 별도로 측정되거나 측정되지 않은 입력값의 변화에 대한 대응일 것이다. 조작변수(MV)가 아닌 프로세스에 영향을 미치는 변수는 교란(disturbances)라고 한다. 일반적으로 제어기는 교란을 제거하고, 설정값 변화를 이행하는데 사용된다. 로봇팔에 대한 하중변화는 로봇팔 제어 프로세스에 교란을 일으킨다. 

이론적으로 제어기는 측정가능한 출력(PV), 출력에 대한 이상적인 값(SP) 그리고 관련 PV에 영향을 미치는 입력값(MV)가 있는 어떠한 프로세스도 제어할 수 있다. 제어기는 산업현장에서 온도, 압력, 공급률, 흐름 속도, 화학적 조성, 무게, 위치, 속도, 기타 측정값이 존재하는 모든 변수를 조절하는데 사용된다. 

PID 제어기 이론


참고 : 이절에서는 parallel 혹은 non-interacting 형태의 PID 제어기를 다룬다. 다른 형태는 맨 아래에 있는 Alternative nomenclature and PID forms 를 참고하라.

PID  제어 구조의 이름은 조작변수(MV: manipulated variable)을 구성하는 세가지 교정항으로부터 유래되었다. 비례항, 적분항, 미분항은 모두 합쳐저셔 PID 제어기의 출력을 계산한다. 제어기 출력을 u(t)라고 하면, PID 알고리듬의 최종형태는 아래와 같다.

여기에서,

는 비례 이득 튜닝 파라미터

는 적분 이득 튜닝 파라미터

는 미분 이득 튜닝 파라미터

는 오류(SP는 설정값, PV(t)는 프로세스 변수)

는 시간 또는 현재

는 적분 변수. (시간 0 부터 현재 t까지의 값을 취한다)

결국 PID 제어기의 라플라스 도메인에서의 이전함수(transfer function)은 다음과 같다.

여기에서  는 복합 주파수이다.

비례항 (Proportional term)

비례항은 현재의 오류값에 비례하는 출력값을 생성한다. 비례 반응은 오류에 비례이득상수 Kp를 곱하여 조정할 수 있다.

비례항은 다음과 같다.

비례 이득이 높으면, 주어진 오차의 변화에 대하여 출력에 큰 변화를 일으킨다. 비례항이 너무 클 경우, 시스템은 불안정해진다. (자세한 내용은 루프 튜닝을 볼 것) 반대로 이득이 작아지면 큰 오류에 대해서도 출력이 작아지는 반응이 만들어짐으로써, 제어기의 반응성 또는 민감도가 떨어지게 된다. 비례 이득이 너무 낮을 경우, 시스템 교란에 대해 대응할 때, 제어가 너무 작아질 수 있다. 튜닝 이론과 산업에서의 실무에 따르면, 비례항은 출력변화의 상당부분을 차지해야 한다.

Steady-state 오류

PID 제어기를 운영하려면 오류가 0이면 안되므로, 비례 제어기는 일반적으로 소위 정상상태(steady-state) 오류로 작동한다. 정상상태 오류(SSE)는 프로세스 이득과 비례하며, 비례 이득에 반비례 한다. SSE는 설정값이나 출력에 보상하는 bias 항을 추가하여 완화시키거나, 동적으로 적분항을 추가하는 방법으로 보정한다.

PID 제어기, 비례 이득항세가지 Kp 값에 대한 시간에 따른 프로세스변수. Ki 및 Kd는 고정

적분항 (Integral term)

적분항은 오류의 크기 및 오류의 지속시간에 비례하여 크기가 달라진다. PID 제어기의 적분은 시간에 따른 순간 오류를 합한 것으로, 이미 보정되어야할 누적 오프셋을 만든다. 그 다음 누적된 오류에 적분이득(Ki)을 곱하고, 제어기 출력에 더한다.

.

적분항은 프로세스의 설정값으로 향한 이동을 가속화하며, 순수 비례 제어기에서 일어나는 정상상태 오류를 제거한다. 하지만, 적분항은 과거로부터의 누적 오류에 반응하므로, 현재값을 설정값에 대해 오버슛을 초래한다. (자세한 내용은 루프 튜닝을 볼 것)

PID 제어기, 적분항의 효과세가지 Ki 값에 대한 시간에 따른 PV. (Kp와 Kd는 고정)

미분항 (Derivative term)

프로세스 오류의 미분은 시간에 따른 오류의 기울기를 계산하고, 이 변화율을 미분 이득 Kd에 곱하여 결정한다. 전체 제어에 대한 미분항의 공헌 정도는 미분 이득 Kd 항으로 나타난다.

미분항은 다음과 같다.

미분항은 시스템의 행태를 예측하고, 따라서 안정화 시간과 시스템 안정화를 향상시킨다. 이상적인 미분항은 인과성(causal)이 아니므로, PID 제어기의 구현은 추가적으로 미분항에 대하여 고주파 이득 및 노이즈를 제한 할 수 있는 저주파 필터링이 포함된다. 미분항은 현실에서는 그다지 사용되지 않는다. (어떤 추정에 따르면 실 배치된 제어기중 25%만이 사용) 미분항 변수가 실세계 응용에서 시스템의 안정화에 영향을 미치기 때문이다.

PID 제어, 미분항의 효과세가지 Kd 값에 대한 시간에 따른 PV. (Kp와 Ki는 고정)

루프 튜닝(Loop Tuning)


제어 루프를 튜닝하는 것은 제어 파라미터(비례 band/이득, 적분 이득/reset, 미분 이득/rate)를 원하는 제어 반응이 되도록 최적의 값으로 조정하는 것을 말한다. 안정성(무한 진동이 아님)이 기본 요구사항이지만, 시스템이 다르면 다른 행태를 보이고, 응용분야에 따라 요구사항이 달라지고, 요구사항이 서로간에 충돌을 일으킬 수 있다. 

PID 튜닝은 세가지 항만 존재하고, 이론상으로는 간단히 설명할 수 있지만, 실제론 상당히 어려운 문제이다. PID 제어의 한계내에서 복잡한 기준을 만족시켜야 하기 때문이다. 따라서 루프 튜닝 방법은 매우 다양하며, 좀더 복잡한 기술은 특허의 주제이다. 이 절에서는 몇가지 전통적인 수동 방법론을 설명한다.

PID 제어기를 설계하고 튜닝하는 것은 개념적으로는 직관적으로 보이지만, 실무에서는 어려울 수 있다. 예를 들어 이전시간은 줄이되 안정성을 높여야 하는 것처럼 여러가지(가끔은 서로 충돌하는) 목적을 만족시켜야 하기 때문이다. PID 제어기는 가끔 기본 튜닝만으로 만족할 만한 제어가 되기도 하지만, 주의 깊게 튜닝하면 성능이 향상되고, 튜닝이 좋지 않으면 성능이 떨어지게 된다. 통상적으로 초기 설계는 폐루프(closed-loop) 시스템이 바라는 대로 동작하거나 타협될 때까지 컴퓨터 시뮬레이션을 통해 반복적으로 조정할 필요가 있다. 

일부 프로세스는 일정정도 비선형성이 있으며, 따라서 완전하중 상태에서 잘 작동하는 파라미터가 무하중에서 기동할 때는 작동하지 않을 수 있다. 이러한 현상은 이득 스케줄링(gain scheduling), 즉 운영 조건이 달라지면 다른 파라미터를 사용하도록 하여 교정할 수 있다.

제어이론에서 이득 스케줄링이란 비선형 시스템을 제어하는 방법론으로서, 각각 다른 작동점에서 만족한 제어를 제공하는 선형 제어기 집단을 사용하여 제어한다. 

스케줄링 변수라고 하는 하나 이상의 관측가능 변수(observable variable)을 사용하여 현재 어떤 작동 지역에 들어 있는지를 결정하고, 적절한 선형 제어기를 활성화시킨다. 예를 들어 비행제어시스템에서 고도와 마하 숫자가 스케줄링 변수가 될 수 있다. 이 두가지 변수의 조합에 따라 서로다른 선형 제어기 파라미터가 사용가능하다(자동적으로 제어기에 넣어진다.)

상대적으로 넓은 범위의 기술이 (Survey of Gain-Scheduling Analysis & Design, D.J.Leith, WE.Leithead)에 출간되었다.

안정성(Stability)

PID 제어기 파라미터 (비례/미분/적분항의 이득)가 잘못 선택되면, 프로세스 출력이 불안정해질 수 있다. 즉 진동이 있던 없던 출력이 발산(diverge)하여, 포화시키거나 기계적 파손만으로 정지 시킬 수 있다. 불안정성은 최고 이득, 특히 상당한 지연이 존재할 때 발생한다.

일반적으로, 반응의 안정화가 필요하며, 어떠한 목표값과 프로세스 조건하에서도 프로세스가 진동해서는 안된다. (경우에 따라서는 경계 안정성(marginal stability) (한정된 진동)이 허용되거나 바람직할 수도 있다.)

수학적으로 불안전성의 출발은 라플라스 도메인에서 볼 수 있다. 총 루프 이전 함수(total loop transfer function)은 다음과 같다. 

여기에서

 : PID 이전 함수

 : Plant 이전 함수

이때 폐루프 이전함수가 어떤  에 대하여 발산할 때 시스템이 불안정하다고 한다. 이는  인 상황에서 발생한다. 전형적으로  이고 180도 상전이(phase shift) 될 때 발생한다. 높은 상전이를 겪고 있는 주파수에서   일 때는 안정성이 보장된다. 이 효과에 대한 좀 더 일반적인 공식은 니퀴스트 안정성 조건(Nyquist stability criterion) 이라고 알려져 있다. ????

최적 행태(Optimum behavior)

프로세스 변화 또는 설정값 변경에 따른 최적 행태는 응용분야에 따라 달라진다. 조절(regulation) (교란 배제 - 주어진 설정값에서 머무는 것)과 명령추적(command tracking) (설정값 변화을 이행)이라는 두가지 요구조건이 있다. 이들은 제어 변수가 원하는 값을 얼마나 잘 추적하는지를 말한다. 명령 추적을 위한 특정 조건으로는 rise timesettling time 등이 있다. 어떤 프로세스에서는 프로세스 변수가 설정값 이상으로 오버슛하는 것을 허용해서는 안된다. (예를 들어 안전하지 않는 경우) 또다른 경우로, 새로운 설정값에 이르는데 소요되는 에너지를 최소화해야하는 경우도 있다.

방법론 개요(Overview of methods)

PID 루프를 튜닝하는 방법은 여러가지가 있다.가장 효과적인 방법론은 일반적으로 어떤 프로세스 모델 형태를 개발하고 동적 모델 파라미터에 근거하여 P, I, D를 선택하는 방식이다. 수동 튜닝은 상대적으로 시간이 소요된다. (특히 루프 시간이 긴 시스템의 경우)

방법론 선택은 주로 튜닝을 위해 루프를 "offline"으로 가져갈 수 있는지와, 시스템의 반응시간에 따라 달라진다. 시스템을 오프라인으로 가져 갈 수 있다면, 가장 최적의 튜닝방법은 입력값에 단계적인 변화를 가하고, 출력을 시간의 함수로 측정하고, 이 반응을 통해 제어변수를 결정하는 것이다.

<튜닝 방법의 선택>

방법론 
장점 
단점
 수동  수학 필요 없음. 온라인   경험많은 사람이 필요함
 Ziegler-Nichols  검증된 방법론. 온라인  프로세스 전복, 약간의 시행착오, 아주 공격적인 튜닝
 Tyreus Luyben  검증된 방법론. 온라인  프로세스 전복, 약간의 시행착오, 아주 공격적인 튜닝
 Software 도구  일관성있는 튜닝. 온라인/오프라인 - 컴퓨터 자동 콘트롤 설계(CAutoD)기법을 적용할 수 있음. 밸브 및 센서 분석이 포함될 수 있음. 다운로드 전 시뮬레이션 가능. non-steady-state(NSS) 튜닝도 지원함 비용발생. 교육훈련 필요 
 Cohen-Coon  좋은 프로세스 모델  약간의 수학. 오프라인. 1차 프로세스에만 좋음
 Åström-Hägglund  자동튜닝에 적용가능. 증폭이 최소화되므로 프로세스 전복이 가장 적은 방법임  이 프로세스 자체가 본질적으로 진동적임.


수동 튜닝(Manual Tuning)

시스템이 온라인으로 유지되어야 한다면, 먼저 Ki 와 Kd 값을 0으로 설정한다. 그 다음 Kp를 증가시켜 루프의 출력이 진동하도록 만들고, 이때 Kp는 "1/4 진동 쇠퇴(quarter amplitude decay)" 방식의 반응을 위한 값의 약 절반으로 설정해야 한다. 그 다음 Ki 값을 프로세스에서 오프셋이 충분한 시간내로 수정되도록 증가시킨다. 하지만 Ki를 너무 크게 하면 불안정을 유발한다. 마지막으로 필요하다면 Kd를 증가시켜 교란이 실린 후 루프가 참조점으로 충분히 빨리 접근시키도록 한다. 그러나 Kd를 너무 크게하면 과도한 반응과 오버슛을 초래한다. 빠른 PID 루프 튜닝은 좀 더 빨리 설정값에 도달하기 위해 약간 오버슛이 발생한다. 하지만, 오버슛을 허용할 수 없는 일부 시스템은 over-damped 폐루프 시스템이 필요하며, 이 경우, Kp설정값을 진동을 유발하는 Kp 설정값의 절반보다 상당히 작게 할 필요가 있다.

PID 제어PID 파라미터(Kp, Ki, Kd)의 효과

<파라미터를 독립적으로 증가시켰을 때의 효과>

파라미터 

Rise time

오버슛 

Settling time 

Steady-state error 

안정성 

 Kp

 줄어듦 

 증가함

 약간의 변화

 줄어듬

 나빠짐

 Ki

 줄어듬

 증가함

 증가함

 제거됨

 나빠짐

 Kd

 약간 변화

 줄어듦

 줄어듦

 이론상 영향없음

 Kd가 작으면 증가됨


Ziegler-Nichols 방법

참고 : 보다 자세한 내용은 Ziegler-Nichols 방법를 보라.

공식적으로 Ziegler-Nichols 방법이라고 알려진 또다른 체험적 튜딩 방법은, 1940년대 John G. Ziegler Nathaniel B. Nichols 에 의해 소개되었다. 위에서 소개된 방법과 마찬가지로, 처음에는 Ki 와 Kd 이득을 0으로 설정한다. 비례 이득을 임계이득(Ultimate gain) Ku에 달할 때까지 증가시킨다. 임계이득는 루프의 출력이 진동하기 시작하는 지점이다. Ku와 진동주기 Tu 를 사용하여 다음과 같이 설정한다.

<Ziegler-Nichols 방법>

 제어형태

 Kp 

 Ki

 Kd

 P

 0.50 Ku

 

 

 PI

 0.45 Ku

 0.54 Ku/Tu

 

 PID

 0.60 Ku

 1.2 Ku/Tu

 3 KuTu/40


이들 이득값은 이상적인, parallel 형태의 PID 제어기에 적용된다. 표준 PID 형태에 적용할 때, 적분 시간 파라미터 Ti 와 미신항 시간 파라미터 Td 는 진동주기 Tu에만 의존한다. 자세한 사항은 아래의 "Alternate nomenclature and PID forms"를 참고하라.

PID 튜닝 소프트웨어

대부분의 현대적 산업 시설에서는 위에서 보인 수동 계산 방식을 사용한 루프 튜닝은 더이상 사용되지 않는다. 그 대신, PID 튜닝과 루프 최적화 소프트웨어를 사용하여 일관성있는 결과를 확보한다. 이들 소프트웨어들은 데이터를 수집하고, 프로세스 모델을 개발하고, 최적 튜닝을 제안한다. 일부 소프트웨어 패키지들은 참조값 변화로부터 데이터를 수집하여 튜닝을 더 개발하기도 한다.

수학적 PID 루프 튜닝은 시스템에 자극을 유도하고, 제어 시스템의 주파수 반응을 사용하여 PID 루프 값을 설계한다. 반응시간이 몇 분 정도되는 루프에서는 수학적 루프 튜닝이 추천된다. 시행착오 방법으로는 안정된 루프 값을 찾는데 며칠씩 소요될 수 있기 때문이다. 최적값은 찾기가 힘들다. 일부 디지털 루프 제어기는 셀프 튜닝 지능을 제공하여, 아주 작은 설정값 변화를 프로세스에 보내어, 제어기가 최적의 튜닝값을 계산하고도록 한다.

성능 기준에 따라, 루프를 튜닝하는데 다른 공식이 사용될 수 있다. 많은 특허 공식이 이제 PID 튜닝 소프트웨어 및 하드웨어 모듈에 내장되어 있다.

자동 PID 루프 튜닝 소프트웨어가 진보함에 따라, 동적 또는 비정상상태(NSS : Non-Steady-State) 시나리오의 PID 루프를 튜닝할 수 있는 알고리듬도 보급되고 있다. 소프트웨어는 동적 프로세스를 모델링하고, 교란을 통해 반응으로부터 PID 제어 파라미터를 계산한다.

PID 제어의 한계


PID 제어기는 다양한 제어 문제에 적용할 수 있으며, 대부분 대충 튜닝해도 만족스럽게 작동하지만, 일부 응용에서는 성능이 나쁘며, 전반적으로 최적제어를 제공하지 못한다. PID 제어의 근본적인 어려움은 PID가 파라미터가 일정한 피드백 제어 시스템이며, 프로세스에 대한 직접적인 지식이 없어, 따라서 전체적인 성능이 반응적이고 타협된다는 점이다. PID 제어가 프로세스 모델이 없는 상태 관찰자(observer)에서 최고의 제어기이지만, 관찰자에게 의존하지 않고, 프로세스의 실행자를 명시적으로 모델링할 수 있다면 최적의 성능을 얻을 수 있다.

PID 제어기는 단독으로 사용하면, 제어시스템에 오버슛이 발생하지 않고, 제어 설정값에 대해 진동하지 않도록 PID 루프 이득을 줄일 경우, 성능이 나빠질 수 있다. 또한 비선형성이 존재하면 어려워지고, 잘 조절하는 것과 조절하는 시간 사이에 균형을 맞춰야 하고, 프로세스의 형태 변화에도 반응하지 않으며, 대형 교란이 발생하면 지연이 발생한다.

가장 중요한 향상은, 시스템에 대한 지식을 기반으로 피드 포워드 제어(Feed-Forward-control)를 도입하고 PID는 오류만 제어하도록 하는 것이다. 대안으로, 파라미터를 변경하거나(사용사례에 따라 게인 스케줄링을 하거나, 성능에 따라 게인을 동적 조정) 측정을 향상(샘플링 속도나 정확도, 정밀도를 높이고 필요시 저주파 필터링)시키거나, 다중 PID 제어기를 중첩시키는 등의 방법으로 약간 수정하는 방법도 있다.

선형성(Linearity)

PID 제어기의 또 다른 문제는 PID 제어기가 선형이고 특히 대칭적이라는 것이다. 따라서 비선형 시스템(예: HVAC 시스템)에서는 PID의 성능이 가변적이다. 예를 들어 온도제어에서 가장 일반적인 사용례는 가열요소를 통한 적극적 가열과 수동적 냉각이어서, 오버슈트가 느리게 보정된다. (온도를 강제로 내릴 수 없다. )이러한 경우, PID는 오버슈트를 방지 또는 줄이기 위해 과도하게 억제시키는 방식으로 튜닝할 수 밖에 없어, 성능을 낮추게(settling time이 길어짐) 된다.

미분항에서의 잡음(Noise in derivative)

미분항의 문제는 미분항이 고주파 측정 또는 프로세스 잡음을 중폭시켜, 출력에 큰 변화를 일으킨다는 점이다. 고주파 잡음 성분을 제거하기 위해 측정값에 저주파 필터로 필터링하면 도움이 되는 경우가 많다. 저주파 필터링과 미분제어는 서로 상쇄되므로, 필터링의 양은 제한된다. 따라서 저잡음 기기장치가 중요하다. 비선형 median 필터도 사용될 수 있다. 이 필터는 필터링 효율과 실질적 성능을 향상시킨다. 일부 경우에서는 미분 항을 꺼도 제어는 그다지 영향을 미치지 않는다. 이렇게 하면 PID 제어기를 PI 제어기로 사용하는 것과 동등하다.

PID 알고리듬에 대한 변경


기본적인 PID 알고리듬은 제어 응용에서 몇가지 도전을 제시한다. 이는 PID 형태에 minor 한 변경을 가하면 해결된다.

Integral windup

참고 : Integral windup에대한 자세한 사항은 여기를 참고하라.

PID가 이상적으로 구현될때 흔히 발생하는 문제가 integral windup 이다. 설정값이 크게 변한 후, 적분항이 조절 변수(windup)에 대한 최대 값보다 오차가 더 크게 축적될 수 있어, 시스템에 오버슛이 발생하고, 축적된 오차가 해소될 때까지 오버슛이 증가하게 된다. 이러한 문제는 다음과 같이 해결될 수 있다.

  • 프로세스 변수(PV)가 제어가능한 범위에 들어올 때까지 적분항을 비활성화 시킨다.
  • 미리 지정한 범위 이상 혹은 이하로 축적되지 못하도록 적분항을 제한한다.
  • 조절 출력이 가능한 경계에 들어오도록 제한할 수 있도록 적분항을 재계산한다.

알려진 교란에 의한 오버슛(Overshooting from known disturbances)

예를 들어, PID 루프는 전기저항용광로의 온도제어에 사용되어 시스템이 안정화되었다. 이제 문이 열리고, 냉기가 용광로 안으로 들어와 온도가 설정값 이하로 떨어진다. 제어기의 적분기능은 플러스 방향으로 또다른 오류를 도임함으로써 오류를 보상하려는 경향이 있다. 이러한 오버슛은 문이 열린 후 제어루프가 용광로를 재가열하는 동안 적분항을 동결함으로써 방지할 수 있다. 

PI 제어기(PI Controller)

PI 제어기는 PID 제어기의 특별한 경우로, 미분항을 사용하지 않는다.

제어기 출력은 다음과 같다.

여기에서 오류 또는 설정값(SP)와 실제 측정값(PV)의 차이 이다.

\Delta =SP-PV

PI 제어기는 Simulink 또는 Xcos와 같은 소프트웨어에서 Laplas 오퍼레이터를 포함하는 "flow chart" 박스를 사용하여 쉽게 모델링할 수 있다.

여기에서

 = 비례 이득

 = 적분 이득

G 값을 설정에는 오버슛 감소와 안정화 시간 증가의 타협이 필요하다.

미분항이 없음으로 인해 데이터에 잡음이 있는 경우, steady state에서 시스템이 좀더 안정적이 될 수 있다. 이는 미분항이 입력의 고주파 성문에 좀더 민감하기 때문이다.

반대로 미분항이 없음으로 인해 PI 제어기는 상대적으로 상태가 빨리 바뀌는 경우 반응성이 떨어지고, 따라서 잘 튜닝된 PID 시스템에 비해 설정값에 도달하는 시간이 느려지고, 교란에 대한 반응성이 떨어지게 된다.

Deadband (불감대역)

많은 PID 루프는 밸브와 같은 기계적 장치를 제어한다. 기계적 유지관리는 많은 비용이 소요되며, 입력 신호에 대한 기계적 반응에서 정지마찰(stiction) 또는 불감대역(deadband, 완충지대) 와 같은 형태로 제어 품질 저하를 발생시킨다. 기계적 마모 비율은 주로 변화를 만들기 위해 장치가 작동되는 횟수에 비례한다. 마모가 상당한 문제가 되는 경우, PID 루프에서 출력(밸브)의 활동 주기를 줄이기 위해 출력 불감대역(deadband)를 설정할 수 있다. 이는 변화가 작을 때(즉 지정한 불감대역 범위 내)에는 제어기가 출력을 일정하게 유지하도록 하는 방법을 사용한다. 계산된 출력은 실재 출력이 변화되기 전에 불감대역을 떠나야 한다.

설정값 단계 변화(Setpoint step change)

설정값을 크게 변경시킬 때와 같이 시스템의 오류가 순간적으로 증가하게 되면, 비례항과 미분항은 출력에 과도한 이동을 초래할 수 있다. 미분항의 경우, 오류의 미분을 취하는데, 순간 변화는 미분(기울기)가 매우 크기 때문이다. 따라서 일부 PID 알고리듬에서는 다음과 같은 변경을 도입하는 경우가 있다.

설정값 램플링(Setpoint Rampling)

설정값을 예전 값에서 새로운 값으로, 선형 혹은 1차미분 ramp 함수를 사용하여 천천히 움직이도록 하는 방식이다. 이렇게 하면 한 단계 변화로 인한 불연속성(discontinuity)을 방지할 수 있다.

프로세스 변수의 미분(Derivative of Process variable)

이 방법은 PID 제어기가 오류의 미분 대신 측정된 프로세스 변수(PV ; process variable)의 미분을 측정하는 방식이다. 이 양은 항상 연속적이다.(즉 설정값 변화 등으로 인한 급변이 없음) 이 방법은 아래에 있는 설정값 가중치의 간단한 경우이다.

설정값 가중치(Setpoint weighting)

설정값 가중치 방법은, 제어기의 비례항 및 미분항에서의 오류에 대한 설정값에 조정가능 factor(대부분 0-1)를 추가한다. 적분항 오류는 steady-state 제어 오류를 방지하기 위해 실제 제어 오류가 되어야 한다. 이들 두가지 추가 파라미터는 하중교란과 측정 잡음에 대한 반응에 영향을 미치지 않으며, 제어기의 설정값 반응이 향상되도록 튜닝할 수 있다.

피드 포워드(Feed-forward)

제어시스템의 성능은 PID 제어기의 피드백(또는 폐루프 closed-loop)과 피드포워드(또는 개루프 open-loop) 제어를 결합함으로써 향상될 수 있다. 시스템에 대한 지식(예: 바람직한 가속도와 관성 등)을 미리 공급하고, 전반적인 시스템 성능을 향상시키기 위하여 PID 출력을 결합한다. 피드포워드 밸브만으로 제어기 출력의 대부분을 공급할 수 있다. PID 제어기는 주로 설정값(SP)와 개루프 제어에 의한 시스템 반응 간의 차이 또는 잔류오차를 보상해야 한다. 피드포워드 출력은 프로세스 피드백에 의해 영향을 받지 않으므로, 제어 시스템의 진동을 유발하지 않으며, 따라서 안정성에 영향을 주지 않고 시스템 반응을 향상시킨다. 피드 포워드는 설정값과 기타 축정된 교란 기반할 수 있다. 설정값 가중치(Setpoint weighting)은 피드포워드의 간략한 형태이다.

예를 들어, 대부분의 운동제어시템에서 제어중인 기계적하중을 가속화하려면 구동기로부터 더 많은 힘이 필요하다. 하중의 속도를 제어하는데 속도 루프 PID 제어기가 사용되고 있고, 구동기에 의해 힘이 전달된다면, 원하는 순간 가속을 취하여, 이값을 적절하게 확대하여 이것을 PID 속도 루프 제어기의 출력에 추가할 수 있다. 즉 하중이 가속되거나 감속될 때, 힘의 비례항이 피드백 값에 관계없이 구동기로부터 명령을 받는다는 뜻이다. 이 상황에서 PID 루프는 피드백 정보를 사용하여 프로세서 설정값과 피드백 값과의 잔류차이를 줄일 수 있도록 합계 출력을 변화시키게 된다. 이처럼 개루프 피드포워드 제어기와 폐루프 PID 제어기를 결합하여 사용하면, 좀더 반응성이 뛰어난 제어시스템을 만들 수 있다.

Bumpless Operation

PID 제어기는 가끔 "bumpless" 초기화 기능과 함께 수행된다. 적분항을 재계산하여, 프라미터가 변경되더라도 프로세스 출력이 일정하게 유지되도록 하는 것을 말한다. 부분적으로는 적분이득에 의한 후처리값과 오류를 적분하여 저장하는 게 아니라, 적분 이득과 오류를 적분하여 저장하면, 적분 이득이 변경되었을 때 불연속한 출력을 방지할 있다. 단, 비례 이득과 미분 이득의 변화에는 대응할 수 없다.

기타 향상방법

피드포워드에 추가하여, PID 제어기는 PID 이득 스케줄링(운영환경에 따라 파라미터를 변경하는 방식), Fuzzy logic 또는 Computational verb logic 등과 같은 방법으로 향상시킨다.

좀 더 실용적인 응용문제는 제어기에 연결된 기기로부터 발생한다. 적절한 제어 성능을 확보하려면 충분한 샘플링 속도, 측정 정확도, 측정 정밀도 등이 필요하다. PID 제어기를 향상시킬 수 있는 또 다른 새로운 방법은, fractional order를 사용하여 자유도를 증가시키는 것이다. 적분항과 미분항의 급수를 높이면 제어기의 유연성을 증대시킬 수 있다.

다층 제어(Cascade control)

PID 제어기는 두개의 PID를 함께 사용하면 훨씬 나은 동적 특성이 생긴다는 명백한 이점이 있다. 이것을 다층 PID 제어라고 한다. 다층 제어에서는 두개의 PID 를 배열하되, 어떤 PID를 다른 PID의 설정값을 제어하는데 사용된다. 즉, 하나의 PID 제어기는 외부 루프 제어기로 작동하여, 주로 물리적인 파라미터, 예를 들어 유체의 깊이나 속도를 제어한다. 다른 PID 제어기는 내부 루프 제어기로 작동하여, 외부 루프제어기의 출력을 설정값으로 읽어들이고, 좀더 빠른 변화, 예를 들어 유체 속도나 가속도 등을 제어한다. 다층 PID 제어기를 사용함으로써, 제어기의 흐름 주기는 증가하고, 물체의 시간 상수는 줄어든다는 것을 수학적으로 증명될 수 있다.

예를 들어, 온도제어 순환 목욕탕에 두개의 PID 제어기를 다층으로 구성하되, 각각 온도센서를 갖도록 한다. 외부 제어기는 히터로부터 멀리 떨어져 있어, 물 전체의 온도를 정확하게 측정할 수 있는 센서를 사용하여 물의 온도를 제어한다. 이 PID 제어기의 오류항은 원하는 목욕탕온도와 측정된 온도간의 차이이다. 히터를 직접 제어하는 대신 외부 제어기는 히터 온도 목표를 내부 PID 제어기에 설정한다. 내부 PID 제어기는 히터에 부착되어 있는 센서를 사용하여, 히터의 온도를 제어한다. 내부 제어기의 오류항은 히터 온도 설정값과 히터의 측정온도 간의 차이이다. 이들 출력은 히터를 원하는 설정값으로 유지하도록 제어한다.

두 제어기의 비례항, 적분항, 미분항은 매우 다르게 된다. 외부 PID 제어기는 장시간 상수를 갖는다. 탕 속의 모든 온를 올리거나 내린다. 내부 루프는 훨씬 더 빠르게 반응한다. 각가의 제어기는 각기 제어하는 시스템의 물리학에 맞춰 튜닝될 수 있다. 총 통의 온도질량과 열전달계수, 혹은 히터의 온도질량과 열전달계수. 따라서 더 나은 반응을 얻을 수 있다.

-----(이하 생략)

====

원문 : https://en.wikipedia.org/wiki/PID_controller