Simulink実行中に大きな配列データを保持する方法,また終了時にその配列データを出力する方法
이전 댓글 표시
ロボットモデル(simscape mutibody)のシミュレーションを行っており,simulink実行中にロボット動作によって逐次更新されるmapデータ(1000×1000程度の2次元配列)を扱いたいと考えています.
※シミュレーションは固定ステップ,ステップ時間1msec,終了時間300秒ほど
全体の流れ
- matlabスクリプトでmap初期値を定義
- map初期値を与えてsimulinkモデル実行
- simulink終了時に更新後のmapデータをワークスペース等に出力
現在は「matlab-Functionブロック」内の永続変数としてmapデータを格納し,データ出力は「条件付きサブシステム」と「To Workspaceブロック」を用いて行っています.本件に関して,以下3点を教えていただけますでしょうか.
- simulinkで大きめな配列データ(状態値)を保持する方法としてどのようなものがあるか ※できるだけ計算時間を短くしたい
- またsimulink終了時にその配列データを出力する方法
- simulink実行中にBase Workspace,Model Workspaceの変数を編集することは可能なのか?
↓現状の実装

채택된 답변
추가 답변 (1개)
nito
2022년 6월 3일
0 개 추천
댓글 수: 2
Toshinobu Shintai
2022년 6월 3일
편집: Toshinobu Shintai
2022년 6월 3일
R2021bへ変換しました。
そして、To Workspaceがエラーとなる件、失礼しました。21bへ変換した後では、確かにエラーとなります。以前のモデルでなぜエラーが出なかったのかは分かりません。

実行後、以下のようにして結果を取り出すことができます。
logged_map_data = out.logsout.get('map_data').Values.Data;
nito
2022년 6월 4일
카테고리
도움말 센터 및 File Exchange에서 データ ログ에 대해 자세히 알아보기
제품
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!




