0에서 10V 사이의 전압으로 읽힌 온도 이동 창이있는 간단한 이동 평균을 작성했습니다.단순 이동 평균 합계/오프셋 문제
알고리즘이 제대로 작동하는 것처럼 보일지라도, 어떤 온도가 창을 먼저 채웠는지에 따라 이동 평균은이 값에 근접하지 않는 모든 값에 대해 오프셋을 갖습니다. 예를 들어,이 프로그램을 임시로 실행하십시오. 센서가 실내 온도에 연결되면 4.4V 또는 21.3C가됩니다. 단, 온도를 뽑으면. 센서에서 전압은 1.4V로 떨어지나 이동 평균은 1.6V로 유지된다. 이 오프셋은 창 크기를 늘리면 작아집니다. 작은 윈도우 크기에서도이 오프셋을 제거하는 방법. 20?
REM SMA Num Must be greater than 1
#DEFINE SMANUM 20
PROGRAM
'Program 3 - Simple Moving Average Test
CLEAR
DIM SA(1)
DIM SA0(SMANUM) : REM Moving Average Window as Array
DIM LV1
DIM SV2
LV0 = 0 : REM Counter
SV0 = 0 : REM Average
SV1 = 0 : REM Sum
WHILE(1)
SA0(LV0 MOD SMANUM) = PLPROBETEMP : REM add Temperature to head of window
SV1 = SV1 + SA0(LV0 MOD SMANUM) : REM add new value to sum
IF(LV0 >= (SMANUM)) : REM check if we have min num of values
SV1 = SV1 - SA0((LV0+1) MOD SMANUM) : REM remove oldest value from sum
SV0 = SV1/SMANUM : REM calc moving average
PRINT "Avg: " ; SV0 , " Converted: " ; SV0 * 21.875 - 75
ENDIF
LV0 = LV0 + 1 : REM increment counter
WEND
ENDP
출력 (이 후드로 ACR9000위한 ACROBASIC 작성된 주) - 프로그램
Raw: 1.40625 Avg: 1.55712 Converted: -40.938
Raw: 1.40381 Avg: 1.55700 Converted: -40.940625
Raw: 1.40625 Avg: 1.55699 Converted: -40.94084375
Raw: 1.40625 Avg: 1.55699 Converted: -40.94084375
Raw: 1.40381 Avg: 1.55686 Converted: -40.9436875
Raw: 1.40381 Avg: 1.55674 Converted: -40.9463125
Raw: 1.40625 Avg: 1.55661 Converted: -40.94915625
을 실행하는 동안 온도 센서를 제거 ... 온도 센서
Raw: 4.43115 Avg: 4.41926 Converted: 21.6713125
Raw: 4.43115 Avg: 4.41938 Converted: 21.6739375
Raw: 4.43359 Avg: 4.41963 Converted: 21.67940625
Raw: 4.43359 Avg: 4.41987 Converted: 21.68465625
Raw: 4.43359 Avg: 4.42012 Converted: 21.690125
Raw: 4.43359 Avg: 4.42036 Converted: 21.695375
Raw: 4.43359 Avg: 4.42061 Converted: 21.70084375
붙어
센서를 제거한 후 원시 및 이동 평균간에 눈에 띄는 오프셋이 나타납니다.
은 또한 반대의 순서로 발생하는 오프셋 :
출력 - 프로그램
Raw: 4.43848 Avg: 4.28554 Converted: 18.7461875
Raw: 4.43848 Avg: 4.28554 Converted: 18.7461875
Raw: 4.43848 Avg: 4.28554 Converted: 18.7461875
Raw: 4.43848 Avg: 4.28554 Converted: 18.7461875
Raw: 4.43848 Avg: 4.28554 Converted: 18.7461875
Raw: 4.43359 Avg: 4.28530 Converted: 18.7409375
을 실행하면서 프로그램을 승 시작/온도 센서는 온도 센서를 부착 ...
Raw: 1.40381 Avg: 1.40550 Converted: -44.2546875
Raw: 1.40625 Avg: 1.40550 Converted: -44.2546875
Raw: 1.40625 Avg: 1.40549 Converted: -44.25490625
Raw: 1.40625 Avg: 1.40549 Converted: -44.25490625
Raw: 1.40625 Avg: 1.40548 Converted: -44.255125
Raw: 1.40625 Avg: 1.40548 Converted: -44.255125
제거 다시 센서를 부착 한 후 원시 평균과 이동 평균간에 눈에 띄는 오프셋이 나타납니다.
VBA와 관련이 있습니까? –
Mistagged. 고마워. 나는 그것을 업데이트했다. –