컨트롤 전략 설계하기
- 업데이트 날짜:2023-02-21
- 3분 (읽기 시간)
밸브나 측정과 같은 실제 프로세스 및 컨트롤 원소를 포함하는 흐름도를 작성하여 컨트롤 전략을 설계합니다. 또한 프로세스의 피드백과 그 외 필요한 계산도 포함시킵니다. 그후 PID VI를 LabVIEW의 수학 및 논리 VI와 함수와 함께 사용하여, 흐름도를 LabVIEW 블록다이어그램으로 작성합니다.
다음 그림은 컨트롤 흐름도의 예를 보여줍니다:

다음 그림은 흐름도에 해당하는 LabVIEW 블록다이어그램을 보여줍니다:

위의 이미지에서, FT는 유량 송신기, LT는 레벨 송신기, LC는 컨트롤의 레벨, 그리고 SP는 셋포인트입니다. 단순화된 이 VI에는 루프 튜닝 파라미터와 자동-수동 전환 스위치가 빠져 있습니다.
DAQ 디바이스, FieldPoint I/O 모듈, GPIB 인스트루먼트 또는 시리얼 I/O 포트를 통해 입력과 출력을 처리할 수 있습니다. 폴링 속도는 Real-Time으로 조정할 수 있습니다. 잠재적인 폴링 속도는 하드웨어와 VI의 개수 및 그래픽적 복잡도에 의해서만 제한됩니다.
타이밍 설정하기
PID VI와 PID Lead-Lag VI는 시간에 의존적입니다. VI는 사이클 시간 컨트롤에 제공한 값 dt 또는PID VI에 포함되어 있는 타임 키퍼에서 타이밍 정보를 가져옵니다. dt의 값이 0 미만인 경우, LabVIEW가 VI를 호출할 때마다 해당 VI는 새 타이밍 정보를 계산합니다. 호출될 때마다, VI는 이전의 호출 이후 경과된 시간을 측정하여 그 차이를 계산에 사용합니다. LabVIEW의 타이밍 VI와 함수 중 하나를 사용하는 While 루프에서 VI를 호출하면, 정기적 타이밍을 달성할 수 있고, 내부 시간 유지로 변화가 보정됩니다. 그러나 Tick 카운트(ms) 함수의 분해능은 1 ms로 제한되어 있습니다.
dt가 초 단위의 양의 값인 경우, VI는 경과 시간에 관계없이 그 값을 계산에 사용합니다. National Instruments는 수집 하드웨어를 사용하여 컨트롤러 입력 또는 Real-Time 어플리케이션의 타이밍을 측정할 때와 같이 고속 루프에서 이 방법을 사용할 것을 권장합니다. PID VI에 타이밍을 사용하는 예제는 labview\examples\control\PID 디렉토리에 있는 예제 VI를 참조하십시오.
관련 예제 찾기
![]() |
노트 NI-DAQmx를 설치한 경우, labview\examples\DAQmx\Control\Control.llb 디렉토리에서 관련 샘플을 확인할 수 있습니다. |
제어 이론에 따르면, 제어 시스템은 실제 프로세스에서 가장 빠른 시간 상수보다 약 10 배 빠른 속도로 실제 프로세스를 샘플링해야 합니다. 예를 들어, 작은 시스템에서 온도 컨트롤 루프는 일반적으로 60초의 시간 상수를 갖습니다. 이 경우, 사이클 시간은 약 6초면 충분합니다. 이보다 속도가 더 빠르다고 해서 성능이 더 향상되지는 않습니다. 오히려 모든 컨트롤 VI가 너무 빨리 실행되는 경우, LabVIEW 어플리케이션의 응답 시간이 느려질 수 있습니다.
한 루프 내의 모든 VI는 동일한 사이클 시간으로 매 반복마다 한 번씩 실행됩니다. 여러 VI를 서로 다른 사이클 시간으로 실행하며 그 VI 간에 데이터를 공유하려면, 캐스캐이드 연결의 예와 같이 VI들을 독립적인 타이밍이 있는 While 루프로 분리해야 합니다. 다음 블록다이어그램은 2개의 독립적인 타이밍을 갖는 While 루프가 있는 캐스캐이드 연결을 나타냅니다.

글로벌 변수는 루프 A의 PID VI의 출력을 루프 B의 PID VI의 프로세스 변수에 전달합니다. 두 While 루프를 모두 동일한 블록다이어그램에 놓거나 별개의 VI에 놓을 수 있습니다. 추가적인 글로벌 변수 또는 로컬 변수를 사용하면 그 외 다른 필요한 데이터를 2개의 While 루프 사이에서 전달할 수 있습니다.
VI의 프런트패널에 LabVIEW가 자주 업데이트해야 할 이미지가 없는 경우, PID VI는 kilohertz(kHz) 속도로 실행될 수 있습니다. 그러나, 마우스 움직임이나 윈도우 스크롤 등과 같은 동작은 속도에 방해가 됩니다.
