メインコンテンツ

setBlockValue

slTuner インターフェイス内の調整ブロックのパラメーター化の値を設定

説明

setBlockValue を使うと、slTuner インターフェイスにおける調整ブロックのパラメーター化の現在値を初期化あるいは変更できるようになります。

slTuner インターフェイスは、調整された各 Simulink® ブロックを、制御設計ブロックとして、または genmat タイプか genss タイプの一般化されたパラメトリック モデルとしてパラメーター化します。このパラメーター化では、systune などのコマンドに対し、調整された変数が指定されます。

setBlockValue(st,blk,value) は、slTuner インターフェイス st におけるブロックのパラメーター化の現在値を設定します。

setBlockValue(st,blkValues) は、構造体 blkValues を使用して複数のブロックのパラメーター化の値を更新します。

すべて折りたたむ

scdcascade モデルに対して slTuner インターフェイスを作成し、いずれかの調整ブロックのパラメーター化の値を設定します。

slTuner インターフェイスを作成します。

open_system('scdcascade')
st = slTuner('scdcascade',{'C1','C2'});

C1C2 はどちらも PI コントローラーです。C1 の既定のパラメーター化を調べます。

getBlockParam(st,'C1')
Tunable continuous-time PID controller "C1" with formula:

             1 
  Kp + Ki * ---
             s 

and tunable parameters Kp, Ki.

Type "pid(ans)" to see the current value.

既定のパラメーター化は、2 つの調整可能パラメーター KpKi をもつ PI コントローラーです。

C1 のパラメーター化の値を設定します。

C = pid(4.2);
setBlockValue(st,'C1',C);

C1 のパラメーター化の値を調べます。

getBlockValue(st,'C1')
ans =
 
  Kp = 4.2
 
Name: C1
P-only controller.

C1 のパラメーター化を調べます。

getBlockParam(st,'C1')
Tunable continuous-time PID controller "C1" with formula:

             1 
  Kp + Ki * ---
             s 

and tunable parameters Kp, Ki.

Type "pid(ans)" to see the current value.

現在のブロック値は P のみのコントローラーになっていますが、ブロック パラメーター化は PI コントローラーのままである点に留意してください。

slTuner インターフェイスを作成します。

open_system('scdcascade')
st = slTuner('scdcascade',{'C1','C2'});

ブロック値の構造体を作成し、フィールド名が st での調整可能なブロックに対応するようにします。

blockValues = getBlockValue(st);
blockValues.C1 = pid(0.2,0.1);
blockValues.C2 = pid(2.3);

st における調整可能なブロックのパラメーター化の値を、定義した構造体を使用して設定します。

setBlockValue(st,blockValues);

入力引数

すべて折りたたむ

Simulink でモデル化された制御システムを調整するためのインターフェイス。slTuner インターフェイスとして指定します。

st の調整ブロックのリストにあるブロック。文字ベクトルまたは string として指定します。ブロックの絶対パスか、st の他の調整ブロックの中から該当ブロックを一意に識別する部分パスを指定できます。

例: blk = 'scdcascade/C1', blk = "C1"

メモ

setBlockValue では、blk のパラメーター化の全体的な値のみを変更できます。一般化状態空間モデルなど、カスタム ブロック パラメーター化内にある要素の値を変更するには、setTunedValue を使用します。

ブロック パラメーター化の値。数値 LTI モデル、または tunableGaintunablePID などの制御設計ブロックとして指定します。value の値は、blk のパラメーター化に対応していなければなりません。たとえば、blk を PID コントローラーとしてパラメーター化する場合、value は PID コントローラーを表す tunablePID ブロック、数値 pid モデルまたは数値 tf モデルでなければなりません。

setBlockValue は、value のパラメーターに基づいて調整ブロックのパラメーターの値を更新します。setBlockValue を使用すると、調整ブロックのパラメーター化の構造体は変更されません。blk のパラメーター化を変更するには、setBlockParam を使用します。たとえば、setBlockParam を使用して、ブロック パラメーター化を tunablePID から 3 極の tunableTF モデルに変更できます。

複数ブロックのパラメーター化の値。数値 LTI モデルまたは制御設計ブロックとして指定されるフィールドをもつ構造体として指定します。フィールド名は、st におけるブロックの名前です。stblkValues に共通のブロックのみが更新され、st における他のすべてのブロックは変更されないままとなります。

blkValues を指定するには、st からブロック パラメーター化の値の構造体を取得して変更します。

blkValues = getblockValue(st);
blkValues.C1 = pid(0.1,0.2);

メモ

名前が有効なフィールド名でない Simulink ブロックの場合は、blkValues での対応するフィールド名を、ブロック パラメーター化で表示されるとおりに指定します。

blockParam = getBlockParam(st,'B-1');
fieldName = blockParam.Name;
blockValues = struct(fieldName,newB1);

詳細

すべて折りたたむ

バージョン履歴

R2011b で導入