シミュレーションやビルドに時間がかかる
MBDが順調に進んでくると、
どうしてもSimulinkのモデルサイズが大きくなります
このモデルサイズが大きくなると、いくつか課題がでてくるのですが、
分かりやすい課題として、モデルのシミュレーションやビルド時間が増加します
例えば、弊社の経験として、
シミュレーション時間が実時間の30倍以上も掛ったこともありますし
ビルドに1時間以上掛かったこともあります
今回は、その場合の対策方法を簡単に紹介します
注意
モデルの作り方によって改善しないケースもあるため、
参考程度に読んで頂けると助かります
改善策1 バーチャルサブシステムを多用しない
バーチャルサブシステムを多用すると時間がかかるケースがあります
これは、(推測になりますが)ビルド時の最適化に時間が掛かっていると思われます
この対策として、いくつかの上位サブシステムをアトミックサブシステムにすることで
ビルド時間を改善できる可能性があります。
※ただ、アトミック化によって演算順番が多少変化する可能性があるため
適切なサブシステムをアトミック化する等の検討が必要です
バーチャルサブシステムは何か?アトミック化の設定方法は?については
以前の記事を参照ください
改善策2 バス配線を多用しない
信号線が多くなると見づらくなってくるため、バス配線を使用しますが、
バス配線を多用すると、ビルド時間が掛かってしまうようです
こちらも推測になりますが、
シミュレーションする度に各バスの中身を確認しているようなので、
それに時間が掛かっているせいだと考えられます
そのため、不必要な階層では極力バス配線は避けましょう
※配線作業に時間がかかるとお悩みの方は、
「自動配線ツール」等を作成および採用することがお勧めです
改善策3 モデルリファレンスが多い場合、Parallel Computing Toolboxを導入する
大規模開発だと、モデルリファレンスを利用するケースがあります。
ただ、このモデルリファレンスを使用すると、シミュレーションやビルド時する度に、
モデルリファレンス内をチェックしにいっているようで、これにも時間が掛かります
このチェックを並列処理するためにParaller Computing Toolboxが有効です
もともとはforループ系の計算を並列処理するためのツールみたいなのですが、
モデルリファレンスのチェックにも並列処理として使えるようです
(補足:上記のToolbox以外の改善策として)
もともと、モデルリファレンス機能(コンフィグレーションパラメータ)に、
「リビルド時には変更箇所のみビルド」というオプションがあるため
チェック入れると、再ビルド時間が削減できる可能性もあります
まとめ
代業的な改善策を3つほど説明しましたが、
ユーザ様のモデルの構造や作り方に依存するためです
残念ながら必ず効果があるとは言い切れません
最適な解決策を見つけるためには、
モデル、開発プロセスや関連ツールなどの分析を行った上で、
今回紹介していない手法も含めて選定する必要があります
また、Simulinkモデルで開発を進めていくと、
どうしても改善できないケースもあるため、
別のツールを導入するという解決策もあります
ご興味のある方は、是非、弊社までお問い合わせください
ーーーーーーーーーーーーー
※MATLAB, Simulinkは、MathWorks社の登録商標です。
※記事内のサンプル等の流用にて損害等が発生したとしても、保証は一切致しません