LabVIEW PID and Fuzzy Logic Toolkit API Reference

PID 고급 VI

  • 업데이트 날짜:2023-02-21
  • 9분 (읽기 시간)

PID 고급 VI

상위 팔레트: PID VI

다음에서 설치됨: Full Development System

고급 선택 기능이 있는 PID 알고리즘을 사용하여 PID 컨트롤러를 구현합니다. 고급 PID 알고리즘에는 [PID] VI가 사용하는 알고리즘의 기능과 함께, 수동에서 자동으로 무충돌 전환 기능이 있는 수동 모드 컨트롤, 비선형 적분 동작, 2 자유도 컨트롤 및 에러 제곱 컨트롤 등의 기능을 포함합니다. 이 VI의 DBL 인스턴스를 사용하여 한 개의 컨트롤 루프를 구현합니다. 병렬 여러 루프 컨트롤을 구현하려면 DBL 배열 인스턴스를 사용합니다.

세부사항  예제

 블록다이어그램에 추가하기  팔레트에서 찾기

PID 고급(DBL)

알파는 미분 필터 시간 상수를 지정합니다. 이 값이 증가하면 미분 동작에 해당하는 감쇠 값이 증가합니다. 알파의 값은 0에서 1 사이의 값, 또는 미분 필터가 적용되지 않도록 지정하는 NaN입니다.
감마는 미분 동작에 에러가 적용할 가중치를 지정합니다. 기본값은 0이며, 이 값을 사용하면 셋포인트 값이 변경했을 때 발생할 수 있는 미분 스파이크(컨트롤러의 갑작스러운 변화)를 피할 수 있습니다.

미분 스파이크를 걱정할 필요가 없는 일부 캐스캐이드 컨트롤 동작에서는, 감마를 증가시키면 첫번째 PID 컨트롤러의 속도가 빨라질 수도 있습니다.
수동 컨트롤자동?이 거짓일 때 컨트롤 출력의 값을 지정합니다.
자동?은 자동 컨트롤을 사용할지 수동 컨트롤을 사용할지 지정합니다. PID 컨트롤의 전원을 끄고, 시스템을 수동 또는 개루프 모드에서 실행해야하는 경우도 있을 수 있습니다. 기본은 참입니다. 자동?이 참인 경우, 이 VI는 자동 컨트롤을 사용합니다. 자동?이 거짓인 경우, 이 VI는 수동 컨트롤을 사용합니다. 이 VI는 수동에서 자동으로 무충돌 전환을 사용하여 변환합니다.
출력 범위는 컨트롤 출력을 강제 변환할 범위를 지정합니다. 기본 범위는 -100에서 100이며, 이는 전체 스케일의 퍼센트로 지정된 값에 상응합니다. 사용하는 컨트롤 시스템에 적합하도록 이 범위를 변경할 수 있습니다. 예를 들어 퍼센트 단위 대신에 공학 단위를 사용할 수 있습니다. 이 VI는 컨트롤러 출력이 지정된 최소값 또는 최대값에 도달하면 integrator anti-windup을 실행합니다.
높은 출력은 컨트롤러 출력의 최대값을 지정합니다. 기본은 100입니다.
낮은 출력은 컨트롤러 출력의 최소값을 지정합니다. 기본은 -100입니다.
셋포인트는 컨트롤되고 있는 프로세스 변수의 셋포인트 값 또는 원하는 값을 지정합니다.
프로세스 변수는 컨트롤되고 있는 프로세스 변수의 측정된 값을 지정합니다. 이 값은 피드백 컨트롤 루프의 피드백 값과 같습니다.
셋포인트 범위는 셋포인트/프로세스 변수 범위의 최대값 및 최소값을 지정합니다. 이 VI는 셋포인트 범위를 사용하여 비선형 적분 동작을 계산합니다. 기본 범위는 0에서 100이며, 이는 전체 스케일의 퍼센트로 지정된 값에 상응합니다. 사용하는 컨트롤 시스템에 적합하도록 이 범위를 변경할 수 있습니다. 예를 들어 퍼센트 단위 대신에 공학 단위를 사용할 수 있습니다. 이 VI는 비선형 적분 동작 및 비선형 에러 계산셋포인트 범위를 사용합니다.
낮은 셋포인트는 셋포인트/프로세스 변수 범위의 최소값을 지정합니다.
높은 셋포인트는 셋포인트/프로세스 변수 범위의 최대값을 지정합니다.
PID 게인은 컨트롤러의 비례 게인, 적분 시간, 미분 시간 파라미터를 지정합니다.
비례 게인(Kc)은 컨트롤러의 비례 게인을 지정합니다. 기본은 1입니다. PID 컨트롤러를 정의하는 식에서 KC는 비례 게인을 나타냅니다.
적분 시간(Ti, 분)은 적분 시간을 분 단위로 지정합니다. 기본은 0.01입니다.
미분 시간(Td, 분)은 미분 시간을 분 단위로 지정합니다. 기본은 0입니다.
dt(초)는 이 VI가 호출되는 루프 사이클 시간 또는 간격을 초 단위로 지정합니다. dt(초)가 0과 같거나 작은 경우, 이 VI는 분해능이 1 ms인 내부 타이머를 사용하여 마지막으로 호출된 때부터의 시간을 계산합니다. dt(초)가 1 ms보다 작아야 하는 경우에는 이 값을 명시적으로 지정합니다. 기본은 -1입니다.
다시 초기화?는 적분된 에러와 같은 컨트롤러의 내부 파라미터를 다시 초기화할지 지정합니다. 어플리케이션 전체를 다시 시작하지 않고, 어플리케이션을 정지한 후 컨트롤 루프만 다시 시작해야하는 경우에 다시 초기화?를 참으로 설정하십시오. 기본은 거짓입니다.
베타는 외란 제거에 대한 셋포인트 추적의 상대적 중요성을 지정합니다. 대부분의 어플리케이션에서는 기본값인 1이 적당합니다. 0과 1사이의 더 작은 값을 사용하여 프로세스 로드 변경과 같은 외란 제거의 중요성을 지정할 수 있습니다. 이 VI는 2 자유도 컨트롤 알고리즘에서 이 값을 사용합니다.
선형도는 에러 응답의 선형도를 지정합니다. 선형도의 유효 범위는 0에서 1입니다. 값이 1인 경우 선형 응답이 보통이고, 0.1인 경우에는 응답이 대략 포물선형이 됩니다. VI는 비선형 에러 계산 및 비선형 게인 인자 계산에 이 값을 사용합니다.
출력은 컨트롤 프로세스에 적용된 PID 알고리즘의 컨트롤 출력을 반환합니다. 이 VI가 유효하지 않은 입력을 받는 경우, 출력NaN을 반환합니다.
dt 출력(초)은 실제 시간 간격을 초 단위로 반환합니다. dt 출력(초)dt(초)를 -1로 설정하는 경우, dt(초)의 값 또는 계산된 간격을 반환합니다.

