0

Simulink ブロックのワークスペースにインポートされたデータを使用して問題に直面しています。

私の場合:

この方法を実際の Simulink ブロックに実装する前に、簡単なブロック線図を作成して結果をシミュレートしました。「ワークスペースから」ブロックを使用してデータを読み込み、スコープを使用して出力を観察しました。設定は次のとおりです。

t=0:22/565:22
a.time=t
a.signals.values=ddata   %ddata contains [565x1] datas
a.signals.dimensions=1;

スコープ内の結果がデータと一致しないことに気付きました。

この Web サイト ( http://blogs.mathworks.com/seth/2012/02/09/using-discrete-data-as-an-input-to-your-simulink-model/ ) で、実行された手順がわかりましたSimulink ソルバーによる時間ベクトルは、入力時間ベクトルで指定された時間ベクトルとは異なります。

解決しようとする:

時間ベクトルをゼロに設定しましたが、エラーがあります。

a.time=[];

エラー: 「'test/From Workspace' に指定された連続サンプル時間は無効です。ワークスペースからの入力が時間データのない構造体である場合、連続サンプル時間は許可されません。このエラーを解消するには、離散サンプル時間を選択するか、入力データを変更してください。時刻データを含めます。」

質問:

  1. 時間ベクトルを使用せずにこのエラーを解決するにはどうすればよいですか?

  2. データのリスト全体ではなく、タイム ステップごとに 1 行を Simulink ブロックに読み込む最良の方法は何ですか?

誰かが私のケースに洞察/解決策/代替方法を提供できるかどうかを非常に感謝しています.

4

2 に答える 2

0

データの時間ベクトルは、モデルのシミュレーション時に Simulink が使用するタイム ステップにはほとんど影響しません。入力時間/データは、Simulink がタイム ステップごとに (内挿を使用して) 入力値を取得するために使用するルックアップ テーブルと考えてください。

Simulink が特定の時点でステップを実行するようにするには、[構成パラメーター] ダイアログの [ソルバー] ページでパラメーターを変更する必要があります。ステップ サイズが 22/565 の固定ステップ ソルバーを使用したいようです。

于 2013-03-29T16:23:00.323 に答える