PID 제어 알고리즘 노트 정리 2: PID 알고리즘 원리 분석, 수학적 모델링

다양한 학습자료를 제공해 주신 인터넷신들께 감사드립니다

1. 제어 알고리즘의 목적과 기본 아이디어

1.1 통제 목적

제어의 기본 목적은 제어 대상의 현재 상태 값을 사용자가 설정한 값과 동일하게(최대한 가깝게) 만드는 것입니다.

1.2 기본 아이디어

사용자가 설정한 SV 값과 제어 대상의 현재 값 PV가 동시에 특정 하드웨어 회로 모델이나 특정 알고리즘 소프트웨어로 구성된 제어 알고리즘 로직으로 전송되며, 서로 다른 제어 알고리즘을 사용하여 SV와 PV를 분석, 판단, 처리합니다. , 현재 출력되어야 할 제어신호 OUT을 생성하고, 그 제어신호를 액츄에이터를 통해 제어대상에 인가하여 기대되는 제어효과를 발생시킨다.

2. 일반적으로 사용되는 제어 알고리즘: 비트 제어

2.1 2위치 제어 알고리즘

특징:

a. 2위치 제어 알고리즘의 출력에는 높음과 낮음의 두 가지 상태만 있습니다.

b) 집행기관은 통제대상을 최대능력으로 작동하지 않게 하거나 작동을 멈추게 한다. PV가 SV보다 낮으면 최대 용량으로 작동하고, PV가 SV보다 크거나 같으면 완전히 작동을 멈춥니다. 제어 대상이 1000W 히터인 경우 온도가 1000W 미만일 때 최대 전력 1000W로 작동하고 온도에 도달하면 작동을 멈춥니다.

c.환경적 요인이나 제어 시스템 전송 지연, 제어 대상 자체의 관성 등의 요인으로 인해 제어 효과로 인해 PV가 SV에 큰 변동을 보이는 경우가 많습니다.

d. PV가 SV의 임계점에 가까울 때 제어 출력 신호 OUT은 종종 H와 L 사이를 자주 전환하여 액추에이터의 출력 지점이 자주 전환되어 간섭이 발생하기 쉽고 액추에이터의 수명이 단축됩니다. .

2.2 히스테리시스를 이용한 2위치 제어 알고리즘

특징:

a. SV의 플러스 또는 마이너스 10%를 히스테리시스 조정의 상한 및 하한으로 취하고, 상한보다 높을 때 L을 출력하고, 하한보다 낮을 때 H를 출력합니다.

b. 임계점에서 일반적인 2위치 제어 알고리즘의 빈번한 동작을 피하십시오.

c.제어 대상에는 완전 작동 또는 비작동의 두 가지 상태만 있기 때문에 일반적인 2위치 제어 알고리즘에는 여전히 단점이 있습니다: PV는 항상 SV를 중심으로 변동합니다.

2.3 3위치 제어 알고리즘

특징: 2위치 제어를 기반으로 제어 대상의 전력은 제로 전력(작동 중지), 절반 전력 및 최대 전력의 세 가지 상황(즉, 세 위치)으로 나뉩니다.

현재 값이 설정 값보다 특정 백분율(일반적으로 %10)만큼 낮아지면 OUT1과 OUT2가 동시에 제어 역할을 하며 제어 대상은 최대 전력으로 작동합니다.

현재값이 설정값의 ±10% 이내이면 OUT1이 단독으로 동작하며 반전력 상태로 동작합니다.

현재값이 설정값에 도달하거나 초과하면 OUT1, OUT2 모두 출력을 멈추고 제어대상도 작동을 멈춥니다.

일반적인 2위치 제어 알고리즘과 비교하여 3위치 제어 알고리즘은 단순히 제어 대상의 현재 상태 값을 분석하고 서로 다른 현재 상태 값에 따라 서로 다른 제어 신호를 출력합니다. 출력을 더 잘 제어할 수 있습니다.

비트 제어의 주요 기능:

@1. 제어 알고리즘은 현재 상태 값(PV)과 설정 값의 차이를 제어하는 ​​데에만 중점을 둡니다. --- 둘 사이에 차이가 있으면 제어 신호를 출력하고, 차이가 있으면 제어 신호를 출력하지 않습니다. 둘 사이에는 차이가 없습니다.