PID 고급(DBL 배열)

감마는 미분 동작에 적용되는 에러에 가중치에 해당하는 값입니다. 기본값은 0이며, 이 값을 사용하면 셋포인트 값이 변경했을 때 발생할 수 있는 미분 스파이크(컨트롤러의 갑작스러운 변화)를 피할 수 있습니다.

미분 스파이크를 걱정할 필요가 없는 일부 캐스캐이드 컨트롤 동작에서는, 감마를 증가시키면 첫번째 PID 컨트롤러의 속도가 빨라질 수도 있습니다. 이 VI는 프로세스 변수 입력 배열의 크기와 맞도록 감마 입력 배열의 크기를 조정합니다.
수동 컨트롤자동?이 거짓일 때 컨트롤 출력의 값을 지정합니다. 이 VI는 프로세스 변수 입력 배열의 크기와 맞도록 수동 컨트롤 입력 배열의 크기를 조정합니다.
자동?은 자동 컨트롤을 사용할지 수동 컨트롤을 사용할지 지정합니다. 자동?이 참인 경우, 이 VI는 자동 컨트롤을 사용합니다. 자동?이 거짓인 경우, 이 VI는 수동 컨트롤을 사용합니다. 이 VI는 수동에서 자동으로 무충돌 전환을 사용하여 변환합니다. 기본은 참입니다.

이 VI는 프로세스 변수 입력 배열의 크기에 맞도록 자동? 입력 배열의 크기를 조정합니다.
출력 범위는 컨트롤 출력을 강제 변환할 범위를 지정합니다. 기본 범위는 -100에서 100이며, 이는 전체 스케일 범위의 퍼센트로 지정된 값과 상응합니다. 이 범위는 사용자의 컨트롤 시스템에 적합한 범위로 변경할 수 있습니다. 예를 들어 퍼센트 단위 대신에 공학 단위를 사용할 수 있습니다. 이 VI는 컨트롤러 출력이 지정된 최소 또는 최대값에 도달하면 integrator anti-windup을 실행합니다.

