2009年10月27日 星期二

如何有效的做直線加速

之前在做直線加速時,是有點try&error


在做報告的時後,想到比較有效的方式


利用等加速度公式來使用


d為加速距離,a為加速度,v1為初始速度,v2為最高速。



移項後重新整理



值得注意的是,距離包含了加速和減速,所以應該把所有的距離除2,這樣才是可以加速或是減速的真正距離。


利用matlab來實現自己的想法,一個點數為9cm。


左圖是每9公分可以加到的速度,因為這支老鼠的極限是160cm。


右圖是煞車的距離,一樣也是每9cm計算一個點。



今天把這個想法寫到老鼠裡,因為是建表的關系,所以除了讓直線加速更靈活的使用外,另外就是在加速前,不需要使用加速度運動的公式重新計算煞車的距離,這樣又可以省下不少運算的時間了。


 


不過還有一個比較有趣的想法,其實都可以不用計算這些


假設最高速沒有上飽和,那麼,就只要一直做加速的動作,等到車子走到d/2的位置,進行減速的動作,這樣就可以讓直線運動做到最極限了。


我覺得這個想法也很有趣,不過我沒有選擇這個做法。給有興趣的人參考!



3 則留言:

  1. 這ㄧ個公式可以運用得更好的,如果你已經可以預先知道(看起來似乎如此)加速的直線道長度d的話。這在黃明吉老師來台的研習營講義上可以找到。我記得有一個正負號的錯,他在上課中也同意我的說法。如果關心的是還有多少距離可供減速使用,問題應該會比這ㄧ篇的討論要清楚多了,即使有最高速度的限制也可以處理。
    [版主回覆10/28/2009 14:55:17]因為迷宮的長度固定,所以只要知道此直線段有幾格,就會知道有總路徑長度。
    不過除了計算最高速和煞車距離外,還有什麼可以地方可以被討論的?

    回覆刪除
  2. 應該這麼說,v2^2 = v1^2 + 2ad =>末速度^2 = 初速度^2 + 2*加速度*距離。
    因此v2 => 設定好減速的最終速度,v1 => 現在速度,那麼
    d = (v2^2 - v1^2)/(2a) 表示以a加速度(此時a為負)由v2減速至v1時,電腦鼠需要d的距離。
    如果現在剩下d1可供減速使用,而且d1<=d,就是減速的時機了!
    並非如你所說"距離包含了加速和減速,所以應該把所有的距離除2"。
    而且以加速度a(此時a為正)加速與上述的討論只有運動了多少距離才有關係,因為可以計算剩下多少距離,與速度是否已經到達最高速是沒有關係的,換言之,速度曲線可能是三角形,也可能是梯形。
    請參考黃明吉老師在網頁http://www.np.edu.sg/alpha/nbk/umouse/中Straight Run Speed Profile的說明,是同樣的意思。
    你的問題"除了計算最高速和煞車距離外,還有什麼地方可以被討論的?"指的是什麼?
    也許是加速與減速的加速度是否要不一樣,或者是設定成一個參數吧!
    [版主回覆10/28/2009 20:52:38]"距離包含了加速和減速,所以應該把所有的距離除2"
    這段話我想應該是沒有寫清楚,因為我的加速度和減速度都一樣,所以我想表達的應該是,這個d 算出來只有加速度或是減速度的距離,所以應該將這段直線應走的距離除2。
    不過在實作上有個問題,假設直線前進的方向為y方向,那麼,當有個機制發現老鼠現在已經多走了,那麼減速的距離就是不夠,如果要讓老鼠回到正常的速度時,勢必又會多走,那麼,這樣的現象有沒有更好的機制可以避開。
    我的做法是在計算的時後,故意讓減速完後,還有一段距離可以保持在正常速度。但真正的問題是,假設校正y方向的機制是正確的,那麼如果在加速或是高速等速時,發現y向是有誤差的,煞車的位置應該是要被調整的,不過我似乎沒有做這個調整的動作,那麼如果調整了煞車的位置,應該是比較正確。不過我好奇的是,如果已經做了調整,而在這個時後煞車的距離又不夠讓老鼠煞到正常速度,那麼這時後應該怎麼辦?

    回覆刪除
  3. 如果我的理解沒有錯,以下的這ㄧ段話指的與文中"應該把所有的距離除2,這樣才是可以加速或是減速的真正距離。"這樣的說法是ㄧ樣的。
    "因為我的加速度和減速度都一樣,所以我想表達的應該是,這個d 算出來只有加速度或是減速度的距離,所以應該將這段直線應走的距離除2。"
    對我而言,這樣的想法是只有在速度曲線是三角形時才正確,當速度曲線是梯形時就不對了。梯形開始減速的那一點以後的面積是三角形,之前的面積是梯形,兩者不會相等。因此我說應該關心的是,"還有多少距離可供減速使用?"
    如果因為距離的計算會有誤差,而且是在加速期間或是高速等速期間才發現,最簡單的應該是你說的方式,"故意讓減速完後,還有一段距離可以保持在正常速度"。也就是d1<=d+d2。
    d2的選擇就牽涉到你對你的電腦鼠的認知了,選得太保守,常常提前減速,選得太小,可能常發生你說的問題。
    但究竟是距離算錯、滑歩,還是修正方法有問題,都需要討論以決定一個適合你電腦鼠的d2。
    有沒有其他的方法呢?如果還是使用等減速、假設沒有滑歩,對我而言,電腦鼠還是需要知道"還有多少距離可供減速使用?"才能判斷減速的時機。
    因此,如何透過編碼器、距離計算公式,以及光感測器來加強真實Y方向行進距離的預測,應該會是我做電腦鼠時的重點。依據家豪的說法,似乎中低速與高速行進時,利用光感測器資料的修正是不同的。黃明吉老師也提過,他在入彎而且前方有牆時,會利用往前的光感測器來修正入彎位置。
    如果像Katoㄧ樣,邊滑動還可以校正回來,對我而言,那是另ㄧ個層次的問題了。
    另ㄧ個保險是,加速度大小的選擇保留彈性。假設最大且滑動不明顯的加速度是a1,平常使用0.9*a1,那麼發生"如果已經做了調整,而在這個時後煞車的距離又不夠讓老鼠煞到正常速度,那麼這時後應該怎麼辦?"的情形,你還有使用a1減速的可能性可供調整,但這不應是常態,等於封印了電腦鼠的部分能力。
     

    回覆刪除