@2.비트형 제어 알고리즘의 출력 신호 상태는 단일이며 high와 low의 두 가지 상태만 출력됩니다.이 두 상태는 제어 개체의 작동 또는 작동하지 않음에 해당합니다--- 온도 제어 시스템, 그것은 히터 가열 또는 가열하지 않음입니다.

@3. 제어 시스템 자체의 지연이나 제어 개체 자체의 관성으로 인해 위치 제어 알고리즘은 제어 개체의 현재 상태 값을 설정 값 주변에서 변동시킬 수 있을 뿐이며 설정 값 주변을 잘 추적할 수 없습니다. 또는 심지어 동등합니다.

3. PID 제어 알고리즘

3.1 PID 제어 알고리즘의 기본 개념

PID 알고리즘은 예측 제어 알고리즘이며 핵심 아이디어는 다음과 같습니다.

@1. PID 알고리즘은 제어 객체의 현재 상태 값(현재 상태)뿐만 아니라 과거 기간 동안의 제어 객체의 상태 값(과거 상태)과 상태 값 변화(예상)도 고려합니다. 가장 최근 기간에 이 세 가지 측면은 공통적으로 현재 출력 제어 신호를 결정합니다.

@2. PID 제어 알고리즘의 연산 결과는 제어 대상이 다양한 작동 상태(예: 다양한 히터 전력, 다양한 밸브 개방 등)에서 작동하도록 제어하는 ​​데 사용되는 숫자이며 일반 출력은 다음과 같습니다. 형태는 PWM 이며 기본적으로 필요에 따라 제어 신호를 출력하고 상황에 따라 언제든지 출력을 변경하는 목적을 충족합니다.

3.2 PID 알고리즘 분석

어떤 제어 시스템을 가정해 보겠습니다. 사용자 설정 값이 SV입니다(즉, PID 제어 알고리즘을 통해 제어 대상의 상태 값이 SV에 가깝게 유지되기를 바랍니다).

3.2.1 비례항목 분석(P항목)

@1. 시스템이 가동되기 때문에 제어 알고리즘은 일정한 간격으로 제어 객체의 상태값을 샘플링합니다. 따라서 시작 이후 각 샘플링 시점에서 제어 대상의 상태 값으로 구성된 데이터 시퀀스를 얻을 수 있습니다.

X1, X2, X3, X4, .... Xk-2, Xk-1, Xk

X1: 전원을 켠 후 첫 번째 샘플링 값

Xk: 현재 샘플링 값(최신 샘플링 값)

@2. 이 샘플링된 값 시퀀스에서 정보의 세 가지 측면을 추출합니다.

<1> 현재 샘플링 값 Xk와 사용자 설정 값 SV의 차이: Ek

Ek = SV - Xk

분석Ek:

Ek>0: 현재 상태 값이 표준에 미치지 못함을 나타냅니다.

Ek=0: 현재 제어 상태가 요구 사항을 충족함을 나타냅니다.

Ek>0: 현재 상태 값이 기준을 초과했음을 나타냅니다.

결론: Ek는 제어 대상의 현재 값과 설정 값 사이의 편차 정도를 반영하며 출력 신호 OUT은 Ek의 크기에 따라 조정될 수 있습니다. 편차 정도가 크고 OUT이 증가하며 편차 정도가 커집니다. 편차가 작을수록 OUT은 감소합니다. 즉, 출력신호의 세기는 전류편차의 크기에 비례하므로, Ek의 크기에 따라 제어신호 OUT의 전류값을 주는 알고리즘을 비례제어(proportion)라 한다. 수학적 모델은 다음과 같이 표현될 수 있습니다.

POUT=(Kp*I) + Out0

Kp: 일반적으로 비례 계수라고 하며 하드웨어의 증폭기(또는 감쇠기)로 이해할 수 있습니다. Kp를 적절하게 선택하면 특정 이득에 따라 현재 오류 값 Ek를 증폭하거나 감소시켜 해당 이득을 향상시킬 수 있습니다. 제어 알고리즘의 속도.

Out0: 상수입니다. 그 목적은 Ek가 0일 때 출력 신호가 0이 아닌지 확인하고 현재 값이 설정 값과 같을 때 컨트롤러 출력 신호 OUT이 0이 되는 것을 방지하여 시스템이 다음 상태에 있도록 하는 것입니다. 통제할 수 없고 통제할 수 없는 상태.

