Simulinkシミ​ュレーション時にメモ​リ不足を示すエラー(​Memory allocation error等)が発生するのはなぜですか?

29 views (last 30 days)
Simulinkモデルのシミュレーションを行うと、途中でメモリ不足を示すエラー(Memory allocation error等)が発生してシミュレーションが停止します。

Accepted Answer

MathWorks Support Team
MathWorks Support Team on 6 Nov 2018
Edited: MathWorks Support Team on 6 Nov 2018
このエラーはシミュレーションに必要なメモリが不足している場合に発生します。
回避方法としては、下記の方法が考えられます。複数の方法を組み合わせるとより効果的です。
1. 不要なデータログの削除
シミュレーション結果をMATLABワークスペースに保存する必要が無い場合は、下記の設定を行ってください。
- モデルウィンドウの [シミュレーション] メニュー → [コンフィギュレーションパラメータ] [データのインポート/エクスポート] を選択し、 [ワークスペースに保存] 内の各チェックを外す。
- To Workspaceブロックを削除する。
- Scopeブロックの[データをワークスペースに保存]チェックを外す。
2. データログの間引き
シミュレーション結果をMATLABワークスペースに保存する必要がある場合は、 [データのインポート/エクスポート] → [ファイル保存オプション] や To Workspace ブロックの [間引き] の設定を行ってください。例えば、[間引き]を10に設定すると、10ステップ毎にデータログが行われるようになります。計算精度を保つためにステップサイズは大きくできないが、シミュレーション結果はある程度大きな時間刻みでも構わない場合に有効な方法です。
3. To Fileブロックの利用
To Fileブロックを使用すると、信号値をMAT-ファイルに保存することができます。外部のMAT-ファイルにシミュレーション結果を保存することにより、 [データのインポート/エクスポート] → [ワークスペースに保存] や To Workspace ブロックを使用した際に生じるデータログの蓄積によるメモリ不足を回避することができます。
4. シミュレーション条件の変更
- シミュレーションステップサイズを大きくする。
- シミュレーション時間を短くする。
ただし、シミュレーション条件を変更すると計算結果に影響を与えてしまいますので、この方法は適用できない場合があります。
5. シミュレーション時間の分割
目的とする総シミュレーション時間を分割して継続シミュレーションを行うことにより、1回当りのメモリ消費量を抑えることができます。シミュレーション時間の分割・継続シミュレーションの方法につきましては、関連ソリューションをご参照ください。
- シミュレーションを分割実行する方法を教えてください
6. MATLAB使用メモリの抑制
- Java環境でMATLABを起動する。
- 非デスクトップ環境でMATLABを起動する。
上記(a),(b)の起動方法につきましては、下記の関連ソリューションを参照してください。
- MATLAB5.3.1(R11.1」までと比べ、MATLAB6.0(R12)以降では、起動や実行が遅いです

More Answers (0)

Categories

Find more on パフォーマンスの最適化 in Help Center and File Exchange

Products

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!