PID VI
- 업데이트 날짜:2023-02-21
- 8분 (읽기 시간)
PID VI
상위 팔레트: PID VI
다음에서 설치됨: Full Development System
단순한 PID 어플리케이션 또는 효율적인 알고리즘을 필요로하는 고속 컨트롤 어플리케이션에서 PID 알고리즘을 사용하여 PID 컨트롤러를 구현합니다. PID 알고리즘 구성요소는 PID 게인 변경에 대해 integrator anti-windup을 가진 출력 범위 제한과 충돌없는 컨트롤러 출력을 제어합니다. 이 VI의 DBL 인스턴스를 사용하여 한 개의 컨트롤 루프를 구현합니다. 병렬 여러 루프 컨트롤을 구현하려면 DBL 배열 인스턴스를 사용합니다.
블록다이어그램에 추가하기 |
팔레트에서 찾기 |
PID (DBL)

![]() |
출력 범위는 컨트롤 출력을 강제 변환할 범위를 지정합니다. 기본 범위는 -100에서 100이며, 이는 전체 스케일의 퍼센트로 지정된 값에 상응합니다. 사용하는 컨트롤 시스템에 적합하도록 이 범위를 변경할 수 있습니다. 예를 들어 퍼센트 단위 대신에 공학 단위를 사용할 수 있습니다. 이 VI는 컨트롤러 출력이 지정된 최소값 또는 최대값에 도달하면 integrator anti-windup을 실행합니다.
| ||||||
![]() |
셋포인트는 컨트롤되고 있는 프로세스 변수의 셋포인트 값 또는 원하는 값을 지정합니다. | ||||||
![]() |
프로세스 변수는 컨트롤되고 있는 프로세스 변수의 측정된 값을 지정합니다. 이 값은 피드백 컨트롤 루프의 피드백 값과 같습니다. | ||||||
![]() |
PID 게인은 컨트롤러의 비례 게인, 적분 시간, 미분 시간 파라미터를 지정합니다.
| ||||||
![]() |
dt(초)는 이 VI가 호출되는 루프 사이클 시간 또는 간격을 초 단위로 지정합니다. dt(초)가 0과 같거나 작은 경우, 이 VI는 분해능이 1 ms인 내부 타이머를 사용하여 마지막으로 호출된 때부터의 시간을 계산합니다. dt(초)가 1 ms보다 작아야 하는 경우에는 이 값을 명시적으로 지정합니다. 기본은 -1입니다. | ||||||
![]() |
다시 초기화?는 적분된 에러와 같은 컨트롤러의 내부 파라미터를 다시 초기화할지 지정합니다. 어플리케이션 전체를 다시 시작하지 않고, 어플리케이션을 정지한 후 컨트롤 루프만 다시 시작해야하는 경우에 다시 초기화?를 참으로 설정하십시오. 기본은 거짓입니다. | ||||||
![]() |
출력은 컨트롤 프로세스에 적용된 PID 알고리즘의 컨트롤 출력을 반환합니다. 이 VI가 유효하지 않은 입력을 받는 경우, 출력은 NaN을 반환합니다. | ||||||
![]() |
dt 출력(초)은 실제 시간 간격을 초 단위로 반환합니다. dt 출력(초)은 dt(초)를 -1로 설정하는 경우, dt(초)의 값 또는 계산된 간격을 반환합니다. |
PID(DBL 배열)

