Main Content

モデル スライサーを使用した Simulink パラメーターの影響の確認

モデル スライサーを使用して、パラメーターがモデルに与える影響を確認します。

この例では、SLSlicerAPI.ParameterDependenceクラスのparametersAffectingBlockblocksAffectedByParameterの各メソッドをそれぞれ使用して、ブロックに影響を与えるパラメーター (オプション 1) とパラメーターの影響を受けるブロック (オプション 2) を表示するモデル スライサーの機能を説明します。

モデルを開き、ParameterDependence クラスを初期化

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

model = 'sldvSliceCruiseControl';
open_system(model);

2.ParameterDependence クラスのオブジェクトを作成します。

slicerObj = slslicer(model);
pd = slicerObj.parameterDependence;

オプション 1: ブロックに影響を与えるパラメーターを見つける

1.以下を入力して、DriverSwRequest サブシステムの Switch3 ブロックに影響を与えるパラメーターを表示します。

params = parametersAffectingBlock(pd, 'sldvSliceCruiseControl/DriverSwRequest/Switch3')
params=1×49 VariableUsage array with properties:
    Name
    Source
    SourceType
    Users

Switch3 ブロックに影響を与えるパラメーターが 49 個あることが分かります。個々のパラメーターの詳細を表示するには、配列の各要素を確認します。

params(1)
ans = 
  VariableUsage with properties:

          Name: 'CountValue'
        Source: 'sldvSliceCruiseControl/DriverSwRequest/decrement/counter'
    SourceType: 'mask workspace'
         Users: {'sldvSliceCruiseControl/DriverSwRequest/decrement/counter/Constant'}

オプション 2: パラメーターの影響を受けるブロックの取得

1.パラメーターの影響を確認するには、そのパラメーターの Simulink.VariableUsage オブジェクトを作成します。

param = Simulink.VariableUsage('CountValue','sldvSliceCruiseControl/DriverSwRequest/decrement/counter');

2.param の影響を受けるすべてのブロックを表示するには、次を行います。

affectedBlocks = blocksAffectedByParameter(pd, param)
affectedBlocks = 1×153
103 ×

    0.1760    0.3180    0.3230    0.3860    0.3900    0.3940    0.4080    0.4550    0.4600    0.4650    0.4700    0.4910    0.4950    0.4990    0.5030    0.5330    0.5380    0.5430    0.5480    0.5530    0.5690    0.5830    0.5920    0.6120    0.6190    0.6350    0.6390    0.6430    0.6470    0.6510    0.6550    0.6920    0.7060    0.7240    0.7280    0.7660    0.7780    0.7820    0.7920    0.7960    0.8000    0.8260    0.8340    0.8380    0.8800    0.8920    0.9000    0.9180    0.9220    0.9260

find_systemがサポートする同じオプションを使用して、影響を受けるブロックをさらに調整できます

affectedOutports = blocksAffectedByParameter(pd, param, 'blockType', 'Outport')
affectedOutports = 1×5
103 ×

    2.0630    2.0610    2.0650    2.0670    2.0690

オプション手順: モデルでのモデル スライサーを使用した結果の強調表示

モデル スライサーの強調表示を使用して、解析したモデルのアクティブなセクションを表示できます。

slicerObj.highlight(slicerObj.ActiveConfig);

クリーン アップ

解析後、モデル スライサーはモデルをコンパイルされた状態で維持します。モデルを閉じるには、slicerObj オブジェクトを終了します。

slicerObj.terminate;