노치 필터(NTCH)
이 정보는 CompactLogix 5370, ControlLogix 5570, Compact GuardLogix 5370, GuardLogix 5570, Compact GuardLogix 5380, CompactLogix 5380, ControlLogix 5580, GuardLogix 5580 및 ControlLogix 5590 컨트롤러에 적용됩니다.
사용 가능한 언어
래더 다이어그램
이 명령어는 래더 다이어그램 로직에서는 사용할 수 없습니다.
펑션 블록

구조화된 텍스트
NTCH(NTCH_tag);
피연산자
펑션 블록
피연산자 | 유형 | 형식 | 설명 |
|---|---|---|---|
NTCH tag | FILTER_NOTCH | 구조 | NTCH 구조 |
FILTER_NOTCH 구조
입력 매개 변수 | 데이터 유형 | 설명 |
|---|---|---|
EnableIn | BOOL | 활성화 입력. 거짓이면 명령어가 실행되지 않고 출력이 업데이트되지 않습니다. 기본값은 참입니다. |
In | REAL | 명령어의 아날로그 신호 입력. 유효값 = 모든 부동 소수점 수 기본값 = 0.0 |
Initialize | BOOL | 필터 제어 알고리즘을 초기화하도록 요청. 참이면 이 명령어는 Out = In을 설정합니다. 기본값은 거짓입니다. |
WNotch | REAL | 이 필터의 중앙 주파수(라디안/초). WNotch < 최소값 또는 WNotch > 최대값인 경우 이 명령어는 Status에 적절한 비트를 설정하고 WNotch를 제한합니다. 유효 = 유효 범위는 아래 설명 섹션을 참조하십시오. 기본값 = 최대 양의 부동 소수점 수 |
QFactor | REAL | 너비와 깊이 비율을 제어합니다. QFactor = 1 / (2*원하는 댐핑 계수)로 설정합니다. QFactor < 최소값 또는 QFactor > 최대값인 경우 이 명령어는 Status에 적절한 비트를 설정하고 QFactor를 제한합니다. 유효값 = 0.5~100.0 기본값 = 0.5 |
Order | REAL | 필터 오더. Order는 차단 첨예도를 제어합니다. Order가 유효하지 않으면 이 명령어는 Status에 적절한 비트를 설정하고 Order = 2를 사용합니다. 유효값 = 2 또는 4 기본값 = 2 |
TimingMode | DINT | 타이밍 실행 모드 선택. 0 = 주기 모드 1 = 오버 샘플링 모드 2 = 실시간 샘플링 모드 2 타이밍 모드에 대한 자세한 내용은 함수 블록 속성을 참조하세요. 유효값 = 0~2 기본값 = 0 |
OversampleDT | REAL | 오버 샘플링 모드에 대한 실행 시간. 값 = 0~4194.303초 기본값 = 0 |
RTSTime | DINT | 실시간 샘플링 모드에 대한 모듈 업데이트 기간 유효값 = 1~32,767ms 기본값 = 1 |
RTSTimeStamp | DINT | 실시간 샘플링 모드에 대한 모듈 타임 스탬프 값. 유효값 = 0~32,767ms 기본값 = 0 |
출력 매개 변수 | 데이터 유형 | 설명 |
|---|---|---|
EnableOut | BOOL | 명령어의 활성화 여부를 나타냅니다. Out이 오버플로되는 경우 거짓으로 해제됩니다. |
Out | REAL | 알고리즘의 계산된 출력. |
DeltaT | REAL | 업데이트 간 경과 시간. 컨트롤 알고리즘에서 프로세스 출력 계산에 사용되는 경과 시간(초)입니다. |
Status | DINT | 펑션 블록의 상태. |
InstructFault (Status.0) | BOOL | 명령어에서 다음 실행 에러 중 하나가 감지됩니다. 마이너 또는 메이저 컨트롤러 에러가 아닙니다. 나머지 상태 비트를 확인하여 발생한 에러를 판단합니다. |
WNotchInv (Status.1) | BOOL | WNotch < 최소값 또는 WNotch > 최대값 |
QFactorInv (Status.2) | BOOL | QFactor < 최소값 또는 QFactor > 최대값 |
OrderInv (Status.3) | BOOL | 유효하지 않은 Order 값. |
TimingModeInv (Status.27) | BOOL | 유효하지 않은 TimingMode 값. 타이밍 모드에 대한 자세한 내용은 함수 블록 속성을 참조하세요. |
RTSMissed (Status.28) | BOOL | 실시간 샘플링 모드에서만 사용. 다음의 경우 참으로 설정됨: ABS(DeltaT - RTSTime) > 1밀리초. |
RTSTimeInv (Status.29) | BOOL | 유효하지 않은 RTSTime 값. |
RTSTimeStampInv (Status.30) | BOOL | 유효하지 않은 RTSTimeStamp 값. |
DeltaTInv (Status.31) | BOOL | 유효하지 않은 DeltaT 값. |
구조화된 텍스트
피연산자 | 유형 | 형식 | 설명 |
|---|---|---|---|
NTCH tag | FILTER_NOTCH | 구조 | NTCH 구조 |
스트럭쳐드 텍스트 내 식의 구문에 대한 자세한 내용은 스트럭쳐드 텍스트 구문을 참조하십시오.
설명
NTCH 명령어는 Order 파라미터를 사용하여 차단 첨예도를 제어합니다. QFactor 파라미터는 노치의 너비 및 깊이 비율을 컨트롤합니다. NTCH 명령어는 스캔 비율이 일정하게 유지되는 태스크에서 실행하기 위한 것입니다.
NTCH 명령어에는 다음 등식이 사용됩니다.