3.2.2 통합항목 분석(I항목)

@1.설정값에서 운전에 투입된 이후의 각 샘플링 값을 빼면, 기동 이후 각 샘플링 순간의 편차 시퀀스 데이터를 얻을 수 있습니다.

E1,E2,E3......Ek-2,Ek-1,Ek

설명하다:

E1: 첫 번째 샘플링 지점과 시작 시 설정 값 사이의 편차

E1 = SV - X1;

E2 = SV - X2;

......

Ek – 2 = SV – Ek – 2;

Ek – 1 = SV – Ek – 1;

Ek: 현재 샘플링된 값과 설정 값 사이의 편차

Ek=SV-Xk

부팅 이후 오류 순서를 분석합니다.

각 편차 값에는 >0, <0, =0의 세 가지 값이 있을 수 있습니다. 제어 알고리즘은 시작부터 현재까지 제어 대상을 제어하기 위해 지속적으로 제어 신호를 출력하여 때로는 표준을 초과하는 경우가 있기 때문입니다(Ex< 0), 표준에 도달하지 못하는 경우도 있고(Ex>0), 요구 사항만 충족하는 경우도 있습니다(Ex=0). 이러한 편차 값을 누적하여 대수적으로 계산하면 다음과 같이 됩니다.

Sk, 즉:

Sk=E1+E2+E3+......+Ek-2+Ek-1+Ek

분석 Sk:

Sk>0: 과거에는 대부분 기준을 충족하지 못함

Sk=0: 과거에는 제어 효과가 이상적이었습니다.

Sk<0: 과거에 대부분의 시간을 초과함

결론 1:

Sk 분석을 통해 제어 알고리즘의 과거 제어 효과를 종합적으로 평가할 수 있다. 이는 원래의 방식으로 제어 알고리즘에 의해 출력된 제어 신호가 전류 제어 결과로 이어진다는 것을 반영하므로 이 값을 사용하여 출력할 전류 제어 신호 OUT을 수정하여 제어 대상이 제어 대상에 도달하도록 해야 합니다. 사용자는 향후 설정값을 짧은 시간 내에 최대한 빨리 설정해야 합니다.

결론 2:

Sk는 실제로 과거의 각 시점에 오차를 더한 것으로 수학의 정적분 연산과 유사하므로 Sk에 따라 출력 신호를 조정하는 알고리즘을 적분(적분) 알고리즘이라고 합니다. 따라서 적분 제어의 수학적 모델은 다음과 같습니다.

IOUT=Kp*(1/Ti *∫Exdt) + Out0

Kp는 상수이며 그 목적은 Sk를 증폭하거나 감쇠하는 데 사용되는 하드웨어 증폭기와 유사합니다.

Out0은 과거 적분 편차 값이 0일 때 시스템이 출력 값을 갖도록 보장하여 통제력 상실을 방지하기 위한 상수입니다.

Ti는 적분 시상수로, 값이 클수록 출력은 작아지는데, 오랜 시간 동안 존재해 온 오차 값이 현재 출력 신호에 영향을 미쳤음을 알 수 있습니다. 값이 작을수록 OUT 출력이 강해지며, 적분은 가장 최근 기간의 오차만 고려한 것으로 이해할 수 있습니다.

실제로 시스템이 오랫동안 실행된 경우 이러한 초기 샘플링 편차 값은 전류 제어에 미치는 영향을 무시할 수 있으므로 좋은 제어 효과를 얻으려면 실제 상황에 따라 합리적인 Ti 값을 선택해야 합니다.

3.2.3 통합항목 분석(D항목)

@1. 마지막 두 편차 Dk의 차이

Dk=I-I-1

설명하다:

Ek: 전류 바이어스

Ek-1: 이전 샘플링 순간의 현재 편차 값(즉, 마지막 편차 값)을 기준으로 합니다.

분석 Dk:

Dk>0: 마지막 샘플링 시점부터 현재 시점까지의 오차가 증가하는 경향이 있음을 나타냅니다.

Dk=0: 이전 순간부터 현재 순간까지의 오류가 안정적임을 나타냅니다.

Dk<0: 이전 순간부터 현재 순간까지의 오차가 감소하는 추세를 나타냄

