このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
setTunedValue
slTuner
インターフェイスにおける調整された変数の現在の値の設定
説明
例
カスタム パラメーター化内での単一の調整可能な要素の設定
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
) モデルに設定されます。
Kp の値は変更せず、Ki
の値を 10
に初期化します。
setTunedValue(st,'Ki',10);
カスタム パラメーター化内での複数の調整可能な要素の設定
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
) モデルに設定されます。
調整可能な要素の値の構造体を作成し、Kp
を 5
に、Ki
を 10
に設定します。
S = struct('Kp',5,'Ki',10);
st
における調整可能な要素の値を設定します。
setTunedValue(st,S);
一般化状態空間モデルを使用して調整ブロックのパラメーター化の値を設定
Simulink® モデル rct_diskdrive
の slTuner
インターフェイスを genss
モデルに変換し、モデル ブロックを hinfstruct
を使用して調整します。調整の後、調整パラメーターを用いて slTuner
インターフェイスを更新し、パラメーター値を Simulink モデルに書き込んで検証します。
hinfstruct
の使用には、Robust Control Toolbox のライセンスが必要です。
rct_diskdrive
に対して slTuner
インターフェイスを作成します。C
および F
をインターフェイスの調整ブロックとして追加します。
open_system('rct_diskdrive'); st = slTuner('rct_diskdrive',{'C','F'});
伝達関数ブロック F
の既定のパラメーター化は、2 つの自由パラメーターをもつ伝達関数です。F
はローパス フィルターであるため、その係数を制約しなければなりません。そのためには、F
のカスタム パラメーター化をフィルター係数 a
を使って指定します。
a = realp('a',1); setBlockParam(st,'F',tf(a,[1 a]));
st
を genss
モデルに変換します。
m = getIOTransfer(st,{'r','n'},{'y','e'});
通常、hinfstruct
での調整には、設計要件に依存する重み付け関数を genss
モデルに追加します。続いて、拡張されたモデルを調整します。詳細については、Fixed-Structure H-infinity Synthesis with hinfstruct (Robust Control Toolbox)を参照してください。
この例では、モデルを調整する代わりに、変数の調整値を手動で調整します。
m.Blocks.C.Kp.Value = 0.00085; m.Blocks.C.Ki.Value = 0.01; m.Blocks.a.Value = 5500;
調整の後、st
におけるブロック パラメーター化の値を更新します。
setTunedValue(st,m);
これは、setBlockValue(st,m.Blocks)
と等価です。
調整結果を Simulink で検証するには、まず調整した値で Simulink モデルを更新します。
writeBlockValue(st);
入力引数
st
— Simulink® でモデル化された制御システムを調整するためのインターフェイス
slTuner
インターフェイス
Simulink でモデル化された制御システムを調整するためのインターフェイス。slTuner
インターフェイスとして指定します。
var
— 調整された変数
文字ベクトル | string
st
内の調整された変数。文字ベクトルまたは string として指定します。調整された変数は、調整された Simulink ブロックのパラメーター化に直接関与する、あるいは一般化されたパラメトリック モデルを通して関与する任意の制御設計ブロック (realp
、tunableSS
、tunableGain
など) です。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'
と設定します。
value
— 調整された変数の値
数値スカラー | 数値配列 | 状態空間モデル
st
における調整された変数の値。調整された変数に対応する数値スカラー、数値配列または状態空間モデルとして指定します。たとえば、var
が PID ゲインなどのスカラー要素である場合、value
はスカラーでなければなりません。var
が 2 行 2 列の tunableGain
である場合、value
は 2 行 2 列のスカラー配列でなければなりません。
varValues
— 複数の調整された変数の値
構造体
st
における複数の調整された変数の値。数値スカラー、数値配列または状態空間モデルとして指定されたフィールドをもつ構造体として指定します。フィールド名は、st
における調整された変数の名前です。st
と varValues
に共通のブロックのみが更新され、st
における他のすべてのブロックは変更されないままとなります。
varValues
を指定するには、st
から調整された変数の構造体を取得して変更します。
varValues = getTunedValue(st); varValues.Ki = 10;
model
— 調整モデル
一般化 LTI モデル
st
と共通のパラメーターをいくつかもつ調整モデル。一般化 LTI モデルとして指定します。st
と model
に共通の変数のみが更新され、st
における他のすべての変数は変更されないままとなります。
詳細
調整ブロック
slTuner
インターフェイスで使用される "調整ブロック" は、Simulink モデル内のブロックのうち、調整目標を満たすためにパラメーター調整を行うブロックを示します。ゲイン、伝達関数、状態空間モデルなどの線形要素を表現する Simulink ブロックは、ほとんどが調整可能です (調整がサポートされているブロックの完全なリストは、調整された Simulink ブロックをパラメーター化する方法を参照してください)。また、SubSystem ブロックや S-Function ブロックなど、より複雑なブロックも、等価の調整可能な線形モデルを指定することで調整可能です。
調整ブロックのパラメーターを調整するには、systune
などの調整コマンドを使用します。
slTuner
インターフェイスを作成する際に、調整ブロック (たとえば、C1
や C2
) を指定しなければなりません。
st = slTuner('scdcascade',{'C1','C2'})
addBlock
および removeBlock
により、調整ブロックのリストを変更できます。
調整ブロックを対話的に操作するには、以下を使用します。
調整ブロックのパラメーター化とその現在の値にアクセスするには、
getBlockParam
、getBlockValue
およびgetTunedValue
。調整ブロックのパラメーター化とその値を変更するには、
setBlockParam
、setBlockValue
およびsetTunedValue
。調整ブロックのパラメーター化の現在の値で Simulink モデルのブロックを更新するには、
writeBlockValue
。
調整された変数
slTuner
インターフェイス内では、"調整された変数" は、調整された Simulink ブロックのパラメーター化に直接関与する、あるいは一般化されたパラメトリック モデルを通して関与する任意の制御設計ブロックです。調整された変数は、systune
などの調整コマンドで操作されるパラメーターです。
一般化モデルまたは調整可能な曲面によりパラメーター化された Simulink ブロックでは、次のことが該当します。
getBlockValue
により、ブロック パラメーター化の全体的な値にアクセスできます。ブロック パラメーター化内の調整された変数の値にアクセスするには、getTunedValue
を使用します。setBlockValue
は、ブロック値の変更には使用できません。ブロック パラメーター化内の調整された変数の値を変更するには、setTunedValue
を使用します。
制御設計ブロックによりパラメーター化された Simulink ブロックでは、ブロック自体が調整された変数です。ブロック値を変更するには、setBlockValue
か setTunedValue
のいずれかを使用できます。同様に、ブロック値は getBlockValue
か getTunedValue
のいずれかを使用して取得できます。
バージョン履歴
R2015b で導入
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)