simulink上のMATLAB Functionでつ​くった列ベクトルをM​ATRAB Function上で​時系列データ(波形デ​ータ)に変換したい

조회 수: 9 (최근 30일)
Kazunori Hase
Kazunori Hase 2017년 1월 23일
댓글: Kazunori Hase 2017년 1월 26일
simulink上のMATLAB Functionでつくった列ベクトルをMATRAB Function上で時系列データ(波形データ)に変換したいです.コマンドウィンドウではtimeseriesというコマンドで時系列データに変換できましたが,MATLAB Functionではそのコマンドが使用できなかったため,他に方法がないか教えていただきたいです.

채택된 답변

Tohru Kikawada
Tohru Kikawada 2017년 1월 24일
ご質問される場合には こちら にしたがって、投稿いただけますとより的確な回答が得られます。
もう少し具体的にやりたいことをご説明いただけますでしょうか。
  • どのような処理をMATLAB Functionブロックで実行しているか
  • 入力はどのような信号で、出力はどのような列ベクトルなのか
  • シミュレーション完了後に時系列データに変換するのか、それともシミュレーション中に逐次時系列データに変換するのか
  • 変換した時系列データはどこに出力するのか (MATLAB Functionブロックから出力し、後段ブロックに伝達するか or ワークスペースに保存したいのか)
たとえば、「MATLAB Functionブロックから生成された列ベクトル(100x1)を、Simulinkの時系列信号して1サンプルずつ出力したい」ということでしたら下記の方法になります。
DSP System ToolboxのUnbufferブロックを使って100要素の列ベクトルを1サンプルに分解して出力しています。Unbufferブロック前後でサンプル時間が調整されていることに注意してください。
Simulinkモデル:
MATLAB Functionブロックのコード:
function y = mySignalGenerator(gain)
y = randn(100,1)*gain; % 入力データ1個に対して100個のデータを出力
出力信号:
%
  댓글 수: 2
Kazunori Hase
Kazunori Hase 2017년 1월 24일
ご回答ありがとうございます.また,質問の仕方が稚拙で申し訳ありません.ご回答の内容,改めて確認し,適宜またご返答させていただきます.取り急ぎ御礼のみ.
Kazunori Hase
Kazunori Hase 2017년 1월 26일
先にご紹介いただい方法でこちら側の問題は解決できました. ご指摘の通り,私共で実行したいことは,MATLAB Functionブロックから生成された列ベクトルを,Simulinkの時系列信号として1サンプルずつ出力したい,ということでした.Unbufferブロックのことは知りませんでした.大変勉強になりました.ありがとうございました.

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Startup and Shutdown에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by