アプリ版:「スタンプのみでお礼する」機能のリリースについて

一次元変数Xを0から1.0まで移動させるアルゴリズムを考えています。
車が0から発進し、目的地の1.0で止まるような動きです。

条件は
・開始からA秒(実数)までは静止状態から等加速度運動する。
・そこからB秒等速直線運動する。
・更ににそこからC秒等加速度運動で減速し停止する。

A、B、Cが与えられたときに、それぞれの運動の加速度と速度はどうやって求めれば良いでしょうか?

質問者からの補足コメント

  • >> 数学や物理は勉強しましたか?
    10年以上前に

    >> 加速度と速度と位置の関係式
    等加速度運動
    X = V0* t + 0.5*a*t^2
    V = V0*t

    等速直線運動
    X = Vt

    質問の回答をお願いします。

    No.1の回答に寄せられた補足コメントです。 補足日時:2018/11/06 23:55

A 回答 (4件)

うーん、図示出来れば一番良いんですが・・・。



・開始からA秒(実数)までは静止状態から等加速度運動する。
・そこからB秒等速直線運動する。
・更ににそこからC秒等加速度運動で減速し停止する。

これ鑑みると、全体ではA+B+C秒かかってる、って事ですよね。まずそれを押さえておきます。
まずA秒かかったトコから考えますが、まあ、積分しても良いんだけど、所詮等加速度運動なんで、ここは終端速度をV_tとすれば

1/2 * V_t * A

って三角形の面積が「移動距離」になりますね。
次に、B秒かかったトコは同じくAの終端速度を利用すれば

V_t * B

と言う長方形の面積が「移動距離」になります。

注: 当然、時間Aが経過した以上、「その速度で」等速直線運動へ移行するので、時間Aでの終端速度のまま次の時間へ突入する。

最後は 

1/2 * V_t * C

と言う三角形の面積が「移動距離」です。

注: これもBは「等速直線運動」、つまり速度が変わらないので、Bの持ってた速度がその次の時間での「初速度」になる。結果時間Aでの終端速度がここでの初速度となる。

> 車が0から発進し、目的地の1.0で止まるような動き

と言う条件を考慮すると、上記三つの面積の和が1.0だと言う事なので、

1/2 * V_t * A + V_t * B + 1/2 * V_t * C = 1.0

ってのが「縛り」です。これをV_tに付いて解くと、

V_t = 2/(A + 2B + C)

となり、終端速度V_tはAとBとCによって自動的に決定されるのが分かります。
グラフ描けば分かりやすいんですが、0〜t〜Aまでの「傾き」は当然

V_t/A = 2/{A*(A + 2B + C)}

なんでこれがその区間での「加速度」になります。従ってその区間での速度V_aは時間をtとすると

V_a = (2*t)/{A*(A + 2B + C)}

次の区間(A〜t〜B)は等速直線運動なんで当然加速度はナシ(0)。その区間での速度V_bは

V_b = V_t = 2/(A + 2B + C)

最後の区間(B〜t〜C)の加速度は「減速」を考慮して

(0 - V_t)/C = - 2/{C*(A + 2B + C)}

そして速度V_cは初速が2/(A + 2B + C)なのを考慮すれば

V_c = 2/(A + 2B + C) - (2*t)/{C*(A + 2B + C)}

ですね。

あとはご自由にプログラミングを。
    • good
    • 0
この回答へのお礼

素晴しく丁寧な回答ありがとうございます。
面積と移動距離が等しいのは分かっていたのですが、うまく組み立てられずにアレコレ悩んでいました。

お陰様でまさに求めていた動作を実装することが出来ました。
とても助かりました。

お礼日時:2018/11/07 18:13

等加速度運動の式が間違っています。


V = V0 + a t
です。

そうすると最初の加速の加速度が書かれていないので仮に a とすると、最初の加速における式は
x1 = 0 + 0.5 a A^2
v1 = 0 + a A
ですね。

x2 = x1 + V1 B
V2 = V1
です。

ここで減速度 b だけは計算できて
0 = V2 - b C
x3 = x2 + 0.5 b C^2

このあたりの式を組み合わせてプログラミングすれば、
連続系での運動を、離散サンプリングしたようなアルゴリズムができますね。

離散系での運動を考える場合は、また一工夫が必用ですが、それは別の話。
あなたの実力では厳しいかと思います。
    • good
    • 0

A, B, C から加速度や速度を求める式をあなたが作って, それに代入することで求めるのが普通でしょうか.

    • good
    • 0

あなた高校で数学や物理は勉強しましたか?


加速度と速度と位置の関係式は、どうなっていますか?
この回答への補足あり
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!