フィードバックループに微小な
「遅れ」要素を与えて近似します
– Transfer Fcnブロック
微小な時定数をもつ1次遅れの 伝達関数を挿入
– Unit Delayブロック
離散信号に対して1サンプル分の 遅延を挿入
– Memoryブロック
連続信号に対して1積分ステップ分 の遅延を挿入
(可変次数ソルバー(ode15s, ode113) 使用時にはお勧めできません)
このケースから得られた教訓
代数ループを構成しないモデルが理想です。
– 代数ループソルバーの計算コストが高く、シミュレーション速度が著 しく低下する場合があります。
– 代数解が探索できない場合、エラーでシミュレーションが停止します。
– 代数ループを含むモデルからは、コード生成ができません。
モデルの本質を押さえ、代数ループの解消を図りましょう。
– モデリング前に代数ループの発生しない数式に直す – フィードバックループに微小な遅れを与える
アジェンダ
まずはここから
–
今すぐ簡単に試せる高速化手法 本質を探ろう!
– 3
つのケースから得られる教訓 まだある高速化手法
–
アドバンストトピックス・関連情報 まとめ
カテゴリ Tips トラブルシュート
想定レベル 初級 中級 上級
対象ソルバー 連続 離散
可変ステップ 固定ステップ
複数回シミュレーションの 実行効率改善を図りましょう
シミュレーションを複数回 実行する際の高速化手法 を紹介します
どんなユース・ケースが ありますか?
– モンテ・カルロシミュレーション – パラメータ・スタディ
– 設計パラメータ最適化 – …
並列処理を上手く活用しましょう!
…
Computer Cluster Workers
… …
Desktop System Workers
… …
Simulation 1 Simulation 2
matlabpool open
parfor idx = 1:iterations load_system(mdl);
set_param([mdl '/Road-Suspension Interaction'],...
'MaskValues',{'Kf',num2str(Cf_sweep(idx)),'Kr','Cr'});
simout(idx) = sim(mdl,'SimulationMode','normal');
end
matlabpool close
Parallel Computing
Toolbox™
MATLAB® Distributed Computing Server™
並列計算プロセスの初期化 並列 for-ループ
シミュレーション実行
計算プロセス ( Worker )の数を増やせば 確実に高速化できます!
Worker
の数が多いほど高速化の効果が高くなります
– Parallel Computing Toolbox
のみでも12 workers まで使用可能
(R2011b以降)
シミュレーション回数が多いほど オーバーヘッド時間の影響が 少なくなり、高速化の効果が 高くなります
0 5 10
0 2 4 6 8 10 12
Number of Workers Used
Speed up (serial time/parallel time)
100 iterations 500 iterations 5000 iterations
0 5 10
10-1 100 101 102 103
Number of Workers Used
Time (minutes)
並列処理を上手く活用しましょう!(番外編)
モデルのビルドプロセスの高速化も実現できます
モデルリファレンス使用時に効果があります(
R2009a
以降) ビルドプロセスを高速化 することができます
– アクセラレータ
– ラピッドアクセラレータ – Stateflowチャート初期化
– MATLAB Functionブロック初期化 – 自動コード生成 etc.
各レベルの参照モデルを 並列処理でビルド
関連情報の紹介:
カバーしきれなかった内容がたくさんあります
モデルの更なる快適実行にお役立てください
– オンデマンドWebセミナー
「Simulinkモデルの高速化: 複数シミュレーションの並列実行」
「Speeding Up Simulink Applications(英語)」
– 技術資料
「Simulinkシミュレーション精度の改良例」
「Improving Simulation Performance in Simulink(英語)」
– Simulinkヘルプドキュメント
「シミュレーション – シミュレーションの構成」
「シミュレーション – システム動作の検証」
「シミュレーション – テストとデバッグ」
「パフォーマンス – モデルの最適化」
「パフォーマンス – 速度の向上」
アジェンダ
まずはここから
–
今すぐ簡単に試せる高速化手法 本質を探ろう!
– 3
つのケースから得られる教訓 まだある高速化手法
–
アドバンストトピックス・関連情報 まとめ
まとめ
Simulink
にはシミュレーション高速化を図るための様々な手段が用意されています。
– ワンクリックで簡単に高速化できるものから、モデルの本質を捉える 必要があるものまで様々なレベルがあります。
– 新機能や並列計算オプションなどもフル活用し、精度・速度のトレー ドオフをうまく最適化しましょう。
紹介したコツ・ノウハウが、品質改善・コスト低減・生産性 向上のブレークスルーの一助となれば幸いです。
お悩みの点があれば弊社まで お気軽にお問い合わせください!