티스토리 뷰

안녕하세요. 구스입니다.


LVDT(Linear Variable Differential Transformer)에 대한 자료를 찾아보다가, LabVIEW와 관련된 글이 있어 관련 내용을 정리해볼까 합니다. 그럼 시작해볼까요.


이 글은 NI 홈페이지의 튜토리얼을 번역/의역한 내용입니다.

관련 링크 : http://www.ni.com/tutorial/4101/en/


이 글은 HIL 및 다른 테스트 어플리케이션을 위한 LVDT 에뮬레이터를 LabVIEW FPGA 기반으로 구현하는 방법에 대한 내용입니다. 


1. 배경 지식


하드웨어 인 더 루프(HIL, Hardware In The Loop)는 시스템의 검증 테스트를 위해서 엔지니어들상에서 많이 활용되는 방식입니다. HIL 테스트의 가장 중요한 포인트는 시스템이 배포되었을때 자신이 개발한 전자 모듈의 센서들과 연결되어 에뮬레이팅이 가능하냐입니다. 센서 입력 부에서 시뮬레이션이 가능하다는 것은 다양한 환경에서의 테스트가 가능하고, 이는 실생활에서의 안정성을 높여주는 역할을 합니다. 



LVDT는 센서로써, 마그네틱 코어의 위치에 따라 전압을 측정하여 위치를 파악하는 기능을 수행합니다.

LVDT에 대해서 좀더 자세히 알고 싶다면 아래의 글을 참고하시기 바랍니다. 



LVDT의 출력 신호는 코어의 위치에 대한 결과값입니다. 특정 LVDT(DC LVDT, DCDT)들은 DC 출력값을 제공하는 내부 회로가 만들어져있지만, 대부분의 어플리케이션에서는 외부전압을 컨트롤러가 제공하게 됩니다. 


LVDT를 에뮬레이션하는 것은 몇가지의 이득을 가지고 올 수 있습니다. LVDT로 부터 출력되는 신호가 외부 전원에 의해 제공되는 위상 AC 파형이기 때문에 컨트롤에 대한 처리가 필요하게 됩니다. 

 

따라서 전통적인 LVDT 에뮬레이터에 대한 접근은 아래와 같은 내역을 포함합니다. 


- 실제 LVDT 센서의 코어 위치를 이동하기 위해서 모션 제어 시스템을 사용한다.

- Output 신호를 출력하고, 신호를 측정하기 위해서 DSP와 아날로그 입력 채널을 사용한다.

 

LabVIEW FPGA는 LVDT 신호를 처리하는데 사용되는 DSP에 유연성을 제공하고, 내장된 DSP 칩의 디자인에 대한 비용을 줄여주는 역할을 하게 됩니다. 


2. FPGA 기반의 LVDT 에뮬레이터


아래의 예제는 LVDT Excitation 신호를 수집하고, LVDT에 대한 Core 위치를 계산합니다. 제품에 대한 출력 값은 아래와 같습니다.


Vo =  simulated sensitivity * simulated displacement * latest excitation voltage measurement 

Sensitivity is a constant value (specified in V/V/mm) and is a calibration constant for the specific LVDT to be emulated. 


3. 간단한 코딩 방법: FPGA 코드


LabVIEW FPGA를 사용하게 되면 Host PC(RT 혹은 윈도우)의 VI와 FPGA 기반의 VI로 구분이 됩니다. FPGA 코드는 동시에 발생하는 출력값과 이에 대한 입력값을 처리할 수 있습니다. 


아래의 블록다이어그램은 코드의 명확성을 위해서 단일 LVDT 채널을 보여주고 있습니다. 


Excitation Voltage에 대한 측정을 Scaling Factor와 곱하여 이를 AO0으로 출력을 합니다. 이 때 출력되는 값은 Bit Shift를 통해서 값을 결정합니다. Scaling Factor에 대한 값은 Host VI에서 결정됩니다(아래 코드 참조). 이 방식은 동적 범위에 대한 처리가 가능하게 하며, 다양한 어플리케이션에서 사용할 수 있는 유연성을 제공합니다. 


위의 코드는 Pipeline 방식이 이용(FPGA 코드상 Shift Register 이용하여 한타이밍 늦게 AO 출력)되며, 이는 병렬로 입력과 출력이 가능하게 해줍니다.  


Host 코드에서는 시뮬레이션할 LVDT의 Core 거리에 대한 Scaling 값을 제공하게 됩니다. 코드는 아래와 같습니다. 

스케일을 변경하거나 풀스케일로 사용하기 위해서는 아래와 같은 공식을 사용할 수 있습니다.


스케일 관련 공식

FS output Vrms = Excitation Vrms * simulated sensitivity * full scale sensor stroke

FS output ratio = simulated sensitivity * full scale sensor stroke


예를 들면 아래와 같습니다. 


요구사항 : LVDT Range : ±1.0 cm, 민감도 : 45 mV/V/mm, 외부 전원 : 3 Vrms


FS output Vrm = 1.35 Vrms = (3 Vrms ) * ((0.045 V)/V / mm) * (10 mm)

FS output ratio = ((0.045 V)/V / mm) * (10 mm) = 0.45


LVDT를 에뮬레이션하기 위해서는 -15에 대한 비트 시프트를 사용해야 하며, 이에 따라 스케일 상수는 32768이 됩니다


4. 간단한 코딩 방법: Host 코드


아래의 그림은 LVDT 에뮬레이터의 간단한 Host 어플리케이션을 나타냅니다. LVDT의 기본 위치는 초기화 하고, 민감도 값을 설정합니다. FPGA코드를 실행하면서 테스트 도중 필요한 위치값을 업데이트 합니다. 





이 글에서는 LabVIEW FPGA를 통해서 LVDT를 간단히 구현하는 방법에 대해서 알아보았습니다.

그럼 이만 줄이겠습니다.


이 글이 도움이 되셨으면 아래의 하트를 눌러주세요.


댓글