Main Content

データ型の不一致と構造体の初期条件

Simulink.Parameter オブジェクトを使用したバス信号の初期条件の指定

この例では、構造体の初期条件を Simulink.Parameter オブジェクトで置換する方法を示します。この方法によって構造体の調整可能な状態は維持されます。

  1. Unit Delay ブロックをダブルクリックして、このブロックのパラメーターを表示します。Unit Delay ブロックは構造体の初期条件を使用しています。

  2. MATLAB® コマンド ラインで Simulink.Parameter オブジェクトを定義します。パラメーター オブジェクトのデータ型をバス オブジェクト SensorData に設定します。パラメーター オブジェクトの値を指定された構造体に設定します。調整可能性を維持するには、StorageClass プロパティを ExportedGlobal に設定します。

    P = Simulink.Parameter;
    P.DataType = 'Bus: SensorData';
    P.Value = struct('Torque',5,'Speed',8);
    P.StorageClass = 'ExportedGlobal';

  3. Unit Delay ブロックのダイアログ ボックスで、[初期条件]P (定義した Simulink.Parameter オブジェクト) に設定します。Simulink.Parameter オブジェクト内で定義される構造体は調整可能なままになります。

調整可能な初期条件構造体を使用するバス信号に対するコードの生成の詳細については、生成されたコードにおける信号および状態の初期化の制御を参照してください。

データ型の不一致とマスクされたアトミック サブシステム

構造体の初期条件がマスクされたアトミック サブシステムを使用して指定したバス信号を駆動するときに、データ型の不一致が発生します。

サブシステムを非アトミックに変更するか、(Simulink.Parameter オブジェクトを使用したバス信号の初期条件の指定で説明されているように) 構造体パラメーターを Simulink.Parameter オブジェクトを使用して指定することによって、データ型不一致のエラーを回避します。

関連するトピック