1 定義と基本原理

1.1 時間離散化概念

時間離散化とは、連続的に流れる時間を有限個の区間に分割し、各時点におけるシステムの状態のみを計算対象とする考え方を指す。タイムステップはこの離散化された各区間の長さとして定義され、ステップごとに状態量が更新される。これにより、連続的な微分方程式積分を数値的に扱うことが可能となる。

1.2 連続時間との関係

連続時間では状態が任意の時刻で定義されるのに対し、タイムステップを用いた離散時間表現では、状態は離散的な時刻 \( t_0, t_1, t_2, \dots \) でのみ定義される。タイムステップ \(\Delta t = t_{n+1} - t_n\) がゼロに近づく極限で、離散時間モデルは連続時間モデルに漸近する。実際の計算では有限の \(\Delta t\) を用いるため、近似誤差が生じる。

1.3 タイムステップの単位と表記

タイムステップの単位は秒(s)、ミリ秒(ms)、マイクロ秒(μs)など、対象とする現象の時間スケールに応じて選ばれる。数式では一般に \(\Delta t\) や \(h\) と表記される。固定タイムステップの場合、単に「ステップ幅」と呼ばれることも多い。シミュレーション内ではタイムステップ番号 \(n\) を用いて、時刻 \(t_n = n \cdot \Delta t\) と表現する。

2 主要な応用分野

2.1 数値シミュレーション

2.1.1 微分方程式の数値解法

2.1.1.1 陽解法と陰解法

陽解法(explicit method)は、現在の状態から未来の状態を直接計算する手法であり、1ステップあたりの計算が高速である。代表例としてオイラー法やルンゲ=クッタ法がある。一方、陰解法(implicit method)は未来の状態を含む方程式を解く必要があり、計算コストは高いが、大きなタイムステップでも安定性を保つことができる。選択は問題の硬さ(スティフネス)と要求精度に依存する。