결론 1: Dk는 마지막 샘플링부터 현재 샘플링까지의 기간 동안 제어 대상의 상태 변화 추세를 설명할 수 있으며, 이러한 변화 추세는 다음 샘플링 시점까지 어느 정도 지속될 가능성이 높으므로 다음과 같다. 이러한 변화 추세(Dk 값)에 따라 출력 신호 OUT을 조정하여 조기 제어 목적을 달성합니다.

@2.Dk는 일정 기간 동안 제어 대상의 변화 추세와 양을 반영하는 수학적 미분 연산과 같으므로 Dk를 사용하여 컨트롤러의 출력 신호를 조정하는 알고리즘을 미분 알고리즘이라고 합니다. 수학적으로 다음과 같이 표현될 수 있습니다.

DOUT=Kp*(Td(de/dt))+Out0

Kp: 출력 신호 OUT의 이득을 조정하는 데 사용되는 하드웨어의 증폭기 또는 감쇠기로 이해될 수 있는 상수입니다.

Out0: Dk가 0일 때 OUT이 안정적인 제어 값을 갖도록 보장하여 제어 손실을 방지하기 위한 상수입니다.

Td: 차동 시상수(하드웨어 인덕터의 자체 인덕턴스 계수와 유사) Td가 클수록 OUT 값도 커지며 이는 출력 신호에 큰 영향을 미칩니다.

4. 비례, 적분, 미분 3가지 알고리즘의 장단점 분석

POUT=(Kp*Ek) + Out0 ------ 비례 알고리즘

IOUT=Kp*(1/Ti *∫Exdt) + Out0 ------적분 알고리즘

DOUT=Kp*(Td(de/dt))+Out0 ------ 차동 알고리즘

비례 알고리즘: 제어 대상의 현재 오류만 고려하고, 현재 오류가 있는 경우 제어 신호를 출력하고, 현재 오류가 없는 경우, 즉 편차가 있는 경우에만 제어 신호를 출력하지 않습니다. 이미 발생한 경우에는 비례알고리즘이 조정조치를 취하므로 별도의 비례알고리즘은 제어대상의 상태값을 설정값으로 제어하는 ​​것이 불가능하고, 항상 설정값을 상하로 변동하게 되는데, 비례제어는 민감하며 오류는 즉시 출력에 반영됩니다.

적분 알고리즘: 제어 대상의 과거 오류 상황을 고려하여 과거 오류 상황이 현재 출력 제어에 참여했지만 시스템이 아직 목표에 도달하지 못한 경우 이러한 과거 오류가 현재 제어를 방해하는 경우가 많습니다(즉, 드래그 다리), 부적절하게 사용하면 현재 출력이 엉망이 됩니다. 그러나 시스템이 안정된 상태에 들어간 후, 특히 현재 값과 설정 값 사이에 편차가 없는 경우 적분 알고리즘은 과거 편차 값에 따라 상대적으로 안정적인 제어 신호를 출력하여 목표에서 벗어나는 것을 방지하고 예방할 수 있습니다. 효과.

미분 알고리즘: 단순히 최근의 변화율을 고려하여 시스템의 편차가 특정 고정값에 가까워지는 경우 오류의 변화율은 0입니다. 미분 알고리즘은 정렬 편차를 조정하기 위한 제어 신호를 출력하지 않으므로 미분 알고리즘은 단독으로 사용할 수 없으며 편차가 있는지 여부에 관계없이 편차의 변화율에만 관심이 있습니다(편차 변화율이 0이라고 해서 편차가 반드시 0이 되는 것은 아닙니다). 그러나 미분 알고리즘은 제어 객체의 최근 변화 추세를 얻을 수 있으며 출력 신호가 제어 객체의 변화를 최대한 빨리 억제하도록 지원할 수 있습니다. 급격한 변화가 있을 때 제어 대상의 큰 변화를 피하기 위해 출력 신호를 크게 조정하여 이를 억제한다는 것을 이해할 수 있습니다.

위의 세 가지 알고리즘을 결합하여 제어 대상을 제어하는 ​​현재 제어량을 생성하며, 이들의 장점과 단점이 서로 보완되어 고전적인 PID 알고리즘을 형성합니다.

4. PID 알고리즘의 수학적 모델

아웃=POUT+IOUT+DOUT

지금 바로:

