Simulinkでデ​ータに任意の時間軸を​データに持たせる方法

Simulinkでデータに任意の時間軸をデータに持たせる方法を探しています.
具体的には,(シミュレーションのサンプリングが0.2[sec]の場合),
各タイムステップで作成されるdataに対してSimulink上で使用できる時間情報を与えたいです.
0[s] data=[0 1 2 ...]
0.2[s] data=[0 1 2 ...]  → data=[(時間) 0.2 0.4 0.6 ...
(信号) 0 1 2 ...]
矢印→の右側のように,データに与えたい時間は配列として作成できますが,Simulink上で認識されるものではなく,うまく時間軸を割り当てられません.
dataの作成は,MATAB functionブロックを使用しており,その中でtimeseries関数のプロパティ(Time)を使って上書きしようとしましたができないようです.
'timeseries' クラスはコード生成をサポートしていません
どのような方法でも構いませんので,教えていただければと思います.

 Akzeptierte Antwort

Toshinobu Shintai
Toshinobu Shintai am 17 Mär. 2022

0 Stimmen

"To Workspace" ブロックは試されましたでしょうか?以下のリンク先にブロックの説明と使い方の例があります。

5 Kommentare

Mutsumi Yoshino
Mutsumi Yoshino am 17 Mär. 2022
ご回答ありがとうございます.
任意の時間軸を付加したdataはそのままSimulink内で使用したいです(説明が足りずすみません).To Workspaceで出力された信号であれば,TimeseriesのTimeを使って時間軸を書き換えられることも確認しております.
MATLAB Function block内で,元データを補完しています.
vq1 = interp1(t,data,new_t, 'spline');
入力のサンプリングtが0.2[sec]で,補完したデータをサンプリングtt=0.04[sec]の時間軸をもたせた状態で,その後の制御入力として使いたいのです.
Toshinobu Shintai
Toshinobu Shintai am 17 Mär. 2022
「任意の時間軸を付加したデータ」は、MATLAB側のスクリプトで作成し、そのデータを From Workspace ブロックで読み込む形でSimulinkで実行する、という方法はできませんでしょうか。「vq1 = interp1(t,data,new_t, 'spline');」のようなコマンドをMATLABスクリプトで実行する、という意味になります。
通常はこのような形で、時間に寄らない処理をMATLABで、時間に寄る処理(時間的なシミュレーション)をSimulinkで行うことを推奨しています。
Mutsumi Yoshino
Mutsumi Yoshino am 17 Mär. 2022
他のシミュレーションソフトと連携しており,現在の状態に応じて,制御目標値となるdataがが作成されるようになっています.
制御入力であるdataの算出は時間によるものですが,From Workspaceで読む信号を時々刻々書き換えるということでしょうか?
Toshinobu Shintai
Toshinobu Shintai am 17 Mär. 2022
私としては、かなり特殊なことをされていると感じます。申し訳ありませんが、行おうとしていることを完全に理解できませんでした。
ひとまずお伝えできることとしては、「coder.extrinsic」というコマンドを用いることで、MATLAB Functionブロックの"コード生成できません"の制限を解除することができる、という点です。
サンプルモデルを添付しました。モデルはR2017bで作成しています。以下のようにMATLAB Function ブロックでデータを作るとして、
以下のように記述します。
save_data_and_timeでは、MATLABの任意のコマンドを実行できます。
モデルを実行した際に、dataという変数にデータが1ステップごとに追加されていきます。
Mutsumi Yoshino
Mutsumi Yoshino am 17 Mär. 2022
サンプルまで用意していただき,ありがとうございました.
まずはcoder.extrinsicの動作確認いたします.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu モデル化 finden Sie in Hilfe-Center und File Exchange

Produkte

Version

R2017b

Community Treasure Hunt

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

Start Hunting!