PID VI를 사용하여 PID 알고리즘 구현하기
- 업데이트 날짜:2023-02-21
- 4분 (읽기 시간)
다음 섹션에서는 기본적인 PID VI([PID 고급] VI, [PID 고급 자동튜닝] VI 및 고급 옵션을 사용하는 기타 VI 제외)가 PID 알고리즘을 구현하는 방법과 PID 컨트롤러 구현에 필요한 전제 및 변환에 대해 설명합니다. LabVIEW에서 PID 컨트롤러를 구현하려면 입력 신호를 샘플링하여 적분 동작과 미분 동작을 이산시키는 알고리즘이 필요합니다.
![]() |
노트 다음 식은 PID 팔레트에 있는 대부분의 VI에 적용됩니다. [PID 고급] VI와 [PID 고급 자동튜닝] VI는 고급 옵션 기능이 포함된 확장된 수식을 사용합니다. |
다음 시뮬레이션 다이어그램은 기본적인 PID VI에서 제공하는 PID 구현을 나타냅니다:

![]() |
노트 위의 그림과 같은 시뮬레이션 다이어그램을 만들려면 LabVIEW Control Design and Simulation Module이 필요합니다. 그러나 PID VI를 사용하여 PID 컨트롤러를 구현할 수 있습니다. Control Design and Simulation Module이 없이도 PID 컨트롤러를 작성할 수 있습니다. |
에러 계산
다음의 식은 비례, 적분, 미분 동작의 계산에 사용되는 현재 에러를 나타냅니다:

| 여기에서 | k는 시간 k*t에 샘플링된 신호의 인덱스 |
| e(k)는 현재 에러 | |
| SP는 셋포인트 | |
| PV는 프로세스 변수 |
비례 동작
비례 동작은 다음 식에서 보는 것과 같이 컨트롤러 게인에 에러를 곱한 값입니다.

| 여기에서 | Kc는 컨트롤러 게인 |
| e(k)는 현재 에러 |
PID VI는 비례 구성요소를 컨트롤러 게인으로 나타냅니다. 컨트롤러 게인(Kc)과 비례 대역(PB)의 관계는Kc = 100 / PB입니다.
적분 동작(사다리꼴 적분)
적분 동작을 이산하는데에는 전진 차분(Forward Difference), 후진 차분(Backward Difference) 및 Tustin 변환 또는 이중 선형 변환으로 알려진 사다리꼴 근사(Trapezoidal Approximation)등 여러 옵션이 있습니다. PID VI는 PV나 SP에 갑작스러운 변화가 있을 때 적분 동작이 갑자기 변화하는 것을 방지하기 위해 다음 식과 같은 사다리꼴 적분을 사용합니다.

| 여기에서 | ΔT는 컨트롤러의 샘플링 시간 |
미분 동작
SP가 갑자기 변화하면 에러 e에 미분 동작이 적용한 결과로 컨트롤러의 출력에 갑작스러운 변화가 있게 됩니다. 이러한 갑작스러운 변화를 미분 스파이크(Derivative Kick)라고 합니다. 미분 동작을 에러 e에 적용하지 않고 PV에만 적용하면, 이러한 미분 스파이크를 방지할 수 있습니다. 다음 식은 미분 스파이크를 방지하기 위해 PID VI로 구현한 미분 동작을 나타냅니다.

컨트롤러 출력
다음 식과 같이 컨트롤러 출력은 비례 동작, 적분 동작, 미분 동작의 총합입니다:
![]()
출력 제한 및 Anti-Windup 알고리즘
실제 컨트롤러 출력은 컨트롤 출력을 지정된 범위로 제한됩니다.
| If | ![]() |
then | ![]() |
and
| if | ![]() |
then | ![]() |
PID VI는 Anti-Windup을 용이하게 만드는 적분 총합 수정 알고리즘을 사용합니다. Windup은 컨트롤러 출력의 상위 리미트에서 발생합니다. 에러 e가 감소하면, 컨트롤러 출력도 감소하고 windup 영역을 벗어나게 됩니다. 적분 총합 수정 알고리즘은 컨트롤을 수동 모드에서 자동 모드로 전환한 경우 또는 다른 파라미터를 변경했을 때 컨트롤러 출력이 갑자기 변화되는 것을 방지합니다. 적분 총합 수정 알고리즘은 다음과 같이 작동합니다:
| If | ![]() |
그리고 | ![]() |
위의 식에서는 적분 총합 수정으로 인해 변화되는 미분 동작은 고려하지 않습니다.
기본 PID값과 게인 변경
SP, PV, 출력 범위 파라미터의 기본 범위는 퍼센트값입니다. 그러나 실제 공학 단위를 사용할 수 있습니다. 해당 범위를 이에 맞게 조정할 수 있습니다. 파라미터 Ti와 Td는 분으로 지정됩니다.
While 루프 내에서 PID VI를 일정한 사이클 간격으로 호출할 수 있습니다. 모든 PID VI는 재호출 VI입니다. 상위 레벨의 VI를 여러 번 호출하면 별도의 다른 데이터가 사용됩니다. 또한 PID VI에는 각 채널의 입력을 나타내는 배열이 있는 여러 채널 모드가 있습니다.
PID 게인은 언제든지 변경할 수 있습니다. 변화가 감지되면, PID 알고리즘은 새로운 파라미터에 출력을 일정하게 유지하기 위해 적분 동작을 조정하여 무충돌 전환을 수행합니다. 이는 사용자가 PID 파라미터를 변경하려 할 때 출력의 변화를 방지하여, 게인 스케줄링에 유용합니다.
게인 스케줄링
게인 스케줄링은 측정된 작동 조건에 따라 컨트롤러 파라미터를 변경하는 시스템을 말합니다. 스케줄링 변수의 예로는 셋포인트, 프로세스 변수, 컨트롤러 출력 또는 외부 신호 등이 있습니다. 미분 시간이나 적분 시간과 같은 다른 파라미터가 변경되는 경우에도 게인 스케줄링이라는 용어를 사용해 왔습니다. 게인 스케줄링은 작동 상태에 따라 변하는 시스템을 효과적으로 컨트롤합니다.
[PID 게인 스케줄] VI를 사용하면 게인 스케줄링을 위해 PID 파라미터의 집합을 무제한으로 정의할 수 있습니다. 각 스케줄에 대해서는 자동튜닝을 사용하여 PID 파라미터를 업데이트할 수 있습니다.
추가하기