OUT= POUT=((Kp*Ek) +Out0)+(Kp*(1/Ti *∫Exdt)+Out0)+(Kp*(Td(de/dt))+Out0)

다음을 얻기 위한 공식을 배열합니다. 각 항목의 Out0을 OUT0에 병합합니다.

OUT=Kp(Ek+(1/Ti *∫Exdt)+(Td(de/dt)))+OUT0

5. 임베디드 디바이스에 PID 알고리즘 적용

5.1 싱글 칩 마이크로컴퓨터에 PID 알고리즘 적용

PID 알고리즘이 단일 칩 마이크로컴퓨터에 적용될 때 적분 및 미분 항은 다음과 같이 근사화될 수 있습니다.

통합 항목의 경우 다음과 같이 변경할 수 있습니다.

               N

     나는 =1/Ti∑Ek*T

               k=0

즉, 적분 대신 과거 기간 동안의 샘플링 지점의 편차 값의 대수적 합을 사용합니다.

T는 샘플링 주기이며 제어 주기라고도 하며 PID 계산은 T 주기마다 수행됩니다.

미분 항의 경우 다음과 같이 다시 작성할 수 있습니다.

D=Td*((Ek-Ek-1)/T)

Ek: 현재 편차, Ek-1 마지막 편차

5.2 위치 PID 알고리즘의 수학적 모델

이를 통해 마이크로 컨트롤러의 PID 알고리즘 표현을 얻을 수 있습니다.

OUT=Kp*(Ek+(1/Ti *∫Exdt)+(Td(de/dt)))+OUT0 -->

                             N

OUT=Kp*(I+1/Ti∑I*T+(Td*((I-I-1)/T)))+OUT0

                            k=0

더 확장되었습니다:

                                     N

OUT=(Kp*I)+(Kp*1/Ti∑I*T)+(Kp*Td*((I-I-1)/T))+OUT0

                                     k=0

령 Ki=Kp*(T/Ti)

Kd=(Kp*(Td/T))

그러므로:

                           N

OUT=Kp*I + Ki∑I+ Kd*(I-I-1) + OUT0

                          k=0

계산식은 프로그래밍 시 C언어나 다른 언어를 이용하여 편리하게 구현할 수 있습니다. OUT은 이 계산 결과입니다. OUT을 사용하여 액추에이터를 구동하여 해당 제어 신호를 출력합니다. 예를 들어 온도 제어는 PWM의 폭을 제어할 수 있고 솔레노이드 밸브는 솔레노이드 코일의 전류를 변경하여 개방도를 변경할 수 있습니다. 밸브 제어된 실리콘의 전도 각도 등;

이 PID 알고리즘으로 계산된 결과(OUT 값)는 전류 제어기가 출력해야 할 제어량을 나타내므로 이를 위치 PID(액추에이터가 도달해야 하는 상태 값을 직접 출력)라고 합니다.

5.3 증분형 PID 알고리즘

위치 PID 알고리즘은 계산량이 많고 프로세서 리소스를 소모합니다. 일부 제어 시스템에서는 액츄에이터 자체에 메모리 기능이 없습니다.예를 들어 모스 튜브가 켜져 있는지 여부는 전적으로 게이트 전압에 따라 다르며 사이리스터가 켜져 있는지 여부는 트리거 신호에 따라 다르며 릴레이가 켜져 있는지 여부는 다음에 따라 다릅니다. 코일 전류 등은 제어 신호가 손실되는 한 액추에이터가 정지하며 이러한 애플리케이션에서는 위치 PID를 사용해야 합니다.

또한 액츄에이터 자체에는 스테핑 모터와 같은 메모리 기능이 있다는 사실도 있는데, 이러한 제어 시스템에서는 자체 기계적 구조가 원래 위치 등을 유지하기 때문에 제어 신호가 시간에 따라 손실되면 PID 알고리즘이 이번에 달성해야 하는 실제 값을 출력하는 데는 필요하지 않습니다. 위치, 지난번을 기준으로 출력 신호에 얼마나 많은 수정이 이루어져야 하는지 설명하면 됩니다(양수 또는 음수일 수 있음). 이것이 증분형 PID 알고리즘입니다.

증분 PID는 현재 제어 신호에 있어야 하는 조정 값을 계산합니다. 계산된 값이 양수이면 출력 신호가 향상되고 계산된 값이 출력 신호를 약화시키는 원인이 되는 경우입니다.