출력 범위는 다음 원소의 클러스터 배열입니다.
높은 출력은 컨트롤러 출력의 최대값을 지정합니다. 기본은 100입니다.
낮은 출력은 컨트롤러 출력의 최소값을 지정합니다. 기본은 -100입니다.
셋포인트는 컨트롤되고 있는 프로세스 변수의 셋포인트 값 또는 원하는 값을 지정합니다. 이 VI는 프로세스 변수 입력 배열의 크기와 맞도록 셋포인트 입력 배열의 크기를 조정합니다.
프로세스 변수는 컨트롤되고 있는 프로세스 변수의 측정된 값을 지정합니다. 이 값은 피드백 컨트롤 루프의 피드백 값과 같습니다.
셋포인트 범위는 셋포인트/프로세스 변수 범위의 최대값 및 최소값을 지정합니다. 이 VI는 셋포인트 범위를 사용하여 비선형 적분 동작을 계산합니다. 기본 범위는 0에서 100이며, 이는 전체 스케일의 퍼센트로 지정된 값에 상응합니다. 사용하는 컨트롤 시스템에 적합하도록 이 범위를 변경할 수 있습니다. 예를 들어 퍼센트 단위 대신에 공학 단위를 사용할 수 있습니다. 이 VI는 비선형 적분 동작 및 비선형 에러 계산셋포인트 범위를 사용합니다.
낮은 셋포인트는 셋포인트/프로세스 변수 범위의 최소값을 지정합니다.
높은 셋포인트는 셋포인트/프로세스 변수 범위의 최대값을 지정합니다.
PID 게인은 다음 원소의 클러스터 배열입니다.
비례 게인(Kc)은 컨트롤러의 비례 게인을 지정합니다. 기본은 1입니다. PID 컨트롤러를 정의하는 식에서 KC는 비례 게인을 나타냅니다.
적분 시간(Ti, 분)은 적분 시간을 분 단위로 지정합니다. 기본은 0.01입니다.
미분 시간(Td, 분)은 미분 시간을 분 단위로 지정합니다. 기본은 0입니다.
dt(초)는 이 VI가 호출되는 루프 사이클 시간 또는 간격을 초 단위로 지정합니다. dt(초)가 0과 같거나 작은 경우, 이 VI는 분해능이 1 ms인 내부 타이머를 사용하여 마지막으로 호출된 때부터의 시간을 계산합니다. dt(초)가 1 ms보다 작아야 하는 경우에는 이 값을 명시적으로 지정합니다. 기본은 -1입니다.
다시 초기화?는 적분된 에러와 같은 컨트롤러의 내부 파라미터를 다시 초기화할지 지정합니다. 어플리케이션 전체를 다시 시작하지 않고, 어플리케이션을 정지한 후 컨트롤 루프만 다시 시작해야하는 경우에 다시 초기화?를 참으로 설정하십시오. 기본은 거짓입니다.
베타는 셋포인트 추적에 대한 외란 제거의 상대적 중요성을 지정합니다. 대부분의 어플리케이션에서는 기본값인 1이 적당합니다. 0과 1사이의 더 작은 값을 사용하여 프로세스 로드 변경과 같은 외란 제거의 중요성을 지정할 수 있습니다. 이 VI는 프로세스 변수 입력 배열의 크기와 맞도록 베타 입력 배열의 크기를 조정합니다.
선형도는 에러 응답의 선형도를 지정합니다. 선형도의 유효 범위는 0에서 1입니다. 값이 1인 경우 선형 응답이 보통이고, 0.1인 경우에는 응답이 대략 포물선형이 됩니다. VI는 비선형 에러 계산 및 비선형 게인 인자 계산에 이 값을 사용합니다.
출력은 컨트롤 프로세스에 적용된 PID 알고리즘의 컨트롤 출력을 반환합니다. 이 VI는 프로세스 변수 배열의 크기에 근거하여 출력 배열의 길이를 결정합니다.
dt 출력(초)은 실제 시간 간격을 초 단위로 반환합니다. dt 출력(초)dt(초)를 -1로 설정하는 경우, dt(초)의 값 또는 계산된 간격을 반환합니다.

PID 고급 세부사항

여러 루프 PID 컨트롤 어플리케이션에서 이 다형성 VI의 DBL 배열 인스턴스를 사용할 수 있습니다. 이 경우, 프로세스 변수 입력의 길이가 출력 배열의 길이를 결정합니다. 다른 입력 배열은 프로세스 변수 입력과 길이가 같을 필요는 없습니다. 이 VI는 다음과 같이 프로세스 변수 입력의 길이와 같도록 다른 입력 배열의 크기를 조정합니다:

  • 입력 배열이 프로세스 변수 입력보다 긴 경우, 입력 배열은 프로세스 변수 입력의 길이와 같도록 잘라집니다. 배열 안에 있는 다른 값은 사용되지 않습니다.
  • 입력 배열이 프로세스 변수 입력보다 짧은 경우, 프로세스 변수 입력의 길이와 같아질 때까지 이 입력 배열의 마지막 값을 반복합니다.

이렇게하면, 각 출력 계산에 사용해야 하는 입력값을 이 VI에 전달되는 배열 안에서 계속해서 지정하지 않아도 됩니다. 대신, 배열은 각 출력 계산에 사용하는 값 한 개로만 구성되어도 됩니다.

수동에서 자동으로 무충돌 전환

이 VI는 수동에서 자동으로 무충돌 전환하는 기능을 지원하여, 이 기능은 수동에서 자동 컨트롤 모드로 전환하는 동안 컨트롤러 출력에 큰 변동이 없도록 합니다.

자동에서 수동으로 무충돌 전환

이 VI는 자동에서 수동으로 무충돌 전환 기능을 지원하지 않습니다. 자동에서 수동 컨트롤 모드로 전환할 때 충돌없이 전환하려면, 컨트롤 모드가 자동에서 수동으로 전환될 때 수동 출력값이 컨트롤 출력값과 같도록 어플리케이션을 설계해야 합니다. 이렇게 하려면 다음 블록다이어그램에서 보이는 대로 수동 컨트롤에 로컬 변수를 사용합니다.

예제

PID 고급 VI의 사용 예제는 labview\examples\control\PID 디렉토리의 Manual-Automatic Control VI을(를) 참조하십시오.

 예제 열기  관련 예제 찾기

Log in to get a better experience