Simulink、Stateflow および MATLAB から生成されたコード間のデータ共有
Stateflow® と MATLAB® Coder™ では、完全なデータ定義を定義したり、Simulink® から継承したりすることができます。データ定義機能には以下が含まれます。
Simulink からの入力/出力データ型およびサイズの継承。
パラメーター化されたデータ型およびサイズ。すなわち、データ型およびサイズは、
type(y)=type(u)
とsize(y)=size(u)
のように、別のデータの型およびサイズの関数として指定されることができます。信号属性の逆伝播を介して Simulink から推定された出力サイズおよび型。
パラメーターのスコープ データ。これにより、Stateflow と MATLAB で Simulink パラメーターを参照できます。
モデル例を開く
モデル例 rtwdemo_dynamicio
を開きます。
open_system('rtwdemo_dynamicio')
手順
モデルをコンパイルし ([シミュレーション] タブの [準備] で [モデルの更新] をクリック)、表示される信号タイプおよびサイズに注意します。
Constant ブロックのデータ型およびサイズを変更し、モデルを再コンパイルします。信号の属性が Constant ブロックの仕様に自動的に適応されることに注意してください。
モデル内の青色のボタンを使用してコードを生成し、検査します。
K
が Gain および sfVerticalSum ブロックで共有されていることに注意してください。
メモ
Stateflow および MATLAB データのデータ型およびサイズが Simulink から継承されます。
Gain ブロックと Stateflow チャート sfVerticalSum は Simulink パラメーター
K
を共有します。これは、Model default
ストレージ クラスをもつ Simulink.Parameter (つまり、生成されたコードのrtP.K
) として MATLAB ワークスペースに定義されています。