C#, 3상 BEMF TrueRMS (역기전력 실효값)계산

2022. 6. 29. 09:52자료/Data

Analog Input 측정 데이터 배열에서 RMS를 구하고자 할 때,

메서드 확장 정의

public static class AnalysisExtension
{
	public static double TrueRMS(this IEnumerable<double> @this)
	{
		return Math.Sqrt(@this.Average(d => d * d));
	}
}

각 요소 d를 제곱 후, 평균하고, 제곱근을 반환하는 코드.

 

역기전력은 회전 속도에 비례하므로 RPM 또는 주파수로 나눠야 한다.

기준에 맞춰야 연구소, 생산, 품질에서 같은 값으로 비교할 수 있다.

// RPM 전달시
return data.Max() * (1d / Math.Sqrt(2)) * (1d / Math.Sqrt(3)) / RPM * 1000d;

// 주파수 전달시
return data.Max() * (1d / Math.Sqrt(2)) * (1d / Math.Sqrt(3)) / (Freq * 60) * 1000d;

data는 데이터 배열임. RPM 기준값은 1000으로 했다. 1000[RPM] = 16.666[Hz]

√3으로 나누는 이유는 데이터 값이 UVW의 선간 전압이므로.

'자료 > Data' 카테고리의 다른 글

C# 그래프 파형 분석 단계  (0) 2022.06.29
자석 극성 검출 Linear 센서 회로  (0) 2022.03.26
각도 센서  (0) 2022.03.12