0


手動で挿入された定数を使用せずに、変数を使用して s-function のいくつかのパラメーターを指定したいと考えています。
matlab でグローバル変数を定義し、それらをパラメーターとして使用しようとしましたが、正常に動作します。
とにかく、simulink で計算された変数を他の関数のパラメータとして使用したい。出来ますか?もしそうなら、どうすればできますか?
1 つのアイデアは、matlab e でグローバル定数を引き続き使用して simulink から更新することでしたが、「ワークスペースへ」ブロックがそれらを構造体または配列に変換し、単一の値が必要なため、それを行うことができません。

編集: ワークスペースのグローバル変数の変数を更新することは、simulinkが最初に値を読み取ったように見えるため、役に立ちません

4

2 に答える 2

0

私は解決策を見つけました。まず、次のことを知っておくことが重要です。

  1. s-function パラメーターには、定数、ワークスペース変数、matlab 式を指定できます。matlab 式には、matlab 関数の呼び出しが含まれています。
  2. simulink は、シミュレーションの開始時に各パラメーターの値を計算します (意味があります!)。

解決策は、パラメーターの計算に matlab 関数を使用することです。matlab 関数は、他の simulink シミュレーションを呼び出すことができます。非常に単純なケースであっても、試してみましたが、うまくいきました。

私は知っています、それはクレイジーな解決策ですが、それは解決策です。警告: 現時点では、このクレイジーなソリューションがシミュレーションに何らかの副作用をもたらすかどうかを知ることができません。

この問題の最善の解決策は、s-function の入力でパラメーターを変換することですが、サード パーティの sfunction であるため変換できません。

于 2014-11-19T16:31:11.927 に答える
0

私が考えることができる唯一の解決策は、S-Function ブロックへの入力信号の 1 つとして「変数」を持ち、その信号が計算される Simulink モデルの他の部分から来ることです。

于 2014-11-19T14:56:35.330 に答える