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의 선간 전압이기 때문이다.