2.1.2 物理シミュレーション(剛体・流体

剛体シミュレーションでは、各タイムステップで力の計算と運動方程式の積分を行い、衝突判定と応答を処理する。流体シミュレーション(例:SPH法や格子ボルツマン法)では、タイムステップが安定性条件(クーラン条件)を満たす必要がある。特に流体では圧力項の伝播速度が速いため、タイムステップを小さく制限せざるを得ない場合が多い。

2.2 コンピュータグラフィックスとゲーム

2.2.1 固定タイムステップ

ゲームエンジンでは物理演算やアニメーション更新を一定の間隔で実行するため、固定タイムステップ(例:1/60秒)がよく用いられる。これにより、フレームレートの変動にかかわらず物理挙動が一定に保たれ、再現性が向上する。描画フレームは物理更新とは独立に実行され、必要に応じて補間が行われる。

2.2.2 可変タイムステップとフレームレート

可変タイムステップでは、前フレームからの経過時間をそのままタイムステップとして使用する。実装が簡単だが、フレームレートが低下するとタイムステップが大きくなり、物理挙動が不安定になったり、ゲーム内の時間の流れが遅くなったりする欠点がある。多くのゲームでは、可変タイムステップに上限を設けて暴走を防ぐ。

2.3 制御システムとデジタル信号処理

2.3.1 サンプリング周期

デジタル制御や信号処理では、連続信号を離散時間で扱うためのサンプリング周期がタイムステップに対応する。シャノン=ナイキストの定理により、サンプリング周期は対象信号の最高周波数の2倍以上の周波数に相当するように選ばれる。周期が長すぎるとエイリアシングが発生する。

2.3.2 離散時間制御

制御系では、センサの測定からアクチュエータへの出力までを1タイムステップ内で完了する必要がある。制御周期(タイムステップ)はシステムの応答速度や計算遅延を考慮して決定される。PID制御器の離散化や状態観測器の設計において、タイムステップの選択が制御性能に大きな影響を与える。

3 タイムステップの選択と特性

3.1 固定タイムステップ

3.1.1 メリットとデメリット

固定タイムステップのメリットは、計算の再現性が高く、デバッグやテストが容易なことである。また、物理シミュレーションの安定性条件が既知であれば、それを満たすようにタイムステップを設定できる。デメリットは、処理が軽い場面でも常に一定の計算負荷がかかることと、イベントの発生タイミングがタイムステップの整数倍にしか対応できない点である。

3.2 可変タイムステップ

3.2.1 適応的刻み幅制御

可変タイムステップでは、誤差推定や安定性条件に基づいて刻み幅を動的に変化させる。代表的な手法として、ルンゲ=クッタ法の埋め込み公式を用いた刻み幅制御が挙げられる。急峻な変化が生じる領域では自動的にタイムステップを小さくし、状態が穏やかな領域では大きくすることで、計算精度と効率のバランスを取る。

3.3 安定性と収束性

3.3.1 クーラン条件

双曲型偏微分方程式の数値解法において、情報の伝播速度 \(c\) と空間刻み \(\Delta x\) に対して、タイムステップ \(\Delta t\) は \(\Delta t \leq C \cdot \Delta x / c\) を満たす必要がある。ここで \(C\) はクーラン数であり、1以下に設定することで数値的に安定な解が得られる。この条件は流体シミュレーションや波動方程式の計算で特に重要である。

3.3.2 誤差評価

タイムステップに起因する誤差には、局所打ち切り誤差(1ステップでの誤差)と大域打ち切り誤差(最終時刻までの累積誤差)がある。陽解法のオイラー法では局所誤差は \(O(\Delta t^2)\)、大域誤差は \(O(\Delta t)\) となる。高次の数値解法を用いることで、同じタイムステップでも誤差を低減できる。誤差評価は適応的刻み幅制御の基礎となる。

4 実装上の注意点

4.1 タイムステップと計算負荷のトレードオフ

タイムステップを小さくすると精度と安定性が向上するが、同じシミュレーション時間に対してステップ数が増加するため計算負荷が高まる。逆に大きくすると計算は速くなるが、誤差が増大し発散する危険がある。特にリアルタイムシステムでは、1ステップあたりの計算時間をタイムステップ内に収める必要があり、この制約が刻み幅の上限を決める。

4.2 同期と非同期処理

複数のシミュレーションコンポーネントが異なるタイムステップで動作する場合、同期機構が必要となる。例えば、物理演算と描画が非同期で動くゲームエンジンでは、物理タイムステップを固定し、描画フレームでは補間を行う。分散シミュレーションでは、各ノードが自分のタイムステップで計算し、同期ポイントでデータ交換を行う方式が一般的である。

4.3 浮動小数点誤差の蓄積

タイムステップを繰り返し加算して時刻を進める方式(\(t_{n+1} = t_n + \Delta t\))では、浮動小数点数の丸め誤差が蓄積し、特に長時間シミュレーションで時刻が実際の値からずれる問題が生じる。これを回避するには、ステップ番号 \(n\) から \(t_n = n \cdot \Delta t\) と計算する方法や、倍精度浮動小数点数を使用することが推奨される。また、\(\Delta t\) が2のべき乗の値であれば、丸め誤差を最小化できる。

5 関連概念との比較

5.1 時刻(time instant)との違い

時刻(time instant)は時間軸上の一点を指し、タイムステップは隣接する時刻間の間隔を指す。タイムステップが「幅」であるのに対し、時刻は「位置」である。例えば「\(t=1.0\)秒」は時刻であり、「\(\Delta t = 0.1\)秒」はタイムステップである。シミュレーションでは、時刻の列 \(\{t_0, t_1, \dots, t_N\}\) とタイムステップ \(\Delta t_n = t_{n+1} - t_n\) がともに定義される。

5.2 フレーム(frame)との関係

フレームは主にコンピュータグラフィックスや動画において、画面に表示される1枚の画像を指す。ゲームやアニメーションでは、1フレームの表示時間がタイムステップに対応することが多い。ただし、描画フレームと物理タイムステップは必ずしも一致せず、物理計算を複数回実行してから1フレーム描画する(サブステッピング)方式もしばしば用いられる。

5.3 イベント駆動方式との比較

イベント駆動方式では、あらかじめ決められたタイムステップで刻むのではなく、イベントの発生時刻に応じて計算を飛び飛びに実行する。例えば、離散事象シミュレーションでは、次に発生するイベントまで一気に時間を進める。状態が長時間変化しない場合、タイムステップ方式より効率的である。一方、連続的な変化を扱う物理シミュレーションでは、イベント駆動方式は不向きであり、タイムステップ方式が支配的である。