Simulinkでデータに任意の時間軸をデータに持たせる方法
24 ビュー (過去 30 日間)
古いコメントを表示
Mutsumi Yoshino
2022 年 3 月 17 日
コメント済み: Mutsumi Yoshino
2022 年 3 月 17 日
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 件のコメント
採用された回答
Toshinobu Shintai
2022 年 3 月 17 日
"To Workspace" ブロックは試されましたでしょうか?以下のリンク先にブロックの説明と使い方の例があります。
5 件のコメント
Toshinobu Shintai
2022 年 3 月 17 日
私としては、かなり特殊なことをされていると感じます。申し訳ありませんが、行おうとしていることを完全に理解できませんでした。
ひとまずお伝えできることとしては、「coder.extrinsic」というコマンドを用いることで、MATLAB Functionブロックの"コード生成できません"の制限を解除することができる、という点です。
サンプルモデルを添付しました。モデルはR2017bで作成しています。以下のようにMATLAB Function ブロックでデータを作るとして、
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/930044/image.png)
以下のように記述します。
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/930049/image.png)
save_data_and_timeでは、MATLABの任意のコマンドを実行できます。
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/930054/image.png)
モデルを実行した際に、dataという変数にデータが1ステップごとに追加されていきます。
その他の回答 (0 件)
参考
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!