シミュレーション結果を Excelファイルや​テキストファイルに保​存するブロックはあり​ますか?

55 vues (au cours des 30 derniers jours)
MathWorks Support Team
MathWorks Support Team le 25 Oct 2013
Simulink でシミュレーション結果をExcelファイルやテキストファイルに保存する方法を教えてください。

Réponse acceptée

MathWorks Support Team
MathWorks Support Team le 30 Août 2024
Modifié(e) : MathWorks Support Team le 30 Août 2024
Simulink上からシミュレーション結果を直接保存するブロックは、To Fileブロック(=> MAT-ファイルに保存)のみとなります。 MAT-ファイル以外の外部ファイルに保存する場合は、
1. シミュレーション結果をMATLABのワークスペース上に保存
2. ワークスペース上に保存された変数値を外部ファイルへ保存
という手順を実行する必要があります。それぞれについて以下に説明します。
1. シミュレーション結果をMATLABのワークスペース上に保存
Simulink のシミュレーション結果は、To Workspaceブロックや Scope ブロック、Outport ブロック(※1)等を用いてワークスペース上に保存することができます。詳細な手順については、下記を参照してください。
・関連ソリューション「Simulinkでのシミュレーション結果をMATLAB Workspaceに保存するにはどうすればよいですか。 」
=> (ページ下部の関連ソリューションを参照)
・Simulink ヘルプドキュメント:シミュレーション データのエクスポート
MATLAB R2019aのコマンドウィンドウで以下のコマンドを実行すると、R2019a 固有のドキュメントがご覧いただけます。
>> web(fullfile(docroot, 'simulink/save-runtime-data-from-simulation.html'))
(※1) データが保存できるのは、最上位階層に配置したOutportブロックからのみとなります。
2. ワークスペース上に保存された変数値を外部ファイルへ保存
writematrix 関数や writetable 関数などを使用して外部ファイルに保存することができます。各関数の使用方法等は下記URLを参照してください。
・ヘルプドキュメント:Excel スプレッドシートへのエクスポート
・ヘルプドキュメント:区切り文字または書式付きファイルのテキスト ファイルへの I/O
なお、データ書き出し等のシミュレーション後に行う処理は、モデルコールバック機能を用いてシミュレーション後に自動実行されるようにしておくと便利です。モデルコールバック機能については、ページ下部の関連ソリューション「Simulinkモデルの起動時に、モデル内で使用している変数の値を自動的に設定することができますか?」を参照してください。
[具体例]
To Workspaceブロックを使用してSimulink上のデータをExcelファイルへ保存する方法について説明します。
サンプルモデル savesys.mdl は、ページ下部の関連ドキュメントよりダウンロード可能です。
(注意)ファイルのダウンロードはダウンロード対象のリンクを右クリックし、「対象をファイルに保存」を選択して行ってください。
まず、To Workspaceブロックの保存フォーマットを「時間付き構造体」に変更します。
シミュレーションを実行すると、設定した構造体変数(simout)として、時間データと信号データがMATLABのワークスペース上に保存されます。
各データへは次のコマンドでアクセスすることができます。
% 時間データ simout.time % 信号データ simout.signals.values
次に、xlswriteコマンドでExcelファイルへデータを保存するという手順になりますが、この時、構造体データはそのままExcelファイル上に保存できないため、保存するデータを事前に1つの配列としてまとめておく必要があります。
これらの処理をモデルコールバック機能の1つである「シミュレーションストップ関数」に記述します。
以上の設定により、シミュレーション終了後、自動的にシミュレーション結果をExcelファイル上に保存することができます。
現在のリリースに関する必要な情報は下記のリンクから検索いただけます。

Plus de réponses (0)

Produits

Community Treasure Hunt

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

Start Hunting!