2

それで、太陽系のシミュレーションに取り組んでいて、障害物に遭遇しました...

実際には、地球と比較した月の速度は、太陽と比較した地球の速度よりもはるかに遅いです。ただし、月ははるかに短い距離を移動する必要があるため、軌道をはるかに速く完了します。月は地球の周りを1年で約13周します。

ただし、私のシミュレーションでは、月は 1 年間におそらく 2 回公転します...

ウィキペディアで速度を確認しましたが、正しいです。

唯一の違いは、すべてをスケーリングすることであり、それが原因であると思われます。

すべての距離は 100 000 で除算され、すべての速度は 1000 で除算されます。

    this.angle += (speed * deltatime);

    this.x = this.semi_major_axis * Math.cos(this.angle) + this.parent.x + this.focalX;
    this.y = this.semi_minor_axis * Math.sin(this.angle) + this.parent.y + this.focalY;

速度はウィキペディアによる速度です。(地球は 29.78 km/s、月は 1.022 km/s)

この場合の親は、それが周回しているオブジェクトを意味します (地球の場合は太陽です。月の場合は地球です)。

focusX と focusY は惑星からのオフセットです。

速度と 2 軸の値は、この時点で既にスケーリングされています。

スケールの仕方が間違っていますか?明らかな何かが完全に欠けていますか?私はそれを完全に間違った方法でやっているだけですか?

4

3 に答える 3

4

速度は距離/時間(たとえば、キロメートル/秒)であるため、速度を1000でスケーリングし、距離を100000でスケーリングすると、知っているかどうかに関係なく、時間を100でスケーリングします。残りの部分でこれを考慮に入れていますか?あなたの計算の?

そして、はい、あなたはこれに完全に間違った方法でアプローチしています。機械的なシミュレーターを構築している場合は、プロセスのかなり早い段階で距離をスケーリングする必要がありますが、数値シミュレーターでは、なぜ距離をスケーリングするのでしょうか。元のユニットで作業するだけです。

全体に数AU(天文単位)のコンピューター画面がないため、イメージング用に数値をスケーリングする必要があるかもしれませんが、ほとんどのグラフィックシステムはパイプラインのある時点でそれを行います。

于 2012-05-09T10:37:54.823 に答える
2

流体のナビエストークス方程式で人々が行うのと同様に、元の運動方程式を無次元化する演習を行う必要があると思います (これは探すのに適した例です)。流体のプラントル数とレイノルズ数のように、無次元のグループ化が表示されるはずです。これにより、問題に対する意味のある洞察が得られ、数値解がより扱いやすくなります。

于 2012-05-09T16:48:02.433 に答える
0

私はそれがスケールになるとは思わない.シミュレーションはそれらの距離を正確よりも100倍速くするだろう.どちらも同じ量だけ速度が上がります。基本速度をもう一度見て、それらが正しいことと、移動距離を計算するアルゴリズムも確認します。

于 2012-05-09T10:50:17.750 に答える