Main Content

setPrevActiveChild

前にアクティブであったサブステートの設定

    説明

    setPrevActiveChild(stateOp,substateOp) は、操作点 substateOp に対応するステートを、操作点 stateOp において前にアクティブであったサブステートとして設定します。stateOp は、ヒストリ ジャンクションを含む非アクティブ ステートの操作点でなければなりません。

    setPrevActiveChild(stateOp,substateName) は、substateName というステートを stateOp 内で前にアクティブであったサブステートとしてマークします。

    すべて折りたたむ

    1. sf_boiler モデルを開きます。

      openExample("stateflow/BangBangControlUsingTemporalLogicExample")

      このモデルの詳細については、バンバン温度制御システムのモデル化を参照してください。

    2. 最終の操作点を保存するようにモデルを設定します。[コンフィギュレーション パラメーター] ダイアログ ボックスを開き、[データのインポート/エクスポート] ペインで次を行います。

      1. [最終状態] を選択し、操作点の名前を入力します。この例では、xFinal を使用します。

      2. [最終の操作点を保存] を選択します。

      3. [OK] をクリックします。

    3. このシミュレーション セグメントの終了時間を設定します。[シミュレーション] タブで、[終了時間]100 に設定します。

    4. シミュレーションを実行します。

    5. Bang-Bang Controller チャートの操作点情報を含む Stateflow.op.BlockOperatingPoint オブジェクトにアクセスします。

      blockpath = "sf_boiler/Bang-Bang Controller";
      op = get(xFinal,blockpath);
    6. ボックス Heater のステート On がアクティブでないことを確認します。

      isActive(op.Heater.On)
      ans =
      
        logical
      
         0
      
    7. ステート On について、前にアクティブであったサブステートを検索します。

      getPrevActiveChild(op.Heater.On)
      ans = 
      
      State: "HIGH"    (handle)
        Path:     sf_boiler/Bang-Bang Controller/Heater/On/HIGH
      
        Contains:
      
          []
      
    8. ステート On について、前にアクティブであったサブステートを変更します。サブステートを Stateflow.op.OperatingPointContainer オブジェクトとして指定します。

      setPrevActiveChild(op.Heater.On,op.Heater.On.NORM)
      あるいは、string スカラーまたは文字ベクトルを使用してサブステートの名前を指定します。
      setPrevActiveChild(op.Heater.On,"NORM")

    9. 変更された操作点において、サブステート NORM が前にアクティブであったサブステートであることを確認します。

      getPrevActiveChild(op.Heater.On)
      ans = 
      
      State: "NORM"    (handle)
        Path:     sf_boiler/Bang-Bang Controller/Heater/On/NORM
      
        Contains:
      
          []

    入力引数

    すべて折りたたむ

    ヒストリ ジャンクションを含む、非アクティブ ステートの操作点。Stateflow.op.OperatingPointContainer オブジェクトとして指定します。

    前にアクティブであった新しいサブチャートの操作点。Stateflow.op.OperatingPointContainer オブジェクトとして指定します。

    前にアクティブであった新しいサブステートの名前。string スカラーまたは文字ベクトルとして指定します。

    バージョン履歴

    R2009b で導入