여기서 i는 다음 파라미터 제한이 적용된 Order 연산자입니다(여기서 DeltaT는 초 단위).
매개 변수 | 제한 |
|---|---|
WNotch 2차 LowLimit | ![]() |
WNotch 4차 LowLimit | ![]() |
HighLimit | ![]() |
QFactor | LowLimit = 0.5 HighLimit = 100.0 |
출력에 대해 계산된 값이 유효하지 않거나 NAN,
INF인 경우 명령어는 Out을 유효하지 않은 값으로 설정합니다. 출력에 대해 계산된 값이 유효해지면 명령어는 내부 파라미터를 초기화하고 Out = In을 설정합니다.
INF인 경우 명령어는 Out을 유효하지 않은 값으로 설정합니다. 출력에 대해 계산된 값이 유효해지면 명령어는 내부 파라미터를 초기화하고 Out = In을 설정합니다.연산 상태 플래그에 영향
아니요
주 폴트/부 폴트
이 명령어에만 해당되는 것은 없습니다. 피연산자 관련 폴트에 대해서는 공통 속성을 참조하십시오.
실행
펑션 블록
조건/상태 | 수행한 작업 |
|---|---|
사전 스캔 | EnableIn 및 EnableOut 비트가 거짓으로 해제됩니다. |
Tag.EnableIn이 거짓임 | EnableIn 및 EnableOut 비트가 거짓으로 해제됩니다. |
Tag.EnableIn이 참임 | EnableIn 및 EnableOut 비트가 참으로 설정됩니다. 명령어가 실행됩니다. |
명령어 최초 실행 | N/A |
명령어 최초 스캔 | 상관 계수를 다시 계산합니다. |
사후 스캔 | EnableIn 및 EnableOut 비트가 거짓으로 해제됩니다. |
구조화된 텍스트
조건/상태 | 수행한 작업 |
|---|---|
사전 스캔 | 펑션 블록 표의 사전 스캔을 참조하십시오. |
정상 실행 | 펑션 블록 표에서 Tag.EnableIn이 참임을 참조하십시오. |
사후 스캔 | 펑션 블록 표에서 사후 스캔을 참조하십시오. |
예
NTCH 명령어는 특정 공명 주파수를 감쇠합니다. 일반적으로 이러한 공명 주파수는 폐쇄 루프 제어 시스템에 의해 조절되는 응답 범위 안에 듭니다. 대체적으로 이러한 주파수는 기계적 연결의 느슨함으로 인해 발생하며 시스템에서 백래쉬와 진동을 유발합니다. 기계에서 기계적 컴플라이언스를 교정하는 것이 가장 좋은 방법이지만, 노치 필터를 사용하여 폐쇄 루프 조절 스키마에서 이러한 신호의 작용을 완화할 수도 있습니다.
다음 다이어그램에는 특정 중앙 주파수와 Q 인자에 해당하는 주파수 범위의 이상적인 게인 곡선을 보여줍니다. 증가함에 따라 노치가 더 넓어지고 얇아집니다. 감소함에 따라 노치가 더 깊어지고 좁아집니다. 이 명령어는 2차 또는 4차에 설정될 수 있습니다. 오더가 높을수록 실행 시간이 더 오래 걸립니다.
이 예는 NTCH 함수 블록의 최소 유효 프로그래밍으로서, 이 명령어에 대해 생성된 코드와 중립 텍스트를 보여주는 목적으로만 사용됩니다. 이것은 적분 목적에 한하며 검증 가능한 사례는 아닙니다.

펑션 블록

구조화된 텍스트
NTCH_01.In := frequency_input;
NTCH_01.WNotch := center_frequency;
NTCH_01.QFactor := Notch_width_depth;
NTCH(NTCH_01);
Notch_output := NTCH_01.Out;
의견을 작성 부탁드립니다.


