Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

getTunedValue

slTuner インターフェイスにおける調整された変数の現在の値を取得

説明

getTunedValue を使うと、slTuner インターフェイス内にある調整された変数の現在の値にアクセスできます。

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

value = getTunedValue(st,var) は、slTuner インターフェイス st における調整された変数の現在の値 var を返します。

[value1,value2,...] = getTunedValue(st,var1,var2,...) は、複数の調整された変数の現在の値を返します。

S = getTunedValue(st) は、st におけるすべての調整された変数の現在の値を含む構造体を返します。

すべて折りたたむ

scdcascade モデルの slTuner インターフェイスを作成します。

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

調整可能なブロックの 1 つについて、カスタム パラメーター化を設定します。

C1CustParam = realp('Kp',1) + tf(1,[1 0]) * realp('Ki',1);
setBlockParam(st,'C1',C1CustParam);

これらのコマンドにより、C1 コントローラー ブロックのパラメーター化が、2 つの調整可能なパラメーター Ki および Kp を含む一般化状態空間 (genss) モデルに設定されます。

一般的には、systune などの調整コマンドを使用して、カスタム パラメーター化のパラメーターの値を調整します。

調整後、getTunedValue を使用して、Ki の調整された値をクエリします。

KiTuned = getTunedValue(st,'Ki')
KiTuned =

     1

調整ブロック C1 全体の値をクエリするには、getBlockValue を使用します。

scdcascade モデルの slTuner インターフェイスを作成します。

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

調整可能なブロックの 1 つについて、カスタム パラメーター化を設定します。

C1CustParam = realp('Kp',1) + tf(1,[1 0]) * realp('Ki',1);
setBlockParam(st,'C1',C1CustParam);

これらのコマンドにより、C1 コントローラー ブロックのパラメーター化が、調整可能なパラメーター Kp および Ki を含む一般化状態空間 (genss) モデルに設定されます。

一般的には、systune などの調整コマンドを使用して、カスタム パラメーター化のパラメーターの値を調整します。

調整後、getTunedValue を使用して、KpKi 両方の調整された値をクエリします。

[KiTuned,KpTuned] = getTunedValue(st,'Ki','Kp')
KiTuned =

     1


KpTuned =

     1

scdcascade モデルの slTuner インターフェイスを作成します。

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

調整ブロック C1 のカスタム パラメーター化を設定します。

C1CustParam = realp('Kp',1) + tf(1,[1 0]) * realp('Ki',1);
setBlockParam(st,'C1',C1CustParam);

一般的には、systune などの調整コマンドを使用して、カスタム パラメーター化のパラメーターの値を調整します。

調整後、getTunedValue を使用して、st における調整ブロックすべてのパラメーター化について、調整された値をクエリします。

S = getTunedValue(st)
S = 

  struct with fields:

    C2: [1x1 pid]
    Ki: 1
    Kp: 1

調整された値は、次のフィールドを含む構造体で返されます。

  • 調整ブロック C2。制御設計ブロックとしてパラメーター化されます。

  • ブロック C2 内の調整可能な要素 Kp および Ki。カスタム genss モデルとしてパラメーター化されます。

入力引数

すべて折りたたむ

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

st 内の調整された変数。文字ベクトルまたは string として指定します。調整された変数は、調整された Simulink ブロックのパラメーター化に直接関与する、あるいは一般化されたパラメトリック モデルを通して関与する任意の制御設計ブロック (realptunableSStunableGain など) です。st 内のすべての調整された変数のリストを取得するには、getTunedValue(st) を使用します。

var は以下を参照できます。

  • 制御設計ブロックでパラメーター化されたブロックでは、そのブロックの名前。たとえば、ブロックのパラメーター化が次のようであるとします。

    C = tunableSS('C')

    この場合は、var = 'C' と設定します。

  • genmat または genss モデル M でパラメーター化されたブロックでは、M.Blocks にリストされている任意の制御設計ブロックの名前。たとえば、ブロックのパラメーター化が次のようであるとします。

    a = realp('a',1);
    C = tf(a,[1 a]);

    この場合は、var = 'a' と設定します。

出力引数

すべて折りたたむ

st における調整された変数の現在の値。数値スカラーか数値配列、または状態空間モデルとして返されます。Simulink モデルへの調整結果の適用に writeBlockValue が使用されていない場合、getTunedValue で返される値は Simulink ブロックの値と異なる場合があります。

メモ

ブロック パラメーター化の値を Simulink モデル内の実際のブロック値と揃えるには、writeBlockValue を使用します。

st におけるすべての調整された変数の現在値。構造体として返されます。S のフィールドの名前は、st における調整された変数の名前で、フィールドの値は対応する数値スカラーまたは数値配列です。

この構造体を使用すると、調整された変数の値は次のように、ある slTuner インターフェイスから同じ調整された変数をもつ別の slTuner インターフェイスに転送できます。

S = getTunedValue(st1);
setTunedValue(st2,S);

詳細

すべて折りたたむ

調整ブロック

slTuner インターフェイスで使用される "調整ブロック" は、Simulink モデル内のブロックのうち、調整目標を満たすためにパラメーター調整を行うブロックを示します。ゲイン、伝達関数、状態空間モデルなどの線形要素を表現する Simulink ブロックは、ほとんどが調整可能です (調整がサポートされているブロックの完全なリストは、調整された Simulink ブロックをパラメーター化する方法を参照してください)。また、SubSystem ブロックや S-Function ブロックなど、より複雑なブロックも、等価の調整可能な線形モデルを指定することで調整可能です。

調整ブロックのパラメーターを調整するには、systune などの調整コマンドを使用します。

slTuner インターフェイスを作成する際に、調整ブロック (たとえば、C1C2) を指定しなければなりません。

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

addBlock および removeBlock により、調整ブロックのリストを変更できます。

調整ブロックを対話的に操作するには、以下を使用します。

調整された変数

slTuner インターフェイス内では、"調整された変数" は、調整された Simulink ブロックのパラメーター化に直接関与する、あるいは一般化されたパラメトリック モデルを通して関与する任意の制御設計ブロックです。調整された変数は、systune などの調整コマンドで操作されるパラメーターです。

一般化モデルまたは調整可能な曲面によりパラメーター化された Simulink ブロックでは、次のことが該当します。

  • getBlockValue により、ブロック パラメーター化の全体的な値にアクセスできます。ブロック パラメーター化内の調整された変数の値にアクセスするには、getTunedValue を使用します。

  • setBlockValue は、ブロック値の変更には使用できません。ブロック パラメーター化内の調整された変数の値を変更するには、setTunedValue を使用します。

制御設計ブロックによりパラメーター化された Simulink ブロックでは、ブロック自体が調整された変数です。ブロック値を変更するには、setBlockValuesetTunedValue のいずれかを使用できます。同様に、ブロック値は getBlockValuegetTunedValue のいずれかを使用して取得できます。

バージョン履歴

R2015b で導入