任意の信号波形の作成方法が分からない

Simulinkで計算した値をマイコンに送信したいと考えており、ツールボックス(Desktop Real-Time)を使用してデータ通信をさせようとしています。
ツールボックスのoutputブロックを使用してデジタル信号を出力するのですが、出力する波形の作成方法が分かりません。
通信方式はUARTを考えており、通信プロトコルに合わせて、波形を作成しようとしています。
任意の波形を作る方法をご教授頂きたいです。

Answers (1)

Toshinobu Shintai
Toshinobu Shintai on 11 Apr 2022

1 vote

Simulink Desktop Real-Time に限った話ではありませんが、任意の信号波形を作成したいという場合は、Signal Editor ブロックとそのアプリを使うことをおすすめします。

4 Comments

takaaki yamada
takaaki yamada on 11 Apr 2022
御回答ありがとうございます。Signal Editorを使い、波形の作成を試しています。
お陰様でワークスペースの変数からシナリオを作り、目的の波形が作成できました。
ですがワークスペースが変更されてもシナリオは更新されず、波形に変化はありませんでした。これはこういった仕様になっているのでしょうか?
ワークスペースの値をもとに波形が生成されるような仕組みを作りたいと考えているのですがSignal Editorでは難しいのでしょうか?
Signal Editorは、現在のフォルダーなどに保存したmatファイルを参照する形で実行されますので、ワークスペースの値を自動的にmatファイルに書き出す処理を別途作成することで、運用できるかと思います。
以下のコマンドは、以前に私が作成したエクセルファイルのデータを自動的にSignal Editor用のmatファイルに変換するスクリプトなのですが、以下を参考に、Simulinkモデルの実行前にスクリプトでmatファイルを更新する仕組みを構築してみてはいかがでしょうか。
参考までに、エクセルファイル「input_data.xlsx」も添付しています。
%%
signal_data_raw = readtable('input_data.xlsx', ...
'VariableNamingRule', 'preserve');
ts_obj = cell(1, size(signal_data_raw.Variables, 2) - 1);
for i = 1:numel(ts_obj)
ts_obj{1, i} = timeseries(signal_data_raw(:,i+1).Variables, ...
signal_data_raw(:,1).Variables, ...
'Name', signal_data_raw.Properties.VariableNames{i+1});
end
%%
signal_dataset = Simulink.SimulationData.Dataset;
for i = 1:numel(ts_obj)
signal_dataset = signal_dataset.addElement(ts_obj{i});
end
%%
save_file_name = 'auto_inport_data.mat';
save(save_file_name, 'signal_dataset');
takaaki yamada
takaaki yamada on 14 Apr 2022
Edited: takaaki yamada on 14 Apr 2022
有り難うございます、頂いたコードを参考にして今試しています。
そもそもの質問になってしまうのですが、現在Desktop Real-Timeを使って、ハードウェア機器を含めたシミュレーション環境(HILS)の構築を目指しているのですが、ハードウェア機器との通信はどのように実現されるのが一般的なのでしょうか?(通信プロトコルなどは自作するのが一般的なのか?自作した通信プロトコルで実際に機器と通信は実現可能なのか?そういった例はないのかなど)
ちなみに私はDesktop Real-Time、MF644(Desktop Real-Timeがサポートする実機とのIF機器)、実物のマイコンを使って宇宙環境での衛星の振る舞いをシミュレーションさせようとしています。
何かご存知でしたらご教授頂きたいです。
Toshinobu Shintai
Toshinobu Shintai on 14 Apr 2022
ハードウェア機器とどのように通信するかは、扱っている製品の種類などによって変わってくるかと思います。シンプルなアナログ、デジタル入出力だけでなく、シリアル通信、CAN通信、TCP/IPなどもあるかと思います。
通信プロトコルなどは自作する場合もあるかと思いますが、私もそこまで深く存じておりません。

Sign in to comment.

Asked:

on 11 Apr 2022

Commented:

on 14 Apr 2022

Community Treasure Hunt

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

Start Hunting!