ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

逐次的方法によるレーダー追跡のシミュレーション

この例では、航空機の進路を追跡するレーダー基地のモンテカルロ シミュレーションを実行します。レーダー基地では、レーダー方程式を使用して航空機の位置を推定します。ここでは測定誤差を確率変数として導入し、レーダー基地はカルマン フィルターによる処理を実行してその誤差を修正します。カルマン フィルターの効果を推定するためにシミュレーションを繰り返し、そのつど航空機はランダムに選択された進路を進みます。

計算についての詳細は、pctdemo_model_radar モデルを開いてくださいpctdemo_model_radar モデルを開いてください

必要条件:

関連する例:

例の設定とデータの読み込み

例の難易度を取得することから開始します。異なる難易度を例で使用する場合は、paralleldemoconfig を使用したうえでこの例をもう一度実行します。詳細は、「Parallel Computing Toolbox™ の例の設定をカスタマイズ」を参照してください。

difficulty = pctdemo_helper_getDefaults();

シミュレーションの回数と各シミュレーションの長さを pctdemo_setup_radar で定義します。例の難易度によって、実行するシミュレーションの数が制御されます。関数 pctdemo_setup_radar はまた、航空機が取れる異なった進路の例と、航空機の推定位置の誤差を表示します。詳細は、pctdemo_setup_radar のコードを参照pctdemo_setup_radar のコードを参照してください。

[fig, numSims, finishTime] = pctdemo_setup_radar(difficulty);
startClock = clock;

シミュレーションの実行

関数 pctdemo_task_radar により numSims 回のシミュレーションを実行すると、(finishTime + 1) 行 numSims 列の行列が返されます。詳細は、pctdemo_task_radar のコードを参照pctdemo_task_radar のコードを参照してください。

residual = pctdemo_task_radar(numSims, finishTime);

経過時間の測定

逐次計算で使用される時間は、「分散的方法によるレーダー追跡のシミュレーション」の例において、Parallel Computing Toolbox を使用して同じ一連の計算を実行するためにかかる時間と比較する必要があります。経過時間は基礎となるハードウェアによって変わります。

elapsedTime = etime(clock, startClock);
fprintf('Elapsed time is %2.1f seconds\n', elapsedTime);
Elapsed time is 130.7 seconds

結果のプロット

シミュレーションの結果を使用して、範囲推定誤差の標準偏差を時間の関数として計算します。詳細は、pctdemo_plot_radar のコードを参照pctdemo_plot_radar のコードを参照してください。

pctdemo_plot_radar(fig, residual);

この情報は役に立ちましたか?