Main Content

Simulink での System object の使用のための考慮事項

Simulink®MATLAB System ブロックと MATLAB® 内の同じオブジェクトを使用するのとでは、System object の使用方法に違いがあります。この違いは、可変サイズの信号と調整可能パラメーターを操作するときと System object をプロパティとして使用するときに現れます。

可変サイズの信号

System object™ で可変サイズの信号を使用するには、伝播メソッドを実装しなければなりません。特に、出力が可変サイズか固定サイズかを指定するには isOutputFixedSizeImpl メソッドを使用します。このメソッドは、インタープリター型実行とコード生成シミュレーション方法のために必要です。

調整可能なパラメーター

Simulink は、System object のパブリック調整可能プロパティを対応する MATLAB System ブロックの調整可能パラメーターとして登録します。System object プロパティが調整可能な場合、そのプロパティは MATLAB System ブロックでも調整可能です。実行時には、以下のいずれかの方法を使用してパラメーターを変更できます。変更はシミュレーション ループの一番上で適用されます。

  • MATLAB コマンド ラインで、set_param を使用してパラメーター値を変更します。

  • Simulink エディターで、MATLAB System ブロック ダイアログ ボックスを編集してパラメーター値を変更し、ブロック線図を更新します。

stepImpl などの System object 内部メソッドからのパブリック調整可能プロパティは変更できません。

シミュレーション中、調整可能パラメーターに無効な値を設定すると、エラー メッセージが表示されてシミュレーションが停止します。

プロパティとしての System object

MATLAB System ブロックでは、System object が他の System object をパブリック プロパティまたはプライベート プロパティとして保持できます。ただし、

  • パブリック プロパティとして格納された System object と他の MATLAB オブジェクトは読み取り専用です。そのため、パラメーターの値を設定することはできず、パラメーターの値を取得することしかできません。

  • プロパティ値として格納された System object は、MATLAB System ブロック ダイアログ ボックスでグレー表示されます。

既定のプロパティ値

MATLAB では、オブジェクトがプロパティに既定値を割り当てる必要はありません。ただし、Simulink では、System object のプロパティに既定値が割り当てられていない場合には、関連するダイアログ ボックス パラメーターの値のデータ型が組み込みの Simulink データ型である必要があります。

For Each Subsystem の System object

For Each Subsystem ブロック内で MATLAB System ブロックを使用するには、supportsMultipleInstanceImpl メソッドを実装します。このメソッドは true を返します。MATLAB System ブロックは、For Each Subsystem の反復ごとに System object をクローンします。

入力の検証

Simulink では validateInputsImpl メソッドを使用して入力の属性 (サイズ、データ型、実数/複素数) のみを検証します。このメソッドを使用して入力の値を検証しないでください。

参考

関連する例

詳細