工程筆記本 / NXC/RobotC/C++ for Lego robot

NXC/RobotC/C++ for Lego robot

[簡易數學應用]移動平均法

CAVEDU 阿吉 - 雜工📅 2012-05-12👁 23
每秒抓一次光感測器資料, 並使用陣列來儲存. 並取前3筆歷史資料進行平均, 這樣可避免突發的過高/低值影響機器人運作。 移動平均法每筆資料比重相同, N筆資料的比重就是1/N。 我們可以將較舊的資料比重調低. 例如 0.4 + 0.3 + 0.2 + 0.1。 最舊的資料只占比重的10%,  這稱為加權平均法。 此方法常應用在二輪平衡車, 用來平滑Gyro 的突發震盪。 ================================================================ task main(){ int sum, i=0, arr[4] SetSensorLight(S2){ while(true){ arr[0] = Sensor(S2); Wait(1000);  //sample once per second for(i=1 ; i<4; i++){ arr[i] = arr[i-1]; //前一筆資料往後推 } sum = (arr[0]  + arr[1]  + arr[2] + arr[3] )/4;   //求平均 NumOut(20, LCD_LINE1, Sensor(S2));  //顯示即時光值 NumOut(20, LCD_LINE2, sum);  //顯示平均光值 } } }

相關文章 📎

留言 💬 (0)

還沒有留言,來當第一個。