//*********************************************************
//電機編碼器計算
//*********************************************************
void Position_Calculate(void)
{
speed_r_l =(speed_mr + speed_ml) * 0.5;
car_speed *= 0.7; //車輪速度濾波
car_speed += speed_r_l * 0.3;
car_position += car_speed; //積分而得到位移
car_position += speed_need;
Serial.print("sp=\t");
Serial.print(speed_mr);
Serial.print("\t");
Serial.print(speed_ml);
Serial.print("\t");
Serial.print(car_speed);
Serial.print("\t");
Serial.println(car_position);
。。。
xxxxx
}
我想利用輪子轉速來分析穩定度,將左右輪子的計數器透過BT丟出來,
然後用Excel來作圖表。
輪子計數器的規格是馬達轉一圈產生344個tick。
數列1: speed_mr (右邊的輪子速度)
數列2: speed_ml (左邊的輪子速度)
數列3: car_speed (輪子濾波後的速度)
數列4: car_position (robot輪子速度的積分)
《直立狀態》
從直立的狀態來看,穩定度不是很好。。。。
《左轉》
左轉的狀態還不錯。。。
右轉有一點卡卡的。。。
前進的狀態還不錯,很順。。。
不過,robot似乎沒有控制穩定轉速。
《後退》
後退就怪怪的,難道是往後看不清楚?
一直亂踩刹車?!!
這要好好檢查一下了。。。。
《連續左轉》
不錯不錯!
《連續右轉》
卡卡卡。。。
從這幾個圖表分析,有幾個問題要解決:
1. 調整左右電機馬達對PWM的電壓控制。
2. 分析右轉和後退為何會不穩。
3. 讓前進與後退都可以達到穩定轉速的狀態,才不會跌倒。
嗯,要開始忙碌了。。。
Regis
1. 調整左右電機馬達對PWM的電壓控制。
2. 分析右轉和後退為何會不穩。
3. 讓前進與後退都可以達到穩定轉速的狀態,才不會跌倒。
嗯,要開始忙碌了。。。
Regis
沒有留言:
張貼留言