증분 PID 알고리즘 수학적 모델:

OUTk-1이 마지막 출력 제어 신호를 나타내는 경우 현재 출력 값은 OUTk여야 하며 둘 사이의 관계는 다음과 같습니다.

OUTk=OUTk-1+ΔOUT

△OUT은 출력되어야 할 증분값입니다.

위의 공식은 다음과 같이 추가로 얻어집니다.

△OUT=OUTk-OUTk-1

이번에는 위치 알고리즘이 출력됩니다.

N

OUT=Kp*I + Ki∑I+ Kd*(I-I-1) + OUT0 -----1式

k=0

마지막 위치 알고리즘 출력:

n-1

OUT=Kp*I-1 + Ki∑I+ Kd*(I-1-I-2) + OUT0 -----2式

k=0

위의 공식 1에서 공식 2를 빼면 인접한 두 시간의 증분을 얻을 수 있습니다.

전에 언급했듯이:

Ki=Kp*(T/Ti)

Kd=(Kp*(Td/T))

△OUT=OUTk-OUTk-1=Kp(Ek-Ek-1)+((Kp*T)/Ti)Ek+(Kp*Td)/T*(Ek-2Ek-1+Ek-2)

Ek: 현재 편차

Ek-1: 마지막 편차

Ek-2: 마지막 편차

Kp: 알고리즘 이득 조정

Ti: 통합 시간

Td: 미분 시상수

T: 샘플링 기간

결론적으로:

증분 PID 계산에는 최근 3개의 편차(이 편차, 마지막 편차 및 마지막 편차)만 필요하며 프로세서가 많은 수의 과거 편차 값을 저장할 필요가 없으며 계산량이 상대적으로 적습니다. 구현하기 쉽습니다.

5.4 Ti와 Td의 이해

PID 제어 알고리즘에서 전류 출력 신호는 비례 방향, 적분 항 및 미분 항의 결합 작용에 의해 형성되며, 비례 방향 출력이 0이 아닐 때 적분 항이 연산 출력에 기여하고 출력에 대한 비례 방향 작동의 기여도는 동일할 때(양수 또는 음수 모두)입니다. 적분항은 비례방향이 작용하는 시간을 반복하는 것과 동일하며, 이 시간은 적분시간으로 이해될 수 있다.

비례 방향이 0이 아닌 경우 미분 항의 계산 결과가 일정 기간(즉, 양수 또는 음수 모두) 출력에 대한 비례 방향의 기여도와 동일하면 미분 항은 다음과 같습니다. 일정 시간 동안 비례 방향을 반복하며 이 시간의 역할은 미분 시간으로 이해될 수 있습니다.

실제 적용에서는 Kp, Ti 및 Td를 결합하여 출력에 대한 세 가지 기여도가 균형을 이루어 제어 개체가 설정 값에 가까워지도록 해야 합니다.

6. 임베디드 장치에서 PID 알고리즘을 어떻게 단순화할 수 있습니까?

마이크로 컨트롤러의 PID 알고리즘 표현:

OUT=Kp*(Ek+(1/Ti *∫Exdt)+(Td(de/dt)))+OUT0 -->

                             N

OUT=Kp*(I+1/Ti∑I*T+(Td*((I-I-1)/T)))+OUT0

                            k=0

더 확장되었습니다:

                                     N

OUT=(Kp*I)+(Kp*1/Ti∑I*T)+(Kp*Td*((I-I-1)/T))+OUT0

                                    k=0

령 Ki=Kp*(T/Ti)

Kd=(Kp*(Td/T))

그러므로:

                           N

OUT=Kp*I + Ki∑I+ Kd*(I-I-1) + OUT0

                          k=0

실제 프로젝트 개발에서는 OUT0을 제거하여 관계를 단순화할 수 있습니다.

                           N

OUT=Kp*Ek + Ki∑Ek+ Kd*(Ek-Ek-1)

                          k=0

Kp, Ki, Kd 세 가지 매개변수만 조정하면 되는데, 이 세 가지 항목은 우리가 일반적으로 이해하는 P 항목 계수, I 항목 계수, D 항목 계수입니다.

추천

출처blog.csdn.net/qq_27568125/article/details/115376713