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 |