Simulinkでデータに任意の時間軸をデータに持たせる方法
8 views (last 30 days)
Show older comments
Mutsumi Yoshino
on 17 Mar 2022
Commented: Mutsumi Yoshino
on 17 Mar 2022
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' クラスはコード生成をサポートしていません
どのような方法でも構いませんので,教えていただければと思います.
0 Comments
Accepted Answer
Toshinobu Shintai
on 17 Mar 2022
"To Workspace" ブロックは試されましたでしょうか?以下のリンク先にブロックの説明と使い方の例があります。
5 Comments
Toshinobu Shintai
on 17 Mar 2022
私としては、かなり特殊なことをされていると感じます。申し訳ありませんが、行おうとしていることを完全に理解できませんでした。
ひとまずお伝えできることとしては、「coder.extrinsic」というコマンドを用いることで、MATLAB Functionブロックの"コード生成できません"の制限を解除することができる、という点です。
サンプルモデルを添付しました。モデルはR2017bで作成しています。以下のようにMATLAB Function ブロックでデータを作るとして、
以下のように記述します。
save_data_and_timeでは、MATLABの任意のコマンドを実行できます。
モデルを実行した際に、dataという変数にデータが1ステップごとに追加されていきます。
More Answers (0)
See Also
Categories
Find more on Sources in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!