![]() |
출력 범위는 컨트롤 출력을 강제 변환할 범위를 지정합니다. 기본 범위는 -100에서 100이며, 이는 전체 스케일 범위의 퍼센트로 지정된 값과 상응합니다. 이 범위는 사용자의 컨트롤 시스템에 적합한 범위로 변경할 수 있습니다. 예를 들어 퍼센트 단위 대신에 공학 단위를 사용할 수 있습니다. 이 VI는 컨트롤러 출력이 지정된 최소 또는 최대값에 도달하면 integrator anti-windup을 실행합니다. 출력 범위는 다음 원소의 클러스터 배열입니다.
| ||||||
![]() |
셋포인트는 컨트롤되고 있는 프로세스 변수의 셋포인트 값 또는 원하는 값을 지정합니다. 이 VI는 프로세스 변수 입력 배열의 크기와 맞도록 셋포인트 입력 배열의 크기를 조정합니다. | ||||||
![]() |
프로세스 변수는 컨트롤되고 있는 프로세스 변수의 측정된 값을 지정합니다. 이 값은 피드백 컨트롤 루프의 피드백 값과 같습니다. | ||||||
![]() |
PID 게인은 다음 원소의 클러스터 배열입니다.
| ||||||
![]() |
dt(초)는 이 VI가 호출되는 루프 사이클 시간 또는 간격을 초 단위로 지정합니다. dt(초)가 0과 같거나 작은 경우, 이 VI는 분해능이 1 ms인 내부 타이머를 사용하여 마지막으로 호출된 때부터의 시간을 계산합니다. dt(초)가 1 ms보다 작아야 하는 경우에는 이 값을 명시적으로 지정합니다. 기본은 -1입니다. | ||||||
![]() |
다시 초기화?는 적분된 에러와 같은 컨트롤러의 내부 파라미터를 다시 초기화할지 지정합니다. 어플리케이션 전체를 다시 시작하지 않고, 어플리케이션을 정지한 후 컨트롤 루프만 다시 시작해야하는 경우에 다시 초기화?를 참으로 설정하십시오. 기본은 거짓입니다. | ||||||
![]() |
출력은 컨트롤 프로세스에 적용된 PID 알고리즘의 컨트롤 출력을 반환합니다. 이 VI는 프로세스 변수 배열의 크기에 근거하여 출력 배열의 길이를 결정합니다. | ||||||
![]() |
dt 출력(초)은 실제 시간 간격을 초 단위로 반환합니다. dt 출력(초)은 dt(초)를 -1로 설정하는 경우, dt(초)의 값 또는 계산된 간격을 반환합니다. |
호환성

![]() |
셋포인트는 컨트롤되고 있는 프로세스 변수의 셋포인트 값 또는 원하는 값을 지정합니다. | ||||||||||||||||||||||
![]() |
프로세스 변수는 컨트롤되고 있는 프로세스 변수의 측정된 값을 지정합니다. 이 값은 피드백 컨트롤 루프의 피드백 값과 같습니다. | ||||||||||||||||||||||
![]() |
PID 파라미터는 각 컨트롤러의 업데이트된 PID 게인 파라미터를 포함하는 클러스터를 반환합니다. 이렇게 업데이트된 값을 다른 PID VI와 함께 사용할 수 있습니다.
| ||||||||||||||||||||||
![]() |
수동 컨트롤은 자동?이 거짓일 때 컨트롤 출력의 값을 지정합니다. | ||||||||||||||||||||||
![]() |
옵션은 PID 컨트롤의 셋팅을 지정합니다.
| ||||||||||||||||||||||
![]() |
반복은 루프의 현재 실행되는 반복입니다. 이 파라미터를 While 루프의 반복 터미널에 연결합니다. | ||||||||||||||||||||||
![]() |
출력은 컨트롤 프로세스에 적용된 PID 알고리즘의 컨트롤 출력을 반환합니다. 이 VI가 유효하지 않은 입력을 받는 경우, 출력은 NaN을 반환합니다. |
PID 세부사항
이 다형성 VI의 DBL 배열 인스턴스는 여러 개의 루프가 있는 PID 컨트롤 어플리케이션에서 사용할 수 있습니다. 이 때, 프로세스 변수 입력의 길이가 출력 배열의 길이를 결정합니다. 다른 입력 배열의 길이는 프로세스 변수 입력의 길이와 같지 않아도 됩니다. 이 VI는 다른 입력 배열의 길이를 다음과 같이 프로세스 변수 입력의 길이와 같게 조정합니다:
- 입력 배열이 프로세스 변수 입력보다 긴 경우, 입력 배열을 프로세스 변수 입력의 길이와 같게 자릅니다. 배열의 추가적인 값이 사용되지 않습니다.
- 입력 배열이 프로세스 변수 입력보다 짧은 경우, 입력 배열의 마지막 값을 프로세스 변수 입력의 길이와 같아질 때까지 반복합니다.
이렇게 하면, 이 VI에 전달되는 배열에서 각 출력 계산에 사용해야하는 입력값을 반복하여 지정할 필요가 없습니다. 대신 배열은 각 출력 계산에 사용되는 값 한 개로 이루어질 수도 있습니다.
예제
PID VI의 사용 예제는 labview\examples\control\PID 디렉토리의 General PID Simulator VI을(를) 참조하십시오.
예제 열기
관련 예제 찾기
블록다이어그램에 추가하기








